wallet-core/lib/emscripten/libwrapper.js
2016-03-01 19:39:17 +01:00

146143 lines
4.2 MiB

// The Module object: Our interface to the outside world. We import
// and export values on it, and do the work to get that through
// closure compiler if necessary. 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 do an eval in order to handle the closure compiler
// case, where this code here is minified but Module was defined
// elsewhere (e.g. case 4 above). We also need to check if Module
// already exists (e.g. case 3 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;
if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {};
// 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 = {};
for (var key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key];
}
}
// The environment setup code below is customized to use Module.
// *** Environment setup code ***
var ENVIRONMENT_IS_WEB = typeof window === 'object';
// Three configurations we can be running in:
// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)
// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)
// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)
var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
if (ENVIRONMENT_IS_NODE) {
// Expose functionality in the same simple way that the shells work
// Note that we pollute the global namespace here, otherwise we break in node
if (!Module['print']) Module['print'] = function print(x) {
process['stdout'].write(x + '\n');
};
if (!Module['printErr']) Module['printErr'] = function printErr(x) {
process['stderr'].write(x + '\n');
};
var nodeFS = require('fs');
var nodePath = require('path');
Module['read'] = function read(filename, binary) {
filename = nodePath['normalize'](filename);
var ret = nodeFS['readFileSync'](filename);
// The path is absolute if the normalized version is the same as the resolved.
if (!ret && filename != nodePath['resolve'](filename)) {
filename = path.join(__dirname, '..', 'src', filename);
ret = nodeFS['readFileSync'](filename);
}
if (ret && !binary) ret = ret.toString();
return ret;
};
Module['readBinary'] = function readBinary(filename) {
var ret = Module['read'](filename, true);
if (!ret.buffer) {
ret = new Uint8Array(ret);
}
assert(ret.buffer);
return ret;
};
Module['load'] = function load(f) {
globalEval(read(f));
};
if (!Module['thisProgram']) {
if (process['argv'].length > 1) {
Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/');
} else {
Module['thisProgram'] = 'unknown-program';
}
}
Module['arguments'] = process['argv'].slice(2);
if (typeof module !== 'undefined') {
module['exports'] = Module;
}
process['on']('uncaughtException', function(ex) {
// suppress ExitStatus exceptions from showing an error
if (!(ex instanceof ExitStatus)) {
throw ex;
}
});
Module['inspect'] = function () { return '[Emscripten Module object]'; };
}
else if (ENVIRONMENT_IS_SHELL) {
if (!Module['print']) Module['print'] = print;
if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
if (typeof read != 'undefined') {
Module['read'] = read;
} else {
Module['read'] = function read() { throw 'no read() available (jsc?)' };
}
Module['readBinary'] = function readBinary(f) {
if (typeof readbuffer === 'function') {
return new Uint8Array(readbuffer(f));
}
var data = read(f, 'binary');
assert(typeof data === 'object');
return data;
};
if (typeof scriptArgs != 'undefined') {
Module['arguments'] = scriptArgs;
} else if (typeof arguments != 'undefined') {
Module['arguments'] = arguments;
}
}
else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
Module['read'] = function read(url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send(null);
return xhr.responseText;
};
if (typeof arguments != 'undefined') {
Module['arguments'] = arguments;
}
if (typeof console !== 'undefined') {
if (!Module['print']) Module['print'] = function print(x) {
console.log(x);
};
if (!Module['printErr']) Module['printErr'] = function printErr(x) {
console.log(x);
};
} else {
// Probably a worker, and without console.log. We can do very little here...
var TRY_USE_DUMP = false;
if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
dump(x);
}) : (function(x) {
// self.postMessage(x); // enable this if you want stdout to be sent as messages
}));
}
if (ENVIRONMENT_IS_WORKER) {
Module['load'] = importScripts;
}
if (typeof Module['setWindowTitle'] === 'undefined') {
Module['setWindowTitle'] = function(title) { document.title = title };
}
}
else {
// Unreachable because SHELL is dependant on the others
throw 'Unknown runtime environment. Where are we?';
}
function globalEval(x) {
abort('NO_DYNAMIC_EXECUTION=1 was set, cannot eval');
}
if (!Module['load'] && Module['read']) {
Module['load'] = function load(f) {
globalEval(Module['read'](f));
};
}
if (!Module['print']) {
Module['print'] = function(){};
}
if (!Module['printErr']) {
Module['printErr'] = Module['print'];
}
if (!Module['arguments']) {
Module['arguments'] = [];
}
if (!Module['thisProgram']) {
Module['thisProgram'] = './this.program';
}
// *** Environment setup code ***
// Closure helpers
Module.print = Module['print'];
Module.printErr = Module['printErr'];
// Callbacks
Module['preRun'] = [];
Module['postRun'] = [];
// Merge back in the overrides
for (var key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key];
}
}
// {{PREAMBLE_ADDITIONS}}
// === Preamble library stuff ===
// Documentation for the public APIs defined in this file must be updated in:
// site/source/docs/api_reference/preamble.js.rst
// A prebuilt local version of the documentation is available at:
// site/build/text/docs/api_reference/preamble.js.txt
// You can also build docs locally as HTML or other formats in site/
// An online HTML version (which may be of a different version of Emscripten)
// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
//========================================
// Runtime code shared with compiler
//========================================
var Runtime = {
setTempRet0: function (value) {
tempRet0 = value;
},
getTempRet0: function () {
return tempRet0;
},
stackSave: function () {
return STACKTOP;
},
stackRestore: function (stackTop) {
STACKTOP = stackTop;
},
getNativeTypeSize: function (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 Runtime.QUANTUM_SIZE; // A pointer
} else if (type[0] === 'i') {
var bits = parseInt(type.substr(1));
assert(bits % 8 === 0);
return bits/8;
} else {
return 0;
}
}
}
},
getNativeFieldSize: function (type) {
return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
},
STACK_ALIGN: 16,
prepVararg: function (ptr, type) {
if (type === 'double' || type === 'i64') {
// move so the load is aligned
if (ptr & 7) {
assert((ptr & 7) === 4);
ptr += 4;
}
} else {
assert((ptr & 3) === 0);
}
return ptr;
},
getAlignSize: function (type, size, vararg) {
// we align i64s and doubles on 64-bit boundaries, unlike x86
if (!vararg && (type == 'i64' || type == 'double')) return 8;
if (!type) return Math.min(size, 8); // align structures internally to 64 bits
return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
},
dynCall: function (sig, ptr, args) {
if (args && args.length) {
assert(args.length == sig.length-1);
if (!args.splice) args = Array.prototype.slice.call(args);
args.splice(0, 0, ptr);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].apply(null, args);
} else {
assert(sig.length == 1);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].call(null, ptr);
}
},
functionPointers: [],
addFunction: function (func) {
for (var i = 0; i < Runtime.functionPointers.length; i++) {
if (!Runtime.functionPointers[i]) {
Runtime.functionPointers[i] = func;
return 2*(1 + i);
}
}
throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
},
removeFunction: function (index) {
Runtime.functionPointers[(index-2)/2] = null;
},
warnOnce: function (text) {
if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
if (!Runtime.warnOnce.shown[text]) {
Runtime.warnOnce.shown[text] = 1;
Module.printErr(text);
}
},
funcWrappers: {},
getFuncWrapper: function (func, sig) {
assert(sig);
if (!Runtime.funcWrappers[sig]) {
Runtime.funcWrappers[sig] = {};
}
var sigCache = Runtime.funcWrappers[sig];
if (!sigCache[func]) {
sigCache[func] = function dynCall_wrapper() {
return Runtime.dynCall(sig, func, arguments);
};
}
return sigCache[func];
},
getCompilerSetting: function (name) {
throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work';
},
stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; },
staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; },
dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + (assert(DYNAMICTOP > 0),size))|0;DYNAMICTOP = (((DYNAMICTOP)+15)&-16); if (DYNAMICTOP >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { DYNAMICTOP = ret; return 0; } }; return ret; },
alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; },
makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; },
GLOBAL_BASE: 8,
QUANTUM_SIZE: 4,
__dummy__: 0
}
Module["Runtime"] = Runtime;
//========================================
// Runtime essentials
//========================================
var __THREW__ = 0; // Used in checking for thrown exceptions.
var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
var EXITSTATUS = 0;
var undef = 0;
// tempInt is used for 32-bit signed values or smaller. tempBigInt is used
// for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat;
var tempI64, tempI64b;
var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
function assert(condition, text) {
if (!condition) {
abort('Assertion failed: ' + text);
}
}
var globalScope = this;
// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
function getCFunc(ident) {
var func = Module['_' + ident]; // closure exported function
if (!func) {
abort('NO_DYNAMIC_EXECUTION=1 was set, cannot eval');
}
assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
return func;
}
var cwrap, ccall;
(function(){
var JSfuncs = {
// Helpers for cwrap -- it can't refer to Runtime directly because it might
// be renamed by closure, instead it calls JSfuncs['stackSave'].body to find
// out what the minified function name is.
'stackSave': function() {
Runtime.stackSave()
},
'stackRestore': function() {
Runtime.stackRestore()
},
// type conversion from js to c
'arrayToC' : function(arr) {
var ret = Runtime.stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret;
},
'stringToC' : function(str) {
var ret = 0;
if (str !== null && str !== undefined && str !== 0) { // null string
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
ret = Runtime.stackAlloc((str.length << 2) + 1);
writeStringToMemory(str, ret);
}
return ret;
}
};
// For fast lookup of conversion functions
var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']};
// C calling interface.
ccall = function ccallFunc(ident, returnType, argTypes, args, opts) {
var func = getCFunc(ident);
var cArgs = [];
var stack = 0;
assert(returnType !== 'array', 'Return type should not be "array".');
if (args) {
for (var i = 0; i < args.length; i++) {
var converter = toC[argTypes[i]];
if (converter) {
if (stack === 0) stack = Runtime.stackSave();
cArgs[i] = converter(args[i]);
} else {
cArgs[i] = args[i];
}
}
}
var ret = func.apply(null, cArgs);
if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') {
assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall');
}
if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values');
if (returnType === 'string') ret = Pointer_stringify(ret);
if (stack !== 0) {
if (opts && opts.async) {
EmterpreterAsync.asyncFinalizers.push(function() {
Runtime.stackRestore(stack);
});
return;
}
Runtime.stackRestore(stack);
}
return ret;
}
// NO_DYNAMIC_EXECUTION is on, so we can't use the fast version of cwrap.
// Fall back to returning a bound version of ccall.
cwrap = function cwrap(ident, returnType, argTypes) {
return function() {
Runtime.warnOnce('NO_DYNAMIC_EXECUTION was set, '
+ 'using slow cwrap implementation');
return ccall(ident, returnType, argTypes, arguments);
}
}
})();
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;
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);
}
}
Module["setValue"] = setValue;
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 setValue: ' + type);
}
return null;
}
Module["getValue"] = getValue;
var ALLOC_NORMAL = 0; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
var ALLOC_STATIC = 2; // Cannot be freed
var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
var ALLOC_NONE = 4; // Do not allocate
Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
Module["ALLOC_STACK"] = ALLOC_STACK;
Module["ALLOC_STATIC"] = ALLOC_STATIC;
Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC;
Module["ALLOC_NONE"] = ALLOC_NONE;
// allocate(): This is for internal use. You can use it yourself as well, but the interface
// is a little tricky (see docs right below). The reason is that it is optimized
// for multiple syntaxes to save space in generated code. So you should
// normally not use allocate(), and instead allocate memory using _malloc(),
// initialize it with setValue(), and so forth.
// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
// in *bytes* (note that this is sometimes confusing: the next parameter does not
// affect this!)
// @types: Either an array of types, one for each byte (or 0 if no type at that position),
// or a single type which is used for the entire block. This only matters if there
// is initial data - if @slab is a number, then this does not matter at all and is
// ignored.
// @allocator: How to allocate memory, see ALLOC_*
function allocate(slab, types, allocator, ptr) {
var zeroinit, size;
if (typeof slab === 'number') {
zeroinit = true;
size = slab;
} else {
zeroinit = false;
size = slab.length;
}
var singleType = typeof types === 'string' ? types : null;
var ret;
if (allocator == ALLOC_NONE) {
ret = ptr;
} else {
ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
}
if (zeroinit) {
var ptr = ret, stop;
assert((ret & 3) == 0);
stop = ret + (size & ~3);
for (; ptr < stop; ptr += 4) {
HEAP32[((ptr)>>2)]=0;
}
stop = ret + size;
while (ptr < stop) {
HEAP8[((ptr++)>>0)]=0;
}
return ret;
}
if (singleType === 'i8') {
if (slab.subarray || slab.slice) {
HEAPU8.set(slab, ret);
} else {
HEAPU8.set(new Uint8Array(slab), ret);
}
return ret;
}
var i = 0, type, typeSize, previousType;
while (i < size) {
var curr = slab[i];
if (typeof curr === 'function') {
curr = Runtime.getFunctionIndex(curr);
}
type = singleType || types[i];
if (type === 0) {
i++;
continue;
}
assert(type, 'Must know what type to store in allocate!');
if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
setValue(ret+i, curr, type);
// no need to look up size unless type changes, so cache it
if (previousType !== type) {
typeSize = Runtime.getNativeTypeSize(type);
previousType = type;
}
i += typeSize;
}
return ret;
}
Module["allocate"] = allocate;
// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready
function getMemory(size) {
if (!staticSealed) return Runtime.staticAlloc(size);
if ((typeof _sbrk !== 'undefined' && !_sbrk.called) || !runtimeInitialized) return Runtime.dynamicAlloc(size);
return _malloc(size);
}
Module["getMemory"] = getMemory;
function Pointer_stringify(ptr, /* optional */ length) {
if (length === 0 || !ptr) return '';
// TODO: use TextDecoder
// Find the length, and check for UTF while doing so
var hasUtf = 0;
var t;
var i = 0;
while (1) {
assert(ptr + i < TOTAL_MEMORY);
t = HEAPU8[(((ptr)+(i))>>0)];
hasUtf |= t;
if (t == 0 && !length) break;
i++;
if (length && i == length) break;
}
if (!length) length = i;
var ret = '';
if (hasUtf < 128) {
var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
var curr;
while (length > 0) {
curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
ret = ret ? ret + curr : curr;
ptr += MAX_CHUNK;
length -= MAX_CHUNK;
}
return ret;
}
return Module['UTF8ToString'](ptr);
}
Module["Pointer_stringify"] = Pointer_stringify;
// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function AsciiToString(ptr) {
var str = '';
while (1) {
var ch = HEAP8[((ptr++)>>0)];
if (!ch) return str;
str += String.fromCharCode(ch);
}
}
Module["AsciiToString"] = AsciiToString;
// 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);
}
Module["stringToAscii"] = stringToAscii;
// 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.
function UTF8ArrayToString(u8Array, idx) {
var u0, u1, u2, u3, u4, u5;
var str = '';
while (1) {
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
u0 = u8Array[idx++];
if (!u0) return str;
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
u1 = u8Array[idx++] & 63;
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
u2 = u8Array[idx++] & 63;
if ((u0 & 0xF0) == 0xE0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u3 = u8Array[idx++] & 63;
if ((u0 & 0xF8) == 0xF0) {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;
} else {
u4 = u8Array[idx++] & 63;
if ((u0 & 0xFC) == 0xF8) {
u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;
} else {
u5 = u8Array[idx++] & 63;
u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;
}
}
}
if (u0 < 0x10000) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
}
}
}
Module["UTF8ArrayToString"] = UTF8ArrayToString;
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function UTF8ToString(ptr) {
return UTF8ArrayToString(HEAPU8,ptr);
}
Module["UTF8ToString"] = UTF8ToString;
// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.
// outIdx: The starting offset in the array to begin the copying.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.
// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
return 0;
var startIdx = outIdx;
var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
var u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
if (outIdx >= endIdx) break;
outU8Array[outIdx++] = u;
} else if (u <= 0x7FF) {
if (outIdx + 1 >= endIdx) break;
outU8Array[outIdx++] = 0xC0 | (u >> 6);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0xFFFF) {
if (outIdx + 2 >= endIdx) break;
outU8Array[outIdx++] = 0xE0 | (u >> 12);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x1FFFFF) {
if (outIdx + 3 >= endIdx) break;
outU8Array[outIdx++] = 0xF0 | (u >> 18);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x3FFFFFF) {
if (outIdx + 4 >= endIdx) break;
outU8Array[outIdx++] = 0xF8 | (u >> 24);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else {
if (outIdx + 5 >= endIdx) break;
outU8Array[outIdx++] = 0xFC | (u >> 30);
outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
}
}
// Null-terminate the pointer to the buffer.
outU8Array[outIdx] = 0;
return outIdx - startIdx;
}
Module["stringToUTF8Array"] = stringToUTF8Array;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
}
Module["stringToUTF8"] = stringToUTF8;
// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF8(str) {
var len = 0;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
++len;
} else if (u <= 0x7FF) {
len += 2;
} else if (u <= 0xFFFF) {
len += 3;
} else if (u <= 0x1FFFFF) {
len += 4;
} else if (u <= 0x3FFFFFF) {
len += 5;
} else {
len += 6;
}
}
return len;
}
Module["lengthBytesUTF8"] = lengthBytesUTF8;
// 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.
function UTF16ToString(ptr) {
var i = 0;
var str = '';
while (1) {
var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
if (codeUnit == 0)
return str;
++i;
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
str += String.fromCharCode(codeUnit);
}
}
Module["UTF16ToString"] = UTF16ToString;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.
// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.
// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF16(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 0x7FFFFFFF;
}
if (maxBytesToWrite < 2) return 0;
maxBytesToWrite -= 2; // Null terminator.
var startPtr = outPtr;
var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;
for (var i = 0; i < numCharsToWrite; ++i) {
// charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
HEAP16[((outPtr)>>1)]=codeUnit;
outPtr += 2;
}
// Null-terminate the pointer to the HEAP.
HEAP16[((outPtr)>>1)]=0;
return outPtr - startPtr;
}
Module["stringToUTF16"] = stringToUTF16;
// 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;
}
Module["lengthBytesUTF16"] = lengthBytesUTF16;
function UTF32ToString(ptr) {
var i = 0;
var str = '';
while (1) {
var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
if (utf32 == 0)
return str;
++i;
// Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
// See http://unicode.org/faq/utf_bom.html#utf16-3
if (utf32 >= 0x10000) {
var ch = utf32 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
} else {
str += String.fromCharCode(utf32);
}
}
}
Module["UTF32ToString"] = UTF32ToString;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.
// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.
// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF32(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 0x7FFFFFFF;
}
if (maxBytesToWrite < 4) return 0;
var startPtr = outPtr;
var endPtr = startPtr + maxBytesToWrite - 4;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
var trailSurrogate = str.charCodeAt(++i);
codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
}
HEAP32[((outPtr)>>2)]=codeUnit;
outPtr += 4;
if (outPtr + 4 > endPtr) break;
}
// Null-terminate the pointer to the HEAP.
HEAP32[((outPtr)>>2)]=0;
return outPtr - startPtr;
}
Module["stringToUTF32"] = stringToUTF32;
// 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;
}
Module["lengthBytesUTF32"] = lengthBytesUTF32;
function demangle(func) {
var hasLibcxxabi = !!Module['___cxa_demangle'];
if (hasLibcxxabi) {
try {
var buf = _malloc(func.length);
writeStringToMemory(func.substr(1), buf);
var status = _malloc(4);
var ret = Module['___cxa_demangle'](buf, 0, 0, status);
if (getValue(status, 'i32') === 0 && ret) {
return Pointer_stringify(ret);
}
// otherwise, libcxxabi failed, we can try ours which may return a partial result
} catch(e) {
// failure when using libcxxabi, we can try ours which may return a partial result
} finally {
if (buf) _free(buf);
if (status) _free(status);
if (ret) _free(ret);
}
}
var i = 3;
// params, etc.
var basicTypes = {
'v': 'void',
'b': 'bool',
'c': 'char',
's': 'short',
'i': 'int',
'l': 'long',
'f': 'float',
'd': 'double',
'w': 'wchar_t',
'a': 'signed char',
'h': 'unsigned char',
't': 'unsigned short',
'j': 'unsigned int',
'm': 'unsigned long',
'x': 'long long',
'y': 'unsigned long long',
'z': '...'
};
var subs = [];
var first = true;
function dump(x) {
//return;
if (x) Module.print(x);
Module.print(func);
var pre = '';
for (var a = 0; a < i; a++) pre += ' ';
Module.print (pre + '^');
}
function parseNested() {
i++;
if (func[i] === 'K') i++; // ignore const
var parts = [];
while (func[i] !== 'E') {
if (func[i] === 'S') { // substitution
i++;
var next = func.indexOf('_', i);
var num = func.substring(i, next) || 0;
parts.push(subs[num] || '?');
i = next+1;
continue;
}
if (func[i] === 'C') { // constructor
parts.push(parts[parts.length-1]);
i += 2;
continue;
}
var size = parseInt(func.substr(i));
var pre = size.toString().length;
if (!size || !pre) { i--; break; } // counter i++ below us
var curr = func.substr(i + pre, size);
parts.push(curr);
subs.push(curr);
i += pre + size;
}
i++; // skip E
return parts;
}
function parse(rawList, limit, allowVoid) { // main parser
limit = limit || Infinity;
var ret = '', list = [];
function flushList() {
return '(' + list.join(', ') + ')';
}
var name;
if (func[i] === 'N') {
// namespaced N-E
name = parseNested().join('::');
limit--;
if (limit === 0) return rawList ? [name] : name;
} else {
// not namespaced
if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L'
var size = parseInt(func.substr(i));
if (size) {
var pre = size.toString().length;
name = func.substr(i + pre, size);
i += pre + size;
}
}
first = false;
if (func[i] === 'I') {
i++;
var iList = parse(true);
var iRet = parse(true, 1, true);
ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>';
} else {
ret = name;
}
paramLoop: while (i < func.length && limit-- > 0) {
//dump('paramLoop');
var c = func[i++];
if (c in basicTypes) {
list.push(basicTypes[c]);
} else {
switch (c) {
case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer
case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference
case 'L': { // literal
i++; // skip basic type
var end = func.indexOf('E', i);
var size = end - i;
list.push(func.substr(i, size));
i += size + 2; // size + 'EE'
break;
}
case 'A': { // array
var size = parseInt(func.substr(i));
i += size.toString().length;
if (func[i] !== '_') throw '?';
i++; // skip _
list.push(parse(true, 1, true)[0] + ' [' + size + ']');
break;
}
case 'E': break paramLoop;
default: ret += '?' + c; break paramLoop;
}
}
}
if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void)
if (rawList) {
if (ret) {
list.push(ret + '?');
}
return list;
} else {
return ret + flushList();
}
}
var parsed = func;
try {
// Special-case the entry point, since its name differs from other name mangling.
if (func == 'Object._main' || func == '_main') {
return 'main()';
}
if (typeof func === 'number') func = Pointer_stringify(func);
if (func[0] !== '_') return func;
if (func[1] !== '_') return func; // C function
if (func[2] !== 'Z') return func;
switch (func[3]) {
case 'n': return 'operator new()';
case 'd': return 'operator delete()';
}
parsed = parse();
} catch(e) {
parsed += '?';
}
if (parsed.indexOf('?') >= 0 && !hasLibcxxabi) {
Runtime.warnOnce('warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling');
}
return parsed;
}
function demangleAll(text) {
return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') });
}
function jsStackTrace() {
var err = new Error();
if (!err.stack) {
// IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,
// so try that as a special-case.
try {
throw new Error(0);
} catch(e) {
err = e;
}
if (!err.stack) {
return '(no stack trace available)';
}
}
return err.stack.toString();
}
function stackTrace() {
return demangleAll(jsStackTrace());
}
Module["stackTrace"] = stackTrace;
// Memory management
var PAGE_SIZE = 4096;
function alignMemoryPage(x) {
if (x % 4096 > 0) {
x += (4096 - (x % 4096));
}
return x;
}
var HEAP;
var buffer;
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
function updateGlobalBuffer(buf) {
Module['buffer'] = buffer = buf;
}
function updateGlobalBufferViews() {
Module['HEAP8'] = HEAP8 = new Int8Array(buffer);
Module['HEAP16'] = HEAP16 = new Int16Array(buffer);
Module['HEAP32'] = HEAP32 = new Int32Array(buffer);
Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);
Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);
Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);
Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);
Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);
}
var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
function abortOnCannotGrowMemory() {
abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');
}
function enlargeMemory() {
abortOnCannotGrowMemory();
}
var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
var totalMemory = 64*1024;
while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) {
if (totalMemory < 16*1024*1024) {
totalMemory *= 2;
} else {
totalMemory += 16*1024*1024
}
}
if (totalMemory !== TOTAL_MEMORY) {
Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be compliant with the asm.js spec (and given that TOTAL_STACK=' + TOTAL_STACK + ')');
TOTAL_MEMORY = totalMemory;
}
// Initialize the runtime's memory
// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
'JS engine does not provide full typed array support');
// Use a provided buffer, if there is one, or else allocate a new one
if (Module['buffer']) {
buffer = Module['buffer'];
assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength);
} else {
buffer = new ArrayBuffer(TOTAL_MEMORY);
}
updateGlobalBufferViews();
// Endianness check (note: assumes compiler arch was little-endian)
HEAP32[0] = 255;
assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
Module['HEAP'] = HEAP;
Module['buffer'] = buffer;
Module['HEAP8'] = HEAP8;
Module['HEAP16'] = HEAP16;
Module['HEAP32'] = HEAP32;
Module['HEAPU8'] = HEAPU8;
Module['HEAPU16'] = HEAPU16;
Module['HEAPU32'] = HEAPU32;
Module['HEAPF32'] = HEAPF32;
Module['HEAPF64'] = HEAPF64;
function callRuntimeCallbacks(callbacks) {
while(callbacks.length > 0) {
var callback = callbacks.shift();
if (typeof callback == 'function') {
callback();
continue;
}
var func = callback.func;
if (typeof func === 'number') {
if (callback.arg === undefined) {
Runtime.dynCall('v', func);
} else {
Runtime.dynCall('vi', func, [callback.arg]);
}
} else {
func(callback.arg === undefined ? null : callback.arg);
}
}
}
var __ATPRERUN__ = []; // functions called before the runtime is initialized
var __ATINIT__ = []; // functions called during startup
var __ATMAIN__ = []; // functions called when main() is to be run
var __ATEXIT__ = []; // functions called during shutdown
var __ATPOSTRUN__ = []; // functions called after the runtime has exited
var runtimeInitialized = false;
var runtimeExited = false;
function preRun() {
// compatibility - merge in anything from Module['preRun'] at this time
if (Module['preRun']) {
if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
while (Module['preRun'].length) {
addOnPreRun(Module['preRun'].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function ensureInitRuntime() {
if (runtimeInitialized) return;
runtimeInitialized = true;
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
callRuntimeCallbacks(__ATMAIN__);
}
function exitRuntime() {
callRuntimeCallbacks(__ATEXIT__);
runtimeExited = true;
}
function postRun() {
// compatibility - merge in anything from Module['postRun'] at this time
if (Module['postRun']) {
if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
while (Module['postRun'].length) {
addOnPostRun(Module['postRun'].shift());
}
}
callRuntimeCallbacks(__ATPOSTRUN__);
}
function addOnPreRun(cb) {
__ATPRERUN__.unshift(cb);
}
Module["addOnPreRun"] = addOnPreRun;
function addOnInit(cb) {
__ATINIT__.unshift(cb);
}
Module["addOnInit"] = addOnInit;
function addOnPreMain(cb) {
__ATMAIN__.unshift(cb);
}
Module["addOnPreMain"] = addOnPreMain;
function addOnExit(cb) {
__ATEXIT__.unshift(cb);
}
Module["addOnExit"] = addOnExit;
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
Module["addOnPostRun"] = addOnPostRun;
// Tools
function intArrayFromString(stringy, dontAddNull, length /* optional */) {
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;
}
Module["intArrayFromString"] = intArrayFromString;
function intArrayToString(array) {
var ret = [];
for (var i = 0; i < array.length; i++) {
var chr = array[i];
if (chr > 0xFF) {
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('');
}
Module["intArrayToString"] = intArrayToString;
function writeStringToMemory(string, buffer, dontAddNull) {
var array = intArrayFromString(string, dontAddNull);
var i = 0;
while (i < array.length) {
var chr = array[i];
HEAP8[(((buffer)+(i))>>0)]=chr;
i = i + 1;
}
}
Module["writeStringToMemory"] = writeStringToMemory;
function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
HEAP8[((buffer++)>>0)]=array[i];
}
}
Module["writeArrayToMemory"] = writeArrayToMemory;
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; ++i) {
assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
}
// Null-terminate the pointer to the HEAP.
if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
}
Module["writeAsciiToMemory"] = writeAsciiToMemory;
function unSign(value, bits, ignore) {
if (value >= 0) {
return value;
}
return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
: Math.pow(2, bits) + value;
}
function reSign(value, bits, ignore) {
if (value <= 0) {
return value;
}
var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
: Math.pow(2, bits-1);
if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
// but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
// TODO: In i64 mode 1, resign the two parts separately and safely
value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
}
return value;
}
// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) {
var ah = a >>> 16;
var al = a & 0xffff;
var bh = b >>> 16;
var bl = b & 0xffff;
return (al*bl + ((ah*bl + al*bh) << 16))|0;
};
Math.imul = Math['imul'];
if (!Math['clz32']) Math['clz32'] = function(x) {
x = x >>> 0;
for (var i = 0; i < 32; i++) {
if (x & (1 << (31 - i))) return i;
}
return 32;
};
Math.clz32 = Math['clz32']
var Math_abs = Math.abs;
var Math_cos = Math.cos;
var Math_sin = Math.sin;
var Math_tan = Math.tan;
var Math_acos = Math.acos;
var Math_asin = Math.asin;
var Math_atan = Math.atan;
var Math_atan2 = Math.atan2;
var Math_exp = Math.exp;
var Math_log = Math.log;
var Math_sqrt = Math.sqrt;
var Math_ceil = Math.ceil;
var Math_floor = Math.floor;
var Math_pow = Math.pow;
var Math_imul = Math.imul;
var Math_fround = Math.fround;
var Math_min = Math.min;
var Math_clz32 = Math.clz32;
// A counter of dependencies for calling run(). If we need to
// do asynchronous work before running, increment this and
// decrement it. Incrementing must happen in a place like
// PRE_RUN_ADDITIONS (used by emcc to add file preloading).
// Note that you can add dependencies in preRun, even though
// it happens right before run - run will be postponed until
// the dependencies are met.
var runDependencies = 0;
var runDependencyWatcher = null;
var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
var runDependencyTracking = {};
function getUniqueRunDependency(id) {
var orig = id;
while (1) {
if (!runDependencyTracking[id]) return id;
id = orig + Math.random();
}
return id;
}
function addRunDependency(id) {
runDependencies++;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(!runDependencyTracking[id]);
runDependencyTracking[id] = 1;
if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
// Check for missing dependencies every few seconds
runDependencyWatcher = setInterval(function() {
if (ABORT) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
return;
}
var shown = false;
for (var dep in runDependencyTracking) {
if (!shown) {
shown = true;
Module.printErr('still waiting on run dependencies:');
}
Module.printErr('dependency: ' + dep);
}
if (shown) {
Module.printErr('(end of list)');
}
}, 10000);
}
} else {
Module.printErr('warning: run dependency added without ID');
}
}
Module["addRunDependency"] = addRunDependency;
function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(runDependencyTracking[id]);
delete runDependencyTracking[id];
} else {
Module.printErr('warning: run dependency removed without ID');
}
if (runDependencies == 0) {
if (runDependencyWatcher !== null) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
}
if (dependenciesFulfilled) {
var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
callback(); // can add another dependenciesFulfilled
}
}
}
Module["removeRunDependency"] = removeRunDependency;
Module["preloadedImages"] = {}; // maps url to image data
Module["preloadedAudios"] = {}; // maps url to audio data
var memoryInitializer = null;
// === Body ===
var ASM_CONSTS = [];
STATIC_BASE = 8;
STATICTOP = STATIC_BASE + 77584;
/* global initializers */ __ATINIT__.push({ func: function() { _GNUNET_util_cl_init() } }, { func: function() { _GNUNET_CRYPTO_random_init() } }, { func: function() { _gpg_err_init() } });
/* memory initializer */ allocate([0,0,0,0,0,0,0,0,102,154,0,127,199,106,69,159,152,186,249,23,254,223,149,34,17,154,0,127,199,106,69,159,152,186,249,23,254,223,149,51,6,154,0,127,199,106,69,159,152,186,249,23,254,223,149,33,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,34,174,40,215,152,47,138,66,205,101,239,35,145,68,55,113,47,59,77,236,207,251,192,181,188,219,137,129,165,219,181,233,56,181,72,243,91,194,86,57,25,208,5,182,241,17,241,89,155,79,25,175,164,130,63,146,24,129,109,218,213,94,28,171,66,2,3,163,152,170,7,216,190,111,112,69,1,91,131,18,140,178,228,78,190,133,49,36,226,180,255,213,195,125,12,85,111,137,123,242,116,93,190,114,177,150,22,59,254,177,222,128,53,18,199,37,167,6,220,155,148,38,105,207,116,241,155,193,210,74,241,158,193,105,155,228,227,37,79,56,134,71,190,239,181,213,140,139,198,157,193,15,101,156,172,119,204,161,12,36,117,2,43,89,111,44,233,45,131,228,166,110,170,132,116,74,212,251,65,189,220,169,176,92,181,83,17,131,218,136,249,118,171,223,102,238,82,81,62,152,16,50,180,45,109,198,49,168,63,33,251,152,200,39,3,176,228,14,239,190,199,127,89,191,194,143,168,61,243,11,224,198,37,167,10,147,71,145,167,213,111,130,3,224,81,99,202,6,112,110,14,10,103,41,41,20,252,47,210,70,133,10,183,39,38,201,38,92,56,33,27,46,237,42,196,90,252,109,44,77,223,179,149,157,19,13,56,83,222,99,175,139,84,115,10,101,168,178,119,60,187,10,106,118,230,174,237,71,46,201,194,129,59,53,130,20,133,44,114,146,100,3,241,76,161,232,191,162,1,48,66,188,75,102,26,168,145,151,248,208,112,139,75,194,48,190,84,6,163,81,108,199,24,82,239,214,25,232,146,209,16,169,101,85,36,6,153,214,42,32,113,87,133,53,14,244,184,209,187,50,112,160,106,16,200,208,210,184,22,193,164,25,83,171,65,81,8,108,55,30,153,235,142,223,76,119,72,39,168,72,155,225,181,188,176,52,99,90,201,197,179,12,28,57,203,138,65,227,74,170,216,78,115,227,99,119,79,202,156,91,163,184,178,214,243,111,46,104,252,178,239,93,238,130,143,116,96,47,23,67,111,99,165,120,114,171,240,161,20,120,200,132,236,57,100,26,8,2,199,140,40,30,99,35,250,255,190,144,233,189,130,222,235,108,80,164,21,121,198,178,247,163,249,190,43,83,114,227,242,120,113,198,156,97,38,234,206,62,39,202,7,194,192,33,199,184,134,209,30,235,224,205,214,125,218,234,120,209,110,238,127,79,125,245,186,111,23,114,170,103,240,6,166,152,200,162,197,125,99,10,174,13,249,190,4,152,63,17,27,71,28,19,53,11,113,27,132,125,4,35,245,119,219,40,147,36,199,64,123,171,202,50,188,190,201,21,10,190,158,60,76,13,16,156,196,103,29,67,182,66,62,203,190,212,197,76,42,126,101,252,156,41,127,89,236,250,214,58,171,111,203,95,23,88,71,74,140,25,68,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,83,85,0,0,255,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,18,89,0,0,2,0,0,0,30,89,0,0,4,0,0,0,42,89,0,0,8,0,0,0,54,89,0,0,16,0,0,0,67,89,0,0,32,0,0,0,77,89,0,0,64,0,0,0,88,89,0,0,128,0,0,0,100,89,0,0,0,1,0,0,113,89,0,0,0,2,0,0,125,89,0,0,0,4,0,0,138,89,0,0,0,8,0,0,148,89,0,0,0,16,0,0,159,89,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,0,0,0,0,1,0,0,0,17,0,0,0,0,0,0,0,108,17,0,0,164,28,0,0,24,29,0,0,120,32,0,0,184,48,0,0,0,0,0,0,191,140,0,0,0,1,0,0,0,0,0,0,2,0,0,0,1,0,0,0,83,96,0,0,150,96,0,0,156,96,0,0,224,96,0,0,35,97,0,0,102,97,0,0,169,97,0,0,174,97,0,0,192,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,185,97,0,0,236,97,0,0,31,98,0,0,82,98,0,0,133,98,0,0,184,98,0,0,235,98,0,0,240,98,0,0,224,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,251,98,0,0,54,99,0,0,113,99,0,0,172,99,0,0,231,99,0,0,34,100,0,0,235,98,0,0,93,100,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,104,100,0,0,171,100,0,0,238,100,0,0,49,101,0,0,116,101,0,0,183,101,0,0,235,98,0,0,250,101,0,0,128,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,5,102,0,0,104,102,0,0,203,102,0,0,46,103,0,0,145,103,0,0,244,103,0,0,235,98,0,0,87,104,0,0,9,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,98,104,0,0,233,104,0,0,112,105,0,0,246,105,0,0,124,106,0,0,3,107,0,0,235,98,0,0,138,107,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154,107,0,0,197,107,0,0,240,107,0,0,27,108,0,0,70,108,0,0,113,108,0,0,235,98,0,0,156,108,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,108,0,0,223,108,0,0,18,109,0,0,69,109,0,0,120,109,0,0,171,109,0,0,235,98,0,0,222,109,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,238,109,0,0,41,110,0,0,100,110,0,0,159,110,0,0,218,110,0,0,21,111,0,0,235,98,0,0,80,111,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,111,0,0,163,111,0,0,230,111,0,0,41,112,0,0,108,112,0,0,175,112,0,0,235,98,0,0,242,112,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,113,0,0,85,113,0,0,168,113,0,0,251,113,0,0,78,114,0,0,161,114,0,0,235,98,0,0,244,114,0,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,115,0,0,103,115,0,0,202,115,0,0,45,116,0,0,144,116,0,0,243,116,0,0,235,98,0,0,86,117,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,117,0,0,233,117,0,0,108,118,0,0,239,118,0,0,114,119,0,0,245,119,0,0,235,98,0,0,120,120,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,120,0,0,201,120,0,0,12,121,0,0,79,121,0,0,146,121,0,0,213,121,0,0,235,98,0,0,24,122,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,122,0,0,112,122,0,0,179,122,0,0,246,122,0,0,57,123,0,0,124,123,0,0,235,98,0,0,191,123,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,212,123,0,0,23,124,0,0,90,124,0,0,157,124,0,0,57,123,0,0,224,124,0,0,235,98,0,0,35,125,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,125,0,0,123,125,0,0,190,125,0,0,1,126,0,0,68,126,0,0,135,126,0,0,235,98,0,0,202,126,0,0,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,126,0,0,201,120,0,0,91,127,0,0,222,127,0,0,97,128,0,0,228,128,0,0,235,98,0,0,103,129,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,129,0,0,250,129,0,0,125,130,0,0,0,131,0,0,131,131,0,0,6,132,0,0,235,98,0,0,137,132,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,132,0,0,28,133,0,0,159,133,0,0,34,134,0,0,165,134,0,0,40,135,0,0,235,98,0,0,171,135,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,135,0,0,68,126,0,0,201,120,0,0,248,135,0,0,59,136,0,0,126,136,0,0,235,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,140,0,0,193,136,0,0,174,97,0,0,216,136,0,0,174,97,0,0,236,136,0,0,174,97,0,0,247,136,0,0,174,97,0,0,1,137,0,0,240,98,0,0,10,137,0,0,240,98,0,0,20,137,0,0,240,98,0,0,33,137,0,0,93,100,0,0,42,137,0,0,93,100,0,0,62,137,0,0,93,100,0,0,73,137,0,0,93,100,0,0,83,137,0,0,250,101,0,0,92,137,0,0,250,101,0,0,102,137,0,0,250,101,0,0,115,137,0,0,87,104,0,0,124,137,0,0,87,104,0,0,134,137,0,0,87,104,0,0,147,137,0,0,138,107,0,0,156,137,0,0,156,108,0,0,177,137,0,0,222,109,0,0,198,137,0,0,80,111,0,0,219,137,0,0,242,112,0,0,240,137,0,0,244,114,0,0,5,138,0,0,86,117,0,0,27,138,0,0,120,120,0,0,49,138,0,0,24,122,0,0,66,138,0,0,191,123,0,0,83,138,0,0,35,125,0,0,100,138,0,0,24,122,0,0,117,138,0,0,35,125,0,0,141,138,0,0,24,122,0,0,165,138,0,0,35,125,0,0,182,138,0,0,103,129,0,0,199,138,0,0,137,132,0,0,219,138,0,0,171,135,0,0,239,138,0,0,0,0,0,0,0,0,0,0,251,141,0,0,9,142,0,0,38,142,0,0,163,14,1,9,139,198,219,191,69,105,15,58,126,158,109,15,139,190,162,163,158,97,72,0,143,208,94,68,43,142,0,0,57,142,0,0,66,142,0,0,137,111,177,18,138,187,223,25,104,50,16,124,212,157,243,63,71,180,177,22,153,18,186,79,83,104,75,34,87,142,0,0,102,142,0,0,153,142,0,0,127,179,203,53,136,198,193,246,255,169,105,77,125,106,210,100,147,101,176,193,246,93,105,209,236,131,51,234,174,142,0,0,189,142,0,0,240,142,0,0,108,17,80,104,116,1,60,172,106,42,188,27,179,130,98,124,236,106,144,216,110,252,1,45,231,175,236,90,10,143,0,0,26,143,0,0,81,143,0,0,149,233,160,219,150,32,149,173,174,190,155,45,111,13,188,226,212,153,241,18,242,210,183,39,63,166,135,14,213,143,0,0,230,143,0,0,81,143,0,0,58,133,65,102,172,93,159,2,63,84,213,23,208,179,157,189,148,103,112,219,156,43,149,201,246,245,101,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251,141,0,0,9,142,0,0,38,142,0,0,91,220,193,70,191,96,117,78,106,4,36,38,8,149,117,199,90,0,63,8,157,39,57,131,157,236,88,185,100,236,56,67,43,142,0,0,57,142,0,0,66,142,0,0,176,52,76,97,216,219,56,83,92,168,175,206,175,11,241,43,136,29,194,0,201,131,61,167,38,233,55,108,46,50,207,247,87,142,0,0,102,142,0,0,153,142,0,0,119,62,169,30,54,128,14,70,133,77,184,235,208,145,129,167,41,89,9,139,62,248,193,34,217,99,85,20,206,213,101,254,174,142,0,0,189,142,0,0,240,142,0,0,130,85,138,56,154,68,60,14,164,204,129,152,153,242,8,58,133,240,250,163,229,120,248,7,122,46,63,244,103,41,102,91,10,143,0,0,26,143,0,0,81,143,0,0,96,228,49,89,30,224,182,127,13,138,38,170,203,245,183,127,142,11,198,33,55,40,197,20,5,70,4,15,14,227,127,84,213,143,0,0,230,143,0,0,81,143,0,0,155,9,255,167,27,148,47,203,39,99,95,188,213,176,233,68,191,220,99,100,79,7,19,147,138,127,81,83,92,58,53,226,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251,141,0,0,9,142,0,0,38,142,0,0,175,69,210,227,118,72,64,49,97,127,120,210,181,138,107,27,156,126,244,100,245,160,27,71,228,46,195,115,99,34,68,94,142,34,64,202,94,105,226,199,139,50,57,236,250,178,22,73,43,142,0,0,57,142,0,0,66,142,0,0,175,208,57,68,216,72,149,98,107,8,37,244,171,70,144,127,21,249,218,219,228,16,30,198,130,170,3,76,124,235,197,156,250,234,158,169,7,110,222,127,74,241,82,232,178,250,156,182,87,142,0,0,102,142,0,0,153,142,0,0,136,6,38,8,211,230,173,138,10,162,172,224,20,200,168,111,10,166,53,217,71,172,159,235,232,62,244,229,89,102,20,75,42,90,179,157,193,56,20,185,78,58,182,225,1,163,79,39,174,142,0,0,189,142,0,0,240,142,0,0,62,138,105,183,120,60,37,133,25,51,171,98,144,175,108,167,122,153,129,72,8,80,0,156,197,87,124,110,31,87,59,78,104,1,221,35,196,167,214,121,204,248,163,134,198,116,207,251,10,143,0,0,26,143,0,0,81,143,0,0,78,206,8,68,133,129,62,144,136,210,198,58,4,27,197,180,79,158,241,1,42,43,88,143,60,209,31,5,3,58,196,198,12,46,246,171,64,48,254,130,150,36,141,241,99,244,73,82,213,143,0,0,230,143,0,0,81,143,0,0,102,23,23,142,148,31,2,13,53,30,47,37,78,143,211,44,96,36,32,254,176,184,251,154,220,206,187,130,70,30,153,197,166,120,204,49,231,153,23,109,56,96,230,17,12,70,82,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251,141,0,0,9,142,0,0,38,142,0,0,22,75,122,123,252,248,25,226,227,149,251,231,59,86,224,163,135,189,100,34,46,131,31,214,16,39,12,215,234,37,5,84,151,88,191,117,192,90,153,74,109,3,79,101,248,240,230,253,202,234,177,163,77,74,107,75,99,110,7,10,56,188,231,55,43,142,0,0,57,142,0,0,66,142,0,0,135,170,124,222,165,239,97,157,79,240,180,36,26,29,108,176,35,121,244,226,206,78,194,120,122,208,179,5,69,225,124,222,218,168,51,183,214,184,167,2,3,139,39,78,174,163,244,228,190,157,145,78,235,97,241,112,46,105,108,32,58,18,104,84,87,142,0,0,102,142,0,0,153,142,0,0,250,115,176,8,157,86,162,132,239,176,240,117,108,137,11,233,177,181,219,221,142,232,26,54,85,248,62,51,178,39,157,57,191,62,132,130,121,167,34,200,6,180,133,164,126,103,200,7,185,70,163,55,190,232,148,38,116,39,136,89,225,50,146,251,174,142,0,0,189,142,0,0,240,142,0,0,176,186,70,86,55,69,140,105,144,229,168,197,246,29,74,247,229,118,217,127,249,75,135,45,231,111,128,80,54,30,227,219,169,28,165,193,26,162,94,180,214,121,39,92,197,120,128,99,165,241,151,65,18,12,79,45,226,173,235,235,16,162,152,221,10,143,0,0,26,143,0,0,81,143,0,0,128,178,66,99,199,193,163,235,183,20,147,193,221,123,232,180,155,70,209,244,27,74,238,193,18,27,1,55,131,248,243,82,107,86,208,55,224,95,37,152,189,15,210,33,93,106,30,82,149,230,79,115,246,63,10,236,139,145,90,152,93,120,101,152,213,143,0,0,230,143,0,0,81,143,0,0,227,123,106,119,93,200,125,186,164,223,169,249,110,94,63,253,222,189,113,248,134,114,137,134,93,245,163,45,32,205,201,68,182,2,44,172,60,73,130,177,13,94,235,85,195,228,222,21,19,70,118,251,109,224,68,96,101,201,116,64,250,140,106,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,30,0,0,184,31,0,0,124,30,0,0,248,31,0,0,56,32,0,0,140,29,0,0,0,0,0,0,156,2,0,0,206,147,0,0,2,0,0,0,211,147,0,0,1,0,0,0,215,147,0,0,8,0,0,0,222,147,0,0,3,0,0,0,232,147,0,0,3,0,0,0,239,147,0,0,9,0,0,0,246,147,0,0,10,0,0,0,253,147,0,0,11,0,0,0,4,148,0,0,5,0,0,0,8,148,0,0,45,1,0,0,12,148,0,0,6,0,0,0,18,148,0,0,7,0,0,0,0,0,0,0,0,0,0,0,36,50,0,0,204,29,0,0,0,0,0,0,7,0,0,0,2,0,0,0,168,148,0,0,172,17,0,0,188,17,0,0,16,0,0,0,128,0,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,172,148,0,0,181,148,0,0,188,148,0,0,0,0,0,0,196,148,0,0,1,0,0,0,219,148,0,0,3,0,0,0,242,148,0,0,5,0,0,0,9,149,0,0,2,0,0,0,0,0,0,0,0,0,0,0,198,99,99,165,248,124,124,132,238,119,119,153,246,123,123,141,255,242,242,13,214,107,107,189,222,111,111,177,145,197,197,84,96,48,48,80,2,1,1,3,206,103,103,169,86,43,43,125,231,254,254,25,181,215,215,98,77,171,171,230,236,118,118,154,143,202,202,69,31,130,130,157,137,201,201,64,250,125,125,135,239,250,250,21,178,89,89,235,142,71,71,201,251,240,240,11,65,173,173,236,179,212,212,103,95,162,162,253,69,175,175,234,35,156,156,191,83,164,164,247,228,114,114,150,155,192,192,91,117,183,183,194,225,253,253,28,61,147,147,174,76,38,38,106,108,54,54,90,126,63,63,65,245,247,247,2,131,204,204,79,104,52,52,92,81,165,165,244,209,229,229,52,249,241,241,8,226,113,113,147,171,216,216,115,98,49,49,83,42,21,21,63,8,4,4,12,149,199,199,82,70,35,35,101,157,195,195,94,48,24,24,40,55,150,150,161,10,5,5,15,47,154,154,181,14,7,7,9,36,18,18,54,27,128,128,155,223,226,226,61,205,235,235,38,78,39,39,105,127,178,178,205,234,117,117,159,18,9,9,27,29,131,131,158,88,44,44,116,52,26,26,46,54,27,27,45,220,110,110,178,180,90,90,238,91,160,160,251,164,82,82,246,118,59,59,77,183,214,214,97,125,179,179,206,82,41,41,123,221,227,227,62,94,47,47,113,19,132,132,151,166,83,83,245,185,209,209,104,0,0,0,0,193,237,237,44,64,32,32,96,227,252,252,31,121,177,177,200,182,91,91,237,212,106,106,190,141,203,203,70,103,190,190,217,114,57,57,75,148,74,74,222,152,76,76,212,176,88,88,232,133,207,207,74,187,208,208,107,197,239,239,42,79,170,170,229,237,251,251,22,134,67,67,197,154,77,77,215,102,51,51,85,17,133,133,148,138,69,69,207,233,249,249,16,4,2,2,6,254,127,127,129,160,80,80,240,120,60,60,68,37,159,159,186,75,168,168,227,162,81,81,243,93,163,163,254,128,64,64,192,5,143,143,138,63,146,146,173,33,157,157,188,112,56,56,72,241,245,245,4,99,188,188,223,119,182,182,193,175,218,218,117,66,33,33,99,32,16,16,48,229,255,255,26,253,243,243,14,191,210,210,109,129,205,205,76,24,12,12,20,38,19,19,53,195,236,236,47,190,95,95,225,53,151,151,162,136,68,68,204,46,23,23,57,147,196,196,87,85,167,167,242,252,126,126,130,122,61,61,71,200,100,100,172,186,93,93,231,50,25,25,43,230,115,115,149,192,96,96,160,25,129,129,152,158,79,79,209,163,220,220,127,68,34,34,102,84,42,42,126,59,144,144,171,11,136,136,131,140,70,70,202,199,238,238,41,107,184,184,211,40,20,20,60,167,222,222,121,188,94,94,226,22,11,11,29,173,219,219,118,219,224,224,59,100,50,50,86,116,58,58,78,20,10,10,30,146,73,73,219,12,6,6,10,72,36,36,108,184,92,92,228,159,194,194,93,189,211,211,110,67,172,172,239,196,98,98,166,57,145,145,168,49,149,149,164,211,228,228,55,242,121,121,139,213,231,231,50,139,200,200,67,110,55,55,89,218,109,109,183,1,141,141,140,177,213,213,100,156,78,78,210,73,169,169,224,216,108,108,180,172,86,86,250,243,244,244,7,207,234,234,37,202,101,101,175,244,122,122,142,71,174,174,233,16,8,8,24,111,186,186,213,240,120,120,136,74,37,37,111,92,46,46,114,56,28,28,36,87,166,166,241,115,180,180,199,151,198,198,81,203,232,232,35,161,221,221,124,232,116,116,156,62,31,31,33,150,75,75,221,97,189,189,220,13,139,139,134,15,138,138,133,224,112,112,144,124,62,62,66,113,181,181,196,204,102,102,170,144,72,72,216,6,3,3,5,247,246,246,1,28,14,14,18,194,97,97,163,106,53,53,95,174,87,87,249,105,185,185,208,23,134,134,145,153,193,193,88,58,29,29,39,39,158,158,185,217,225,225,56,235,248,248,19,43,152,152,179,34,17,17,51,210,105,105,187,169,217,217,112,7,142,142,137,51,148,148,167,45,155,155,182,60,30,30,34,21,135,135,146,201,233,233,32,135,206,206,73,170,85,85,255,80,40,40,120,165,223,223,122,3,140,140,143,89,161,161,248,9,137,137,128,26,13,13,23,101,191,191,218,215,230,230,49,132,66,66,198,208,104,104,184,130,65,65,195,41,153,153,176,90,45,45,119,30,15,15,17,123,176,176,203,168,84,84,252,109,187,187,214,44,22,22,58,81,244,167,80,126,65,101,83,26,23,164,195,58,39,94,150,59,171,107,203,31,157,69,241,172,250,88,171,75,227,3,147,32,48,250,85,173,118,109,246,136,204,118,145,245,2,76,37,79,229,215,252,197,42,203,215,38,53,68,128,181,98,163,143,222,177,90,73,37,186,27,103,69,234,14,152,93,254,192,225,195,47,117,2,129,76,240,18,141,70,151,163,107,211,249,198,3,143,95,231,21,146,156,149,191,109,122,235,149,82,89,218,212,190,131,45,88,116,33,211,73,224,105,41,142,201,200,68,117,194,137,106,244,142,121,120,153,88,62,107,39,185,113,221,190,225,79,182,240,136,173,23,201,32,172,102,125,206,58,180,99,223,74,24,229,26,49,130,151,81,51,96,98,83,127,69,177,100,119,224,187,107,174,132,254,129,160,28,249,8,43,148,112,72,104,88,143,69,253,25,148,222,108,135,82,123,248,183,171,115,211,35,114,75,2,226,227,31,143,87,102,85,171,42,178,235,40,7,47,181,194,3,134,197,123,154,211,55,8,165,48,40,135,242,35,191,165,178,2,3,106,186,237,22,130,92,138,207,28,43,167,121,180,146,243,7,242,240,78,105,226,161,101,218,244,205,6,5,190,213,209,52,98,31,196,166,254,138,52,46,83,157,162,243,85,160,5,138,225,50,164,246,235,117,11,131,236,57,64,96,239,170,94,113,159,6,189,110,16,81,62,33,138,249,150,221,6,61,221,62,5,174,77,230,189,70,145,84,141,181,113,196,93,5,4,6,212,111,96,80,21,255,25,152,251,36,214,189,233,151,137,64,67,204,103,217,158,119,176,232,66,189,7,137,139,136,231,25,91,56,121,200,238,219,161,124,10,71,124,66,15,233,248,132,30,201,0,0,0,0,9,128,134,131,50,43,237,72,30,17,112,172,108,90,114,78,253,14,255,251,15,133,56,86,61,174,213,30,54,45,57,39,10,15,217,100,104,92,166,33,155,91,84,209,36,54,46,58,12,10,103,177,147,87,231,15,180,238,150,210,27,155,145,158,128,192,197,79,97,220,32,162,90,119,75,105,28,18,26,22,226,147,186,10,192,160,42,229,60,34,224,67,18,27,23,29,14,9,13,11,242,139,199,173,45,182,168,185,20,30,169,200,87,241,25,133,175,117,7,76,238,153,221,187,163,127,96,253,247,1,38,159,92,114,245,188,68,102,59,197,91,251,126,52,139,67,41,118,203,35,198,220,182,237,252,104,184,228,241,99,215,49,220,202,66,99,133,16,19,151,34,64,132,198,17,32,133,74,36,125,210,187,61,248,174,249,50,17,199,41,161,109,29,158,47,75,220,178,48,243,13,134,82,236,119,193,227,208,43,179,22,108,169,112,185,153,17,148,72,250,71,233,100,34,168,252,140,196,160,240,63,26,86,125,44,216,34,51,144,239,135,73,78,199,217,56,209,193,140,202,162,254,152,212,11,54,166,245,129,207,165,122,222,40,218,183,142,38,63,173,191,164,44,58,157,228,80,120,146,13,106,95,204,155,84,126,70,98,246,141,19,194,144,216,184,232,46,57,247,94,130,195,175,245,159,93,128,190,105,208,147,124,111,213,45,169,207,37,18,179,200,172,153,59,16,24,125,167,232,156,99,110,219,59,187,123,205,38,120,9,110,89,24,244,236,154,183,1,131,79,154,168,230,149,110,101,170,255,230,126,33,188,207,8,239,21,232,230,186,231,155,217,74,111,54,206,234,159,9,212,41,176,124,214,49,164,178,175,42,63,35,49,198,165,148,48,53,162,102,192,116,78,188,55,252,130,202,166,224,144,208,176,51,167,216,21,241,4,152,74,65,236,218,247,127,205,80,14,23,145,246,47,118,77,214,141,67,239,176,77,204,170,77,84,228,150,4,223,158,209,181,227,76,106,136,27,193,44,31,184,70,101,81,127,157,94,234,4,1,140,53,93,250,135,116,115,251,11,65,46,179,103,29,90,146,219,210,82,233,16,86,51,109,214,71,19,154,215,97,140,55,161,12,122,89,248,20,142,235,19,60,137,206,169,39,238,183,97,201,53,225,28,229,237,122,71,177,60,156,210,223,89,85,242,115,63,24,20,206,121,115,199,55,191,83,247,205,234,95,253,170,91,223,61,111,20,120,68,219,134,202,175,243,129,185,104,196,62,56,36,52,44,194,163,64,95,22,29,195,114,188,226,37,12,40,60,73,139,255,13,149,65,57,168,1,113,8,12,179,222,216,180,228,156,100,86,193,144,123,203,132,97,213,50,182,112,72,108,92,116,208,184,87,66,82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,216,0,0,0,171,0,0,0,77,0,0,0,154,0,0,0,47,0,0,0,94,0,0,0,188,0,0,0,99,0,0,0,198,0,0,0,151,0,0,0,53,0,0,0,106,0,0,0,212,0,0,0,179,0,0,0,125,0,0,0,250,0,0,0,239,0,0,0,197,0,0,0,145,0,0,0,2,0,0,0,43,126,21,22,40,174,210,166,171,247,21,136,9,207,79,60,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,107,193,190,226,46,64,159,150,233,61,126,17,115,147,23,42,59,63,217,46,183,45,173,32,51,52,73,248,232,60,251,74,174,45,138,87,30,3,172,156,158,183,111,172,69,175,142,81,200,166,69,55,160,179,169,63,205,227,205,173,159,28,229,139,48,200,28,70,163,92,228,17,229,251,193,25,26,10,82,239,38,117,31,103,163,203,177,64,177,128,140,241,135,164,244,223,246,159,36,69,223,79,155,23,173,43,65,123,230,108,55,16,192,75,5,53,124,93,28,14,234,196,198,111,159,247,242,230,5,0,0,0,43,126,21,22,40,174,210,166,171,247,21,136,9,207,79,60,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,107,193,190,226,46,64,159,150,233,61,126,17,115,147,23,42,59,63,217,46,183,45,173,32,51,52,73,248,232,60,251,74,174,45,138,87,30,3,172,156,158,183,111,172,69,175,142,81,119,137,80,141,22,145,143,3,245,60,82,218,197,78,216,37,48,200,28,70,163,92,228,17,229,251,193,25,26,10,82,239,151,64,5,30,156,95,236,246,67,68,247,168,34,96,237,204,246,159,36,69,223,79,155,23,173,43,65,123,230,108,55,16,48,76,101,40,246,89,199,120,102,165,16,217,193,214,174,94,8,0,0,0,2,0,0,0,8,151,0,0,228,28,0,0,240,28,0,0,16,0,0,0,192,0,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,15,151,0,0,27,151,0,0,0,0,0,0,35,151,0,0,1,0,0,0,59,151,0,0,3,0,0,0,83,151,0,0,5,0,0,0,107,151,0,0,2,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,2,0,0,0,131,151,0,0,88,29,0,0,100,29,0,0,16,0,0,0,0,1,0,0,248,1,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,138,151,0,0,150,151,0,0,0,0,0,0,158,151,0,0,1,0,0,0,182,151,0,0,3,0,0,0,206,151,0,0,5,0,0,0,230,151,0,0,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,254,151,0,0,8,152,0,0,15,0,0,0,192,29,0,0,20,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,184,0,0,0,0,0,0,0,23,152,0,0,38,152,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,170,153,0,0,32,30,0,0,215,153,0,0,218,153,0,0,225,153,0,0,227,153,0,0,229,153,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,174,153,0,0,178,153,0,0,190,153,0,0,0,0,0,0,2,0,0,0,2,0,0,0,45,165,0,0,50,165,0,0,15,0,0,0,100,30,0,0,20,0,0,0,18,0,0,0,6,0,0,0,19,0,0,0,20,0,0,0,184,0,0,0,21,0,0,0,65,165,0,0,86,165,0,0,104,165,0,0,118,165,0,0,132,165,0,0,0,0,0,0,11,0,0,0,2,0,0,0,213,165,0,0,220,165,0,0,19,0,0,0,176,30,0,0,28,0,0,0,22,0,0,0,6,0,0,0,23,0,0,0,24,0,0,0,192,0,0,0,25,0,0,0,239,165,0,0,0,0,0,0,152,47,138,66,145,68,55,113,207,251,192,181,165,219,181,233,91,194,86,57,241,17,241,89,164,130,63,146,213,94,28,171,152,170,7,216,1,91,131,18,190,133,49,36,195,125,12,85,116,93,190,114,254,177,222,128,167,6,220,155,116,241,155,193,193,105,155,228,134,71,190,239,198,157,193,15,204,161,12,36,111,44,233,45,170,132,116,74,220,169,176,92,218,136,249,118,82,81,62,152,109,198,49,168,200,39,3,176,199,127,89,191,243,11,224,198,71,145,167,213,81,99,202,6,103,41,41,20,133,10,183,39,56,33,27,46,252,109,44,77,19,13,56,83,84,115,10,101,187,10,106,118,46,201,194,129,133,44,114,146,161,232,191,162,75,102,26,168,112,139,75,194,163,81,108,199,25,232,146,209,36,6,153,214,133,53,14,244,112,160,106,16,22,193,164,25,8,108,55,30,76,119,72,39,181,188,176,52,179,12,28,57,74,170,216,78,79,202,156,91,243,111,46,104,238,130,143,116,111,99,165,120,20,120,200,132,8,2,199,140,250,255,190,144,235,108,80,164,247,163,249,190,242,120,113,198,8,0,0,0,2,0,0,0,249,166,0,0,0,167,0,0,19,0,0,0,236,31,0,0,32,0,0,0,26,0,0,0,6,0,0,0,23,0,0,0,24,0,0,0,192,0,0,0,25,0,0,0,19,167,0,0,42,167,0,0,0,0,0,0,10,0,0,0,2,0,0,0,64,167,0,0,71,167,0,0,19,0,0,0,44,32,0,0,64,0,0,0,27,0,0,0,6,0,0,0,28,0,0,0,29,0,0,0,224,0,0,0,30,0,0,0,90,167,0,0,113,167,0,0,0,0,0,0,9,0,0,0,2,0,0,0,130,169,0,0,137,169,0,0,19,0,0,0,108,32,0,0,48,0,0,0,31,0,0,0,6,0,0,0,28,0,0,0,29,0,0,0,224,0,0,0,30,0,0,0,156,169,0,0,179,169,0,0,0,0,0,0,10,0,0,0,0,0,0,0,201,169,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,1,0,0,160,16,0,0,32,0,0,0,33,0,0,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117,50,188,188,243,33,236,236,198,67,32,32,244,201,179,179,219,3,218,218,123,139,2,2,251,43,226,226,200,250,158,158,74,236,201,201,211,9,212,212,230,107,24,24,107,159,30,30,69,14,152,152,125,56,178,178,232,210,166,166,75,183,38,38,214,87,60,60,50,138,147,147,216,238,130,130,253,152,82,82,55,212,123,123,113,55,187,187,241,151,91,91,225,131,71,71,48,60,36,36,15,226,81,81,248,198,186,186,27,243,74,74,135,72,191,191,250,112,13,13,6,179,176,176,63,222,117,117,94,253,210,210,186,32,125,125,174,49,102,102,91,163,58,58,138,28,89,89,0,0,0,0,188,147,205,205,157,224,26,26,109,44,174,174,193,171,127,127,177,199,43,43,14,185,190,190,128,160,224,224,93,16,138,138,210,82,59,59,213,186,100,100,160,136,216,216,132,165,231,231,7,232,95,95,20,17,27,27,181,194,44,44,144,180,252,252,44,39,49,49,163,101,128,128,178,42,115,115,115,129,12,12,76,95,121,121,84,65,107,107,146,2,75,75,116,105,83,83,54,143,148,148,81,31,131,131,56,54,42,42,176,156,196,196,189,200,34,34,90,248,213,213,252,195,189,189,96,120,72,72,98,206,255,255,150,7,76,76,108,119,65,65,66,230,199,199,247,36,235,235,16,20,28,28,124,99,93,93,40,34,54,54,39,192,103,103,140,175,233,233,19,249,68,68,149,234,20,20,156,187,245,245,199,24,207,207,36,45,63,63,70,227,192,192,59,219,114,114,112,108,84,84,202,76,41,41,227,53,240,240,133,254,8,8,203,23,198,198,17,79,243,243,208,228,140,140,147,89,164,164,184,150,202,202,166,59,104,104,131,77,184,184,32,40,56,56,255,46,229,229,159,86,173,173,119,132,11,11,195,29,200,200,204,255,153,153,3,237,88,88,111,154,25,25,8,10,14,14,191,126,149,149,64,80,112,112,231,48,247,247,43,207,110,110,226,110,31,31,121,61,181,181,12,15,9,9,170,52,97,97,130,22,87,87,65,11,159,159,58,128,157,157,234,100,17,17,185,205,37,37,228,221,175,175,154,8,69,69,164,141,223,223,151,92,163,163,126,213,234,234,218,88,53,53,122,208,237,237,23,252,67,67,102,203,248,248,148,177,251,251,161,211,55,55,29,64,250,250,61,104,194,194,240,204,180,180,222,93,50,50,179,113,156,156,11,231,86,86,114,218,227,227,167,96,135,135,28,27,21,21,239,58,249,249,209,191,99,99,83,169,52,52,62,133,154,154,143,66,177,177,51,209,124,124,38,155,136,136,95,166,61,61,236,215,161,161,118,223,228,228,42,148,129,129,73,1,145,145,129,251,15,15,136,170,238,238,238,97,22,22,33,115,215,215,196,245,151,151,26,168,165,165,235,63,254,254,217,181,109,109,197,174,120,120,57,109,197,197,153,229,29,29,205,164,118,118,173,220,62,62,49,103,203,203,139,71,182,182,1,91,239,239,24,30,18,18,35,197,96,96,221,176,106,106,31,246,77,77,78,233,206,206,45,124,222,222,249,157,85,85,72,90,126,126,79,178,33,33,242,122,3,3,101,38,160,160,142,25,94,94,120,102,90,90,92,75,101,101,88,78,98,98,25,69,253,253,141,244,6,6,229,134,64,64,152,190,242,242,87,172,51,51,103,144,23,23,127,142,5,5,5,94,232,232,100,125,79,79,175,106,137,137,99,149,16,16,182,47,116,116,254,117,10,10,245,146,92,92,183,116,155,155,60,51,45,45,165,214,48,48,206,73,46,46,233,137,73,73,104,114,70,70,68,85,119,119,224,216,168,168,77,4,150,150,67,189,40,40,105,41,169,169,41,121,217,217,46,145,134,134,172,135,209,209,21,74,244,244,89,21,141,141,168,130,214,214,10,188,185,185,158,13,66,66,110,193,246,246,71,184,47,47,223,6,221,221,52,57,35,35,53,98,204,204,106,196,241,241,207,18,193,193,220,235,133,133,34,158,143,143,201,161,113,113,192,240,144,144,155,83,170,170,137,241,1,1,212,225,139,139,237,140,78,78,171,111,142,142,18,162,171,171,162,62,111,111,13,84,230,230,82,242,219,219,187,123,146,146,2,182,183,183,47,202,105,105,169,217,57,57,215,12,211,211,97,35,167,167,30,173,162,162,180,153,195,195,80,68,108,108,4,5,7,7,246,127,4,4,194,70,39,39,22,167,172,172,37,118,208,208,134,19,80,80,86,247,220,220,85,26,132,132,9,81,225,225,190,37,122,122,145,239,19,19,57,57,217,169,23,23,144,103,156,156,113,179,166,166,210,232,7,7,5,4,82,82,152,253,128,128,101,163,228,228,223,118,69,69,8,154,75,75,2,146,224,224,160,128,90,90,102,120,175,175,221,228,106,106,176,221,99,99,191,209,42,42,54,56,230,230,84,13,32,32,67,198,204,204,98,53,242,242,190,152,18,18,30,24,235,235,36,247,161,161,215,236,65,65,119,108,40,40,189,67,188,188,50,117,123,123,212,55,136,136,155,38,13,13,112,250,68,68,249,19,251,251,177,148,126,126,90,72,3,3,122,242,140,140,228,208,182,182,71,139,36,36,60,48,231,231,165,132,107,107,65,84,221,221,6,223,96,96,197,35,253,253,69,25,58,58,163,91,194,194,104,61,141,141,21,89,236,236,33,243,102,102,49,174,111,111,62,162,87,87,22,130,16,16,149,99,239,239,91,1,184,184,77,131,134,134,145,46,109,109,181,217,131,131,31,81,170,170,83,155,93,93,99,124,104,104,59,166,254,254,63,235,48,48,214,165,122,122,37,190,172,172,167,22,9,9,15,12,240,240,53,227,167,167,35,97,144,144,240,192,233,233,175,140,157,157,128,58,92,92,146,245,12,12,129,115,49,49,39,44,208,208,118,37,86,86,231,11,146,146,123,187,206,206,233,78,1,1,241,137,30,30,159,107,52,52,169,83,241,241,196,106,195,195,153,180,91,91,151,241,71,71,131,225,24,24,107,230,34,34,200,189,152,152,14,69,31,31,110,226,179,179,201,244,116,116,47,182,248,248,203,102,153,153,255,204,20,20,234,149,88,88,237,3,220,220,247,86,139,139,225,212,21,21,27,28,162,162,173,30,211,211,12,215,226,226,43,251,200,200,29,195,94,94,25,142,44,44,194,181,73,73,137,233,193,193,18,207,149,149,126,191,125,125,32,186,17,17,100,234,11,11,132,119,197,197,109,57,137,137,106,175,124,124,209,51,113,113,161,201,255,255,206,98,187,187,55,113,15,15,251,129,181,181,61,121,225,225,81,9,62,62,220,173,63,63,45,36,118,118,164,205,85,85,157,249,130,130,238,216,64,64,134,229,120,120,174,197,37,37,205,185,150,150,4,77,119,119,85,68,14,14,10,8,80,80,19,134,247,247,48,231,55,55,211,161,250,250,64,29,97,97,52,170,78,78,140,237,176,176,179,6,84,84,108,112,115,115,42,178,59,59,82,210,159,159,11,65,2,2,139,123,216,216,136,160,243,243,79,17,203,203,103,49,39,39,70,194,103,103,192,39,252,252,180,144,56,56,40,32,4,4,127,246,72,72,120,96,229,229,46,255,76,76,7,150,101,101,75,92,43,43,199,177,142,142,111,171,66,66,13,158,245,245,187,156,219,219,242,82,74,74,243,27,61,61,166,95,164,164,89,147,185,185,188,10,249,249,58,239,19,19,239,145,8,8,254,133,145,145,1,73,22,22,97,238,222,222,124,45,33,33,178,79,177,177,66,143,114,114,219,59,47,47,184,71,191,191,72,135,174,174,44,109,192,192,227,70,60,60,87,214,154,154,133,62,169,169,41,105,79,79,125,100,129,129,148,42,46,46,73,206,198,198,23,203,105,105,202,47,189,189,195,252,163,163,92,151,232,232,94,5,237,237,208,122,209,209,135,172,5,5,142,127,100,100,186,213,165,165,168,26,38,38,183,75,190,190,185,14,135,135,96,167,213,213,248,90,54,54,34,40,27,27,17,20,117,117,222,63,217,217,121,41,238,238,170,136,45,45,51,60,121,121,95,76,183,183,182,2,202,202,150,184,53,53,88,218,196,196,156,176,67,67,252,23,132,132,26,85,77,77,246,31,89,89,28,138,178,178,56,125,51,51,172,87,207,207,24,199,6,6,244,141,83,83,105,116], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
/* memory initializer */ allocate([155,155,116,183,151,151,245,196,173,173,86,159,227,227,218,114,234,234,213,126,244,244,74,21,143,143,158,34,171,171,162,18,98,98,78,88,95,95,232,7,29,29,229,153,35,35,57,52,246,246,193,110,108,108,68,80,50,50,93,222,70,70,114,104,160,160,38,101,205,205,147,188,218,218,3,219,186,186,198,248,158,158,250,200,214,214,130,168,110,110,207,43,112,112,80,64,133,133,235,220,10,10,117,254,147,147,138,50,223,223,141,164,41,41,76,202,28,28,20,16,215,215,115,33,180,180,204,240,212,212,9,211,138,138,16,93,81,81,226,15,0,0,0,0,25,25,154,111,26,26,224,157,148,148,143,54,199,199,230,66,201,201,236,74,210,210,253,94,127,127,171,193,168,168,216,224,50,188,117,188,33,236,243,236,67,32,198,32,201,179,244,179,3,218,219,218,139,2,123,2,43,226,251,226,250,158,200,158,236,201,74,201,9,212,211,212,107,24,230,24,159,30,107,30,14,152,69,152,56,178,125,178,210,166,232,166,183,38,75,38,87,60,214,60,138,147,50,147,238,130,216,130,152,82,253,82,212,123,55,123,55,187,113,187,151,91,241,91,131,71,225,71,60,36,48,36,226,81,15,81,198,186,248,186,243,74,27,74,72,191,135,191,112,13,250,13,179,176,6,176,222,117,63,117,253,210,94,210,32,125,186,125,49,102,174,102,163,58,91,58,28,89,138,89,0,0,0,0,147,205,188,205,224,26,157,26,44,174,109,174,171,127,193,127,199,43,177,43,185,190,14,190,160,224,128,224,16,138,93,138,82,59,210,59,186,100,213,100,136,216,160,216,165,231,132,231,232,95,7,95,17,27,20,27,194,44,181,44,180,252,144,252,39,49,44,49,101,128,163,128,42,115,178,115,129,12,115,12,95,121,76,121,65,107,84,107,2,75,146,75,105,83,116,83,143,148,54,148,31,131,81,131,54,42,56,42,156,196,176,196,200,34,189,34,248,213,90,213,195,189,252,189,120,72,96,72,206,255,98,255,7,76,150,76,119,65,108,65,230,199,66,199,36,235,247,235,20,28,16,28,99,93,124,93,34,54,40,54,192,103,39,103,175,233,140,233,249,68,19,68,234,20,149,20,187,245,156,245,24,207,199,207,45,63,36,63,227,192,70,192,219,114,59,114,108,84,112,84,76,41,202,41,53,240,227,240,254,8,133,8,23,198,203,198,79,243,17,243,228,140,208,140,89,164,147,164,150,202,184,202,59,104,166,104,77,184,131,184,40,56,32,56,46,229,255,229,86,173,159,173,132,11,119,11,29,200,195,200,255,153,204,153,237,88,3,88,154,25,111,25,10,14,8,14,126,149,191,149,80,112,64,112,48,247,231,247,207,110,43,110,110,31,226,31,61,181,121,181,15,9,12,9,52,97,170,97,22,87,130,87,11,159,65,159,128,157,58,157,100,17,234,17,205,37,185,37,221,175,228,175,8,69,154,69,141,223,164,223,92,163,151,163,213,234,126,234,88,53,218,53,208,237,122,237,252,67,23,67,203,248,102,248,177,251,148,251,211,55,161,55,64,250,29,250,104,194,61,194,204,180,240,180,93,50,222,50,113,156,179,156,231,86,11,86,218,227,114,227,96,135,167,135,27,21,28,21,58,249,239,249,191,99,209,99,169,52,83,52,133,154,62,154,66,177,143,177,209,124,51,124,155,136,38,136,166,61,95,61,215,161,236,161,223,228,118,228,148,129,42,129,1,145,73,145,251,15,129,15,170,238,136,238,97,22,238,22,115,215,33,215,245,151,196,151,168,165,26,165,63,254,235,254,181,109,217,109,174,120,197,120,109,197,57,197,229,29,153,29,164,118,205,118,220,62,173,62,103,203,49,203,71,182,139,182,91,239,1,239,30,18,24,18,197,96,35,96,176,106,221,106,246,77,31,77,233,206,78,206,124,222,45,222,157,85,249,85,90,126,72,126,178,33,79,33,122,3,242,3,38,160,101,160,25,94,142,94,102,90,120,90,75,101,92,101,78,98,88,98,69,253,25,253,244,6,141,6,134,64,229,64,190,242,152,242,172,51,87,51,144,23,103,23,142,5,127,5,94,232,5,232,125,79,100,79,106,137,175,137,149,16,99,16,47,116,182,116,117,10,254,10,146,92,245,92,116,155,183,155,51,45,60,45,214,48,165,48,73,46,206,46,137,73,233,73,114,70,104,70,85,119,68,119,216,168,224,168,4,150,77,150,189,40,67,40,41,169,105,169,121,217,41,217,145,134,46,134,135,209,172,209,74,244,21,244,21,141,89,141,130,214,168,214,188,185,10,185,13,66,158,66,193,246,110,246,184,47,71,47,6,221,223,221,57,35,52,35,98,204,53,204,196,241,106,241,18,193,207,193,235,133,220,133,158,143,34,143,161,113,201,113,240,144,192,144,83,170,155,170,241,1,137,1,225,139,212,139,140,78,237,78,111,142,171,142,162,171,18,171,62,111,162,111,84,230,13,230,242,219,82,219,123,146,187,146,182,183,2,183,202,105,47,105,217,57,169,57,12,211,215,211,35,167,97,167,173,162,30,162,153,195,180,195,68,108,80,108,5,7,4,7,127,4,246,4,70,39,194,39,167,172,22,172,118,208,37,208,19,80,134,80,247,220,86,220,26,132,85,132,81,225,9,225,37,122,190,122,239,19,145,19,217,169,57,217,144,103,23,144,113,179,156,113,210,232,166,210,5,4,7,5,152,253,82,152,101,163,128,101,223,118,228,223,8,154,69,8,2,146,75,2,160,128,224,160,102,120,90,102,221,228,175,221,176,221,106,176,191,209,99,191,54,56,42,54,84,13,230,84,67,198,32,67,98,53,204,98,190,152,242,190,30,24,18,30,36,247,235,36,215,236,161,215,119,108,65,119,189,67,40,189,50,117,188,50,212,55,123,212,155,38,136,155,112,250,13,112,249,19,68,249,177,148,251,177,90,72,126,90,122,242,3,122,228,208,140,228,71,139,182,71,60,48,36,60,165,132,231,165,65,84,107,65,6,223,221,6,197,35,96,197,69,25,253,69,163,91,58,163,104,61,194,104,21,89,141,21,33,243,236,33,49,174,102,49,62,162,111,62,22,130,87,22,149,99,16,149,91,1,239,91,77,131,184,77,145,46,134,145,181,217,109,181,31,81,131,31,83,155,170,83,99,124,93,99,59,166,104,59,63,235,254,63,214,165,48,214,37,190,122,37,167,22,172,167,15,12,9,15,53,227,240,53,35,97,167,35,240,192,144,240,175,140,233,175,128,58,157,128,146,245,92,146,129,115,12,129,39,44,49,39,118,37,208,118,231,11,86,231,123,187,146,123,233,78,206,233,241,137,1,241,159,107,30,159,169,83,52,169,196,106,241,196,153,180,195,153,151,241,91,151,131,225,71,131,107,230,24,107,200,189,34,200,14,69,152,14,110,226,31,110,201,244,179,201,47,182,116,47,203,102,248,203,255,204,153,255,234,149,20,234,237,3,88,237,247,86,220,247,225,212,139,225,27,28,21,27,173,30,162,173,12,215,211,12,43,251,226,43,29,195,200,29,25,142,94,25,194,181,44,194,137,233,73,137,18,207,193,18,126,191,149,126,32,186,125,32,100,234,17,100,132,119,11,132,109,57,197,109,106,175,137,106,209,51,124,209,161,201,113,161,206,98,255,206,55,113,187,55,251,129,15,251,61,121,181,61,81,9,225,81,220,173,62,220,45,36,63,45,164,205,118,164,157,249,85,157,238,216,130,238,134,229,64,134,174,197,120,174,205,185,37,205,4,77,150,4,85,68,119,85,10,8,14,10,19,134,80,19,48,231,247,48,211,161,55,211,64,29,250,64,52,170,97,52,140,237,78,140,179,6,176,179,108,112,84,108,42,178,115,42,82,210,59,82,11,65,159,11,139,123,2,139,136,160,216,136,79,17,243,79,103,49,203,103,70,194,39,70,192,39,103,192,180,144,252,180,40,32,56,40,127,246,4,127,120,96,72,120,46,255,229,46,7,150,76,7,75,92,101,75,199,177,43,199,111,171,142,111,13,158,66,13,187,156,245,187,242,82,219,242,243,27,74,243,166,95,61,166,89,147,164,89,188,10,185,188,58,239,249,58,239,145,19,239,254,133,8,254,1,73,145,1,97,238,22,97,124,45,222,124,178,79,33,178,66,143,177,66,219,59,114,219,184,71,47,184,72,135,191,72,44,109,174,44,227,70,192,227,87,214,60,87,133,62,154,133,41,105,169,41,125,100,79,125,148,42,129,148,73,206,46,73,23,203,198,23,202,47,105,202,195,252,189,195,92,151,163,92,94,5,232,94,208,122,237,208,135,172,209,135,142,127,5,142,186,213,100,186,168,26,165,168,183,75,38,183,185,14,190,185,96,167,135,96,248,90,213,248,34,40,54,34,17,20,27,17,222,63,117,222,121,41,217,121,170,136,238,170,51,60,45,51,95,76,121,95,182,2,183,182,150,184,202,150,88,218,53,88,156,176,196,156,252,23,67,252,26,85,132,26,246,31,77,246,28,138,89,28,56,125,178,56,172,87,51,172,24,199,207,24,244,141,6,244,105,116,83,105,116,183,155,116,245,196,151,245,86,159,173,86,218,114,227,218,213,126,234,213,74,21,244,74,158,34,143,158,162,18,171,162,78,88,98,78,232,7,95,232,229,153,29,229,57,52,35,57,193,110,246,193,68,80,108,68,93,222,50,93,114,104,70,114,38,101,160,38,147,188,205,147,3,219,218,3,198,248,186,198,250,200,158,250,130,168,214,130,207,43,110,207,80,64,112,80,235,220,133,235,117,254,10,117,138,50,147,138,141,164,223,141,76,202,41,76,20,16,28,20,115,33,215,115,204,240,180,204,9,211,212,9,16,93,138,16,226,15,81,226,0,0,0,0,154,111,25,154,224,157,26,224,143,54,148,143,230,66,199,230,236,74,201,236,253,94,210,253,171,193,127,171,216,224,168,216,47,1,0,0,0,0,0,0,192,177,0,0,0,0,0,0,0,0,0,0,16,0,0,0,128,0,0,0,160,16,0,0,32,0,0,0,33,0,0,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,47,138,66,145,68,55,113,207,251,192,181,165,219,181,233,91,194,86,57,241,17,241,89,164,130,63,146,213,94,28,171,152,170,7,216,1,91,131,18,190,133,49,36,195,125,12,85,116,93,190,114,254,177,222,128,167,6,220,155,116,241,155,193,193,105,155,228,134,71,190,239,198,157,193,15,204,161,12,36,111,44,233,45,170,132,116,74,220,169,176,92,218,136,249,118,82,81,62,152,109,198,49,168,200,39,3,176,199,127,89,191,243,11,224,198,71,145,167,213,81,99,202,6,103,41,41,20,133,10,183,39,56,33,27,46,252,109,44,77,19,13,56,83,84,115,10,101,187,10,106,118,46,201,194,129,133,44,114,146,161,232,191,162,75,102,26,168,112,139,75,194,163,81,108,199,25,232,146,209,36,6,153,214,133,53,14,244,112,160,106,16,22,193,164,25,8,108,55,30,76,119,72,39,181,188,176,52,179,12,28,57,74,170,216,78,79,202,156,91,243,111,46,104,238,130,143,116,111,99,165,120,20,120,200,132,8,2,199,140,250,255,190,144,235,108,80,164,247,163,249,190,242,120,113,198,18,0,0,0,0,0,0,0,3,0,0,0,27,184,0,0,120,50,0,0,57,184,0,0,65,184,0,0,74,184,0,0,77,184,0,0,57,184,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,31,184,0,0,35,184,0,0,41,184,0,0,46,184,0,0,52,184,0,0,0,0,0,0,16,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,22,0,0,0,37,0,0,0,63,0,0,0,92,0,0,0,117,0,0,0,132,0,0,0,147,0,0,0,161,0,0,0,175,0,0,0,190,0,0,0,205,0,0,0,230,0,0,0,243,0,0,0,2,1,0,0,16,1,0,0,27,1,0,0,41,1,0,0,63,1,0,0,79,1,0,0,109,1,0,0,129,1,0,0,153,1,0,0,179,1,0,0,204,1,0,0,222,1,0,0,231,1,0,0,241,1,0,0,1,2,0,0,14,2,0,0,28,2,0,0,47,2,0,0,71,2,0,0,91,2,0,0,107,2,0,0,122,2,0,0,138,2,0,0,154,2,0,0,171,2,0,0,185,2,0,0,201,2,0,0,228,2,0,0,245,2,0,0,9,3,0,0,28,3,0,0,45,3,0,0,65,3,0,0,77,3,0,0,91,3,0,0,104,3,0,0,120,3,0,0,139,3,0,0,158,3,0,0,178,3,0,0,198,3,0,0,212,3,0,0,234,3,0,0,254,3,0,0,6,4,0,0,10,4,0,0,24,4,0,0,47,4,0,0,55,4,0,0,70,4,0,0,83,4,0,0,98,4,0,0,127,4,0,0,156,4,0,0,179,4,0,0,195,4,0,0,211,4,0,0,231,4,0,0,244,4,0,0,3,5,0,0,20,5,0,0,36,5,0,0,53,5,0,0,70,5,0,0,82,5,0,0,95,5,0,0,126,5,0,0,147,5,0,0,167,5,0,0,188,5,0,0,210,5,0,0,222,5,0,0,237,5,0,0,245,5,0,0,2,6,0,0,11,6,0,0,29,6,0,0,40,6,0,0,51,6,0,0,65,6,0,0,85,6,0,0,98,6,0,0,110,6,0,0,124,6,0,0,136,6,0,0,156,6,0,0,175,6,0,0,195,6,0,0,217,6,0,0,241,6,0,0,6,7,0,0,29,7,0,0,50,7,0,0,65,7,0,0,76,7,0,0,96,7,0,0,109,7,0,0,122,7,0,0,139,7,0,0,161,7,0,0,175,7,0,0,195,7,0,0,211,7,0,0,225,7,0,0,236,7,0,0,0,8,0,0,23,8,0,0,44,8,0,0,59,8,0,0,80,8,0,0,102,8,0,0,118,8,0,0,132,8,0,0,148,8,0,0,162,8,0,0,179,8,0,0,191,8,0,0,223,8,0,0,243,8,0,0,255,8,0,0,9,9,0,0,21,9,0,0,39,9,0,0,60,9,0,0,72,9,0,0,87,9,0,0,104,9,0,0,119,9,0,0,135,9,0,0,149,9,0,0,168,9,0,0,187,9,0,0,210,9,0,0,231,9,0,0,255,9,0,0,17,10,0,0,39,10,0,0,62,10,0,0,80,10,0,0,92,10,0,0,110,10,0,0,127,10,0,0,141,10,0,0,158,10,0,0,173,10,0,0,196,10,0,0,215,10,0,0,228,10,0,0,247,10,0,0,15,11,0,0,42,11,0,0,55,11,0,0,80,11,0,0,91,11,0,0,110,11,0,0,122,11,0,0,138,11,0,0,156,11,0,0,183,11,0,0,190,11,0,0,205,11,0,0,221,11,0,0,237,11,0,0,1,12,0,0,14,12,0,0,26,12,0,0,43,12,0,0,55,12,0,0,72,12,0,0,86,12,0,0,102,12,0,0,129,12,0,0,152,12,0,0,175,12,0,0,198,12,0,0,213,12,0,0,230,12,0,0,248,12,0,0,13,13,0,0,32,13,0,0,63,13,0,0,81,13,0,0,99,13,0,0,121,13,0,0,147,13,0,0,174,13,0,0,191,13,0,0,232,13,0,0,8,14,0,0,46,14,0,0,73,14,0,0,103,14,0,0,133,14,0,0,161,14,0,0,198,14,0,0,222,14,0,0,14,15,0,0,56,15,0,0,96,15,0,0,132,15,0,0,143,15,0,0,161,15,0,0,178,15,0,0,209,15,0,0,230,15,0,0,255,15,0,0,14,16,0,0,38,16,0,0,57,16,0,0,93,16,0,0,114,16,0,0,143,16,0,0,163,16,0,0,190,16,0,0,218,16,0,0,233,16,0,0,244,16,0,0,5,17,0,0,42,17,0,0,87,17,0,0,131,17,0,0,171,17,0,0,209,17,0,0,247,17,0,0,33,18,0,0,67,18,0,0,112,18,0,0,157,18,0,0,170,18,0,0,180,18,0,0,193,18,0,0,228,18,0,0,248,18,0,0,10,19,0,0,33,19,0,0,57,19,0,0,78,19,0,0,106,19,0,0,136,19,0,0,164,19,0,0,184,19,0,0,208,19,0,0,235,19,0,0,253,19,0,0,15,20,0,0,43,20,0,0,58,20,0,0,74,20,0,0,102,20,0,0,125,20,0,0,145,20,0,0,162,20,0,0,190,20,0,0,214,20,0,0,239,20,0,0,3,21,0,0,23,21,0,0,42,21,0,0,71,21,0,0,95,21,0,0,123,21,0,0,150,21,0,0,176,21,0,0,205,21,0,0,229,21,0,0,254,21,0,0,25,22,0,0,54,22,0,0,71,22,0,0,96,22,0,0,119,22,0,0,141,22,0,0,160,22,0,0,182,22,0,0,215,22,0,0,245,22,0,0,12,23,0,0,47,23,0,0,63,23,0,0,83,23,0,0,103,23,0,0,120,23,0,0,147,23,0,0,160,23,0,0,182,23,0,0,202,23,0,0,230,23,0,0,2,24,0,0,21,24,0,0,39,24,0,0,80,24,0,0,120,24,0,0,159,24,0,0,173,24,0,0,208,24,0,0,247,24,0,0,24,25,0,0,51,25,0,0,74,25,0,0,104,25,0,0,135,25,0,0,164,25,0,0,190,25,0,0,213,25,0,0,233,25,0,0,252,25,0,0,22,26,0,0,43,26,0,0,76,26,0,0,113,26,0,0,147,26,0,0,172,26,0,0,201,26,0,0,221,26,0,0,248,26,0,0,28,27,0,0,50,27,0,0,72,27,0,0,100,27,0,0,139,27,0,0,173,27,0,0,195,27,0,0,227,27,0,0,250,27,0,0,31,28,0,0,60,28,0,0,77,28,0,0,105,28,0,0,132,28,0,0,153,28,0,0,180,28,0,0,204,28,0,0,219,28,0,0,247,28,0,0,15,29,0,0,34,29,0,0,56,29,0,0,93,29,0,0,119,29,0,0,145,29,0,0,171,29,0,0,197,29,0,0,223,29,0,0,249,29,0,0,19,30,0,0,45,30,0,0,71,30,0,0,98,30,0,0,125,30,0,0,152,30,0,0,179,30,0,0,206,30,0,0,233,30,0,0,4,31,0,0,27,31,0,0,48,31,0,0,60,31,0,0,7,0,0,0,13,0,0,0,98,0,0,0,99,0,0,0,68,0,0,0,97,0,0,0,11,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,9,0,0,0,77,0,0,0,74,0,0,0,53,0,0,0,0,0,0,0,56,0,0,0,57,0,0,0,59,0,0,0,16,0,0,0,125,0,0,0,10,0,0,0,44,0,0,0,70,0,0,0,103,0,0,0,111,0,0,0,104,0,0,0,0,0,0,0,35,0,0,0,35,0,0,0,89,0,0,0,0,0,0,0,33,0,0,0,73,0,0,0,122,0,0,0,17,0,0,0,14,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,113,0,0,0,43,0,0,0,0,0,0,0,84,0,0,0,115,0,0,0,4,0,0,0,22,0,0,0,5,0,0,0,106,0,0,0,21,0,0,0,120,0,0,0,51,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,79,0,0,0,80,0,0,0,83,0,0,0,82,0,0,0,81,0,0,0,48,0,0,0,40,0,0,0,124,0,0,0,24,0,0,0,31,0,0,0,90,0,0,0,72,0,0,0,36,0,0,0,119,0,0,0,0,0,0,0,100,0,0,0,102,0,0,0,101,0,0,0,23,0,0,0,55,0,0,0,105,0,0,0,50,0,0,0,61,0,0,0,19,0,0,0,2,0,0,0,8,0,0,0,37,0,0,0,67,0,0,0,123,0,0,0,12,0,0,0,42,0,0,0,64,0,0,0,65,0,0,0,92,0,0,0,28,0,0,0,63,0,0,0,60,0,0,0,38,0,0,0,15,0,0,0,107,0,0,0,20,0,0,0,39,0,0,0,118,0,0,0,88,0,0,0,95,0,0,0,25,0,0,0,76,0,0,0,6,0,0,0,95,0,0,0,75,0,0,0,1,0,0,0,96,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,0,0,93,0,0,0,91,0,0,0,34,0,0,0,78,0,0,0,66,0,0,0,121,0,0,0,85,0,0,0,30,0,0,0,0,0,0,0,108,0,0,0,94,0,0,0,29,0,0,0,3,0,0,0,69,0,0,0,116,0,0,0,86,0,0,0,62,0,0,0,110,0,0,0,109,0,0,0,26,0,0,0,117,0,0,0,49,0,0,0,87,0,0,0,11,0,0,0,18,0,0,0,54,0,0,0,107,128,0,0,81,128,0,0,127,128,0,0,47,128,0,0,49,128,0,0,104,128,0,0,0,128,0,0,82,128,0,0,11,128,0,0,21,128,0,0,6,128,0,0,138,128,0,0,86,128,0,0,1,128,0,0,36,128,0,0,95,128,0,0,19,128,0,0,35,128,0,0,139,128,0,0,80,128,0,0,97,128,0,0,51,128,0,0,48,128,0,0,75,128,0,0,65,128,0,0,102,128,0,0,134,128,0,0,37,128,0,0,91,128,0,0,126,128,0,0,122,128,0,0,66,128,0,0,109,128,0,0,32,128,0,0,117,128,0,0,28,128,0,0,29,128,0,0,69,128,0,0,83,128,0,0,94,128,0,0,98,128,0,0,63,128,0,0,87,128,0,0,43,128,0,0,22,128,0,0,54,128,0,0,55,128,0,0,56,128,0,0,62,128,0,0,136,128,0,0,78,128,0,0,53,128,0,0,10,128,0,0,14,128,0,0,140,128,0,0,76,128,0,0,16,128,0,0,17,128,0,0,18,128,0,0,93,128,0,0,79,128,0,0,131,128,0,0,92,128,0,0,88,128,0,0,89,128,0,0,119,128,0,0,84,128,0,0,4,128,0,0,128,128,0,0,23,128,0,0,114,128,0,0,68,128,0,0,33,128,0,0,13,128,0,0,106,128,0,0,103,128,0,0,12,128,0,0,118,128,0,0,57,128,0,0,58,128,0,0,61,128,0,0,60,128,0,0,59,128,0,0,45,128,0,0,121,128,0,0,130,128,0,0,137,128,0,0,100,128,0,0,30,128,0,0,67,128,0,0,116,128,0,0,90,128,0,0,115,128,0,0,125,128,0,0,101,128,0,0,105,128,0,0,108,128,0,0,5,128,0,0,2,128,0,0,3,128,0,0,72,128,0,0,74,128,0,0,73,128,0,0,24,128,0,0,26,128,0,0,77,128,0,0,50,128,0,0,96,128,0,0,124,128,0,0,133,128,0,0,132,128,0,0,25,128,0,0,41,128,0,0,42,128,0,0,7,128,0,0,46,128,0,0,129,128,0,0,135,128,0,0,99,128,0,0,70,128,0,0,52,128,0,0,120,128,0,0,34,128,0,0,85,128,0,0,64,128,0,0,20,128,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,120,61,0,0,5,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,51,0,0,0,8,43,1,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,61,0,0,240,61,0,0,5,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,51,0,0,0,16,47,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,32,0,0,0,9,0,0,0,10,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,133,0,0,0,0,32,0,0,1,32,0,0,2,32,0,0,3,32,0,0,4,32,0,0,5,32,0,0,6,32,0,0,8,32,0,0,9,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,95,32,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,64,0,0,0,0,0,0,45,244,81,88,207,140,177,192,70,246,181,203,41,49,3,199,4,91,112,48,180,93,253,32,120,127,139,154,216,89,41,80,104,72,137,171,167,86,3,108,255,183,205,136,63,212,119,180,43,165,163,112,241,186,228,168,252,65,131,253,217,111,225,138,122,47,45,116,150,7,31,13,9,94,3,118,44,112,247,64,165,44,167,111,87,65,168,170,116,223,160,88,100,3,74,199,196,60,83,174,175,95,24,4,21,177,227,109,40,134,171,12,164,191,67,240,233,80,129,57,87,22,82,55,3,0,0,0,3,0,5,0,7,0,11,0,13,0,17,0,19,0,23,0,29,0,31,0,37,0,41,0,43,0,47,0,53,0,59,0,61,0,67,0,71,0,73,0,79,0,83,0,89,0,97,0,101,0,103,0,107,0,109,0,113,0,127,0,131,0,137,0,139,0,149,0,151,0,157,0,163,0,167,0,173,0,179,0,181,0,191,0,193,0,197,0,199,0,211,0,223,0,227,0,229,0,233,0,239,0,241,0,251,0,1,1,7,1,13,1,15,1,21,1,25,1,27,1,37,1,51,1,55,1,57,1,61,1,75,1,81,1,91,1,93,1,97,1,103,1,111,1,117,1,123,1,127,1,133,1,141,1,145,1,153,1,163,1,165,1,175,1,177,1,183,1,187,1,193,1,201,1,205,1,207,1,211,1,223,1,231,1,235,1,243,1,247,1,253,1,9,2,11,2,29,2,35,2,45,2,51,2,57,2,59,2,65,2,75,2,81,2,87,2,89,2,95,2,101,2,105,2,107,2,119,2,129,2,131,2,135,2,141,2,147,2,149,2,161,2,165,2,171,2,179,2,189,2,197,2,207,2,215,2,221,2,227,2,231,2,239,2,245,2,249,2,1,3,5,3,19,3,29,3,41,3,43,3,53,3,55,3,59,3,61,3,71,3,85,3,89,3,91,3,95,3,109,3,113,3,115,3,119,3,139,3,143,3,151,3,161,3,169,3,173,3,179,3,185,3,199,3,203,3,209,3,215,3,223,3,229,3,241,3,245,3,251,3,253,3,7,4,9,4,15,4,25,4,27,4,37,4,39,4,45,4,63,4,67,4,69,4,73,4,79,4,85,4,93,4,99,4,105,4,127,4,129,4,139,4,147,4,157,4,163,4,169,4,177,4,189,4,193,4,199,4,205,4,207,4,213,4,225,4,235,4,253,4,255,4,3,5,9,5,11,5,17,5,21,5,23,5,27,5,39,5,41,5,47,5,81,5,87,5,93,5,101,5,119,5,129,5,143,5,147,5,149,5,153,5,159,5,167,5,171,5,173,5,179,5,191,5,201,5,203,5,207,5,209,5,213,5,219,5,231,5,243,5,251,5,7,6,13,6,17,6,23,6,31,6,35,6,43,6,47,6,61,6,65,6,71,6,73,6,77,6,83,6,85,6,91,6,101,6,121,6,127,6,131,6,133,6,157,6,161,6,163,6,173,6,185,6,187,6,197,6,205,6,211,6,217,6,223,6,241,6,247,6,251,6,253,6,9,7,19,7,31,7,39,7,55,7,69,7,75,7,79,7,81,7,85,7,87,7,97,7,109,7,115,7,121,7,139,7,141,7,157,7,159,7,181,7,187,7,195,7,201,7,205,7,207,7,211,7,219,7,225,7,235,7,237,7,247,7,5,8,15,8,21,8,33,8,35,8,39,8,41,8,51,8,63,8,65,8,81,8,83,8,89,8,93,8,95,8,105,8,113,8,131,8,155,8,159,8,165,8,173,8,189,8,191,8,195,8,203,8,219,8,221,8,225,8,233,8,239,8,245,8,249,8,5,9,7,9,29,9,35,9,37,9,43,9,47,9,53,9,67,9,73,9,77,9,79,9,85,9,89,9,95,9,107,9,113,9,119,9,133,9,137,9,143,9,155,9,163,9,169,9,173,9,199,9,217,9,227,9,235,9,239,9,245,9,247,9,253,9,19,10,31,10,33,10,49,10,57,10,61,10,73,10,87,10,97,10,99,10,103,10,111,10,117,10,123,10,127,10,129,10,133,10,139,10,147,10,151,10,153,10,159,10,169,10,171,10,181,10,189,10,193,10,207,10,217,10,229,10,231,10,237,10,241,10,243,10,3,11,17,11,21,11,27,11,35,11,41,11,45,11,63,11,71,11,81,11,87,11,93,11,101,11,111,11,123,11,137,11,141,11,147,11,153,11,155,11,183,11,185,11,195,11,203,11,207,11,221,11,225,11,233,11,245,11,251,11,7,12,11,12,17,12,37,12,47,12,49,12,65,12,91,12,95,12,97,12,109,12,115,12,119,12,131,12,137,12,145,12,149,12,157,12,179,12,181,12,185,12,187,12,199,12,227,12,229,12,235,12,241,12,247,12,251,12,1,13,3,13,15,13,19,13,31,13,33,13,43,13,45,13,61,13,63,13,79,13,85,13,105,13,121,13,129,13,133,13,135,13,139,13,141,13,163,13,171,13,183,13,189,13,199,13,201,13,205,13,211,13,213,13,219,13,229,13,231,13,243,13,253,13,255,13,9,14,23,14,29,14,33,14,39,14,47,14,53,14,59,14,75,14,87,14,89,14,93,14,107,14,113,14,117,14,125,14,135,14,143,14,149,14,155,14,177,14,183,14,185,14,195,14,209,14,213,14,219,14,237,14,239,14,249,14,7,15,11,15,13,15,23,15,37,15,41,15,49,15,67,15,71,15,77,15,79,15,83,15,89,15,91,15,103,15,107,15,127,15,149,15,161,15,163,15,167,15,173,15,179,15,181,15,187,15,209,15,211,15,217,15,233,15,239,15,251,15,253,15,3,16,15,16,31,16,33,16,37,16,43,16,57,16,61,16,63,16,81,16,105,16,115,16,121,16,123,16,133,16,135,16,145,16,147,16,157,16,163,16,165,16,175,16,177,16,187,16,193,16,201,16,231,16,241,16,243,16,253,16,5,17,11,17,21,17,39,17,45,17,57,17,69,17,71,17,89,17,95,17,99,17,105,17,111,17,129,17,131,17,141,17,155,17,161,17,165,17,167,17,171,17,195,17,197,17,209,17,215,17,231,17,239,17,245,17,251,17,13,18,29,18,31,18,35,18,41,18,43,18,49,18,55,18,65,18,71,18,83,18,95,18,113,18,115,18,121,18,125,18,143,18,151,18,175,18,179,18,181,18,185,18,191,18,193,18,205,18,209,18,223,18,253,18,7,19,13,19,25,19,39,19,45,19,55,19,67,19,69,19,73,19,79,19,87,19,93,19,103,19,105,19,109,19,123,19,129,19,135,19,0,0,0,0,194,1,132,3,70,2,8,7,202,6,140,4,78,5,16,14,210,15,148,13,86,12,24,9,218,8,156,10,94,11,32,28,226,29,164,31,102,30,40,27,234,26,172,24,110,25,48,18,242,19,180,17,118,16,56,21,250,20,188,22,126,23,64,56,130,57,196,59,6,58,72,63,138,62,204,60,14,61,80,54,146,55,212,53,22,52,88,49,154,48,220,50,30,51,96,36,162,37,228,39,38,38,104,35,170,34,236,32,46,33,112,42,178,43,244,41,54,40,120,45,186,44,252,46,62,47,128,112,66,113,4,115,198,114,136,119,74,118,12,116,206,117,144,126,82,127,20,125,214,124,152,121,90,120,28,122,222,123,160,108,98,109,36,111,230,110,168,107,106,106,44,104,238,105,176,98,114,99,52,97,246,96,184,101,122,100,60,102,254,103,192,72,2,73,68,75,134,74,200,79,10,78,76,76,142,77,208,70,18,71,84,69,150,68,216,65,26,64,92,66,158,67,224,84,34,85,100,87,166,86,232,83,42,82,108,80,174,81,240,90,50,91,116,89,182,88,248,93,58,92,124,94,190,95,0,225,194,224,132,226,70,227,8,230,202,231,140,229,78,228,16,239,210,238,148,236,86,237,24,232,218,233,156,235,94,234,32,253,226,252,164,254,102,255,40,250,234,251,172,249,110,248,48,243,242,242,180,240,118,241,56,244,250,245,188,247,126,246,64,217,130,216,196,218,6,219,72,222,138,223,204,221,14,220,80,215,146,214,212,212,22,213,88,208,154,209,220,211,30,210,96,197,162,196,228,198,38,199,104,194,170,195,236,193,46,192,112,203,178,202,244,200,54,201,120,204,186,205,252,207,62,206,128,145,66,144,4,146,198,147,136,150,74,151,12,149,206,148,144,159,82,158,20,156,214,157,152,152,90,153,28,155,222,154,160,141,98,140,36,142,230,143,168,138,106,139,44,137,238,136,176,131,114,130,52,128,246,129,184,132,122,133,60,135,254,134,192,169,2,168,68,170,134,171,200,174,10,175,76,173,142,172,208,167,18,166,84,164,150,165,216,160,26,161,92,163,158,162,224,181,34,180,100,182,166,183,232,178,42,179,108,177,174,176,240,187,50,186,116,184,182,185,248,188,58,189,124,191,190,190,73,0,49,1,83,0,127,1,48,1,105,0,120,1,255,0,129,1,83,2,130,1,131,1,132,1,133,1,134,1,84,2,135,1,136,1,137,1,86,2,138,1,87,2,139,1,140,1,142,1,221,1,143,1,89,2,144,1,91,2,145,1,146,1,147,1,96,2,148,1,99,2,150,1,105,2,151,1,104,2,152,1,153,1,156,1,111,2,157,1,114,2,159,1,117,2,166,1,128,2,167,1,168,1,169,1,131,2,172,1,173,1,174,1,136,2,175,1,176,1,177,1,138,2,178,1,139,2,183,1,146,2,184,1,185,1,188,1,189,1,196,1,198,1,196,1,197,1,197,1,198,1,199,1,201,1,199,1,200,1,200,1,201,1,202,1,204,1,202,1,203,1,203,1,204,1,241,1,243,1,241,1,242,1,242,1,243,1,244,1,245,1,246,1,149,1,247,1,191,1,32,2,158,1,134,3,172,3,136,3,173,3,137,3,174,3,138,3,175,3,140,3,204,3,142,3,205,3,143,3,206,3,153,3,69,3,153,3,190,31,163,3,194,3,247,3,248,3,250,3,251,3,96,30,155,30,223,0,223,0,158,30,223,0,89,31,81,31,91,31,83,31,93,31,85,31,95,31,87,31,188,31,179,31,204,31,195,31,236,31,229,31,252,31,243,31,58,2,101,44,59,2,60,2,61,2,154,1,62,2,102,44,65,2,66,2,67,2,128,1,68,2,137,2,69,2,140,2,244,3,184,3,249,3,242,3,253,3,123,3,254,3,124,3,255,3,125,3,192,4,207,4,38,33,201,3,42,33,107,0,43,33,229,0,50,33,78,33,131,33,132,33,96,44,97,44,98,44,107,2,99,44,125,29,100,44,125,2,109,44,81,2,110,44,113,2,111,44,80,2,112,44,82,2,114,44,115,44,117,44,118,44,126,44,63,2,127,44,64,2,242,44,243,44,125,167,121,29,139,167,140,167,141,167,101,2,170,167,102,2,199,16,39,45,205,16,45,45,118,3,119,3,156,3,181,0,146,3,208,3,152,3,209,3,166,3,213,3,160,3,214,3,154,3,240,3,161,3,241,3,149,3,245,3,207,3,215,3,0,0,0,0,65,0,32,26,192,0,32,31,0,1,1,47,50,1,1,5,57,1,1,15,74,1,1,45,121,1,1,5,112,3,1,3,145,3,32,17,163,3,32,9,0,4,80,16,16,4,32,32,96,4,1,33,138,4,1,53,193,4,1,13,208,4,1,63,20,5,1,19,49,5,48,38,160,1,1,5,179,1,1,3,205,1,1,15,222,1,1,17,248,1,1,39,34,2,1,17,216,3,1,23,0,30,1,149,160,30,1,95,8,31,248,8,24,31,248,6,40,31,248,8,56,31,248,8,72,31,248,6,104,31,248,8,136,31,248,8,152,31,248,8,168,31,248,8,184,31,248,2,186,31,182,2,200,31,170,4,216,31,248,2,218,31,156,2,232,31,248,2,234,31,144,2,248,31,128,2,250,31,130,2,70,2,1,9,16,5,1,3,96,33,16,16,0,44,48,47,103,44,1,5,128,44,1,99,235,44,1,3,64,166,1,45,128,166,1,23,34,167,1,13,50,167,1,61,121,167,1,3,126,167,1,9,144,167,1,3,160,167,1,9,33,255,32,26,0,0,0,0,119,114,97,112,46,99,0,97,109,111,117,110,116,32,115,116,111,114,101,100,32,97,116,32,37,112,44,32,105,115,32,37,115,32,37,108,108,117,46,37,108,117,10,0,109,105,110,116,95,119,105,116,104,100,114,97,119,97,108,0,109,101,114,99,104,95,99,111,110,116,114,97,99,116,0,109,97,115,116,101,114,95,100,101,110,111,109,105,110,97,116,105,111,110,95,107,101,121,95,118,97,108,105,100,105,116,121,0,109,105,110,116,95,116,101,115,116,95,101,100,100,115,97,0,116,105,109,101,95,102,114,111,109,95,115,101,99,111,110,100,115,0,72,101,108,108,111,44,32,119,111,114,108,100,32,40,98,121,32,84,97,108,101,114,32,101,109,115,99,114,105,112,116,101,100,32,99,111,100,101,41,10,0,99,111,109,109,111,110,95,97,108,108,111,99,97,116,105,111,110,46,99,0,71,78,85,78,69,84,95,120,109,97,108,108,111,99,95,0,109,97,108,108,111,99,0,71,78,85,78,69,84,95,120,102,114,101,101,95,0,71,78,85,78,69,84,95,120,115,116,114,100,117,112,95,0,71,78,85,78,69,84,95,115,110,112,114,105,110,116,102,0,68,69,66,85,71,0,73,78,70,79,0,87,65,82,78,73,78,71,0,69,82,82,79,82,0,78,79,78,69,0,99,111,109,109,111,110,95,108,111,103,103,105,110,103,46,99,0,37,115,45,37,100,0,37,115,37,100,37,115,0,97,98,0,115,101,116,117,112,95,108,111,103,95,102,105,108,101,0,71,78,85,78,69,84,95,108,111,103,95,115,107,105,112,0,109,121,108,111,103,0,108,111,99,97,108,116,105,109,101,32,101,114,114,111,114,0,37,98,32,37,100,32,37,72,58,37,77,58,37,83,45,37,37,48,54,117,0,77,101,115,115,97,103,101,32,96,37,46,42,115,39,32,114,101,112,101,97,116,101,100,32,37,117,32,116,105,109,101,115,32,105,110,32,116,104,101,32,108,97,115,116,32,37,115,10,0,73,78,86,65,76,73,68,0,37,115,32,37,115,32,37,115,32,37,115,0,96,37,115,39,32,102,97,105,108,101,100,32,111,110,32,102,105,108,101,32,96,37,115,39,32,97,116,32,37,115,58,37,100,32,119,105,116,104,32,101,114,114,111,114,58,32,37,115,10,0,99,114,121,112,116,111,95,115,121,109,109,101,116,114,105,99,46,99,0,115,101,116,117,112,95,99,105,112,104,101,114,95,97,101,115,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,115,121,109,109,101,116,114,105,99,95,101,110,99,114,121,112,116,0,115,101,116,117,112,95,99,105,112,104,101,114,95,116,119,111,102,105,115,104,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,115,121,109,109,101,116,114,105,99,95,100,101,99,114,121,112,116,0,40,112,114,105,118,97,116,101,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,100,32,37,98,41,41,41,0,99,114,121,112,116,111,95,101,99,99,46,99,0,103,99,114,121,95,115,101,120,112,95,98,117,105,108,100,0,113,64,101,100,100,115,97,0,40,112,114,105,118,97,116,101,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,41,40,100,32,37,98,41,41,41,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,100,100,115,97,95,107,101,121,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,100,101,99,111,100,101,95,112,114,105,118,97,116,101,95,101,99,100,104,101,95,107,101,121,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,101,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,32,110,111,45,107,101,121,116,101,115,116,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,100,104,101,95,107,101,121,95,99,114,101,97,116,101,0,103,99,114,121,95,112,107,95,103,101,110,107,101,121,0,107,101,121,95,102,114,111,109,95,115,101,120,112,0,40,103,101,110,107,101,121,40,101,99,99,40,99,117,114,118,101,32,34,69,100,50,53,53,49,57,34,41,40,102,108,97,103,115,32,101,100,100,115,97,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,107,101,121,95,99,114,101,97,116,101,0,40,100,97,116,97,40,102,108,97,103,115,32,101,100,100,115,97,41,40,104,97,115,104,45,97,108,103,111,32,37,115,41,40,118,97,108,117,101,32,37,98,41,41,0,100,97,116,97,95,116,111,95,101,100,100,115,97,95,118,97,108,117,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,115,105,103,110,0,69,100,68,83,65,32,115,105,103,110,105,110,103,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,69,100,50,53,53,49,57,41,40,113,32,37,98,41,41,41,0,40,115,105,103,45,118,97,108,40,101,100,100,115,97,40,114,32,37,98,41,40,115,32,37,98,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,100,100,115,97,95,118,101,114,105,102,121,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,99,117,114,118,101,32,69,100,50,53,53,49,57,41,40,102,108,97,103,115,32,101,100,100,115,97,41,40,113,32,37,98,41,41,41,0,69,100,68,83,65,32,115,105,103,110,97,116,117,114,101,32,118,101,114,105,102,105], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
/* memory initializer */ allocate([99,97,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,101,99,99,95,101,99,100,104,0,103,101,116,95,97,102,102,105,110,101,32,102,97,105,108,101,100,0,99,114,121,112,116,111,95,104,97,115,104,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,104,97,115,104,95,99,111,110,116,101,120,116,95,115,116,97,114,116,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,104,97,115,104,95,99,111,110,116,101,120,116,95,102,105,110,105,115,104,0,99,114,121,112,116,111,95,109,112,105,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,109,112,105,95,112,114,105,110,116,95,117,110,115,105,103,110,101,100,0,96,37,115,39,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,32,119,105,116,104,32,101,114,114,111,114,58,32,37,115,10,0,103,99,114,121,95,109,112,105,95,112,114,105,110,116,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,109,112,105,95,115,99,97,110,95,117,110,115,105,103,110,101,100,0,103,99,114,121,95,109,112,105,95,115,99,97,110,0,49,46,54,46,48,0,108,105,98,103,99,114,121,112,116,32,104,97,115,32,110,111,116,32,116,104,101,32,101,120,112,101,99,116,101,100,32,118,101,114,115,105,111,110,32,40,118,101,114,115,105,111,110,32,37,115,32,105,115,32,114,101,113,117,105,114,101,100,41,46,10,0,99,114,121,112,116,111,95,114,97,110,100,111,109,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,105,110,105,116,0,70,97,105,108,101,100,32,116,111,32,115,101,116,32,108,105,98,103,99,114,121,112,116,32,111,112,116,105,111,110,32,37,115,58,32,37,115,10,0,68,73,83,65,66,76,69,95,83,69,67,77,69,77,0,69,78,65,66,76,69,95,81,85,73,67,75,95,82,65,78,68,79,77,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,97,110,100,111,109,95,117,51,50,0,40,103,101,110,107,101,121,40,114,115,97,40,110,98,105,116,115,32,37,100,41,41,41,0,99,114,121,112,116,111,95,114,115,97,46,99,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,99,114,101,97,116,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,101,110,99,111,100,101,0,117,116,105,108,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,100,101,99,111,100,101,0,68,101,99,111,100,101,100,32,112,114,105,118,97,116,101,32,107,101,121,32,105,115,32,110,111,116,32,118,97,108,105,100,10,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,114,105,118,97,116,101,95,107,101,121,95,103,101,116,95,112,117,98,108,105,99,0,69,120,116,101,114,110,97,108,32,112,114,111,116,111,99,111,108,32,118,105,111,108,97,116,105,111,110,32,100,101,116,101,99,116,101,100,32,97,116,32,37,115,58,37,100,46,10,0,40,112,117,98,108,105,99,45,107,101,121,40,114,115,97,40,110,32,37,109,41,40,101,32,37,109,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,117,98,108,105,99,95,107,101,121,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,112,117,98,108,105,99,95,107,101,121,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,97,116,117,114,101,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,98,108,105,110,100,105,110,103,95,107,101,121,95,101,110,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,98,108,105,110,100,105,110,103,95,107,101,121,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,98,108,105,110,100,0,100,97,116,97,95,116,111,95,115,101,120,112,0,40,100,97,116,97,32,40,102,108,97,103,115,32,114,97,119,41,32,40,118,97,108,117,101,32,37,77,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,115,105,103,110,97,116,117,114,101,95,100,101,99,111,100,101,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,117,110,98,108,105,110,100,0,40,115,105,103,45,118,97,108,32,40,114,115,97,32,40,115,32,37,77,41,41,41,0,71,78,85,78,69,84,95,67,82,89,80,84,79,95,114,115,97,95,118,101,114,105,102,121,0,82,83,65,32,115,105,103,110,97,116,117,114,101,32,118,101,114,105,102,105,99,97,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,58,32,37,115,10,0,115,116,114,105,110,103,115,46,99,0,37,108,108,117,32,37,115,0,102,111,114,101,118,101,114,0,109,115,0,109,0,100,97,121,0,100,97,121,115,0,101,110,100,32,111,102,32,116,105,109,101,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,194,181,115,0,48,32,109,115,0,71,78,85,78,69,84,95,83,84,82,73,78,71,83,95,100,97,116,97,95,116,111,95,115,116,114,105,110,103,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,74,75,77,78,80,81,82,83,84,86,87,88,89,90,0,71,78,85,78,69,84,95,83,84,82,73,78,71,83,95,115,116,114,105,110,103,95,116,111,95,100,97,116,97,0,118,105,115,105,98,105,108,105,116,121,46,99,0,103,99,114,121,95,109,100,95,104,97,115,104,95,98,117,102,102,101,114,0,99,97,108,108,101,100,32,105,110,32,110,111,110,45,111,112,101,114,97,116,105,111,110,97,108,32,115,116,97,116,101,0,103,99,114,121,95,109,100,95,103,101,116,95,97,108,103,111,0,117,115,101,100,32,105,110,32,110,111,110,45,111,112,101,114,97,116,105,111,110,97,108,32,115,116,97,116,101,0,103,99,114,121,95,114,97,110,100,111,109,105,122,101,0,103,99,114,121,95,99,114,101,97,116,101,95,110,111,110,99,101,0,109,105,115,99,46,99,0,95,103,99,114,121,95,102,97,116,97,108,95,101,114,114,111,114,0,10,70,97,116,97,108,32,101,114,114,111,114,58,32,0,70,97,116,97,108,58,32,0,79,104,104,104,104,32,106,101,101,101,101,58,32,0,68,66,71,58,32,0,91,85,110,107,110,111,119,110,32,108,111,103,32,108,101,118,101,108,32,37,100,93,58,32,0,95,103,99,114,121,95,108,111,103,118,0,105,110,116,101,114,110,97,108,32,101,114,114,111,114,32,40,102,97,116,97,108,32,111,114,32,98,117,103,41,0,46,46,46,32,116,104,105,115,32,105,115,32,97,32,98,117,103,32,40,37,115,58,37,100,58,37,115,41,10,0,65,115,115,101,114,116,105,111,110,32,96,37,115,39,32,102,97,105,108,101,100,32,40,37,115,58,37,100,58,37,115,41,10,0,32,0,37,115,58,37,115,0,37,42,115,32,32,0,37,48,50,120,0,32,92,10,0,37,42,115,32,37,42,115,0,32,40,110,117,108,108,41,0,32,91,37,117,32,98,105,116,93,0,32,91,111,117,116,32,111,102,32,99,111,114,101,93,0,45,0,43,0,100,105,118,105,100,101,32,98,121,32,122,101,114,111,0,103,108,111,98,97,108,46,99,0,103,108,111,98,97,108,95,105,110,105,116,0,49,46,55,46,48,45,98,101,116,97,50,51,48,0,118,101,114,115,105,111,110,58,37,115,58,10,0,99,105,112,104,101,114,115,58,37,115,58,10,0,97,101,115,58,116,119,111,102,105,115,104,0,112,117,98,107,101,121,115,58,37,115,58,10,0,114,115,97,58,101,99,99,0,100,105,103,101,115,116,115,58,37,115,58,10,0,115,104,97,50,53,54,58,115,104,97,53,49,50,0,114,110,100,45,109,111,100,58,108,105,110,117,120,58,10,0,99,112,117,45,97,114,99,104,58,58,10,0,109,112,105,45,97,115,109,58,37,115,58,10,0,104,119,102,108,105,115,116,58,0,37,115,58,0,10,0,102,105,112,115,45,109,111,100,101,58,37,99,58,37,99,58,10,0,115,116,97,110,100,97,114,100,0,102,105,112,115,0,115,121,115,116,101,109,0,112,114,105,110,116,95,99,111,110,102,105,103,0,114,110,103,45,116,121,112,101,58,37,115,58,37,100,58,10,0,111,117,116,32,111,102,32,99,111,114,101,32,105,110,32,115,101,99,117,114,101,32,109,101,109,111,114,121,0,92,120,37,48,50,120,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,48,49,50,51,52,53,54,55,56,57,45,46,47,95,58,42,43,61,0,115,101,120,112,46,99,0,100,111,95,118,115,101,120,112,95,115,115,99,97,110,0,37,100,0,37,117,0,38,92,0,95,103,99,114,121,95,115,101,120,112,95,102,105,110,100,95,116,111,107,101,110,0,95,103,99,114,121,95,115,101,120,112,95,110,116,104,0,3,4,0,8,9,11,10,12,13,34,39,92,0,45,46,47,95,58,42,43,61,0,37,48,50,88,0,37,117,58,0,95,103,99,114,121,95,115,101,120,112,95,115,112,114,105,110,116,0,112,97,100,108,111,99,107,45,114,110,103,0,112,97,100,108,111,99,107,45,97,101,115,0,112,97,100,108,111,99,107,45,115,104,97,0,112,97,100,108,111,99,107,45,109,109,117,108,0,105,110,116,101,108,45,99,112,117,0,105,110,116,101,108,45,98,109,105,50,0,105,110,116,101,108,45,115,115,115,101,51,0,105,110,116,101,108,45,112,99,108,109,117,108,0,105,110,116,101,108,45,97,101,115,110,105,0,105,110,116,101,108,45,114,100,114,97,110,100,0,105,110,116,101,108,45,97,118,120,0,105,110,116,101,108,45,97,118,120,50,0,97,114,109,45,110,101,111,110,0,47,101,116,99,47,103,99,114,121,112,116,47,104,119,102,46,100,101,110,121,0,109,101,109,111,114,121,32,97,116,32,37,112,32,99,111,114,114,117,112,116,101,100,32,40,117,110,100,101,114,102,108,111,119,61,37,48,50,120,41,10,0,109,101,109,111,114,121,32,97,116,32,37,112,32,99,111,114,114,117,112,116,101,100,32,40,111,118,101,114,102,108,111,119,61,37,48,50,120,41,10,0,87,97,114,110,105,110,103,58,32,117,115,105,110,103,32,105,110,115,101,99,117,114,101,32,109,101,109,111,114,121,33,10,0,102,97,105,108,101,100,32,116,111,32,100,114,111,112,32,115,101,116,117,105,100,10,0,115,101,99,117,114,101,32,109,101,109,111,114,121,32,105,115,32,100,105,115,97,98,108,101,100,0,99,97,110,39,116,32,109,109,97,112,32,112,111,111,108,32,111,102,32,37,117,32,98,121,116,101,115,58,32,37,115,32,45,32,117,115,105,110,103,32,109,97,108,108,111,99,10,0,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,112,111,111,108,32,111,102,32,37,117,32,98,121,116,101,115,10,0,80,108,101,97,115,101,32,110,111,116,101,32,116,104,97,116,32,121,111,117,32,100,111,110,39,116,32,104,97,118,101,32,115,101,99,117,114,101,32,109,101,109,111,114,121,32,111,110,32,116,104,105,115,32,115,121,115,116,101,109,10,0,79,111,112,115,44,32,115,101,99,117,114,101,32,109,101,109,111,114,121,32,112,111,111,108,32,97,108,114,101,97,100,121,32,105,110,105,116,105,97,108,105,122,101,100,10,0,111,112,101,114,97,116,105,111,110,32,105,115,32,110,111,116,32,112,111,115,115,105,98,108,101,32,119,105,116,104,111,117,116,32,105,110,105,116,105,97,108,105,122,101,100,32,115,101,99,117,114,101,32,109,101,109,111,114,121,10,0,115,101,99,117,114,101,32,109,101,109,111,114,121,32,112,111,111,108,32,105,115,32,110,111,116,32,108,111,99,107,101,100,32,119,104,105,108,101,32,105,110,32,70,73,80,83,32,109,111,100,101,10,0,115,101,99,109,101,109,32,117,115,97,103,101,58,32,37,117,47,37,108,117,32,98,121,116,101,115,32,105,110,32,37,117,32,98,108,111,99,107,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,114,121,112,116,58,32,37,115,10,0,80,111,119,101,114,45,79,110,0,73,110,105,116,0,83,101,108,102,45,84,101,115,116,0,79,112,101,114,97,116,105,111,110,97,108,0,69,114,114,111,114,0,70,97,116,97,108,45,69,114,114,111,114,0,83,104,117,116,100,111,119,110,0,103,114,97,110,116,101,100,0,100,101,110,105,101,100,0,108,105,98,103,99,114,121,112,116,32,115,116,97,116,101,32,116,114,97,110,115,105,116,105,111,110,32,37,115,32,61,62,32,37,115,32,37,115,10,0,33,100,111,110,101,0,102,105,112,115,46,99,0,95,103,99,114,121,95,105,110,105,116,105,97,108,105,122,101,95,102,105,112,115,95,109,111,100,101,0,33,110,111,95,102,105,112,115,95,109,111,100,101,95,114,101,113,117,105,114,101,100,0,47,101,116,99,47,103,99,114,121,112,116,47,102,105,112,115,95,101,110,97,98,108,101,100,0,47,112,114,111,99,47,115,121,115,47,99,114,121,112,116,111,47,102,105,112,115,95,101,110,97,98,108,101,100,0,114,0,47,112,114,111,99,47,118,101,114,115,105,111,110,0,70,65,84,65,76,58,32,101,114,114,111,114,32,114,101,97,100,105,110,103,32,96,37,115,39,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,70,65,84,65,76,58,32,102,97,105,108,101,100,32,116,111,32,99,114,101,97,116,101,32,116,104,101,32,70,83,77,32,108,111,99,107,32,105,110,32,108,105,98,103,99,114,121,112,116,58,32,37,115,10,0,95,103,99,114,121,95,102,105,112,115,95,109,111,100,101,32,40,41,0,95,103,99,114,121,95,105,110,97,99,116,105,118,97,116,101,95,102,105,112,115,95,109,111,100,101,0,102,97,116,97,108,32,0,44,32,102,117,110,99,116,105,111,110,32,0,110,111,32,100,101,115,99,114,105,112,116,105,111,110,32,97,118,97,105,108,97,98,108,101,0,37,115,101,114,114,111,114,32,105,110,32,108,105,98,103,99,114,121,112,116,44,32,102,105,108,101,32,37,115,44,32,108,105,110,101,32,37,100,37,115,37,115,58,32,37,115,10,0,72,77,65,67,45,0,79,107,97,121,0,32,40,0,108,105,98,103,99,114,121,112,116,32,115,101,108,102,116,101,115,116,58,32,37,115,32,37,115,37,115,32,40,37,100,41,58,32,37,115,37,115,37,115,37,115,10,0,98,97,100,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,103,105,118,101,110,32,116,111,32,95,103,99,114,121,95,99,116,120,95,97,108,108,111,99,10,0,99,84,120,0,98,97,100,32,112,111,105,110,116,101,114,32,37,112,32,112,97,115,115,101,100,32,116,111,32,95,103,99,114,121,95,99,116,120,95,103,101,116,95,112,111,105,110,116,101,114,10,0,119,114,111,110,103,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,114,101,113,117,101,115,116,32,102,111,114,32,99,111,110,116,101,120,116,32,37,112,32,111,102,32,116,121,112,101,32,37,100,10,0,98,97,100,32,112,111,105,110,116,101,114,32,37,112,32,112,97,115,115,101,100,32,116,111,32,103,99,114,121,95,99,116,120,95,114,101,108,97,115,101,10,0,98,97,100,32,99,111,110,116,101,120,116,32,116,121,112,101,32,37,100,32,100,101,116,101,99,116,101,100,32,105,110,32,103,99,114,121,95,99,116,120,95,114,101,108,97,115,101,10,0,103,99,114,121,95,99,105,112,104,101,114,95,99,108,111,115,101,58,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,47,105,110,118,97,108,105,100,32,104,97,110,100,108,101,0,99,105,112,104,101,114,46,99,0,99,105,112,104,101,114,95,101,110,99,114,121,112,116,0,99,105,112,104,101,114,32,109,111,100,101,32,78,79,78,69,32,117,115,101,100,0,99,105,112,104,101,114,95,101,110,99,114,121,112,116,58,32,105,110,118,97,108,105,100,32,109,111,100,101,32,37,100,10,0,99,105,112,104,101,114,95,100,101,99,114,121,112,116,0,99,105,112,104,101,114,95,100,101,99,114,121,112,116,58,32,105,110,118,97,108,105,100,32,109,111,100,101,32,37,100,10,0,87,65,82,78,73,78,71,58,32,99,105,112,104,101,114,95,115,101,116,105,118,58,32,105,118,108,101,110,61,37,117,32,98,108,107,108,101,110,61,37,117,10,0,99,105,112,104,101,114,95,115,101,116,105,118,0,73,86,32,108,101,110,103,116,104,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,98,108,111,99,107,108,101,110,103,116,104,0,48,120,55,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,68,0,45,48,120,48,49,0,45,48,120,50,68,70,67,57,51,49,49,68,52,57,48,48,49,56,67,55,51,51,56,66,70,56,54,56,56,56,54,49,55,54,55,70,70,56,70,70,53,66,50,66,69,66,69,50,55,53,52,56,65,49,52,66,50,51,53,69,67,65,54,56,55,52,65,0,48,120,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,52,68,69,70,57,68,69,65,50,70,55,57,67,68,54,53,56,49,50,54,51,49,65,53,67,70,53,68,51,69,68,0,48,120,50,49,54,57,51,54,68,51,67,68,54,69,53,51,70,69,67,48,65,52,69,50,51,49,70,68,68,54,68,67,53,67,54,57,50,67,67,55,54,48,57,53,50,53,65,55,66,50,67,57,53,54,50,68,54,48,56,70,50,53,68,53,49,65,0,48,120,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,53,56,0,48,120,48,56,0,78,73,83,84,32,80,45,49,57,50,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,54,52,50,49,48,53,49,57,101,53,57,99,56,48,101,55,48,102,97,55,101,57,97,98,55,50,50,52,51,48,52,57,102,101,98,56,100,101,101,99,99,49,52,54,98,57,98,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,57,57,100,101,102,56,51,54,49,52,54,98,99,57,98,49,98,52,100,50,50,56,51,49,0,48,120,49,56,56,100,97,56,48,101,98,48,51,48,57,48,102,54,55,99,98,102,50,48,101,98,52,51,97,49,56,56,48,48,102,52,102,102,48,97,102,100,56,50,102,102,49,48,49,50,0,48,120,48,55,49,57,50,98,57,53,102,102,99,56,100,97,55,56,54,51,49,48,49,49,101,100,54,98,50,52,99,100,100,53,55,51,102,57,55,55,97,49,49,101,55,57,52,56,49,49,0,48,120,48,49,0,78,73,83,84,32,80,45,50,50,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,0,48,120,98,52,48,53,48,97,56,53,48,99,48,52,98,51,97,98,102,53,52,49,51,50,53,54,53,48,52,52,98,48,98,55,100,55,98,102,100,56,98,97,50,55,48,98,51,57,52,51,50,51,53,53,102,102,98,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,49,54,97,50,101,48,98,56,102,48,51,101,49,51,100,100,50,57,52,53,53,99,53,99,50,97,51,100,0,48,120,98,55,48,101,48,99,98,100,54,98,98,52,98,102,55,102,51,50,49,51,57,48,98,57,52,97,48,51,99,49,100,51,53,54,99,50,49,49,50,50,51,52,51,50,56,48,100,54,49,49,53,99,49,100,50,49,0,48,120,98,100,51,55,54,51,56,56,98,53,102,55,50,51,102,98,52,99,50,50,100,102,101,54,99,100,52,51,55,53,97,48,53,97,48,55,52,55,54,52,52,52,100,53,56,49,57,57,56,53,48,48,55,101,51,52,0,78,73,83,84,32,80,45,50,53,54,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,53,97,99,54,51,53,100,56,97,97,51,97,57,51,101,55,98,51,101,98,98,100,53,53,55,54,57,56,56,54,98,99,54,53,49,100,48,54,98,48,99,99,53,51,98,48,102,54,51,98,99,101,51,99,51,101,50,55,100,50,54,48,52,98,0,48,120,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,98,99,101,54,102,97,97,100,97,55,49,55,57,101,56,52,102,51,98,57,99,97,99,50,102,99,54,51,50,53,53,49,0,48,120,54,98,49,55,100,49,102,50,101,49,50,99,52,50,52,55,102,56,98,99,101,54,101,53,54,51,97,52,52,48,102,50,55,55,48,51,55,100,56,49,50,100,101,98,51,51,97,48,102,52,97,49,51,57,52,53,100,56,57,56,99,50,57,54,0,48,120,52,102,101,51,52,50,101,50,102,101,49,97,55,102,57,98,56,101,101,55,101,98,52,97,55,99,48,102,57,101,49,54,50,98,99,101,51,51,53,55,54,98,51,49,53,101,99,101,99,98,98,54,52,48,54,56,51,55,98,102,53,49,102,53,0,78,73,83,84,32,80,45,51,56,52,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,101,102,102,102,102,102,102,102,102,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,102,102,102,102,102,102,102,99,0,48,120,98,51,51,49,50,102,97,55,101,50,51,101,101,55,101,52,57,56,56,101,48,53,54,98,101,51,102,56,50,100,49,57,49,56,49,100,57,99,54,101,102,101,56,49,52,49,49,50,48,51,49,52,48,56,56,102,53,48,49,51,56,55,53,97,99,54,53,54,51,57,56,100,56,97,50,101,100,49,57,100,50,97,56,53,99,56,101,100,100,51,101,99,50,97,101,102,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,55,54,51,52,100,56,49,102,52,51,55,50,100,100,102,53,56,49,97,48,100,98,50,52,56,98,48,97,55,55,97,101,99,101,99,49,57,54,97,99,99,99,53,50,57,55,51,0,48,120,97,97,56,55,99,97,50,50,98,101,56,98,48,53,51,55,56,101,98,49,99,55,49,101,102,51,50,48,97,100,55,52,54,101,49,100,51,98,54,50,56,98,97,55,57,98,57,56,53,57,102,55,52,49,101,48,56,50,53,52,50,97,51,56,53,53,48,50,102,50,53,100,98,102,53,53,50,57,54,99,51,97,53,52,53,101,51,56,55,50,55,54,48,97,98,55,0,48,120,51,54,49,55,100,101,52,97,57,54,50,54,50,99,54,102,53,100,57,101,57,56,98,102,57,50,57,50,100,99,50,57,102,56,102,52,49,100,98,100,50,56,57,97,49,52,55,99,101,57,100,97,51,49,49,51,98,53,102,48,98,56,99,48,48,97,54,48,98,49,99,101,49,100,55,101,56,49,57,100,55,97,52,51,49,100,55,99,57,48,101,97,48,101,53,102,0,78,73,83,84,32,80,45,53,50,49,0,48,120,48,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,48,120,48,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,99,0,48,120,48,53,49,57,53,51,101,98,57,54,49,56,101,49,99,57,97,49,102,57,50,57,97,50,49,97,48,98,54,56,53,52,48,101,101,97,50,100,97,55,50,53,98,57,57,98,51,49,53,102,51,98,56,98,52,56,57,57,49,56,101,102,49,48,57,101,49,53,54,49,57,51,57,53,49,101,99,55,101,57,51,55,98,49,54,53,50,99,48,98,100,51,98,98,49,98,102,48,55,51,53,55,51,100,102,56,56,51,100,50,99,51,52,102,49,101,102,52,53,49,102,100,52,54,98,53,48,51,102,48,48,0,48,120,49,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,97,53,49,56,54,56,55,56,51,98,102,50,102,57,54,54,98,55,102,99,99,48,49,52,56,102,55,48,57,97,53,100,48,51,98,98,53,99,57,98,56,56,57,57,99,52,55,97,101,98,98,54,102,98,55,49,101,57,49,51,56,54,52,48,57,0,48,120,48,48,99,54,56,53,56,101,48,54,98,55,48,52,48,52,101,57,99,100,57,101,51,101,99,98,54,54,50,51,57,53,98,52,52,50,57,99,54,52,56,49,51,57,48,53,51,102,98,53,50,49,102,56,50,56,97,102,54,48,54,98,52,100,51,100,98,97,97,49,52,98,53,101,55,55,101,102,101,55,53,57,50,56,102,101,49,100,99,49,50,55,97,50,102,102,97,56,100,101,51,51,52,56,98,51,99,49,56,53,54,97,52,50,57,98,102,57,55,101,55,101,51,49,99,50,101,53,98,100,54,54,0,48,120,48,49,49,56,51,57,50,57,54,97,55,56,57,97,51,98,99,48,48,52,53,99,56,97,53,102,98,52,50,99,55,100,49,98,100,57,57,56,102,53,52,52,52,57,53,55,57,98,52,52,54,56,49,55,97,102,98,100,49,55,50,55,51,101,54,54,50,99,57,55,101,101,55,50,57,57,53,101,102,52,50,54,52,48,99,53,53,48,98,57,48,49,51,102,97,100,48,55,54,49,51,53,51,99,55,48,56,54,97,50,55,50,99,50,52,48,56,56,98,101,57,52,55,54,57,102,100,49,54,54,53,48,0,98,114,97,105,110,112,111,111,108,80,49,54,48,114,49,0,48,120,101,57,53,101,52,97,53,102,55,51,55,48,53,57,100,99,54,48,100,102,99,55,97,100,57,53,98,51,100,56,49,51,57,53,49,53,54,50,48,102,0,48,120,51,52,48,101,55,98,101,50,97,50,56,48,101,98,55,52,101,50,98,101,54,49,98,97,100,97,55,52,53,100,57,55,101,56,102,55,99,51,48,48,0,48,120,49,101,53,56,57,97,56,53,57,53,52,50,51,52,49,50,49,51,52,102,97,97,50,100,98,100,101,99,57,53,99,56,100,56,54,55,53,101,53,56,0,48,120,101,57,53,101,52,97,53,102,55,51,55,48,53,57,100,99,54,48,100,102,53,57,57,49,100,52,53,48,50,57,52,48,57,101,54,48,102,99,48,57,0,48,120,98,101,100,53,97,102,49,54,101,97,51,102,54,97,52,102,54,50,57,51,56,99,52,54,51,49,101,98,53,97,102,55,98,100,98,99,100,98,99,51,0,48,120,49,54,54,55,99,98,52,55,55,97,49,97,56,101,99,51,51,56,102,57,52,55,52,49,54,54,57,99,57,55,54,51,49,54,100,97,54,51,50,49,0,98,114,97,105,110,112,111,111,108,80,49,57,50,114,49,0,48,120,99,51,48,50,102,52,49,100,57,51,50,97,51,54,99,100,97,55,97,51,52,54,51,48,57,51,100,49,56,100,98,55,56,102,99,101,52,55,54,100,101,49,97,56,54,50,57,55,0,48,120,54,97,57,49,49,55,52,48,55,54,98,49,101,48,101,49,57,99,51,57,99,48,51,49,102,101,56,54,56,53,99,49,99,97,101,48,52,48,101,53,99,54,57,97,50,56,101,102,0,48,120,52,54,57,97,50,56,101,102,55,99,50,56,99,99,97,51,100,99,55,50,49,100,48,52,52,102,52,52,57,54,98,99,99,97,55,101,102,52,49,52,54,102,98,102,50,53,99,57,0,48,120,99,51,48,50,102,52,49,100,57,51,50,97,51,54,99,100,97,55,97,51,52,54,50,102,57,101,57,101,57,49,54,98,53,98,101,56,102,49,48,50,57,97,99,52,97,99,99,49,0,48,120,99,48,97,48,54,52,55,101,97,97,98,54,97,52,56,55,53,51,98,48,51,51,99,53,54,99,98,48,102,48,57,48,48,97,50,102,53,99,52,56,53,51,51,55,53,102,100,54,0,48,120,49,52,98,54,57,48,56,54,54,97,98,100,53,98,98,56,56,98,53,102,52,56,50,56,99,49,52,57,48,48,48,50,101,54,55,55,51,102,97,50,102,97,50,57,57,98,56,102,0,98,114,97,105,110,112,111,111,108,80,50,50,52,114,49,0,48,120,100,55,99,49,51,52,97,97,50,54,52,51,54,54,56,54,50,97,49,56,51,48,50,53,55,53,100,49,100,55,56,55,98,48,57,102,48,55,53,55,57,55,100,97,56,57,102,53,55,101,99,56,99,48,102,102,0,48,120,54,56,97,53,101,54,50,99,97,57,99,101,54,99,49,99,50,57,57,56,48,51,97,54,99,49,53,51,48,98,53,49,52,101,49,56,50,97,100,56,98,48,48,52,50,97,53,57,99,97,100,50,57,102,52,51,0,48,120,50,53,56,48,102,54,51,99,99,102,101,52,52,49,51,56,56,55,48,55,49,51,98,49,97,57,50,51,54,57,101,51,51,101,50,49,51,53,100,50,54,54,100,98,98,51,55,50,51,56,54,99,52,48,48,98,0,48,120,100,55,99,49,51,52,97,97,50,54,52,51,54,54,56,54,50,97,49,56,51,48,50,53,55,53,100,48,102,98,57,56,100,49,49,54,98,99,52,98,54,100,100,101,98,99,97,51,97,53,97,55,57,51,57,102,0,48,120,48,100,57,48,50,57,97,100,50,99,55,101,53,99,102,52,51,52,48,56,50,51,98,50,97,56,55,100,99,54,56,99,57,101,52,99,101,51,49,55,52,99,49,101,54,101,102,100,101,101,49,50,99,48,55,100,0,48,120,53,56,97,97,53,54,102,55,55,50,99,48,55,50,54,102,50,52,99,54,98,56,57,101,52,101,99,100,97,99,50,52,51,53,52,98,57,101,57,57,99,97,97,51,102,54,100,51,55,54,49,52,48,50,99,100,0,98,114,97,105,110,112,111,111,108,80,50,53,54,114,49,0,48,120,97,57,102,98,53,55,100,98,97,49,101,101,97,57,98,99,51,101,54,54,48,97,57,48,57,100,56,51,56,100,55,50,54,101,51,98,102,54,50,51,100,53,50,54,50,48,50,56,50,48,49,51,52,56,49,100,49,102,54,101,53,51,55,55,0,48,120,55,100,53,97,48,57,55,53,102,99,50,99,51,48,53,55,101,101,102,54,55,53,51,48,52,49,55,97,102,102,101,55,102,98,56,48,53,53,99,49,50,54,100,99,53,99,54,99,101,57,52,97,52,98,52,52,102,51,51,48,98,53,100,57,0,48,120,50,54,100,99,53,99,54,99,101,57,52,97,52,98,52,52,102,51,51,48,98,53,100,57,98,98,100,55,55,99,98,102,57,53,56,52,49,54,50,57,53,99,102,55,101,49,99,101,54,98,99,99,100,99,49,56,102,102,56,99,48,55,98,54,0,48,120,97,57,102,98,53,55,100,98,97,49,101,101,97,57,98,99,51,101,54,54,48,97,57,48,57,100,56,51,56,100,55,49,56,99,51,57,55,97,97,51,98,53,54,49,97,54,102,55,57,48,49,101,48,101,56,50,57,55,52,56,53,54,97,55,0,48,120,56,98,100,50,97,101,98,57,99,98,55,101,53,55,99,98,50,99,52,98,52,56,50,102,102,99,56,49,98,55,97,102,98,57,100,101,50,55,101,49,101,51,98,100,50,51,99,50,51,97,52,52,53,51,98,100,57,97,99,101,51,50,54,50,0,48,120,53,52,55,101,102,56,51,53,99,51,100,97,99,52,102,100,57,55,102,56,52,54,49,97,49,52,54,49,49,100,99,57,99,50,55,55,52,53,49,51,50,100,101,100,56,101,53,52,53,99,49,100,53,52,99,55,50,102,48,52,54,57,57,55,0,98,114,97,105,110,112,111,111,108,80,51,50,48,114,49,0,48,120,100,51,53,101,52,55,50,48,51,54,98,99,52,102,98,55,101,49,51,99,55,56,53,101,100,50,48,49,101,48,54,53,102,57,56,102,99,102,97,54,102,54,102,52,48,100,101,102,52,102,57,50,98,57,101,99,55,56,57,51,101,99,50,56,102,99,100,52,49,50,98,49,102,49,98,51,50,101,50,55,0,48,120,51,101,101,51,48,98,53,54,56,102,98,97,98,48,102,56,56,51,99,99,101,98,100,52,54,100,51,102,51,98,98,56,97,50,97,55,51,53,49,51,102,53,101,98,55,57,100,97,54,54,49,57,48,101,98,48,56,53,102,102,97,57,102,52,57,50,102,51,55,53,97,57,55,100,56,54,48,101,98,52,0,48,120,53,50,48,56,56,51,57,52,57,100,102,100,98,99,52,50,100,51,97,100,49,57,56,54,52,48,54,56,56,97,54,102,101,49,51,102,52,49,51,52,57,53,53,52,98,52,57,97,99,99,51,49,100,99,99,100,56,56,52,53,51,57,56,49,54,102,53,101,98,52,97,99,56,102,98,49,102,49,97,54,0,48,120,100,51,53,101,52,55,50,48,51,54,98,99,52,102,98,55,101,49,51,99,55,56,53,101,100,50,48,49,101,48,54,53,102,57,56,102,99,102,97,53,98,54,56,102,49,50,97,51,50,100,52,56,50,101,99,55,101,101,56,54,53,56,101,57,56,54,57,49,53,53,53,98,52,52,99,53,57,51,49,49,0,48,120,52,51,98,100,55,101,57,97,102,98,53,51,100,56,98,56,53,50,56,57,98,99,99,52,56,101,101,53,98,102,101,54,102,50,48,49,51,55,100,49,48,97,48,56,55,101,98,54,101,55,56,55,49,101,50,97,49,48,97,53,57,57,99,55,49,48,97,102,56,100,48,100,51,57,101,50,48,54,49,49,0,48,120,49,52,102,100,100,48,53,53,52,53,101,99,49,99,99,56,97,98,52,48,57,51,50,52,55,102,55,55,50,55,53,101,48,55,52,51,102,102,101,100,49,49,55,49,56,50,101,97,97,57,99,55,55,56,55,55,97,97,97,99,54,97,99,55,100,51,53,50,52,53,100,49,54,57,50,101,56,101,101,49,0,98,114,97,105,110,112,111,111,108,80,51,56,52,114,49,0,48,120,56,99,98,57,49,101,56,50,97,51,51,56,54,100,50,56,48,102,53,100,54,102,55,101,53,48,101,54,52,49,100,102,49,53,50,102,55,49,48,57,101,100,53,52,53,54,98,52,49,50,98,49,100,97,49,57,55,102,98,55,49,49,50,51,97,99,100,51,97,55,50,57,57,48,49,100,49,97,55,49,56,55,52,55,48,48,49,51,51,49,48,55,101,99,53,51,0,48,120,55,98,99,51,56,50,99,54,51,100,56,99,49,53,48,99,51,99,55,50,48,56,48,97,99,101,48,53,97,102,97,48,99,50,98,101,97,50,56,101,52,102,98,50,50,55,56,55,49,51,57,49,54,53,101,102,98,97,57,49,102,57,48,102,56,97,97,53,56,49,52,97,53,48,51,97,100,52,101,98,48,52,97,56,99,55,100,100,50,50,99,101,50,56,50,54,0,48,120,48,52,97,56,99,55,100,100,50,50,99,101,50,56,50,54,56,98,51,57,98,53,53,52,49,54,102,48,52,52,55,99,50,102,98,55,55,100,101,49,48,55,100,99,100,50,97,54,50,101,56,56,48,101,97,53,51,101,101,98,54,50,100,53,55,99,98,52,51,57,48,50,57,53,100,98,99,57,57,52,51,97,98,55,56,54,57,54,102,97,53,48,52,99,49,49,0,48,120,56,99,98,57,49,101,56,50,97,51,51,56,54,100,50,56,48,102,53,100,54,102,55,101,53,48,101,54,52,49,100,102,49,53,50,102,55,49,48,57,101,100,53,52,53,54,98,51,49,102,49,54,54,101,54,99,97,99,48,52,50,53,97,55,99,102,51,97,98,54,97,102,54,98,55,102,99,51,49,48,51,98,56,56,51,50,48,50,101,57,48,52,54,53,54,53,0,48,120,49,100,49,99,54,52,102,48,54,56,99,102,52,53,102,102,97,50,97,54,51,97,56,49,98,55,99,49,51,102,54,98,56,56,52,55,97,51,101,55,55,101,102,49,52,102,101,51,100,98,55,102,99,97,102,101,48,99,98,100,49,48,101,56,101,56,50,54,101,48,51,52,51,54,100,54,52,54,97,97,101,102,56,55,98,50,101,50,52,55,100,52,97,102,49,101,0,48,120,56,97,98,101,49,100,55,53,50,48,102,57,99,50,97,52,53,99,98,49,101,98,56,101,57,53,99,102,100,53,53,50,54,50,98,55,48,98,50,57,102,101,101,99,53,56,54,52,101,49,57,99,48,53,52,102,102,57,57,49,50,57,50,56,48,101,52,54,52,54,50,49,55,55,57,49,56,49,49,49,52,50,56,50,48,51,52,49,50,54,51,99,53,51,49,53,0,98,114,97,105,110,112,111,111,108,80,53,49,50,114,49,0,48,120,97,97,100,100,57,100,98,56,100,98,101,57,99,52,56,98,51,102,100,52,101,54,97,101,51,51,99,57,102,99,48,55,99,98,51,48,56,100,98,51,98,51,99,57,100,50,48,101,100,54,54,51,57,99,99,97,55,48,51,51,48,56,55,49,55,100,52,100,57,98,48,48,57,98,99,54,54,56,52,50,97,101,99,100,97,49,50,97,101,54,97,51,56,48,101,54,50,56,56,49,102,102,50,102,50,100,56,50,99,54,56,53,50,56,97,97,54,48,53,54,53,56,51,97,52,56,102,51,0,48,120,55,56,51,48,97,51,51,49,56,98,54,48,51,98,56,57,101,50,51,50,55,49,52,53,97,99,50,51,52,99,99,53,57,52,99,98,100,100,56,100,51,100,102,57,49,54,49,48,97,56,51,52,52,49,99,97,101,97,57,56,54,51,98,99,50,100,101,100,53,100,53,97,97,56,50,53,51,97,97,49,48,97,50,101,102,49,99,57,56,98,57,97,99,56,98,53,55,102,49,49,49,55,97,55,50,98,102,50,99,55,98,57,101,55,99,49,97,99,52,100,55,55,102,99,57,52,99,97,0,48,120,51,100,102,57,49,54,49,48,97,56,51,52,52,49,99,97,101,97,57,56,54,51,98,99,50,100,101,100,53,100,53,97,97,56,50,53,51,97,97,49,48,97,50,101,102,49,99,57,56,98,57,97,99,56,98,53,55,102,49,49,49,55,97,55,50,98,102,50,99,55,98,57,101,55,99,49,97,99,52,100,55,55,102,99,57,52,99,97,100,99,48,56,51,101,54,55,57,56,52,48,53,48,98,55,53,101,98,97,101,53,100,100,50,56,48,57,98,100,54,51,56,48,49,54,102,55,50,51,0,48,120,97,97,100,100,57,100,98,56,100,98,101,57,99,52,56,98,51,102,100,52,101,54,97,101,51,51,99,57,102,99,48,55,99,98,51,48,56,100,98,51,98,51,99,57,100,50,48,101,100,54,54,51,57,99,99,97,55,48,51,51,48,56,55,48,53,53,51,101,53,99,52,49,52,99,97,57,50,54,49,57,52,49,56,54,54,49,49,57,55,102,97,99,49,48,52,55,49,100,98,49,100,51,56,49,48,56,53,100,100,97,100,100,98,53,56,55,57,54,56,50,57,99,97,57,48,48,54,57,0,48,120,56,49,97,101,101,52,98,100,100,56,50,101,100,57,54,52,53,97,50,49,51,50,50,101,57,99,52,99,54,97,57,51,56,53,101,100,57,102,55,48,98,53,100,57,49,54,99,49,98,52,51,98,54,50,101,101,102,52,100,48,48,57,56,101,102,102,51,98,49,102,55,56,101,50,100,48,100,52,56,100,53,48,100,49,54,56,55,98,57,51,98,57,55,100,53,102,55,99,54,100,53,48,52,55,52,48,54,97,53,101,54,56,56,98,51,53,50,50,48,57,98,99,98,57,102,56,50,50,0,48,120,55,100,100,101,51,56,53,100,53,54,54,51,51,50,101,99,99], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+20480);
/* memory initializer */ allocate([48,101,97,98,102,97,57,99,102,55,56,50,50,102,100,102,50,48,57,102,55,48,48,50,52,97,53,55,98,49,97,97,48,48,48,99,53,53,98,56,56,49,102,56,49,49,49,98,50,100,99,100,101,52,57,52,97,53,102,52,56,53,101,53,98,99,97,52,98,100,56,56,97,50,55,54,51,97,101,100,49,99,97,50,98,50,102,97,56,102,48,53,52,48,54,55,56,99,100,49,101,48,102,51,97,100,56,48,56,57,50,0,71,79,83,84,50,48,48,49,45,116,101,115,116,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,52,51,49,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,55,0,48,120,53,102,98,102,102,52,57,56,97,97,57,51,56,99,101,55,51,57,98,56,101,48,50,50,102,98,97,102,101,102,52,48,53,54,51,102,54,101,54,97,51,52,55,50,102,99,50,97,53,49,52,99,48,99,101,57,100,97,101,50,51,98,55,101,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,53,48,102,101,56,97,49,56,57,50,57,55,54,49,53,52,99,53,57,99,102,99,49,57,51,97,99,99,102,53,98,51,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,0,48,120,48,56,101,50,97,56,97,48,101,54,53,49,52,55,100,52,98,100,54,51,49,54,48,51,48,101,49,54,100,49,57,99,56,53,99,57,55,102,48,97,57,99,97,50,54,55,49,50,50,98,57,54,97,98,98,99,101,97,55,101,56,102,99,56,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,65,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,57,55,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,57,52,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,97,54,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,54,99,54,49,49,48,55,48,57,57,53,97,100,49,48,48,52,53,56,52,49,98,48,57,98,55,54,49,98,56,57,51,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,0,48,120,56,100,57,49,101,52,55,49,101,48,57,56,57,99,100,97,50,55,100,102,53,48,53,97,52,53,51,102,50,98,55,54,51,53,50,57,52,102,50,100,100,102,50,51,101,51,98,49,50,50,97,99,99,57,57,99,57,101,57,102,49,101,49,52,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,66,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,99,57,57,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,99,57,54,0,48,120,51,101,49,97,102,52,49,57,97,50,54,57,97,53,102,56,54,54,97,55,100,51,99,50,53,99,51,100,102,56,48,97,101,57,55,57,50,53,57,51,55,51,102,102,50,98,49,56,50,102,52,57,100,52,99,101,55,101,49,98,98,99,56,98,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,53,102,55,48,48,99,102,102,102,49,97,54,50,52,101,53,101,52,57,55,49,54,49,98,99,99,56,97,49,57,56,102,0,48,120,51,102,97,56,49,50,52,51,53,57,102,57,54,54,56,48,98,56,51,100,49,99,51,101,98,50,99,48,55,48,101,53,99,53,52,53,99,57,56,53,56,100,48,51,101,99,102,98,55,52,52,98,102,56,100,55,49,55,55,49,55,101,102,99,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,67,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,99,102,56,52,54,101,56,54,55,56,57,48,53,49,100,51,55,57,57,56,102,55,98,57,48,50,50,100,55,53,57,98,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,99,102,56,52,54,101,56,54,55,56,57,48,53,49,100,51,55,57,57,56,102,55,98,57,48,50,50,100,55,53,57,56,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,48,53,97,0,48,120,57,98,57,102,54,48,53,102,53,97,56,53,56,49,48,55,97,98,49,101,99,56,53,101,54,98,52,49,99,56,97,97,53,56,50,99,97,51,53,49,49,101,100,100,102,98,55,52,102,48,50,102,51,97,54,53,57,56,57,56,48,98,98,57,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,48,120,52,49,101,99,101,53,53,55,52,51,55,49,49,97,56,99,51,99,98,102,51,55,56,51,99,100,48,56,99,48,101,101,52,100,52,100,99,52,52,48,100,52,54,52,49,97,56,102,51,54,54,101,53,53,48,100,102,100,98,51,98,98,54,55,0,71,79,83,84,50,48,49,50,45,116,101,115,116,0,48,120,52,53,51,49,97,99,100,49,102,101,48,48,50,51,99,55,53,53,48,100,50,54,55,98,54,98,50,102,101,101,56,48,57,50,50,98,49,52,98,50,102,102,98,57,48,102,48,52,100,52,101,98,55,99,48,57,98,53,100,50,100,49,53,100,102,49,100,56,53,50,55,52,49,97,102,52,55,48,52,97,48,52,53,56,48,52,55,101,56,48,101,52,53,52,54,100,51,53,98,56,51,51,54,102,97,99,50,50,52,100,100,56,49,54,54,52,98,98,102,53,50,56,98,101,54,51,55,51,0,48,120,49,99,102,102,48,56,48,54,97,51,49,49,49,54,100,97,50,57,100,56,99,102,97,53,52,101,53,55,101,98,55,52,56,98,99,53,102,51,55,55,101,52,57,52,48,48,102,100,100,55,56,56,98,54,52,57,101,99,97,49,97,99,52,51,54,49,56,51,52,48,49,51,98,50,97,100,55,51,50,50,52,56,48,97,56,57,99,97,53,56,101,48,99,102,55,52,98,99,57,101,53,52,48,99,50,97,100,100,54,56,57,55,102,97,100,48,97,51,48,56,52,102,51,48,50,97,100,99,0,48,120,52,53,51,49,97,99,100,49,102,101,48,48,50,51,99,55,53,53,48,100,50,54,55,98,54,98,50,102,101,101,56,48,57,50,50,98,49,52,98,50,102,102,98,57,48,102,48,52,100,52,101,98,55,99,48,57,98,53,100,50,100,49,53,100,97,56,50,102,50,100,55,101,99,98,49,100,98,97,99,55,49,57,57,48,53,99,53,101,101,99,99,52,50,51,102,49,100,56,54,101,50,53,101,100,98,101,50,51,99,53,57,53,100,54,52,52,97,97,102,49,56,55,101,54,101,54,100,102,0,48,120,50,52,100,49,57,99,99,54,52,53,55,50,101,101,51,48,102,51,57,54,98,102,54,101,98,98,102,100,55,97,54,99,53,50,49,51,98,51,98,51,100,55,48,53,55,99,99,56,50,53,102,57,49,48,57,51,97,54,56,99,100,55,54,50,102,100,54,48,54,49,49,50,54,50,99,100,56,51,56,100,99,54,98,54,48,97,97,55,101,101,101,56,48,52,101,50,56,98,99,56,52,57,57,55,55,102,97,99,51,51,98,52,98,53,51,48,102,49,98,49,50,48,50,52,56,97,57,97,0,48,120,50,98,98,51,49,50,97,52,51,98,100,50,99,101,54,101,48,100,48,50,48,54,49,51,99,56,53,55,97,99,100,100,99,102,98,102,48,54,49,101,57,49,101,53,102,50,99,51,102,51,50,52,52,55,99,50,53,57,102,51,57,98,50,99,56,51,97,98,49,53,54,100,55,55,102,49,52,57,54,98,102,55,101,98,51,51,53,49,101,49,101,101,52,101,52,51,100,99,49,97,49,56,98,57,49,98,50,52,54,52,48,98,54,100,98,98,57,50,99,98,49,97,100,100,51,55,49,101,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,65,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,99,55,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,100,99,52,0,48,120,101,56,99,50,53,48,53,100,101,100,102,99,56,54,100,100,99,49,98,100,48,98,50,98,54,54,54,55,102,49,100,97,51,52,98,56,50,53,55,52,55,54,49,99,98,48,101,56,55,57,98,100,48,56,49,99,102,100,48,98,54,50,54,53,101,101,51,99,98,48,57,48,102,51,48,100,50,55,54,49,52,99,98,52,53,55,52,48,49,48,100,97,57,48,100,100,56,54,50,101,102,57,100,52,101,98,101,101,52,55,54,49,53,48,51,49,57,48,55,56,53,97,55,49,99,55,54,48,0,48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,50,55,101,54,57,53,51,50,102,52,56,100,56,57,49,49,54,102,102,50,50,98,56,100,52,101,48,53,54,48,54,48,57,98,52,98,51,56,97,98,102,97,100,50,98,56,53,100,99,97,99,100,98,49,52,49,49,102,49,48,98,50,55,53,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,51,0,48,120,55,53,48,51,99,102,101,56,55,97,56,51,54,97,101,51,97,54,49,98,56,56,49,54,101,50,53,52,53,48,101,54,99,101,53,101,49,99,57,51,97,99,102,49,97,98,99,49,55,55,56,48,54,52,102,100,99,98,101,102,97,57,50,49,100,102,49,54,50,54,98,101,52,102,100,48,51,54,101,57,51,100,55,53,101,54,97,53,48,101,51,97,52,49,101,57,56,48,50,56,102,101,53,102,99,50,51,53,102,53,98,56,56,57,97,53,56,57,99,98,53,50,49,53,102,50,97,52,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,66,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,54,102,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,54,99,0,48,120,54,56,55,100,49,98,52,53,57,100,99,56,52,49,52,53,55,101,51,101,48,54,99,102,54,102,53,101,50,53,49,55,98,57,55,99,55,100,54,49,52,97,102,49,51,56,98,99,98,102,56,53,100,99,56,48,54,99,52,98,50,56,57,102,51,101,57,54,53,100,50,100,98,49,52,49,54,100,50,49,55,102,56,98,50,55,54,102,97,100,49,97,98,54,57,99,53,48,102,55,56,98,101,101,49,102,97,51,49,48,54,101,102,98,56,99,99,98,99,55,99,53,49,52,48,49,49,54,0,48,120,56,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,52,57,97,49,101,99,49,52,50,53,54,53,97,53,52,53,97,99,102,100,98,55,55,98,100,57,100,52,48,99,102,97,56,98,57,57,54,55,49,50,49,48,49,98,101,97,48,101,99,54,51,52,54,99,53,52,51,55,52,102,50,53,98,100,0,48,120,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,0,48,120,49,97,56,102,55,101,100,97,51,56,57,98,48,57,52,99,50,99,48,55,49,101,51,54,52,55,97,56,57,52,48,102,51,99,49,50,51,98,54,57,55,53,55,56,99,50,49,51,98,101,54,100,100,57,101,54,99,56,101,99,55,51,51,53,100,99,98,50,50,56,102,100,49,101,100,102,52,97,51,57,49,53,50,99,98,99,97,97,102,56,99,48,51,57,56,56,50,56,48,52,49,48,53,53,102,57,52,99,101,101,101,99,55,101,50,49,51,52,48,55,56,48,102,101,52,49,98,100,0,115,101,99,112,50,53,54,107,49,0,48,120,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,70,70,70,70,70,67,50,70,0,48,120,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,69,66,65,65,69,68,67,69,54,65,70,52,56,65,48,51,66,66,70,68,50,53,69,56,67,68,48,51,54,52,49,52,49,0,48,120,55,57,66,69,54,54,55,69,70,57,68,67,66,66,65,67,53,53,65,48,54,50,57,53,67,69,56,55,48,66,48,55,48,50,57,66,70,67,68,66,50,68,67,69,50,56,68,57,53,57,70,50,56,49,53,66,49,54,70,56,49,55,57,56,0,48,120,52,56,51,65,68,65,55,55,50,54,65,51,67,52,54,53,53,68,65,52,70,66,70,67,48,69,49,49,48,56,65,56,70,68,49,55,66,52,52,56,65,54,56,53,53,52,49,57,57,67,52,55,68,48,56,70,70,66,49,48,68,52,66,56,0,49,46,51,46,54,46,49,46,52,46,49,46,49,49,53,57,49,46,49,53,46,49,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,51,46,49,46,49,0,112,114,105,109,101,49,57,50,118,49,0,115,101,99,112,49,57,50,114,49,0,110,105,115,116,112,49,57,50,0,115,101,99,112,50,50,52,114,49,0,49,46,51,46,49,51,50,46,48,46,51,51,0,110,105,115,116,112,50,50,52,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,51,46,49,46,55,0,112,114,105,109,101,50,53,54,118,49,0,115,101,99,112,50,53,54,114,49,0,110,105,115,116,112,50,53,54,0,115,101,99,112,51,56,52,114,49,0,49,46,51,46,49,51,50,46,48,46,51,52,0,110,105,115,116,112,51,56,52,0,115,101,99,112,53,50,49,114,49,0,49,46,51,46,49,51,50,46,48,46,51,53,0,110,105,115,116,112,53,50,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,51,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,53,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,55,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,57,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,51,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,48,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,49,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,50,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,51,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,88,99,104,65,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,88,99,104,66,0,49,46,50,46,54,52,51,46,50,46,50,46,51,54,46,48,0,49,46,50,46,54,52,51,46,50,46,50,46,51,54,46,49,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,49,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,50,0,49,46,51,46,49,51,50,46,48,46,49,48,0,48,120,48,52,0,45,112,97,98,103,110,104,0,98,0,103,0,46,120,0,46,121,0,46,122,0,104,0,100,0,101,99,99,32,103,101,116,32,112,97,114,97,109,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,40,112,117,98,108,105,99,45,107,101,121,40,101,99,99,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,41,41,0,103,46,120,0,103,46,121,0,113,46,120,0,113,46,121,0,101,100,100,115,97,95,101,110,99,111,100,101,112,111,105,110,116,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,48,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,68,0,115,99,97,110,110,105,110,103,32,69,67,67,32,112,97,114,97,109,101,116,101,114,32,102,97,105,108,101,100,58,32,37,115,10,0,50,66,56,51,50,52,56,48,52,70,67,49,68,70,48,66,50,66,52,68,48,48,57,57,51,68,70,66,68,55,65,55,50,70,52,51,49,56,48,54,65,68,50,70,69,52,55,56,67,52,69,69,49,66,50,55,52,65,48,69,65,48,66,48,0,101,99,103,101,110,32,32,32,32,32,32,112,107,0,42,32,101,95,112,107,0,32,32,101,95,112,107,0,32,32,32,32,32,109,0,32,32,32,114,0,32,32,32,101,95,114,0,32,72,40,82,43,41,0,32,32,32,101,95,115,0,87,101,105,101,114,115,116,114,97,115,115,0,69,100,119,97,114,100,115,0,83,116,97,110,100,97,114,100,0,69,100,50,53,53,49,57,0,109,112,105,95,112,114,105,110,116,32,102,97,105,108,101,100,58,32,37,115,10,0,109,112,105,95,115,99,97,110,32,102,97,105,108,101,100,58,32,37,115,10,0,70,73,80,83,45,49,57,56,97,44,32,65,46,49,0,83,97,109,112,108,101,32,35,49,0,79,76,163,213,214,139,167,204,10,18,8,201,198,30,156,93,160,64,60,10,0,105,110,118,97,108,105,100,32,116,101,115,116,115,32,100,97,116,97,0,103,99,114,121,95,109,100,95,115,101,116,107,101,121,32,102,97,105,108,101,100,0,103,99,114,121,95,109,100,95,114,101,97,100,32,102,97,105,108,101,100,0,100,111,101,115,32,110,111,116,32,109,97,116,99,104,0,70,73,80,83,45,49,57,56,97,44,32,65,46,50,0,83,97,109,112,108,101,32,35,50,0,9,34,211,64,95,170,61,25,79,130,164,88,48,115,125,92,198,199,93,36,0,70,73,80,83,45,49,57,56,97,44,32,65,46,51,0,83,97,109,112,108,101,32,35,51,0,188,244,30,171,139,178,216,2,243,208,92,175,124,176,146,236,248,209,163,170,0,70,73,80,83,45,49,57,56,97,44,32,65,46,52,0,83,97,109,112,108,101,32,35,52,0,158,168,134,239,226,104,219,236,206,66,12,117,36,223,50,224,117,26,42,38,0,104,109,97,99,0,100,97,116,97,45,50,56,32,107,101,121,45,52,0,119,104,97,116,32,100,111,32,121,97,32,119,97,110,116,32,102,111,114,32,110,111,116,104,105,110,103,63,0,74,101,102,101,0,100,97,116,97,45,57,32,107,101,121,45,50,48,0,72,105,32,84,104,101,114,101,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,100,97,116,97,45,53,48,32,107,101,121,45,50,48,0,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,100,97,116,97,45,53,48,32,107,101,121,45,50,54,0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,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,0,100,97,116,97,45,53,52,32,107,101,121,45,49,51,49,0,84,101,115,116,32,85,115,105,110,103,32,76,97,114,103,101,114,32,84,104,97,110,32,66,108,111,99,107,45,83,105,122,101,32,75,101,121,32,45,32,72,97,115,104,32,75,101,121,32,70,105,114,115,116,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,0,100,97,116,97,45,49,53,50,32,107,101,121,45,49,51,49,0,84,104,105,115,32,105,115,32,97,32,116,101,115,116,32,117,115,105,110,103,32,97,32,108,97,114,103,101,114,32,116,104,97,110,32,98,108,111,99,107,45,115,105,122,101,32,107,101,121,32,97,110,100,32,97,32,108,97,114,103,101,114,32,116,104,97,110,32,98,108,111,99,107,45,115,105,122,101,32,100,97,116,97,46,32,84,104,101,32,107,101,121,32,110,101,101,100,115,32,116,111,32,98,101,32,104,97,115,104,101,100,32,98,101,102,111,114,101,32,98,101,105,110,103,32,117,115,101,100,32,98,121,32,116,104,101,32,72,77,65,67,32,97,108,103,111,114,105,116,104,109,46,0,95,103,99,114,121,95,104,109,97,99,50,53,54,95,110,101,119,32,102,97,105,108,101,100,0,95,103,99,114,121,95,104,109,97,99,50,53,54,95,102,105,110,97,108,105,122,101,32,102,97,105,108,101,100,0,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,105,110,32,115,101,99,111,110,100,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,0,97,108,103,111,114,105,116,104,109,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,111,105,100,46,0,79,73,68,46,0,109,100,46,99,0,109,100,95,119,114,105,116,101,0,109,100,95,101,110,97,98,108,101,58,32,97,108,103,111,114,105,116,104,109,32,37,100,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,0,77,68,53,32,117,115,101,100,0,79,111,112,115,58,32,109,100,32,100,101,98,117,103,32,97,108,114,101,97,100,121,32,115,116,97,114,116,101,100,10,0,100,98,103,109,100,45,37,48,53,100,46,37,46,49,48,115,0,119,0,109,100,32,100,101,98,117,103,58,32,99,97,110,39,116,32,111,112,101,110,32,37,115,10,0,109,100,95,103,101,116,95,97,108,103,111,0,112,111,115,115,105,98,108,101,32,117,115,97,103,101,32,101,114,114,111,114,0,87,65,82,78,73,78,71,58,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,97,108,103,111,114,105,116,104,109,32,105,110,32,109,100,95,103,101,116,95,97,108,103,111,40,41,10,0,109,111,114,101,32,116,104,97,110,32,111,110,101,32,97,108,103,111,114,105,116,104,109,32,105,110,32,109,100,95,114,101,97,100,40,48,41,10,0,109,100,95,114,101,97,100,0,103,99,114,121,95,109,100,95,111,112,101,110,32,102,97,105,108,101,100,32,102,111,114,32,97,108,103,111,32,37,100,58,32,37,115,0,107,101,121,108,101,110,32,60,61,32,104,100,45,62,99,116,120,45,62,109,97,99,112,97,100,115,95,66,115,105,122,101,0,112,114,101,112,97,114,101,95,109,97,99,112,97,100,115,0,110,111,32,65,83,78,46,49,32,79,73,68,32,102,111,114,32,109,100,32,97,108,103,111,32,37,100,10,0,99,97,110,39,116,32,103,101,110,101,114,97,116,101,32,97,32,112,114,105,109,101,32,119,105,116,104,32,108,101,115,115,32,116,104,97,110,32,37,100,32,98,105,116,115,10,0,95,103,99,114,121,95,109,112,105,95,99,109,112,40,32,40,120,41,44,32,40,110,109,105,110,117,115,49,41,32,41,32,60,32,48,32,38,38,32,95,103,99,114,121,95,109,112,105,95,99,109,112,95,117,105,40,32,40,120,41,44,32,40,49,41,32,41,32,62,32,48,0,112,114,105,109,101,103,101,110,46,99,0,105,115,95,112,114,105,109,101,0,112,114,105,109,101,103,101,110,0,111,118,101,114,102,108,111,119,32,105,110,32,112,114,105,109,101,32,103,101,110,101,114,97,116,105,111,110,10,0,112,115,115,0,114,97,119,0,99,111,109,112,0,111,97,101,112,0,112,107,99,115,49,0,112,97,114,97,109,0,110,111,99,111,109,112,0,114,102,99,54,57,55,57,0,110,111,112,97,114,97,109,0,112,107,99,115,49,45,114,97,119,0,105,103,110,105,110,118,102,108,97,103,0,110,111,45,107,101,121,116,101,115,116,0,110,111,45,98,108,105,110,100,105,110,103,0,117,115,101,45,102,105,112,115,49,56,54,0,117,115,101,45,102,105,112,115,49,56,54,45,50,0,110,98,105,116,115,0,114,115,97,45,117,115,101,45,101,0,115,105,103,45,118,97,108,0,104,97,115,104,45,97,108,103,111,0,115,104,97,49,0,109,100,53,0,115,104,97,50,53,54,0,114,105,112,101,109,100,49,54,48,0,114,109,100,49,54,48,0,115,104,97,51,56,52,0,115,104,97,53,49,50,0,115,104,97,50,50,52,0,109,100,50,0,109,100,52,0,116,105,103,101,114,0,104,97,118,97,108,0,108,97,98,101,108,0,114,97,110,100,111,109,45,111,118,101,114,114,105,100,101,0,100,97,116,97,0,104,97,115,104,0,115,97,108,116,45,108,101,110,103,116,104,0,63,0,112,114,105,118,97,116,101,45,107,101,121,0,112,117,98,108,105,99,45,107,101,121,0,103,101,110,107,101,121,0,97,108,103,111,114,105,116,104,109,32,100,105,115,97,98,108,101,100,0,97,108,103,111,114,105,116,104,109,32,110,111,116,32,102,111,117,110,100,0,110,111,32,115,101,108,102,116,101,115,116,32,97,118,97,105,108,97,98,108,101,0,109,111,100,117,108,101,0,65,69,83,0,82,73,74,78,68,65,69,76,0,65,69,83,49,50,56,0,65,69,83,45,49,50,56,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,0,232,233,234,235,237,238,239,240,242,243,244,245,247,248,249,250,1,75,175,34,120,166,157,51,29,81,128,16,54,67,233,154,103,67,195,209,81,154,180,242,205,154,120,171,9,165,17,189,65,69,83,45,49,50,56,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,49,50,56,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,4,5,6,7,9,10,11,12,14,15,16,17,19,20,21,22,24,25,26,27,29,30,31,32,118,119,116,117,241,242,243,244,248,249,230,231,119,112,113,114,93,30,242,13,206,214,188,188,18,19,26,199,197,71,136,170,65,69,83,45,49,57,50,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,49,57,50,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,8,9,10,11,13,14,15,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,46,6,154,0,127,199,106,69,159,152,186,249,23,254,223,149,33,8,14,149,23,235,22,119,113,154,207,114,128,134,4,10,227,65,69,83,45,50,53,54,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,65,69,83,45,50,53,54,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,99,102,98,0,110,111,32,116,101,115,116,32,100,97,116,97,32,102,111,114,32,116,104,105,115,32,109,111,100,101,0,111,112,101,110,0,115,101,116,32,107,101,121,0,115,101,116,32,73,86,0,101,110,99,114,121,112,116,32,99,111,109,109,97,110,100,0,101,110,99,114,121,112,116,32,109,105,115,109,97,116,99,104,0,100,101,99,114,121,112,116,32,99,111,109,109,97,110,100,0,100,101,99,114,121,112,116,32,109,105,115,109,97,116,99,104,0,111,102,98,0,99,105,112,104,101,114,0,65,69,83,49,57,50,0,82,73,74,78,68,65,69,76,49,57,50,0,65,69,83,45,49,57,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,50,52,0,65,69,83,50,53,54,0,82,73,74,78,68,65,69,76,50,53,54,0,65,69,83,45,50,53,54,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,49,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,50,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,51,0,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,49,46,52,52,0,82,73,80,69,77,68,49,54,48,0,48,33,48,9,6,5,43,36,3,2,1,5,0,4,20,49,46,51,46,51,54,46,51,46,51,46,49,46,50,0,49,46,51,46,51,54,46,51,46,50,46,49,0,105,32,62,32,48,0,114,115,97,45,99,111,109,109,111,110,46,99,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,102,111,114,95,101,110,99,0,110,32,61,61,32,110,102,114,97,109,101,0,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,50,32,101,110,99,111,100,101,100,32,100,97,116,97,0,118,97,108,117,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,50,32,101,110,99,111,100,101,100,32,100,97,116,97,0,105,32,62,32,49,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,102,111,114,95,115,105,103,0,80,75,67,83,35,49,32,98,108,111,99,107,32,116,121,112,101,32,49,32,101,110,99,111,100,101,100,32,100,97,116,97,0,95,103,99,114,121,95,114,115,97,95,112,107,99,115,49,95,101,110,99,111,100,101,95,114,97,119,95,102,111,114,95,115,105,103,0,79,65,69,80,32,101,110,99,111,100,101,100,32,100,97,116,97,0,118,97,108,117,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,79,65,69,80,32,101,110,99,111,100,101,100,32,100,97,116,97,0,104,108,101,110,0,95,103,99,114,121,95,114,115,97,95,112,115,115,95,101,110,99,111,100,101,0,80,83,83,32,101,110,99,111,100,101,100,32,100,97,116,97,0,95,103,99,114,121,95,114,115,97,95,112,115,115,95,118,101,114,105,102,121,0,82,83,65,0,114,115,97,0,111,112,101,110,112,103,112,45,114,115,97,0,111,105,100,46,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,0,110,101,0,110,101,100,112,113,117,0,97,0,115,0,110,0,100,101,114,105,118,101,45,112,97,114,109,115,0,117,115,101,45,120,57,51,49,0,95,103,99,114,121,95,109,112,105,95,103,101,116,95,110,98,105,116,115,32,40,40,120,112,41,41,32,61,61,32,110,98,105,116,115,0,114,115,97,46,99,0,103,101,110,95,120,57,51,49,95,112,97,114,109,95,120,112,0,95,103,99,114,121,95,109,112,105,95,103,101,116,95,110,98,105,116,115,32,40,40,120,105,41,41,32,61,61,32,49,48,49,0,103,101,110,95,120,57,51,49,95,112,97,114,109,95,120,105,0,88,112,49,0,88,112,50,0,88,112,0,88,113,49,0,88,113,50,0,88,113,0,95,103,99,114,121,95,109,112,105,95,103,99,100,32,40,32,40,103,41,44,32,40,101,41,44,32,40,112,104,105,41,32,41,0,103,101,110,101,114,97,116,101,95,120,57,51,49,0,112,32,97,110,100,32,113,32,97,114,101,32,115,119,97,112,112,101,100,10,0,32,32,113,0,32,32,110,0,32,32,101,0,32,32,100,0,32,32,117,0,115,101,108,102,45,116,101,115,116,32,97,102,116,101,114,32,107,101,121,32,103,101,110,101,114,97,116,105,111,110,32,102,97,105,108,101,100,0,40,109,105,115,99,45,107,101,121,45,105,110,102,111,40,112,45,113,45,115,119,97,112,112,101,100,41,41,0,103,101,110,101,114,97,116,101,95,115,116,100,0,32,32,112,61,32,0,32,32,113,61,32,0,112,104,105,61,32,0,32,32,103,61,32,0,32,32,102,61,32,0,32,32,110,61,32,0,32,32,101,61,32,0,32,32,100,61,32,0,32,32,117,61,32,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,114,115,97,40,110,37,109,41,40,101,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,114,115,97,40,110,37,109,41,40,101,37,109,41,40,100,37,109,41,40,112,37,109,41,40,113,37,109,41,40,117,37,109,41,41,41,32,37,83,41,0,114,115,97,95,116,101,115,116,107,101,121,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,101,110,99,114,121,112,116,32,100,97,116,97,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,110,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,101,0,114,115,97,95,101,110,99,114,121,112,116,32,32,114,101,115,0,40,101,110,99,45,118,97,108,40,114,115,97,40,97,37,98,41,41,41,0,40,101,110,99,45,118,97,108,40,114,115,97,40,97,37,109,41,41,41,0,114,115,97,95,101,110,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,100,101,99,114,121,112,116,32,100,97,116,97,0,110,101,100,112,63,113,63,117,63,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,110,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,101,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,100,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,112,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,113,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,117,0,114,115,97,95,100,101,99,114,121,112,116,32,32,114,101,115,0,40,118,97,108,117,101,32,37,98,41,0,37,109,0,114,115,97,95,100,101,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,115,105,103,110,32,32,32,100,97,116,97,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,110,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,101,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,100,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,112,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,113,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,117,0,114,115,97,95,115,105,103,110,32,32,32,32,114,101,115,0,40,115,105,103,45,118,97,108,40,114,115,97,40,115,37,98,41,41,41,0,40,115,105,103,45,118,97,108,40,114,115,97,40,115,37,77,41,41,41,0,114,115,97,95,115,105,103,110,32,32,32,32,32,32,61,62,32,37,115,10,0,114,115,97,95,118,101,114,105,102,121,32,100,97,116,97,0,114,115,97,95,118,101,114,105,102,121,32,32,115,105,103,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,110,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,101,0,114,115,97,95,118,101,114,105,102,121,32,32,99,109,112,0,114,115,97,95,118,101,114,105,102,121,32,32,32,32,61,62,32,37,115,10,0,99,111,110,118,101,114,116,0,40,112,114,105,118,97,116,101,45,107,101,121,32,40,114,115,97,32,32,40,110,32,35,48,48,101,48,99,101,57,54,102,57,48,98,54,99,57,101,48,50,102,51,57,50,50,98,101,97,100,97,57,51,102,101,53,48,97,56,55,53,101,97,99,54,98,99,99,49,56,98,98,57,97,57,99,102,50,101,56,52,57,54,53,99,97,97,32,32,32,32,32,32,50,100,49,102,102,57,53,97,55,102,53,52,50,52,54,53,99,54,99,48,99,49,57,100,50,55,54,101,52,53,50,54,99,101,48,52,56,56,54,56,97,55,97,57,49,52,102,100,51,52,51,99,99,51,97,56,55,100,100,55,52,50,57,49,32,32,32,32,32,32,102,102,99,53,54,53,53,48,54,100,53,98,98,98,50,53,99,98,97,99,54,97,48,101,50,100,100,49,102,56,98,99,97,97,98,48,100,52,97,50,57,99,50,102,51,55,99,57,53,48,102,51,54,51,52,56,52,98,102,50,54,57,102,55,32,32,32,32,32,32,56,57,49,52,52,48,52,54,52,98,97,102,55,57,56,50,55,101,48,51,97,51,54,101,55,48,98,56,49,52,57,51,56,101,101,98,100,99,54,51,101,57,54,52,50,52,55,98,101,55,53,100,99,53,56,98,48,49,52,98,55,101,97,50,53,49,35,41,32,32,40,101,32,35,48,49,48,48,48,49,35,41,32,32,40,100,32,35,48,52,54,49,50,57,102,50,52,56,57,100,55,49,53,55,57,98,101,48,97,55,53,102,101,48,50,57,98,100,54,99,100,98,53,55,52,101,98,102,53,55,101,97,56,97,53,98,48,102,100,97,57,52,50,99,97,98,57,52,51,98,49,49,32,32,32,32,32,32,55,100,55,98,98,57,53,101,53,100,50,56,56,55,53,101,48,102,57,102,99,53,102,99,99,48,54,97,55,50,102,54,100,53,48,50,52,54,52,100,97,98,100,101,100,55,56,101,102,54,98,55,49,54,49,55,55,98,56,51,100,53,98,100,32,32,32,32,32,32,99,53,52,51], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+30720);
/* memory initializer */ allocate([100,99,53,100,51,102,101,100,57,51,50,101,53,57,102,53,56,57,55,101,57,50,101,54,102,53,56,97,48,102,51,51,52,50,52,49,48,54,97,51,98,54,102,97,50,99,98,102,56,55,55,53,49,48,101,52,97,99,50,49,32,32,32,32,32,32,99,51,101,101,52,55,56,53,49,101,57,55,100,49,50,57,57,54,50,50,50,97,99,51,53,54,54,100,52,99,99,98,48,98,56,51,100,49,54,52,48,55,52,97,98,102,55,100,101,54,53,53,102,99,50,52,52,54,100,97,49,55,56,49,35,41,32,32,40,112,32,35,48,48,101,56,54,49,98,55,48,48,101,49,55,101,56,97,102,101,54,56,51,55,101,55,53,49,50,101,51,53,98,54,99,97,49,49,100,48,97,101,52,55,100,56,98,56,53,49,54,49,99,54,55,98,97,102,54,52,51,55,55,50,49,51,32,32,32,32,32,32,102,101,53,50,100,55,55,50,102,50,48,51,53,98,51,99,97,56,51,48,97,102,52,49,100,56,97,52,49,50,48,101,49,99,49,99,55,48,100,49,50,99,99,50,50,102,48,48,100,50,56,100,51,49,100,100,52,56,97,56,100,52,50,52,102,49,35,41,32,32,40,113,32,35,48,48,102,55,97,55,99,97,53,51,54,55,99,54,54,49,102,56,101,54,50,100,102,51,52,102,48,100,48,53,99,49,48,99,56,56,101,53,52,57,50,51,52,56,100,100,55,98,100,100,99,57,52,50,99,57,97,56,102,51,54,57,102,57,32,32,32,32,32,32,51,53,97,48,55,55,56,53,100,50,100,98,56,48,53,50,49,53,101,100,55,56,54,101,52,50,56,53,100,102,49,54,53,56,101,101,100,51,99,101,56,52,102,52,54,57,98,56,49,98,53,48,100,51,53,56,52,48,55,98,52,97,100,51,54,49,35,41,32,32,40,117,32,35,51,48,52,53,53,57,97,57,101,97,100,53,54,100,50,51,48,57,100,50,48,51,56,49,49,97,54,52,49,98,98,49,97,48,57,54,50,54,98,99,56,101,98,51,54,102,102,102,97,50,51,99,57,54,56,101,99,53,98,100,56,57,49,101,32,32,32,32,32,32,101,98,98,97,102,99,55,51,97,101,54,54,54,101,48,49,98,97,55,99,56,57,57,48,98,97,101,48,54,99,99,50,98,98,101,49,48,98,55,53,101,54,57,102,99,97,99,98,51,53,51,97,54,52,55,51,48,55,57,100,56,101,57,98,35,41,41,41,0,40,112,117,98,108,105,99,45,107,101,121,32,40,114,115,97,32,32,40,110,32,35,48,48,101,48,99,101,57,54,102,57,48,98,54,99,57,101,48,50,102,51,57,50,50,98,101,97,100,97,57,51,102,101,53,48,97,56,55,53,101,97,99,54,98,99,99,49,56,98,98,57,97,57,99,102,50,101,56,52,57,54,53,99,97,97,32,32,32,32,32,32,50,100,49,102,102,57,53,97,55,102,53,52,50,52,54,53,99,54,99,48,99,49,57,100,50,55,54,101,52,53,50,54,99,101,48,52,56,56,54,56,97,55,97,57,49,52,102,100,51,52,51,99,99,51,97,56,55,100,100,55,52,50,57,49,32,32,32,32,32,32,102,102,99,53,54,53,53,48,54,100,53,98,98,98,50,53,99,98,97,99,54,97,48,101,50,100,100,49,102,56,98,99,97,97,98,48,100,52,97,50,57,99,50,102,51,55,99,57,53,48,102,51,54,51,52,56,52,98,102,50,54,57,102,55,32,32,32,32,32,32,56,57,49,52,52,48,52,54,52,98,97,102,55,57,56,50,55,101,48,51,97,51,54,101,55,48,98,56,49,52,57,51,56,101,101,98,100,99,54,51,101,57,54,52,50,52,55,98,101,55,53,100,99,53,56,98,48,49,52,98,55,101,97,50,53,49,35,41,32,32,40,101,32,35,48,49,48,48,48,49,35,41,41,41,0,107,101,121,32,99,111,110,115,105,115,116,101,110,99,121,0,115,105,103,110,0,40,100,97,116,97,32,40,102,108,97,103,115,32,112,107,99,115,49,41,32,40,104,97,115,104,32,115,104,97,49,32,35,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,48,48,97,97,98,98,99,99,100,100,101,101,102,102,49,48,50,48,51,48,52,48,35,41,41,0,40,100,97,116,97,32,40,102,108,97,103,115,32,112,107,99,115,49,41,32,40,104,97,115,104,32,115,104,97,49,32,35,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,48,48,97,97,98,98,99,99,100,100,101,101,102,102,56,48,50,48,51,48,52,48,35,41,41,0,99,111,110,118,101,114,116,105,110,103,32,100,97,116,97,32,102,97,105,108,101,100,0,115,105,103,110,105,110,103,32,102,97,105,108,101,100,0,118,101,114,105,102,121,32,102,97,105,108,101,100,0,98,97,100,32,115,105,103,110,97,116,117,114,101,32,110,111,116,32,100,101,116,101,99,116,101,100,0,101,110,99,114,121,112,116,0,40,100,97,116,97,32,40,102,108,97,103,115,32,114,97,119,41,32,40,118,97,108,117,101,32,37,109,41,41,0,101,110,99,114,121,112,116,32,102,97,105,108,101,100,0,101,110,99,45,118,97,108,0,103,99,114,121,95,112,107,95,100,101,99,114,121,112,116,32,114,101,116,117,114,110,101,100,32,103,97,114,98,97,103,101,0,99,105,112,104,101,114,116,101,120,116,32,109,97,116,99,104,101,115,32,112,108,97,105,110,116,101,120,116,0,100,101,99,114,121,112,116,32,102,97,105,108,101,100,0,118,97,108,117,101,0,100,101,99,114,121,112,116,32,114,101,116,117,114,110,101,100,32,110,111,32,112,108,97,105,110,116,101,120,116,0,109,105,115,109,97,116,99,104,0,83,72,65,49,0,48,33,48,9,6,5,43,14,3,2,26,5,0,4,20,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,53,0,49,46,50,46,56,52,48,46,49,48,48,52,48,46,52,46,51,0,49,46,51,46,49,52,46,51,46,50,46,50,54,0,49,46,51,46,49,52,46,51,46,50,46,50,57,0,49,46,50,46,56,52,48,46,49,48,48,52,53,46,52,46,49,0,169,153,62,54,71,6,129,106,186,62,37,113,120,80,194,108,156,208,216,157,0,132,152,62,68,28,59,210,110,186,174,74,161,249,81,41,229,229,70,112,241,0,52,170,151,60,212,196,218,164,246,30,235,43,219,173,39,49,101,52,1,111,0,83,72,65,50,50,52,0,48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,52,0,35,9,125,34,52,5,216,34,134,66,164,119,189,162,85,179,42,173,188,228,189,160,179,247,227,108,157,167,0,97,98,99,100,98,99,100,101,99,100,101,102,100,101,102,103,101,102,103,104,102,103,104,105,103,104,105,106,104,105,106,107,105,106,107,108,106,107,108,109,107,108,109,110,108,109,110,111,109,110,111,112,110,111,112,113,0,117,56,139,22,81,39,118,204,93,186,93,161,253,137,1,80,176,198,69,92,180,245,139,25,82,82,37,37,0,32,121,70,85,152,12,145,216,187,180,193,234,151,97,138,75,240,63,66,88,25,72,178,238,78,231,173,103,0,186,120,22,191,143,1,207,234,65,65,64,222,93,174,34,35,176,3,97,163,150,23,122,156,180,16,255,97,242,0,21,173,0,36,141,106,97,210,6,56,184,229,192,38,147,12,62,96,57,163,60,228,89,100,255,33,103,246,236,237,212,25,219,6,193,0,205,199,110,92,153,20,251,146,129,161,199,226,132,215,62,103,241,128,154,72,164,151,32,14,4,109,57,204,199,17,44,208,0,83,72,65,50,53,54,0,48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,49,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,49,0,83,72,65,53,49,50,0,48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,51,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,51,0,115,104,111,114,116,32,115,116,114,105,110,103,0,97,98,99,0,203,0,117,63,69,163,94,139,181,160,61,105,154,198,80,7,39,44,50,171,14,222,209,99,26,139,96,90,67,255,91,237,128,134,7,43,161,231,204,35,88,186,236,161,52,200,37,167,0,108,111,110,103,32,115,116,114,105,110,103,0,97,98,99,100,101,102,103,104,98,99,100,101,102,103,104,105,99,100,101,102,103,104,105,106,100,101,102,103,104,105,106,107,101,102,103,104,105,106,107,108,102,103,104,105,106,107,108,109,103,104,105,106,107,108,109,110,104,105,106,107,108,109,110,111,105,106,107,108,109,110,111,112,106,107,108,109,110,111,112,113,107,108,109,110,111,112,113,114,108,109,110,111,112,113,114,115,109,110,111,112,113,114,115,116,110,111,112,113,114,115,116,117,0,9,51,12,51,247,17,71,232,61,25,47,199,130,205,27,71,83,17,27,23,59,59,5,210,47,160,128,134,227,176,247,18,252,199,199,26,85,126,45,185,102,195,233,250,145,116,96,57,0,111,110,101,32,109,105,108,108,105,111,110,32,34,97,34,0,157,14,24,9,113,100,116,203,8,110,131,78,49,10,74,28,237,20,158,156,0,242,72,82,121,114,206,197,112,76,42,91,7,184,179,220,56,236,196,235,174,151,221,216,127,61,137,133,0,100,105,103,101,115,116,0,221,175,53,161,147,97,122,186,204,65,115,73,174,32,65,49,18,230,250,78,137,169,126,162,10,158,238,230,75,85,211,154,33,146,153,42,39,79,193,168,54,186,60,35,163,254,235,189,69,77,68,35,100,60,232,14,42,154,201,79,165,76,164,159,0,142,149,155,117,218,227,19,218,140,244,247,40,20,252,20,63,143,119,121,198,235,159,127,161,114,153,174,173,182,136,144,24,80,29,40,158,73,0,247,228,51,27,153,222,196,181,67,58,199,211,41,238,182,221,38,84,94,150,229,91,135,75,233,9,0,231,24,72,61,12,231,105,100,78,46,66,199,188,21,180,99,142,31,152,177,59,32,68,40,86,50,168,3,175,169,115,235,222,15,242,68,135,126,166,10,76,176,67,44,229,119,195,27,235,0,156,92,44,73,170,46,78,173,178,23,173,140,192,155,0,83,72,65,51,56,52,0,48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,50,0,49,46,50,46,56,52,48,46,49,49,51,53,52,57,46,49,46,49,46,49,50,0,84,87,79,70,73,83,72,0,159,88,159,92,246,18,44,50,182,191,236,47,42,232,195,90,212,145,219,22,231,177,195,158,134,203,8,107,120,159,84,25,1,159,152,9,222,23,17,133,143,170,195,163,186,32,251,195,84,119,111,102,105,115,104,45,49,50,56,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,49,50,56,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,212,59,183,85,110,163,46,70,242,162,130,183,212,91,78,13,87,255,115,157,77,201,44,27,215,252,1,112,12,200,33,111,144,175,233,27,178,136,84,79,44,50,220,35,155,38,53,230,108,180,86,28,64,191,10,151,5,147,28,182,212,8,231,250,84,119,111,102,105,115,104,45,50,53,54,32,116,101,115,116,32,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,84,119,111,102,105,115,104,45,50,53,54,32,116,101,115,116,32,100,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,37,115,10,0,0,1,23,2,46,24,83,3,106,47,147,25,52,84,69,4,92,107,182,48,166,148,75,26,140,53,129,85,170,70,13,5,36,93,135,108,155,183,193,49,43,167,163,149,152,76,202,27,230,141,115,54,205,130,18,86,98,171,240,71,79,14,189,6,212,37,210,94,39,136,102,109,214,156,121,184,8,194,223,50,104,44,253,168,138,164,90,150,41,153,34,77,96,203,228,28,123,231,59,142,158,116,244,55,216,206,249,131,111,19,178,87,225,99,220,172,196,241,175,72,10,80,66,15,186,190,199,7,222,213,120,38,101,211,209,95,227,40,33,137,89,103,252,110,177,215,248,157,243,122,58,185,198,9,65,195,174,224,219,51,68,105,146,45,82,254,22,169,12,139,128,165,74,91,181,151,201,42,162,154,192,35,134,78,188,97,239,204,17,229,114,29,61,124,235,232,233,60,234,143,125,159,236,117,30,245,62,56,246,217,63,207,118,250,31,132,160,112,237,20,144,179,126,88,251,226,32,100,208,221,119,173,218,197,64,242,57,176,247,73,180,11,127,81,21,67,145,16,113,187,238,191,133,200,161,1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,219,251,187,59,118,236,149,103,206,209,239,147,107,214,225,143,83,166,1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,169,117,103,243,179,198,232,244,4,219,253,123,163,251,118,200,154,74,146,211,128,230,120,107,228,69,221,125,209,232,56,75,13,214,198,50,53,216,152,253,24,55,247,113,236,241,108,225,67,48,117,15,55,248,38,27,250,135,19,250,148,6,72,63,242,94,208,186,139,174,48,91,132,138,84,0,223,188,35,157,25,109,91,193,61,177,89,14,243,128,174,93,162,210,130,213,99,160,1,132,131,7,46,20,217,181,81,144,155,44,124,163,166,178,235,115,165,76,190,84,22,146,12,116,227,54,97,81,192,56,140,176,58,189,245,90,115,252,44,96,37,98,11,150,187,108,78,66,137,247,107,16,83,124,106,40,180,39,241,140,225,19,230,149,189,156,69,199,226,36,244,70,182,59,102,112,204,202,149,227,3,133,86,203,212,17,28,208,30,147,215,184,251,166,195,131,142,32,181,255,233,159,207,119,191,195,186,204,234,3,119,111,57,8,175,191,51,64,201,231,98,43,113,226,129,121,121,12,9,170,173,130,36,65,205,58,249,234,216,185,229,228,197,154,185,164,77,151,68,126,8,218,134,122,231,23,161,102,29,148,170,161,237,29,6,61,112,240,178,222,210,179,65,11,123,114,160,167,17,28,49,239,194,209,39,83,144,62,32,143,246,51,96,38,255,95,150,236,92,118,177,42,171,73,158,129,156,136,82,238,27,33,95,196,147,26,10,235,239,217,145,197,133,57,73,153,238,205,45,173,79,49,143,139,59,1,71,24,135,35,109,221,70,31,214,78,62,45,105,249,100,72,42,79,206,242,203,101,47,142,252,120,151,92,5,88,122,25,172,141,127,229,213,152,26,87,75,103,14,127,167,5,90,100,40,175,20,99,63,182,41,254,136,245,60,183,76,60,2,165,184,206,218,233,176,104,23,68,85,224,31,77,138,67,125,105,87,41,199,46,141,172,116,21,183,89,196,168,159,10,114,158,126,110,21,71,34,223,18,52,88,53,7,106,153,207,52,220,110,34,80,201,222,192,104,155,101,137,188,212,219,237,248,171,200,18,168,162,43,13,64,82,220,187,254,2,50,47,164,169,202,215,16,97,33,30,240,180,211,80,93,4,15,246,0,194,111,22,157,37,54,134,66,86,74,85,94,9,193,190,224,145,117,243,198,244,219,123,251,200,74,211,230,107,69,125,232,75,214,50,216,253,55,113,241,225,48,15,248,27,135,250,6,63,94,186,174,91,138,0,188,157,109,193,177,14,128,93,210,213,160,132,7,20,181,144,44,163,178,115,76,84,146,116,54,81,56,176,189,90,252,96,98,150,108,66,247,16,124,40,39,140,19,149,156,199,36,70,59,112,202,227,133,203,17,208,147,184,166,131,32,255,159,119,195,204,3,111,8,191,64,231,43,226,121,12,170,130,65,58,234,185,228,154,164,151,126,218,122,23,102,148,161,29,61,240,222,179,11,114,167,28,239,209,83,62,143,51,38,95,236,118,42,73,129,136,238,33,196,26,235,217,197,57,153,205,173,49,139,1,24,35,221,31,78,45,249,72,79,242,101,142,120,92,88,25,141,229,152,87,103,127,5,100,175,99,182,254,245,183,60,165,206,233,104,68,224,77,67,105,41,46,172,21,89,168,10,158,110,71,223,52,53,106,207,220,34,201,192,155,137,212,237,171,18,162,13,82,187,2,47,169,215,97,30,180,80,4,246,194,22,37,134,86,85,9,190,145,169,103,179,232,4,253,163,118,154,146,128,120,228,221,209,56,13,198,53,152,24,247,236,108,67,117,55,38,250,19,148,72,242,208,139,48,132,84,223,35,25,91,61,89,243,174,162,130,99,1,131,46,217,81,155,124,166,235,165,190,22,12,227,97,192,140,58,245,115,44,37,11,187,78,137,107,83,106,180,241,225,230,189,69,226,244,182,102,204,149,3,86,212,28,30,215,251,195,142,181,233,207,191,186,234,119,57,175,51,201,98,113,129,121,9,173,36,205,249,216,229,197,185,77,68,8,134,231,161,29,170,237,6,112,178,210,65,123,160,17,49,194,39,144,32,246,96,255,150,92,177,171,158,156,82,27,95,147,10,239,145,133,73,238,45,79,143,59,71,135,109,70,214,62,105,100,42,206,203,47,252,151,5,122,172,127,213,26,75,14,167,90,40,20,63,41,136,60,76,2,184,218,176,23,85,31,138,125,87,199,141,116,183,196,159,114,126,21,34,18,88,7,153,52,110,80,222,104,101,188,219,248,200,168,43,64,220,254,50,164,202,16,33,240,211,93,15,0,111,157,54,66,74,94,193,224,84,87,79,70,73,83,72,49,50,56,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,110,111,110,99,101,32,98,117,102,102,101,114,32,108,111,99,107,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,110,111,110,99,101,32,98,117,102,102,101,114,32,108,111,99,107,58,32,37,115,10,0,37,115,46,42,0,37,115,46,88,0,101,99,95,105,110,118,109,58,32,105,110,118,101,114,115,101,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,58,10,0,32,32,97,0,32,32,112,0,37,115,58,32,71,101,116,116,105,110,103,32,89,45,99,111,111,114,100,105,110,97,116,101,32,111,110,32,37,115,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,95,103,99,114,121,95,109,112,105,95,101,99,95,103,101,116,95,97,102,102,105,110,101,0,77,111,110,116,103,111,109,101,114,121,0,71,67,82,89,80,84,95,66,65,82,82,69,84,84,0,37,115,58,32,37,115,32,110,111,116,32,121,101,116,32,115,117,112,112,111,114,116,101,100,10,0,95,103,99,114,121,95,109,112,105,95,101,99,95,100,117,112,95,112,111,105,110,116,0,95,103,99,114,121,95,109,112,105,95,101,99,95,97,100,100,95,112,111,105,110,116,115,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,33,98,112,95,109,97,114,107,101,114,0,109,112,105,45,112,111,119,46,99,0,95,103,99,114,121,95,109,112,105,95,112,111,119,109,0,114,101,115,45,62,100,32,61,61,32,114,112,0,105,32,61,61,32,110,108,105,109,98,115,0,109,112,105,99,111,100,101,114,46,99,0,95,103,99,114,121,95,109,112,105,95,115,101,116,95,98,117,102,102,101,114,0,58,103,101,110,101,114,105,99,47,109,112,105,104,45,97,100,100,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,115,117,98,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,49,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,50,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,109,117,108,51,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,108,115,104,105,102,116,46,99,58,103,101,110,101,114,105,99,47,109,112,105,104,45,114,115,104,105,102,116,46,99,0,105,110,118,97,108,105,100,32,109,112,105,95,99,111,110,115,116,32,115,101,108,101,99,116,111,114,32,37,100,10,0,87,97,114,110,105,110,103,58,32,116,114,121,105,110,103,32,116,111,32,99,104,97,110,103,101,32,97,110,32,105,109,109,117,116,97,98,108,101,32,77,80,73,10,0,105,110,118,97,108,105,100,32,102,108,97,103,32,118,97,108,117,101,32,105,110,32,109,112,105,95,102,114,101,101,10,0,109,112,105,95,103,101,116,95,111,112,97,113,117,101,32,111,110,32,110,111,114,109,97,108,32,109,112,105,10,0,109,112,105,95,115,101,116,95,99,111,110,100,58,32,100,105,102,102,101,114,101,110,116,32,115,105,122,101,115,10,0,109,112,105,95,115,119,97,112,95,99,111,110,100,58,32,100,105,102,102,101,114,101,110,116,32,115,105,122,101,115,10,0,105,110,118,97,108,105,100,32,102,108,97,103,32,118,97,108,117,101,10,0,77,80,73,32,115,117,98,115,121,115,116,101,109,32,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,10,0,10,10,84,104,105,115,32,105,115,32,76,105,98,103,99,114,121,112,116,32,49,46,55,46,48,45,98,101,116,97,50,51,48,32,45,32,84,104,101,32,71,78,85,32,67,114,121,112,116,111,32,76,105,98,114,97,114,121,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,48,48,45,50,48,49,50,32,70,114,101,101,32,83,111,102,116,119,97,114,101,32,70,111,117,110,100,97,116,105,111,110,44,32,73,110,99,46,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,50,45,50,48,49,52,32,103,49,48,32,67,111,100,101,32,71,109,98,72,10,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,51,45,50,48,49,52,32,74,117,115,115,105,32,75,105,118,105,108,105,110,110,97,10,10,40,97,51,54,101,101,55,53,32,50,48,49,54,45,48,50,45,49,56,84,49,52,58,52,57,43,48,48,48,48,41,10,10,10,0,99,105,112,104,101,114,45,99,109,97,99,46,99,0,99,109,97,99,95,103,101,110,101,114,97,116,101,95,115,117,98,107,101,121,115,0,99,45,62,117,110,117,115,101,100,32,60,32,98,108,111,99,107,115,105,122,101,0,99,105,112,104,101,114,45,99,116,114,46,99,0,95,103,99,114,121,95,99,105,112,104,101,114,95,99,116,114,95,101,110,99,114,121,112,116,0,117,110,117,115,101,100,32,61,61,32,98,108,111,99,107,115,105,122,101,0,99,105,112,104,101,114,45,103,99,109,46,99,0,100,111,95,103,104,97,115,104,95,98,117,102,0,102,97,105,108,101,100,32,116,111,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,0,115,101,116,107,101,121,32,102,97,105,108,101,100,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,66,67,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,70,66,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,115,101,108,102,116,101,115,116,32,102,111,114,32,67,84,82,32,102,97,105,108,101,100,32,45,32,115,101,101,32,115,121,115,108,111,103,32,102,111,114,32,100,101,116,97,105,108,115,0,69,67,67,0,101,99,99,0,101,99,100,115,97,0,101,99,100,104,0,101,100,100,115,97,0,103,111,115,116,0,112,97,98,103,110,104,113,0,112,97,98,103,110,104,113,100,0,115,119,0,114,115,0,99,117,114,118,101,0,102,108,97,103,115,0,116,114,97,110,115,105,101,110,116,45,107,101,121,0,101,99,103,101,110,32,99,117,114,118,101,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,103,101,110,32,99,117,114,118,101,32,117,115,101,100,58,32,37,115,10,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,112,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,97,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,98,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,110,0,101,99,103,101,110,32,99,117,114,118,101,32,32,32,104,0,101,99,103,101,110,32,99,117,114,118,101,32,71,0,101,99,103,101,110,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,37,115,10,0,81,0,101,99,103,101,110,32,99,111,110,118,101,114,116,101,100,32,81,32,116,111,32,97,32,99,111,109,112,108,105,97,110,116,32,112,111,105,110,116,10,0,101,99,103,101,110,32,100,105,100,110,39,116,32,110,101,101,100,32,116,111,32,99,111,110,118,101,114,116,32,81,32,116,111,32,97,32,99,111,109,112,108,105,97,110,116,32,112,111,105,110,116,10,0,84,101,115,116,105,110,103,32,107,101,121,46,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,32,102,97,105,108,101,100,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,44,32,118,101,114,105,102,121,32,102,97,105,108,101,100,10,0,69,67,68,83,65,32,111,112,101,114,97,116,105,111,110,58,32,115,105,103,110,44,32,118,101,114,105,102,121,32,111,107,46,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,104,107,81,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,104,100,107,71,10,0,69,67,68,72,32,116,101,115,116,32,102,97,105,108,101,100,46,10,0,71,0,40,99,117,114,118,101,32,37,115,41,0,40,102,108,97,103,115,32,112,97,114,97,109,41,0,40,102,108,97,103,115,32,101,100,100,115,97,41,0,40,102,108,97,103,115,32,112,97,114,97,109,32,101,100,100,115,97,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,40,113,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,112,37,109,41,40,97,37,109,41,40,98,37,109,41,40,103,37,109,41,40,110,37,109,41,40,104,37,109,41,40,113,37,109,41,40,100,37,109,41,41,41,32,41,0,40,107,101,121,45,100,97,116,97,32,40,112,117,98,108,105,99,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,113,37,109,41,41,41,32,40,112,114,105,118,97,116,101,45,107,101,121,32,32,40,101,99,99,37,83,37,83,40,113,37,109,41,40,100,37,109,41,41,41,32,41,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,112,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,97,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,98,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,71,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,110,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,104,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,81,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,100,0,101,99,103,101,110,32,114,101,115,117,108,116,32,32,117,115,105,110,103,32,69,100,50,53,53,49,57,43,69,100,68,83,65,10,0,45,112,63,97,63,98,63,103,63,110,63,104,63,47,113,63,43,100,0,47,113,63,43,100,0,101,99,99,95,116,101,115,116,107,101,121,32,105,110,102,58,32,37,115,47,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,110,97,109,58,32,37,115,10,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,112,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,97,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,98,0,101,99,99,95,116,101,115,116,107,101,121,32,103,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,110,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,104,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,113,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,100,0,66,97,100,32,99,104,101,99,107,58,32,80,111,105,110,116,32,39,71,39,32,100,111,101,115,32,110,111,116,32,98,101,108,111,110,103,32,116,111,32,99,117,114,118,101,32,39,69,39,33,10,0,66,97,100,32,99,104,101,99,107,58,32,39,71,39,32,99,97,110,110,111,116,32,98,101,32,80,111,105,110,116,32,97,116,32,73,110,102,105,110,105,116,121,33,10,0,99,104,101,99,107,95,115,101,99,114,101,116,95,107,101,121,58,32,69,32,105,115,32,110,111,116,32,97,32,99,117,114,118,101,32,111,102,32,111,114,100,101,114,32,110,10,0,66,97,100,32,99,104,101,99,107,58,32,81,32,99,97,110,32,110,111,116,32,98,101,32,97,32,80,111,105,110,116,32,97,116,32,73,110,102,105,110,105,116,121,33,10,0,66,97,100,32,99,104,101,99,107,58,32,99,111,109,112,117,116,97,116,105,111,110,32,111,102,32,100,71,32,102,97,105,108,101,100,10,0,66,97,100,32,99,104,101,99,107,58,32,84,104,101,114,101,32,105,115,32,78,79,32,99,111,114,114,101,115,112,111,110,100,101,110,99,101,32,98,101,116,119,101,101,110,32,39,100,39,32,97,110,100,32,39,81,39,33,10,0,101,99,99,95,116,101,115,116,107,101,121,32,32,32,61,62,32,37,115,10,0,112,0,101,99,99,95,101,110,99,114,121,112,116,32,100,97,116,97,0,45,112,63,97,63,98,63,103,63,110,63,104,63,43,113,0,101,99,99,95,101,110,99,114,121,112,116,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,112,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,97,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,98,0,101,99,99,95,101,110,99,114,121,112,116,32,32,103,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,110,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,104,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,113,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,107,100,71,10,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,32,102,111,114,32,107,71,10,0,40,101,110,99,45,118,97,108,40,101,99,100,104,40,115,37,109,41,40,101,37,109,41,41,41,0,101,99,99,95,101,110,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,101,0,101,99,99,95,100,101,99,114,121,112,116,32,32,100,95,101,0,45,112,63,97,63,98,63,103,63,110,63,104,63,43,100,0,101,99,99,95,100,101,99,114,121,112,116,32,105,110,102,111,58,32,37,115,47,37,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,112,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,97,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,98,0,101,99,99,95,100,101,99,114,121,112,116,32,32,103,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,110,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,104,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,100,0,101,99,100,104,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,101,99,99,95,100,101,99,114,121,112,116,32,32,114,101,115,0,40,118,97,108,117,101,32,37,109,41,0,101,99,99,95,100,101,99,114,121,112,116,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,100,97,116,97,0,43,69,100,68,83,65,0,101,99,99,95,115,105,103,110,32,32,32,105,110,102,111,58,32,37,115,47,37,115,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,112,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,97,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,98,0,101,99,99,95,115,105,103,110,32,32,32,32,103,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,110,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,104,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,113,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,100,0,40,115,105,103,45,118,97,108,40,101,100,100,115,97,40,114,37,77,41,40,115,37,77,41,41,41,0,40,115,105,103,45,118,97,108,40,103,111,115,116,40,114,37,77,41,40,115,37,77,41,41,41,0,40,115,105,103,45,118,97,108,40,101,99,100,115,97,40,114,37,77,41,40,115,37,77,41,41,41,0,101,99,99,95,115,105,103,110,32,32,32,32,32,32,61,62,32,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,100,97,116,97,0,47,114,115,0,101,99,99,95,118,101,114,105,102,121,32,32,115,95,114,0,101,99,99,95,118,101,114,105,102,121,32,32,115,95,115,0,45,112,63,97,63,98,63,103,63,110,63,104,63,47,113,0,47,113,0,101,99,99,95,118,101,114,105,102,121,32,105,110,102,111,58,32,37,115,47,37,115,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,110,97,109,101,58,32,37,115,10,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,112,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,97,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,98,0,101,99,99,95,118,101,114,105,102,121,32,32,103,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,110,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,104,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,113,0,71,111,111,100,0,101,99,99,95,118,101,114,105,102,121,32,32,32,32,61,62,32,37,115,10,0,108,111,119,45,108,101,118,101,108,0,112,117,98,107,101,121,0,112,63,97,63,98,63,103,63,110,63,104,63,47,113,0,112,63,97,63,98,63,103,63,110,63,104,63,113,0,113,0,112,97,98,103,110,104,113,40,49,58,37,99,37,117,58,0,41,0,100,105,103,101,115,116,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,101,120,112,101,99,116,101,100,32,115,105,122,101,0,103,99,114,121,95,109,100,95,111,112,101,110,32,102,97,105,108,101,100,0,105,110,118,97,108,105,100,32,68,65,84,65,77,79,68,69,0,100,105,103,101,115,116,32,109,105,115,109,97,116,99,104,0,104,97,115,104,45,99,111,109,109,111,110,46,99,0,95,103,99,114,121,95,109,100,95,98,108,111,99,107,95,119,114,105,116,101,0,142,153,59,159,72,104,18,115,194,150,80,186,50,252,118,206,72,51,46,167,22,77,150,164,71,111,184,197,49,161,24,106,192,223,193,124,152,220,232,123,77,167,240,17,236,72,201,114,113,210,194,15,155,146,143,226,39,13,111,184,99,213,23,56,180,142,238,227,20,167,204,138,185,50,22,69,72,229,38,174,144,34,67,104,81,122,207,234,189,107,179,115,43,192,233,218,153,131,43,97,202,1,182,222,86,36,74,158,136,213,249,179,121,115,246,34,164,61,20,166,89,155,31,101,76,180,90,116,227,85,165,238,166,167,37,28,30,114,145,109,17,194,203,33,77,60,37,37,57,18,29,142,35,78,101,45,101,31,164,200,207,248,128,243,255,199,112,63,148,0,229,42,125,251,75,61,51,5,217,80,111,108,121,49,51,48,53,32,116,101,115,116,32,49,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,50,32,102,97,105,108,101,100,46,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,111,108,121,49,51,48,53,32,116,101,115,116,32,51,32,102,97,105,108,101,100,46,0,1,2,3,4,5,6,7,255,254,253,252,251,250,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,100,175,226,232,214,173,123,189,210,135,249,124,68,98,61,57,80,111,108,121,49,51,48,53,32,116,101,115,116,32,52,32,102,97,105,108,101,100,46,0,80,111,108,121,49,51,48,53,32,115,101,108,102,116,101,115,116,32,102,97,105,108,101,100,32,40,37,115,41,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,112,111,111,108,32,108,111,99,107,58,32,37,115,10,0,110,111,32,101,110,116,114,111,112,121,32,103,97,116,104,101,114,105,110,103,32,109,111,100,117,108,101,32,100,101,116,101,99,116,101,100,10,0,87,65,82,78,73,78,71,58,32,117,115,105,110,103,32,105,110,115,101,99,117,114,101,32,114,97,110,100,111,109,32,110,117,109,98,101,114,32,103,101,110,101,114,97,116,111,114,33,33,10,0,112,111,111,108,95,105,115,95,108,111,99,107,101,100,0,114,97,110,100,111,109,45,99,115,112,114,110,103,46,99,0,97,100,100,95,114,97,110,100,111,109,110,101,115,115,0,109,105,120,95,112,111,111,108,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,112,111,111,108,32,108,111,99,107,58,32,37,115,10,0,32,40,104,119,114,110,103,32,102,97,105,108,101,100,41,0,114,97,110,100,111,109,32,117,115,97,103,101,58,32,112,111,111,108,115,105,122,101,61,37,100,32,109,105,120,101,100,61,37,108,117,32,112,111,108,108,115,61,37,108,117,47,37,108,117,32,97,100,100,101,100,61,37,108,117,47,37,108,117,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,117,116,109,105,120,61,37,108,117,32,103,101,116,108,118,108,49,61,37,108,117,47,37,108,117,32,103,101,116,108,118,108,50,61,37,108,117,47,37,108,117,37,115,10,0,114,101,97,100,95,112,111,111,108,0,116,111,111,32,109,97,110,121,32,114,97,110,100,111,109,32,98,105,116,115,32,114,101,113,117,101,115,116,101,100,10,0,114,101,97,100,95,115,101,101,100,95,102,105,108,101,0,99,97,110,39,116,32,111,112,101,110,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,108,111,99,107,32,96,37,115,39,58,32,37,115,10,0,119,97,105,116,105,110,103,32,102,111,114,32,108,111,99,107,32,111,110,32,96,37,115,39,46,46,46,10,0,99,97,110,39,116,32,115,116,97,116,32,96,37,115,39,58,32,37,115,10,0,96,37,115,39,32,105,115,32,110,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,32,45,32,105,103,110,111,114,101,100,10,0,110,111,116,101,58,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,105,115,32,101,109,112,116,121,10,0,119,97,114,110,105,110,103,58,32,105,110,118,97,108,105,100,32,115,105,122,101,32,111,102,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,45,32,110,111,116,32,117,115,101,100,10,0,99,97,110,39,116,32,114,101,97,100,32,96,37,115,39,58,32,37,115,10,0,83,108,111,119,32,101,110,116,114,111,112,121,32,103,97,116,104,101,114,105,110,103,32,109,111,100,117,108,101,32,110,111,116,32,121,101,116,32,105,110,105,116,105,97,108,105,122,101,100,10,0,78,111,32,119,97,121,32,116,111,32,103,97,116,104,101,114,32,101,110,116,114,111,112,121,32,102,111,114,32,116,104,101,32,82,78,71,10,0,100,111,95,102], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+40960);
/* memory initializer */ allocate([97,115,116,95,114,97,110,100,111,109,95,112,111,108,108,0,95,103,99,114,121,95,114,110,103,99,115,112,114,110,103,95,115,101,116,95,115,101,101,100,95,102,105,108,101,0,110,111,116,101,58,32,114,97,110,100,111,109,95,115,101,101,100,32,102,105,108,101,32,110,111,116,32,117,112,100,97,116,101,100,10,0,99,97,110,39,116,32,99,114,101,97,116,101,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,119,114,105,116,101,32,96,37,115,39,58,32,37,115,10,0,99,97,110,39,116,32,99,108,111,115,101,32,96,37,115,39,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,33,110,111,110,99,101,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,114,97,110,100,111,109,45,102,105,112,115,46,99,0,95,103,99,114,121,95,114,110,103,102,105,112,115,95,105,110,105,116,105,97,108,105,122,101,0,33,115,116,100,95,114,110,103,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,33,115,116,114,111,110,103,95,114,110,103,95,99,111,110,116,101,120,116,45,62,116,101,115,116,95,100,116,95,112,116,114,0,109,101,109,111,114,121,32,99,111,114,114,117,112,116,105,111,110,32,100,101,116,101,99,116,101,100,32,105,110,32,82,78,71,32,99,111,110,116,101,120,116,32,37,112,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,114,110,103,95,99,116,120,0,102,105,112,115,95,114,110,103,95,105,115,95,108,111,99,107,101,100,0,120,57,51,49,95,103,101,110,101,114,97,116,101,95,107,101,121,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,99,105,112,104,101,114,32,99,111,110,116,101,120,116,32,102,111,114,32,82,78,71,58,32,37,115,10,0,33,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,98,117,102,102,101,114,0,103,101,116,95,101,110,116,114,111,112,121,0,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,99,98,0,101,110,116,114,111,112,121,95,99,111,108,108,101,99,116,95,98,117,102,102,101,114,0,101,114,114,111,114,32,103,101,116,116,105,110,103,32,101,110,116,114,111,112,121,32,100,97,116,97,10,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,107,101,121,32,102,111,114,32,82,78,71,58,32,37,115,10,0,120,57,51,49,95,114,101,115,101,101,100,0,120,57,51,49,95,103,101,110,101,114,97,116,101,95,115,101,101,100,0,108,101,110,103,116,104,32,61,61,32,49,54,0,102,111,114,107,32,119,105,116,104,111,117,116,32,112,114,111,112,101,114,32,114,101,45,105,110,105,116,105,97,108,105,122,97,116,105,111,110,32,100,101,116,101,99,116,101,100,32,105,110,32,82,78,71,0,120,57,51,49,95,97,101,115,95,100,114,105,118,101,114,0,114,110,103,95,99,116,120,45,62,99,105,112,104,101,114,95,104,100,0,114,110,103,95,99,116,120,45,62,105,115,95,115,101,101,100,101,100,0,116,101,109,112,118,97,108,117,101,95,102,111,114,95,120,57,51,49,95,97,101,115,95,100,114,105,118,101,114,0,120,57,51,49,95,103,101,116,95,100,116,0,103,101,116,116,105,109,101,111,102,100,97,121,40,41,32,102,97,105,108,101,100,58,32,37,115,10,0,101,110,99,114,121,112,116,95,97,101,115,0,65,69,83,32,101,110,99,114,121,112,116,105,111,110,32,105,110,32,82,78,71,32,102,97,105,108,101,100,58,32,37,115,10,0,100,117,112,108,105,99,97,116,101,32,49,50,56,32,98,105,116,32,98,108,111,99,107,32,114,101,116,117,114,110,101,100,32,98,121,32,82,78,71,0,115,101,118,101,114,101,32,101,114,114,111,114,32,103,101,116,116,105,110,103,32,114,97,110,100,111,109,10,0,115,101,108,102,116,101,115,116,95,107,97,116,0,101,114,114,111,114,32,99,114,101,97,116,105,110,103,32,99,105,112,104,101,114,32,99,111,110,116,101,120,116,32,102,111,114,32,82,78,71,0,185,202,127,214,160,245,211,66,25,109,132,145,118,28,59,190,72,178,130,152,104,194,128,0,0,0,40,24,0,0,37,0,82,23,141,41,162,213,132,18,157,137,154,69,130,2,247,119,66,156,8,61,130,244,138,64,102,181,73,39,171,66,199,195,14,183,97,60,254,176,190,115,247,110,109,111,29,163,20,250,187,75,193,14,197,251,205,70,190,40,97,231,3,43,55,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,149,189,74,82,226,158,215,19,211,19,250,32,233,141,188,200,209,229,17,89,82,247,250,55,56,180,197,206,178,176,154,13,156,197,13,22,225,188,237,207,96,98,9,157,32,131,126,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,128,0,129,1,130,2,131,3,160,32,161,33,162,34,163,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,150,237,204,195,221,4,127,117,99,25,55,111,21,34,87,86,122,20,118,119,149,23,126,200,146,232,221,21,203,31,188,177,37,62,46,162,65,27,221,245,33,72,65,113,179,141,47,76,101,114,114,111,114,32,115,101,116,116,105,110,103,32,107,101,121,32,102,111,114,32,82,78,71,0,88,57,46,51,49,32,82,78,71,32,99,111,114,101,32,102,117,110,99,116,105,111,110,32,102,97,105,108,101,100,0,82,78,71,32,111,117,116,112,117,116,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,107,110,111,119,110,32,118,97,108,117,101,0,102,111,114,107,32,100,101,116,101,99,116,105,111,110,32,102,97,105,108,101,100,0,114,97,110,100,111,109,0,75,65,84,0,102,97,105,108,101,100,32,116,111,32,97,99,113,117,105,114,101,32,116,104,101,32,83,121,115,116,101,109,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,102,97,105,108,101,100,32,116,111,32,114,101,108,101,97,115,101,32,116,104,101,32,83,121,115,116,101,109,32,82,78,71,32,108,111,99,107,58,32,37,115,10,0,98,117,102,102,101,114,0,114,97,110,100,111,109,45,115,121,115,116,101,109,46,99,0,103,101,116,95,114,97,110,100,111,109,0,115,121,115,116,101,109,95,114,110,103,95,105,115,95,108,111,99,107,101,100,0,114,101,97,100,95,99,98,0,114,101,97,100,95,99,98,95,98,117,102,102,101,114,0,101,114,114,111,114,32,114,101,97,100,105,110,103,32,114,97,110,100,111,109,32,102,114,111,109,32,115,121,115,116,101,109,32,82,78,71,32,40,114,99,61,37,100,41,10,0,47,100,101,118,47,114,97,110,100,111,109,0,111,112,101,110,95,100,101,118,95,114,97,110,100,111,109,0,119,97,105,116,95,100,101,118,95,114,97,110,100,111,109,0,99,97,110,39,116,32,111,112,101,110,32,37,115,58,32,37,115,10,0,101,114,114,111,114,32,115,101,116,116,105,110,103,32,70,68,95,67,76,79,69,88,69,67,32,111,110,32,102,100,32,37,100,58,32,37,115,10,0,47,100,101,118,47,117,114,97,110,100,111,109,0,110,101,101,100,95,101,110,116,114,111,112,121,0,115,101,108,101,99,116,40,41,32,101,114,114,111,114,58,32,37,115,10,0,98,111,103,117,115,32,114,101,97,100,32,102,114,111,109,32,114,97,110,100,111,109,32,100,101,118,105,99,101,32,40,110,61,37,100,41,10,0,114,101,97,100,32,101,114,114,111,114,32,111,110,32,114,97,110,100,111,109,32,100,101,118,105,99,101,58,32,37,115,10,0,99,104,111,111,115,105,110,103,32,97,32,114,97,110,100,111,109,32,107,32,111,102,32,37,117,32,98,105,116,115,32,97,116,32,115,101,99,108,101,118,101,108,32,37,100,10,0,9,107,32,116,111,111,32,108,97,114,103,101,32,45,32,97,103,97,105,110,10,0,9,107,32,105,115,32,122,101,114,111,32,45,32,97,103,97,105,110,10,0,1,0,101,99,100,115,97,32,115,105,103,110,32,104,97,115,104,32,32,0,101,99,100,115,97,32,115,105,103,110,32,114,101,115,117,108,116,32,114,32,0,101,99,100,115,97,32,115,105,103,110,32,114,101,115,117,108,116,32,115,32,0,103,111,115,116,32,115,105,103,110,32,104,97,115,104,32,32,0,101,99,99,32,115,105,103,110,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,103,111,115,116,32,115,105,103,110,32,114,101,115,117,108,116,32,114,32,0,103,111,115,116,32,115,105,103,110,32,114,101,115,117,108,116,32,115,32,0,101,99,99,32,118,101,114,105,102,121,58,32,82,101,106,101,99,116,101,100,10,0,101,99,99,32,118,101,114,105,102,121,58,32,70,97,105,108,101,100,32,116,111,32,103,101,116,32,97,102,102,105,110,101,32,99,111,111,114,100,105,110,97,116,101,115,10,0,32,32,32,32,32,120,0,32,32,32,32,32,114,0,32,32,32,32,32,115,0,101,99,99,32,118,101,114,105,102,121,58,32,78,111,116,32,118,101,114,105,102,105,101,100,10,0,101,99,99,32,118,101,114,105,102,121,58,32,65,99,99,101,112,116,101,100,10,0,33,34,108,111,99,107,32,65,66,73,32,118,101,114,115,105,111,110,34,0,112,111,115,105,120,45,108,111,99,107,46,99,0,103,101,116,95,108,111,99,107,95,111,98,106,101,99,116,0,115,116,114,101,97,109,45,62,102,108,97,103,115,46,119,114,105,116,105,110,103,0,101,115,116,114,101,97,109,46,99,0,101,115,95,102,108,117,115,104,0,33,115,116,114,101,97,109,45,62,102,108,97,103,115,46,119,114,105,116,105,110,103,0,101,115,95,101,109,112,116,121,0,83,117,99,99,101,115,115,0,71,101,110,101,114,97,108,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,112,97,99,107,101,116,0,85,110,107,110,111,119,110,32,118,101,114,115,105,111,110,32,105,110,32,112,97,99,107,101,116,0,73,110,118,97,108,105,100,32,112,117,98,108,105,99,32,107,101,121,32,97,108,103,111,114,105,116,104,109,0,73,110,118,97,108,105,100,32,100,105,103,101,115,116,32,97,108,103,111,114,105,116,104,109,0,66,97,100,32,112,117,98,108,105,99,32,107,101,121,0,66,97,100,32,115,101,99,114,101,116,32,107,101,121,0,66,97,100,32,115,105,103,110,97,116,117,114,101,0,78,111,32,112,117,98,108,105,99,32,107,101,121,0,67,104,101,99,107,115,117,109,32,101,114,114,111,114,0,66,97,100,32,112,97,115,115,112,104,114,97,115,101,0,73,110,118,97,108,105,100,32,99,105,112,104,101,114,32,97,108,103,111,114,105,116,104,109,0,75,101,121,114,105,110,103,32,111,112,101,110,0,73,110,118,97,108,105,100,32,112,97,99,107,101,116,0,73,110,118,97,108,105,100,32,97,114,109,111,114,0,78,111,32,117,115,101,114,32,73,68,0,78,111,32,115,101,99,114,101,116,32,107,101,121,0,87,114,111,110,103,32,115,101,99,114,101,116,32,107,101,121,32,117,115,101,100,0,66,97,100,32,115,101,115,115,105,111,110,32,107,101,121,0,85,110,107,110,111,119,110,32,99,111,109,112,114,101,115,115,105,111,110,32,97,108,103,111,114,105,116,104,109,0,78,117,109,98,101,114,32,105,115,32,110,111,116,32,112,114,105,109,101,0,73,110,118,97,108,105,100,32,101,110,99,111,100,105,110,103,32,109,101,116,104,111,100,0,73,110,118,97,108,105,100,32,101,110,99,114,121,112,116,105,111,110,32,115,99,104,101,109,101,0,73,110,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,32,115,99,104,101,109,101,0,73,110,118,97,108,105,100,32,97,116,116,114,105,98,117,116,101,0,78,111,32,118,97,108,117,101,0,78,111,116,32,102,111,117,110,100,0,86,97,108,117,101,32,110,111,116,32,102,111,117,110,100,0,83,121,110,116,97,120,32,101,114,114,111,114,0,66,97,100,32,77,80,73,32,118,97,108,117,101,0,73,110,118,97,108,105,100,32,112,97,115,115,112,104,114,97,115,101,0,73,110,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,32,99,108,97,115,115,0,82,101,115,111,117,114,99,101,115,32,101,120,104,97,117,115,116,101,100,0,73,110,118,97,108,105,100,32,107,101,121,114,105,110,103,0,84,114,117,115,116,32,68,66,32,101,114,114,111,114,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,0,73,110,118,97,108,105,100,32,117,115,101,114,32,73,68,0,85,110,101,120,112,101,99,116,101,100,32,101,114,114,111,114,0,84,105,109,101,32,99,111,110,102,108,105,99,116,0,75,101,121,115,101,114,118,101,114,32,101,114,114,111,114,0,87,114,111,110,103,32,112,117,98,108,105,99,32,107,101,121,32,97,108,103,111,114,105,116,104,109,0,84,114,105,98,117,116,101,32,116,111,32,68,46,32,65,46,0,87,101,97,107,32,101,110,99,114,121,112,116,105,111,110,32,107,101,121,0,73,110,118,97,108,105,100,32,107,101,121,32,108,101,110,103,116,104,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,83,121,110,116,97,120,32,101,114,114,111,114,32,105,110,32,85,82,73,0,73,110,118,97,108,105,100,32,85,82,73,0,78,101,116,119,111,114,107,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,104,111,115,116,0,83,101,108,102,116,101,115,116,32,102,97,105,108,101,100,0,68,97,116,97,32,110,111,116,32,101,110,99,114,121,112,116,101,100,0,68,97,116,97,32,110,111,116,32,112,114,111,99,101,115,115,101,100,0,85,110,117,115,97,98,108,101,32,112,117,98,108,105,99,32,107,101,121,0,85,110,117,115,97,98,108,101,32,115,101,99,114,101,116,32,107,101,121,0,73,110,118,97,108,105,100,32,118,97,108,117,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,99,104,97,105,110,0,77,105,115,115,105,110,103,32,99,101,114,116,105,102,105,99,97,116,101,0,78,111,32,100,97,116,97,0,66,117,103,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,73,110,118,97,108,105,100,32,111,112,101,114,97,116,105,111,110,32,99,111,100,101,0,84,105,109,101,111,117,116,0,73,110,116,101,114,110,97,108,32,101,114,114,111,114,0,69,79,70,32,40,103,99,114,121,112,116,41,0,73,110,118,97,108,105,100,32,111,98,106,101,99,116,0,80,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,105,115,32,116,111,111,32,115,104,111,114,116,0,80,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,105,115,32,116,111,111,32,108,97,114,103,101,0,77,105,115,115,105,110,103,32,105,116,101,109,32,105,110,32,111,98,106,101,99,116,0,78,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,67,111,110,102,108,105,99,116,105,110,103,32,117,115,101,0,73,110,118,97,108,105,100,32,99,105,112,104,101,114,32,109,111,100,101,0,73,110,118,97,108,105,100,32,102,108,97,103,0,73,110,118,97,108,105,100,32,104,97,110,100,108,101,0,82,101,115,117,108,116,32,116,114,117,110,99,97,116,101,100,0,73,110,99,111,109,112,108,101,116,101,32,108,105,110,101,0,73,110,118,97,108,105,100,32,114,101,115,112,111,110,115,101,0,78,111,32,97,103,101,110,116,32,114,117,110,110,105,110,103,0,65,103,101,110,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,100,97,116,97,0,85,110,115,112,101,99,105,102,105,99,32,65,115,115,117,97,110,32,115,101,114,118,101,114,32,102,97,117,108,116,0,71,101,110,101,114,97,108,32,65,115,115,117,97,110,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,115,101,115,115,105,111,110,32,107,101,121,0,73,110,118,97,108,105,100,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,115,117,112,112,111,114,116,101,100,32,97,108,103,111,114,105,116,104,109,0,78,111,32,112,105,110,101,110,116,114,121,0,112,105,110,101,110,116,114,121,32,101,114,114,111,114,0,66,97,100,32,80,73,78,0,73,110,118,97,108,105,100,32,110,97,109,101,0,66,97,100,32,100,97,116,97,0,73,110,118,97,108,105,100,32,112,97,114,97,109,101,116,101,114,0,87,114,111,110,103,32,99,97,114,100,0,78,111,32,100,105,114,109,110,103,114,0,100,105,114,109,110,103,114,32,101,114,114,111,114,0,67,101,114,116,105,102,105,99,97,116,101,32,114,101,118,111,107,101,100,0,78,111,32,67,82,76,32,107,110,111,119,110,0,67,82,76,32,116,111,111,32,111,108,100,0,76,105,110,101,32,116,111,111,32,108,111,110,103,0,78,111,116,32,116,114,117,115,116,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,108,101,100,0,66,97,100,32,67,65,32,99,101,114,116,105,102,105,99,97,116,101,0,67,101,114,116,105,102,105,99,97,116,101,32,101,120,112,105,114,101,100,0,67,101,114,116,105,102,105,99,97,116,101,32,116,111,111,32,121,111,117,110,103,0,85,110,115,117,112,112,111,114,116,101,100,32,99,101,114,116,105,102,105,99,97,116,101,0,85,110,107,110,111,119,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,115,117,112,112,111,114,116,101,100,32,112,114,111,116,101,99,116,105,111,110,0,67,111,114,114,117,112,116,101,100,32,112,114,111,116,101,99,116,105,111,110,0,65,109,98,105,103,117,111,117,115,32,110,97,109,101,0,67,97,114,100,32,101,114,114,111,114,0,67,97,114,100,32,114,101,115,101,116,32,114,101,113,117,105,114,101,100,0,67,97,114,100,32,114,101,109,111,118,101,100,0,73,110,118,97,108,105,100,32,99,97,114,100,0,67,97,114,100,32,110,111,116,32,112,114,101,115,101,110,116,0,78,111,32,80,75,67,83,49,53,32,97,112,112,108,105,99,97,116,105,111,110,0,78,111,116,32,99,111,110,102,105,114,109,101,100,0,67,111,110,102,105,103,117,114,97,116,105,111,110,32,101,114,114,111,114,0,78,111,32,112,111,108,105,99,121,32,109,97,116,99,104,0,73,110,118,97,108,105,100,32,105,110,100,101,120,0,73,110,118,97,108,105,100,32,73,68,0,78,111,32,83,109,97,114,116,67,97,114,100,32,100,97,101,109,111,110,0,83,109,97,114,116,67,97,114,100,32,100,97,101,109,111,110,32,101,114,114,111,114,0,85,110,115,117,112,112,111,114,116,101,100,32,112,114,111,116,111,99,111,108,0,66,97,100,32,80,73,78,32,109,101,116,104,111,100,0,67,97,114,100,32,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,85,110,115,117,112,112,111,114,116,101,100,32,111,112,101,114,97,116,105,111,110,0,87,114,111,110,103,32,107,101,121,32,117,115,97,103,101,0,78,111,116,104,105,110,103,32,102,111,117,110,100,0,87,114,111,110,103,32,98,108,111,98,32,116,121,112,101,0,77,105,115,115,105,110,103,32,118,97,108,117,101,0,72,97,114,100,119,97,114,101,32,112,114,111,98,108,101,109,0,80,73,78,32,98,108,111,99,107,101,100,0,67,111,110,100,105,116,105,111,110,115,32,111,102,32,117,115,101,32,110,111,116,32,115,97,116,105,115,102,105,101,100,0,80,73,78,115,32,97,114,101,32,110,111,116,32,115,121,110,99,101,100,0,73,110,118,97,108,105,100,32,67,82,76,0,66,69,82,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,66,69,82,0,69,108,101,109,101,110,116,32,110,111,116,32,102,111,117,110,100,0,73,100,101,110,116,105,102,105,101,114,32,110,111,116,32,102,111,117,110,100,0,73,110,118,97,108,105,100,32,116,97,103,0,73,110,118,97,108,105,100,32,108,101,110,103,116,104,0,73,110,118,97,108,105,100,32,107,101,121,32,105,110,102,111,0,85,110,101,120,112,101,99,116,101,100,32,116,97,103,0,78,111,116,32,68,69,82,32,101,110,99,111,100,101,100,0,78,111,32,67,77,83,32,111,98,106,101,99,116,0,73,110,118,97,108,105,100,32,67,77,83,32,111,98,106,101,99,116,0,85,110,107,110,111,119,110,32,67,77,83,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,67,77,83,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,101,110,99,111,100,105,110,103,0,85,110,115,117,112,112,111,114,116,101,100,32,67,77,83,32,118,101,114,115,105,111,110,0,85,110,107,110,111,119,110,32,97,108,103,111,114,105,116,104,109,0,73,110,118,97,108,105,100,32,99,114,121,112,116,111,32,101,110,103,105,110,101,0,80,117,98,108,105,99,32,107,101,121,32,110,111,116,32,116,114,117,115,116,101,100,0,68,101,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,0,75,101,121,32,101,120,112,105,114,101,100,0,83,105,103,110,97,116,117,114,101,32,101,120,112,105,114,101,100,0,69,110,99,111,100,105,110,103,32,112,114,111,98,108,101,109,0,73,110,118,97,108,105,100,32,115,116,97,116,101,0,68,117,112,108,105,99,97,116,101,100,32,118,97,108,117,101,0,77,105,115,115,105,110,103,32,97,99,116,105,111,110,0,65,83,78,46,49,32,109,111,100,117,108,101,32,110,111,116,32,102,111,117,110,100,0,73,110,118,97,108,105,100,32,79,73,68,32,115,116,114,105,110,103,0,73,110,118,97,108,105,100,32,116,105,109,101,0,73,110,118,97,108,105,100,32,67,82,76,32,111,98,106,101,99,116,0,85,110,115,117,112,112,111,114,116,101,100,32,67,82,76,32,118,101,114,115,105,111,110,0,73,110,118,97,108,105,100,32,99,101,114,116,105,102,105,99,97,116,101,32,111,98,106,101,99,116,0,85,110,107,110,111,119,110,32,110,97,109,101,0,65,32,108,111,99,97,108,101,32,102,117,110,99,116,105,111,110,32,102,97,105,108,101,100,0,78,111,116,32,108,111,99,107,101,100,0,80,114,111,116,111,99,111,108,32,118,105,111,108,97,116,105,111,110,0,73,110,118,97,108,105,100,32,77,65,67,0,73,110,118,97,108,105,100,32,114,101,113,117,101,115,116,0,85,110,107,110,111,119,110,32,101,120,116,101,110,115,105,111,110,0,85,110,107,110,111,119,110,32,99,114,105,116,105,99,97,108,32,101,120,116,101,110,115,105,111,110,0,76,111,99,107,101,100,0,85,110,107,110,111,119,110,32,111,112,116,105,111,110,0,85,110,107,110,111,119,110,32,99,111,109,109,97,110,100,0,78,111,116,32,111,112,101,114,97,116,105,111,110,97,108,0,78,111,32,112,97,115,115,112,104,114,97,115,101,32,103,105,118,101,110,0,78,111,32,80,73,78,32,103,105,118,101,110,0,78,111,116,32,101,110,97,98,108,101,100,0,78,111,32,99,114,121,112,116,111,32,101,110,103,105,110,101,0,77,105,115,115,105,110,103,32,107,101,121,0,84,111,111,32,109,97,110,121,32,111,98,106,101,99,116,115,0,76,105,109,105,116,32,114,101,97,99,104,101,100,0,78,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,77,105,115,115,105,110,103,32,105,115,115,117,101,114,32,99,101,114,116,105,102,105,99,97,116,101,0,78,111,32,107,101,121,115,101,114,118,101,114,32,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,101,108,108,105,112,116,105,99,32,99,117,114,118,101,0,85,110,107,110,111,119,110,32,101,108,108,105,112,116,105,99,32,99,117,114,118,101,0,68,117,112,108,105,99,97,116,101,100,32,107,101,121,0,65,109,98,105,103,117,111,117,115,32,114,101,115,117,108,116,0,78,111,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,87,114,111,110,103,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,66,97,100,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,67,111,110,102,108,105,99,116,32,105,110,32,116,104,101,32,99,114,121,112,116,111,32,99,111,110,116,101,120,116,0,66,114,111,107,101,110,32,112,117,98,108,105,99,32,107,101,121,0,66,114,111,107,101,110,32,115,101,99,114,101,116,32,107,101,121,0,73,110,118,97,108,105,100,32,77,65,67,32,97,108,103,111,114,105,116,104,109,0,79,112,101,114,97,116,105,111,110,32,102,117,108,108,121,32,99,97,110,99,101,108,108,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,121,101,116,32,102,105,110,105,115,104,101,100,0,66,117,102,102,101,114,32,116,111,111,32,115,104,111,114,116,0,73,110,118,97,108,105,100,32,108,101,110,103,116,104,32,115,112,101,99,105,102,105,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,83,116,114,105,110,103,32,116,111,111,32,108,111,110,103,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,109,97,116,99,104,101,100,32,112,97,114,101,110,116,104,101,115,101,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,83,45,101,120,112,114,101,115,115,105,111,110,32,110,111,116,32,99,97,110,111,110,105,99,97,108,0,66,97,100,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,113,117,111,116,97,116,105,111,110,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,90,101,114,111,32,112,114,101,102,105,120,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,78,101,115,116,101,100,32,100,105,115,112,108,97,121,32,104,105,110,116,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,85,110,109,97,116,99,104,101,100,32,100,105,115,112,108,97,121,32,104,105,110,116,115,0,85,110,101,120,112,101,99,116,101,100,32,114,101,115,101,114,118,101,100,32,112,117,110,99,116,117,97,116,105,111,110,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,104,101,120,97,100,101,99,105,109,97,108,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,79,100,100,32,104,101,120,97,100,101,99,105,109,97,108,32,110,117,109,98,101,114,115,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,66,97,100,32,111,99,116,97,108,32,99,104,97,114,97,99,116,101,114,32,105,110,32,83,45,101,120,112,114,101,115,115,105,111,110,0,76,101,103,97,99,121,32,107,101,121,0,82,101,113,117,101,115,116,32,116,111,111,32,115,104,111,114,116,0,82,101,113,117,101,115,116,32,116,111,111,32,108,111,110,103,0,79,98,106,101,99,116,32,105,115,32,105,110,32,116,101,114,109,105,110,97,116,105,111,110,32,115,116,97,116,101,0,78,111,32,99,101,114,116,105,102,105,99,97,116,101,32,99,104,97,105,110,0,67,101,114,116,105,102,105,99,97,116,101,32,105,115,32,116,111,111,32,108,97,114,103,101,0,73,110,118,97,108,105,100,32,114,101,99,111,114,100,0,84,104,101,32,77,65,67,32,100,111,101,115,32,110,111,116,32,118,101,114,105,102,121,0,85,110,101,120,112,101,99,116,101,100,32,109,101,115,115,97,103,101,0,67,111,109,112,114,101,115,115,105,111,110,32,111,114,32,100,101,99,111,109,112,114,101,115,115,105,111,110,32,102,97,105,108,101,100,0,65,32,99,111,117,110,116,101,114,32,119,111,117,108,100,32,119,114,97,112,0,70,97,116,97,108,32,97,108,101,114,116,32,109,101,115,115,97,103,101,32,114,101,99,101,105,118,101,100,0,78,111,32,99,105,112,104,101,114,32,97,108,103,111,114,105,116,104,109,0,77,105,115,115,105,110,103,32,99,108,105,101,110,116,32,99,101,114,116,105,102,105,99,97,116,101,0,67,108,111,115,101,32,110,111,116,105,102,105,99,97,116,105,111,110,32,114,101,99,101,105,118,101,100,0,84,105,99,107,101,116,32,101,120,112,105,114,101,100,0,66,97,100,32,116,105,99,107,101,116,0,85,110,107,110,111,119,110,32,105,100,101,110,116,105,116,121,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,114,101,113,117,101,115,116,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,101,114,116,105,102,105,99,97,116,101,32,118,101,114,105,102,121,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,104,97,110,103,101,32,99,105,112,104,101,114,32,109,101,115,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,108,105,101,110,116,32,104,101,108,108,111,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,104,101,108,108,111,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,104,101,108,108,111,32,100,111,110,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,115,104,97,107,101,0,66,97,100,32,102,105,110,105,115,104,101,100,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,115,101,114,118,101,114,32,107,101,121,32,101,120,99,104,97,110,103,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,97,100,32,99,108,105,101,110,116,32,107,101,121,32,101,120,99,104,97,110,103,101,32,109,101,115,115,97,103,101,32,105,110,32,104,97,110,100,115,104,97,107,101,0,66,111,103,117,115,32,115,116,114,105,110,103,0,70,111,114,98,105,100,100,101,110,0,75,101,121,32,100,105,115,97,98,108,101,100,0,78,111,116,32,112,111,115,115,105,98,108,101,32,119,105,116,104,32,97,32,99,97,114,100,32,98,97,115,101,100,32,107,101,121,0,73,110,118,97,108,105,100,32,108,111,99,107,32,111,98,106,101,99,116,0,71,101,110,101,114,97,108,32,73,80,67,32,101,114,114,111,114,0,73,80,67,32,97,99,99,101,112,116,32,99,97,108,108,32,102,97,105,108,101,100,0,73,80,67,32,99,111,110,110,101,99,116,32,99,97,108,108,32,102,97,105,108,101,100,0,73,110,118,97,108,105,100,32,73,80,67,32,114,101,115,112,111,110,115,101,0,73,110,118,97,108,105,100,32,118,97,108,117,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,0,73,110,99,111,109,112,108,101,116,101,32,108,105,110,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,0,76,105,110,101,32,112,97,115,115,101,100,32,116,111,32,73,80,67,32,116,111,111,32,108,111,110,103,0,78,101,115,116,101,100,32,73,80,67,32,99,111,109,109,97,110,100,115,0,78,111,32,100,97,116,97,32,99,97,108,108,98,97,99,107,32,105,110,32,73,80,67,0,78,111,32,105,110,113,117,105,114,101,32,99,97,108,108,98,97,99,107,32,105,110,32,73,80,67,0,78,111,116,32,97,110,32,73,80,67,32,115,101,114,118,101,114,0,78,111,116,32,97,110,32,73,80,67,32,99,108,105,101,110,116,0,80,114,111,98,108,101,109,32,115,116,97,114,116,105,110,103,32,73,80,67,32,115,101,114,118,101,114,0,73,80,67,32,114,101,97,100,32,101,114,114,111,114,0,73,80,67,32,119,114,105,116,101,32,101,114,114,111,114,0,84,111,111,32,109,117,99,104,32,100,97,116,97,32,102,111,114,32,73,80,67,32,108,97,121,101,114,0,85,110,101,120,112,101,99,116,101,100,32,73,80,67,32,99,111,109,109,97,110,100,0,85,110,107,110,111,119,110,32,73,80,67,32,99,111,109,109,97,110,100,0,73,80,67,32,115,121,110,116,97,120,32,101,114,114,111,114,0,73,80,67,32,99,97,108,108,32,104,97,115,32,98,101,101,110,32,99,97,110,99,101,108,108,101,100,0,78,111,32,105,110,112,117,116,32,115,111,117,114,99,101,32,102,111,114,32,73,80,67,0,78,111,32,111,117,116,112,117,116,32,115,111,117,114,99,101,32,102,111,114,32,73,80,67,0,73,80,67,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,0,85,110,107,110,111,119,110,32,73,80,67,32,105,110,113,117,105,114,101,0,71,101,110,101,114,97,108,32,76,68,65,80,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,110,97,109,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,115,101,99,117,114,105,116,121,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,115,101,114,118,105,99,101,32,101,114,114,111,114,0,71,101,110,101,114,97,108,32,76,68,65,80,32,117,112,100,97,116,101,32,101,114,114,111,114,0,69,120,112,101,114,105,109,101,110,116,97,108,32,76,68,65,80,32,101,114,114,111,114,32,99,111,100,101,0,80,114,105,118,97,116,101,32,76,68,65,80,32,101,114,114,111,114,32,99,111,100,101,0,79,116,104,101,114,32,103,101,110,101,114,97,108,32,76,68,65,80,32,101,114,114,111,114,0,76,68,65,80,32,99,111,110,110,101,99,116,105,110,103,32,102,97,105,108,101,100,32,40,88,41,0,76,68,65,80,32,114,101,102,101,114,114,97,108,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,0,76,68,65,80,32,99,108,105,101,110,116,32,108,111,111,112,0,78,111,32,76,68,65,80,32,114,101,115,117,108,116,115,32,114,101,116,117,114,110,101,100,0,76,68,65,80,32,99,111,110,116,114,111,108,32,110,111,116,32,102,111,117,110,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,99,111,110,110,101,99,116,32,101,114,114,111,114,0,79,117,116,32,111,102,32,109,101,109,111,114,121,32,105,110,32,76,68,65,80,0,66,97,100,32,112,97,114,97,109,101,116,101,114,32,116,111,32,97,110,32,76,68,65,80,32,114,111,117,116,105,110,101,0,85,115,101,114,32,99,97,110,99,101,108,108,101,100,32,76,68,65,80,32,111,112,101,114,97,116,105,111,110,0,66,97,100,32,76,68,65,80,32,115,101,97,114,99,104,32,102,105,108,116,101,114,0,85,110,107,110,111,119,110,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,109,101,116,104,111,100,0,84,105,109,101,111,117,116,32,105,110,32,76,68,65,80,0,76,68,65,80,32,100,101,99,111,100,105,110,103,32,101,114,114,111,114,0,76,68,65,80,32,101,110,99,111,100,105,110,103,32,101,114,114,111,114,0,76,68,65,80,32,108,111,99,97,108,32,101,114,114,111,114,0,67,97,110,110,111,116,32,99,111,110,116,97,99,116,32,76,68,65,80,32,115,101,114,118,101,114,0,76,68,65,80,32,115,117,99,99,101,115,115,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,115,32,101,114,114,111,114,0,76,68,65,80,32,112,114,111,116,111,99,111,108,32,101,114,114,111,114,0,84,105,109,101,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,32,105,110,32,76,68,65,80,0,83,105,122,101,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,32,105,110,32,76,68,65,80,0,76,68,65,80,32,99,111,109,112,97,114,101,32,102,97,108,115,101,0,76,68,65,80,32,99,111,109,112,97,114,101,32,116,114,117,101,0,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,109,101,116,104,111,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,116,114,111,110,103,40,101,114,41,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,32,114,101,113,117,105,114,101,100,0,80,97,114,116,105,97,108,32,76,68,65,80,32,114,101,115,117,108,116,115,43,114,101,102,101,114,114,97,108,32,114,101,99,101,105,118,101,100,0,76,68,65,80,32,114,101,102,101,114,114,97,108,0,65,100,109,105,110,105,115,116,114,97,116,105,118,101,32,76,68,65,80,32,108,105,109,105,116,32,101,120,99,101,101,100,101,100,0,67,114,105,116,105,99,97,108,32,76,68,65,80,32,101,120,116,101,110,115,105,111,110,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,0,67,111,110,102,105,100,101,110,116,105,97,108,105,116,121,32,114,101,113,117,105,114,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,83,65,83,76,32,98,105,110,100,32,105,110,32,112,114,111,103,114,101,115,115,0,78,111,32,115,117,99,104,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,0,85,110,100,101,102,105,110,101,100,32,76,68,65,80,32,97,116,116,114,105,98,117,116,101,32,116,121,112,101,0,73,110,97,112,112,114,111,112,114,105,97,116,101,32,109,97,116,99,104,105,110,103,32,105,110,32,76,68,65,80,0,67,111,110,115,116,114,97,105,110,116,32,118,105,111,108,97,116,105,111,110,32,105,110,32,76,68,65,80,0,76,68,65,80,32,116,121,112,101,32,111,114,32,118,97,108,117,101,32,101,120,105,115,116,115,0,73,110,118,97,108,105,100,32,115,121,110,116,97,120,32,105,110,32,76,68,65,80,0,78,111,32,115,117,99,104,32,76,68,65,80,32,111,98,106,101,99,116,0,76,68,65,80,32,97,108,105,97,115,32,112,114,111,98,108,101,109,0,73,110,118,97,108,105,100,32,68,78,32,115,121,110,116,97,120,32,105,110,32,76,68,65,80,0,76,68,65,80,32,101,110,116,114,121,32,105,115,32,97,32,108,101,97,102,0,76,68,65,80,32,97,108,105,97,115,32,100,101,114,101,102,101,114,101,110,99,105,110,103,32,112,114,111,98,108,101,109,0,76,68,65,80,32,112,114,111,120,121,32,97,117,116,104,111,114,105,122,97,116,105,111,110,32,102,97,105,108,117,114,101,32,40,88,41,0,73,110,97,112,112,114,111,112,114,105,97,116,101,32,76,68,65,80,32,97,117,116,104,101,110,116,105,99,97,116,105,111,110,0,73,110,118,97,108,105,100,32,76,68,65,80,32,99,114,101,100,101,110,116,105,97,108,115,0,73,110,115,117,102,102,105,99,105,101,110,116,32,97,99,99,101,115,115,32,102,111,114,32,76,68,65,80,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,98,117,115,121,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,0,76,68,65,80,32,115,101,114,118,101,114,32,105,115,32,117,110,119,105,108,108,105,110,103,32,116,111,32,112,101,114,102,111,114,109,0,76,111,111,112,32,100,101,116,101,99,116,101,100,32,98,121,32,76,68,65,80,0,76,68,65,80,32,110,97,109,105,110,103,32,118,105,111,108,97,116,105,111,110,0,76,68,65,80,32,111,98,106,101,99,116,32,99,108,97,115,115,32,118,105,111,108,97,116,105,111,110,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,110,111,110,45,108,101,97,102,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,82,68,78,0,65,108,114,101,97,100,121,32,101,120,105,115,116,115,32,40,76,68,65,80,41,0,67,97,110,110,111,116,32,109,111,100,105,102,121,32,76,68,65,80,32,111,98,106,101,99,116,32,99,108,97,115,115,0,76,68,65,80,32,114,101,115,117,108,116,115,32,116,111,111,32,108,97,114,103,101,0,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,97,102,102,101,99,116,115,32,109,117,108,116,105,112,108,101,32,68,83,65,115,0,86,105,114,116,117,97,108,32,76,68,65,80,32,108,105,115,116,32,118,105,101,119,32,101,114,114,111,114,0,79,116,104,101,114,32,76,68,65,80,32,101,114,114,111,114,0,82,101,115,111,117,114,99,101,115,32,101,120,104,97,117,115,116,101,100,32,105,110,32,76,67,85,80,0,83,101,99,117,114,105,116,121,32,118,105,111,108,97,116,105,111,110,32,105,110,32,76,67,85,80,0,73,110,118,97,108,105,100,32,100,97,116,97,32,105,110,32,76,67,85,80,0,85,110,115,117,112,112,111,114,116,101,100,32,115,99,104,101,109,101,32,105,110,32,76,67,85,80,0,82,101,108,111,97,100,32,114,101,113,117,105,114,101,100,32,105,110,32,76,67,85,80,0,76,68,65,80,32,99,97,110,99,101,108,108,101,100,0,78,111,32,76,68,65,80,32,111,112,101,114,97,116,105,111,110,32,116,111,32,99,97,110,99,101,108,0,84,111,111,32,108,97,116,101,32,116,111,32,99,97,110,99,101,108,32,76,68,65,80,0,67,97,110,110,111,116,32,99,97,110,99,101,108,32,76,68,65,80,0,76,68,65,80,32,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,0,80,114,111,120,105,101,100,32,97,117,116,104,111,114,105,122,97,116,105,111,110,32,100,101,110,105,101,100,32,98,121,32,76,68,65,80,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,50,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,51,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,52,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,53,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,54,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,55,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,56,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,57,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,48,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,49,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,50,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,51,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+51200);
/* memory initializer */ allocate([114,111,114,32,99,111,100,101,32,49,52,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,53,0,85,115,101,114,32,100,101,102,105,110,101,100,32,101,114,114,111,114,32,99,111,100,101,32,49,54,0,83,121,115,116,101,109,32,101,114,114,111,114,32,119,47,111,32,101,114,114,110,111,0,85,110,107,110,111,119,110,32,115,121,115,116,101,109,32,101,114,114,111,114,0,69,110,100,32,111,102,32,102,105,108,101,0,85,110,107,110,111,119,110,32,101,114,114,111,114,32,99,111,100,101,0,97,109,111,117,110,116,46,99,0,84,65,76,69,82,95,97,109,111,117,110,116,95,99,109,112,0,65,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,32,97,116,32,37,115,58,37,100,46,10,0,84,65,76,69,82,95,97,109,111,117,110,116,95,115,117,98,116,114,97,99,116,0,84,65,76,69,82,95,97,109,111,117,110,116,95,97,100,100,0,18,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,17,34,35,36,17,37,38,39,40,41,42,43,44,17,45,46,47,16,16,48,16,16,16,16,16,16,16,49,50,51,16,52,53,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,54,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,55,17,17,17,17,56,17,57,58,59,60,61,62,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,63,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,64,65,17,66,67,68,69,70,71,72,73,16,16,16,74,75,76,77,78,16,16,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,17,17,17,82,83,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,85,16,16,16,16,86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,87,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,88,89,90,91,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,7,254,255,255,7,0,0,0,0,0,4,32,4,255,255,127,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,195,255,3,0,31,80,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,223,60,64,215,255,255,251,255,255,255,255,255,255,255,255,255,191,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,254,255,255,255,127,2,254,255,255,255,255,0,0,0,0,0,255,191,182,0,255,255,255,7,7,0,0,0,255,7,255,255,255,255,255,255,255,254,255,195,255,255,255,255,255,255,255,255,255,255,255,255,239,31,254,225,255,159,0,0,255,255,255,255,255,255,0,224,255,255,255,255,255,255,255,255,255,255,255,255,3,0,255,255,255,255,255,7,48,4,255,255,255,252,255,31,0,0,255,255,255,1,0,0,0,0,0,0,0,0,253,31,0,0,0,0,0,0,240,3,255,127,255,255,255,255,255,255,255,239,255,223,225,255,207,255,254,254,238,159,249,255,255,253,197,227,159,89,128,176,207,255,3,0,238,135,249,255,255,253,109,195,135,25,2,94,192,255,63,0,238,191,251,255,255,253,237,227,191,27,1,0,207,255,0,0,238,159,249,255,255,253,237,227,159,25,192,176,207,255,2,0,236,199,61,214,24,199,255,195,199,29,129,0,192,255,0,0,238,223,253,255,255,253,239,227,223,29,96,3,207,255,0,0,236,223,253,255,255,253,239,227,223,29,96,64,207,255,6,0,236,223,253,255,255,255,255,231,223,93,128,0,207,255,0,252,236,255,127,252,255,255,251,47,127,128,95,255,0,0,12,0,254,255,255,255,255,127,255,7,63,32,255,3,0,0,0,0,150,37,240,254,174,236,255,59,95,32,255,243,0,0,0,0,1,0,0,0,255,3,0,0,255,254,255,255,255,31,254,255,3,255,255,254,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,249,255,3,255,255,231,193,255,255,127,64,255,51,255,255,255,255,191,32,255,255,255,255,255,247,255,255,255,255,255,255,255,255,255,61,127,61,255,255,255,255,255,61,255,255,255,255,61,127,61,255,127,255,255,255,255,255,255,255,61,255,255,255,255,255,255,255,255,135,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,31,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,159,255,255,254,255,255,7,255,255,255,255,255,255,255,255,255,199,1,0,255,223,15,0,255,255,15,0,255,255,15,0,255,223,13,0,255,255,255,255,255,255,207,255,255,1,128,16,255,3,0,0,0,0,255,3,255,255,255,255,255,255,255,255,255,255,255,0,255,255,255,255,255,7,255,255,255,255,255,255,255,255,63,0,255,255,255,31,255,15,255,1,192,255,255,255,255,63,31,0,255,255,255,255,255,15,255,255,255,3,255,3,0,0,0,0,255,255,255,15,255,255,255,255,255,255,255,127,254,255,31,0,255,3,255,3,128,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,239,255,239,15,255,3,0,0,0,0,255,255,255,255,255,243,255,255,255,255,255,255,191,255,3,0,255,255,255,255,255,255,63,0,255,227,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,222,111,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,63,63,255,255,255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,128,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,132,252,47,62,80,189,255,243,224,67,0,0,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,255,255,255,255,255,255,3,0,0,255,255,255,255,255,127,255,255,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,120,12,0,255,255,255,255,191,32,255,255,255,255,255,255,255,128,0,0,255,255,127,0,127,127,127,127,127,127,127,127,255,255,255,255,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,254,3,62,31,254,255,255,255,255,255,255,255,255,255,127,224,254,255,255,255,255,255,255,255,255,255,255,247,224,255,255,255,255,63,254,255,255,255,255,255,255,255,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,63,255,31,255,255,255,15,0,0,255,255,255,255,255,127,240,143,255,255,255,128,255,255,255,255,255,255,255,255,255,255,0,0,0,0,128,255,252,255,255,255,255,255,255,255,255,255,255,255,255,121,15,0,255,7,0,0,0,0,0,0,0,0,0,255,187,247,255,255,255,0,0,0,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,15,0,255,3,0,0,252,8,255,255,255,255,255,7,255,255,255,255,7,0,255,255,255,31,255,255,255,255,255,255,247,255,0,128,255,3,0,0,0,0,255,255,255,255,255,255,127,0,255,63,255,3,255,255,127,4,255,255,255,255,255,255,255,127,5,0,0,56,255,255,60,0,126,126,126,0,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,7,255,3,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,127,248,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,127,0,248,224,255,253,127,95,219,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,248,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,0,0,0,0,0,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,255,3,254,255,255,7,254,255,255,7,192,255,255,255,255,255,255,255,255,255,255,127,252,252,252,28,0,0,0,0,255,239,255,255,127,255,255,183,255,63,255,63,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,31,255,255,255,255,255,255,1,0,0,0,0,0,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,63,255,255,255,255,15,255,62,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,3,0,0,0,0,0,0,0,0,0,0,63,253,255,255,255,255,191,145,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,63,0,255,255,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,192,0,0,0,0,0,0,0,0,111,240,239,254,255,255,15,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,255,63,0,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,192,255,0,0,252,255,255,255,255,255,255,1,0,0,255,255,255,1,255,3,255,255,255,255,255,255,199,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,30,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,31,0,255,255,255,255,255,127,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,223,100,222,255,235,239,255,255,255,255,255,255,255,191,231,223,223,255,255,255,123,95,252,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,253,255,255,247,255,255,255,247,255,255,223,255,255,255,223,255,255,127,255,255,255,127,255,255,255,253,255,255,255,253,255,255,247,207,255,255,255,255,255,255,239,255,255,255,150,254,247,10,132,234,150,170,150,247,247,94,255,251,255,15,238,251,255,15,0,0,0,0,0,0,0,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,18,16,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,16,16,34,35,16,36,37,38,39,40,41,42,43,16,44,45,46,17,47,48,17,17,49,17,17,17,50,51,52,53,54,55,56,57,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,59,16,60,61,62,63,64,65,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,66,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,67,16,16,68,16,69,70,71,16,72,16,73,16,16,16,16,74,75,76,77,16,16,78,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,16,16,16,16,82,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,83,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,84,85,86,87,16,16,88,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,90,16,91,92,93,94,95,96,97,98,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,0,252,1,0,0,248,1,0,0,120,0,0,0,0,255,251,223,251,0,0,128,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,252,255,224,175,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,32,64,176,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,134,254,255,255,255,0,64,73,0,0,0,0,0,24,0,223,255,0,200,0,0,0,0,0,0,0,1,0,60,0,0,0,0,0,0,0,0,0,0,0,0,16,224,1,30,0,96,255,191,0,0,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,207,3,0,0,0,3,0,32,255,127,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,16,0,32,30,0,48,0,1,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,252,15,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,3,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,253,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,255,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,63,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,128,0,128,192,223,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,254,255,255,255,0,252,255,255,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,192,255,223,255,7,0,0,0,0,0,0,0,0,0,0,128,6,0,252,0,0,24,62,0,0,128,191,0,204,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,96,255,255,255,31,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,1,0,0,24,0,0,0,0,0,0,0,0,0,56,0,0,0,0,16,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,254,127,47,0,0,255,3,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,255,255,255,255,0,0,0,192,0,0,0,0,0,0,0,0,1,0,224,159,0,0,0,0,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,252,255,255,255,31,0,0,0,0,0,12,0,0,0,0,0,0,64,0,12,240,0,0,0,0,0,0,192,248,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,255,0,255,255,255,33,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,127,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,3,224,0,224,0,224,0,96,128,248,255,255,255,252,255,255,255,255,255,127,31,252,241,127,255,127,0,0,255,255,255,3,0,0,255,255,255,255,1,0,123,3,208,193,175,66,0,12,31,188,255,255,0,0,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,127,0,0,0,255,7,0,0,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,252,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,135,3,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,255,15,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,30,255,255,255,1,252,193,224,0,0,0,0,0,0,0,0,0,0,0,30,1,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,15,0,0,0,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,0,0,0,0,0,0,192,0,224,0,0,0,0,0,0,0,0,0,0,0,128,15,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,127,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,8,0,0,0,15,255,3,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,16,192,0,0,255,255,3,7,0,0,0,0,0,248,0,0,0,0,8,128,0,0,0,0,0,0,0,0,0,0,8,0,255,63,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,128,11,0,0,0,0,0,0,0,128,2,0,0,192,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,255,255,255,3,127,0,255,255,255,255,247,255,127,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,254,255,0,252,1,0,0,248,1,0,0,248,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,0,48,135,255,255,255,255,255,143,255,0,0,0,0,0,0,224,255,255,7,255,15,0,0,0,0,0,0,255,255,255,255,255,63,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,143,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,255,0,255,1,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,63,252,255,63,0,0,0,3,0,0,0,0,0,0,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,127,0,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,8,0,0,0,8,0,0,32,0,0,0,32,0,0,128,0,0,0,128,0,0,0,2,0,0,0,2,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,127,254,127,254,255,254,255,0,0,0,0,255,7,255,255,255,127,255,255,255,255,255,255,255,15,255,255,255,255,255,7,0,0,0,0,0,0,0,0,192,255,255,255,7,0,255,255,255,255,255,7,255,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,191,255,255,255,255,255,255,255,255,31,255,255,15,0,255,255,255,255,223,7,0,0,255,255,1,0,255,255,255,255,255,255,255,127,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,30,255,255,255,255,255,255,255,63,15,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,255,255,255,255,255,255,255,225,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,114,119,97,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+61440);
/* no memory initializer */
var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
assert(tempDoublePtr % 8 == 0);
function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
}
function copyTempDouble(ptr) {
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
}
// {{PRE_LIBRARY}}
Module["_i64Subtract"] = _i64Subtract;
Module["_i64Add"] = _i64Add;
function _pthread_mutex_lock() {}
var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};
var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};
function ___setErrNo(value) {
if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
else Module.printErr('failed to set errno from JS');
return value;
}
var PATH={splitPath:function (filename) {
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
return splitPathRe.exec(filename).slice(1);
},normalizeArray:function (parts, allowAboveRoot) {
// if the path tries to go above the root, `up` ends up > 0
var up = 0;
for (var i = parts.length - 1; i >= 0; i--) {
var last = parts[i];
if (last === '.') {
parts.splice(i, 1);
} else if (last === '..') {
parts.splice(i, 1);
up++;
} else if (up) {
parts.splice(i, 1);
up--;
}
}
// if the path is allowed to go above the root, restore leading ..s
if (allowAboveRoot) {
for (; up--; up) {
parts.unshift('..');
}
}
return parts;
},normalize:function (path) {
var isAbsolute = path.charAt(0) === '/',
trailingSlash = path.substr(-1) === '/';
// Normalize the path
path = PATH.normalizeArray(path.split('/').filter(function(p) {
return !!p;
}), !isAbsolute).join('/');
if (!path && !isAbsolute) {
path = '.';
}
if (path && trailingSlash) {
path += '/';
}
return (isAbsolute ? '/' : '') + path;
},dirname:function (path) {
var result = PATH.splitPath(path),
root = result[0],
dir = result[1];
if (!root && !dir) {
// No dirname whatsoever
return '.';
}
if (dir) {
// It has a dirname, strip trailing slash
dir = dir.substr(0, dir.length - 1);
}
return root + dir;
},basename:function (path) {
// EMSCRIPTEN return '/'' for '/', not an empty string
if (path === '/') return '/';
var lastSlash = path.lastIndexOf('/');
if (lastSlash === -1) return path;
return path.substr(lastSlash+1);
},extname:function (path) {
return PATH.splitPath(path)[3];
},join:function () {
var paths = Array.prototype.slice.call(arguments, 0);
return PATH.normalize(paths.join('/'));
},join2:function (l, r) {
return PATH.normalize(l + '/' + r);
},resolve:function () {
var resolvedPath = '',
resolvedAbsolute = false;
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
var path = (i >= 0) ? arguments[i] : FS.cwd();
// Skip empty and invalid entries
if (typeof path !== 'string') {
throw new TypeError('Arguments to path.resolve must be strings');
} else if (!path) {
return ''; // an invalid portion invalidates the whole thing
}
resolvedPath = path + '/' + resolvedPath;
resolvedAbsolute = path.charAt(0) === '/';
}
// At this point the path should be resolved to a full absolute path, but
// handle relative paths to be safe (might happen when process.cwd() fails)
resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
return !!p;
}), !resolvedAbsolute).join('/');
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
},relative:function (from, to) {
from = PATH.resolve(from).substr(1);
to = PATH.resolve(to).substr(1);
function trim(arr) {
var start = 0;
for (; start < arr.length; start++) {
if (arr[start] !== '') break;
}
var end = arr.length - 1;
for (; end >= 0; end--) {
if (arr[end] !== '') break;
}
if (start > end) return [];
return arr.slice(start, end - start + 1);
}
var fromParts = trim(from.split('/'));
var toParts = trim(to.split('/'));
var length = Math.min(fromParts.length, toParts.length);
var samePartsLength = length;
for (var i = 0; i < length; i++) {
if (fromParts[i] !== toParts[i]) {
samePartsLength = i;
break;
}
}
var outputParts = [];
for (var i = samePartsLength; i < fromParts.length; i++) {
outputParts.push('..');
}
outputParts = outputParts.concat(toParts.slice(samePartsLength));
return outputParts.join('/');
}};
var TTY={ttys:[],init:function () {
// https://github.com/kripken/emscripten/pull/1555
// if (ENVIRONMENT_IS_NODE) {
// // currently, FS.init does not distinguish if process.stdin is a file or TTY
// // device, it always assumes it's a TTY device. because of this, we're forcing
// // process.stdin to UTF8 encoding to at least make stdin reading compatible
// // with text files until FS.init can be refactored.
// process['stdin']['setEncoding']('utf8');
// }
},shutdown:function () {
// https://github.com/kripken/emscripten/pull/1555
// if (ENVIRONMENT_IS_NODE) {
// // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
// // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
// // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
// // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
// // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
// process['stdin']['pause']();
// }
},register:function (dev, ops) {
TTY.ttys[dev] = { input: [], output: [], ops: ops };
FS.registerDevice(dev, TTY.stream_ops);
},stream_ops:{open:function (stream) {
var tty = TTY.ttys[stream.node.rdev];
if (!tty) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
stream.tty = tty;
stream.seekable = false;
},close:function (stream) {
// flush any pending line data
stream.tty.ops.flush(stream.tty);
},flush:function (stream) {
stream.tty.ops.flush(stream.tty);
},read:function (stream, buffer, offset, length, pos /* ignored */) {
if (!stream.tty || !stream.tty.ops.get_char) {
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
}
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = stream.tty.ops.get_char(stream.tty);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
if (result === null || result === undefined) break;
bytesRead++;
buffer[offset+i] = result;
}
if (bytesRead) {
stream.node.timestamp = Date.now();
}
return bytesRead;
},write:function (stream, buffer, offset, length, pos) {
if (!stream.tty || !stream.tty.ops.put_char) {
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
}
for (var i = 0; i < length; i++) {
try {
stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
}
if (length) {
stream.node.timestamp = Date.now();
}
return i;
}},default_tty_ops:{get_char:function (tty) {
if (!tty.input.length) {
var result = null;
if (ENVIRONMENT_IS_NODE) {
// we will read data by chunks of BUFSIZE
var BUFSIZE = 256;
var buf = new Buffer(BUFSIZE);
var bytesRead = 0;
var fd = process.stdin.fd;
// Linux and Mac cannot use process.stdin.fd (which isn't set up as sync)
var usingDevice = false;
try {
fd = fs.openSync('/dev/stdin', 'r');
usingDevice = true;
} catch (e) {}
bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);
if (usingDevice) { fs.closeSync(fd); }
if (bytesRead > 0) {
result = buf.slice(0, bytesRead).toString('utf-8');
} else {
result = null;
}
} else if (typeof window != 'undefined' &&
typeof window.prompt == 'function') {
// Browser.
result = window.prompt('Input: '); // returns null on cancel
if (result !== null) {
result += '\n';
}
} else if (typeof readline == 'function') {
// Command line.
result = readline();
if (result !== null) {
result += '\n';
}
}
if (!result) {
return null;
}
tty.input = intArrayFromString(result, true);
}
return tty.input.shift();
},put_char:function (tty, val) {
if (val === null || val === 10) {
Module['print'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
} else {
if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle.
}
},flush:function (tty) {
if (tty.output && tty.output.length > 0) {
Module['print'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
}
}},default_tty1_ops:{put_char:function (tty, val) {
if (val === null || val === 10) {
Module['printErr'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
} else {
if (val != 0) tty.output.push(val);
}
},flush:function (tty) {
if (tty.output && tty.output.length > 0) {
Module['printErr'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
}
}}};
var MEMFS={ops_table:null,mount:function (mount) {
return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
},createNode:function (parent, name, mode, dev) {
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
// no supported
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (!MEMFS.ops_table) {
MEMFS.ops_table = {
dir: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
lookup: MEMFS.node_ops.lookup,
mknod: MEMFS.node_ops.mknod,
rename: MEMFS.node_ops.rename,
unlink: MEMFS.node_ops.unlink,
rmdir: MEMFS.node_ops.rmdir,
readdir: MEMFS.node_ops.readdir,
symlink: MEMFS.node_ops.symlink
},
stream: {
llseek: MEMFS.stream_ops.llseek
}
},
file: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: {
llseek: MEMFS.stream_ops.llseek,
read: MEMFS.stream_ops.read,
write: MEMFS.stream_ops.write,
allocate: MEMFS.stream_ops.allocate,
mmap: MEMFS.stream_ops.mmap,
msync: MEMFS.stream_ops.msync
}
},
link: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
readlink: MEMFS.node_ops.readlink
},
stream: {}
},
chrdev: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: FS.chrdev_stream_ops
}
};
}
var node = FS.createNode(parent, name, mode, dev);
if (FS.isDir(node.mode)) {
node.node_ops = MEMFS.ops_table.dir.node;
node.stream_ops = MEMFS.ops_table.dir.stream;
node.contents = {};
} else if (FS.isFile(node.mode)) {
node.node_ops = MEMFS.ops_table.file.node;
node.stream_ops = MEMFS.ops_table.file.stream;
node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.buffer.byteLength which gives the whole capacity.
// When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred
// for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size
// penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme.
node.contents = null;
} else if (FS.isLink(node.mode)) {
node.node_ops = MEMFS.ops_table.link.node;
node.stream_ops = MEMFS.ops_table.link.stream;
} else if (FS.isChrdev(node.mode)) {
node.node_ops = MEMFS.ops_table.chrdev.node;
node.stream_ops = MEMFS.ops_table.chrdev.stream;
}
node.timestamp = Date.now();
// add the new node to the parent
if (parent) {
parent.contents[name] = node;
}
return node;
},getFileDataAsRegularArray:function (node) {
if (node.contents && node.contents.subarray) {
var arr = [];
for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
return arr; // Returns a copy of the original data.
}
return node.contents; // No-op, the file contents are already in a JS array. Return as-is.
},getFileDataAsTypedArray:function (node) {
if (!node.contents) return new Uint8Array;
if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes.
return new Uint8Array(node.contents);
},expandFileStorage:function (node, newCapacity) {
// If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file
// instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to
// increase the size.
if (node.contents && node.contents.subarray && newCapacity > node.contents.length) {
node.contents = MEMFS.getFileDataAsRegularArray(node);
node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it.
}
if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well.
var prevCapacity = node.contents ? node.contents.buffer.byteLength : 0;
if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough.
// Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity.
// For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to
// avoid overshooting the allocation cap by a very large margin.
var CAPACITY_DOUBLING_MAX = 1024 * 1024;
newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0);
if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding.
var oldContents = node.contents;
node.contents = new Uint8Array(newCapacity); // Allocate new storage.
if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage.
return;
}
// Not using a typed array to back the file storage. Use a standard JS array instead.
if (!node.contents && newCapacity > 0) node.contents = [];
while (node.contents.length < newCapacity) node.contents.push(0);
},resizeFileStorage:function (node, newSize) {
if (node.usedBytes == newSize) return;
if (newSize == 0) {
node.contents = null; // Fully decommit when requesting a resize to zero.
node.usedBytes = 0;
return;
}
if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store.
var oldContents = node.contents;
node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage.
if (oldContents) {
node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage.
}
node.usedBytes = newSize;
return;
}
// Backing with a JS array.
if (!node.contents) node.contents = [];
if (node.contents.length > newSize) node.contents.length = newSize;
else while (node.contents.length < newSize) node.contents.push(0);
node.usedBytes = newSize;
},node_ops:{getattr:function (node) {
var attr = {};
// device numbers reuse inode numbers.
attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
attr.ino = node.id;
attr.mode = node.mode;
attr.nlink = 1;
attr.uid = 0;
attr.gid = 0;
attr.rdev = node.rdev;
if (FS.isDir(node.mode)) {
attr.size = 4096;
} else if (FS.isFile(node.mode)) {
attr.size = node.usedBytes;
} else if (FS.isLink(node.mode)) {
attr.size = node.link.length;
} else {
attr.size = 0;
}
attr.atime = new Date(node.timestamp);
attr.mtime = new Date(node.timestamp);
attr.ctime = new Date(node.timestamp);
// NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
// but this is not required by the standard.
attr.blksize = 4096;
attr.blocks = Math.ceil(attr.size / attr.blksize);
return attr;
},setattr:function (node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp;
}
if (attr.size !== undefined) {
MEMFS.resizeFileStorage(node, attr.size);
}
},lookup:function (parent, name) {
throw FS.genericErrors[ERRNO_CODES.ENOENT];
},mknod:function (parent, name, mode, dev) {
return MEMFS.createNode(parent, name, mode, dev);
},rename:function (old_node, new_dir, new_name) {
// if we're overwriting a directory at new_name, make sure it's empty.
if (FS.isDir(old_node.mode)) {
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name);
} catch (e) {
}
if (new_node) {
for (var i in new_node.contents) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
}
}
// do the internal rewiring
delete old_node.parent.contents[old_node.name];
old_node.name = new_name;
new_dir.contents[new_name] = old_node;
old_node.parent = new_dir;
},unlink:function (parent, name) {
delete parent.contents[name];
},rmdir:function (parent, name) {
var node = FS.lookupNode(parent, name);
for (var i in node.contents) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
delete parent.contents[name];
},readdir:function (node) {
var entries = ['.', '..']
for (var key in node.contents) {
if (!node.contents.hasOwnProperty(key)) {
continue;
}
entries.push(key);
}
return entries;
},symlink:function (parent, newname, oldpath) {
var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
node.link = oldpath;
return node;
},readlink:function (node) {
if (!FS.isLink(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return node.link;
}},stream_ops:{read:function (stream, buffer, offset, length, position) {
var contents = stream.node.contents;
if (position >= stream.node.usedBytes) return 0;
var size = Math.min(stream.node.usedBytes - position, length);
assert(size >= 0);
if (size > 8 && contents.subarray) { // non-trivial, and typed array
buffer.set(contents.subarray(position, position + size), offset);
} else {
for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];
}
return size;
},write:function (stream, buffer, offset, length, position, canOwn) {
if (!length) return 0;
var node = stream.node;
node.timestamp = Date.now();
if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array?
if (canOwn) { // Can we just reuse the buffer we are given?
assert(position === 0, 'canOwn must imply no weird position inside the file');
node.contents = buffer.subarray(offset, offset + length);
node.usedBytes = length;
return length;
} else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data.
node.contents = new Uint8Array(buffer.subarray(offset, offset + length));
node.usedBytes = length;
return length;
} else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file?
node.contents.set(buffer.subarray(offset, offset + length), position);
return length;
}
}
// Appending to an existing file and we need to reallocate, or source data did not come as a typed array.
MEMFS.expandFileStorage(node, position+length);
if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available.
else {
for (var i = 0; i < length; i++) {
node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not.
}
}
node.usedBytes = Math.max(node.usedBytes, position+length);
return length;
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
position += stream.node.usedBytes;
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
},allocate:function (stream, offset, length) {
MEMFS.expandFileStorage(stream.node, offset + length);
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
},mmap:function (stream, buffer, offset, length, position, prot, flags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
var ptr;
var allocated;
var contents = stream.node.contents;
// Only make a new copy when MAP_PRIVATE is specified.
if ( !(flags & 2) &&
(contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
// We can't emulate MAP_SHARED when the file is not backed by the buffer
// we're mapping to (e.g. the HEAP buffer).
allocated = false;
ptr = contents.byteOffset;
} else {
// Try to avoid unnecessary slices.
if (position > 0 || position + length < stream.node.usedBytes) {
if (contents.subarray) {
contents = contents.subarray(position, position + length);
} else {
contents = Array.prototype.slice.call(contents, position, position + length);
}
}
allocated = true;
ptr = _malloc(length);
if (!ptr) {
throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
}
buffer.set(contents, ptr);
}
return { ptr: ptr, allocated: allocated };
},msync:function (stream, buffer, offset, length, mmapFlags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
if (mmapFlags & 2) {
// MAP_PRIVATE calls need not to be synced back to underlying fs
return 0;
}
var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
// should we check if bytesWritten and length are the same?
return 0;
}}};
var IDBFS={dbs:{},indexedDB:function () {
if (typeof indexedDB !== 'undefined') return indexedDB;
var ret = null;
if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
assert(ret, 'IDBFS used, but indexedDB not supported');
return ret;
},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {
// reuse all of the core MEMFS functionality
return MEMFS.mount.apply(null, arguments);
},syncfs:function (mount, populate, callback) {
IDBFS.getLocalSet(mount, function(err, local) {
if (err) return callback(err);
IDBFS.getRemoteSet(mount, function(err, remote) {
if (err) return callback(err);
var src = populate ? remote : local;
var dst = populate ? local : remote;
IDBFS.reconcile(src, dst, callback);
});
});
},getDB:function (name, callback) {
// check the cache first
var db = IDBFS.dbs[name];
if (db) {
return callback(null, db);
}
var req;
try {
req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
} catch (e) {
return callback(e);
}
req.onupgradeneeded = function(e) {
var db = e.target.result;
var transaction = e.target.transaction;
var fileStore;
if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
} else {
fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
}
if (!fileStore.indexNames.contains('timestamp')) {
fileStore.createIndex('timestamp', 'timestamp', { unique: false });
}
};
req.onsuccess = function() {
db = req.result;
// add to the cache
IDBFS.dbs[name] = db;
callback(null, db);
};
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},getLocalSet:function (mount, callback) {
var entries = {};
function isRealDir(p) {
return p !== '.' && p !== '..';
};
function toAbsolute(root) {
return function(p) {
return PATH.join2(root, p);
}
};
var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
while (check.length) {
var path = check.pop();
var stat;
try {
stat = FS.stat(path);
} catch (e) {
return callback(e);
}
if (FS.isDir(stat.mode)) {
check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
}
entries[path] = { timestamp: stat.mtime };
}
return callback(null, { type: 'local', entries: entries });
},getRemoteSet:function (mount, callback) {
var entries = {};
IDBFS.getDB(mount.mountpoint, function(err, db) {
if (err) return callback(err);
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
transaction.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
var index = store.index('timestamp');
index.openKeyCursor().onsuccess = function(event) {
var cursor = event.target.result;
if (!cursor) {
return callback(null, { type: 'remote', db: db, entries: entries });
}
entries[cursor.primaryKey] = { timestamp: cursor.key };
cursor.continue();
};
});
},loadLocalEntry:function (path, callback) {
var stat, node;
try {
var lookup = FS.lookupPath(path);
node = lookup.node;
stat = FS.stat(path);
} catch (e) {
return callback(e);
}
if (FS.isDir(stat.mode)) {
return callback(null, { timestamp: stat.mtime, mode: stat.mode });
} else if (FS.isFile(stat.mode)) {
// Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array.
// Therefore always convert the file contents to a typed array first before writing the data to IndexedDB.
node.contents = MEMFS.getFileDataAsTypedArray(node);
return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
} else {
return callback(new Error('node type not supported'));
}
},storeLocalEntry:function (path, entry, callback) {
try {
if (FS.isDir(entry.mode)) {
FS.mkdir(path, entry.mode);
} else if (FS.isFile(entry.mode)) {
FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true });
} else {
return callback(new Error('node type not supported'));
}
FS.chmod(path, entry.mode);
FS.utime(path, entry.timestamp, entry.timestamp);
} catch (e) {
return callback(e);
}
callback(null);
},removeLocalEntry:function (path, callback) {
try {
var lookup = FS.lookupPath(path);
var stat = FS.stat(path);
if (FS.isDir(stat.mode)) {
FS.rmdir(path);
} else if (FS.isFile(stat.mode)) {
FS.unlink(path);
}
} catch (e) {
return callback(e);
}
callback(null);
},loadRemoteEntry:function (store, path, callback) {
var req = store.get(path);
req.onsuccess = function(event) { callback(null, event.target.result); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},storeRemoteEntry:function (store, path, entry, callback) {
var req = store.put(entry, path);
req.onsuccess = function() { callback(null); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},removeRemoteEntry:function (store, path, callback) {
var req = store.delete(path);
req.onsuccess = function() { callback(null); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},reconcile:function (src, dst, callback) {
var total = 0;
var create = [];
Object.keys(src.entries).forEach(function (key) {
var e = src.entries[key];
var e2 = dst.entries[key];
if (!e2 || e.timestamp > e2.timestamp) {
create.push(key);
total++;
}
});
var remove = [];
Object.keys(dst.entries).forEach(function (key) {
var e = dst.entries[key];
var e2 = src.entries[key];
if (!e2) {
remove.push(key);
total++;
}
});
if (!total) {
return callback(null);
}
var errored = false;
var completed = 0;
var db = src.type === 'remote' ? src.db : dst.db;
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return callback(err);
}
return;
}
if (++completed >= total) {
return callback(null);
}
};
transaction.onerror = function(e) {
done(this.error);
e.preventDefault();
};
// sort paths in ascending order so directory entries are created
// before the files inside them
create.sort().forEach(function (path) {
if (dst.type === 'local') {
IDBFS.loadRemoteEntry(store, path, function (err, entry) {
if (err) return done(err);
IDBFS.storeLocalEntry(path, entry, done);
});
} else {
IDBFS.loadLocalEntry(path, function (err, entry) {
if (err) return done(err);
IDBFS.storeRemoteEntry(store, path, entry, done);
});
}
});
// sort paths in descending order so files are deleted before their
// parent directories
remove.sort().reverse().forEach(function(path) {
if (dst.type === 'local') {
IDBFS.removeLocalEntry(path, done);
} else {
IDBFS.removeRemoteEntry(store, path, done);
}
});
}};
var NODEFS={isWindows:false,staticInit:function () {
NODEFS.isWindows = !!process.platform.match(/^win/);
},mount:function (mount) {
assert(ENVIRONMENT_IS_NODE);
return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
},createNode:function (parent, name, mode, dev) {
if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var node = FS.createNode(parent, name, mode);
node.node_ops = NODEFS.node_ops;
node.stream_ops = NODEFS.stream_ops;
return node;
},getMode:function (path) {
var stat;
try {
stat = fs.lstatSync(path);
if (NODEFS.isWindows) {
// On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so
// propagate write bits to execute bits.
stat.mode = stat.mode | ((stat.mode & 146) >> 1);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return stat.mode;
},realPath:function (node) {
var parts = [];
while (node.parent !== node) {
parts.push(node.name);
node = node.parent;
}
parts.push(node.mount.opts.root);
parts.reverse();
return PATH.join.apply(null, parts);
},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) {
flags &= ~0100000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
flags &= ~02000000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process.
if (flags in NODEFS.flagsToPermissionStringMap) {
return NODEFS.flagsToPermissionStringMap[flags];
} else {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
},node_ops:{getattr:function (node) {
var path = NODEFS.realPath(node);
var stat;
try {
stat = fs.lstatSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
// node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
// See http://support.microsoft.com/kb/140365
if (NODEFS.isWindows && !stat.blksize) {
stat.blksize = 4096;
}
if (NODEFS.isWindows && !stat.blocks) {
stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
}
return {
dev: stat.dev,
ino: stat.ino,
mode: stat.mode,
nlink: stat.nlink,
uid: stat.uid,
gid: stat.gid,
rdev: stat.rdev,
size: stat.size,
atime: stat.atime,
mtime: stat.mtime,
ctime: stat.ctime,
blksize: stat.blksize,
blocks: stat.blocks
};
},setattr:function (node, attr) {
var path = NODEFS.realPath(node);
try {
if (attr.mode !== undefined) {
fs.chmodSync(path, attr.mode);
// update the common node structure mode as well
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
var date = new Date(attr.timestamp);
fs.utimesSync(path, date, date);
}
if (attr.size !== undefined) {
fs.truncateSync(path, attr.size);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},lookup:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
var mode = NODEFS.getMode(path);
return NODEFS.createNode(parent, name, mode);
},mknod:function (parent, name, mode, dev) {
var node = NODEFS.createNode(parent, name, mode, dev);
// create the backing node for this in the fs root as well
var path = NODEFS.realPath(node);
try {
if (FS.isDir(node.mode)) {
fs.mkdirSync(path, node.mode);
} else {
fs.writeFileSync(path, '', { mode: node.mode });
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return node;
},rename:function (oldNode, newDir, newName) {
var oldPath = NODEFS.realPath(oldNode);
var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
try {
fs.renameSync(oldPath, newPath);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},unlink:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
try {
fs.unlinkSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},rmdir:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
try {
fs.rmdirSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},readdir:function (node) {
var path = NODEFS.realPath(node);
try {
return fs.readdirSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},symlink:function (parent, newName, oldPath) {
var newPath = PATH.join2(NODEFS.realPath(parent), newName);
try {
fs.symlinkSync(oldPath, newPath);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},readlink:function (node) {
var path = NODEFS.realPath(node);
try {
path = fs.readlinkSync(path);
path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path);
return path;
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
}},stream_ops:{open:function (stream) {
var path = NODEFS.realPath(stream.node);
try {
if (FS.isFile(stream.node.mode)) {
stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags));
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},close:function (stream) {
try {
if (FS.isFile(stream.node.mode) && stream.nfd) {
fs.closeSync(stream.nfd);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},read:function (stream, buffer, offset, length, position) {
if (length === 0) return 0; // node errors on 0 length reads
// FIXME this is terrible.
var nbuffer = new Buffer(length);
var res;
try {
res = fs.readSync(stream.nfd, nbuffer, 0, length, position);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
if (res > 0) {
for (var i = 0; i < res; i++) {
buffer[offset + i] = nbuffer[i];
}
}
return res;
},write:function (stream, buffer, offset, length, position) {
// FIXME this is terrible.
var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
var res;
try {
res = fs.writeSync(stream.nfd, nbuffer, 0, length, position);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return res;
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
try {
var stat = fs.fstatSync(stream.nfd);
position += stat.size;
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
}}};
var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) {
assert(ENVIRONMENT_IS_WORKER);
if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();
var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0);
var createdParents = {};
function ensureParent(path) {
// return the parent node, creating subdirs as necessary
var parts = path.split('/');
var parent = root;
for (var i = 0; i < parts.length-1; i++) {
var curr = parts.slice(0, i+1).join('/');
if (!createdParents[curr]) {
createdParents[curr] = WORKERFS.createNode(parent, curr, WORKERFS.DIR_MODE, 0);
}
parent = createdParents[curr];
}
return parent;
}
function base(path) {
var parts = path.split('/');
return parts[parts.length-1];
}
// We also accept FileList here, by using Array.prototype
Array.prototype.forEach.call(mount.opts["files"] || [], function(file) {
WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);
});
(mount.opts["blobs"] || []).forEach(function(obj) {
WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]);
});
(mount.opts["packages"] || []).forEach(function(pack) {
pack['metadata'].files.forEach(function(file) {
var name = file.filename.substr(1); // remove initial slash
WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end));
});
});
return root;
},createNode:function (parent, name, mode, dev, contents, mtime) {
var node = FS.createNode(parent, name, mode);
node.mode = mode;
node.node_ops = WORKERFS.node_ops;
node.stream_ops = WORKERFS.stream_ops;
node.timestamp = (mtime || new Date).getTime();
assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);
if (mode === WORKERFS.FILE_MODE) {
node.size = contents.size;
node.contents = contents;
} else {
node.size = 4096;
node.contents = {};
}
if (parent) {
parent.contents[name] = node;
}
return node;
},node_ops:{getattr:function (node) {
return {
dev: 1,
ino: undefined,
mode: node.mode,
nlink: 1,
uid: 0,
gid: 0,
rdev: undefined,
size: node.size,
atime: new Date(node.timestamp),
mtime: new Date(node.timestamp),
ctime: new Date(node.timestamp),
blksize: 4096,
blocks: Math.ceil(node.size / 4096),
};
},setattr:function (node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp;
}
},lookup:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
},mknod:function (parent, name, mode, dev) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},rename:function (oldNode, newDir, newName) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},unlink:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},rmdir:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},readdir:function (node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},symlink:function (parent, newName, oldPath) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},readlink:function (node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}},stream_ops:{read:function (stream, buffer, offset, length, position) {
if (position >= stream.node.size) return 0;
var chunk = stream.node.contents.slice(position, position + length);
var ab = WORKERFS.reader.readAsArrayBuffer(chunk);
buffer.set(new Uint8Array(ab), offset);
return chunk.size;
},write:function (stream, buffer, offset, length, position) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
position += stream.node.size;
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
}}};
var _stdin=allocate(1, "i32*", ALLOC_STATIC);
var _stdout=allocate(1, "i32*", ALLOC_STATIC);
var _stderr=allocate(1, "i32*", ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) {
if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
return ___setErrNo(e.errno);
},lookupPath:function (path, opts) {
path = PATH.resolve(FS.cwd(), path);
opts = opts || {};
if (!path) return { path: '', node: null };
var defaults = {
follow_mount: true,
recurse_count: 0
};
for (var key in defaults) {
if (opts[key] === undefined) {
opts[key] = defaults[key];
}
}
if (opts.recurse_count > 8) { // max recursive lookup of 8
throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
}
// split the path
var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
return !!p;
}), false);
// start at the root
var current = FS.root;
var current_path = '/';
for (var i = 0; i < parts.length; i++) {
var islast = (i === parts.length-1);
if (islast && opts.parent) {
// stop resolving
break;
}
current = FS.lookupNode(current, parts[i]);
current_path = PATH.join2(current_path, parts[i]);
// jump to the mount's root node if this is a mountpoint
if (FS.isMountpoint(current)) {
if (!islast || (islast && opts.follow_mount)) {
current = current.mounted.root;
}
}
// by default, lookupPath will not follow a symlink if it is the final path component.
// setting opts.follow = true will override this behavior.
if (!islast || opts.follow) {
var count = 0;
while (FS.isLink(current.mode)) {
var link = FS.readlink(current_path);
current_path = PATH.resolve(PATH.dirname(current_path), link);
var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
current = lookup.node;
if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
}
}
}
}
return { path: current_path, node: current };
},getPath:function (node) {
var path;
while (true) {
if (FS.isRoot(node)) {
var mount = node.mount.mountpoint;
if (!path) return mount;
return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
}
path = path ? node.name + '/' + path : node.name;
node = node.parent;
}
},hashName:function (parentid, name) {
var hash = 0;
for (var i = 0; i < name.length; i++) {
hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
}
return ((parentid + hash) >>> 0) % FS.nameTable.length;
},hashAddNode:function (node) {
var hash = FS.hashName(node.parent.id, node.name);
node.name_next = FS.nameTable[hash];
FS.nameTable[hash] = node;
},hashRemoveNode:function (node) {
var hash = FS.hashName(node.parent.id, node.name);
if (FS.nameTable[hash] === node) {
FS.nameTable[hash] = node.name_next;
} else {
var current = FS.nameTable[hash];
while (current) {
if (current.name_next === node) {
current.name_next = node.name_next;
break;
}
current = current.name_next;
}
}
},lookupNode:function (parent, name) {
var err = FS.mayLookup(parent);
if (err) {
throw new FS.ErrnoError(err, parent);
}
var hash = FS.hashName(parent.id, name);
for (var node = FS.nameTable[hash]; node; node = node.name_next) {
var nodeName = node.name;
if (node.parent.id === parent.id && nodeName === name) {
return node;
}
}
// if we failed to find it in the cache, call into the VFS
return FS.lookup(parent, name);
},createNode:function (parent, name, mode, rdev) {
if (!FS.FSNode) {
FS.FSNode = function(parent, name, mode, rdev) {
if (!parent) {
parent = this; // root node sets parent to itself
}
this.parent = parent;
this.mount = parent.mount;
this.mounted = null;
this.id = FS.nextInode++;
this.name = name;
this.mode = mode;
this.node_ops = {};
this.stream_ops = {};
this.rdev = rdev;
};
FS.FSNode.prototype = {};
// compatibility
var readMode = 292 | 73;
var writeMode = 146;
// NOTE we must use Object.defineProperties instead of individual calls to
// Object.defineProperty in order to make closure compiler happy
Object.defineProperties(FS.FSNode.prototype, {
read: {
get: function() { return (this.mode & readMode) === readMode; },
set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
},
write: {
get: function() { return (this.mode & writeMode) === writeMode; },
set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
},
isFolder: {
get: function() { return FS.isDir(this.mode); }
},
isDevice: {
get: function() { return FS.isChrdev(this.mode); }
}
});
}
var node = new FS.FSNode(parent, name, mode, rdev);
FS.hashAddNode(node);
return node;
},destroyNode:function (node) {
FS.hashRemoveNode(node);
},isRoot:function (node) {
return node === node.parent;
},isMountpoint:function (node) {
return !!node.mounted;
},isFile:function (mode) {
return (mode & 61440) === 32768;
},isDir:function (mode) {
return (mode & 61440) === 16384;
},isLink:function (mode) {
return (mode & 61440) === 40960;
},isChrdev:function (mode) {
return (mode & 61440) === 8192;
},isBlkdev:function (mode) {
return (mode & 61440) === 24576;
},isFIFO:function (mode) {
return (mode & 61440) === 4096;
},isSocket:function (mode) {
return (mode & 49152) === 49152;
},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) {
var flags = FS.flagModes[str];
if (typeof flags === 'undefined') {
throw new Error('Unknown file open mode: ' + str);
}
return flags;
},flagsToPermissionString:function (flag) {
var perms = ['r', 'w', 'rw'][flag & 3];
if ((flag & 512)) {
perms += 'w';
}
return perms;
},nodePermissions:function (node, perms) {
if (FS.ignorePermissions) {
return 0;
}
// return 0 if any user, group or owner bits are set.
if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
return ERRNO_CODES.EACCES;
} else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
return ERRNO_CODES.EACCES;
} else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
return ERRNO_CODES.EACCES;
}
return 0;
},mayLookup:function (dir) {
var err = FS.nodePermissions(dir, 'x');
if (err) return err;
if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES;
return 0;
},mayCreate:function (dir, name) {
try {
var node = FS.lookupNode(dir, name);
return ERRNO_CODES.EEXIST;
} catch (e) {
}
return FS.nodePermissions(dir, 'wx');
},mayDelete:function (dir, name, isdir) {
var node;
try {
node = FS.lookupNode(dir, name);
} catch (e) {
return e.errno;
}
var err = FS.nodePermissions(dir, 'wx');
if (err) {
return err;
}
if (isdir) {
if (!FS.isDir(node.mode)) {
return ERRNO_CODES.ENOTDIR;
}
if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
return ERRNO_CODES.EBUSY;
}
} else {
if (FS.isDir(node.mode)) {
return ERRNO_CODES.EISDIR;
}
}
return 0;
},mayOpen:function (node, flags) {
if (!node) {
return ERRNO_CODES.ENOENT;
}
if (FS.isLink(node.mode)) {
return ERRNO_CODES.ELOOP;
} else if (FS.isDir(node.mode)) {
if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write
(flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only)
return ERRNO_CODES.EISDIR;
}
}
return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
},MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
fd_start = fd_start || 0;
fd_end = fd_end || FS.MAX_OPEN_FDS;
for (var fd = fd_start; fd <= fd_end; fd++) {
if (!FS.streams[fd]) {
return fd;
}
}
throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
},getStream:function (fd) {
return FS.streams[fd];
},createStream:function (stream, fd_start, fd_end) {
if (!FS.FSStream) {
FS.FSStream = function(){};
FS.FSStream.prototype = {};
// compatibility
Object.defineProperties(FS.FSStream.prototype, {
object: {
get: function() { return this.node; },
set: function(val) { this.node = val; }
},
isRead: {
get: function() { return (this.flags & 2097155) !== 1; }
},
isWrite: {
get: function() { return (this.flags & 2097155) !== 0; }
},
isAppend: {
get: function() { return (this.flags & 1024); }
}
});
}
// clone it, so we can return an instance of FSStream
var newStream = new FS.FSStream();
for (var p in stream) {
newStream[p] = stream[p];
}
stream = newStream;
var fd = FS.nextfd(fd_start, fd_end);
stream.fd = fd;
FS.streams[fd] = stream;
return stream;
},closeStream:function (fd) {
FS.streams[fd] = null;
},chrdev_stream_ops:{open:function (stream) {
var device = FS.getDevice(stream.node.rdev);
// override node's stream ops with the device's
stream.stream_ops = device.stream_ops;
// forward the open call
if (stream.stream_ops.open) {
stream.stream_ops.open(stream);
}
},llseek:function () {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}},major:function (dev) {
return ((dev) >> 8);
},minor:function (dev) {
return ((dev) & 0xff);
},makedev:function (ma, mi) {
return ((ma) << 8 | (mi));
},registerDevice:function (dev, ops) {
FS.devices[dev] = { stream_ops: ops };
},getDevice:function (dev) {
return FS.devices[dev];
},getMounts:function (mount) {
var mounts = [];
var check = [mount];
while (check.length) {
var m = check.pop();
mounts.push(m);
check.push.apply(check, m.mounts);
}
return mounts;
},syncfs:function (populate, callback) {
if (typeof(populate) === 'function') {
callback = populate;
populate = false;
}
FS.syncFSRequests++;
if (FS.syncFSRequests > 1) {
console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work');
}
var mounts = FS.getMounts(FS.root.mount);
var completed = 0;
function doCallback(err) {
assert(FS.syncFSRequests > 0);
FS.syncFSRequests--;
return callback(err);
}
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return doCallback(err);
}
return;
}
if (++completed >= mounts.length) {
doCallback(null);
}
};
// sync all mounts
mounts.forEach(function (mount) {
if (!mount.type.syncfs) {
return done(null);
}
mount.type.syncfs(mount, populate, done);
});
},mount:function (type, opts, mountpoint) {
var root = mountpoint === '/';
var pseudo = !mountpoint;
var node;
if (root && FS.root) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
} else if (!root && !pseudo) {
var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
mountpoint = lookup.path; // use the absolute path
node = lookup.node;
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
if (!FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
}
var mount = {
type: type,
opts: opts,
mountpoint: mountpoint,
mounts: []
};
// create a root node for the fs
var mountRoot = type.mount(mount);
mountRoot.mount = mount;
mount.root = mountRoot;
if (root) {
FS.root = mountRoot;
} else if (node) {
// set as a mountpoint
node.mounted = mount;
// add the new mount to the current mount's children
if (node.mount) {
node.mount.mounts.push(mount);
}
}
return mountRoot;
},unmount:function (mountpoint) {
var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
if (!FS.isMountpoint(lookup.node)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
// destroy the nodes for this mount, and all its child mounts
var node = lookup.node;
var mount = node.mounted;
var mounts = FS.getMounts(mount);
Object.keys(FS.nameTable).forEach(function (hash) {
var current = FS.nameTable[hash];
while (current) {
var next = current.name_next;
if (mounts.indexOf(current.mount) !== -1) {
FS.destroyNode(current);
}
current = next;
}
});
// no longer a mountpoint
node.mounted = null;
// remove this mount from the child mounts
var idx = node.mount.mounts.indexOf(mount);
assert(idx !== -1);
node.mount.mounts.splice(idx, 1);
},lookup:function (parent, name) {
return parent.node_ops.lookup(parent, name);
},mknod:function (path, mode, dev) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
if (!name || name === '.' || name === '..') {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var err = FS.mayCreate(parent, name);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.mknod) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
return parent.node_ops.mknod(parent, name, mode, dev);
},create:function (path, mode) {
mode = mode !== undefined ? mode : 438 /* 0666 */;
mode &= 4095;
mode |= 32768;
return FS.mknod(path, mode, 0);
},mkdir:function (path, mode) {
mode = mode !== undefined ? mode : 511 /* 0777 */;
mode &= 511 | 512;
mode |= 16384;
return FS.mknod(path, mode, 0);
},mkdev:function (path, mode, dev) {
if (typeof(dev) === 'undefined') {
dev = mode;
mode = 438 /* 0666 */;
}
mode |= 8192;
return FS.mknod(path, mode, dev);
},symlink:function (oldpath, newpath) {
if (!PATH.resolve(oldpath)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
var lookup = FS.lookupPath(newpath, { parent: true });
var parent = lookup.node;
if (!parent) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
var newname = PATH.basename(newpath);
var err = FS.mayCreate(parent, newname);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.symlink) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
return parent.node_ops.symlink(parent, newname, oldpath);
},rename:function (old_path, new_path) {
var old_dirname = PATH.dirname(old_path);
var new_dirname = PATH.dirname(new_path);
var old_name = PATH.basename(old_path);
var new_name = PATH.basename(new_path);
// parents must exist
var lookup, old_dir, new_dir;
try {
lookup = FS.lookupPath(old_path, { parent: true });
old_dir = lookup.node;
lookup = FS.lookupPath(new_path, { parent: true });
new_dir = lookup.node;
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
// need to be part of the same mount
if (old_dir.mount !== new_dir.mount) {
throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
}
// source must exist
var old_node = FS.lookupNode(old_dir, old_name);
// old path should not be an ancestor of the new path
var relative = PATH.relative(old_path, new_dirname);
if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
// new path should not be an ancestor of the old path
relative = PATH.relative(new_path, old_dirname);
if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
// see if the new path already exists
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name);
} catch (e) {
// not fatal
}
// early out if nothing needs to change
if (old_node === new_node) {
return;
}
// we'll need to delete the old entry
var isdir = FS.isDir(old_node.mode);
var err = FS.mayDelete(old_dir, old_name, isdir);
if (err) {
throw new FS.ErrnoError(err);
}
// need delete permissions if we'll be overwriting.
// need create permissions if new doesn't already exist.
err = new_node ?
FS.mayDelete(new_dir, new_name, isdir) :
FS.mayCreate(new_dir, new_name);
if (err) {
throw new FS.ErrnoError(err);
}
if (!old_dir.node_ops.rename) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
// if we are going to change the parent, check write permissions
if (new_dir !== old_dir) {
err = FS.nodePermissions(old_dir, 'w');
if (err) {
throw new FS.ErrnoError(err);
}
}
try {
if (FS.trackingDelegate['willMovePath']) {
FS.trackingDelegate['willMovePath'](old_path, new_path);
}
} catch(e) {
console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
}
// remove the node from the lookup hash
FS.hashRemoveNode(old_node);
// do the underlying fs rename
try {
old_dir.node_ops.rename(old_node, new_dir, new_name);
} catch (e) {
throw e;
} finally {
// add the node back to the hash (in case node_ops.rename
// changed its name)
FS.hashAddNode(old_node);
}
try {
if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path);
} catch(e) {
console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
}
},rmdir:function (path) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
var node = FS.lookupNode(parent, name);
var err = FS.mayDelete(parent, name, true);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.rmdir) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
try {
if (FS.trackingDelegate['willDeletePath']) {
FS.trackingDelegate['willDeletePath'](path);
}
} catch(e) {
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
}
parent.node_ops.rmdir(parent, name);
FS.destroyNode(node);
try {
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
} catch(e) {
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
}
},readdir:function (path) {
var lookup = FS.lookupPath(path, { follow: true });
var node = lookup.node;
if (!node.node_ops.readdir) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
return node.node_ops.readdir(node);
},unlink:function (path) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
var node = FS.lookupNode(parent, name);
var err = FS.mayDelete(parent, name, false);
if (err) {
// POSIX says unlink should set EPERM, not EISDIR
if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.unlink) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
try {
if (FS.trackingDelegate['willDeletePath']) {
FS.trackingDelegate['willDeletePath'](path);
}
} catch(e) {
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
}
parent.node_ops.unlink(parent, name);
FS.destroyNode(node);
try {
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
} catch(e) {
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
}
},readlink:function (path) {
var lookup = FS.lookupPath(path);
var link = lookup.node;
if (!link) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
if (!link.node_ops.readlink) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
},stat:function (path, dontFollow) {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
var node = lookup.node;
if (!node) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
if (!node.node_ops.getattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
return node.node_ops.getattr(node);
},lstat:function (path) {
return FS.stat(path, true);
},chmod:function (path, mode, dontFollow) {
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
node.node_ops.setattr(node, {
mode: (mode & 4095) | (node.mode & ~4095),
timestamp: Date.now()
});
},lchmod:function (path, mode) {
FS.chmod(path, mode, true);
},fchmod:function (fd, mode) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
FS.chmod(stream.node, mode);
},chown:function (path, uid, gid, dontFollow) {
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
node.node_ops.setattr(node, {
timestamp: Date.now()
// we ignore the uid / gid for now
});
},lchown:function (path, uid, gid) {
FS.chown(path, uid, gid, true);
},fchown:function (fd, uid, gid) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
FS.chown(stream.node, uid, gid);
},truncate:function (path, len) {
if (len < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: true });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
}
if (!FS.isFile(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var err = FS.nodePermissions(node, 'w');
if (err) {
throw new FS.ErrnoError(err);
}
node.node_ops.setattr(node, {
size: len,
timestamp: Date.now()
});
},ftruncate:function (fd, len) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
FS.truncate(stream.node, len);
},utime:function (path, atime, mtime) {
var lookup = FS.lookupPath(path, { follow: true });
var node = lookup.node;
node.node_ops.setattr(node, {
timestamp: Math.max(atime, mtime)
});
},open:function (path, flags, mode, fd_start, fd_end) {
if (path === "") {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
if ((flags & 64)) {
mode = (mode & 4095) | 32768;
} else {
mode = 0;
}
var node;
if (typeof path === 'object') {
node = path;
} else {
path = PATH.normalize(path);
try {
var lookup = FS.lookupPath(path, {
follow: !(flags & 131072)
});
node = lookup.node;
} catch (e) {
// ignore
}
}
// perhaps we need to create the node
var created = false;
if ((flags & 64)) {
if (node) {
// if O_CREAT and O_EXCL are set, error out if the node already exists
if ((flags & 128)) {
throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
}
} else {
// node doesn't exist, try to create it
node = FS.mknod(path, mode, 0);
created = true;
}
}
if (!node) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
// can't truncate a device
if (FS.isChrdev(node.mode)) {
flags &= ~512;
}
// if asked only for a directory, then this must be one
if ((flags & 65536) && !FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
// check permissions, if this is not a file we just created now (it is ok to
// create and write to a file with read-only permissions; it is read-only
// for later use)
if (!created) {
var err = FS.mayOpen(node, flags);
if (err) {
throw new FS.ErrnoError(err);
}
}
// do truncation if necessary
if ((flags & 512)) {
FS.truncate(node, 0);
}
// we've already handled these, don't pass down to the underlying vfs
flags &= ~(128 | 512);
// register the stream with the filesystem
var stream = FS.createStream({
node: node,
path: FS.getPath(node), // we want the absolute path to the node
flags: flags,
seekable: true,
position: 0,
stream_ops: node.stream_ops,
// used by the file family libc calls (fopen, fwrite, ferror, etc.)
ungotten: [],
error: false
}, fd_start, fd_end);
// call the new stream's open function
if (stream.stream_ops.open) {
stream.stream_ops.open(stream);
}
if (Module['logReadFiles'] && !(flags & 1)) {
if (!FS.readFiles) FS.readFiles = {};
if (!(path in FS.readFiles)) {
FS.readFiles[path] = 1;
Module['printErr']('read file: ' + path);
}
}
try {
if (FS.trackingDelegate['onOpenFile']) {
var trackingFlags = 0;
if ((flags & 2097155) !== 1) {
trackingFlags |= FS.tracking.openFlags.READ;
}
if ((flags & 2097155) !== 0) {
trackingFlags |= FS.tracking.openFlags.WRITE;
}
FS.trackingDelegate['onOpenFile'](path, trackingFlags);
}
} catch(e) {
console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message);
}
return stream;
},close:function (stream) {
if (stream.getdents) stream.getdents = null; // free readdir state
try {
if (stream.stream_ops.close) {
stream.stream_ops.close(stream);
}
} catch (e) {
throw e;
} finally {
FS.closeStream(stream.fd);
}
},llseek:function (stream, offset, whence) {
if (!stream.seekable || !stream.stream_ops.llseek) {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}
stream.position = stream.stream_ops.llseek(stream, offset, whence);
stream.ungotten = [];
return stream.position;
},read:function (stream, buffer, offset, length, position) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if ((stream.flags & 2097155) === 1) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if (FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
}
if (!stream.stream_ops.read) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var seeking = true;
if (typeof position === 'undefined') {
position = stream.position;
seeking = false;
} else if (!stream.seekable) {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}
var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
if (!seeking) stream.position += bytesRead;
return bytesRead;
},write:function (stream, buffer, offset, length, position, canOwn) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if (FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
}
if (!stream.stream_ops.write) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if (stream.flags & 1024) {
// seek to the end before writing in append mode
FS.llseek(stream, 0, 2);
}
var seeking = true;
if (typeof position === 'undefined') {
position = stream.position;
seeking = false;
} else if (!stream.seekable) {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}
var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
if (!seeking) stream.position += bytesWritten;
try {
if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path);
} catch(e) {
console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message);
}
return bytesWritten;
},allocate:function (stream, offset, length) {
if (offset < 0 || length <= 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
if (!stream.stream_ops.allocate) {
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
}
stream.stream_ops.allocate(stream, offset, length);
},mmap:function (stream, buffer, offset, length, position, prot, flags) {
// TODO if PROT is PROT_WRITE, make sure we have write access
if ((stream.flags & 2097155) === 1) {
throw new FS.ErrnoError(ERRNO_CODES.EACCES);
}
if (!stream.stream_ops.mmap) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
},msync:function (stream, buffer, offset, length, mmapFlags) {
if (!stream || !stream.stream_ops.msync) {
return 0;
}
return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
},munmap:function (stream) {
return 0;
},ioctl:function (stream, cmd, arg) {
if (!stream.stream_ops.ioctl) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
}
return stream.stream_ops.ioctl(stream, cmd, arg);
},readFile:function (path, opts) {
opts = opts || {};
opts.flags = opts.flags || 'r';
opts.encoding = opts.encoding || 'binary';
if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
throw new Error('Invalid encoding type "' + opts.encoding + '"');
}
var ret;
var stream = FS.open(path, opts.flags);
var stat = FS.stat(path);
var length = stat.size;
var buf = new Uint8Array(length);
FS.read(stream, buf, 0, length, 0);
if (opts.encoding === 'utf8') {
ret = UTF8ArrayToString(buf, 0);
} else if (opts.encoding === 'binary') {
ret = buf;
}
FS.close(stream);
return ret;
},writeFile:function (path, data, opts) {
opts = opts || {};
opts.flags = opts.flags || 'w';
opts.encoding = opts.encoding || 'utf8';
if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
throw new Error('Invalid encoding type "' + opts.encoding + '"');
}
var stream = FS.open(path, opts.flags, opts.mode);
if (opts.encoding === 'utf8') {
var buf = new Uint8Array(lengthBytesUTF8(data)+1);
var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn);
} else if (opts.encoding === 'binary') {
FS.write(stream, data, 0, data.length, 0, opts.canOwn);
}
FS.close(stream);
},cwd:function () {
return FS.currentPath;
},chdir:function (path) {
var lookup = FS.lookupPath(path, { follow: true });
if (!FS.isDir(lookup.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
var err = FS.nodePermissions(lookup.node, 'x');
if (err) {
throw new FS.ErrnoError(err);
}
FS.currentPath = lookup.path;
},createDefaultDirectories:function () {
FS.mkdir('/tmp');
FS.mkdir('/home');
FS.mkdir('/home/web_user');
},createDefaultDevices:function () {
// create /dev
FS.mkdir('/dev');
// setup /dev/null
FS.registerDevice(FS.makedev(1, 3), {
read: function() { return 0; },
write: function(stream, buffer, offset, length, pos) { return length; }
});
FS.mkdev('/dev/null', FS.makedev(1, 3));
// setup /dev/tty and /dev/tty1
// stderr needs to print output using Module['printErr']
// so we register a second tty just for it.
TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
FS.mkdev('/dev/tty', FS.makedev(5, 0));
FS.mkdev('/dev/tty1', FS.makedev(6, 0));
// setup /dev/[u]random
var random_device;
if (typeof crypto !== 'undefined') {
// for modern web browsers
var randomBuffer = new Uint8Array(1);
random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };
} else if (ENVIRONMENT_IS_NODE) {
// for nodejs
random_device = function() { return require('crypto').randomBytes(1)[0]; };
} else {
// default for ES5 platforms
random_device = function() { return (Math.random()*256)|0; };
}
FS.createDevice('/dev', 'random', random_device);
FS.createDevice('/dev', 'urandom', random_device);
// we're not going to emulate the actual shm device,
// just create the tmp dirs that reside in it commonly
FS.mkdir('/dev/shm');
FS.mkdir('/dev/shm/tmp');
},createSpecialDirectories:function () {
// create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname)
FS.mkdir('/proc');
FS.mkdir('/proc/self');
FS.mkdir('/proc/self/fd');
FS.mount({
mount: function() {
var node = FS.createNode('/proc/self', 'fd', 16384 | 0777, 73);
node.node_ops = {
lookup: function(parent, name) {
var fd = +name;
var stream = FS.getStream(fd);
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
var ret = {
parent: null,
mount: { mountpoint: 'fake' },
node_ops: { readlink: function() { return stream.path } }
};
ret.parent = ret; // make it look like a simple root node
return ret;
}
};
return node;
}
}, {}, '/proc/self/fd');
},createStandardStreams:function () {
// TODO deprecate the old functionality of a single
// input / output callback and that utilizes FS.createDevice
// and instead require a unique set of stream ops
// by default, we symlink the standard streams to the
// default tty devices. however, if the standard streams
// have been overwritten we create a unique device for
// them instead.
if (Module['stdin']) {
FS.createDevice('/dev', 'stdin', Module['stdin']);
} else {
FS.symlink('/dev/tty', '/dev/stdin');
}
if (Module['stdout']) {
FS.createDevice('/dev', 'stdout', null, Module['stdout']);
} else {
FS.symlink('/dev/tty', '/dev/stdout');
}
if (Module['stderr']) {
FS.createDevice('/dev', 'stderr', null, Module['stderr']);
} else {
FS.symlink('/dev/tty1', '/dev/stderr');
}
// open default streams for the stdin, stdout and stderr devices
var stdin = FS.open('/dev/stdin', 'r');
assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');
var stdout = FS.open('/dev/stdout', 'w');
assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');
var stderr = FS.open('/dev/stderr', 'w');
assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');
},ensureErrnoError:function () {
if (FS.ErrnoError) return;
FS.ErrnoError = function ErrnoError(errno, node) {
//Module.printErr(stackTrace()); // useful for debugging
this.node = node;
this.setErrno = function(errno) {
this.errno = errno;
for (var key in ERRNO_CODES) {
if (ERRNO_CODES[key] === errno) {
this.code = key;
break;
}
}
};
this.setErrno(errno);
this.message = ERRNO_MESSAGES[errno];
if (this.stack) this.stack = demangleAll(this.stack);
};
FS.ErrnoError.prototype = new Error();
FS.ErrnoError.prototype.constructor = FS.ErrnoError;
// Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
[ERRNO_CODES.ENOENT].forEach(function(code) {
FS.genericErrors[code] = new FS.ErrnoError(code);
FS.genericErrors[code].stack = '<generic error, no stack>';
});
},staticInit:function () {
FS.ensureErrnoError();
FS.nameTable = new Array(4096);
FS.mount(MEMFS, {}, '/');
FS.createDefaultDirectories();
FS.createDefaultDevices();
FS.createSpecialDirectories();
FS.filesystems = {
'MEMFS': MEMFS,
'IDBFS': IDBFS,
'NODEFS': NODEFS,
'WORKERFS': WORKERFS,
};
},init:function (input, output, error) {
assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
FS.init.initialized = true;
FS.ensureErrnoError();
// Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
Module['stdin'] = input || Module['stdin'];
Module['stdout'] = output || Module['stdout'];
Module['stderr'] = error || Module['stderr'];
FS.createStandardStreams();
},quit:function () {
FS.init.initialized = false;
// force-flush all streams, so we get musl std streams printed out
var fflush = Module['_fflush'];
if (fflush) fflush(0);
// close all of our streams
for (var i = 0; i < FS.streams.length; i++) {
var stream = FS.streams[i];
if (!stream) {
continue;
}
FS.close(stream);
}
},getMode:function (canRead, canWrite) {
var mode = 0;
if (canRead) mode |= 292 | 73;
if (canWrite) mode |= 146;
return mode;
},joinPath:function (parts, forceRelative) {
var path = PATH.join.apply(null, parts);
if (forceRelative && path[0] == '/') path = path.substr(1);
return path;
},absolutePath:function (relative, base) {
return PATH.resolve(base, relative);
},standardizePath:function (path) {
return PATH.normalize(path);
},findObject:function (path, dontResolveLastLink) {
var ret = FS.analyzePath(path, dontResolveLastLink);
if (ret.exists) {
return ret.object;
} else {
___setErrNo(ret.error);
return null;
}
},analyzePath:function (path, dontResolveLastLink) {
// operate from within the context of the symlink's target
try {
var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
path = lookup.path;
} catch (e) {
}
var ret = {
isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
parentExists: false, parentPath: null, parentObject: null
};
try {
var lookup = FS.lookupPath(path, { parent: true });
ret.parentExists = true;
ret.parentPath = lookup.path;
ret.parentObject = lookup.node;
ret.name = PATH.basename(path);
lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
ret.exists = true;
ret.path = lookup.path;
ret.object = lookup.node;
ret.name = lookup.node.name;
ret.isRoot = lookup.path === '/';
} catch (e) {
ret.error = e.errno;
};
return ret;
},createFolder:function (parent, name, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.mkdir(path, mode);
},createPath:function (parent, path, canRead, canWrite) {
parent = typeof parent === 'string' ? parent : FS.getPath(parent);
var parts = path.split('/').reverse();
while (parts.length) {
var part = parts.pop();
if (!part) continue;
var current = PATH.join2(parent, part);
try {
FS.mkdir(current);
} catch (e) {
// ignore EEXIST
}
parent = current;
}
return current;
},createFile:function (parent, name, properties, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.create(path, mode);
},createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
var mode = FS.getMode(canRead, canWrite);
var node = FS.create(path, mode);
if (data) {
if (typeof data === 'string') {
var arr = new Array(data.length);
for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
data = arr;
}
// make sure we can write to the file
FS.chmod(node, mode | 146);
var stream = FS.open(node, 'w');
FS.write(stream, data, 0, data.length, 0, canOwn);
FS.close(stream);
FS.chmod(node, mode);
}
return node;
},createDevice:function (parent, name, input, output) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(!!input, !!output);
if (!FS.createDevice.major) FS.createDevice.major = 64;
var dev = FS.makedev(FS.createDevice.major++, 0);
// Create a fake device that a set of stream ops to emulate
// the old behavior.
FS.registerDevice(dev, {
open: function(stream) {
stream.seekable = false;
},
close: function(stream) {
// flush any pending line data
if (output && output.buffer && output.buffer.length) {
output(10);
}
},
read: function(stream, buffer, offset, length, pos /* ignored */) {
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = input();
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
if (result === null || result === undefined) break;
bytesRead++;
buffer[offset+i] = result;
}
if (bytesRead) {
stream.node.timestamp = Date.now();
}
return bytesRead;
},
write: function(stream, buffer, offset, length, pos) {
for (var i = 0; i < length; i++) {
try {
output(buffer[offset+i]);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
}
if (length) {
stream.node.timestamp = Date.now();
}
return i;
}
});
return FS.mkdev(path, mode, dev);
},createLink:function (parent, name, target, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
return FS.symlink(target, path);
},forceLoadFile:function (obj) {
if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
var success = true;
if (typeof XMLHttpRequest !== 'undefined') {
throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
} else if (Module['read']) {
// Command-line.
try {
// WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
// read() will try to parse UTF8.
obj.contents = intArrayFromString(Module['read'](obj.url), true);
obj.usedBytes = obj.contents.length;
} catch (e) {
success = false;
}
} else {
throw new Error('Cannot load without read() or XMLHttpRequest.');
}
if (!success) ___setErrNo(ERRNO_CODES.EIO);
return success;
},createLazyFile:function (parent, name, url, canRead, canWrite) {
// Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
function LazyUint8Array() {
this.lengthKnown = false;
this.chunks = []; // Loaded chunks. Index is the chunk number
}
LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
if (idx > this.length-1 || idx < 0) {
return undefined;
}
var chunkOffset = idx % this.chunkSize;
var chunkNum = (idx / this.chunkSize)|0;
return this.getter(chunkNum)[chunkOffset];
}
LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
this.getter = getter;
}
LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
// Find length
var xhr = new XMLHttpRequest();
xhr.open('HEAD', url, false);
xhr.send(null);
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
var datalength = Number(xhr.getResponseHeader("Content-length"));
var header;
var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
var chunkSize = 1024*1024; // Chunk size in bytes
if (!hasByteServing) chunkSize = datalength;
// Function to get a range from the remote URL.
var doXHR = (function(from, to) {
if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
// TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
// Some hints to the browser that we want binary data.
if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
if (xhr.overrideMimeType) {
xhr.overrideMimeType('text/plain; charset=x-user-defined');
}
xhr.send(null);
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
if (xhr.response !== undefined) {
return new Uint8Array(xhr.response || []);
} else {
return intArrayFromString(xhr.responseText || '', true);
}
});
var lazyArray = this;
lazyArray.setDataGetter(function(chunkNum) {
var start = chunkNum * chunkSize;
var end = (chunkNum+1) * chunkSize - 1; // including this byte
end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
lazyArray.chunks[chunkNum] = doXHR(start, end);
}
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
return lazyArray.chunks[chunkNum];
});
if (usesGzip || !datalength) {
// if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file
datalength = this.getter(0).length;
chunkSize = datalength;
console.log("LazyFiles on gzip forces download of the whole file when length is accessed");
}
this._length = datalength;
this._chunkSize = chunkSize;
this.lengthKnown = true;
}
if (typeof XMLHttpRequest !== 'undefined') {
if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
var lazyArray = new LazyUint8Array();
Object.defineProperties(lazyArray, {
length: {
get: function() {
if(!this.lengthKnown) {
this.cacheLength();
}
return this._length;
}
},
chunkSize: {
get: function() {
if(!this.lengthKnown) {
this.cacheLength();
}
return this._chunkSize;
}
}
});
var properties = { isDevice: false, contents: lazyArray };
} else {
var properties = { isDevice: false, url: url };
}
var node = FS.createFile(parent, name, properties, canRead, canWrite);
// This is a total hack, but I want to get this lazy file code out of the
// core of MEMFS. If we want to keep this lazy file concept I feel it should
// be its own thin LAZYFS proxying calls to MEMFS.
if (properties.contents) {
node.contents = properties.contents;
} else if (properties.url) {
node.contents = null;
node.url = properties.url;
}
// Add a function that defers querying the file size until it is asked the first time.
Object.defineProperties(node, {
usedBytes: {
get: function() { return this.contents.length; }
}
});
// override each stream op with one that tries to force load the lazy file first
var stream_ops = {};
var keys = Object.keys(node.stream_ops);
keys.forEach(function(key) {
var fn = node.stream_ops[key];
stream_ops[key] = function forceLoadLazyFile() {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
return fn.apply(null, arguments);
};
});
// use a custom read function
stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
var contents = stream.node.contents;
if (position >= contents.length)
return 0;
var size = Math.min(contents.length - position, length);
assert(size >= 0);
if (contents.slice) { // normal array
for (var i = 0; i < size; i++) {
buffer[offset + i] = contents[position + i];
}
} else {
for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
buffer[offset + i] = contents.get(position + i);
}
}
return size;
};
node.stream_ops = stream_ops;
return node;
},createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
Browser.init();
// TODO we should allow people to just pass in a complete filename instead
// of parent and name being that we just join them anyways
var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname
function processData(byteArray) {
function finish(byteArray) {
if (preFinish) preFinish();
if (!dontCreateFile) {
FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
}
if (onload) onload();
removeRunDependency(dep);
}
var handled = false;
Module['preloadPlugins'].forEach(function(plugin) {
if (handled) return;
if (plugin['canHandle'](fullname)) {
plugin['handle'](byteArray, fullname, finish, function() {
if (onerror) onerror();
removeRunDependency(dep);
});
handled = true;
}
});
if (!handled) finish(byteArray);
}
addRunDependency(dep);
if (typeof url == 'string') {
Browser.asyncLoad(url, function(byteArray) {
processData(byteArray);
}, onerror);
} else {
processData(url);
}
},indexedDB:function () {
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
},DB_NAME:function () {
return 'EM_FS_' + window.location.pathname;
},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
onload = onload || function(){};
onerror = onerror || function(){};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
} catch (e) {
return onerror(e);
}
openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
console.log('creating db');
var db = openRequest.result;
db.createObjectStore(FS.DB_STORE_NAME);
};
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0, fail = 0, total = paths.length;
function finish() {
if (fail == 0) onload(); else onerror();
}
paths.forEach(function(path) {
var putRequest = files.put(FS.analyzePath(path).object.contents, path);
putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
});
transaction.onerror = onerror;
};
openRequest.onerror = onerror;
},loadFilesFromDB:function (paths, onload, onerror) {
onload = onload || function(){};
onerror = onerror || function(){};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
} catch (e) {
return onerror(e);
}
openRequest.onupgradeneeded = onerror; // no database to load from
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
try {
var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
} catch(e) {
onerror(e);
return;
}
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0, fail = 0, total = paths.length;
function finish() {
if (fail == 0) onload(); else onerror();
}
paths.forEach(function(path) {
var getRequest = files.get(path);
getRequest.onsuccess = function getRequest_onsuccess() {
if (FS.analyzePath(path).exists) {
FS.unlink(path);
}
FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
ok++;
if (ok + fail == total) finish();
};
getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
});
transaction.onerror = onerror;
};
openRequest.onerror = onerror;
}};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) {
if (path[0] !== '/') {
// relative path
var dir;
if (dirfd === -100) {
dir = FS.cwd();
} else {
var dirstream = FS.getStream(dirfd);
if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
dir = dirstream.path;
}
path = PATH.join2(dir, path);
}
return path;
},doStat:function (func, path, buf) {
try {
var stat = func(path);
} catch (e) {
if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
// an error occurred while trying to look up the path; we should just report ENOTDIR
return -ERRNO_CODES.ENOTDIR;
}
throw e;
}
HEAP32[((buf)>>2)]=stat.dev;
HEAP32[(((buf)+(4))>>2)]=0;
HEAP32[(((buf)+(8))>>2)]=stat.ino;
HEAP32[(((buf)+(12))>>2)]=stat.mode;
HEAP32[(((buf)+(16))>>2)]=stat.nlink;
HEAP32[(((buf)+(20))>>2)]=stat.uid;
HEAP32[(((buf)+(24))>>2)]=stat.gid;
HEAP32[(((buf)+(28))>>2)]=stat.rdev;
HEAP32[(((buf)+(32))>>2)]=0;
HEAP32[(((buf)+(36))>>2)]=stat.size;
HEAP32[(((buf)+(40))>>2)]=4096;
HEAP32[(((buf)+(44))>>2)]=stat.blocks;
HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0;
HEAP32[(((buf)+(52))>>2)]=0;
HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0;
HEAP32[(((buf)+(60))>>2)]=0;
HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0;
HEAP32[(((buf)+(68))>>2)]=0;
HEAP32[(((buf)+(72))>>2)]=stat.ino;
return 0;
},doMsync:function (addr, stream, len, flags) {
var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));
FS.msync(stream, buffer, 0, len, flags);
},doMkdir:function (path, mode) {
// remove a trailing slash, if one - /a/b/ has basename of '', but
// we want to create b in the context of this function
path = PATH.normalize(path);
if (path[path.length-1] === '/') path = path.substr(0, path.length-1);
FS.mkdir(path, mode, 0);
return 0;
},doMknod:function (path, mode, dev) {
// we don't want this in the JS API as it uses mknod to create all nodes.
switch (mode & 61440) {
case 32768:
case 8192:
case 24576:
case 4096:
case 49152:
break;
default: return -ERRNO_CODES.EINVAL;
}
FS.mknod(path, mode, dev);
return 0;
},doReadlink:function (path, buf, bufsize) {
if (bufsize <= 0) return -ERRNO_CODES.EINVAL;
var ret = FS.readlink(path);
ret = ret.slice(0, Math.max(0, bufsize));
writeStringToMemory(ret, buf, true);
return ret.length;
},doAccess:function (path, amode) {
if (amode & ~7) {
// need a valid mode
return -ERRNO_CODES.EINVAL;
}
var node;
var lookup = FS.lookupPath(path, { follow: true });
node = lookup.node;
var perms = '';
if (amode & 4) perms += 'r';
if (amode & 2) perms += 'w';
if (amode & 1) perms += 'x';
if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) {
return -ERRNO_CODES.EACCES;
}
return 0;
},doDup:function (path, flags, suggestFD) {
var suggest = FS.getStream(suggestFD);
if (suggest) FS.close(suggest);
return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
},doReadv:function (stream, iov, iovcnt, offset) {
var ret = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
var curr = FS.read(stream, HEAP8,ptr, len, offset);
if (curr < 0) return -1;
ret += curr;
if (curr < len) break; // nothing more to read
}
return ret;
},doWritev:function (stream, iov, iovcnt, offset) {
var ret = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
var curr = FS.write(stream, HEAP8,ptr, len, offset);
if (curr < 0) return -1;
ret += curr;
}
return ret;
},varargs:0,get:function (varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function () {
var ret = Pointer_stringify(SYSCALLS.get());
return ret;
},getStreamFromFD:function () {
var stream = FS.getStream(SYSCALLS.get());
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return stream;
},getSocketFromFD:function () {
var socket = SOCKFS.getSocket(SYSCALLS.get());
if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return socket;
},getSocketAddress:function (allowNull) {
var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get();
if (allowNull && addrp === 0) return null;
var info = __read_sockaddr(addrp, addrlen);
if (info.errno) throw new FS.ErrnoError(info.errno);
info.addr = DNS.lookup_addr(info.addr) || info.addr;
return info;
},get64:function () {
var low = SYSCALLS.get(), high = SYSCALLS.get();
if (low >= 0) assert(high === 0);
else assert(high === -1);
return low;
},getZero:function () {
assert(SYSCALLS.get() === 0);
}};function ___syscall192(which, varargs) {SYSCALLS.varargs = varargs;
try {
// mmap2
var addr = SYSCALLS.get(), len = SYSCALLS.get(), prot = SYSCALLS.get(), flags = SYSCALLS.get(), fd = SYSCALLS.get(), off = SYSCALLS.get()
off <<= 12; // undo pgoffset
var ptr;
var allocated = false;
if (fd === -1) {
ptr = _malloc(len);
if (!ptr) return -ERRNO_CODES.ENOMEM;
_memset(ptr, 0, len);
allocated = true;
} else {
var info = FS.getStream(fd);
if (!info) return -ERRNO_CODES.EBADF;
var res = FS.mmap(info, HEAPU8, addr, len, off, prot, flags);
ptr = res.ptr;
allocated = res.allocated;
}
SYSCALLS.mappings[ptr] = { malloc: ptr, len: len, allocated: allocated, fd: fd, flags: flags };
return ptr;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall195(which, varargs) {SYSCALLS.varargs = varargs;
try {
// SYS_stat64
var path = SYSCALLS.getStr(), buf = SYSCALLS.get();
return SYSCALLS.doStat(FS.stat, path, buf);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall194(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ftruncate64
var fd = SYSCALLS.get(), zero = SYSCALLS.getZero(), length = SYSCALLS.get64();
FS.ftruncate(fd, length);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall197(which, varargs) {SYSCALLS.varargs = varargs;
try {
// SYS_fstat64
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get();
return SYSCALLS.doStat(FS.stat, stream.path, buf);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall202(which, varargs) {SYSCALLS.varargs = varargs;
try {
// getgid32
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}function ___syscall199() {
return ___syscall202.apply(null, arguments)
}
function ___assert_fail(condition, filename, line, func) {
ABORT = true;
throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace();
}
function _pthread_mutex_init() {}
function ___syscall91(which, varargs) {SYSCALLS.varargs = varargs;
try {
// munmap
var addr = SYSCALLS.get(), len = SYSCALLS.get();
// TODO: support unmmap'ing parts of allocations
var info = SYSCALLS.mappings[addr];
if (!info) return 0;
if (len === info.len) {
var stream = FS.getStream(info.fd);
SYSCALLS.doMsync(addr, stream, len, info.flags)
FS.munmap(stream);
SYSCALLS.mappings[addr] = null;
if (info.allocated) {
_free(info.malloc);
}
}
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
var _UItoD=true;
function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;
try {
// close
var stream = SYSCALLS.getStreamFromFD();
FS.close(stream);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ioctl
var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get();
switch (op) {
case 21505: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0;
}
case 21506: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0; // no-op, not actually adjusting terminal settings
}
case 21519: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
var argp = SYSCALLS.get();
HEAP32[((argp)>>2)]=0;
return 0;
}
case 21520: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return -ERRNO_CODES.EINVAL; // not supported
}
case 21531: {
var argp = SYSCALLS.get();
return FS.ioctl(stream, op, argp);
}
default: abort('bad ioctl syscall ' + op);
}
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
var ___tm_current=allocate(44, "i8", ALLOC_STATIC);
var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);
var _tzname=allocate(8, "i32*", ALLOC_STATIC);
var _daylight=allocate(1, "i32*", ALLOC_STATIC);
var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() {
// TODO: Use (malleable) environment variables instead of system settings.
if (_tzset.called) return;
_tzset.called = true;
HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60;
var winter = new Date(2000, 0, 1);
var summer = new Date(2000, 6, 1);
HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset());
function extractZone(date) {
var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
return match ? match[1] : "GMT";
};
var winterName = extractZone(winter);
var summerName = extractZone(summer);
var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL);
var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL);
if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) {
// Northern hemisphere
HEAP32[((_tzname)>>2)]=winterNamePtr;
HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr;
} else {
HEAP32[((_tzname)>>2)]=summerNamePtr;
HEAP32[(((_tzname)+(4))>>2)]=winterNamePtr;
}
}function _localtime_r(time, tmPtr) {
_tzset();
var date = new Date(HEAP32[((time)>>2)]*1000);
HEAP32[((tmPtr)>>2)]=date.getSeconds();
HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes();
HEAP32[(((tmPtr)+(8))>>2)]=date.getHours();
HEAP32[(((tmPtr)+(12))>>2)]=date.getDate();
HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth();
HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900;
HEAP32[(((tmPtr)+(24))>>2)]=date.getDay();
var start = new Date(date.getFullYear(), 0, 1);
var yday = ((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24))|0;
HEAP32[(((tmPtr)+(28))>>2)]=yday;
HEAP32[(((tmPtr)+(36))>>2)]=-(date.getTimezoneOffset() * 60);
// DST is in December in South
var summerOffset = new Date(2000, 6, 1).getTimezoneOffset();
var winterOffset = start.getTimezoneOffset();
var dst = (date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0;
HEAP32[(((tmPtr)+(32))>>2)]=dst;
var zonePtr = HEAP32[(((_tzname)+(dst ? Runtime.QUANTUM_SIZE : 0))>>2)];
HEAP32[(((tmPtr)+(40))>>2)]=zonePtr;
return tmPtr;
}function _localtime(time) {
return _localtime_r(time, ___tm_current);
}
function ___syscall77(which, varargs) {SYSCALLS.varargs = varargs;
try {
// getrusage
var who = SYSCALLS.get(), usage = SYSCALLS.get();
_memset(usage, 0, 136);
HEAP32[((usage)>>2)]=1; // fake some values
HEAP32[(((usage)+(4))>>2)]=2;
HEAP32[(((usage)+(8))>>2)]=3;
HEAP32[(((usage)+(12))>>2)]=4;
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
Module["_bitshift64Ashr"] = _bitshift64Ashr;
Module["_bitshift64Lshr"] = _bitshift64Lshr;
function ___syscall33(which, varargs) {SYSCALLS.varargs = varargs;
try {
// access
var path = SYSCALLS.getStr(), amode = SYSCALLS.get();
return SYSCALLS.doAccess(path, amode);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
var _BDtoIHigh=true;
function _pthread_cleanup_push(routine, arg) {
__ATEXIT__.push(function() { Runtime.dynCall('vi', routine, [arg]) })
_pthread_cleanup_push.level = __ATEXIT__.length;
}
var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) {
// WARNING: Arbitrary limit!
var MAX_ENV_VALUES = 64;
var TOTAL_ENV_SIZE = 1024;
// Statically allocate memory for the environment.
var poolPtr;
var envPtr;
if (!___buildEnvironment.called) {
___buildEnvironment.called = true;
// Set default values. Use string keys for Closure Compiler compatibility.
ENV['USER'] = ENV['LOGNAME'] = 'web_user';
ENV['PATH'] = '/';
ENV['PWD'] = '/';
ENV['HOME'] = '/home/web_user';
ENV['LANG'] = 'C';
ENV['_'] = Module['thisProgram'];
// Allocate memory.
poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
envPtr = allocate(MAX_ENV_VALUES * 4,
'i8*', ALLOC_STATIC);
HEAP32[((envPtr)>>2)]=poolPtr;
HEAP32[((_environ)>>2)]=envPtr;
} else {
envPtr = HEAP32[((_environ)>>2)];
poolPtr = HEAP32[((envPtr)>>2)];
}
// Collect key=value lines.
var strings = [];
var totalSize = 0;
for (var key in env) {
if (typeof env[key] === 'string') {
var line = key + '=' + env[key];
strings.push(line);
totalSize += line.length;
}
}
if (totalSize > TOTAL_ENV_SIZE) {
throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
}
// Make new.
var ptrSize = 4;
for (var i = 0; i < strings.length; i++) {
var line = strings[i];
writeAsciiToMemory(line, poolPtr);
HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
poolPtr += line.length + 1;
}
HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
}var ENV={};function _getenv(name) {
// char *getenv(const char *name);
// http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
if (name === 0) return 0;
name = Pointer_stringify(name);
if (!ENV.hasOwnProperty(name)) return 0;
if (_getenv.ret) _free(_getenv.ret);
_getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL);
return _getenv.ret;
}
function _gettimeofday(ptr) {
var now = Date.now();
HEAP32[((ptr)>>2)]=(now/1000)|0; // seconds
HEAP32[(((ptr)+(4))>>2)]=((now % 1000)*1000)|0; // microseconds
return 0;
}
function _pthread_mutex_unlock() {}
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
return dest;
}
Module["_memcpy"] = _memcpy;
function ___syscall191(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ugetrlimit
var resource = SYSCALLS.get(), rlim = SYSCALLS.get();
HEAP32[((rlim)>>2)]=-1; // RLIM_INFINITY
HEAP32[(((rlim)+(4))>>2)]=-1; // RLIM_INFINITY
HEAP32[(((rlim)+(8))>>2)]=-1; // RLIM_INFINITY
HEAP32[(((rlim)+(12))>>2)]=-1; // RLIM_INFINITY
return 0; // just report no limits
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _sbrk(bytes) {
// Implement a Linux-like 'memory area' for our 'process'.
// Changes the size of the memory area by |bytes|; returns the
// address of the previous top ('break') of the memory area
// We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
var self = _sbrk;
if (!self.called) {
DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
self.called = true;
assert(Runtime.dynamicAlloc);
self.alloc = Runtime.dynamicAlloc;
Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
}
var ret = DYNAMICTOP;
if (bytes != 0) {
var success = self.alloc(bytes);
if (!success) return -1 >>> 0; // sbrk failure code
}
return ret; // Previous break location.
}
Module["_memmove"] = _memmove;
var _BItoD=true;
function _pthread_mutex_destroy() {}
function ___syscall201() {
return ___syscall202.apply(null, arguments)
}
var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};function ___syscall64(which, varargs) {SYSCALLS.varargs = varargs;
try {
// getppid
return PROCINFO.ppid;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _sysconf(name) {
// long sysconf(int name);
// http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
switch(name) {
case 30: return PAGE_SIZE;
case 85: return totalMemory / PAGE_SIZE;
case 132:
case 133:
case 12:
case 137:
case 138:
case 15:
case 235:
case 16:
case 17:
case 18:
case 19:
case 20:
case 149:
case 13:
case 10:
case 236:
case 153:
case 9:
case 21:
case 22:
case 159:
case 154:
case 14:
case 77:
case 78:
case 139:
case 80:
case 81:
case 82:
case 68:
case 67:
case 164:
case 11:
case 29:
case 47:
case 48:
case 95:
case 52:
case 51:
case 46:
return 200809;
case 79:
return 0;
case 27:
case 246:
case 127:
case 128:
case 23:
case 24:
case 160:
case 161:
case 181:
case 182:
case 242:
case 183:
case 184:
case 243:
case 244:
case 245:
case 165:
case 178:
case 179:
case 49:
case 50:
case 168:
case 169:
case 175:
case 170:
case 171:
case 172:
case 97:
case 76:
case 32:
case 173:
case 35:
return -1;
case 176:
case 177:
case 7:
case 155:
case 8:
case 157:
case 125:
case 126:
case 92:
case 93:
case 129:
case 130:
case 131:
case 94:
case 91:
return 1;
case 74:
case 60:
case 69:
case 70:
case 4:
return 1024;
case 31:
case 42:
case 72:
return 32;
case 87:
case 26:
case 33:
return 2147483647;
case 34:
case 1:
return 47839;
case 38:
case 36:
return 99;
case 43:
case 37:
return 2048;
case 0: return 2097152;
case 3: return 65536;
case 28: return 32768;
case 44: return 32767;
case 75: return 16384;
case 39: return 1000;
case 89: return 700;
case 71: return 256;
case 40: return 255;
case 2: return 100;
case 180: return 64;
case 25: return 20;
case 5: return 16;
case 6: return 6;
case 73: return 4;
case 84: {
if (typeof navigator === 'object') return navigator['hardwareConcurrency'] || 1;
return 1;
}
}
___setErrNo(ERRNO_CODES.EINVAL);
return -1;
}
function ___syscall63(which, varargs) {SYSCALLS.varargs = varargs;
try {
// dup2
var old = SYSCALLS.getStreamFromFD(), suggestFD = SYSCALLS.get();
if (old.fd === suggestFD) return suggestFD;
return SYSCALLS.doDup(old.path, old.flags, suggestFD);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall20(which, varargs) {SYSCALLS.varargs = varargs;
try {
// getpid
return PROCINFO.pid;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
Module["_memset"] = _memset;
var _BDtoILow=true;
function ___syscall75(which, varargs) {SYSCALLS.varargs = varargs;
try {
// setrlimit
return 0; // no-op
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _atexit(func, arg) {
__ATEXIT__.unshift({ func: func, arg: arg });
}
function _abort() {
Module['abort']();
}
function ___lock() {}
function ___unlock() {}
var _floor=Math_floor;
var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_STATIC);
Module["_llvm_cttz_i32"] = _llvm_cttz_i32;
function _emscripten_set_main_loop_timing(mode, value) {
Browser.mainLoop.timingMode = mode;
Browser.mainLoop.timingValue = value;
if (!Browser.mainLoop.func) {
console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.');
return 1; // Return non-zero on failure, can't set timing mode when there is no main loop.
}
if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) {
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() {
setTimeout(Browser.mainLoop.runner, value); // doing this each time means that on exception, we stop
};
Browser.mainLoop.method = 'timeout';
} else if (mode == 1 /*EM_TIMING_RAF*/) {
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() {
Browser.requestAnimationFrame(Browser.mainLoop.runner);
};
Browser.mainLoop.method = 'rAF';
} else if (mode == 2 /*EM_TIMING_SETIMMEDIATE*/) {
if (!window['setImmediate']) {
// Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed)
var setImmediates = [];
var emscriptenMainLoopMessageId = '__emcc';
function Browser_setImmediate_messageHandler(event) {
if (event.source === window && event.data === emscriptenMainLoopMessageId) {
event.stopPropagation();
setImmediates.shift()();
}
}
window.addEventListener("message", Browser_setImmediate_messageHandler, true);
window['setImmediate'] = function Browser_emulated_setImmediate(func) {
setImmediates.push(func);
window.postMessage(emscriptenMainLoopMessageId, "*");
}
}
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {
window['setImmediate'](Browser.mainLoop.runner);
};
Browser.mainLoop.method = 'immediate';
}
return 0;
}function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) {
Module['noExitRuntime'] = true;
assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.');
Browser.mainLoop.func = func;
Browser.mainLoop.arg = arg;
var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop;
Browser.mainLoop.runner = function Browser_mainLoop_runner() {
if (ABORT) return;
if (Browser.mainLoop.queue.length > 0) {
var start = Date.now();
var blocker = Browser.mainLoop.queue.shift();
blocker.func(blocker.arg);
if (Browser.mainLoop.remainingBlockers) {
var remaining = Browser.mainLoop.remainingBlockers;
var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining);
if (blocker.counted) {
Browser.mainLoop.remainingBlockers = next;
} else {
// not counted, but move the progress along a tiny bit
next = next + 0.5; // do not steal all the next one's progress
Browser.mainLoop.remainingBlockers = (8*remaining + next)/9;
}
}
console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers);
Browser.mainLoop.updateStatus();
// catches pause/resume main loop from blocker execution
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
setTimeout(Browser.mainLoop.runner, 0);
return;
}
// catch pauses from non-main loop sources
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
// Implement very basic swap interval control
Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0;
if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) {
// Not the scheduled time to render this frame - skip.
Browser.mainLoop.scheduler();
return;
}
// Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize
// VBO double-buffering and reduce GPU stalls.
if (Browser.mainLoop.method === 'timeout' && Module.ctx) {
Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!');
Browser.mainLoop.method = ''; // just warn once per call to set main loop
}
Browser.mainLoop.runIter(function() {
if (typeof arg !== 'undefined') {
Runtime.dynCall('vi', func, [arg]);
} else {
Runtime.dynCall('v', func);
}
});
// catch pauses from the main loop itself
if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;
// Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able
// to queue the newest produced audio samples.
// TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData()
// do not need to be hardcoded into this function, but can be more generic.
if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData();
Browser.mainLoop.scheduler();
}
if (!noSetTiming) {
if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps);
else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating)
Browser.mainLoop.scheduler();
}
if (simulateInfiniteLoop) {
throw 'SimulateInfiniteLoop';
}
}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () {
Browser.mainLoop.scheduler = null;
Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return.
},resume:function () {
Browser.mainLoop.currentlyRunningMainloop++;
var timingMode = Browser.mainLoop.timingMode;
var timingValue = Browser.mainLoop.timingValue;
var func = Browser.mainLoop.func;
Browser.mainLoop.func = null;
_emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */);
_emscripten_set_main_loop_timing(timingMode, timingValue);
Browser.mainLoop.scheduler();
},updateStatus:function () {
if (Module['setStatus']) {
var message = Module['statusMessage'] || 'Please wait...';
var remaining = Browser.mainLoop.remainingBlockers;
var expected = Browser.mainLoop.expectedBlockers;
if (remaining) {
if (remaining < expected) {
Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
} else {
Module['setStatus'](message);
}
} else {
Module['setStatus']('');
}
}
},runIter:function (func) {
if (ABORT) return;
if (Module['preMainLoop']) {
var preRet = Module['preMainLoop']();
if (preRet === false) {
return; // |return false| skips a frame
}
}
try {
func();
} catch (e) {
if (e instanceof ExitStatus) {
return;
} else {
if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
throw e;
}
}
if (Module['postMainLoop']) Module['postMainLoop']();
}},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
if (Browser.initted) return;
Browser.initted = true;
try {
new Blob();
Browser.hasBlobConstructor = true;
} catch(e) {
Browser.hasBlobConstructor = false;
console.log("warning: no blob constructor, cannot create blobs with mimetypes");
}
Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
Module.noImageDecoding = true;
}
// Support for plugins that can process preloaded files. You can add more of these to
// your app by creating and appending to Module.preloadPlugins.
//
// Each plugin is asked if it can handle a file based on the file's name. If it can,
// it is given the file's raw data. When it is done, it calls a callback with the file's
// (possibly modified) data. For example, a plugin might decompress a file, or it
// might create some side data structure for use later (like an Image element, etc.).
var imagePlugin = {};
imagePlugin['canHandle'] = function imagePlugin_canHandle(name) {
return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
};
imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) {
var b = null;
if (Browser.hasBlobConstructor) {
try {
b = new Blob([byteArray], { type: Browser.getMimetype(name) });
if (b.size !== byteArray.length) { // Safari bug #118630
// Safari's Blob can only take an ArrayBuffer
b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
}
} catch(e) {
Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
}
}
if (!b) {
var bb = new Browser.BlobBuilder();
bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
b = bb.getBlob();
}
var url = Browser.URLObject.createObjectURL(b);
assert(typeof url == 'string', 'createObjectURL must return a url as a string');
var img = new Image();
img.onload = function img_onload() {
assert(img.complete, 'Image ' + name + ' could not be decoded');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
Module["preloadedImages"][name] = canvas;
Browser.URLObject.revokeObjectURL(url);
if (onload) onload(byteArray);
};
img.onerror = function img_onerror(event) {
console.log('Image ' + url + ' could not be decoded');
if (onerror) onerror();
};
img.src = url;
};
Module['preloadPlugins'].push(imagePlugin);
var audioPlugin = {};
audioPlugin['canHandle'] = function audioPlugin_canHandle(name) {
return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
};
audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) {
var done = false;
function finish(audio) {
if (done) return;
done = true;
Module["preloadedAudios"][name] = audio;
if (onload) onload(byteArray);
}
function fail() {
if (done) return;
done = true;
Module["preloadedAudios"][name] = new Audio(); // empty shim
if (onerror) onerror();
}
if (Browser.hasBlobConstructor) {
try {
var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
} catch(e) {
return fail();
}
var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
assert(typeof url == 'string', 'createObjectURL must return a url as a string');
var audio = new Audio();
audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
audio.onerror = function audio_onerror(event) {
if (done) return;
console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
function encode64(data) {
var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var PAD = '=';
var ret = '';
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < data.length; i++) {
leftchar = (leftchar << 8) | data[i];
leftbits += 8;
while (leftbits >= 6) {
var curr = (leftchar >> (leftbits-6)) & 0x3f;
leftbits -= 6;
ret += BASE[curr];
}
}
if (leftbits == 2) {
ret += BASE[(leftchar&3) << 4];
ret += PAD + PAD;
} else if (leftbits == 4) {
ret += BASE[(leftchar&0xf) << 2];
ret += PAD;
}
return ret;
}
audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
finish(audio); // we don't wait for confirmation this worked - but it's worth trying
};
audio.src = url;
// workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
Browser.safeSetTimeout(function() {
finish(audio); // try to use it even though it is not necessarily ready to play
}, 10000);
} else {
return fail();
}
};
Module['preloadPlugins'].push(audioPlugin);
// Canvas event setup
var canvas = Module['canvas'];
function pointerLockChange() {
Browser.pointerLock = document['pointerLockElement'] === canvas ||
document['mozPointerLockElement'] === canvas ||
document['webkitPointerLockElement'] === canvas ||
document['msPointerLockElement'] === canvas;
}
if (canvas) {
// forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
// Module['forcedAspectRatio'] = 4 / 3;
canvas.requestPointerLock = canvas['requestPointerLock'] ||
canvas['mozRequestPointerLock'] ||
canvas['webkitRequestPointerLock'] ||
canvas['msRequestPointerLock'] ||
function(){};
canvas.exitPointerLock = document['exitPointerLock'] ||
document['mozExitPointerLock'] ||
document['webkitExitPointerLock'] ||
document['msExitPointerLock'] ||
function(){}; // no-op if function does not exist
canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
document.addEventListener('pointerlockchange', pointerLockChange, false);
document.addEventListener('mozpointerlockchange', pointerLockChange, false);
document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
document.addEventListener('mspointerlockchange', pointerLockChange, false);
if (Module['elementPointerLock']) {
canvas.addEventListener("click", function(ev) {
if (!Browser.pointerLock && canvas.requestPointerLock) {
canvas.requestPointerLock();
ev.preventDefault();
}
}, false);
}
}
},createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) {
if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas.
var ctx;
var contextHandle;
if (useWebGL) {
// For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults.
var contextAttributes = {
antialias: false,
alpha: false
};
if (webGLContextAttributes) {
for (var attribute in webGLContextAttributes) {
contextAttributes[attribute] = webGLContextAttributes[attribute];
}
}
contextHandle = GL.createContext(canvas, contextAttributes);
if (contextHandle) {
ctx = GL.getContext(contextHandle).GLctx;
}
// Set the background of the WebGL canvas to black
canvas.style.backgroundColor = "black";
} else {
ctx = canvas.getContext('2d');
}
if (!ctx) return null;
if (setInModule) {
if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it');
Module.ctx = ctx;
if (useWebGL) GL.makeContextCurrent(contextHandle);
Module.useWebGL = useWebGL;
Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
Browser.init();
}
return ctx;
},destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) {
Browser.lockPointer = lockPointer;
Browser.resizeCanvas = resizeCanvas;
Browser.vrDevice = vrDevice;
if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null;
var canvas = Module['canvas'];
function fullScreenChange() {
Browser.isFullScreen = false;
var canvasContainer = canvas.parentNode;
if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
document['fullScreenElement'] || document['fullscreenElement'] ||
document['msFullScreenElement'] || document['msFullscreenElement'] ||
document['webkitCurrentFullScreenElement']) === canvasContainer) {
canvas.cancelFullScreen = document['cancelFullScreen'] ||
document['mozCancelFullScreen'] ||
document['webkitCancelFullScreen'] ||
document['msExitFullscreen'] ||
document['exitFullscreen'] ||
function() {};
canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
if (Browser.lockPointer) canvas.requestPointerLock();
Browser.isFullScreen = true;
if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
} else {
// remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen
canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
canvasContainer.parentNode.removeChild(canvasContainer);
if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();
}
if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
Browser.updateCanvasDimensions(canvas);
}
if (!Browser.fullScreenHandlersInstalled) {
Browser.fullScreenHandlersInstalled = true;
document.addEventListener('fullscreenchange', fullScreenChange, false);
document.addEventListener('mozfullscreenchange', fullScreenChange, false);
document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
document.addEventListener('MSFullscreenChange', fullScreenChange, false);
}
// create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root
var canvasContainer = document.createElement("div");
canvas.parentNode.insertBefore(canvasContainer, canvas);
canvasContainer.appendChild(canvas);
// use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] ||
canvasContainer['mozRequestFullScreen'] ||
canvasContainer['msRequestFullscreen'] ||
(canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
if (vrDevice) {
canvasContainer.requestFullScreen({ vrDisplay: vrDevice });
} else {
canvasContainer.requestFullScreen();
}
},nextRAF:0,fakeRequestAnimationFrame:function (func) {
// try to keep 60fps between calls to here
var now = Date.now();
if (Browser.nextRAF === 0) {
Browser.nextRAF = now + 1000/60;
} else {
while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0
Browser.nextRAF += 1000/60;
}
}
var delay = Math.max(Browser.nextRAF - now, 0);
setTimeout(func, delay);
},requestAnimationFrame:function requestAnimationFrame(func) {
if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js)
Browser.fakeRequestAnimationFrame(func);
} else {
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = window['requestAnimationFrame'] ||
window['mozRequestAnimationFrame'] ||
window['webkitRequestAnimationFrame'] ||
window['msRequestAnimationFrame'] ||
window['oRequestAnimationFrame'] ||
Browser.fakeRequestAnimationFrame;
}
window.requestAnimationFrame(func);
}
},safeCallback:function (func) {
return function() {
if (!ABORT) return func.apply(null, arguments);
};
},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () {
Browser.allowAsyncCallbacks = false;
},resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now
Browser.allowAsyncCallbacks = true;
if (Browser.queuedAsyncCallbacks.length > 0) {
var callbacks = Browser.queuedAsyncCallbacks;
Browser.queuedAsyncCallbacks = [];
callbacks.forEach(function(func) {
func();
});
}
},safeRequestAnimationFrame:function (func) {
return Browser.requestAnimationFrame(function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func();
} else {
Browser.queuedAsyncCallbacks.push(func);
}
});
},safeSetTimeout:function (func, timeout) {
Module['noExitRuntime'] = true;
return setTimeout(function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func();
} else {
Browser.queuedAsyncCallbacks.push(func);
}
}, timeout);
},safeSetInterval:function (func, timeout) {
Module['noExitRuntime'] = true;
return setInterval(function() {
if (ABORT) return;
if (Browser.allowAsyncCallbacks) {
func();
} // drop it on the floor otherwise, next interval will kick in
}, timeout);
},getMimetype:function (name) {
return {
'jpg': 'image/jpeg',
'jpeg': 'image/jpeg',
'png': 'image/png',
'bmp': 'image/bmp',
'ogg': 'audio/ogg',
'wav': 'audio/wav',
'mp3': 'audio/mpeg'
}[name.substr(name.lastIndexOf('.')+1)];
},getUserMedia:function (func) {
if(!window.getUserMedia) {
window.getUserMedia = navigator['getUserMedia'] ||
navigator['mozGetUserMedia'];
}
window.getUserMedia(func);
},getMovementX:function (event) {
return event['movementX'] ||
event['mozMovementX'] ||
event['webkitMovementX'] ||
0;
},getMovementY:function (event) {
return event['movementY'] ||
event['mozMovementY'] ||
event['webkitMovementY'] ||
0;
},getMouseWheelDelta:function (event) {
var delta = 0;
switch (event.type) {
case 'DOMMouseScroll':
delta = event.detail;
break;
case 'mousewheel':
delta = event.wheelDelta;
break;
case 'wheel':
delta = event['deltaY'];
break;
default:
throw 'unrecognized mouse wheel event: ' + event.type;
}
return delta;
},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
if (Browser.pointerLock) {
// When the pointer is locked, calculate the coordinates
// based on the movement of the mouse.
// Workaround for Firefox bug 764498
if (event.type != 'mousemove' &&
('mozMovementX' in event)) {
Browser.mouseMovementX = Browser.mouseMovementY = 0;
} else {
Browser.mouseMovementX = Browser.getMovementX(event);
Browser.mouseMovementY = Browser.getMovementY(event);
}
// check if SDL is available
if (typeof SDL != "undefined") {
Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
} else {
// just add the mouse delta to the current absolut mouse position
// FIXME: ideally this should be clamped against the canvas size and zero
Browser.mouseX += Browser.mouseMovementX;
Browser.mouseY += Browser.mouseMovementY;
}
} else {
// Otherwise, calculate the movement based on the changes
// in the coordinates.
var rect = Module["canvas"].getBoundingClientRect();
var cw = Module["canvas"].width;
var ch = Module["canvas"].height;
// Neither .scrollX or .pageXOffset are defined in a spec, but
// we prefer .scrollX because it is currently in a spec draft.
// (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/)
var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset);
var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset);
// If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset
// and we have no viable fallback.
assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.');
if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') {
var touch = event.touch;
if (touch === undefined) {
return; // the "touch" property is only defined in SDL
}
var adjustedX = touch.pageX - (scrollX + rect.left);
var adjustedY = touch.pageY - (scrollY + rect.top);
adjustedX = adjustedX * (cw / rect.width);
adjustedY = adjustedY * (ch / rect.height);
var coords = { x: adjustedX, y: adjustedY };
if (event.type === 'touchstart') {
Browser.lastTouches[touch.identifier] = coords;
Browser.touches[touch.identifier] = coords;
} else if (event.type === 'touchend' || event.type === 'touchmove') {
var last = Browser.touches[touch.identifier];
if (!last) last = coords;
Browser.lastTouches[touch.identifier] = last;
Browser.touches[touch.identifier] = coords;
}
return;
}
var x = event.pageX - (scrollX + rect.left);
var y = event.pageY - (scrollY + rect.top);
// the canvas might be CSS-scaled compared to its backbuffer;
// SDL-using content will want mouse coordinates in terms
// of backbuffer units.
x = x * (cw / rect.width);
y = y * (ch / rect.height);
Browser.mouseMovementX = x - Browser.mouseX;
Browser.mouseMovementY = y - Browser.mouseY;
Browser.mouseX = x;
Browser.mouseY = y;
}
},xhrLoad:function (url, onload, onerror) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function xhr_onload() {
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
onload(xhr.response);
} else {
onerror();
}
};
xhr.onerror = onerror;
xhr.send(null);
},asyncLoad:function (url, onload, onerror, noRunDep) {
Browser.xhrLoad(url, function(arrayBuffer) {
assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
onload(new Uint8Array(arrayBuffer));
if (!noRunDep) removeRunDependency('al ' + url);
}, function(event) {
if (onerror) {
onerror();
} else {
throw 'Loading data file "' + url + '" failed.';
}
});
if (!noRunDep) addRunDependency('al ' + url);
},resizeListeners:[],updateResizeListeners:function () {
var canvas = Module['canvas'];
Browser.resizeListeners.forEach(function(listener) {
listener(canvas.width, canvas.height);
});
},setCanvasSize:function (width, height, noUpdates) {
var canvas = Module['canvas'];
Browser.updateCanvasDimensions(canvas, width, height);
if (!noUpdates) Browser.updateResizeListeners();
},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
// check if SDL is available
if (typeof SDL != "undefined") {
var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
}
Browser.updateResizeListeners();
},setWindowedCanvasSize:function () {
// check if SDL is available
if (typeof SDL != "undefined") {
var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
}
Browser.updateResizeListeners();
},updateCanvasDimensions:function (canvas, wNative, hNative) {
if (wNative && hNative) {
canvas.widthNative = wNative;
canvas.heightNative = hNative;
} else {
wNative = canvas.widthNative;
hNative = canvas.heightNative;
}
var w = wNative;
var h = hNative;
if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) {
if (w/h < Module['forcedAspectRatio']) {
w = Math.round(h * Module['forcedAspectRatio']);
} else {
h = Math.round(w / Module['forcedAspectRatio']);
}
}
if (((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
document['fullScreenElement'] || document['fullscreenElement'] ||
document['msFullScreenElement'] || document['msFullscreenElement'] ||
document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) {
var factor = Math.min(screen.width / w, screen.height / h);
w = Math.round(w * factor);
h = Math.round(h * factor);
}
if (Browser.resizeCanvas) {
if (canvas.width != w) canvas.width = w;
if (canvas.height != h) canvas.height = h;
if (typeof canvas.style != 'undefined') {
canvas.style.removeProperty( "width");
canvas.style.removeProperty("height");
}
} else {
if (canvas.width != wNative) canvas.width = wNative;
if (canvas.height != hNative) canvas.height = hNative;
if (typeof canvas.style != 'undefined') {
if (w != wNative || h != hNative) {
canvas.style.setProperty( "width", w + "px", "important");
canvas.style.setProperty("height", h + "px", "important");
} else {
canvas.style.removeProperty( "width");
canvas.style.removeProperty("height");
}
}
}
},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () {
var handle = Browser.nextWgetRequestHandle;
Browser.nextWgetRequestHandle++;
return handle;
}};
Module["_llvm_bswap_i32"] = _llvm_bswap_i32;
function ___syscall10(which, varargs) {SYSCALLS.varargs = varargs;
try {
// unlink
var path = SYSCALLS.getStr();
FS.unlink(path);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
Module["_bitshift64Shl"] = _bitshift64Shl;
function ___syscall3(which, varargs) {SYSCALLS.varargs = varargs;
try {
// read
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(), count = SYSCALLS.get();
return FS.read(stream, HEAP8,buf, count);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs;
try {
// open
var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO
var stream = FS.open(pathname, flags, mode);
return stream.fd;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall4(which, varargs) {SYSCALLS.varargs = varargs;
try {
// write
var stream = SYSCALLS.getStreamFromFD(), buf = SYSCALLS.get(), count = SYSCALLS.get();
return FS.write(stream, HEAP8,buf, count);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _llvm_stackrestore(p) {
var self = _llvm_stacksave;
var ret = self.LLVM_SAVEDSTACKS[p];
self.LLVM_SAVEDSTACKS.splice(p, 1);
Runtime.stackRestore(ret);
}
function _llvm_stacksave() {
var self = _llvm_stacksave;
if (!self.LLVM_SAVEDSTACKS) {
self.LLVM_SAVEDSTACKS = [];
}
self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());
return self.LLVM_SAVEDSTACKS.length-1;
}
function _clock() {
if (_clock.start === undefined) _clock.start = Date.now();
return ((Date.now() - _clock.start) * (1000000 / 1000))|0;
}
function _pthread_cleanup_pop() {
assert(_pthread_cleanup_push.level == __ATEXIT__.length, 'cannot pop if something else added meanwhile!');
__ATEXIT__.pop();
_pthread_cleanup_push.level = __ATEXIT__.length;
}
function ___syscall340(which, varargs) {SYSCALLS.varargs = varargs;
try {
// prlimit64
var pid = SYSCALLS.get(), resource = SYSCALLS.get(), new_limit = SYSCALLS.get(), old_limit = SYSCALLS.get();
if (old_limit) { // just report no limits
HEAP32[((old_limit)>>2)]=-1; // RLIM_INFINITY
HEAP32[(((old_limit)+(4))>>2)]=-1; // RLIM_INFINITY
HEAP32[(((old_limit)+(8))>>2)]=-1; // RLIM_INFINITY
HEAP32[(((old_limit)+(12))>>2)]=-1; // RLIM_INFINITY
}
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function __isLeapYear(year) {
return year%4 === 0 && (year%100 !== 0 || year%400 === 0);
}
function __arraySum(array, index) {
var sum = 0;
for (var i = 0; i <= index; sum += array[i++]);
return sum;
}
var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];
var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) {
var newDate = new Date(date.getTime());
while(days > 0) {
var leap = __isLeapYear(newDate.getFullYear());
var currentMonth = newDate.getMonth();
var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];
if (days > daysInCurrentMonth-newDate.getDate()) {
// we spill over to next month
days -= (daysInCurrentMonth-newDate.getDate()+1);
newDate.setDate(1);
if (currentMonth < 11) {
newDate.setMonth(currentMonth+1)
} else {
newDate.setMonth(0);
newDate.setFullYear(newDate.getFullYear()+1);
}
} else {
// we stay in current month
newDate.setDate(newDate.getDate()+days);
return newDate;
}
}
return newDate;
}function _strftime(s, maxsize, format, tm) {
// size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr);
// http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html
var tm_zone = HEAP32[(((tm)+(40))>>2)];
var date = {
tm_sec: HEAP32[((tm)>>2)],
tm_min: HEAP32[(((tm)+(4))>>2)],
tm_hour: HEAP32[(((tm)+(8))>>2)],
tm_mday: HEAP32[(((tm)+(12))>>2)],
tm_mon: HEAP32[(((tm)+(16))>>2)],
tm_year: HEAP32[(((tm)+(20))>>2)],
tm_wday: HEAP32[(((tm)+(24))>>2)],
tm_yday: HEAP32[(((tm)+(28))>>2)],
tm_isdst: HEAP32[(((tm)+(32))>>2)],
tm_gmtoff: HEAP32[(((tm)+(36))>>2)],
tm_zone: tm_zone ? Pointer_stringify(tm_zone) : ''
};
var pattern = Pointer_stringify(format);
// expand format
var EXPANSION_RULES_1 = {
'%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013
'%D': '%m/%d/%y', // Equivalent to %m / %d / %y
'%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d
'%h': '%b', // Equivalent to %b
'%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation
'%R': '%H:%M', // Replaced by the time in 24-hour notation
'%T': '%H:%M:%S', // Replaced by the time
'%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation
'%X': '%H:%M:%S' // Replaced by the locale's appropriate date representation
};
for (var rule in EXPANSION_RULES_1) {
pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]);
}
var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
function leadingSomething(value, digits, character) {
var str = typeof value === 'number' ? value.toString() : (value || '');
while (str.length < digits) {
str = character[0]+str;
}
return str;
};
function leadingNulls(value, digits) {
return leadingSomething(value, digits, '0');
};
function compareByDay(date1, date2) {
function sgn(value) {
return value < 0 ? -1 : (value > 0 ? 1 : 0);
};
var compare;
if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) {
if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) {
compare = sgn(date1.getDate()-date2.getDate());
}
}
return compare;
};
function getFirstWeekStartDate(janFourth) {
switch (janFourth.getDay()) {
case 0: // Sunday
return new Date(janFourth.getFullYear()-1, 11, 29);
case 1: // Monday
return janFourth;
case 2: // Tuesday
return new Date(janFourth.getFullYear(), 0, 3);
case 3: // Wednesday
return new Date(janFourth.getFullYear(), 0, 2);
case 4: // Thursday
return new Date(janFourth.getFullYear(), 0, 1);
case 5: // Friday
return new Date(janFourth.getFullYear()-1, 11, 31);
case 6: // Saturday
return new Date(janFourth.getFullYear()-1, 11, 30);
}
};
function getWeekBasedYear(date) {
var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4);
var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
// this date is after the start of the first week of this year
if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
return thisDate.getFullYear()+1;
} else {
return thisDate.getFullYear();
}
} else {
return thisDate.getFullYear()-1;
}
};
var EXPANSION_RULES_2 = {
'%a': function(date) {
return WEEKDAYS[date.tm_wday].substring(0,3);
},
'%A': function(date) {
return WEEKDAYS[date.tm_wday];
},
'%b': function(date) {
return MONTHS[date.tm_mon].substring(0,3);
},
'%B': function(date) {
return MONTHS[date.tm_mon];
},
'%C': function(date) {
var year = date.tm_year+1900;
return leadingNulls((year/100)|0,2);
},
'%d': function(date) {
return leadingNulls(date.tm_mday, 2);
},
'%e': function(date) {
return leadingSomething(date.tm_mday, 2, ' ');
},
'%g': function(date) {
// %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year.
// In this system, weeks begin on a Monday and week 1 of the year is the week that includes
// January 4th, which is also the week that includes the first Thursday of the year, and
// is also the first week that contains at least four days in the year.
// If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of
// the last week of the preceding year; thus, for Saturday 2nd January 1999,
// %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th,
// or 31st is a Monday, it and any following days are part of week 1 of the following year.
// Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01.
return getWeekBasedYear(date).toString().substring(2);
},
'%G': function(date) {
return getWeekBasedYear(date);
},
'%H': function(date) {
return leadingNulls(date.tm_hour, 2);
},
'%I': function(date) {
var twelveHour = date.tm_hour;
if (twelveHour == 0) twelveHour = 12;
else if (twelveHour > 12) twelveHour -= 12;
return leadingNulls(twelveHour, 2);
},
'%j': function(date) {
// Day of the year (001-366)
return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3);
},
'%m': function(date) {
return leadingNulls(date.tm_mon+1, 2);
},
'%M': function(date) {
return leadingNulls(date.tm_min, 2);
},
'%n': function() {
return '\n';
},
'%p': function(date) {
if (date.tm_hour >= 0 && date.tm_hour < 12) {
return 'AM';
} else {
return 'PM';
}
},
'%S': function(date) {
return leadingNulls(date.tm_sec, 2);
},
'%t': function() {
return '\t';
},
'%u': function(date) {
var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
return day.getDay() || 7;
},
'%U': function(date) {
// Replaced by the week number of the year as a decimal number [00,53].
// The first Sunday of January is the first day of week 1;
// days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
var janFirst = new Date(date.tm_year+1900, 0, 1);
var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay());
var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
// is target date after the first Sunday?
if (compareByDay(firstSunday, endDate) < 0) {
// calculate difference in days between first Sunday and endDate
var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
var firstSundayUntilEndJanuary = 31-firstSunday.getDate();
var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
return leadingNulls(Math.ceil(days/7), 2);
}
return compareByDay(firstSunday, janFirst) === 0 ? '01': '00';
},
'%V': function(date) {
// Replaced by the week number of the year (Monday as the first day of the week)
// as a decimal number [01,53]. If the week containing 1 January has four
// or more days in the new year, then it is considered week 1.
// Otherwise, it is the last week of the previous year, and the next week is week 1.
// Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday]
var janFourthThisYear = new Date(date.tm_year+1900, 0, 4);
var janFourthNextYear = new Date(date.tm_year+1901, 0, 4);
var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
// if given date is before this years first week, then it belongs to the 53rd week of last year
return '53';
}
if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
// if given date is after next years first week, then it belongs to the 01th week of next year
return '01';
}
// given date is in between CW 01..53 of this calendar year
var daysDifference;
if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) {
// first CW of this year starts last year
daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate()
} else {
// first CW of this year starts this year
daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate();
}
return leadingNulls(Math.ceil(daysDifference/7), 2);
},
'%w': function(date) {
var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
return day.getDay();
},
'%W': function(date) {
// Replaced by the week number of the year as a decimal number [00,53].
// The first Monday of January is the first day of week 1;
// days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
var janFirst = new Date(date.tm_year, 0, 1);
var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1);
var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
// is target date after the first Monday?
if (compareByDay(firstMonday, endDate) < 0) {
var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
var firstMondayUntilEndJanuary = 31-firstMonday.getDate();
var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
return leadingNulls(Math.ceil(days/7), 2);
}
return compareByDay(firstMonday, janFirst) === 0 ? '01': '00';
},
'%y': function(date) {
// Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year]
return (date.tm_year+1900).toString().substring(2);
},
'%Y': function(date) {
// Replaced by the year as a decimal number (for example, 1997). [ tm_year]
return date.tm_year+1900;
},
'%z': function(date) {
// Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ).
// For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich).
var off = date.tm_gmtoff;
var ahead = off >= 0;
off = Math.abs(off) / 60;
// convert from minutes into hhmm format (which means 60 minutes = 100 units)
off = (off / 60)*100 + (off % 60);
return (ahead ? '+' : '-') + String("0000" + off).slice(-4);
},
'%Z': function(date) {
return date.tm_zone;
},
'%%': function() {
return '%';
}
};
for (var rule in EXPANSION_RULES_2) {
if (pattern.indexOf(rule) >= 0) {
pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date));
}
}
var bytes = intArrayFromString(pattern, false);
if (bytes.length > maxsize) {
return 0;
}
writeArrayToMemory(bytes, s);
return bytes.length-1;
}
function _time(ptr) {
var ret = (Date.now()/1000)|0;
if (ptr) {
HEAP32[((ptr)>>2)]=ret;
}
return ret;
}
function ___syscall142(which, varargs) {SYSCALLS.varargs = varargs;
try {
// newselect
// readfds are supported,
// writefds checks socket open status
// exceptfds not supported
// timeout is always 0 - fully async
var nfds = SYSCALLS.get(), readfds = SYSCALLS.get(), writefds = SYSCALLS.get(), exceptfds = SYSCALLS.get(), timeout = SYSCALLS.get();
assert(nfds <= 64, 'nfds must be less than or equal to 64'); // fd sets have 64 bits // TODO: this could be 1024 based on current musl headers
assert(!exceptfds, 'exceptfds not supported');
var total = 0;
var srcReadLow = (readfds ? HEAP32[((readfds)>>2)] : 0),
srcReadHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0);
var srcWriteLow = (writefds ? HEAP32[((writefds)>>2)] : 0),
srcWriteHigh = (writefds ? HEAP32[(((writefds)+(4))>>2)] : 0);
var srcExceptLow = (exceptfds ? HEAP32[((exceptfds)>>2)] : 0),
srcExceptHigh = (exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0);
var dstReadLow = 0,
dstReadHigh = 0;
var dstWriteLow = 0,
dstWriteHigh = 0;
var dstExceptLow = 0,
dstExceptHigh = 0;
var allLow = (readfds ? HEAP32[((readfds)>>2)] : 0) |
(writefds ? HEAP32[((writefds)>>2)] : 0) |
(exceptfds ? HEAP32[((exceptfds)>>2)] : 0);
var allHigh = (readfds ? HEAP32[(((readfds)+(4))>>2)] : 0) |
(writefds ? HEAP32[(((writefds)+(4))>>2)] : 0) |
(exceptfds ? HEAP32[(((exceptfds)+(4))>>2)] : 0);
function check(fd, low, high, val) {
return (fd < 32 ? (low & val) : (high & val));
}
for (var fd = 0; fd < nfds; fd++) {
var mask = 1 << (fd % 32);
if (!(check(fd, allLow, allHigh, mask))) {
continue; // index isn't in the set
}
var stream = FS.getStream(fd);
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
var flags = SYSCALLS.DEFAULT_POLLMASK;
if (stream.stream_ops.poll) {
flags = stream.stream_ops.poll(stream);
}
if ((flags & 1) && check(fd, srcReadLow, srcReadHigh, mask)) {
fd < 32 ? (dstReadLow = dstReadLow | mask) : (dstReadHigh = dstReadHigh | mask);
total++;
}
if ((flags & 4) && check(fd, srcWriteLow, srcWriteHigh, mask)) {
fd < 32 ? (dstWriteLow = dstWriteLow | mask) : (dstWriteHigh = dstWriteHigh | mask);
total++;
}
if ((flags & 2) && check(fd, srcExceptLow, srcExceptHigh, mask)) {
fd < 32 ? (dstExceptLow = dstExceptLow | mask) : (dstExceptHigh = dstExceptHigh | mask);
total++;
}
}
if (readfds) {
HEAP32[((readfds)>>2)]=dstReadLow;
HEAP32[(((readfds)+(4))>>2)]=dstReadHigh;
}
if (writefds) {
HEAP32[((writefds)>>2)]=dstWriteLow;
HEAP32[(((writefds)+(4))>>2)]=dstWriteHigh;
}
if (exceptfds) {
HEAP32[((exceptfds)>>2)]=dstExceptLow;
HEAP32[(((exceptfds)+(4))>>2)]=dstExceptHigh;
}
return total;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _pthread_self() {
//FIXME: assumes only a single thread
return 0;
}
function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;
try {
// llseek
var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();
var offset = offset_low;
assert(offset_high === 0);
FS.llseek(stream, offset, whence);
HEAP32[((result)>>2)]=stream.position;
if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;
try {
// writev
var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
return SYSCALLS.doWritev(stream, iov, iovcnt);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs;
try {
// fcntl64
var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get();
switch (cmd) {
case 0: {
var arg = SYSCALLS.get();
if (arg < 0) {
return -ERRNO_CODES.EINVAL;
}
var newStream;
newStream = FS.open(stream.path, stream.flags, 0, arg);
return newStream.fd;
}
case 1:
case 2:
return 0; // FD_CLOEXEC makes no sense for a single process.
case 3:
return stream.flags;
case 4: {
var arg = SYSCALLS.get();
stream.flags |= arg;
return 0;
}
case 12:
case 12: {
var arg = SYSCALLS.get();
var offset = 0;
// We're always unlocked.
HEAP16[(((arg)+(offset))>>1)]=2;
return 0;
}
case 13:
case 14:
case 13:
case 14:
return 0; // Pretend that the locking is successful.
case 16:
case 8:
return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet.
case 9:
// musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves.
___setErrNo(ERRNO_CODES.EINVAL);
return -1;
default: {
return -ERRNO_CODES.EINVAL;
}
}
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs;
try {
// readv
var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
return SYSCALLS.doReadv(stream, iov, iovcnt);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink;
__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });
if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }
___buildEnvironment(ENV);
Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) };
Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) };
Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() };
Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() };
Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() }
Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
staticSealed = true; // seal the static portion of memory
STACK_MAX = STACK_BASE + TOTAL_STACK;
DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_iiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function invoke_iiii(index,a1,a2,a3) {
try {
return Module["dynCall_iiii"](index,a1,a2,a3);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viiiii(index,a1,a2,a3,a4,a5) {
try {
Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_vi(index,a1) {
try {
Module["dynCall_vi"](index,a1);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_vii(index,a1,a2) {
try {
Module["dynCall_vii"](index,a1,a2);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_ii(index,a1) {
try {
return Module["dynCall_ii"](index,a1);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viii(index,a1,a2,a3) {
try {
Module["dynCall_viii"](index,a1,a2,a3);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_v(index) {
try {
Module["dynCall_v"](index);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_iiiii(index,a1,a2,a3,a4) {
try {
return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {
try {
Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_iii(index,a1,a2) {
try {
return Module["dynCall_iii"](index,a1,a2);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viiii(index,a1,a2,a3,a4) {
try {
Module["dynCall_viiii"](index,a1,a2,a3,a4);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity };
Module.asmLibraryArg = { "abort": abort, "assert": assert, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viii": nullFunc_viii, "nullFunc_v": nullFunc_v, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_viiii": nullFunc_viiii, "invoke_iiii": invoke_iiii, "invoke_viiiii": invoke_viiiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_iiiii": invoke_iiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_iii": invoke_iii, "invoke_viiii": invoke_viiii, "_pthread_cleanup_pop": _pthread_cleanup_pop, "___syscall221": ___syscall221, "_pthread_mutex_init": _pthread_mutex_init, "___syscall64": ___syscall64, "___syscall63": ___syscall63, "___syscall6": ___syscall6, "___syscall202": ___syscall202, "___setErrNo": ___setErrNo, "___syscall20": ___syscall20, "_llvm_stackrestore": _llvm_stackrestore, "___assert_fail": ___assert_fail, "_floor": _floor, "__addDays": __addDays, "_localtime_r": _localtime_r, "_tzset": _tzset, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_sbrk": _sbrk, "___syscall192": ___syscall192, "___syscall191": ___syscall191, "___syscall197": ___syscall197, "___syscall195": ___syscall195, "___syscall194": ___syscall194, "___syscall199": ___syscall199, "_sysconf": _sysconf, "_strftime": _strftime, "_clock": _clock, "__arraySum": __arraySum, "_emscripten_memcpy_big": _emscripten_memcpy_big, "___syscall91": ___syscall91, "___buildEnvironment": ___buildEnvironment, "_pthread_mutex_destroy": _pthread_mutex_destroy, "_pthread_self": _pthread_self, "___syscall75": ___syscall75, "_pthread_mutex_unlock": _pthread_mutex_unlock, "___syscall77": ___syscall77, "_llvm_stacksave": _llvm_stacksave, "_getenv": _getenv, "___syscall33": ___syscall33, "___syscall54": ___syscall54, "___unlock": ___unlock, "__isLeapYear": __isLeapYear, "_emscripten_set_main_loop": _emscripten_set_main_loop, "___syscall10": ___syscall10, "___syscall3": ___syscall3, "___syscall340": ___syscall340, "___lock": ___lock, "_abort": _abort, "___syscall5": ___syscall5, "___syscall4": ___syscall4, "_time": _time, "_pthread_mutex_lock": _pthread_mutex_lock, "_gettimeofday": _gettimeofday, "___syscall201": ___syscall201, "_atexit": _atexit, "___syscall140": ___syscall140, "_localtime": _localtime, "___syscall142": ___syscall142, "_pthread_cleanup_push": _pthread_cleanup_push, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8 };
// EMSCRIPTEN_START_ASM
var asm = (function(global, env, buffer) {
'almost asm';
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
var HEAP32 = new global.Int32Array(buffer);
var HEAPU8 = new global.Uint8Array(buffer);
var HEAPU16 = new global.Uint16Array(buffer);
var HEAPU32 = new global.Uint32Array(buffer);
var HEAPF32 = new global.Float32Array(buffer);
var HEAPF64 = new global.Float64Array(buffer);
var STACKTOP=env.STACKTOP|0;
var STACK_MAX=env.STACK_MAX|0;
var tempDoublePtr=env.tempDoublePtr|0;
var ABORT=env.ABORT|0;
var cttz_i8=env.cttz_i8|0;
var __THREW__ = 0;
var threwValue = 0;
var setjmpId = 0;
var undef = 0;
var nan = global.NaN, inf = global.Infinity;
var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
var tempRet0 = 0;
var tempRet1 = 0;
var tempRet2 = 0;
var tempRet3 = 0;
var tempRet4 = 0;
var tempRet5 = 0;
var tempRet6 = 0;
var tempRet7 = 0;
var tempRet8 = 0;
var tempRet9 = 0;
var Math_floor=global.Math.floor;
var Math_abs=global.Math.abs;
var Math_sqrt=global.Math.sqrt;
var Math_pow=global.Math.pow;
var Math_cos=global.Math.cos;
var Math_sin=global.Math.sin;
var Math_tan=global.Math.tan;
var Math_acos=global.Math.acos;
var Math_asin=global.Math.asin;
var Math_atan=global.Math.atan;
var Math_atan2=global.Math.atan2;
var Math_exp=global.Math.exp;
var Math_log=global.Math.log;
var Math_ceil=global.Math.ceil;
var Math_imul=global.Math.imul;
var Math_min=global.Math.min;
var Math_clz32=global.Math.clz32;
var abort=env.abort;
var assert=env.assert;
var nullFunc_iiii=env.nullFunc_iiii;
var nullFunc_viiiii=env.nullFunc_viiiii;
var nullFunc_vi=env.nullFunc_vi;
var nullFunc_vii=env.nullFunc_vii;
var nullFunc_ii=env.nullFunc_ii;
var nullFunc_viii=env.nullFunc_viii;
var nullFunc_v=env.nullFunc_v;
var nullFunc_iiiii=env.nullFunc_iiiii;
var nullFunc_viiiiii=env.nullFunc_viiiiii;
var nullFunc_iii=env.nullFunc_iii;
var nullFunc_viiii=env.nullFunc_viiii;
var invoke_iiii=env.invoke_iiii;
var invoke_viiiii=env.invoke_viiiii;
var invoke_vi=env.invoke_vi;
var invoke_vii=env.invoke_vii;
var invoke_ii=env.invoke_ii;
var invoke_viii=env.invoke_viii;
var invoke_v=env.invoke_v;
var invoke_iiiii=env.invoke_iiiii;
var invoke_viiiiii=env.invoke_viiiiii;
var invoke_iii=env.invoke_iii;
var invoke_viiii=env.invoke_viiii;
var _pthread_cleanup_pop=env._pthread_cleanup_pop;
var ___syscall221=env.___syscall221;
var _pthread_mutex_init=env._pthread_mutex_init;
var ___syscall64=env.___syscall64;
var ___syscall63=env.___syscall63;
var ___syscall6=env.___syscall6;
var ___syscall202=env.___syscall202;
var ___setErrNo=env.___setErrNo;
var ___syscall20=env.___syscall20;
var _llvm_stackrestore=env._llvm_stackrestore;
var ___assert_fail=env.___assert_fail;
var _floor=env._floor;
var __addDays=env.__addDays;
var _localtime_r=env._localtime_r;
var _tzset=env._tzset;
var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing;
var _sbrk=env._sbrk;
var ___syscall192=env.___syscall192;
var ___syscall191=env.___syscall191;
var ___syscall197=env.___syscall197;
var ___syscall195=env.___syscall195;
var ___syscall194=env.___syscall194;
var ___syscall199=env.___syscall199;
var _sysconf=env._sysconf;
var _strftime=env._strftime;
var _clock=env._clock;
var __arraySum=env.__arraySum;
var _emscripten_memcpy_big=env._emscripten_memcpy_big;
var ___syscall91=env.___syscall91;
var ___buildEnvironment=env.___buildEnvironment;
var _pthread_mutex_destroy=env._pthread_mutex_destroy;
var _pthread_self=env._pthread_self;
var ___syscall75=env.___syscall75;
var _pthread_mutex_unlock=env._pthread_mutex_unlock;
var ___syscall77=env.___syscall77;
var _llvm_stacksave=env._llvm_stacksave;
var _getenv=env._getenv;
var ___syscall33=env.___syscall33;
var ___syscall54=env.___syscall54;
var ___unlock=env.___unlock;
var __isLeapYear=env.__isLeapYear;
var _emscripten_set_main_loop=env._emscripten_set_main_loop;
var ___syscall10=env.___syscall10;
var ___syscall3=env.___syscall3;
var ___syscall340=env.___syscall340;
var ___lock=env.___lock;
var _abort=env._abort;
var ___syscall5=env.___syscall5;
var ___syscall4=env.___syscall4;
var _time=env._time;
var _pthread_mutex_lock=env._pthread_mutex_lock;
var _gettimeofday=env._gettimeofday;
var ___syscall201=env.___syscall201;
var _atexit=env._atexit;
var ___syscall140=env.___syscall140;
var _localtime=env._localtime;
var ___syscall142=env.___syscall142;
var _pthread_cleanup_push=env._pthread_cleanup_push;
var ___syscall145=env.___syscall145;
var ___syscall146=env.___syscall146;
var tempFloat = 0.0;
// EMSCRIPTEN_START_FUNCS
function stackAlloc(size) {
size = size|0;
var ret = 0;
ret = STACKTOP;
STACKTOP = (STACKTOP + size)|0;
STACKTOP = (STACKTOP + 15)&-16;
if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
return ret|0;
}
function stackSave() {
return STACKTOP|0;
}
function stackRestore(top) {
top = top|0;
STACKTOP = top;
}
function establishStackSpace(stackBase, stackMax) {
stackBase = stackBase|0;
stackMax = stackMax|0;
STACKTOP = stackBase;
STACK_MAX = stackMax;
}
function setThrew(threw, value) {
threw = threw|0;
value = value|0;
if ((__THREW__|0) == 0) {
__THREW__ = threw;
threwValue = value;
}
}
function copyTempFloat(ptr) {
ptr = ptr|0;
HEAP8[tempDoublePtr>>0] = HEAP8[ptr>>0];
HEAP8[tempDoublePtr+1>>0] = HEAP8[ptr+1>>0];
HEAP8[tempDoublePtr+2>>0] = HEAP8[ptr+2>>0];
HEAP8[tempDoublePtr+3>>0] = HEAP8[ptr+3>>0];
}
function copyTempDouble(ptr) {
ptr = ptr|0;
HEAP8[tempDoublePtr>>0] = HEAP8[ptr>>0];
HEAP8[tempDoublePtr+1>>0] = HEAP8[ptr+1>>0];
HEAP8[tempDoublePtr+2>>0] = HEAP8[ptr+2>>0];
HEAP8[tempDoublePtr+3>>0] = HEAP8[ptr+3>>0];
HEAP8[tempDoublePtr+4>>0] = HEAP8[ptr+4>>0];
HEAP8[tempDoublePtr+5>>0] = HEAP8[ptr+5>>0];
HEAP8[tempDoublePtr+6>>0] = HEAP8[ptr+6>>0];
HEAP8[tempDoublePtr+7>>0] = HEAP8[ptr+7>>0];
}
function setTempRet0(value) {
value = value|0;
tempRet0 = value;
}
function getTempRet0() {
return tempRet0|0;
}
function _TALER_WRALL_get_current_time() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $now = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$now = sp + 8|0;
$0 = sp;
$1 = (_GNUNET_xmalloc_(8,19102,45)|0);
$ptr = $1;
$2 = (_GNUNET_TIME_absolute_get()|0);
$3 = tempRet0;
$4 = $0;
$5 = $4;
HEAP32[$5>>2] = $2;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $3;
;HEAP32[$now>>2]=HEAP32[$0>>2]|0;HEAP32[$now+4>>2]=HEAP32[$0+4>>2]|0;
$8 = $ptr;
;HEAP32[$8>>2]=HEAP32[$now>>2]|0;HEAP32[$8+4>>2]=HEAP32[$now+4>>2]|0;
$9 = $ptr;
STACKTOP = sp;return ($9|0);
}
function _TALER_WRALL_hash($buf,$size) {
$buf = $buf|0;
$size = $size|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buf;
$1 = $size;
$2 = (_GNUNET_xmalloc_(64,19102,64)|0);
$ptr = $2;
$3 = $0;
$4 = $1;
$5 = $ptr;
_GNUNET_CRYPTO_hash($3,$4,$5);
$6 = $ptr;
STACKTOP = sp;return ($6|0);
}
function _DEBUG_WR_dump_amount($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0;
var $vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $a;
$1 = $0;
$2 = $0;
$3 = ((($2)) + 12|0);
$4 = $0;
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = $0;
$12 = ((($11)) + 8|0);
$13 = HEAP32[$12>>2]|0;
HEAP32[$vararg_buffer>>2] = $1;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
$14 = $vararg_ptr2;
$15 = $14;
HEAP32[$15>>2] = $7;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $10;
$vararg_ptr3 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr3>>2] = $13;
(_printf(19109,$vararg_buffer)|0);
STACKTOP = sp;return;
}
function _TALER_WRALL_ecdhe_public_key_from_private_key($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $priv;
$1 = (_GNUNET_xmalloc_(32,19102,116)|0);
$ptr = $1;
$2 = $0;
$3 = $ptr;
_GNUNET_CRYPTO_ecdhe_key_get_public($2,$3);
$4 = $ptr;
STACKTOP = sp;return ($4|0);
}
function _TALER_WRALL_ecc_ecdh($priv,$pub) {
$priv = $priv|0;
$pub = $pub|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $priv;
$2 = $pub;
$3 = (_GNUNET_xmalloc_(64,19102,131)|0);
$ptr = $3;
$4 = $1;
$5 = $2;
$6 = $ptr;
$7 = (_GNUNET_CRYPTO_ecc_ecdh($4,$5,$6)|0);
$8 = (-1)==($7|0);
if ($8) {
$0 = 0;
$10 = $0;
STACKTOP = sp;return ($10|0);
} else {
$9 = $ptr;
$0 = $9;
$10 = $0;
STACKTOP = sp;return ($10|0);
}
return (0)|0;
}
function _TALER_WRALL_eddsa_private_key_from_string($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $key_priv = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $priv;
$2 = (_GNUNET_xmalloc_(32,19102,151)|0);
$key_priv = $2;
$3 = $1;
$4 = $1;
$5 = (_strlen($4)|0);
$6 = $key_priv;
$7 = (_GNUNET_CRYPTO_eddsa_private_key_from_string($3,$5,$6)|0);
$8 = (1)!=($7|0);
if ($8) {
$0 = 0;
$10 = $0;
STACKTOP = sp;return ($10|0);
} else {
$9 = $key_priv;
$0 = $9;
$10 = $0;
STACKTOP = sp;return ($10|0);
}
return (0)|0;
}
function _TALER_WRALL_eddsa_public_key_from_priv_string($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $key_priv = 0, $key_pub = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$key_priv = sp + 16|0;
$1 = $priv;
$2 = $1;
$3 = $1;
$4 = (_strlen($3)|0);
$5 = (_GNUNET_CRYPTO_eddsa_private_key_from_string($2,$4,$key_priv)|0);
$6 = (1)!=($5|0);
if ($6) {
$0 = 0;
$10 = $0;
STACKTOP = sp;return ($10|0);
} else {
$7 = (_GNUNET_xmalloc_(32,19102,173)|0);
$key_pub = $7;
$8 = $key_pub;
_GNUNET_CRYPTO_eddsa_key_get_public($key_priv,$8);
$9 = $key_pub;
$0 = $9;
$10 = $0;
STACKTOP = sp;return ($10|0);
}
return (0)|0;
}
function _TALER_WRALL_eddsa_public_key_from_private($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $priv;
$1 = (_GNUNET_xmalloc_(32,19102,190)|0);
$ptr = $1;
$2 = $0;
$3 = $ptr;
_GNUNET_CRYPTO_eddsa_key_get_public($2,$3);
$4 = $ptr;
STACKTOP = sp;return ($4|0);
}
function _TALER_WR_get_fancy_time($when) {
$when = $when|0;
var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $fancy_when = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$$byval_copy = sp;
$0 = $when;
$1 = $0;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;
$2 = (_GNUNET_STRINGS_absolute_time_to_string($$byval_copy)|0);
$fancy_when = $2;
$3 = $fancy_when;
STACKTOP = sp;return ($3|0);
}
function _TALER_WR_GNUNET_free($ptr) {
$ptr = $ptr|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ptr;
$1 = $0;
_GNUNET_xfree_($1,19102,213);
STACKTOP = sp;return;
}
function _TALER_WRALL_sign_test($pk) {
$pk = $pk|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $sig = 0, $test = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$test = sp + 8|0;
$0 = $pk;
$1 = (_htonl(8)|0);
HEAP8[$test>>0]=$1&255;HEAP8[$test+1>>0]=($1>>8)&255;HEAP8[$test+2>>0]=($1>>16)&255;HEAP8[$test+3>>0]=$1>>24;
$2 = (_htonl(1302)|0);
$3 = ((($test)) + 4|0);
HEAP8[$3>>0]=$2&255;HEAP8[$3+1>>0]=($2>>8)&255;HEAP8[$3+2>>0]=($2>>16)&255;HEAP8[$3+3>>0]=$2>>24;
$4 = (_GNUNET_xmalloc_(64,19102,234)|0);
$sig = $4;
$5 = $0;
$6 = $sig;
(_GNUNET_CRYPTO_eddsa_sign($5,$test,$6)|0);
$7 = $sig;
STACKTOP = sp;return ($7|0);
}
function _WR_verify_test($sig,$pbk) {
$sig = $sig|0;
$pbk = $pbk|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $purpose = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$purpose = sp + 8|0;
$0 = $sig;
$1 = $pbk;
$2 = (_htonl(8)|0);
HEAP8[$purpose>>0]=$2&255;HEAP8[$purpose+1>>0]=($2>>8)&255;HEAP8[$purpose+2>>0]=($2>>16)&255;HEAP8[$purpose+3>>0]=$2>>24;
$3 = (_htonl(1303)|0);
$4 = ((($purpose)) + 4|0);
HEAP8[$4>>0]=$3&255;HEAP8[$4+1>>0]=($3>>8)&255;HEAP8[$4+2>>0]=($3>>16)&255;HEAP8[$4+3>>0]=$3>>24;
$5 = $0;
$6 = $1;
$7 = (_GNUNET_CRYPTO_eddsa_verify(1303,$purpose,$5,$6)|0);
STACKTOP = sp;return ($7|0);
}
function _TALER_WR_eddsa_verify($reason,$purpose,$sig,$pub) {
$reason = $reason|0;
$purpose = $purpose|0;
$sig = $sig|0;
$pub = $pub|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $reason;
$2 = $purpose;
$3 = $sig;
$4 = $pub;
$5 = $1;
$6 = (_strcmp($5,19146)|0);
$7 = ($6|0)==(0);
if ($7) {
$8 = $2;
$9 = $3;
$10 = $4;
$11 = (_GNUNET_CRYPTO_eddsa_verify(1200,$8,$9,$10)|0);
$0 = $11;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
$12 = $1;
$13 = (_strcmp($12,19162)|0);
$14 = ($13|0)==(0);
if ($14) {
$15 = $2;
$16 = $3;
$17 = $4;
$18 = (_GNUNET_CRYPTO_eddsa_verify(1101,$15,$16,$17)|0);
$0 = $18;
$19 = $0;
STACKTOP = sp;return ($19|0);
} else {
$0 = -1;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
return (0)|0;
}
function _WRALL_make_purpose($motivation,$motivation_len,$payload,$payload_size) {
$motivation = $motivation|0;
$motivation_len = $motivation_len|0;
$payload = $payload|0;
$payload_size = $payload_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ptr = 0, $purpose = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$purpose = sp + 24|0;
$1 = $motivation;
$2 = $motivation_len;
$3 = $payload;
$4 = $payload_size;
$5 = $2;
$6 = $1;
$7 = (($6) + ($5)|0);
HEAP8[$7>>0] = 0;
$8 = $1;
$9 = (_strcmp($8,19177)|0);
$10 = ($9|0)==(0);
do {
if ($10) {
$11 = (_htonl(1025)|0);
$12 = ((($purpose)) + 4|0);
HEAP8[$12>>0]=$11&255;HEAP8[$12+1>>0]=($11>>8)&255;HEAP8[$12+2>>0]=($11>>16)&255;HEAP8[$12+3>>0]=$11>>24;
} else {
$13 = $1;
$14 = (_strcmp($13,19210)|0);
$15 = ($14|0)==(0);
if ($15) {
$16 = (_htonl(1303)|0);
$17 = ((($purpose)) + 4|0);
HEAP8[$17>>0]=$16&255;HEAP8[$17+1>>0]=($16>>8)&255;HEAP8[$17+2>>0]=($16>>16)&255;HEAP8[$17+3>>0]=$16>>24;
break;
}
$18 = $1;
$19 = (_strcmp($18,19146)|0);
$20 = ($19|0)==(0);
if ($20) {
$21 = (_htonl(1200)|0);
$22 = ((($purpose)) + 4|0);
HEAP8[$22>>0]=$21&255;HEAP8[$22+1>>0]=($21>>8)&255;HEAP8[$22+2>>0]=($21>>16)&255;HEAP8[$22+3>>0]=$21>>24;
break;
}
$0 = 0;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
} while(0);
$23 = $4;
$24 = (8 + ($23))|0;
$25 = (_htonl($24)|0);
HEAP8[$purpose>>0]=$25&255;HEAP8[$purpose+1>>0]=($25>>8)&255;HEAP8[$purpose+2>>0]=($25>>16)&255;HEAP8[$purpose+3>>0]=$25>>24;
$26 = $4;
$27 = (8 + ($26))|0;
$28 = (_GNUNET_xmalloc_($27,19102,329)|0);
$ptr = $28;
$29 = $ptr;
;HEAP8[$29>>0]=HEAP8[$purpose>>0]|0;HEAP8[$29+1>>0]=HEAP8[$purpose+1>>0]|0;HEAP8[$29+2>>0]=HEAP8[$purpose+2>>0]|0;HEAP8[$29+3>>0]=HEAP8[$purpose+3>>0]|0;HEAP8[$29+4>>0]=HEAP8[$purpose+4>>0]|0;HEAP8[$29+5>>0]=HEAP8[$purpose+5>>0]|0;HEAP8[$29+6>>0]=HEAP8[$purpose+6>>0]|0;HEAP8[$29+7>>0]=HEAP8[$purpose+7>>0]|0;
$30 = $4;
$31 = ($30>>>0)>(0);
if ($31) {
$32 = $ptr;
$33 = ((($32)) + 64|0);
$34 = $3;
$35 = $4;
_memcpy(($33|0),($34|0),($35|0))|0;
}
$36 = $ptr;
$0 = $36;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
function _TALER_WRALL_purpose_create($purpose,$payload,$payload_size) {
$purpose = $purpose|0;
$payload = $payload|0;
$payload_size = $payload_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0;
var $size = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $purpose;
$1 = $payload;
$2 = $payload_size;
$3 = $2;
$4 = (8 + ($3))|0;
$size = $4;
$5 = $size;
$6 = (_GNUNET_xmalloc_($5,19102,348)|0);
$p = $6;
$7 = $p;
$8 = ((($7)) + 8|0);
$9 = $1;
$10 = $2;
_memcpy(($8|0),($9|0),($10|0))|0;
$11 = $0;
$12 = (_htonl($11)|0);
$13 = $p;
$14 = ((($13)) + 4|0);
HEAP8[$14>>0]=$12&255;HEAP8[$14+1>>0]=($12>>8)&255;HEAP8[$14+2>>0]=($12>>16)&255;HEAP8[$14+3>>0]=$12>>24;
$15 = $size;
$16 = (_htonl($15)|0);
$17 = $p;
HEAP8[$17>>0]=$16&255;HEAP8[$17+1>>0]=($16>>8)&255;HEAP8[$17+2>>0]=($16>>16)&255;HEAP8[$17+3>>0]=$16>>24;
$18 = $p;
STACKTOP = sp;return ($18|0);
}
function _TALER_WRALL_rsa_public_key_decode_from_string($base32keyenc) {
$base32keyenc = $base32keyenc|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0, $8 = 0, $9 = 0;
var $internal_enc = 0, $internal_enc_size = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $base32keyenc;
$1 = $0;
$2 = (_strlen($1)|0);
$3 = ($2*5)|0;
$4 = (($3>>>0) / 8)&-1;
$5 = (+($4>>>0));
$6 = (+Math_floor((+$5)));
$7 = (~~(($6))>>>0);
$internal_enc_size = $7;
$8 = $internal_enc_size;
$9 = (_GNUNET_xmalloc_($8,19102,373)|0);
$internal_enc = $9;
$10 = $0;
$11 = $0;
$12 = (_strlen($11)|0);
$13 = $internal_enc;
$14 = $internal_enc_size;
(_GNUNET_STRINGS_string_to_data($10,$12,$13,$14)|0);
$15 = $internal_enc;
$16 = $internal_enc_size;
$17 = (_GNUNET_CRYPTO_rsa_public_key_decode($15,$16)|0);
$ptr = $17;
$18 = $internal_enc;
_TALER_WR_GNUNET_free($18);
$19 = $ptr;
STACKTOP = sp;return ($19|0);
}
function _TALER_WRALL_get_encoding_from_rsa_signature($s) {
$s = $s|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $enca = 0, $encb = 0, $size = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$enca = sp + 8|0;
$0 = $s;
$1 = $0;
$2 = (_GNUNET_CRYPTO_rsa_signature_encode($1,$enca)|0);
$size = $2;
$3 = HEAP32[$enca>>2]|0;
$4 = $size;
$5 = (_GNUNET_STRINGS_data_to_string_alloc($3,$4)|0);
$encb = $5;
$6 = HEAP32[$enca>>2]|0;
_TALER_WR_GNUNET_free($6);
$7 = $encb;
STACKTOP = sp;return ($7|0);
}
function _TALER_WRALL_gen_symmetric_key($salt,$blob,$blob_size) {
$salt = $salt|0;
$blob = $blob|0;
$blob_size = $blob_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $skey = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $salt;
$2 = $blob;
$3 = $blob_size;
$4 = (_GNUNET_xmalloc_(64,19102,416)|0);
$skey = $4;
$5 = $skey;
$6 = $1;
$7 = $1;
$8 = (_strlen($7)|0);
$9 = $2;
$10 = $3;
HEAP32[$vararg_buffer>>2] = 0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$11 = (_GNUNET_CRYPTO_kdf($5,64,$6,$8,$9,$10,$vararg_buffer)|0);
$12 = (1)!=($11|0);
if ($12) {
$0 = 0;
$14 = $0;
STACKTOP = sp;return ($14|0);
} else {
$13 = $skey;
$0 = $13;
$14 = $0;
STACKTOP = sp;return ($14|0);
}
return (0)|0;
}
function _TALER_WRALL_gen_init_vector($salt,$blob,$blob_size) {
$salt = $salt|0;
$blob = $blob|0;
$blob_size = $blob_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $iv = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $salt;
$2 = $blob;
$3 = $blob_size;
$4 = (_GNUNET_xmalloc_(32,19102,441)|0);
$iv = $4;
$5 = $iv;
$6 = $1;
$7 = $1;
$8 = (_strlen($7)|0);
$9 = $2;
$10 = $3;
HEAP32[$vararg_buffer>>2] = 0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$11 = (_GNUNET_CRYPTO_kdf($5,32,$6,$8,$9,$10,$vararg_buffer)|0);
$12 = (1)!=($11|0);
if ($12) {
$0 = 0;
$14 = $0;
STACKTOP = sp;return ($14|0);
} else {
$13 = $iv;
$0 = $13;
$14 = $0;
STACKTOP = sp;return ($14|0);
}
return (0)|0;
}
function _TALER_WRALL_gen_key_from_blob($salt,$blob,$blob_size) {
$salt = $salt|0;
$blob = $blob|0;
$blob_size = $blob_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $key = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $salt;
$2 = $blob;
$3 = $blob_size;
$4 = (_GNUNET_xmalloc_(64,19102,464)|0);
$key = $4;
$5 = $key;
$6 = $1;
$7 = $1;
$8 = (_strlen($7)|0);
$9 = $2;
$10 = $3;
HEAP32[$vararg_buffer>>2] = 0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$11 = (_GNUNET_CRYPTO_kdf($5,64,$6,$8,$9,$10,$vararg_buffer)|0);
$12 = (1)!=($11|0);
if ($12) {
$0 = 0;
$14 = $0;
STACKTOP = sp;return ($14|0);
} else {
$13 = $key;
$0 = $13;
$14 = $0;
STACKTOP = sp;return ($14|0);
}
return (0)|0;
}
function _TALER_WRALL_amount_add($0,$1,$2,$3,$v1_frac,$v2_frac,$cur) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$v1_frac = $v1_frac|0;
$v2_frac = $v2_frac|0;
$cur = $cur|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $amn1 = 0, $amn2 = 0, $ptr = 0, $sum = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$5 = sp + 80|0;
$6 = sp + 72|0;
$amn1 = sp + 48|0;
$amn2 = sp + 24|0;
$sum = sp;
$10 = $5;
$11 = $10;
HEAP32[$11>>2] = $0;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $1;
$14 = $6;
$15 = $14;
HEAP32[$15>>2] = $2;
$16 = (($14) + 4)|0;
$17 = $16;
HEAP32[$17>>2] = $3;
$7 = $v1_frac;
$8 = $v2_frac;
$9 = $cur;
$18 = $9;
$19 = (_TALER_amount_get_zero($18,$amn1)|0);
$20 = (1)!=($19|0);
if (!($20)) {
$21 = $9;
$22 = (_TALER_amount_get_zero($21,$amn2)|0);
$23 = (1)!=($22|0);
if (!($23)) {
$24 = $9;
$25 = (_TALER_amount_get_zero($24,$sum)|0);
$26 = (1)!=($25|0);
if (!($26)) {
$27 = $5;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $amn1;
$34 = $33;
HEAP32[$34>>2] = $29;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
$37 = $7;
$38 = ((($amn1)) + 8|0);
HEAP32[$38>>2] = $37;
$39 = $6;
$40 = $39;
$41 = HEAP32[$40>>2]|0;
$42 = (($39) + 4)|0;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = $amn2;
$46 = $45;
HEAP32[$46>>2] = $41;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP32[$48>>2] = $44;
$49 = $8;
$50 = ((($amn2)) + 8|0);
HEAP32[$50>>2] = $49;
$51 = (_TALER_amount_add($sum,$amn1,$amn2)|0);
$52 = (1)!=($51|0);
if ($52) {
$4 = 0;
$56 = $4;
STACKTOP = sp;return ($56|0);
} else {
$53 = (_GNUNET_xmalloc_(24,19102,512)|0);
$ptr = $53;
$54 = $ptr;
;HEAP32[$54>>2]=HEAP32[$sum>>2]|0;HEAP32[$54+4>>2]=HEAP32[$sum+4>>2]|0;HEAP32[$54+8>>2]=HEAP32[$sum+8>>2]|0;HEAP32[$54+12>>2]=HEAP32[$sum+12>>2]|0;HEAP32[$54+16>>2]=HEAP32[$sum+16>>2]|0;HEAP32[$54+20>>2]=HEAP32[$sum+20>>2]|0;
$55 = $ptr;
$4 = $55;
$56 = $4;
STACKTOP = sp;return ($56|0);
}
}
}
}
$4 = 0;
$56 = $4;
STACKTOP = sp;return ($56|0);
}
function _TALER_WRALL_make_withdraw_bundle($reserve_pub,$total,$fee,$denom_pub,$coin_env,$coin_env_size) {
$reserve_pub = $reserve_pub|0;
$total = $total|0;
$fee = $fee|0;
$denom_pub = $denom_pub|0;
$coin_env = $coin_env|0;
$coin_env_size = $coin_env_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $denomination_pub = 0, $payload_buf = 0, $wdrw = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$wdrw = sp + 32|0;
$denomination_pub = sp + 4|0;
$0 = $reserve_pub;
$1 = $total;
$2 = $fee;
$3 = $denom_pub;
$4 = $coin_env;
$5 = $coin_env_size;
$6 = $3;
HEAP32[$denomination_pub>>2] = $6;
$7 = HEAP32[$denomination_pub>>2]|0;
$8 = ((($wdrw)) + 88|0);
_GNUNET_CRYPTO_rsa_public_key_hash($7,$8);
$9 = ((($wdrw)) + 40|0);
$10 = $1;
_TALER_amount_hton($9,$10);
$11 = ((($wdrw)) + 64|0);
$12 = $2;
_TALER_amount_hton($11,$12);
$13 = ((($wdrw)) + 8|0);
$14 = $0;
dest=$13; src=$14; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$15 = (_htonl(216)|0);
HEAP8[$wdrw>>0]=$15&255;HEAP8[$wdrw+1>>0]=($15>>8)&255;HEAP8[$wdrw+2>>0]=($15>>16)&255;HEAP8[$wdrw+3>>0]=$15>>24;
$16 = (_htonl(1200)|0);
$17 = ((($wdrw)) + 4|0);
HEAP8[$17>>0]=$16&255;HEAP8[$17+1>>0]=($16>>8)&255;HEAP8[$17+2>>0]=($16>>16)&255;HEAP8[$17+3>>0]=$16>>24;
$18 = $4;
$19 = $5;
$20 = ((($wdrw)) + 152|0);
_GNUNET_CRYPTO_hash($18,$19,$20);
$21 = (_GNUNET_xmalloc_(216,19102,567)|0);
$payload_buf = $21;
$22 = $payload_buf;
_memcpy(($22|0),($wdrw|0),216)|0;
$23 = $payload_buf;
STACKTOP = sp;return ($23|0);
}
function _TALER_WRALL_sign_contract($contract,$coin_priv) {
$contract = $contract|0;
$coin_priv = $coin_priv|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $dep_perm = 0, $sig = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$dep_perm = sp;
$0 = $contract;
$1 = $coin_priv;
HEAP32[$dep_perm>>2] = 72;
$2 = ((($dep_perm)) + 4|0);
HEAP32[$2>>2] = 1201;
$3 = ((($dep_perm)) + 8|0);
$4 = $0;
dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$5 = (_GNUNET_xmalloc_(64,19102,593)|0);
$sig = $5;
$6 = $1;
$7 = $sig;
(_GNUNET_CRYPTO_eddsa_sign($6,$dep_perm,$7)|0);
$8 = $sig;
STACKTOP = sp;return ($8|0);
}
function _time_from_seconds($seconds,$abs) {
$seconds = $seconds|0;
$abs = $abs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $vararg_buffer = 0, $vararg_ptr1 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $seconds;
$2 = $abs;
$3 = $1;
$4 = (___muldi3(($3|0),0,1000,0)|0);
$5 = tempRet0;
$6 = (___muldi3(($4|0),($5|0),1000,0)|0);
$7 = tempRet0;
$8 = $2;
$9 = $8;
$10 = $9;
HEAP32[$10>>2] = $6;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = $2;
$14 = $13;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (___udivdi3(($16|0),($19|0),1000,0)|0);
$21 = tempRet0;
$22 = (___udivdi3(($20|0),($21|0),1000,0)|0);
$23 = tempRet0;
$24 = $1;
$25 = ($22|0)!=($24|0);
$26 = ($23|0)!=(0);
$27 = $25 | $26;
if (!($27)) {
$0 = 1;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
$log_line = 618;
$28 = HEAP32[184]|0;
$29 = ($28|0)==(-1);
if ($29) {
$30 = $log_line;
$31 = (_GNUNET_get_log_call_status(2,0,19102,19226,$30)|0);
HEAP32[184] = $31;
}
$32 = (_GNUNET_get_log_skip()|0);
$33 = ($32|0)>(0);
if ($33) {
_GNUNET_log_skip(-1,0);
} else {
$34 = HEAP32[184]|0;
$35 = ($34|0)!=(0);
if ($35) {
HEAP32[$vararg_buffer>>2] = 19102;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 618;
_GNUNET_log_nocheck(34,21223,$vararg_buffer);
}
}
$0 = -1;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
function _TALER_WRALL_rsa_public_key_hash($key) {
$key = $key|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $khc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $key;
$1 = (_GNUNET_xmalloc_(64,19102,635)|0);
$khc = $1;
$2 = $0;
$3 = $khc;
_GNUNET_CRYPTO_rsa_public_key_hash($2,$3);
$4 = $khc;
STACKTOP = sp;return ($4|0);
}
function _TALER_WR_verify_denom($denom,$master,$sig,$start,$exp_w,$exp_s,$exp_l,$value,$fee_w,$fee_d,$fee_r) {
$denom = $denom|0;
$master = $master|0;
$sig = $sig|0;
$start = $start|0;
$exp_w = $exp_w|0;
$exp_s = $exp_s|0;
$exp_l = $exp_l|0;
$value = $value|0;
$fee_w = $fee_w|0;
$fee_d = $fee_d|0;
$fee_r = $fee_r|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, $dnv = 0, $exp_labs = 0, $exp_labs$byval_copy = 0, $exp_sabs = 0;
var $exp_sabs$byval_copy = 0, $exp_wabs = 0, $exp_wabs$byval_copy = 0, $master_in = 0, $start_abs = 0, $start_abs$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$exp_labs$byval_copy = sp + 56|0;
$exp_sabs$byval_copy = sp + 48|0;
$exp_wabs$byval_copy = sp + 40|0;
$start_abs$byval_copy = sp + 32|0;
$dnv = sp + 176|0;
$start_abs = sp + 24|0;
$exp_wabs = sp + 16|0;
$exp_sabs = sp + 8|0;
$exp_labs = sp;
$master_in = sp + 144|0;
$12 = sp + 136|0;
$13 = sp + 128|0;
$14 = sp + 120|0;
$15 = sp + 112|0;
$1 = $denom;
$2 = $master;
$3 = $sig;
$4 = $start;
$5 = $exp_w;
$6 = $exp_s;
$7 = $exp_l;
$8 = $value;
$9 = $fee_w;
$10 = $fee_d;
$11 = $fee_r;
$16 = $4;
$17 = (_time_from_seconds($16,$start_abs)|0);
$18 = (-1)==($17|0);
if ($18) {
$0 = -1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
$19 = $5;
$20 = (_time_from_seconds($19,$exp_wabs)|0);
$21 = (-1)==($20|0);
if ($21) {
$0 = -1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
$22 = $6;
$23 = (_time_from_seconds($22,$exp_sabs)|0);
$24 = (-1)==($23|0);
if ($24) {
$0 = -1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
$25 = $7;
$26 = (_time_from_seconds($25,$exp_labs)|0);
$27 = (-1)==($26|0);
if ($27) {
$0 = -1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
$28 = $1;
$29 = ((($dnv)) + 168|0);
_GNUNET_CRYPTO_rsa_public_key_hash($28,$29);
$30 = $2;
dest=$master_in; src=$30; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$31 = ((($dnv)) + 8|0);
dest=$31; src=$master_in; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$32 = ((($dnv)) + 40|0);
;HEAP32[$start_abs$byval_copy>>2]=HEAP32[$start_abs>>2]|0;HEAP32[$start_abs$byval_copy+4>>2]=HEAP32[$start_abs+4>>2]|0;
$33 = (_GNUNET_TIME_absolute_hton($start_abs$byval_copy)|0);
$34 = tempRet0;
$35 = $12;
$36 = $35;
HEAP8[$36>>0]=$33&255;HEAP8[$36+1>>0]=($33>>8)&255;HEAP8[$36+2>>0]=($33>>16)&255;HEAP8[$36+3>>0]=$33>>24;
$37 = (($35) + 4)|0;
$38 = $37;
HEAP8[$38>>0]=$34&255;HEAP8[$38+1>>0]=($34>>8)&255;HEAP8[$38+2>>0]=($34>>16)&255;HEAP8[$38+3>>0]=$34>>24;
;HEAP8[$32>>0]=HEAP8[$12>>0]|0;HEAP8[$32+1>>0]=HEAP8[$12+1>>0]|0;HEAP8[$32+2>>0]=HEAP8[$12+2>>0]|0;HEAP8[$32+3>>0]=HEAP8[$12+3>>0]|0;HEAP8[$32+4>>0]=HEAP8[$12+4>>0]|0;HEAP8[$32+5>>0]=HEAP8[$12+5>>0]|0;HEAP8[$32+6>>0]=HEAP8[$12+6>>0]|0;HEAP8[$32+7>>0]=HEAP8[$12+7>>0]|0;
$39 = ((($dnv)) + 48|0);
;HEAP32[$exp_wabs$byval_copy>>2]=HEAP32[$exp_wabs>>2]|0;HEAP32[$exp_wabs$byval_copy+4>>2]=HEAP32[$exp_wabs+4>>2]|0;
$40 = (_GNUNET_TIME_absolute_hton($exp_wabs$byval_copy)|0);
$41 = tempRet0;
$42 = $13;
$43 = $42;
HEAP8[$43>>0]=$40&255;HEAP8[$43+1>>0]=($40>>8)&255;HEAP8[$43+2>>0]=($40>>16)&255;HEAP8[$43+3>>0]=$40>>24;
$44 = (($42) + 4)|0;
$45 = $44;
HEAP8[$45>>0]=$41&255;HEAP8[$45+1>>0]=($41>>8)&255;HEAP8[$45+2>>0]=($41>>16)&255;HEAP8[$45+3>>0]=$41>>24;
;HEAP8[$39>>0]=HEAP8[$13>>0]|0;HEAP8[$39+1>>0]=HEAP8[$13+1>>0]|0;HEAP8[$39+2>>0]=HEAP8[$13+2>>0]|0;HEAP8[$39+3>>0]=HEAP8[$13+3>>0]|0;HEAP8[$39+4>>0]=HEAP8[$13+4>>0]|0;HEAP8[$39+5>>0]=HEAP8[$13+5>>0]|0;HEAP8[$39+6>>0]=HEAP8[$13+6>>0]|0;HEAP8[$39+7>>0]=HEAP8[$13+7>>0]|0;
$46 = ((($dnv)) + 56|0);
;HEAP32[$exp_sabs$byval_copy>>2]=HEAP32[$exp_sabs>>2]|0;HEAP32[$exp_sabs$byval_copy+4>>2]=HEAP32[$exp_sabs+4>>2]|0;
$47 = (_GNUNET_TIME_absolute_hton($exp_sabs$byval_copy)|0);
$48 = tempRet0;
$49 = $14;
$50 = $49;
HEAP8[$50>>0]=$47&255;HEAP8[$50+1>>0]=($47>>8)&255;HEAP8[$50+2>>0]=($47>>16)&255;HEAP8[$50+3>>0]=$47>>24;
$51 = (($49) + 4)|0;
$52 = $51;
HEAP8[$52>>0]=$48&255;HEAP8[$52+1>>0]=($48>>8)&255;HEAP8[$52+2>>0]=($48>>16)&255;HEAP8[$52+3>>0]=$48>>24;
;HEAP8[$46>>0]=HEAP8[$14>>0]|0;HEAP8[$46+1>>0]=HEAP8[$14+1>>0]|0;HEAP8[$46+2>>0]=HEAP8[$14+2>>0]|0;HEAP8[$46+3>>0]=HEAP8[$14+3>>0]|0;HEAP8[$46+4>>0]=HEAP8[$14+4>>0]|0;HEAP8[$46+5>>0]=HEAP8[$14+5>>0]|0;HEAP8[$46+6>>0]=HEAP8[$14+6>>0]|0;HEAP8[$46+7>>0]=HEAP8[$14+7>>0]|0;
$53 = ((($dnv)) + 64|0);
;HEAP32[$exp_labs$byval_copy>>2]=HEAP32[$exp_labs>>2]|0;HEAP32[$exp_labs$byval_copy+4>>2]=HEAP32[$exp_labs+4>>2]|0;
$54 = (_GNUNET_TIME_absolute_hton($exp_labs$byval_copy)|0);
$55 = tempRet0;
$56 = $15;
$57 = $56;
HEAP8[$57>>0]=$54&255;HEAP8[$57+1>>0]=($54>>8)&255;HEAP8[$57+2>>0]=($54>>16)&255;HEAP8[$57+3>>0]=$54>>24;
$58 = (($56) + 4)|0;
$59 = $58;
HEAP8[$59>>0]=$55&255;HEAP8[$59+1>>0]=($55>>8)&255;HEAP8[$59+2>>0]=($55>>16)&255;HEAP8[$59+3>>0]=$55>>24;
;HEAP8[$53>>0]=HEAP8[$15>>0]|0;HEAP8[$53+1>>0]=HEAP8[$15+1>>0]|0;HEAP8[$53+2>>0]=HEAP8[$15+2>>0]|0;HEAP8[$53+3>>0]=HEAP8[$15+3>>0]|0;HEAP8[$53+4>>0]=HEAP8[$15+4>>0]|0;HEAP8[$53+5>>0]=HEAP8[$15+5>>0]|0;HEAP8[$53+6>>0]=HEAP8[$15+6>>0]|0;HEAP8[$53+7>>0]=HEAP8[$15+7>>0]|0;
$60 = ((($dnv)) + 72|0);
$61 = $8;
_TALER_amount_hton($60,$61);
$62 = ((($dnv)) + 96|0);
$63 = $9;
_TALER_amount_hton($62,$63);
$64 = ((($dnv)) + 120|0);
$65 = $10;
_TALER_amount_hton($64,$65);
$66 = ((($dnv)) + 144|0);
$67 = $11;
_TALER_amount_hton($66,$67);
$68 = (_htonl(1025)|0);
$69 = ((($dnv)) + 4|0);
HEAP8[$69>>0]=$68&255;HEAP8[$69+1>>0]=($68>>8)&255;HEAP8[$69+2>>0]=($68>>16)&255;HEAP8[$69+3>>0]=$68>>24;
$70 = (_htonl(232)|0);
HEAP8[$dnv>>0]=$70&255;HEAP8[$dnv+1>>0]=($70>>8)&255;HEAP8[$dnv+2>>0]=($70>>16)&255;HEAP8[$dnv+3>>0]=$70>>24;
$71 = $3;
$72 = $2;
$73 = (_GNUNET_CRYPTO_eddsa_verify(1025,$dnv,$71,$72)|0);
$74 = (1)!=($73|0);
if ($74) {
$0 = 0;
$75 = $0;
STACKTOP = sp;return ($75|0);
} else {
$0 = 1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
return (0)|0;
}
function _TALER_WR_verify_denom_enc($denom_enc,$master_enc,$mastersig_enc,$start,$exp_w,$exp_s,$exp_l,$denom_value,$denom_fraction,$denom_currency,$withdraw_fee_value,$withdraw_fee_fraction,$withdraw_fee_currency,$deposit_fee_value,$deposit_fee_fraction,$deposit_fee_currency,$refresh_fee_value,$refresh_fee_fraction,$refresh_fee_currency) {
$denom_enc = $denom_enc|0;
$master_enc = $master_enc|0;
$mastersig_enc = $mastersig_enc|0;
$start = $start|0;
$exp_w = $exp_w|0;
$exp_s = $exp_s|0;
$exp_l = $exp_l|0;
$denom_value = $denom_value|0;
$denom_fraction = $denom_fraction|0;
$denom_currency = $denom_currency|0;
$withdraw_fee_value = $withdraw_fee_value|0;
$withdraw_fee_fraction = $withdraw_fee_fraction|0;
$withdraw_fee_currency = $withdraw_fee_currency|0;
$deposit_fee_value = $deposit_fee_value|0;
$deposit_fee_fraction = $deposit_fee_fraction|0;
$deposit_fee_currency = $deposit_fee_currency|0;
$refresh_fee_value = $refresh_fee_value|0;
$refresh_fee_fraction = $refresh_fee_fraction|0;
$refresh_fee_currency = $refresh_fee_currency|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $denom = 0, $denom_amount = 0, $deposit_fee = 0, $masterkey = 0, $mastersig = 0, $refresh_fee = 0, $ret = 0, $withdraw_fee = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$masterkey = sp + 248|0;
$mastersig = sp + 184|0;
$denom_amount = sp + 72|0;
$withdraw_fee = sp + 48|0;
$deposit_fee = sp + 24|0;
$refresh_fee = sp;
$0 = $denom_enc;
$1 = $master_enc;
$2 = $mastersig_enc;
$3 = $start;
$4 = $exp_w;
$5 = $exp_s;
$6 = $exp_l;
$7 = $denom_value;
$8 = $denom_fraction;
$9 = $denom_currency;
$10 = $withdraw_fee_value;
$11 = $withdraw_fee_fraction;
$12 = $withdraw_fee_currency;
$13 = $deposit_fee_value;
$14 = $deposit_fee_fraction;
$15 = $deposit_fee_currency;
$16 = $refresh_fee_value;
$17 = $refresh_fee_fraction;
$18 = $refresh_fee_currency;
$19 = $0;
$20 = (_TALER_WRALL_rsa_public_key_decode_from_string($19)|0);
$denom = $20;
$21 = $1;
$22 = $1;
$23 = (_strlen($22)|0);
(_GNUNET_STRINGS_string_to_data($21,$23,$masterkey,32)|0);
$24 = $2;
$25 = $2;
$26 = (_strlen($25)|0);
(_GNUNET_STRINGS_string_to_data($24,$26,$mastersig,64)|0);
$27 = $9;
(_TALER_amount_get_zero($27,$denom_amount)|0);
$28 = $7;
$29 = $denom_amount;
$30 = $29;
HEAP32[$30>>2] = $28;
$31 = (($29) + 4)|0;
$32 = $31;
HEAP32[$32>>2] = 0;
$33 = $8;
$34 = ((($denom_amount)) + 8|0);
HEAP32[$34>>2] = $33;
$35 = $12;
(_TALER_amount_get_zero($35,$withdraw_fee)|0);
$36 = $10;
$37 = $withdraw_fee;
$38 = $37;
HEAP32[$38>>2] = $36;
$39 = (($37) + 4)|0;
$40 = $39;
HEAP32[$40>>2] = 0;
$41 = $11;
$42 = ((($withdraw_fee)) + 8|0);
HEAP32[$42>>2] = $41;
$43 = $15;
(_TALER_amount_get_zero($43,$deposit_fee)|0);
$44 = $10;
$45 = $deposit_fee;
$46 = $45;
HEAP32[$46>>2] = $44;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP32[$48>>2] = 0;
$49 = $11;
$50 = ((($deposit_fee)) + 8|0);
HEAP32[$50>>2] = $49;
$51 = $18;
(_TALER_amount_get_zero($51,$refresh_fee)|0);
$52 = $16;
$53 = $refresh_fee;
$54 = $53;
HEAP32[$54>>2] = $52;
$55 = (($53) + 4)|0;
$56 = $55;
HEAP32[$56>>2] = 0;
$57 = $17;
$58 = ((($refresh_fee)) + 8|0);
HEAP32[$58>>2] = $57;
$59 = $denom;
$60 = $3;
$61 = $4;
$62 = $5;
$63 = $6;
$64 = (_TALER_WR_verify_denom($59,$masterkey,$mastersig,$60,$61,$62,$63,$denom_amount,$withdraw_fee,$deposit_fee,$refresh_fee)|0);
$ret = $64;
$65 = $denom;
_GNUNET_CRYPTO_rsa_public_key_free($65);
$66 = $ret;
STACKTOP = sp;return ($66|0);
}
function _TALER_WR_verify_denoms($sign_key,$denoms,$issue_date,$ndenoms,$sig) {
$sign_key = $sign_key|0;
$denoms = $denoms|0;
$issue_date = $issue_date|0;
$ndenoms = $ndenoms|0;
$sig = $sig|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $hctx = 0, $i = 0;
var $issue = 0, $issue$byval_copy = 0, $khc = 0, $ks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$issue$byval_copy = sp + 8|0;
$issue = sp;
$ks = sp + 128|0;
$khc = sp + 24|0;
$6 = sp + 120|0;
$1 = $sign_key;
$2 = $denoms;
$3 = $issue_date;
$4 = $ndenoms;
$5 = $sig;
$7 = $3;
$8 = (_time_from_seconds($7,$issue)|0);
$9 = (-1)==($8|0);
if ($9) {
$0 = -1;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
$10 = ((($ks)) + 8|0);
;HEAP32[$issue$byval_copy>>2]=HEAP32[$issue>>2]|0;HEAP32[$issue$byval_copy+4>>2]=HEAP32[$issue+4>>2]|0;
$11 = (_GNUNET_TIME_absolute_hton($issue$byval_copy)|0);
$12 = tempRet0;
$13 = $6;
$14 = $13;
HEAP8[$14>>0]=$11&255;HEAP8[$14+1>>0]=($11>>8)&255;HEAP8[$14+2>>0]=($11>>16)&255;HEAP8[$14+3>>0]=$11>>24;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP8[$16>>0]=$12&255;HEAP8[$16+1>>0]=($12>>8)&255;HEAP8[$16+2>>0]=($12>>16)&255;HEAP8[$16+3>>0]=$12>>24;
;HEAP8[$10>>0]=HEAP8[$6>>0]|0;HEAP8[$10+1>>0]=HEAP8[$6+1>>0]|0;HEAP8[$10+2>>0]=HEAP8[$6+2>>0]|0;HEAP8[$10+3>>0]=HEAP8[$6+3>>0]|0;HEAP8[$10+4>>0]=HEAP8[$6+4>>0]|0;HEAP8[$10+5>>0]=HEAP8[$6+5>>0]|0;HEAP8[$10+6>>0]=HEAP8[$6+6>>0]|0;HEAP8[$10+7>>0]=HEAP8[$6+7>>0]|0;
$17 = (_GNUNET_CRYPTO_hash_context_start()|0);
$hctx = $17;
$i = 0;
while(1) {
$18 = $i;
$19 = $4;
$20 = ($18>>>0)<($19>>>0);
if (!($20)) {
break;
}
$21 = $i;
$22 = $2;
$23 = (($22) + ($21<<2)|0);
$24 = HEAP32[$23>>2]|0;
_GNUNET_CRYPTO_rsa_public_key_hash($24,$khc);
$25 = $hctx;
_GNUNET_CRYPTO_hash_context_read($25,$khc,64);
$26 = $i;
$27 = (($26) + 1)|0;
$i = $27;
}
$28 = $hctx;
$29 = ((($ks)) + 16|0);
_GNUNET_CRYPTO_hash_context_finish($28,$29);
$30 = (_htonl(80)|0);
HEAP8[$ks>>0]=$30&255;HEAP8[$ks+1>>0]=($30>>8)&255;HEAP8[$ks+2>>0]=($30>>16)&255;HEAP8[$ks+3>>0]=$30>>24;
$31 = (_htonl(1035)|0);
$32 = ((($ks)) + 4|0);
HEAP8[$32>>0]=$31&255;HEAP8[$32+1>>0]=($31>>8)&255;HEAP8[$32+2>>0]=($31>>16)&255;HEAP8[$32+3>>0]=$31>>24;
$33 = $5;
$34 = $1;
$35 = (_GNUNET_CRYPTO_eddsa_verify(1035,$ks,$33,$34)|0);
$36 = (1)!=($35|0);
if ($36) {
$0 = 0;
$37 = $0;
STACKTOP = sp;return ($37|0);
} else {
$0 = 1;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
return (0)|0;
}
function _TALER_WR_verify_denoms_enc($signkey_enc,$denoms_enc,$ndenoms,$issue_date,$sig_enc) {
$signkey_enc = $signkey_enc|0;
$denoms_enc = $denoms_enc|0;
$ndenoms = $ndenoms|0;
$issue_date = $issue_date|0;
$sig_enc = $sig_enc|0;
var $$alloca_mul = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $i = 0, $ret = 0, $sig = 0, $signkey = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$signkey = sp + 96|0;
$sig = sp + 32|0;
$0 = $signkey_enc;
$1 = $denoms_enc;
$2 = $ndenoms;
$3 = $issue_date;
$4 = $sig_enc;
$6 = $2;
$7 = (_llvm_stacksave()|0);
$5 = $7;
$$alloca_mul = $6<<2;
$8 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
$9 = $0;
$10 = $0;
$11 = (_strlen($10)|0);
(_GNUNET_STRINGS_string_to_data($9,$11,$signkey,32)|0);
$12 = $4;
$13 = $4;
$14 = (_strlen($13)|0);
(_GNUNET_STRINGS_string_to_data($12,$14,$sig,64)|0);
$i = 0;
while(1) {
$15 = $i;
$16 = $2;
$17 = ($15>>>0)<($16>>>0);
if (!($17)) {
break;
}
$18 = $i;
$19 = $1;
$20 = (($19) + ($18<<2)|0);
$21 = HEAP32[$20>>2]|0;
$22 = (_TALER_WRALL_rsa_public_key_decode_from_string($21)|0);
$23 = $i;
$24 = (($8) + ($23<<2)|0);
HEAP32[$24>>2] = $22;
$25 = $i;
$26 = (($25) + 1)|0;
$i = $26;
}
$27 = $3;
$28 = $2;
$29 = (_TALER_WR_verify_denoms($signkey,$8,$27,$28,$sig)|0);
$ret = $29;
$i = 0;
while(1) {
$30 = $i;
$31 = $2;
$32 = ($30>>>0)<($31>>>0);
if (!($32)) {
break;
}
$33 = $i;
$34 = (($8) + ($33<<2)|0);
$35 = HEAP32[$34>>2]|0;
_GNUNET_CRYPTO_rsa_public_key_free($35);
$36 = $i;
$37 = (($36) + 1)|0;
$i = $37;
}
$38 = $ret;
$39 = $5;
_llvm_stackrestore(($39|0));
STACKTOP = sp;return ($38|0);
}
function _TALER_WR_verify_sign_key($master,$date,$expire,$end,$signkey,$sig) {
$master = $master|0;
$date = $date|0;
$expire = $expire|0;
$end = $end|0;
$signkey = $signkey|0;
$sig = $sig|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $date_abs = 0, $date_abs$byval_copy = 0, $end_abs = 0, $end_abs$byval_copy = 0, $expire_abs = 0;
var $expire_abs$byval_copy = 0, $master_key = 0, $signkey_key = 0, $skval = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$end_abs$byval_copy = sp + 40|0;
$expire_abs$byval_copy = sp + 32|0;
$date_abs$byval_copy = sp + 24|0;
$skval = sp + 168|0;
$date_abs = sp + 16|0;
$expire_abs = sp + 8|0;
$end_abs = sp;
$master_key = sp + 136|0;
$signkey_key = sp + 104|0;
$7 = sp + 96|0;
$8 = sp + 88|0;
$9 = sp + 80|0;
$1 = $master;
$2 = $date;
$3 = $expire;
$4 = $end;
$5 = $signkey;
$6 = $sig;
$10 = $1;
dest=$master_key; src=$10; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$11 = $5;
dest=$signkey_key; src=$11; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$12 = ((($skval)) + 72|0);
dest=$12; src=$master_key; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$13 = $2;
$14 = (_time_from_seconds($13,$date_abs)|0);
$15 = (-1)==($14|0);
if ($15) {
$0 = -1;
$54 = $0;
STACKTOP = sp;return ($54|0);
}
$16 = $3;
$17 = (_time_from_seconds($16,$expire_abs)|0);
$18 = (-1)==($17|0);
if ($18) {
$0 = -1;
$54 = $0;
STACKTOP = sp;return ($54|0);
}
$19 = $4;
$20 = (_time_from_seconds($19,$end_abs)|0);
$21 = (-1)==($20|0);
if ($21) {
$0 = -1;
$54 = $0;
STACKTOP = sp;return ($54|0);
}
$22 = ((($skval)) + 104|0);
;HEAP32[$date_abs$byval_copy>>2]=HEAP32[$date_abs>>2]|0;HEAP32[$date_abs$byval_copy+4>>2]=HEAP32[$date_abs+4>>2]|0;
$23 = (_GNUNET_TIME_absolute_hton($date_abs$byval_copy)|0);
$24 = tempRet0;
$25 = $7;
$26 = $25;
HEAP8[$26>>0]=$23&255;HEAP8[$26+1>>0]=($23>>8)&255;HEAP8[$26+2>>0]=($23>>16)&255;HEAP8[$26+3>>0]=$23>>24;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP8[$28>>0]=$24&255;HEAP8[$28+1>>0]=($24>>8)&255;HEAP8[$28+2>>0]=($24>>16)&255;HEAP8[$28+3>>0]=$24>>24;
;HEAP8[$22>>0]=HEAP8[$7>>0]|0;HEAP8[$22+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$22+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$22+3>>0]=HEAP8[$7+3>>0]|0;HEAP8[$22+4>>0]=HEAP8[$7+4>>0]|0;HEAP8[$22+5>>0]=HEAP8[$7+5>>0]|0;HEAP8[$22+6>>0]=HEAP8[$7+6>>0]|0;HEAP8[$22+7>>0]=HEAP8[$7+7>>0]|0;
$29 = ((($skval)) + 112|0);
;HEAP32[$expire_abs$byval_copy>>2]=HEAP32[$expire_abs>>2]|0;HEAP32[$expire_abs$byval_copy+4>>2]=HEAP32[$expire_abs+4>>2]|0;
$30 = (_GNUNET_TIME_absolute_hton($expire_abs$byval_copy)|0);
$31 = tempRet0;
$32 = $8;
$33 = $32;
HEAP8[$33>>0]=$30&255;HEAP8[$33+1>>0]=($30>>8)&255;HEAP8[$33+2>>0]=($30>>16)&255;HEAP8[$33+3>>0]=$30>>24;
$34 = (($32) + 4)|0;
$35 = $34;
HEAP8[$35>>0]=$31&255;HEAP8[$35+1>>0]=($31>>8)&255;HEAP8[$35+2>>0]=($31>>16)&255;HEAP8[$35+3>>0]=$31>>24;
;HEAP8[$29>>0]=HEAP8[$8>>0]|0;HEAP8[$29+1>>0]=HEAP8[$8+1>>0]|0;HEAP8[$29+2>>0]=HEAP8[$8+2>>0]|0;HEAP8[$29+3>>0]=HEAP8[$8+3>>0]|0;HEAP8[$29+4>>0]=HEAP8[$8+4>>0]|0;HEAP8[$29+5>>0]=HEAP8[$8+5>>0]|0;HEAP8[$29+6>>0]=HEAP8[$8+6>>0]|0;HEAP8[$29+7>>0]=HEAP8[$8+7>>0]|0;
$36 = ((($skval)) + 120|0);
;HEAP32[$end_abs$byval_copy>>2]=HEAP32[$end_abs>>2]|0;HEAP32[$end_abs$byval_copy+4>>2]=HEAP32[$end_abs+4>>2]|0;
$37 = (_GNUNET_TIME_absolute_hton($end_abs$byval_copy)|0);
$38 = tempRet0;
$39 = $9;
$40 = $39;
HEAP8[$40>>0]=$37&255;HEAP8[$40+1>>0]=($37>>8)&255;HEAP8[$40+2>>0]=($37>>16)&255;HEAP8[$40+3>>0]=$37>>24;
$41 = (($39) + 4)|0;
$42 = $41;
HEAP8[$42>>0]=$38&255;HEAP8[$42+1>>0]=($38>>8)&255;HEAP8[$42+2>>0]=($38>>16)&255;HEAP8[$42+3>>0]=$38>>24;
;HEAP8[$36>>0]=HEAP8[$9>>0]|0;HEAP8[$36+1>>0]=HEAP8[$9+1>>0]|0;HEAP8[$36+2>>0]=HEAP8[$9+2>>0]|0;HEAP8[$36+3>>0]=HEAP8[$9+3>>0]|0;HEAP8[$36+4>>0]=HEAP8[$9+4>>0]|0;HEAP8[$36+5>>0]=HEAP8[$9+5>>0]|0;HEAP8[$36+6>>0]=HEAP8[$9+6>>0]|0;HEAP8[$36+7>>0]=HEAP8[$9+7>>0]|0;
$43 = ((($skval)) + 128|0);
dest=$43; src=$signkey_key; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$44 = (_htonl(1024)|0);
$45 = ((($skval)) + 64|0);
$46 = ((($45)) + 4|0);
HEAP8[$46>>0]=$44&255;HEAP8[$46+1>>0]=($44>>8)&255;HEAP8[$46+2>>0]=($44>>16)&255;HEAP8[$46+3>>0]=$44>>24;
$47 = (_htonl(96)|0);
$48 = ((($skval)) + 64|0);
HEAP8[$48>>0]=$47&255;HEAP8[$48+1>>0]=($47>>8)&255;HEAP8[$48+2>>0]=($47>>16)&255;HEAP8[$48+3>>0]=$47>>24;
$49 = ((($skval)) + 64|0);
$50 = $6;
$51 = $1;
$52 = (_GNUNET_CRYPTO_eddsa_verify(1024,$49,$50,$51)|0);
$53 = (1)!=($52|0);
if ($53) {
$0 = 0;
$54 = $0;
STACKTOP = sp;return ($54|0);
} else {
$0 = 1;
$54 = $0;
STACKTOP = sp;return ($54|0);
}
return (0)|0;
}
function _TALER_WR_verify_sign_key_enc($master_enc,$date,$expire,$end,$signkey_enc,$sig_enc) {
$master_enc = $master_enc|0;
$date = $date|0;
$expire = $expire|0;
$end = $end|0;
$signkey_enc = $signkey_enc|0;
$sig_enc = $sig_enc|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $master = 0;
var $sig = 0, $signkey = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$master = sp + 120|0;
$signkey = sp + 88|0;
$sig = sp + 24|0;
$0 = $master_enc;
$1 = $date;
$2 = $expire;
$3 = $end;
$4 = $signkey_enc;
$5 = $sig_enc;
$6 = $0;
$7 = $0;
$8 = (_strlen($7)|0);
(_GNUNET_STRINGS_string_to_data($6,$8,$master,32)|0);
$9 = $4;
$10 = $4;
$11 = (_strlen($10)|0);
(_GNUNET_STRINGS_string_to_data($9,$11,$signkey,32)|0);
$12 = $5;
$13 = $5;
$14 = (_strlen($13)|0);
(_GNUNET_STRINGS_string_to_data($12,$14,$sig,64)|0);
$15 = $1;
$16 = $2;
$17 = $3;
$18 = (_TALER_WR_verify_sign_key($master,$15,$16,$17,$signkey,$sig)|0);
STACKTOP = sp;return ($18|0);
}
function _TALER_WRALL_sign_deposit_permission($h_contract,$h_wire,$timestamp,$refund,$trans_id,$amount_plus_fee,$deposit_fee,$merchant_pub,$coin_pub,$coin_priv) {
$h_contract = $h_contract|0;
$h_wire = $h_wire|0;
$timestamp = $timestamp|0;
$refund = $refund|0;
$trans_id = $trans_id|0;
$amount_plus_fee = $amount_plus_fee|0;
$deposit_fee = $deposit_fee|0;
$merchant_pub = $merchant_pub|0;
$coin_pub = $coin_pub|0;
$coin_priv = $coin_priv|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $7 = 0, $8 = 0;
var $9 = 0, $coin = 0, $depperm = 0, $merchant = 0, $refund_abs = 0, $refund_abs$byval_copy = 0, $signature = 0, $timestamp_abs = 0, $timestamp_abs$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 432|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$refund_abs$byval_copy = sp + 24|0;
$timestamp_abs$byval_copy = sp + 16|0;
$depperm = sp + 160|0;
$timestamp_abs = sp + 8|0;
$refund_abs = sp;
$coin = sp + 128|0;
$merchant = sp + 96|0;
$11 = sp + 88|0;
$12 = sp + 80|0;
$1 = $h_contract;
$2 = $h_wire;
$3 = $timestamp;
$4 = $refund;
$5 = $trans_id;
$6 = $amount_plus_fee;
$7 = $deposit_fee;
$8 = $merchant_pub;
$9 = $coin_pub;
$10 = $coin_priv;
$13 = ((($depperm)) + 8|0);
$14 = $1;
dest=$13; src=$14; stop=dest+64|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$15 = ((($depperm)) + 72|0);
$16 = $2;
dest=$15; src=$16; stop=dest+64|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$17 = $9;
dest=$coin; src=$17; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$18 = $8;
dest=$merchant; src=$18; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$19 = $3;
$20 = (_time_from_seconds($19,$timestamp_abs)|0);
$21 = (-1)==($20|0);
if ($21) {
$0 = 0;
$60 = $0;
STACKTOP = sp;return ($60|0);
}
$22 = $4;
$23 = (_time_from_seconds($22,$refund_abs)|0);
$24 = (-1)==($23|0);
if ($24) {
$0 = 0;
$60 = $0;
STACKTOP = sp;return ($60|0);
} else {
$25 = ((($depperm)) + 136|0);
;HEAP32[$timestamp_abs$byval_copy>>2]=HEAP32[$timestamp_abs>>2]|0;HEAP32[$timestamp_abs$byval_copy+4>>2]=HEAP32[$timestamp_abs+4>>2]|0;
$26 = (_GNUNET_TIME_absolute_hton($timestamp_abs$byval_copy)|0);
$27 = tempRet0;
$28 = $11;
$29 = $28;
HEAP8[$29>>0]=$26&255;HEAP8[$29+1>>0]=($26>>8)&255;HEAP8[$29+2>>0]=($26>>16)&255;HEAP8[$29+3>>0]=$26>>24;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP8[$31>>0]=$27&255;HEAP8[$31+1>>0]=($27>>8)&255;HEAP8[$31+2>>0]=($27>>16)&255;HEAP8[$31+3>>0]=$27>>24;
;HEAP8[$25>>0]=HEAP8[$11>>0]|0;HEAP8[$25+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$25+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$25+3>>0]=HEAP8[$11+3>>0]|0;HEAP8[$25+4>>0]=HEAP8[$11+4>>0]|0;HEAP8[$25+5>>0]=HEAP8[$11+5>>0]|0;HEAP8[$25+6>>0]=HEAP8[$11+6>>0]|0;HEAP8[$25+7>>0]=HEAP8[$11+7>>0]|0;
$32 = ((($depperm)) + 144|0);
;HEAP32[$refund_abs$byval_copy>>2]=HEAP32[$refund_abs>>2]|0;HEAP32[$refund_abs$byval_copy+4>>2]=HEAP32[$refund_abs+4>>2]|0;
$33 = (_GNUNET_TIME_absolute_hton($refund_abs$byval_copy)|0);
$34 = tempRet0;
$35 = $12;
$36 = $35;
HEAP8[$36>>0]=$33&255;HEAP8[$36+1>>0]=($33>>8)&255;HEAP8[$36+2>>0]=($33>>16)&255;HEAP8[$36+3>>0]=$33>>24;
$37 = (($35) + 4)|0;
$38 = $37;
HEAP8[$38>>0]=$34&255;HEAP8[$38+1>>0]=($34>>8)&255;HEAP8[$38+2>>0]=($34>>16)&255;HEAP8[$38+3>>0]=$34>>24;
;HEAP8[$32>>0]=HEAP8[$12>>0]|0;HEAP8[$32+1>>0]=HEAP8[$12+1>>0]|0;HEAP8[$32+2>>0]=HEAP8[$12+2>>0]|0;HEAP8[$32+3>>0]=HEAP8[$12+3>>0]|0;HEAP8[$32+4>>0]=HEAP8[$12+4>>0]|0;HEAP8[$32+5>>0]=HEAP8[$12+5>>0]|0;HEAP8[$32+6>>0]=HEAP8[$12+6>>0]|0;HEAP8[$32+7>>0]=HEAP8[$12+7>>0]|0;
$39 = $5;
$40 = (_GNUNET_htonll($39,0)|0);
$41 = tempRet0;
$42 = ((($depperm)) + 152|0);
$43 = $42;
$44 = $43;
HEAP8[$44>>0]=$40&255;HEAP8[$44+1>>0]=($40>>8)&255;HEAP8[$44+2>>0]=($40>>16)&255;HEAP8[$44+3>>0]=$40>>24;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP8[$46>>0]=$41&255;HEAP8[$46+1>>0]=($41>>8)&255;HEAP8[$46+2>>0]=($41>>16)&255;HEAP8[$46+3>>0]=$41>>24;
$47 = ((($depperm)) + 160|0);
$48 = $6;
_TALER_amount_hton($47,$48);
$49 = ((($depperm)) + 184|0);
$50 = $7;
_TALER_amount_hton($49,$50);
$51 = ((($depperm)) + 208|0);
dest=$51; src=$merchant; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$52 = ((($depperm)) + 240|0);
dest=$52; src=$coin; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$53 = (_htonl(272)|0);
HEAP8[$depperm>>0]=$53&255;HEAP8[$depperm+1>>0]=($53>>8)&255;HEAP8[$depperm+2>>0]=($53>>16)&255;HEAP8[$depperm+3>>0]=$53>>24;
$54 = (_htonl(1201)|0);
$55 = ((($depperm)) + 4|0);
HEAP8[$55>>0]=$54&255;HEAP8[$55+1>>0]=($54>>8)&255;HEAP8[$55+2>>0]=($54>>16)&255;HEAP8[$55+3>>0]=$54>>24;
$56 = (_GNUNET_xmalloc_(64,19102,1137)|0);
$signature = $56;
$57 = $10;
$58 = $signature;
(_GNUNET_CRYPTO_eddsa_sign($57,$depperm,$58)|0);
$59 = $signature;
$0 = $59;
$60 = $0;
STACKTOP = sp;return ($60|0);
}
return (0)|0;
}
function _TALER_WR_verify_confirmation($h_contract,$h_wire,$timestamp,$refund,$0,$1,$amount_minus_fee,$coin_pub,$merchant_pub,$sig,$exchange_pub) {
$h_contract = $h_contract|0;
$h_wire = $h_wire|0;
$timestamp = $timestamp|0;
$refund = $refund|0;
$0 = $0|0;
$1 = $1|0;
$amount_minus_fee = $amount_minus_fee|0;
$coin_pub = $coin_pub|0;
$merchant_pub = $merchant_pub|0;
$sig = $sig|0;
$exchange_pub = $exchange_pub|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $coin = 0, $dc = 0, $merchant = 0, $refund_abs = 0, $refund_abs$byval_copy = 0, $timestamp_abs = 0, $timestamp_abs$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$refund_abs$byval_copy = sp + 32|0;
$timestamp_abs$byval_copy = sp + 24|0;
$7 = sp + 16|0;
$dc = sp + 160|0;
$coin = sp + 128|0;
$merchant = sp + 96|0;
$timestamp_abs = sp + 8|0;
$refund_abs = sp;
$13 = sp + 88|0;
$14 = sp + 80|0;
$3 = $h_contract;
$4 = $h_wire;
$5 = $timestamp;
$6 = $refund;
$15 = $7;
$16 = $15;
HEAP32[$16>>2] = $0;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $1;
$8 = $amount_minus_fee;
$9 = $coin_pub;
$10 = $merchant_pub;
$11 = $sig;
$12 = $exchange_pub;
$19 = ((($dc)) + 8|0);
$20 = $3;
dest=$19; src=$20; stop=dest+64|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$21 = ((($dc)) + 72|0);
$22 = $4;
dest=$21; src=$22; stop=dest+64|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$23 = $9;
dest=$coin; src=$23; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$24 = $10;
dest=$merchant; src=$24; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$25 = ((($dc)) + 216|0);
dest=$25; src=$merchant; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$26 = ((($dc)) + 184|0);
dest=$26; src=$coin; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$27 = $5;
$28 = (_time_from_seconds($27,$timestamp_abs)|0);
$29 = (-1)==($28|0);
if ($29) {
$2 = -1;
$69 = $2;
STACKTOP = sp;return ($69|0);
}
$30 = $6;
$31 = (_time_from_seconds($30,$refund_abs)|0);
$32 = (-1)==($31|0);
if ($32) {
$2 = -1;
$69 = $2;
STACKTOP = sp;return ($69|0);
}
$33 = ((($dc)) + 144|0);
;HEAP32[$timestamp_abs$byval_copy>>2]=HEAP32[$timestamp_abs>>2]|0;HEAP32[$timestamp_abs$byval_copy+4>>2]=HEAP32[$timestamp_abs+4>>2]|0;
$34 = (_GNUNET_TIME_absolute_hton($timestamp_abs$byval_copy)|0);
$35 = tempRet0;
$36 = $13;
$37 = $36;
HEAP8[$37>>0]=$34&255;HEAP8[$37+1>>0]=($34>>8)&255;HEAP8[$37+2>>0]=($34>>16)&255;HEAP8[$37+3>>0]=$34>>24;
$38 = (($36) + 4)|0;
$39 = $38;
HEAP8[$39>>0]=$35&255;HEAP8[$39+1>>0]=($35>>8)&255;HEAP8[$39+2>>0]=($35>>16)&255;HEAP8[$39+3>>0]=$35>>24;
;HEAP8[$33>>0]=HEAP8[$13>>0]|0;HEAP8[$33+1>>0]=HEAP8[$13+1>>0]|0;HEAP8[$33+2>>0]=HEAP8[$13+2>>0]|0;HEAP8[$33+3>>0]=HEAP8[$13+3>>0]|0;HEAP8[$33+4>>0]=HEAP8[$13+4>>0]|0;HEAP8[$33+5>>0]=HEAP8[$13+5>>0]|0;HEAP8[$33+6>>0]=HEAP8[$13+6>>0]|0;HEAP8[$33+7>>0]=HEAP8[$13+7>>0]|0;
$40 = ((($dc)) + 152|0);
;HEAP32[$refund_abs$byval_copy>>2]=HEAP32[$refund_abs>>2]|0;HEAP32[$refund_abs$byval_copy+4>>2]=HEAP32[$refund_abs+4>>2]|0;
$41 = (_GNUNET_TIME_absolute_hton($refund_abs$byval_copy)|0);
$42 = tempRet0;
$43 = $14;
$44 = $43;
HEAP8[$44>>0]=$41&255;HEAP8[$44+1>>0]=($41>>8)&255;HEAP8[$44+2>>0]=($41>>16)&255;HEAP8[$44+3>>0]=$41>>24;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP8[$46>>0]=$42&255;HEAP8[$46+1>>0]=($42>>8)&255;HEAP8[$46+2>>0]=($42>>16)&255;HEAP8[$46+3>>0]=$42>>24;
;HEAP8[$40>>0]=HEAP8[$14>>0]|0;HEAP8[$40+1>>0]=HEAP8[$14+1>>0]|0;HEAP8[$40+2>>0]=HEAP8[$14+2>>0]|0;HEAP8[$40+3>>0]=HEAP8[$14+3>>0]|0;HEAP8[$40+4>>0]=HEAP8[$14+4>>0]|0;HEAP8[$40+5>>0]=HEAP8[$14+5>>0]|0;HEAP8[$40+6>>0]=HEAP8[$14+6>>0]|0;HEAP8[$40+7>>0]=HEAP8[$14+7>>0]|0;
$47 = ((($dc)) + 160|0);
$48 = $8;
_TALER_amount_hton($47,$48);
$49 = $7;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = (($49) + 4)|0;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$55 = (_GNUNET_htonll($51,$54)|0);
$56 = tempRet0;
$57 = ((($dc)) + 136|0);
$58 = $57;
$59 = $58;
HEAP8[$59>>0]=$55&255;HEAP8[$59+1>>0]=($55>>8)&255;HEAP8[$59+2>>0]=($55>>16)&255;HEAP8[$59+3>>0]=$55>>24;
$60 = (($58) + 4)|0;
$61 = $60;
HEAP8[$61>>0]=$56&255;HEAP8[$61+1>>0]=($56>>8)&255;HEAP8[$61+2>>0]=($56>>16)&255;HEAP8[$61+3>>0]=$56>>24;
$62 = (_htonl(1033)|0);
$63 = ((($dc)) + 4|0);
HEAP8[$63>>0]=$62&255;HEAP8[$63+1>>0]=($62>>8)&255;HEAP8[$63+2>>0]=($62>>16)&255;HEAP8[$63+3>>0]=$62>>24;
$64 = (_htonl(248)|0);
HEAP8[$dc>>0]=$64&255;HEAP8[$dc+1>>0]=($64>>8)&255;HEAP8[$dc+2>>0]=($64>>16)&255;HEAP8[$dc+3>>0]=$64>>24;
$65 = $11;
$66 = $12;
$67 = (_GNUNET_CRYPTO_eddsa_verify(1033,$dc,$65,$66)|0);
$68 = (-1)==($67|0);
if ($68) {
$2 = 0;
$69 = $2;
STACKTOP = sp;return ($69|0);
} else {
$2 = 1;
$69 = $2;
STACKTOP = sp;return ($69|0);
}
return (0)|0;
}
function _TALER_WRALL_make_eddsa_signature($priv,$purp) {
$priv = $priv|0;
$purp = $purp|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $sig = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $priv;
$1 = $purp;
$2 = (_GNUNET_xmalloc_(64,19102,1248)|0);
$sig = $2;
$3 = $0;
$4 = $1;
$5 = $sig;
(_GNUNET_CRYPTO_eddsa_sign($3,$4,$5)|0);
$6 = $sig;
STACKTOP = sp;return ($6|0);
}
function _DEBUG_WR_get_purpose($test) {
$test = $test|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $test;
$1 = $0;
$2 = HEAPU8[$1>>0]|(HEAPU8[$1+1>>0]<<8)|(HEAPU8[$1+2>>0]<<16)|(HEAPU8[$1+3>>0]<<24);
$3 = (_ntohl($2)|0);
STACKTOP = sp;return ($3|0);
}
function _TALER_WRALL_get_amount($0,$1,$fraction,$cur) {
$0 = $0|0;
$1 = $1|0;
$fraction = $fraction|0;
$cur = $cur|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $amount = 0, $ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$3 = sp + 24|0;
$amount = sp;
$6 = $3;
$7 = $6;
HEAP32[$7>>2] = $0;
$8 = (($6) + 4)|0;
$9 = $8;
HEAP32[$9>>2] = $1;
$4 = $fraction;
$5 = $cur;
$10 = $5;
$11 = (_TALER_amount_get_zero($10,$amount)|0);
$12 = (1)!=($11|0);
if ($12) {
$2 = 0;
$28 = $2;
STACKTOP = sp;return ($28|0);
} else {
$13 = $3;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = $amount;
$20 = $19;
HEAP32[$20>>2] = $15;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = $18;
$23 = $4;
$24 = ((($amount)) + 8|0);
HEAP32[$24>>2] = $23;
$25 = (_GNUNET_xmalloc_(24,19102,1291)|0);
$ptr = $25;
$26 = $ptr;
;HEAP32[$26>>2]=HEAP32[$amount>>2]|0;HEAP32[$26+4>>2]=HEAP32[$amount+4>>2]|0;HEAP32[$26+8>>2]=HEAP32[$amount+8>>2]|0;HEAP32[$26+12>>2]=HEAP32[$amount+12>>2]|0;HEAP32[$26+16>>2]=HEAP32[$amount+16>>2]|0;HEAP32[$26+20>>2]=HEAP32[$amount+20>>2]|0;
$27 = $ptr;
$2 = $27;
$28 = $2;
STACKTOP = sp;return ($28|0);
}
return (0)|0;
}
function _TALER_WR_hello_world() {
var $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
(_printf(19244,$vararg_buffer)|0);
STACKTOP = sp;return;
}
function _TALER_WR_get_value($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = $1;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
tempRet0 = ($7);
STACKTOP = sp;return ($4|0);
}
function _TALER_WR_get_fraction($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ((($1)) + 8|0);
$3 = HEAP32[$2>>2]|0;
STACKTOP = sp;return ($3|0);
}
function _TALER_WR_get_currency($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ((($1)) + 12|0);
STACKTOP = sp;return ($2|0);
}
function _TALER_WR_multiply_amount($a,$factor) {
$a = $a|0;
$factor = $factor|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp;
$1 = $a;
$2 = $factor;
$3 = $1;
$4 = ((($3)) + 12|0);
(_TALER_amount_get_zero($4,$tmp)|0);
$5 = $1;
$6 = (_TALER_amount_normalize($5)|0);
$7 = (-1)==($6|0);
if ($7) {
$0 = -1;
$56 = $0;
STACKTOP = sp;return ($56|0);
}
$8 = $1;
$9 = $8;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = $2;
$16 = (___muldi3(($11|0),($14|0),($15|0),0)|0);
$17 = tempRet0;
$18 = $tmp;
$19 = $18;
HEAP32[$19>>2] = $16;
$20 = (($18) + 4)|0;
$21 = $20;
HEAP32[$21>>2] = $17;
$22 = $tmp;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = (($22) + 4)|0;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = $2;
$29 = (___udivdi3(($24|0),($27|0),($28|0),0)|0);
$30 = tempRet0;
$31 = $1;
$32 = $31;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = (($32) + 4)|0;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = ($29|0)!=($34|0);
$39 = ($30|0)!=($37|0);
$40 = $38 | $39;
if ($40) {
$0 = -1;
$56 = $0;
STACKTOP = sp;return ($56|0);
}
$41 = $1;
$42 = ((($41)) + 8|0);
$43 = HEAP32[$42>>2]|0;
$44 = $2;
$45 = Math_imul($43, $44)|0;
$46 = ((($tmp)) + 8|0);
HEAP32[$46>>2] = $45;
$47 = ((($tmp)) + 8|0);
$48 = HEAP32[$47>>2]|0;
$49 = $2;
$50 = (($48>>>0) / ($49>>>0))&-1;
$51 = $1;
$52 = ((($51)) + 8|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($50|0)!=($53|0);
if ($54) {
$0 = -1;
$56 = $0;
STACKTOP = sp;return ($56|0);
} else {
(_TALER_amount_normalize($tmp)|0);
$55 = $1;
;HEAP32[$55>>2]=HEAP32[$tmp>>2]|0;HEAP32[$55+4>>2]=HEAP32[$tmp+4>>2]|0;HEAP32[$55+8>>2]=HEAP32[$tmp+8>>2]|0;HEAP32[$55+12>>2]=HEAP32[$tmp+12>>2]|0;HEAP32[$55+16>>2]=HEAP32[$tmp+16>>2]|0;HEAP32[$55+20>>2]=HEAP32[$tmp+20>>2]|0;
$0 = 1;
$56 = $0;
STACKTOP = sp;return ($56|0);
}
return (0)|0;
}
function _TALER_WR_multiply_amounts($a,$b) {
$a = $a|0;
$b = $b|0;
var $0 = 0.0, $1 = 0, $10 = 0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0;
var $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ad = 0.0, $bd = 0.0, $ret = 0.0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $b;
$3 = $1;
$4 = (_TALER_amount_normalize($3)|0);
$5 = (-1)==($4|0);
if ($5) {
$0 = -1.0;
$43 = $0;
STACKTOP = sp;return (+$43);
}
$6 = $2;
$7 = (_TALER_amount_normalize($6)|0);
$8 = (-1)==($7|0);
if ($8) {
$0 = -1.0;
$43 = $0;
STACKTOP = sp;return (+$43);
} else {
$9 = $1;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$12 = (+($11>>>0));
$13 = $12 / 1.0E+6;
$ad = $13;
$14 = $2;
$15 = ((($14)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = (+($16>>>0));
$18 = $17 / 1.0E+6;
$bd = $18;
$19 = $1;
$20 = $19;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + 4)|0;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = (+($22>>>0)) + (4294967296.0*(+($25>>>0)));
$27 = $ad;
$28 = $27 + $26;
$ad = $28;
$29 = $2;
$30 = $29;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = (($30) + 4)|0;
$34 = $33;
$35 = HEAP32[$34>>2]|0;
$36 = (+($32>>>0)) + (4294967296.0*(+($35>>>0)));
$37 = $bd;
$38 = $37 + $36;
$bd = $38;
$39 = $ad;
$40 = $bd;
$41 = $39 * $40;
$ret = $41;
$42 = $ret;
$0 = $42;
$43 = $0;
STACKTOP = sp;return (+$43);
}
return +(0.0);
}
function _GNUNET_xmalloc_($size,$filename,$linenumber) {
$size = $size|0;
$filename = $filename|0;
$linenumber = $linenumber|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $ret = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer8 = sp + 24|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$0 = $size;
$1 = $filename;
$2 = $linenumber;
$3 = $0;
$4 = ($3>>>0)<=(41943040);
if (!($4)) {
$log_line = 74;
$5 = HEAP32[185]|0;
$6 = ($5|0)==(-1);
if ($6) {
$7 = $log_line;
$8 = (_GNUNET_get_log_call_status(1,0,19285,19305,$7)|0);
HEAP32[185] = $8;
}
$9 = (_GNUNET_get_log_skip()|0);
$10 = ($9|0)>(0);
if ($10) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$11 = HEAP32[185]|0;
$12 = ($11|0)!=(0);
if (!($12)) {
_GNUNET_abort_();
// unreachable;
}
$13 = $1;
$14 = $2;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $14;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$15 = $0;
$16 = $1;
$17 = $2;
$18 = (_GNUNET_xmalloc_unchecked_($15,$16,$17)|0);
$ret = $18;
$19 = $ret;
$20 = (0|0)==($19|0);
if (!($20)) {
$40 = $ret;
STACKTOP = sp;return ($40|0);
}
$log_line1 = 81;
$21 = HEAP32[186]|0;
$22 = ($21|0)==(-1);
if ($22) {
$23 = $log_line1;
$24 = (_GNUNET_get_log_call_status(1,21106,19285,19305,$23)|0);
HEAP32[186] = $24;
}
$25 = (_GNUNET_get_log_skip()|0);
$26 = ($25|0)>(0);
if ($26) {
_GNUNET_log_skip(-1,0);
} else {
$27 = HEAP32[186]|0;
$28 = ($27|0)!=(0);
if ($28) {
$29 = (___errno_location()|0);
$30 = HEAP32[$29>>2]|0;
$31 = (_strerror($30)|0);
HEAP32[$vararg_buffer2>>2] = 19321;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 19285;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = 81;
$vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
HEAP32[$vararg_ptr7>>2] = $31;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer2);
}
}
$log_line2 = 82;
$32 = HEAP32[187]|0;
$33 = ($32|0)==(-1);
if ($33) {
$34 = $log_line2;
$35 = (_GNUNET_get_log_call_status(1,0,19285,19305,$34)|0);
HEAP32[187] = $35;
}
$36 = (_GNUNET_get_log_skip()|0);
$37 = ($36|0)>(0);
if ($37) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$38 = HEAP32[187]|0;
$39 = ($38|0)!=(0);
if (!($39)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer8>>2] = 19285;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = 82;
_GNUNET_log_nocheck(1,61615,$vararg_buffer8);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_xmalloc_unchecked_($size,$filename,$linenumber) {
$size = $size|0;
$filename = $filename|0;
$linenumber = $linenumber|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $size;
$2 = $filename;
$3 = $linenumber;
$4 = $1;
$5 = (_malloc($4)|0);
$result = $5;
$6 = $result;
$7 = (0|0)==($6|0);
if ($7) {
$0 = 0;
$11 = $0;
STACKTOP = sp;return ($11|0);
} else {
$8 = $result;
$9 = $1;
_memset(($8|0),0,($9|0))|0;
$10 = $result;
$0 = $10;
$11 = $0;
STACKTOP = sp;return ($11|0);
}
return (0)|0;
}
function _GNUNET_xfree_($ptr,$filename,$linenumber) {
$ptr = $ptr|0;
$filename = $filename|0;
$linenumber = $linenumber|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $ptr;
$1 = $filename;
$2 = $linenumber;
$3 = $0;
$4 = (0|0)!=($3|0);
if ($4) {
$15 = $0;
_free($15);
STACKTOP = sp;return;
}
$log_line = 237;
$5 = HEAP32[188]|0;
$6 = ($5|0)==(-1);
if ($6) {
$7 = $log_line;
$8 = (_GNUNET_get_log_call_status(1,0,19285,19328,$7)|0);
HEAP32[188] = $8;
}
$9 = (_GNUNET_get_log_skip()|0);
$10 = ($9|0)>(0);
if ($10) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$11 = HEAP32[188]|0;
$12 = ($11|0)!=(0);
if (!($12)) {
_GNUNET_abort_();
// unreachable;
}
$13 = $1;
$14 = $2;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $14;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
function _GNUNET_xstrdup_($str,$filename,$linenumber) {
$str = $str|0;
$filename = $filename|0;
$linenumber = $linenumber|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $res = 0, $slen = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $str;
$1 = $filename;
$2 = $linenumber;
$3 = $0;
$4 = ($3|0)!=(0|0);
if ($4) {
$15 = $0;
$16 = (_strlen($15)|0);
$17 = (($16) + 1)|0;
$slen = $17;
$18 = $slen;
$19 = $1;
$20 = $2;
$21 = (_GNUNET_xmalloc_($18,$19,$20)|0);
$res = $21;
$22 = $res;
$23 = $0;
$24 = $slen;
_memcpy(($22|0),($23|0),($24|0))|0;
$25 = $res;
STACKTOP = sp;return ($25|0);
}
$log_line = 278;
$5 = HEAP32[189]|0;
$6 = ($5|0)==(-1);
if ($6) {
$7 = $log_line;
$8 = (_GNUNET_get_log_call_status(1,0,19285,19342,$7)|0);
HEAP32[189] = $8;
}
$9 = (_GNUNET_get_log_skip()|0);
$10 = ($9|0)>(0);
if ($10) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$11 = HEAP32[189]|0;
$12 = ($11|0)!=(0);
if (!($12)) {
_GNUNET_abort_();
// unreachable;
}
$13 = $1;
$14 = $2;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $14;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_snprintf($buf,$size,$format,$varargs) {
$buf = $buf|0;
$size = $size|0;
$format = $format|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $args = 0;
var $log_line = 0, $ret = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$args = sp + 16|0;
$0 = $buf;
$1 = $size;
$2 = $format;
HEAP32[$args>>2] = $varargs;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (_vsnprintf($3,$4,$5,$args)|0);
$ret = $6;
$7 = $ret;
$8 = $1;
$9 = ($7>>>0)<($8>>>0);
if ($9) {
$18 = $ret;
STACKTOP = sp;return ($18|0);
}
$log_line = 433;
$10 = HEAP32[190]|0;
$11 = ($10|0)==(-1);
if ($11) {
$12 = $log_line;
$13 = (_GNUNET_get_log_call_status(1,0,19285,19358,$12)|0);
HEAP32[190] = $13;
}
$14 = (_GNUNET_get_log_skip()|0);
$15 = ($14|0)>(0);
if ($15) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$16 = HEAP32[190]|0;
$17 = ($16|0)!=(0);
if (!($17)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19285;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 433;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_htonll($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$2 = sp;
$3 = $2;
$4 = $3;
HEAP32[$4>>2] = $0;
$5 = (($3) + 4)|0;
$6 = $5;
HEAP32[$6>>2] = $1;
$7 = $2;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (_htonl($9)|0);
$14 = $2;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (_htonl($19)|0);
$21 = (_i64Add(0,($13|0),($20|0),0)|0);
$22 = tempRet0;
tempRet0 = ($22);
STACKTOP = sp;return ($21|0);
}
function _GNUNET_ntohll($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$2 = sp;
$3 = $2;
$4 = $3;
HEAP32[$4>>2] = $0;
$5 = (($3) + 4)|0;
$6 = $5;
HEAP32[$6>>2] = $1;
$7 = $2;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (_ntohl($9)|0);
$14 = $2;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (_ntohl($19)|0);
$21 = (_i64Add(0,($13|0),($20|0),0)|0);
$22 = tempRet0;
tempRet0 = ($22);
STACKTOP = sp;return ($21|0);
}
function _GNUNET_util_cl_init() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[3963]|0;
HEAP32[17644] = $0;
return;
}
function _GNUNET_util_cl_fini() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _GNUNET_abort_() {
var label = 0, sp = 0;
sp = STACKTOP;
_abort();
// unreachable;
}
function _GNUNET_get_log_call_status($caller_level,$comp,$file,$function,$line) {
$caller_level = $caller_level|0;
$comp = $comp|0;
$file = $file|0;
$function = $function|0;
$line = $line|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, $force_only = 0, $i = 0, $ld = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $caller_level;
$2 = $comp;
$3 = $file;
$4 = $function;
$5 = $line;
$6 = $2;
$7 = (0|0)==($6|0);
if ($7) {
$8 = HEAP32[17645]|0;
$2 = $8;
}
$9 = HEAP32[17646]|0;
$10 = ($9|0)>=(0);
$11 = HEAP32[17647]|0;
$12 = (0)==($11|0);
$or$cond = $10 & $12;
if ($or$cond) {
$13 = $1;
$14 = HEAP32[17646]|0;
$15 = ($13|0)<=($14|0);
$16 = $15&1;
$0 = $16;
$72 = $0;
STACKTOP = sp;return ($72|0);
}
$17 = HEAP32[17646]|0;
$18 = ($17|0)>=(0);
$19 = $18&1;
$force_only = $19;
$i = 0;
while(1) {
$20 = $i;
$21 = HEAP32[17648]|0;
$22 = ($20|0)<($21|0);
if (!($22)) {
break;
}
$23 = $i;
$24 = HEAP32[17649]|0;
$25 = (($24) + (($23*112)|0)|0);
$ld = $25;
$26 = $force_only;
$27 = ($26|0)!=(0);
if ($27) {
$28 = $ld;
$29 = ((($28)) + 108|0);
$30 = HEAP32[$29>>2]|0;
$31 = ($30|0)!=(0);
if ($31) {
label = 9;
}
} else {
label = 9;
}
if ((label|0) == 9) {
label = 0;
$32 = $5;
$33 = $ld;
$34 = ((($33)) + 96|0);
$35 = HEAP32[$34>>2]|0;
$36 = ($32|0)>=($35|0);
if ($36) {
$37 = $5;
$38 = $ld;
$39 = ((($38)) + 100|0);
$40 = HEAP32[$39>>2]|0;
$41 = ($37|0)<=($40|0);
if ($41) {
$42 = $ld;
$43 = $2;
$44 = (_regexec($42,$43,0,0,0)|0);
$45 = (0)==($44|0);
if ($45) {
$46 = $ld;
$47 = ((($46)) + 32|0);
$48 = $3;
$49 = (_regexec($47,$48,0,0,0)|0);
$50 = (0)==($49|0);
if ($50) {
$51 = $ld;
$52 = ((($51)) + 64|0);
$53 = $4;
$54 = (_regexec($52,$53,0,0,0)|0);
$55 = (0)==($54|0);
if ($55) {
label = 14;
break;
}
}
}
}
}
}
$62 = $i;
$63 = (($62) + 1)|0;
$i = $63;
}
if ((label|0) == 14) {
$56 = $1;
$57 = $ld;
$58 = ((($57)) + 104|0);
$59 = HEAP32[$58>>2]|0;
$60 = ($56|0)<=($59|0);
$61 = $60&1;
$0 = $61;
$72 = $0;
STACKTOP = sp;return ($72|0);
}
$64 = HEAP32[17646]|0;
$65 = ($64|0)>=(0);
$66 = $1;
if ($65) {
$67 = HEAP32[17646]|0;
$68 = ($66|0)<=($67|0);
$69 = $68&1;
$0 = $69;
$72 = $0;
STACKTOP = sp;return ($72|0);
} else {
$70 = ($66|0)<=(2);
$71 = $70&1;
$0 = $71;
$72 = $0;
STACKTOP = sp;return ($72|0);
}
return (0)|0;
}
function _setup_log_file($tm) {
$tm = $tm|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0, $9 = 0, $altlog = 0, $altlog_fd = 0, $dup_return = 0, $fn = 0, $leftsquare = 0, $log_line = 0, $logfile_copy = 0, $vararg_buffer = 0, $vararg_buffer3 = 0;
var $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr2 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 4176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$fn = sp + 76|0;
$1 = $tm;
$2 = HEAP32[17651]|0;
$3 = (0|0)==($2|0);
if ($3) {
$0 = -1;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
$4 = HEAP32[17651]|0;
$5 = $1;
$6 = (_strftime(($fn|0),4097,($4|0),($5|0))|0);
$7 = (0)==($6|0);
if ($7) {
$0 = -1;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
$8 = (_strrchr($fn,91)|0);
$leftsquare = $8;
$9 = $leftsquare;
$10 = (0|0)!=($9|0);
if ($10) {
$11 = $leftsquare;
$12 = ((($11)) + 1|0);
$13 = HEAP8[$12>>0]|0;
$14 = $13 << 24 >> 24;
$15 = (93)==($14|0);
if ($15) {
$16 = (_GNUNET_xstrdup_($fn,19404,344)|0);
$logfile_copy = $16;
$17 = $leftsquare;
$18 = $17;
$19 = $fn;
$20 = (($18) - ($19))|0;
$21 = $logfile_copy;
$22 = (($21) + ($20)|0);
HEAP8[$22>>0] = 0;
$23 = $leftsquare;
$24 = $23;
$25 = $fn;
$26 = (($24) - ($25))|0;
$27 = (($26) + 1)|0;
$28 = $logfile_copy;
$29 = (($28) + ($27)|0);
HEAP8[$29>>0] = 0;
$30 = $logfile_copy;
$31 = (_getpid()|0);
$32 = $leftsquare;
$33 = $32;
$34 = $fn;
$35 = (($33) - ($34))|0;
$36 = (($35) + 2)|0;
$37 = $logfile_copy;
$38 = (($37) + ($36)|0);
HEAP32[$vararg_buffer>>2] = $30;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $31;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $38;
(_snprintf($fn,4096,19427,$vararg_buffer)|0);
$39 = $logfile_copy;
_GNUNET_xfree_($39,19404,354);
}
}
$40 = (_strcmp($fn,71678)|0);
$41 = (0)==($40|0);
if ($41) {
$0 = 1;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
_log_rotate(71678);
(_strcpy(71678,$fn)|0);
HEAP32[$vararg_buffer3>>2] = 420;
$42 = (_open($fn,1089,$vararg_buffer3)|0);
$altlog_fd = $42;
$43 = $altlog_fd;
$44 = (-1)!=($43|0);
do {
if ($44) {
$45 = HEAP32[17644]|0;
$46 = (0|0)!=($45|0);
if ($46) {
$47 = HEAP32[17644]|0;
(_fclose($47)|0);
}
$48 = $altlog_fd;
$49 = (_dup2($48,2)|0);
$dup_return = $49;
$50 = $altlog_fd;
(_close($50)|0);
$51 = $dup_return;
$52 = (-1)!=($51|0);
if (!($52)) {
$altlog_fd = -1;
break;
}
$53 = (___fdopen(2,19434)|0);
$altlog = $53;
$54 = $altlog;
$55 = (0|0)==($54|0);
if ($55) {
(_close(2)|0);
$altlog_fd = -1;
}
}
} while(0);
$56 = $altlog_fd;
$57 = (-1)==($56|0);
if (!($57)) {
$69 = $altlog;
HEAP32[17644] = $69;
$0 = 1;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
$log_line = 392;
$58 = HEAP32[191]|0;
$59 = ($58|0)==(-1);
if ($59) {
$60 = $log_line;
$61 = (_GNUNET_get_log_call_status(1,0,19404,19437,$60)|0);
HEAP32[191] = $61;
}
$62 = (_GNUNET_get_log_skip()|0);
$63 = ($62|0)>(0);
if ($63) {
_GNUNET_log_skip(-1,0);
} else {
$64 = HEAP32[191]|0;
$65 = ($64|0)!=(0);
if ($65) {
$66 = (___errno_location()|0);
$67 = HEAP32[$66>>2]|0;
$68 = (_strerror($67)|0);
HEAP32[$vararg_buffer6>>2] = 38567;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = $fn;
$vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
HEAP32[$vararg_ptr10>>2] = 19404;
$vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
HEAP32[$vararg_ptr11>>2] = 392;
$vararg_ptr12 = ((($vararg_buffer6)) + 16|0);
HEAP32[$vararg_ptr12>>2] = $68;
_GNUNET_log_nocheck(1,19580,$vararg_buffer6);
}
}
$0 = -1;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
function _log_rotate($new_name) {
$new_name = $new_name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $discard = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $new_name;
$1 = $0;
$2 = HEAP8[$1>>0]|0;
$3 = $2 << 24 >> 24;
$4 = (0)==($3|0);
if ($4) {
STACKTOP = sp;return;
}
$5 = HEAP32[17652]|0;
$6 = (($5>>>0) % 3)&-1;
$7 = (70612 + ($6<<2)|0);
$8 = HEAP32[$7>>2]|0;
$discard = $8;
$9 = $discard;
$10 = (0|0)!=($9|0);
if ($10) {
$11 = $discard;
(_unlink($11)|0);
$12 = $discard;
_GNUNET_xfree_($12,19404,314);
}
$13 = $0;
$14 = (_GNUNET_xstrdup_($13,19404,316)|0);
$15 = HEAP32[17652]|0;
$16 = (($15>>>0) % 3)&-1;
$17 = (70612 + ($16<<2)|0);
HEAP32[$17>>2] = $14;
$18 = HEAP32[17652]|0;
$19 = (($18) + 1)|0;
HEAP32[17652] = $19;
STACKTOP = sp;return;
}
function _GNUNET_get_log_skip() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17656]|0;
return ($0|0);
}
function _GNUNET_log_skip($n,$check_reset) {
$n = $n|0;
$check_reset = $check_reset|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $log_line = 0, $ok = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $n;
$1 = $check_reset;
$2 = $0;
$3 = (0)==($2|0);
if (!($3)) {
$19 = $0;
$20 = HEAP32[17656]|0;
$21 = (($20) + ($19))|0;
HEAP32[17656] = $21;
STACKTOP = sp;return;
}
$4 = HEAP32[17656]|0;
$5 = (0)==($4|0);
$6 = $5&1;
$ok = $6;
HEAP32[17656] = 0;
$7 = $1;
$8 = ($7|0)==(0);
$9 = $ok;
$10 = ($9|0)!=(0);
$or$cond = $8 | $10;
if ($or$cond) {
STACKTOP = sp;return;
}
$log_line = 867;
$11 = HEAP32[192]|0;
$12 = ($11|0)==(-1);
if ($12) {
$13 = $log_line;
$14 = (_GNUNET_get_log_call_status(1,0,19404,19452,$13)|0);
HEAP32[192] = $14;
}
$15 = (_GNUNET_get_log_skip()|0);
$16 = ($15|0)>(0);
if ($16) {
_GNUNET_log_skip(-1,0);
STACKTOP = sp;return;
}
$17 = HEAP32[192]|0;
$18 = ($17|0)!=(0);
if (!($18)) {
STACKTOP = sp;return;
}
HEAP32[$vararg_buffer>>2] = 19404;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = 867;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
STACKTOP = sp;return;
}
function _GNUNET_log_nocheck($kind,$message,$varargs) {
$kind = $kind|0;
$message = $message|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $va = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$va = sp;
$0 = $kind;
$1 = $message;
HEAP32[$va>>2] = $varargs;
$2 = $0;
$3 = HEAP32[17650]|0;
$4 = $1;
_mylog($2,$3,$4,$va);
STACKTOP = sp;return;
}
function _mylog($kind,$comp,$message,$va) {
$kind = $kind|0;
$comp = $comp|0;
$message = $message|0;
$va = $va|0;
var $$alloca_mul = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0;
var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0;
var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0;
var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0;
var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0;
var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $date = 0, $date2 = 0, $last_bulk_time$byval_copy = 0, $log_line = 0, $offset = 0, $or$cond = 0;
var $or$cond3 = 0, $size = 0, $timeofday = 0, $tmptr = 0, $vacopy_currentptr = 0, $vacp = 0, $vararg_buffer = 0, $vararg_buffer5 = 0, $vararg_ptr4 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$last_bulk_time$byval_copy = sp + 40|0;
$vararg_buffer5 = sp + 32|0;
$vararg_buffer = sp + 24|0;
$date = sp + 176|0;
$date2 = sp + 112|0;
$vacp = sp + 72|0;
$offset = sp + 16|0;
$timeofday = sp + 56|0;
$5 = sp + 8|0;
$7 = sp;
$0 = $kind;
$1 = $comp;
$2 = $message;
$3 = $va;
$8 = $3;
$vacopy_currentptr = HEAP32[$8>>2]|0;
HEAP32[$vacp>>2] = $vacopy_currentptr;
$9 = $2;
$10 = (_vsnprintf(0,0,$9,$vacp)|0);
$11 = (($10) + 1)|0;
$size = $11;
$12 = $size;
$13 = (0)!=($12|0);
if (!($13)) {
$log_line = 910;
$14 = HEAP32[193]|0;
$15 = ($14|0)==(-1);
if ($15) {
$16 = $log_line;
$17 = (_GNUNET_get_log_call_status(1,0,19404,19468,$16)|0);
HEAP32[193] = $17;
}
$18 = (_GNUNET_get_log_skip()|0);
$19 = ($18|0)>(0);
if ($19) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$20 = HEAP32[193]|0;
$21 = ($20|0)!=(0);
if (!($21)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19404;
$vararg_ptr4 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr4>>2] = 910;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
dest=$date; stop=dest+64|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$22 = $size;
$23 = (_llvm_stacksave()|0);
$4 = $23;
$$alloca_mul = $22;
$24 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
(_gettimeofday(($timeofday|0),(0|0))|0);
$25 = (_GNUNET_TIME_get_offset()|0);
$26 = tempRet0;
$27 = $offset;
$28 = $27;
HEAP32[$28>>2] = $25;
$29 = (($27) + 4)|0;
$30 = $29;
HEAP32[$30>>2] = $26;
$31 = $offset;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = (($31) + 4)|0;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = ($36|0)>(0);
$38 = ($33>>>0)>(0);
$39 = ($36|0)==(0);
$40 = $39 & $38;
$41 = $37 | $40;
$42 = $offset;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = (($42) + 4)|0;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$48 = (___divdi3(($44|0),($47|0),1000,0)|0);
$49 = tempRet0;
$50 = HEAP32[$timeofday>>2]|0;
$51 = ($50|0)<(0);
$52 = $51 << 31 >> 31;
$53 = (_i64Add(($50|0),($52|0),($48|0),($49|0))|0);
$54 = tempRet0;
HEAP32[$timeofday>>2] = $53;
do {
if ($41) {
$55 = $offset;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$58 = (($55) + 4)|0;
$59 = $58;
$60 = HEAP32[$59>>2]|0;
$61 = (___remdi3(($57|0),($60|0),1000,0)|0);
$62 = tempRet0;
$63 = (___muldi3(($61|0),($62|0),1000,0)|0);
$64 = tempRet0;
$65 = ((($timeofday)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$67 = ($66|0)<(0);
$68 = $67 << 31 >> 31;
$69 = (_i64Add(($66|0),($68|0),($63|0),($64|0))|0);
$70 = tempRet0;
HEAP32[$65>>2] = $69;
$71 = ((($timeofday)) + 4|0);
$72 = HEAP32[$71>>2]|0;
$73 = ($72|0)<(0);
$74 = $73 << 31 >> 31;
$75 = ($74|0)>(0);
$76 = ($72>>>0)>(1000000);
$77 = ($74|0)==(0);
$78 = $77 & $76;
$79 = $75 | $78;
if ($79) {
$80 = ((($timeofday)) + 4|0);
$81 = HEAP32[$80>>2]|0;
$82 = ($81|0)<(0);
$83 = $82 << 31 >> 31;
$84 = (_i64Subtract(($81|0),($83|0),1000000,0)|0);
$85 = tempRet0;
HEAP32[$80>>2] = $84;
$86 = HEAP32[$timeofday>>2]|0;
$87 = (($86) + 1)|0;
HEAP32[$timeofday>>2] = $87;
}
} else {
$88 = ((($timeofday)) + 4|0);
$89 = HEAP32[$88>>2]|0;
$90 = ($89|0)<(0);
$91 = $90 << 31 >> 31;
$92 = $offset;
$93 = $92;
$94 = HEAP32[$93>>2]|0;
$95 = (($92) + 4)|0;
$96 = $95;
$97 = HEAP32[$96>>2]|0;
$98 = (___remdi3(($94|0),($97|0),1000,0)|0);
$99 = tempRet0;
$100 = (_i64Subtract(0,0,($98|0),($99|0))|0);
$101 = tempRet0;
$102 = (___muldi3(($100|0),($101|0),1000,0)|0);
$103 = tempRet0;
$104 = ($91|0)>($103|0);
$105 = ($89>>>0)>($102>>>0);
$106 = ($91|0)==($103|0);
$107 = $106 & $105;
$108 = $104 | $107;
$109 = $offset;
$110 = $109;
$111 = HEAP32[$110>>2]|0;
$112 = (($109) + 4)|0;
$113 = $112;
$114 = HEAP32[$113>>2]|0;
$115 = (___remdi3(($111|0),($114|0),1000,0)|0);
$116 = tempRet0;
$117 = (___muldi3(($115|0),($116|0),1000,0)|0);
$118 = tempRet0;
if ($108) {
$119 = ((($timeofday)) + 4|0);
$120 = HEAP32[$119>>2]|0;
$121 = ($120|0)<(0);
$122 = $121 << 31 >> 31;
$123 = (_i64Add(($120|0),($122|0),($117|0),($118|0))|0);
$124 = tempRet0;
HEAP32[$119>>2] = $123;
break;
} else {
$125 = (_i64Add(1000000,0,($117|0),($118|0))|0);
$126 = tempRet0;
$127 = ((($timeofday)) + 4|0);
$128 = HEAP32[$127>>2]|0;
$129 = ($128|0)<(0);
$130 = $129 << 31 >> 31;
$131 = (_i64Add(($128|0),($130|0),($125|0),($126|0))|0);
$132 = tempRet0;
HEAP32[$127>>2] = $131;
$133 = HEAP32[$timeofday>>2]|0;
$134 = (($133) + -1)|0;
HEAP32[$timeofday>>2] = $134;
break;
}
}
} while(0);
$135 = (_localtime(($timeofday|0))|0);
$tmptr = $135;
$136 = $tmptr;
$137 = (0|0)==($136|0);
if ($137) {
(_strcpy($date,19474)|0);
} else {
$138 = $tmptr;
(_strftime(($date2|0),64,(19490|0),($138|0))|0);
$139 = ((($timeofday)) + 4|0);
$140 = HEAP32[$139>>2]|0;
HEAP32[$vararg_buffer5>>2] = $140;
(_snprintf($date,64,$date2,$vararg_buffer5)|0);
}
$141 = $size;
$142 = $2;
$143 = $3;
(_vsnprintf($24,$141,$142,$143)|0);
$144 = $tmptr;
$145 = (0|0)!=($144|0);
if ($145) {
$146 = $tmptr;
(_setup_log_file($146)|0);
}
$147 = $0;
$148 = $147 & 32;
$149 = (0)!=($148|0);
$150 = 70544;
$151 = $150;
$152 = HEAP32[$151>>2]|0;
$153 = (($150) + 4)|0;
$154 = $153;
$155 = HEAP32[$154>>2]|0;
$156 = (0)!=($152|0);
$157 = (0)!=($155|0);
$158 = $156 | $157;
$or$cond = $149 & $158;
if ($or$cond) {
$159 = (_strncmp($24,75775,256)|0);
$160 = (0)==($159|0);
if ($160) {
$161 = HEAP32[17657]|0;
$162 = (($161) + 1)|0;
HEAP32[17657] = $162;
;HEAP32[$last_bulk_time$byval_copy>>2]=HEAP32[70544>>2]|0;HEAP32[$last_bulk_time$byval_copy+4>>2]=HEAP32[70544+4>>2]|0;
$163 = (_GNUNET_TIME_absolute_get_duration($last_bulk_time$byval_copy)|0);
$164 = tempRet0;
$165 = $5;
$166 = $165;
HEAP32[$166>>2] = $163;
$167 = (($165) + 4)|0;
$168 = $167;
HEAP32[$168>>2] = $164;
$169 = $5;
$170 = $169;
$171 = HEAP32[$170>>2]|0;
$172 = (($169) + 4)|0;
$173 = $172;
$174 = HEAP32[$173>>2]|0;
$175 = ($174>>>0)>(10);
$176 = ($171>>>0)>(250327040);
$177 = ($174|0)==(10);
$178 = $177 & $176;
$179 = $175 | $178;
$180 = HEAP32[17657]|0;
$181 = ($180>>>0)>(1000);
$or$cond3 = $179 | $181;
if ($or$cond3) {
_flush_bulk($date);
}
$6 = 1;
$192 = $4;
_llvm_stackrestore(($192|0));
STACKTOP = sp;return;
}
}
_flush_bulk($date);
(_strncpy(75775,$24,256)|0);
HEAP32[17657] = 0;
$182 = $0;
HEAP32[17658] = $182;
$183 = (_GNUNET_TIME_absolute_get()|0);
$184 = tempRet0;
$185 = $7;
$186 = $185;
HEAP32[$186>>2] = $183;
$187 = (($185) + 4)|0;
$188 = $187;
HEAP32[$188>>2] = $184;
;HEAP32[70544>>2]=HEAP32[$7>>2]|0;HEAP32[70544+4>>2]=HEAP32[$7+4>>2]|0;
$189 = $1;
(_strncpy(76031,$189,32)|0);
$190 = $0;
$191 = $1;
_output_message($190,$191,$date,$24);
$6 = 0;
$192 = $4;
_llvm_stackrestore(($192|0));
STACKTOP = sp;return;
}
function _flush_bulk($datestr) {
$datestr = $datestr|0;
var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ft = 0, $last = 0, $last_bulk_time$byval_copy = 0, $msg = 0, $or$cond = 0, $rev = 0, $vararg_buffer = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 640|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$$byval_copy = sp + 40|0;
$last_bulk_time$byval_copy = sp + 32|0;
$vararg_buffer = sp + 16|0;
$msg = sp + 64|0;
$1 = sp + 8|0;
$2 = sp;
$0 = $datestr;
$3 = 70544;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (0)==($5|0);
$10 = (0)==($8|0);
$11 = $9 & $10;
$12 = HEAP32[17657]|0;
$13 = (0)==($12|0);
$or$cond = $11 | $13;
if ($or$cond) {
STACKTOP = sp;return;
}
$rev = 0;
$14 = (_memchr(75775,0,256)|0);
$last = $14;
$15 = $last;
$16 = ($15|0)==(0|0);
if ($16) {
$last = (76030);
} else {
$17 = $last;
$18 = ($17|0)!=(75775|0);
if ($18) {
$19 = $last;
$20 = ((($19)) + -1|0);
$last = $20;
}
}
$21 = $last;
$22 = HEAP8[$21>>0]|0;
$23 = $22 << 24 >> 24;
$24 = ($23|0)==(10);
if ($24) {
$rev = 1;
$25 = $last;
HEAP8[$25>>0] = 0;
}
;HEAP32[$last_bulk_time$byval_copy>>2]=HEAP32[70544>>2]|0;HEAP32[$last_bulk_time$byval_copy+4>>2]=HEAP32[70544+4>>2]|0;
$26 = (_GNUNET_TIME_absolute_get_duration($last_bulk_time$byval_copy)|0);
$27 = tempRet0;
$28 = $1;
$29 = $28;
HEAP32[$29>>2] = $26;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = $27;
;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;
$32 = (_GNUNET_STRINGS_relative_time_to_string($$byval_copy,1)|0);
$ft = $32;
$33 = HEAP32[17657]|0;
$34 = $ft;
HEAP32[$vararg_buffer>>2] = 256;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = 75775;
$vararg_ptr3 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr3>>2] = $33;
$vararg_ptr4 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr4>>2] = $34;
(_snprintf($msg,576,19511,$vararg_buffer)|0);
$35 = $rev;
$36 = ($35|0)==(1);
if ($36) {
$37 = $last;
HEAP8[$37>>0] = 10;
}
$38 = HEAP32[17658]|0;
$39 = $0;
_output_message($38,76031,$39,$msg);
$40 = (_GNUNET_TIME_absolute_get()|0);
$41 = tempRet0;
$42 = $2;
$43 = $42;
HEAP32[$43>>2] = $40;
$44 = (($42) + 4)|0;
$45 = $44;
HEAP32[$45>>2] = $41;
;HEAP32[70544>>2]=HEAP32[$2>>2]|0;HEAP32[70544+4>>2]=HEAP32[$2+4>>2]|0;
HEAP32[17657] = 0;
STACKTOP = sp;return;
}
function _output_message($kind,$comp,$datestr,$msg) {
$kind = $kind|0;
$comp = $comp|0;
$datestr = $datestr|0;
$msg = $msg|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $pos = 0, $vararg_buffer = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $kind;
$1 = $comp;
$2 = $datestr;
$3 = $msg;
$4 = HEAP32[17644]|0;
$5 = (0|0)!=($4|0);
$6 = HEAP32[17659]|0;
$7 = (0|0)==($6|0);
$or$cond = $5 & $7;
if ($or$cond) {
$8 = HEAP32[17644]|0;
$9 = $2;
$10 = $1;
$11 = $0;
$12 = (_GNUNET_error_type_to_string($11)|0);
$13 = $3;
HEAP32[$vararg_buffer>>2] = $9;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $10;
$vararg_ptr3 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr3>>2] = $12;
$vararg_ptr4 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr4>>2] = $13;
(_fprintf($8,19568,$vararg_buffer)|0);
$14 = HEAP32[17644]|0;
(_fflush($14)|0);
}
$15 = HEAP32[17659]|0;
$pos = $15;
while(1) {
$16 = $pos;
$17 = ($16|0)!=(0|0);
if (!($17)) {
break;
}
$18 = $pos;
$19 = ((($18)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = $pos;
$22 = ((($21)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = $0;
$25 = $1;
$26 = $2;
$27 = $3;
FUNCTION_TABLE_viiiii[$20 & 127]($23,$24,$25,$26,$27);
$28 = $pos;
$29 = HEAP32[$28>>2]|0;
$pos = $29;
}
STACKTOP = sp;return;
}
function _GNUNET_error_type_to_string($kind) {
$kind = $kind|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $kind;
$2 = $1;
$3 = $2 & 1;
$4 = ($3|0)>(0);
do {
if ($4) {
$0 = 19393;
} else {
$5 = $1;
$6 = $5 & 2;
$7 = ($6|0)>(0);
if ($7) {
$0 = 19385;
break;
}
$8 = $1;
$9 = $8 & 4;
$10 = ($9|0)>(0);
if ($10) {
$0 = 19380;
break;
}
$11 = $1;
$12 = $11 & 8;
$13 = ($12|0)>(0);
if ($13) {
$0 = 19374;
break;
}
$14 = $1;
$15 = $14 & -33;
$16 = ($15|0)==(0);
if ($16) {
$0 = 19399;
break;
} else {
$0 = 19560;
break;
}
}
} while(0);
$17 = $0;
STACKTOP = sp;return ($17|0);
}
function _GNUNET_log_from_nocheck($kind,$comp,$message,$varargs) {
$kind = $kind|0;
$comp = $comp|0;
$message = $message|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $comp_w_pid = 0, $va = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$va = sp + 8|0;
$comp_w_pid = sp + 40|0;
$0 = $kind;
$1 = $comp;
$2 = $message;
$3 = $1;
$4 = ($3|0)==(0|0);
if ($4) {
$5 = HEAP32[17645]|0;
$1 = $5;
}
HEAP32[$va>>2] = $varargs;
$6 = $1;
$7 = (_getpid()|0);
HEAP32[$vararg_buffer>>2] = $6;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $7;
(_GNUNET_snprintf($comp_w_pid,128,19421,$vararg_buffer)|0);
$8 = $0;
$9 = $2;
_mylog($8,$comp_w_pid,$9,$va);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_symmetric_encrypt($block,$size,$sessionkey,$iv,$result) {
$block = $block|0;
$size = $size|0;
$sessionkey = $sessionkey|0;
$iv = $iv|0;
$result = $result|0;
var $$alloca_mul = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $handle = 0, $log_line = 0, $log_line1 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$handle = sp + 32|0;
$1 = $block;
$2 = $size;
$3 = $sessionkey;
$4 = $iv;
$5 = $result;
$8 = $2;
$9 = (_llvm_stacksave()|0);
$6 = $9;
$$alloca_mul = $8;
$10 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
$11 = $3;
$12 = $4;
$13 = (_setup_cipher_aes($handle,$11,$12)|0);
$14 = (1)!=($13|0);
if ($14) {
$0 = -1;
$7 = 1;
$50 = $6;
_llvm_stackrestore(($50|0));
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$15 = HEAP32[$handle>>2]|0;
$16 = $2;
$17 = $1;
$18 = $2;
$19 = (_gcry_cipher_encrypt($15,$10,$16,$17,$18)|0);
$20 = (0)==($19|0);
if (!($20)) {
$log_line = 136;
$21 = HEAP32[197]|0;
$22 = ($21|0)==(-1);
if ($22) {
$23 = $log_line;
$24 = (_GNUNET_get_log_call_status(1,0,19630,19666,$23)|0);
HEAP32[197] = $24;
}
$25 = (_GNUNET_get_log_skip()|0);
$26 = ($25|0)>(0);
if ($26) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$27 = HEAP32[197]|0;
$28 = ($27|0)!=(0);
if (!($28)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19630;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 136;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$29 = HEAP32[$handle>>2]|0;
_gcry_cipher_close($29);
$30 = $3;
$31 = $4;
$32 = (_setup_cipher_twofish($handle,$30,$31)|0);
$33 = (1)!=($32|0);
if ($33) {
$0 = -1;
$7 = 1;
$50 = $6;
_llvm_stackrestore(($50|0));
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$34 = HEAP32[$handle>>2]|0;
$35 = $5;
$36 = $2;
$37 = $2;
$38 = (_gcry_cipher_encrypt($34,$35,$36,$10,$37)|0);
$39 = (0)==($38|0);
if ($39) {
$48 = HEAP32[$handle>>2]|0;
_gcry_cipher_close($48);
_memset(($10|0),0,($8|0))|0;
$49 = $2;
$0 = $49;
$7 = 1;
$50 = $6;
_llvm_stackrestore(($50|0));
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$log_line1 = 140;
$40 = HEAP32[201]|0;
$41 = ($40|0)==(-1);
if ($41) {
$42 = $log_line1;
$43 = (_GNUNET_get_log_call_status(1,0,19630,19666,$42)|0);
HEAP32[201] = $43;
}
$44 = (_GNUNET_get_log_skip()|0);
$45 = ($44|0)>(0);
if ($45) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$46 = HEAP32[201]|0;
$47 = ($46|0)!=(0);
if (!($47)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19630;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 140;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _setup_cipher_aes($handle,$sessionkey,$iv) {
$handle = $handle|0;
$sessionkey = $sessionkey|0;
$iv = $iv|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$0 = $handle;
$1 = $sessionkey;
$2 = $iv;
$3 = $0;
$4 = (_gcry_cipher_open($3,9,2,0)|0);
$5 = (0)==($4|0);
if (!($5)) {
$log_line = 68;
$6 = HEAP32[194]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $log_line;
$9 = (_GNUNET_get_log_call_status(1,0,19630,19649,$8)|0);
HEAP32[194] = $9;
}
$10 = (_GNUNET_get_log_skip()|0);
$11 = ($10|0)>(0);
if ($11) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$12 = HEAP32[194]|0;
$13 = ($12|0)!=(0);
if (!($13)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19630;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 68;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$14 = $0;
$15 = HEAP32[$14>>2]|0;
$16 = $1;
$17 = (_gcry_cipher_setkey($15,$16,32)|0);
$rc = $17;
$18 = $rc;
$19 = (0)==($18|0);
if (!($19)) {
$20 = $rc;
$21 = $20&255;
$22 = $21 << 24 >> 24;
$23 = ($22|0)==(43);
if (!($23)) {
$log_line1 = 72;
$24 = HEAP32[195]|0;
$25 = ($24|0)==(-1);
if ($25) {
$26 = $log_line1;
$27 = (_GNUNET_get_log_call_status(1,0,19630,19649,$26)|0);
HEAP32[195] = $27;
}
$28 = (_GNUNET_get_log_skip()|0);
$29 = ($28|0)>(0);
if ($29) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$30 = HEAP32[195]|0;
$31 = ($30|0)!=(0);
if (!($31)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19630;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 72;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
}
$32 = $0;
$33 = HEAP32[$32>>2]|0;
$34 = $2;
$35 = (_gcry_cipher_setiv($33,$34,16)|0);
$rc = $35;
$36 = $rc;
$37 = (0)==($36|0);
if ($37) {
STACKTOP = sp;return 1;
}
$38 = $rc;
$39 = $38&255;
$40 = $39 << 24 >> 24;
$41 = ($40|0)==(43);
if ($41) {
STACKTOP = sp;return 1;
}
$log_line2 = 76;
$42 = HEAP32[196]|0;
$43 = ($42|0)==(-1);
if ($43) {
$44 = $log_line2;
$45 = (_GNUNET_get_log_call_status(1,0,19630,19649,$44)|0);
HEAP32[196] = $45;
}
$46 = (_GNUNET_get_log_skip()|0);
$47 = ($46|0)>(0);
if ($47) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$48 = HEAP32[196]|0;
$49 = ($48|0)!=(0);
if (!($49)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer6>>2] = 19630;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 76;
_GNUNET_log_nocheck(1,61615,$vararg_buffer6);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _setup_cipher_twofish($handle,$sessionkey,$iv) {
$handle = $handle|0;
$sessionkey = $sessionkey|0;
$iv = $iv|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0;
var $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$0 = $handle;
$1 = $sessionkey;
$2 = $iv;
$3 = $0;
$4 = (_gcry_cipher_open($3,10,2,0)|0);
$5 = (0)==($4|0);
if (!($5)) {
$log_line = 98;
$6 = HEAP32[198]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $log_line;
$9 = (_GNUNET_get_log_call_status(1,0,19630,19698,$8)|0);
HEAP32[198] = $9;
}
$10 = (_GNUNET_get_log_skip()|0);
$11 = ($10|0)>(0);
if ($11) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$12 = HEAP32[198]|0;
$13 = ($12|0)!=(0);
if (!($13)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19630;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 98;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$14 = $0;
$15 = HEAP32[$14>>2]|0;
$16 = $1;
$17 = ((($16)) + 32|0);
$18 = (_gcry_cipher_setkey($15,$17,32)|0);
$rc = $18;
$19 = $rc;
$20 = (0)==($19|0);
if (!($20)) {
$21 = $rc;
$22 = $21&255;
$23 = $22 << 24 >> 24;
$24 = ($23|0)==(43);
if (!($24)) {
$log_line1 = 102;
$25 = HEAP32[199]|0;
$26 = ($25|0)==(-1);
if ($26) {
$27 = $log_line1;
$28 = (_GNUNET_get_log_call_status(1,0,19630,19698,$27)|0);
HEAP32[199] = $28;
}
$29 = (_GNUNET_get_log_skip()|0);
$30 = ($29|0)>(0);
if ($30) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$31 = HEAP32[199]|0;
$32 = ($31|0)!=(0);
if (!($32)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19630;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 102;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
}
$33 = $0;
$34 = HEAP32[$33>>2]|0;
$35 = $2;
$36 = ((($35)) + 16|0);
$37 = (_gcry_cipher_setiv($34,$36,16)|0);
$rc = $37;
$38 = $rc;
$39 = (0)==($38|0);
if ($39) {
STACKTOP = sp;return 1;
}
$40 = $rc;
$41 = $40&255;
$42 = $41 << 24 >> 24;
$43 = ($42|0)==(43);
if ($43) {
STACKTOP = sp;return 1;
}
$log_line2 = 106;
$44 = HEAP32[200]|0;
$45 = ($44|0)==(-1);
if ($45) {
$46 = $log_line2;
$47 = (_GNUNET_get_log_call_status(1,0,19630,19698,$46)|0);
HEAP32[200] = $47;
}
$48 = (_GNUNET_get_log_skip()|0);
$49 = ($48|0)>(0);
if ($49) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$50 = HEAP32[200]|0;
$51 = ($50|0)!=(0);
if (!($51)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer6>>2] = 19630;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 106;
_GNUNET_log_nocheck(1,61615,$vararg_buffer6);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_symmetric_decrypt($block,$size,$sessionkey,$iv,$result) {
$block = $block|0;
$size = $size|0;
$sessionkey = $sessionkey|0;
$iv = $iv|0;
$result = $result|0;
var $$alloca_mul = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $handle = 0, $log_line = 0, $log_line1 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$handle = sp + 32|0;
$1 = $block;
$2 = $size;
$3 = $sessionkey;
$4 = $iv;
$5 = $result;
$8 = $2;
$9 = (_llvm_stacksave()|0);
$6 = $9;
$$alloca_mul = $8;
$10 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
$11 = $3;
$12 = $4;
$13 = (_setup_cipher_twofish($handle,$11,$12)|0);
$14 = (1)!=($13|0);
if ($14) {
$0 = -1;
$7 = 1;
$50 = $6;
_llvm_stackrestore(($50|0));
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$15 = HEAP32[$handle>>2]|0;
$16 = $2;
$17 = $1;
$18 = $2;
$19 = (_gcry_cipher_decrypt($15,$10,$16,$17,$18)|0);
$20 = (0)==($19|0);
if (!($20)) {
$log_line = 171;
$21 = HEAP32[202]|0;
$22 = ($21|0)==(-1);
if ($22) {
$23 = $log_line;
$24 = (_GNUNET_get_log_call_status(1,0,19630,19719,$23)|0);
HEAP32[202] = $24;
}
$25 = (_GNUNET_get_log_skip()|0);
$26 = ($25|0)>(0);
if ($26) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$27 = HEAP32[202]|0;
$28 = ($27|0)!=(0);
if (!($28)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19630;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 171;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$29 = HEAP32[$handle>>2]|0;
_gcry_cipher_close($29);
$30 = $3;
$31 = $4;
$32 = (_setup_cipher_aes($handle,$30,$31)|0);
$33 = (1)!=($32|0);
if ($33) {
$0 = -1;
$7 = 1;
$50 = $6;
_llvm_stackrestore(($50|0));
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$34 = HEAP32[$handle>>2]|0;
$35 = $5;
$36 = $2;
$37 = $2;
$38 = (_gcry_cipher_decrypt($34,$35,$36,$10,$37)|0);
$39 = (0)==($38|0);
if ($39) {
$48 = HEAP32[$handle>>2]|0;
_gcry_cipher_close($48);
_memset(($10|0),0,($8|0))|0;
$49 = $2;
$0 = $49;
$7 = 1;
$50 = $6;
_llvm_stackrestore(($50|0));
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$log_line1 = 175;
$40 = HEAP32[203]|0;
$41 = ($40|0)==(-1);
if ($41) {
$42 = $log_line1;
$43 = (_GNUNET_get_log_call_status(1,0,19630,19719,$42)|0);
HEAP32[203] = $43;
}
$44 = (_GNUNET_get_log_skip()|0);
$45 = ($44|0)>(0);
if ($45) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$46 = HEAP32[203]|0;
$47 = ($46|0)!=(0);
if (!($47)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19630;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 175;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_eddsa_key_get_public($priv,$pub) {
$priv = $priv|0;
$pub = $pub|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $ctx = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $q = 0, $sexp = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ctx = sp + 40|0;
$0 = $priv;
$1 = $pub;
$2 = $0;
$3 = (_decode_private_eddsa_key($2)|0);
$sexp = $3;
$4 = $sexp;
$5 = (0|0)!=($4|0);
if (!($5)) {
$log_line = 257;
$6 = HEAP32[206]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $log_line;
$9 = (_GNUNET_get_log_call_status(1,0,19793,19910,$8)|0);
HEAP32[206] = $9;
}
$10 = (_GNUNET_get_log_skip()|0);
$11 = ($10|0)>(0);
if ($11) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$12 = HEAP32[206]|0;
$13 = ($12|0)!=(0);
if (!($13)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19793;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 257;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$14 = $sexp;
$15 = (_gcry_mpi_ec_new($ctx,$14,0)|0);
$16 = (0)==($15|0);
if (!($16)) {
$log_line1 = 258;
$17 = HEAP32[207]|0;
$18 = ($17|0)==(-1);
if ($18) {
$19 = $log_line1;
$20 = (_GNUNET_get_log_call_status(1,0,19793,19910,$19)|0);
HEAP32[207] = $20;
}
$21 = (_GNUNET_get_log_skip()|0);
$22 = ($21|0)>(0);
if ($22) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$23 = HEAP32[207]|0;
$24 = ($23|0)!=(0);
if (!($24)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19793;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 258;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
$25 = $sexp;
_gcry_sexp_release($25);
$26 = HEAP32[$ctx>>2]|0;
$27 = (_gcry_mpi_ec_get_mpi(19822,$26,0)|0);
$q = $27;
$28 = $q;
$29 = ($28|0)!=(0|0);
if ($29) {
$38 = $1;
$39 = $q;
_GNUNET_CRYPTO_mpi_print_unsigned($38,32,$39);
$40 = $q;
_gcry_mpi_release($40);
$41 = HEAP32[$ctx>>2]|0;
_gcry_ctx_release($41);
STACKTOP = sp;return;
}
$log_line2 = 261;
$30 = HEAP32[208]|0;
$31 = ($30|0)==(-1);
if ($31) {
$32 = $log_line2;
$33 = (_GNUNET_get_log_call_status(1,0,19793,19910,$32)|0);
HEAP32[208] = $33;
}
$34 = (_GNUNET_get_log_skip()|0);
$35 = ($34|0)>(0);
if ($35) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$36 = HEAP32[208]|0;
$37 = ($36|0)!=(0);
if (!($37)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer6>>2] = 19793;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 261;
_GNUNET_log_nocheck(1,61615,$vararg_buffer6);
_GNUNET_abort_();
// unreachable;
}
function _decode_private_eddsa_key($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $rc = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer8 = sp + 24|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$result = sp + 44|0;
$0 = $priv;
$1 = $0;
HEAP32[$vararg_buffer>>2] = 32;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $1;
$2 = (_gcry_sexp_build($result,0,19830,$vararg_buffer)|0);
$rc = $2;
$3 = $rc;
$4 = (0)!=($3|0);
if (!($4)) {
$23 = HEAP32[$result>>2]|0;
STACKTOP = sp;return ($23|0);
}
$log_line = 169;
$5 = HEAP32[204]|0;
$6 = ($5|0)==(-1);
if ($6) {
$7 = $log_line;
$8 = (_GNUNET_get_log_call_status(1,21106,19793,19885,$7)|0);
HEAP32[204] = $8;
}
$9 = (_GNUNET_get_log_skip()|0);
$10 = ($9|0)>(0);
if ($10) {
_GNUNET_log_skip(-1,0);
} else {
$11 = HEAP32[204]|0;
$12 = ($11|0)!=(0);
if ($12) {
$13 = $rc;
$14 = (_gcry_strerror($13)|0);
HEAP32[$vararg_buffer2>>2] = 19806;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 19793;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = 169;
$vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
HEAP32[$vararg_ptr7>>2] = $14;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer2);
}
}
$log_line1 = 170;
$15 = HEAP32[205]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line1;
$18 = (_GNUNET_get_log_call_status(1,0,19793,19885,$17)|0);
HEAP32[205] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$21 = HEAP32[205]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer8>>2] = 19793;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = 170;
_GNUNET_log_nocheck(1,61615,$vararg_buffer8);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_ecdhe_key_get_public($priv,$pub) {
$priv = $priv|0;
$pub = $pub|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $ctx = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $q = 0, $sexp = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ctx = sp + 40|0;
$0 = $priv;
$1 = $pub;
$2 = $0;
$3 = (_decode_private_ecdhe_key($2)|0);
$sexp = $3;
$4 = $sexp;
$5 = (0|0)!=($4|0);
if (!($5)) {
$log_line = 283;
$6 = HEAP32[211]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $log_line;
$9 = (_GNUNET_get_log_call_status(1,0,19793,19970,$8)|0);
HEAP32[211] = $9;
}
$10 = (_GNUNET_get_log_skip()|0);
$11 = ($10|0)>(0);
if ($11) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$12 = HEAP32[211]|0;
$13 = ($12|0)!=(0);
if (!($13)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 19793;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 283;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$14 = $sexp;
$15 = (_gcry_mpi_ec_new($ctx,$14,0)|0);
$16 = (0)==($15|0);
if (!($16)) {
$log_line1 = 284;
$17 = HEAP32[212]|0;
$18 = ($17|0)==(-1);
if ($18) {
$19 = $log_line1;
$20 = (_GNUNET_get_log_call_status(1,0,19793,19970,$19)|0);
HEAP32[212] = $20;
}
$21 = (_GNUNET_get_log_skip()|0);
$22 = ($21|0)>(0);
if ($22) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$23 = HEAP32[212]|0;
$24 = ($23|0)!=(0);
if (!($24)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19793;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 284;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
$25 = $sexp;
_gcry_sexp_release($25);
$26 = HEAP32[$ctx>>2]|0;
$27 = (_gcry_mpi_ec_get_mpi(19822,$26,0)|0);
$q = $27;
$28 = $q;
$29 = ($28|0)!=(0|0);
if ($29) {
$38 = $1;
$39 = $q;
_GNUNET_CRYPTO_mpi_print_unsigned($38,32,$39);
$40 = $q;
_gcry_mpi_release($40);
$41 = HEAP32[$ctx>>2]|0;
_gcry_ctx_release($41);
STACKTOP = sp;return;
}
$log_line2 = 287;
$30 = HEAP32[213]|0;
$31 = ($30|0)==(-1);
if ($31) {
$32 = $log_line2;
$33 = (_GNUNET_get_log_call_status(1,0,19793,19970,$32)|0);
HEAP32[213] = $33;
}
$34 = (_GNUNET_get_log_skip()|0);
$35 = ($34|0)>(0);
if ($35) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$36 = HEAP32[213]|0;
$37 = ($36|0)!=(0);
if (!($37)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer6>>2] = 19793;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 287;
_GNUNET_log_nocheck(1,61615,$vararg_buffer6);
_GNUNET_abort_();
// unreachable;
}
function _decode_private_ecdhe_key($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $rc = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer8 = sp + 24|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$result = sp + 44|0;
$0 = $priv;
$1 = $0;
HEAP32[$vararg_buffer>>2] = 32;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $1;
$2 = (_gcry_sexp_build($result,0,19751,$vararg_buffer)|0);
$rc = $2;
$3 = $rc;
$4 = (0)!=($3|0);
if (!($4)) {
$23 = HEAP32[$result>>2]|0;
STACKTOP = sp;return ($23|0);
}
$log_line = 202;
$5 = HEAP32[209]|0;
$6 = ($5|0)==(-1);
if ($6) {
$7 = $log_line;
$8 = (_GNUNET_get_log_call_status(1,21106,19793,19945,$7)|0);
HEAP32[209] = $8;
}
$9 = (_GNUNET_get_log_skip()|0);
$10 = ($9|0)>(0);
if ($10) {
_GNUNET_log_skip(-1,0);
} else {
$11 = HEAP32[209]|0;
$12 = ($11|0)!=(0);
if ($12) {
$13 = $rc;
$14 = (_gcry_strerror($13)|0);
HEAP32[$vararg_buffer2>>2] = 19806;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 19793;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = 202;
$vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
HEAP32[$vararg_ptr7>>2] = $14;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer2);
}
}
$log_line1 = 203;
$15 = HEAP32[210]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line1;
$18 = (_GNUNET_get_log_call_status(1,0,19793,19945,$17)|0);
HEAP32[210] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$21 = HEAP32[210]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer8>>2] = 19793;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = 203;
_GNUNET_log_nocheck(1,61615,$vararg_buffer8);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_eddsa_private_key_from_string($enc,$enclen,$pub) {
$enc = $enc|0;
$enclen = $enclen|0;
$pub = $pub|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $keylen = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $enc;
$2 = $enclen;
$3 = $pub;
$keylen = 256;
$4 = $keylen;
$5 = (($4>>>0) % 5)&-1;
$6 = ($5>>>0)>(0);
if ($6) {
$7 = $keylen;
$8 = (($7>>>0) % 5)&-1;
$9 = (5 - ($8))|0;
$10 = $keylen;
$11 = (($10) + ($9))|0;
$keylen = $11;
}
$12 = $keylen;
$13 = (($12>>>0) / 5)&-1;
$keylen = $13;
$14 = $2;
$15 = $keylen;
$16 = ($14|0)!=($15|0);
if ($16) {
$0 = -1;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
$17 = $1;
$18 = $2;
$19 = $3;
$20 = (_GNUNET_STRINGS_string_to_data($17,$18,$19,32)|0);
$21 = (1)!=($20|0);
if ($21) {
$0 = -1;
$22 = $0;
STACKTOP = sp;return ($22|0);
} else {
$0 = 1;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
return (0)|0;
}
function _GNUNET_CRYPTO_ecdhe_key_create() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $d = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $priv = 0, $priv_sexp = 0, $rc = 0, $s_keyparam = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0;
var $vararg_buffer6 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer12 = sp + 40|0;
$vararg_buffer6 = sp + 24|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$priv_sexp = sp + 80|0;
$s_keyparam = sp + 76|0;
$d = sp + 72|0;
$1 = (_gcry_sexp_build($s_keyparam,0,20005,$vararg_buffer)|0);
$rc = $1;
$2 = (0)!=($1|0);
if ($2) {
$log_line = 505;
$3 = HEAP32[214]|0;
$4 = ($3|0)==(-1);
if ($4) {
$5 = $log_line;
$6 = (_GNUNET_get_log_call_status(1,21106,19793,20060,$5)|0);
HEAP32[214] = $6;
}
$7 = (_GNUNET_get_log_skip()|0);
$8 = ($7|0)>(0);
if ($8) {
_GNUNET_log_skip(-1,0);
} else {
$9 = HEAP32[214]|0;
$10 = ($9|0)!=(0);
if ($10) {
$11 = $rc;
$12 = (_gcry_strerror($11)|0);
HEAP32[$vararg_buffer1>>2] = 19806;
$vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr3>>2] = 19793;
$vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
HEAP32[$vararg_ptr4>>2] = 505;
$vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
HEAP32[$vararg_ptr5>>2] = $12;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer1);
}
}
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$13 = HEAP32[$s_keyparam>>2]|0;
$14 = (_gcry_pk_genkey($priv_sexp,$13)|0);
$rc = $14;
$15 = (0)!=($14|0);
if ($15) {
$log_line1 = 510;
$16 = HEAP32[215]|0;
$17 = ($16|0)==(-1);
if ($17) {
$18 = $log_line1;
$19 = (_GNUNET_get_log_call_status(1,21106,19793,20060,$18)|0);
HEAP32[215] = $19;
}
$20 = (_GNUNET_get_log_skip()|0);
$21 = ($20|0)>(0);
if ($21) {
_GNUNET_log_skip(-1,0);
} else {
$22 = HEAP32[215]|0;
$23 = ($22|0)!=(0);
if ($23) {
$24 = $rc;
$25 = (_gcry_strerror($24)|0);
HEAP32[$vararg_buffer6>>2] = 20091;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 19793;
$vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
HEAP32[$vararg_ptr10>>2] = 510;
$vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
HEAP32[$vararg_ptr11>>2] = $25;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer6);
}
}
$26 = HEAP32[$s_keyparam>>2]|0;
_gcry_sexp_release($26);
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$27 = HEAP32[$s_keyparam>>2]|0;
_gcry_sexp_release($27);
$28 = HEAP32[$priv_sexp>>2]|0;
$29 = (_key_from_sexp($d,$28,37958,35608)|0);
$rc = $29;
$30 = (0)!=($29|0);
if (!($30)) {
$42 = HEAP32[$priv_sexp>>2]|0;
_gcry_sexp_release($42);
$43 = (_GNUNET_xmalloc_(32,19793,530)|0);
$priv = $43;
$44 = $priv;
$45 = HEAP32[$d>>2]|0;
_GNUNET_CRYPTO_mpi_print_unsigned($44,32,$45);
$46 = HEAP32[$d>>2]|0;
_gcry_mpi_release($46);
$47 = $priv;
$0 = $47;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$log_line2 = 525;
$31 = HEAP32[216]|0;
$32 = ($31|0)==(-1);
if ($32) {
$33 = $log_line2;
$34 = (_GNUNET_get_log_call_status(1,21106,19793,20060,$33)|0);
HEAP32[216] = $34;
}
$35 = (_GNUNET_get_log_skip()|0);
$36 = ($35|0)>(0);
if ($36) {
_GNUNET_log_skip(-1,0);
} else {
$37 = HEAP32[216]|0;
$38 = ($37|0)!=(0);
if ($38) {
$39 = $rc;
$40 = (_gcry_strerror($39)|0);
HEAP32[$vararg_buffer12>>2] = 20106;
$vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
HEAP32[$vararg_ptr15>>2] = 19793;
$vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
HEAP32[$vararg_ptr16>>2] = 525;
$vararg_ptr17 = ((($vararg_buffer12)) + 12|0);
HEAP32[$vararg_ptr17>>2] = $40;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer12);
}
}
$41 = HEAP32[$priv_sexp>>2]|0;
_gcry_sexp_release($41);
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
function _key_from_sexp($array,$sexp,$topname,$elems) {
$array = $array|0;
$sexp = $sexp|0;
$topname = $topname|0;
$elems = $elems|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $idx = 0, $l2 = 0, $list = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $array;
$2 = $sexp;
$3 = $topname;
$4 = $elems;
$5 = $2;
$6 = $3;
$7 = (_gcry_sexp_find_token($5,$6,0)|0);
$list = $7;
$8 = $list;
$9 = ($8|0)!=(0|0);
if (!($9)) {
$0 = 1;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
$10 = $list;
$11 = (_gcry_sexp_cadr($10)|0);
$l2 = $11;
$12 = $list;
_gcry_sexp_release($12);
$13 = $l2;
$list = $13;
$14 = $list;
$15 = ($14|0)!=(0|0);
if (!($15)) {
$0 = 2;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
$idx = 0;
$16 = $4;
$s = $16;
while(1) {
$17 = $s;
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)!=(0);
$20 = $list;
if (!($19)) {
label = 18;
break;
}
$21 = $s;
$22 = (_gcry_sexp_find_token($20,$21,1)|0);
$l2 = $22;
$23 = $l2;
$24 = ($23|0)!=(0|0);
if (!($24)) {
label = 8;
break;
}
$38 = $l2;
$39 = (_gcry_sexp_nth_mpi($38,1,5)|0);
$40 = $idx;
$41 = $1;
$42 = (($41) + ($40<<2)|0);
HEAP32[$42>>2] = $39;
$43 = $l2;
_gcry_sexp_release($43);
$44 = $idx;
$45 = $1;
$46 = (($45) + ($44<<2)|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)!=(0|0);
if (!($48)) {
label = 13;
break;
}
$62 = $s;
$63 = ((($62)) + 1|0);
$s = $63;
$64 = $idx;
$65 = (($64) + 1)|0;
$idx = $65;
}
if ((label|0) == 8) {
$i = 0;
while(1) {
$25 = $i;
$26 = $idx;
$27 = ($25>>>0)<($26>>>0);
if (!($27)) {
break;
}
$28 = $i;
$29 = $1;
$30 = (($29) + ($28<<2)|0);
$31 = HEAP32[$30>>2]|0;
_gcry_free($31);
$32 = $i;
$33 = $1;
$34 = (($33) + ($32<<2)|0);
HEAP32[$34>>2] = 0;
$35 = $i;
$36 = (($35) + 1)|0;
$i = $36;
}
$37 = $list;
_gcry_sexp_release($37);
$0 = 3;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
else if ((label|0) == 13) {
$i = 0;
while(1) {
$49 = $i;
$50 = $idx;
$51 = ($49>>>0)<($50>>>0);
if (!($51)) {
break;
}
$52 = $i;
$53 = $1;
$54 = (($53) + ($52<<2)|0);
$55 = HEAP32[$54>>2]|0;
_gcry_free($55);
$56 = $i;
$57 = $1;
$58 = (($57) + ($56<<2)|0);
HEAP32[$58>>2] = 0;
$59 = $i;
$60 = (($59) + 1)|0;
$i = $60;
}
$61 = $list;
_gcry_sexp_release($61);
$0 = 4;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
else if ((label|0) == 18) {
_gcry_sexp_release($20);
$0 = 0;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
return (0)|0;
}
function _GNUNET_CRYPTO_eddsa_key_create() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $d = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $priv = 0, $priv_sexp = 0, $rc = 0, $s_keyparam = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0;
var $vararg_buffer6 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer12 = sp + 40|0;
$vararg_buffer6 = sp + 24|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$priv_sexp = sp + 80|0;
$s_keyparam = sp + 76|0;
$d = sp + 72|0;
$1 = (_gcry_sexp_build($s_keyparam,0,20120,$vararg_buffer)|0);
$rc = $1;
$2 = (0)!=($1|0);
if ($2) {
$log_line = 604;
$3 = HEAP32[217]|0;
$4 = ($3|0)==(-1);
if ($4) {
$5 = $log_line;
$6 = (_GNUNET_get_log_call_status(1,21106,19793,20164,$5)|0);
HEAP32[217] = $6;
}
$7 = (_GNUNET_get_log_skip()|0);
$8 = ($7|0)>(0);
if ($8) {
_GNUNET_log_skip(-1,0);
} else {
$9 = HEAP32[217]|0;
$10 = ($9|0)!=(0);
if ($10) {
$11 = $rc;
$12 = (_gcry_strerror($11)|0);
HEAP32[$vararg_buffer1>>2] = 19806;
$vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr3>>2] = 19793;
$vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
HEAP32[$vararg_ptr4>>2] = 604;
$vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
HEAP32[$vararg_ptr5>>2] = $12;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer1);
}
}
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$13 = HEAP32[$s_keyparam>>2]|0;
$14 = (_gcry_pk_genkey($priv_sexp,$13)|0);
$rc = $14;
$15 = (0)!=($14|0);
if ($15) {
$log_line1 = 609;
$16 = HEAP32[218]|0;
$17 = ($16|0)==(-1);
if ($17) {
$18 = $log_line1;
$19 = (_GNUNET_get_log_call_status(1,21106,19793,20164,$18)|0);
HEAP32[218] = $19;
}
$20 = (_GNUNET_get_log_skip()|0);
$21 = ($20|0)>(0);
if ($21) {
_GNUNET_log_skip(-1,0);
} else {
$22 = HEAP32[218]|0;
$23 = ($22|0)!=(0);
if ($23) {
$24 = $rc;
$25 = (_gcry_strerror($24)|0);
HEAP32[$vararg_buffer6>>2] = 20091;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 19793;
$vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
HEAP32[$vararg_ptr10>>2] = 609;
$vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
HEAP32[$vararg_ptr11>>2] = $25;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer6);
}
}
$26 = HEAP32[$s_keyparam>>2]|0;
_gcry_sexp_release($26);
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$27 = HEAP32[$s_keyparam>>2]|0;
_gcry_sexp_release($27);
$28 = HEAP32[$priv_sexp>>2]|0;
$29 = (_key_from_sexp($d,$28,37958,35608)|0);
$rc = $29;
$30 = (0)!=($29|0);
if (!($30)) {
$42 = HEAP32[$priv_sexp>>2]|0;
_gcry_sexp_release($42);
$43 = (_GNUNET_xmalloc_(32,19793,629)|0);
$priv = $43;
$44 = $priv;
$45 = HEAP32[$d>>2]|0;
_GNUNET_CRYPTO_mpi_print_unsigned($44,32,$45);
$46 = HEAP32[$d>>2]|0;
_gcry_mpi_release($46);
$47 = $priv;
$0 = $47;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$log_line2 = 624;
$31 = HEAP32[219]|0;
$32 = ($31|0)==(-1);
if ($32) {
$33 = $log_line2;
$34 = (_GNUNET_get_log_call_status(1,21106,19793,20164,$33)|0);
HEAP32[219] = $34;
}
$35 = (_GNUNET_get_log_skip()|0);
$36 = ($35|0)>(0);
if ($36) {
_GNUNET_log_skip(-1,0);
} else {
$37 = HEAP32[219]|0;
$38 = ($37|0)!=(0);
if ($38) {
$39 = $rc;
$40 = (_gcry_strerror($39)|0);
HEAP32[$vararg_buffer12>>2] = 20106;
$vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
HEAP32[$vararg_ptr15>>2] = 19793;
$vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
HEAP32[$vararg_ptr16>>2] = 624;
$vararg_ptr17 = ((($vararg_buffer12)) + 12|0);
HEAP32[$vararg_ptr17>>2] = $40;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer12);
}
}
$41 = HEAP32[$priv_sexp>>2]|0;
_gcry_sexp_release($41);
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
function _GNUNET_CRYPTO_eddsa_sign($priv,$purpose,$sig) {
$priv = $priv|0;
$purpose = $purpose|0;
$sig = $sig|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $log_line = 0, $log_line1 = 0, $priv_sexp = 0, $rc = 0, $rs = 0, $sig_sexp = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0;
var $vararg_ptr6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$sig_sexp = sp + 48|0;
$rs = sp + 32|0;
$1 = $priv;
$2 = $purpose;
$3 = $sig;
$4 = $1;
$5 = (_decode_private_eddsa_key($4)|0);
$priv_sexp = $5;
$6 = $2;
$7 = (_data_to_eddsa_value($6)|0);
$data = $7;
$8 = $data;
$9 = $priv_sexp;
$10 = (_gcry_pk_sign($sig_sexp,$8,$9)|0);
$rc = $10;
$11 = (0)!=($10|0);
if ($11) {
$log_line = 807;
$12 = HEAP32[221]|0;
$13 = ($12|0)==(-1);
if ($13) {
$14 = $log_line;
$15 = (_GNUNET_get_log_call_status(2,21106,19793,20259,$14)|0);
HEAP32[221] = $15;
}
$16 = (_GNUNET_get_log_skip()|0);
$17 = ($16|0)>(0);
if ($17) {
_GNUNET_log_skip(-1,0);
} else {
$18 = HEAP32[221]|0;
$19 = ($18|0)!=(0);
if ($19) {
$20 = $rc;
$21 = (_gcry_strerror($20)|0);
HEAP32[$vararg_buffer>>2] = 19793;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 807;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $21;
_GNUNET_log_from_nocheck(2,21106,20284,$vararg_buffer);
}
}
$22 = $data;
_gcry_sexp_release($22);
$23 = $priv_sexp;
_gcry_sexp_release($23);
$0 = -1;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$24 = $priv_sexp;
_gcry_sexp_release($24);
$25 = $data;
_gcry_sexp_release($25);
$26 = HEAP32[$sig_sexp>>2]|0;
$27 = (_key_from_sexp($rs,$26,37820,47181)|0);
$rc = $27;
$28 = (0)!=($27|0);
if (!($28)) {
$38 = HEAP32[$sig_sexp>>2]|0;
_gcry_sexp_release($38);
$39 = $3;
$40 = HEAP32[$rs>>2]|0;
_GNUNET_CRYPTO_mpi_print_unsigned($39,32,$40);
$41 = $3;
$42 = ((($41)) + 32|0);
$43 = ((($rs)) + 4|0);
$44 = HEAP32[$43>>2]|0;
_GNUNET_CRYPTO_mpi_print_unsigned($42,32,$44);
$45 = HEAP32[$rs>>2]|0;
_gcry_mpi_release($45);
$46 = ((($rs)) + 4|0);
$47 = HEAP32[$46>>2]|0;
_gcry_mpi_release($47);
$0 = 1;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
$log_line1 = 819;
$29 = HEAP32[222]|0;
$30 = ($29|0)==(-1);
if ($30) {
$31 = $log_line1;
$32 = (_GNUNET_get_log_call_status(1,0,19793,20259,$31)|0);
HEAP32[222] = $32;
}
$33 = (_GNUNET_get_log_skip()|0);
$34 = ($33|0)>(0);
if ($34) {
_GNUNET_log_skip(-1,0);
} else {
$35 = HEAP32[222]|0;
$36 = ($35|0)!=(0);
if ($36) {
HEAP32[$vararg_buffer3>>2] = 19793;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = 819;
_GNUNET_log_nocheck(1,61615,$vararg_buffer3);
}
}
$37 = HEAP32[$sig_sexp>>2]|0;
_gcry_sexp_release($37);
$0 = -1;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
function _data_to_eddsa_value($purpose) {
$purpose = $purpose|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $data = 0, $hc = 0, $log_line = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$hc = sp + 48|0;
$data = sp + 40|0;
$1 = $purpose;
$2 = $1;
$3 = $1;
$4 = HEAPU8[$3>>0]|(HEAPU8[$3+1>>0]<<8)|(HEAPU8[$3+2>>0]<<16)|(HEAPU8[$3+3>>0]<<24);
$5 = (_ntohl($4)|0);
_GNUNET_CRYPTO_hash($2,$5,$hc);
HEAP32[$vararg_buffer>>2] = 37878;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 64;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $hc;
$6 = (_gcry_sexp_build($data,0,20195,$vararg_buffer)|0);
$rc = $6;
$7 = (0)!=($6|0);
if (!($7)) {
$18 = HEAP32[$data>>2]|0;
$0 = $18;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
$log_line = 698;
$8 = HEAP32[220]|0;
$9 = ($8|0)==(-1);
if ($9) {
$10 = $log_line;
$11 = (_GNUNET_get_log_call_status(1,21106,19793,20239,$10)|0);
HEAP32[220] = $11;
}
$12 = (_GNUNET_get_log_skip()|0);
$13 = ($12|0)>(0);
if ($13) {
_GNUNET_log_skip(-1,0);
} else {
$14 = HEAP32[220]|0;
$15 = ($14|0)!=(0);
if ($15) {
$16 = $rc;
$17 = (_gcry_strerror($16)|0);
HEAP32[$vararg_buffer3>>2] = 19806;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = 19793;
$vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
HEAP32[$vararg_ptr7>>2] = 698;
$vararg_ptr8 = ((($vararg_buffer3)) + 12|0);
HEAP32[$vararg_ptr8>>2] = $17;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer3);
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _GNUNET_CRYPTO_eddsa_verify($purpose,$validate,$sig,$pub) {
$purpose = $purpose|0;
$validate = $validate|0;
$sig = $sig|0;
$pub = $pub|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $log_line = 0, $log_line1 = 0, $pub_sexpr = 0, $rc = 0, $sig_sexpr = 0, $vararg_buffer = 0;
var $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr18 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer14 = sp + 40|0;
$vararg_buffer10 = sp + 32|0;
$vararg_buffer4 = sp + 16|0;
$vararg_buffer = sp;
$sig_sexpr = sp + 68|0;
$pub_sexpr = sp + 64|0;
$1 = $purpose;
$2 = $validate;
$3 = $sig;
$4 = $pub;
$5 = $1;
$6 = $2;
$7 = ((($6)) + 4|0);
$8 = HEAPU8[$7>>0]|(HEAPU8[$7+1>>0]<<8)|(HEAPU8[$7+2>>0]<<16)|(HEAPU8[$7+3>>0]<<24);
$9 = (_ntohl($8)|0);
$10 = ($5|0)!=($9|0);
if ($10) {
$0 = -1;
$52 = $0;
STACKTOP = sp;return ($52|0);
}
$11 = $3;
$12 = $3;
$13 = ((($12)) + 32|0);
HEAP32[$vararg_buffer>>2] = 32;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $11;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 32;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $13;
$14 = (_gcry_sexp_build($sig_sexpr,0,20358,$vararg_buffer)|0);
$rc = $14;
$15 = (0)!=($14|0);
if ($15) {
$log_line = 918;
$16 = HEAP32[223]|0;
$17 = ($16|0)==(-1);
if ($17) {
$18 = $log_line;
$19 = (_GNUNET_get_log_call_status(1,21106,19793,20387,$18)|0);
HEAP32[223] = $19;
}
$20 = (_GNUNET_get_log_skip()|0);
$21 = ($20|0)>(0);
if ($21) {
_GNUNET_log_skip(-1,0);
} else {
$22 = HEAP32[223]|0;
$23 = ($22|0)!=(0);
if ($23) {
$24 = $rc;
$25 = (_gcry_strerror($24)|0);
HEAP32[$vararg_buffer4>>2] = 19806;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = 19793;
$vararg_ptr8 = ((($vararg_buffer4)) + 8|0);
HEAP32[$vararg_ptr8>>2] = 918;
$vararg_ptr9 = ((($vararg_buffer4)) + 12|0);
HEAP32[$vararg_ptr9>>2] = $25;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer4);
}
}
$0 = -1;
$52 = $0;
STACKTOP = sp;return ($52|0);
}
$26 = $2;
$27 = (_data_to_eddsa_value($26)|0);
$data = $27;
$28 = $4;
HEAP32[$vararg_buffer10>>2] = 32;
$vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
HEAP32[$vararg_ptr13>>2] = $28;
$29 = (_gcry_sexp_build($pub_sexpr,0,20414,$vararg_buffer10)|0);
$rc = $29;
$30 = (0)!=($29|0);
if ($30) {
$31 = $data;
_gcry_sexp_release($31);
$32 = HEAP32[$sig_sexpr>>2]|0;
_gcry_sexp_release($32);
$0 = -1;
$52 = $0;
STACKTOP = sp;return ($52|0);
}
$33 = HEAP32[$sig_sexpr>>2]|0;
$34 = $data;
$35 = HEAP32[$pub_sexpr>>2]|0;
$36 = (_gcry_pk_verify($33,$34,$35)|0);
$rc = $36;
$37 = HEAP32[$pub_sexpr>>2]|0;
_gcry_sexp_release($37);
$38 = $data;
_gcry_sexp_release($38);
$39 = HEAP32[$sig_sexpr>>2]|0;
_gcry_sexp_release($39);
$40 = $rc;
$41 = (0)!=($40|0);
if (!($41)) {
$0 = 1;
$52 = $0;
STACKTOP = sp;return ($52|0);
}
$log_line1 = 938;
$42 = HEAP32[224]|0;
$43 = ($42|0)==(-1);
if ($43) {
$44 = $log_line1;
$45 = (_GNUNET_get_log_call_status(4,21106,19793,20387,$44)|0);
HEAP32[224] = $45;
}
$46 = (_GNUNET_get_log_skip()|0);
$47 = ($46|0)>(0);
if ($47) {
_GNUNET_log_skip(-1,0);
} else {
$48 = HEAP32[224]|0;
$49 = ($48|0)!=(0);
if ($49) {
$50 = $rc;
$51 = (_gcry_strerror($50)|0);
HEAP32[$vararg_buffer14>>2] = 19793;
$vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
HEAP32[$vararg_ptr17>>2] = 938;
$vararg_ptr18 = ((($vararg_buffer14)) + 8|0);
HEAP32[$vararg_ptr18>>2] = $51;
_GNUNET_log_from_nocheck(4,21106,20466,$vararg_buffer14);
}
}
$0 = -1;
$52 = $0;
STACKTOP = sp;return ($52|0);
}
function _GNUNET_CRYPTO_ecc_ecdh($priv,$pub,$key_material) {
$priv = $priv|0;
$pub = $pub|0;
$key_material = $key_material|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $ctx = 0, $d = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0;
var $log_line3 = 0, $pub_sexpr = 0, $q = 0, $result = 0, $result_x = 0, $rsize = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr19 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, $xbuf = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer16 = sp + 40|0;
$vararg_buffer12 = sp + 32|0;
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$d = sp + 80|0;
$ctx = sp + 76|0;
$pub_sexpr = sp + 72|0;
$xbuf = sp + 112|0;
$rsize = sp + 64|0;
$1 = $priv;
$2 = $pub;
$3 = $key_material;
$4 = $2;
HEAP32[$vararg_buffer>>2] = 32;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $4;
$5 = (_gcry_sexp_build($pub_sexpr,0,20319,$vararg_buffer)|0);
$6 = (0)!=($5|0);
if ($6) {
$0 = -1;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$7 = HEAP32[$pub_sexpr>>2]|0;
$8 = (_gcry_mpi_ec_new($ctx,$7,0)|0);
$9 = (0)==($8|0);
if (!($9)) {
$log_line = 972;
$10 = HEAP32[225]|0;
$11 = ($10|0)==(-1);
if ($11) {
$12 = $log_line;
$13 = (_GNUNET_get_log_call_status(1,0,19793,20516,$12)|0);
HEAP32[225] = $13;
}
$14 = (_GNUNET_get_log_skip()|0);
$15 = ($14|0)>(0);
if ($15) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$16 = HEAP32[225]|0;
$17 = ($16|0)!=(0);
if (!($17)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 19793;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 972;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
$18 = HEAP32[$pub_sexpr>>2]|0;
_gcry_sexp_release($18);
$19 = HEAP32[$ctx>>2]|0;
$20 = (_gcry_mpi_ec_get_point(49895,$19,0)|0);
$q = $20;
$21 = $1;
_GNUNET_CRYPTO_mpi_scan_unsigned($d,$21,32);
$22 = (_gcry_mpi_point_new(0)|0);
$result = $22;
$23 = $result;
$24 = HEAP32[$d>>2]|0;
$25 = $q;
$26 = HEAP32[$ctx>>2]|0;
_gcry_mpi_ec_mul($23,$24,$25,$26);
$27 = $q;
_gcry_mpi_point_release($27);
$28 = HEAP32[$d>>2]|0;
_gcry_mpi_release($28);
$29 = (_gcry_mpi_new(256)|0);
$result_x = $29;
$30 = $result_x;
$31 = $result;
$32 = HEAP32[$ctx>>2]|0;
$33 = (_gcry_mpi_ec_get_affine($30,0,$31,$32)|0);
$34 = ($33|0)!=(0);
if ($34) {
$log_line1 = 989;
$35 = HEAP32[226]|0;
$36 = ($35|0)==(-1);
if ($36) {
$37 = $log_line1;
$38 = (_GNUNET_get_log_call_status(1,21106,19793,20516,$37)|0);
HEAP32[226] = $38;
}
$39 = (_GNUNET_get_log_skip()|0);
$40 = ($39|0)>(0);
if ($40) {
_GNUNET_log_skip(-1,0);
} else {
$41 = HEAP32[226]|0;
$42 = ($41|0)!=(0);
if ($42) {
$43 = (_gcry_strerror(0)|0);
HEAP32[$vararg_buffer6>>2] = 20539;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 19793;
$vararg_ptr10 = ((($vararg_buffer6)) + 8|0);
HEAP32[$vararg_ptr10>>2] = 989;
$vararg_ptr11 = ((($vararg_buffer6)) + 12|0);
HEAP32[$vararg_ptr11>>2] = $43;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer6);
}
}
$44 = $result;
_gcry_mpi_point_release($44);
$45 = HEAP32[$ctx>>2]|0;
_gcry_ctx_release($45);
$0 = -1;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$46 = $result;
_gcry_mpi_point_release($46);
$47 = HEAP32[$ctx>>2]|0;
_gcry_ctx_release($47);
HEAP32[$rsize>>2] = 32;
$48 = $result_x;
$49 = (_gcry_mpi_get_flag($48,2)|0);
$50 = ($49|0)!=(0);
if ($50) {
$log_line2 = 998;
$51 = HEAP32[227]|0;
$52 = ($51|0)==(-1);
if ($52) {
$53 = $log_line2;
$54 = (_GNUNET_get_log_call_status(1,0,19793,20516,$53)|0);
HEAP32[227] = $54;
}
$55 = (_GNUNET_get_log_skip()|0);
$56 = ($55|0)>(0);
if ($56) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$57 = HEAP32[227]|0;
$58 = ($57|0)!=(0);
if (!($58)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer12>>2] = 19793;
$vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
HEAP32[$vararg_ptr15>>2] = 998;
_GNUNET_log_nocheck(1,61615,$vararg_buffer12);
_GNUNET_abort_();
// unreachable;
}
$59 = HEAP32[$rsize>>2]|0;
$60 = $result_x;
$61 = (_gcry_mpi_print(1,$xbuf,$59,$rsize,$60)|0);
$62 = (0)==($61|0);
if ($62) {
$71 = HEAP32[$rsize>>2]|0;
$72 = $3;
_GNUNET_CRYPTO_hash($xbuf,$71,$72);
$73 = $result_x;
_gcry_mpi_release($73);
$0 = 1;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$log_line3 = 1005;
$63 = HEAP32[228]|0;
$64 = ($63|0)==(-1);
if ($64) {
$65 = $log_line3;
$66 = (_GNUNET_get_log_call_status(1,0,19793,20516,$65)|0);
HEAP32[228] = $66;
}
$67 = (_GNUNET_get_log_skip()|0);
$68 = ($67|0)>(0);
if ($68) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$69 = HEAP32[228]|0;
$70 = ($69|0)!=(0);
if (!($70)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer16>>2] = 19793;
$vararg_ptr19 = ((($vararg_buffer16)) + 4|0);
HEAP32[$vararg_ptr19>>2] = 1005;
_GNUNET_log_nocheck(1,61615,$vararg_buffer16);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_hash($block,$size,$ret) {
$block = $block|0;
$size = $size|0;
$ret = $ret|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $block;
$1 = $size;
$2 = $ret;
$3 = $2;
$4 = $0;
$5 = $1;
_gcry_md_hash_buffer(10,$3,$4,$5);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_hash_create_random($mode,$result) {
$mode = $mode|0;
$result = $result|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $mode;
$1 = $result;
$i = 15;
while(1) {
$2 = $i;
$3 = ($2|0)>=(0);
if (!($3)) {
break;
}
$4 = $0;
$5 = (_GNUNET_CRYPTO_random_u32($4,-1)|0);
$6 = $i;
$7 = $1;
$8 = (($7) + ($6<<2)|0);
HEAP32[$8>>2] = $5;
$9 = $i;
$10 = (($9) + -1)|0;
$i = $10;
}
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_hash_context_start() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $hc = 0, $log_line = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_GNUNET_xmalloc_(4,20557,425)|0);
$hc = $0;
$1 = $hc;
$2 = (_gcry_md_open($1,10,0)|0);
$3 = (0)==($2|0);
if ($3) {
$12 = $hc;
STACKTOP = sp;return ($12|0);
}
$log_line = 429;
$4 = HEAP32[229]|0;
$5 = ($4|0)==(-1);
if ($5) {
$6 = $log_line;
$7 = (_GNUNET_get_log_call_status(1,0,20557,20571,$6)|0);
HEAP32[229] = $7;
}
$8 = (_GNUNET_get_log_skip()|0);
$9 = ($8|0)>(0);
if ($9) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$10 = HEAP32[229]|0;
$11 = ($10|0)!=(0);
if (!($11)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 20557;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 429;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_hash_context_read($hc,$buf,$size) {
$hc = $hc|0;
$buf = $buf|0;
$size = $size|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hc;
$1 = $buf;
$2 = $size;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = $1;
$6 = $2;
_gcry_md_write($4,$5,$6);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_hash_context_finish($hc,$r_hash) {
$hc = $hc|0;
$r_hash = $r_hash|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $log_line = 0, $res = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $hc;
$1 = $r_hash;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = (_gcry_md_read($3,0)|0);
$res = $4;
$5 = $res;
$6 = (0|0)!=($5|0);
if ($6) {
$15 = $1;
$16 = (0|0)!=($15|0);
if (!($16)) {
$19 = $0;
_GNUNET_CRYPTO_hash_context_abort($19);
STACKTOP = sp;return;
}
$17 = $1;
$18 = $res;
dest=$17; src=$18; stop=dest+64|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$19 = $0;
_GNUNET_CRYPTO_hash_context_abort($19);
STACKTOP = sp;return;
}
$log_line = 462;
$7 = HEAP32[230]|0;
$8 = ($7|0)==(-1);
if ($8) {
$9 = $log_line;
$10 = (_GNUNET_get_log_call_status(1,0,20557,20604,$9)|0);
HEAP32[230] = $10;
}
$11 = (_GNUNET_get_log_skip()|0);
$12 = ($11|0)>(0);
if ($12) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$13 = HEAP32[230]|0;
$14 = ($13|0)!=(0);
if (!($14)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 20557;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 462;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
function _GNUNET_CRYPTO_hash_context_abort($hc) {
$hc = $hc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hc;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
_gcry_md_close($2);
$3 = $0;
_GNUNET_xfree_($3,20557,480);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_hkdf_v($result,$out_len,$xtr_algo,$prf_algo,$xts,$xts_len,$skm,$skm_len,$argp) {
$result = $result|0;
$out_len = $out_len|0;
$xtr_algo = $xtr_algo|0;
$prf_algo = $prf_algo|0;
$xts = $xts|0;
$xts_len = $xts_len|0;
$skm = $skm|0;
$skm_len = $skm_len|0;
$argp = $argp|0;
var $$alloca_mul = 0, $$alloca_mul53 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current2 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next3 = 0, $arglist_next9 = 0, $args = 0, $cleanup$dest = 0, $ctx = 0, $ctx_len = 0, $d = 0;
var $dst = 0, $expanded = 0, $expanded13 = 0, $expanded15 = 0, $expanded16 = 0, $expanded17 = 0, $expanded19 = 0, $expanded20 = 0, $expanded22 = 0, $expanded23 = 0, $expanded24 = 0, $expanded26 = 0, $expanded27 = 0, $expanded29 = 0, $expanded30 = 0, $expanded31 = 0, $expanded33 = 0, $expanded34 = 0, $expanded36 = 0, $expanded37 = 0;
var $expanded38 = 0, $hc = 0, $i = 0, $k = 0, $len = 0, $plain_len = 0, $prf = 0, $ret = 0, $t = 0, $vacopy_currentptr = 0, $vacopy_currentptr6 = 0, $xtr = 0, $xtr_len = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$xtr = sp + 80|0;
$prf = sp + 76|0;
$args = sp + 24|0;
$1 = $result;
$2 = $out_len;
$3 = $xtr_algo;
$4 = $prf_algo;
$5 = $xts;
$6 = $xts_len;
$7 = $skm;
$8 = $skm_len;
$9 = $argp;
$13 = $4;
$14 = (_gcry_md_get_algo_dlen($13)|0);
$k = $14;
$15 = $3;
$16 = (_gcry_md_get_algo_dlen($15)|0);
$xtr_len = $16;
$17 = $xtr_len;
$18 = (_llvm_stacksave()|0);
$10 = $18;
$$alloca_mul = $17;
$19 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
$20 = $k;
$21 = (0)==($20|0);
if ($21) {
$0 = -1;
$11 = 1;
$183 = $10;
_llvm_stackrestore(($183|0));
$184 = $0;
STACKTOP = sp;return ($184|0);
}
$22 = $3;
$23 = (_gcry_md_open($xtr,$22,2)|0);
$24 = (0)!=($23|0);
if ($24) {
$0 = -1;
$11 = 1;
$183 = $10;
_llvm_stackrestore(($183|0));
$184 = $0;
STACKTOP = sp;return ($184|0);
}
$25 = $4;
$26 = (_gcry_md_open($prf,$25,2)|0);
$27 = (0)!=($26|0);
if ($27) {
$28 = HEAP32[$xtr>>2]|0;
_gcry_md_close($28);
$0 = -1;
$11 = 1;
$183 = $10;
_llvm_stackrestore(($183|0));
$184 = $0;
STACKTOP = sp;return ($184|0);
}
$29 = $9;
$vacopy_currentptr = HEAP32[$29>>2]|0;
HEAP32[$args>>2] = $vacopy_currentptr;
$ctx_len = 0;
while(1) {
$arglist_current = HEAP32[$args>>2]|0;
$30 = $arglist_current;
$31 = ((0) + 4|0);
$expanded13 = $31;
$expanded = (($expanded13) - 1)|0;
$32 = (($30) + ($expanded))|0;
$33 = ((0) + 4|0);
$expanded17 = $33;
$expanded16 = (($expanded17) - 1)|0;
$expanded15 = $expanded16 ^ -1;
$34 = $32 & $expanded15;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$arglist_next = ((($35)) + 4|0);
HEAP32[$args>>2] = $arglist_next;
$37 = (0|0)!=($36|0);
if (!($37)) {
break;
}
$arglist_current2 = HEAP32[$args>>2]|0;
$38 = $arglist_current2;
$39 = ((0) + 4|0);
$expanded20 = $39;
$expanded19 = (($expanded20) - 1)|0;
$40 = (($38) + ($expanded19))|0;
$41 = ((0) + 4|0);
$expanded24 = $41;
$expanded23 = (($expanded24) - 1)|0;
$expanded22 = $expanded23 ^ -1;
$42 = $40 & $expanded22;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$arglist_next3 = ((($43)) + 4|0);
HEAP32[$args>>2] = $arglist_next3;
$45 = $ctx_len;
$46 = (($45) + ($44))|0;
$ctx_len = $46;
}
$47 = $1;
$48 = $2;
_memset(($47|0),0,($48|0))|0;
$49 = HEAP32[$xtr>>2]|0;
$50 = $5;
$51 = $6;
$52 = $7;
$53 = $8;
$54 = (_getPRK($49,$50,$51,$52,$53,$19)|0);
$55 = ($54|0)!=(1);
L17: do {
if ($55) {
label = 34;
} else {
$56 = $2;
$57 = $k;
$58 = (($56>>>0) / ($57>>>0))&-1;
$t = $58;
$59 = $2;
$60 = $k;
$61 = (($59>>>0) % ($60>>>0))&-1;
$d = $61;
$62 = $k;
$63 = $ctx_len;
$64 = (($62) + ($63))|0;
$65 = (($64) + 1)|0;
$plain_len = $65;
$66 = $plain_len;
$67 = (_llvm_stacksave()|0);
$12 = $67;
$$alloca_mul53 = $66;
$68 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul53)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
$69 = $k;
$70 = (($68) + ($69)|0);
$dst = $70;
$71 = $9;
$vacopy_currentptr6 = HEAP32[$71>>2]|0;
HEAP32[$args>>2] = $vacopy_currentptr6;
while(1) {
$arglist_current8 = HEAP32[$args>>2]|0;
$72 = $arglist_current8;
$73 = ((0) + 4|0);
$expanded27 = $73;
$expanded26 = (($expanded27) - 1)|0;
$74 = (($72) + ($expanded26))|0;
$75 = ((0) + 4|0);
$expanded31 = $75;
$expanded30 = (($expanded31) - 1)|0;
$expanded29 = $expanded30 ^ -1;
$76 = $74 & $expanded29;
$77 = $76;
$78 = HEAP32[$77>>2]|0;
$arglist_next9 = ((($77)) + 4|0);
HEAP32[$args>>2] = $arglist_next9;
$ctx = $78;
$79 = ($78|0)!=(0|0);
if (!($79)) {
break;
}
$arglist_current11 = HEAP32[$args>>2]|0;
$80 = $arglist_current11;
$81 = ((0) + 4|0);
$expanded34 = $81;
$expanded33 = (($expanded34) - 1)|0;
$82 = (($80) + ($expanded33))|0;
$83 = ((0) + 4|0);
$expanded38 = $83;
$expanded37 = (($expanded38) - 1)|0;
$expanded36 = $expanded37 ^ -1;
$84 = $82 & $expanded36;
$85 = $84;
$86 = HEAP32[$85>>2]|0;
$arglist_next12 = ((($85)) + 4|0);
HEAP32[$args>>2] = $arglist_next12;
$len = $86;
$87 = $dst;
$88 = $ctx;
$89 = $len;
_memcpy(($87|0),($88|0),($89|0))|0;
$90 = $len;
$91 = $dst;
$92 = (($91) + ($90)|0);
$dst = $92;
}
$93 = $t;
$94 = ($93>>>0)>(0);
do {
if ($94) {
$95 = $k;
$96 = (($68) + ($95)|0);
$97 = $ctx_len;
$98 = (($96) + ($97)|0);
;HEAP8[$98>>0]=1|0;
$99 = HEAP32[$prf>>2]|0;
$100 = $xtr_len;
$101 = $k;
$102 = (($68) + ($101)|0);
$103 = $ctx_len;
$104 = (($103) + 1)|0;
$105 = (_doHMAC($99,$19,$100,$102,$104)|0);
$hc = $105;
$106 = $hc;
$107 = ($106|0)==(0|0);
if ($107) {
$11 = 4;
break;
} else {
$108 = $1;
$109 = $hc;
$110 = $k;
_memcpy(($108|0),($109|0),($110|0))|0;
$111 = $k;
$112 = $1;
$113 = (($112) + ($111)|0);
$1 = $113;
label = 18;
break;
}
} else {
label = 18;
}
} while(0);
L28: do {
if ((label|0) == 18) {
$i = 1;
while(1) {
$114 = $i;
$115 = $t;
$116 = ($114>>>0)<($115>>>0);
if (!($116)) {
break;
}
$117 = $1;
$118 = $k;
$119 = (0 - ($118))|0;
$120 = (($117) + ($119)|0);
$121 = $k;
_memcpy(($68|0),($120|0),($121|0))|0;
$122 = $k;
$123 = (($68) + ($122)|0);
$124 = $ctx_len;
$125 = (($123) + ($124)|0);
$126 = $i;
$127 = (($126) + 1)|0;
$128 = $127&255;
_memset(($125|0),($128|0),1)|0;
$129 = HEAP32[$prf>>2]|0;
_gcry_md_reset($129);
$130 = HEAP32[$prf>>2]|0;
$131 = $xtr_len;
$132 = $plain_len;
$133 = (_doHMAC($130,$19,$131,$68,$132)|0);
$hc = $133;
$134 = $hc;
$135 = ($134|0)==(0|0);
if ($135) {
label = 21;
break;
}
$136 = $1;
$137 = $hc;
$138 = $k;
_memcpy(($136|0),($137|0),($138|0))|0;
$139 = $k;
$140 = $1;
$141 = (($140) + ($139)|0);
$1 = $141;
$142 = $i;
$143 = (($142) + 1)|0;
$i = $143;
}
if ((label|0) == 21) {
$11 = 4;
break;
}
$144 = $d;
$145 = ($144>>>0)>(0);
do {
if ($145) {
$146 = $t;
$147 = ($146>>>0)>(0);
if ($147) {
$148 = $1;
$149 = $k;
$150 = (0 - ($149))|0;
$151 = (($148) + ($150)|0);
$152 = $k;
_memcpy(($68|0),($151|0),($152|0))|0;
$153 = $i;
$154 = (($153) + 1)|0;
$i = $154;
}
$155 = $k;
$156 = (($68) + ($155)|0);
$157 = $ctx_len;
$158 = (($156) + ($157)|0);
$159 = $i;
$160 = $159&255;
_memset(($158|0),($160|0),1)|0;
$161 = HEAP32[$prf>>2]|0;
_gcry_md_reset($161);
$162 = $t;
$163 = ($162>>>0)>(0);
$164 = HEAP32[$prf>>2]|0;
$165 = $xtr_len;
if ($163) {
$166 = $plain_len;
$167 = (_doHMAC($164,$19,$165,$68,$166)|0);
$hc = $167;
} else {
$168 = $k;
$169 = (($68) + ($168)|0);
$170 = $plain_len;
$171 = $k;
$172 = (($170) - ($171))|0;
$173 = (_doHMAC($164,$19,$165,$169,$172)|0);
$hc = $173;
}
$174 = $hc;
$175 = ($174|0)==(0|0);
if ($175) {
$11 = 4;
break L28;
} else {
$176 = $1;
$177 = $hc;
$178 = $d;
_memcpy(($176|0),($177|0),($178|0))|0;
break;
}
}
} while(0);
$ret = 1;
$11 = 10;
}
} while(0);
$179 = $12;
_llvm_stackrestore(($179|0));
$cleanup$dest = $11;
switch ($cleanup$dest|0) {
case 4: {
label = 34;
break L17;
break;
}
case 10: {
break L17;
break;
}
default: {
}
}
$183 = $10;
_llvm_stackrestore(($183|0));
$184 = $0;
STACKTOP = sp;return ($184|0);
}
} while(0);
if ((label|0) == 34) {
$ret = -1;
}
$180 = HEAP32[$xtr>>2]|0;
_gcry_md_close($180);
$181 = HEAP32[$prf>>2]|0;
_gcry_md_close($181);
$182 = $ret;
$0 = $182;
$11 = 1;
$183 = $10;
_llvm_stackrestore(($183|0));
$184 = $0;
STACKTOP = sp;return ($184|0);
}
function _getPRK($mac,$xts,$xts_len,$skm,$skm_len,$prk) {
$mac = $mac|0;
$xts = $xts|0;
$xts_len = $xts_len|0;
$skm = $skm|0;
$skm_len = $skm_len|0;
$prk = $prk|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $ret = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $mac;
$2 = $xts;
$3 = $xts_len;
$4 = $skm;
$5 = $skm_len;
$6 = $prk;
$7 = $1;
$8 = $2;
$9 = $3;
$10 = $4;
$11 = $5;
$12 = (_doHMAC($7,$8,$9,$10,$11)|0);
$ret = $12;
$13 = $ret;
$14 = ($13|0)==(0|0);
if ($14) {
$0 = -1;
$20 = $0;
STACKTOP = sp;return ($20|0);
} else {
$15 = $6;
$16 = $ret;
$17 = $1;
$18 = (_gcry_md_get_algo($17)|0);
$19 = (_gcry_md_get_algo_dlen($18)|0);
_memcpy(($15|0),($16|0),($19|0))|0;
$0 = 1;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
return (0)|0;
}
function _doHMAC($mac,$key,$key_len,$buf,$buf_len) {
$mac = $mac|0;
$key = $key|0;
$key_len = $key_len|0;
$buf = $buf|0;
$buf_len = $buf_len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $mac;
$1 = $key;
$2 = $key_len;
$3 = $buf;
$4 = $buf_len;
$5 = $0;
$6 = $1;
$7 = $2;
(_gcry_md_setkey($5,$6,$7)|0);
$8 = $0;
$9 = $3;
$10 = $4;
_gcry_md_write($8,$9,$10);
$11 = $0;
$12 = (_gcry_md_read($11,0)|0);
STACKTOP = sp;return ($12|0);
}
function _GNUNET_CRYPTO_hkdf($result,$out_len,$xtr_algo,$prf_algo,$xts,$xts_len,$skm,$skm_len,$varargs) {
$result = $result|0;
$out_len = $out_len|0;
$xtr_algo = $xtr_algo|0;
$prf_algo = $prf_algo|0;
$xts = $xts|0;
$xts_len = $xts_len|0;
$skm = $skm|0;
$skm_len = $skm_len|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $argp = 0, $ret = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$argp = sp + 8|0;
$0 = $result;
$1 = $out_len;
$2 = $xtr_algo;
$3 = $prf_algo;
$4 = $xts;
$5 = $xts_len;
$6 = $skm;
$7 = $skm_len;
HEAP32[$argp>>2] = $varargs;
$8 = $0;
$9 = $1;
$10 = $2;
$11 = $3;
$12 = $4;
$13 = $5;
$14 = $6;
$15 = $7;
$16 = (_GNUNET_CRYPTO_hkdf_v($8,$9,$10,$11,$12,$13,$14,$15,$argp)|0);
$ret = $16;
$17 = $ret;
STACKTOP = sp;return ($17|0);
}
function _GNUNET_CRYPTO_kdf_v($result,$out_len,$xts,$xts_len,$skm,$skm_len,$argp) {
$result = $result|0;
$out_len = $out_len|0;
$xts = $xts|0;
$xts_len = $xts_len|0;
$skm = $skm|0;
$skm_len = $skm_len|0;
$argp = $argp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $out_len;
$2 = $xts;
$3 = $xts_len;
$4 = $skm;
$5 = $skm_len;
$6 = $argp;
$7 = $0;
$8 = $1;
$9 = $2;
$10 = $3;
$11 = $4;
$12 = $5;
$13 = $6;
$14 = (_GNUNET_CRYPTO_hkdf_v($7,$8,10,8,$9,$10,$11,$12,$13)|0);
STACKTOP = sp;return ($14|0);
}
function _GNUNET_CRYPTO_kdf($result,$out_len,$xts,$xts_len,$skm,$skm_len,$varargs) {
$result = $result|0;
$out_len = $out_len|0;
$xts = $xts|0;
$xts_len = $xts_len|0;
$skm = $skm|0;
$skm_len = $skm_len|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $argp = 0, $ret = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$argp = sp + 8|0;
$0 = $result;
$1 = $out_len;
$2 = $xts;
$3 = $xts_len;
$4 = $skm;
$5 = $skm_len;
HEAP32[$argp>>2] = $varargs;
$6 = $0;
$7 = $1;
$8 = $2;
$9 = $3;
$10 = $4;
$11 = $5;
$12 = (_GNUNET_CRYPTO_kdf_v($6,$7,$8,$9,$10,$11,$argp)|0);
$ret = $12;
$13 = $ret;
STACKTOP = sp;return ($13|0);
}
function _GNUNET_CRYPTO_mpi_print_unsigned($buf,$size,$val) {
$buf = $buf|0;
$size = $size|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $nbits = 0, $p = 0, $rc = 0, $rsize = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer8 = sp + 24|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$rsize = sp + 56|0;
$nbits = sp + 48|0;
$0 = $buf;
$1 = $size;
$2 = $val;
$3 = $2;
$4 = (_gcry_mpi_get_flag($3,2)|0);
$5 = ($4|0)!=(0);
if ($5) {
$6 = $2;
$7 = (_gcry_mpi_get_opaque($6,$nbits)|0);
$p = $7;
$8 = $p;
$9 = ($8|0)!=(0|0);
if ($9) {
$18 = HEAP32[$nbits>>2]|0;
$19 = (($18) + 7)|0;
$20 = (($19>>>0) / 8)&-1;
HEAP32[$rsize>>2] = $20;
$21 = HEAP32[$rsize>>2]|0;
$22 = $1;
$23 = ($21>>>0)>($22>>>0);
if ($23) {
$24 = $1;
HEAP32[$rsize>>2] = $24;
}
$25 = $0;
$26 = $p;
$27 = HEAP32[$rsize>>2]|0;
_memcpy(($25|0),($26|0),($27|0))|0;
$28 = HEAP32[$rsize>>2]|0;
$29 = $1;
$30 = ($28>>>0)<($29>>>0);
if (!($30)) {
STACKTOP = sp;return;
}
$31 = $0;
$32 = HEAP32[$rsize>>2]|0;
$33 = (($31) + ($32)|0);
$34 = $1;
$35 = HEAP32[$rsize>>2]|0;
$36 = (($34) - ($35))|0;
_memset(($33|0),0,($36|0))|0;
STACKTOP = sp;return;
}
$log_line = 89;
$10 = HEAP32[231]|0;
$11 = ($10|0)==(-1);
if ($11) {
$12 = $log_line;
$13 = (_GNUNET_get_log_call_status(1,0,20638,20651,$12)|0);
HEAP32[231] = $13;
}
$14 = (_GNUNET_get_log_skip()|0);
$15 = ($14|0)>(0);
if ($15) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$16 = HEAP32[231]|0;
$17 = ($16|0)!=(0);
if (!($17)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 20638;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 89;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$37 = $1;
HEAP32[$rsize>>2] = $37;
$38 = $0;
$39 = HEAP32[$rsize>>2]|0;
$40 = $2;
$41 = (_gcry_mpi_print(5,$38,$39,$rsize,$40)|0);
$rc = $41;
$42 = (0)!=($41|0);
if (!($42)) {
$61 = $0;
$62 = HEAP32[$rsize>>2]|0;
$63 = $1;
_adjust($61,$62,$63);
STACKTOP = sp;return;
}
$log_line1 = 110;
$43 = HEAP32[232]|0;
$44 = ($43|0)==(-1);
if ($44) {
$45 = $log_line1;
$46 = (_GNUNET_get_log_call_status(1,21106,20638,20651,$45)|0);
HEAP32[232] = $46;
}
$47 = (_GNUNET_get_log_skip()|0);
$48 = ($47|0)>(0);
if ($48) {
_GNUNET_log_skip(-1,0);
} else {
$49 = HEAP32[232]|0;
$50 = ($49|0)!=(0);
if ($50) {
$51 = $rc;
$52 = (_gcry_strerror($51)|0);
HEAP32[$vararg_buffer2>>2] = 20721;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 20638;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = 110;
$vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
HEAP32[$vararg_ptr7>>2] = $52;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer2);
}
}
$log_line2 = 111;
$53 = HEAP32[233]|0;
$54 = ($53|0)==(-1);
if ($54) {
$55 = $log_line2;
$56 = (_GNUNET_get_log_call_status(1,0,20638,20651,$55)|0);
HEAP32[233] = $56;
}
$57 = (_GNUNET_get_log_skip()|0);
$58 = ($57|0)>(0);
if ($58) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$59 = HEAP32[233]|0;
$60 = ($59|0)!=(0);
if (!($60)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer8>>2] = 20638;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = 111;
_GNUNET_log_nocheck(1,61615,$vararg_buffer8);
_GNUNET_abort_();
// unreachable;
}
function _adjust($buf,$size,$target) {
$buf = $buf|0;
$size = $size|0;
$target = $target|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buf;
$1 = $size;
$2 = $target;
$3 = $0;
$p = $3;
$4 = $1;
$5 = $2;
$6 = ($4>>>0)<($5>>>0);
if (!($6)) {
STACKTOP = sp;return;
}
$7 = $2;
$8 = $1;
$9 = (($7) - ($8))|0;
$10 = $p;
$11 = (($10) + ($9)|0);
$12 = $0;
$13 = $1;
_memmove(($11|0),($12|0),($13|0))|0;
$14 = $0;
$15 = $2;
$16 = $1;
$17 = (($15) - ($16))|0;
_memset(($14|0),0,($17|0))|0;
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_mpi_scan_unsigned($result,$data,$size) {
$result = $result|0;
$data = $data|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer4 = sp + 16|0;
$vararg_buffer = sp;
$2 = sp + 36|0;
$0 = $result;
$1 = $data;
HEAP32[$2>>2] = $size;
$3 = $0;
$4 = $1;
$5 = HEAP32[$2>>2]|0;
$6 = (_gcry_mpi_scan($3,5,$4,$5,$2)|0);
$rc = $6;
$7 = (0)!=($6|0);
if (!($7)) {
STACKTOP = sp;return;
}
$log_line = 140;
$8 = HEAP32[234]|0;
$9 = ($8|0)==(-1);
if ($9) {
$10 = $log_line;
$11 = (_GNUNET_get_log_call_status(1,21106,20638,20736,$10)|0);
HEAP32[234] = $11;
}
$12 = (_GNUNET_get_log_skip()|0);
$13 = ($12|0)>(0);
if ($13) {
_GNUNET_log_skip(-1,0);
} else {
$14 = HEAP32[234]|0;
$15 = ($14|0)!=(0);
if ($15) {
$16 = $rc;
$17 = (_gcry_strerror($16)|0);
HEAP32[$vararg_buffer>>2] = 20768;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 20638;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 140;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $17;
_GNUNET_log_from_nocheck(1,21106,20684,$vararg_buffer);
}
}
$log_line1 = 141;
$18 = HEAP32[235]|0;
$19 = ($18|0)==(-1);
if ($19) {
$20 = $log_line1;
$21 = (_GNUNET_get_log_call_status(1,0,20638,20736,$20)|0);
HEAP32[235] = $21;
}
$22 = (_GNUNET_get_log_skip()|0);
$23 = ($22|0)>(0);
if ($23) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$24 = HEAP32[235]|0;
$25 = ($24|0)!=(0);
if (!($25)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer4>>2] = 20638;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = 141;
_GNUNET_log_nocheck(1,61615,$vararg_buffer4);
_GNUNET_abort_();
// unreachable;
}
function _GNUNET_CRYPTO_random_init() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, $vararg_buffer15 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer5 = 0, $vararg_buffer8 = 0, $vararg_ptr11 = 0, $vararg_ptr18 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer22 = sp + 56|0;
$vararg_buffer19 = sp + 48|0;
$vararg_buffer15 = sp + 40|0;
$vararg_buffer12 = sp + 32|0;
$vararg_buffer8 = sp + 24|0;
$vararg_buffer5 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$0 = (_gcry_check_version(20782)|0);
$1 = ($0|0)!=(0|0);
if ($1) {
HEAP32[$vararg_buffer5>>2] = 0;
$11 = (_gcry_control(37,$vararg_buffer5)|0);
$rc = $11;
$12 = ($11|0)!=(0);
if ($12) {
$13 = HEAP32[3963]|0;
$14 = $rc;
$15 = (_gcry_strerror($14)|0);
HEAP32[$vararg_buffer8>>2] = 20935;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = $15;
(_fprintf($13,20896,$vararg_buffer8)|0);
}
HEAP32[$vararg_buffer12>>2] = 0;
$16 = (_gcry_control(44,$vararg_buffer12)|0);
$rc = $16;
$17 = ($16|0)!=(0);
if (!($17)) {
HEAP32[$vararg_buffer19>>2] = 0;
(_gcry_control(38,$vararg_buffer19)|0);
HEAP32[$vararg_buffer22>>2] = 0;
(_gcry_control(48,$vararg_buffer22)|0);
$21 = (_time((0|0))|0);
$22 = (_GNUNET_CRYPTO_random_u32(2,-1)|0);
$23 = $21 ^ $22;
_GNUNET_CRYPTO_seed_weak_random($23);
STACKTOP = sp;return;
}
$18 = HEAP32[3963]|0;
$19 = $rc;
$20 = (_gcry_strerror($19)|0);
HEAP32[$vararg_buffer15>>2] = 20950;
$vararg_ptr18 = ((($vararg_buffer15)) + 4|0);
HEAP32[$vararg_ptr18>>2] = $20;
(_fprintf($18,20896,$vararg_buffer15)|0);
HEAP32[$vararg_buffer19>>2] = 0;
(_gcry_control(38,$vararg_buffer19)|0);
HEAP32[$vararg_buffer22>>2] = 0;
(_gcry_control(48,$vararg_buffer22)|0);
$21 = (_time((0|0))|0);
$22 = (_GNUNET_CRYPTO_random_u32(2,-1)|0);
$23 = $21 ^ $22;
_GNUNET_CRYPTO_seed_weak_random($23);
STACKTOP = sp;return;
}
$2 = HEAP32[3963]|0;
HEAP32[$vararg_buffer>>2] = 20782;
(_fprintf($2,20788,$vararg_buffer)|0);
$log_line = 286;
$3 = HEAP32[236]|0;
$4 = ($3|0)==(-1);
if ($4) {
$5 = $log_line;
$6 = (_GNUNET_get_log_call_status(1,0,20854,20870,$5)|0);
HEAP32[236] = $6;
}
$7 = (_GNUNET_get_log_skip()|0);
$8 = ($7|0)>(0);
if ($8) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$9 = HEAP32[236]|0;
$10 = ($9|0)!=(0);
if (!($10)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer1>>2] = 20854;
$vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr4>>2] = 286;
_GNUNET_log_nocheck(1,61615,$vararg_buffer1);
_GNUNET_abort_();
// unreachable;
}
function _GNUNET_CRYPTO_random_u32($mode,$i) {
$mode = $mode|0;
$i = $i|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $ret = 0, $ul = 0;
var $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_ptr1 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ret = sp + 36|0;
$1 = $mode;
$2 = $i;
$3 = $2;
$4 = ($3>>>0)>(0);
if (!($4)) {
$log_line = 157;
$5 = HEAP32[237]|0;
$6 = ($5|0)==(-1);
if ($6) {
$7 = $log_line;
$8 = (_GNUNET_get_log_call_status(1,0,20854,20970,$7)|0);
HEAP32[237] = $8;
}
$9 = (_GNUNET_get_log_skip()|0);
$10 = ($9|0)>(0);
if ($10) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$11 = HEAP32[237]|0;
$12 = ($11|0)!=(0);
if (!($12)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 20854;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 157;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$13 = $1;
switch ($13|0) {
case 1: {
$14 = HEAP32[17660]|0;
$15 = (($14) + 1)|0;
HEAP32[17660] = $15;
$16 = (($14>>>0) % 256)&-1;
$17 = ($16|0)==(0);
if ($17) {
HEAP32[$vararg_buffer2>>2] = 0;
(_gcry_control(48,$vararg_buffer2)|0);
}
$18 = $2;
$19 = (4294967295 % ($18>>>0))&-1;
$20 = (-1 - ($19))|0;
$ul = $20;
while(1) {
_gcry_randomize($ret,4,1);
$21 = HEAP32[$ret>>2]|0;
$22 = $ul;
$23 = ($21>>>0)>=($22>>>0);
if (!($23)) {
break;
}
}
$24 = HEAP32[$ret>>2]|0;
$25 = $2;
$26 = (($24>>>0) % ($25>>>0))&-1;
$0 = $26;
$55 = $0;
STACKTOP = sp;return ($55|0);
break;
}
case 2: {
$27 = $2;
$28 = (4294967295 % ($27>>>0))&-1;
$29 = (-1 - ($28))|0;
$ul = $29;
while(1) {
_gcry_create_nonce($ret,4);
$30 = HEAP32[$ret>>2]|0;
$31 = $ul;
$32 = ($30>>>0)>=($31>>>0);
if (!($32)) {
break;
}
}
$33 = HEAP32[$ret>>2]|0;
$34 = $2;
$35 = (($33>>>0) % ($34>>>0))&-1;
$0 = $35;
$55 = $0;
STACKTOP = sp;return ($55|0);
break;
}
case 0: {
$36 = $2;
$37 = (+($36>>>0));
$38 = (+_get_weak_random());
$39 = $37 * $38;
$40 = (~~(($39))>>>0);
HEAP32[$ret>>2] = $40;
$41 = HEAP32[$ret>>2]|0;
$42 = $2;
$43 = ($41>>>0)>=($42>>>0);
if ($43) {
$44 = $2;
$45 = (($44) - 1)|0;
HEAP32[$ret>>2] = $45;
}
$46 = HEAP32[$ret>>2]|0;
$0 = $46;
$55 = $0;
STACKTOP = sp;return ($55|0);
break;
}
default: {
$log_line1 = 189;
$47 = HEAP32[238]|0;
$48 = ($47|0)==(-1);
if ($48) {
$49 = $log_line1;
$50 = (_GNUNET_get_log_call_status(1,0,20854,20970,$49)|0);
HEAP32[238] = $50;
}
$51 = (_GNUNET_get_log_skip()|0);
$52 = ($51|0)>(0);
if ($52) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$53 = HEAP32[238]|0;
$54 = ($53|0)!=(0);
if (!($54)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer5>>2] = 20854;
$vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
HEAP32[$vararg_ptr8>>2] = 189;
_GNUNET_log_nocheck(1,61615,$vararg_buffer5);
_GNUNET_abort_();
// unreachable;
}
}
return (0)|0;
}
function _get_weak_random() {
var $0 = 0, $1 = 0.0, $2 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_random()|0);
$1 = (+($0|0));
$2 = $1 / 2147483647.0;
return (+$2);
}
function _GNUNET_CRYPTO_seed_weak_random($seed) {
$seed = $seed|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $seed;
$1 = $0;
_srandom($1);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_random_fini() {
var label = 0, sp = 0;
sp = STACKTOP;
_gcry_set_progress_handler(0,0);
return;
}
function _GNUNET_CRYPTO_rsa_private_key_create($len) {
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $ret = 0, $s_key = 0, $s_keyparam = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer5 = 0, $vararg_ptr4 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$s_key = sp + 36|0;
$s_keyparam = sp + 32|0;
$0 = $len;
$1 = $0;
HEAP32[$vararg_buffer>>2] = $1;
$2 = (_gcry_sexp_build($s_keyparam,0,20995,$vararg_buffer)|0);
$3 = (0)==($2|0);
if (!($3)) {
$log_line = 154;
$4 = HEAP32[239]|0;
$5 = ($4|0)==(-1);
if ($5) {
$6 = $log_line;
$7 = (_GNUNET_get_log_call_status(1,0,21019,21032,$6)|0);
HEAP32[239] = $7;
}
$8 = (_GNUNET_get_log_skip()|0);
$9 = ($8|0)>(0);
if ($9) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$10 = HEAP32[239]|0;
$11 = ($10|0)!=(0);
if (!($11)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer1>>2] = 21019;
$vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr4>>2] = 154;
_GNUNET_log_nocheck(1,61615,$vararg_buffer1);
_GNUNET_abort_();
// unreachable;
}
$12 = HEAP32[$s_keyparam>>2]|0;
$13 = (_gcry_pk_genkey($s_key,$12)|0);
$14 = (0)==($13|0);
if ($14) {
$23 = HEAP32[$s_keyparam>>2]|0;
_gcry_sexp_release($23);
$24 = (_GNUNET_xmalloc_(4,21019,163)|0);
$ret = $24;
$25 = HEAP32[$s_key>>2]|0;
$26 = $ret;
HEAP32[$26>>2] = $25;
$27 = $ret;
STACKTOP = sp;return ($27|0);
}
$log_line1 = 157;
$15 = HEAP32[240]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line1;
$18 = (_GNUNET_get_log_call_status(1,0,21019,21032,$17)|0);
HEAP32[240] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$21 = HEAP32[240]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer5>>2] = 21019;
$vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
HEAP32[$vararg_ptr8>>2] = 157;
_GNUNET_log_nocheck(1,61615,$vararg_buffer5);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_private_key_free($key) {
$key = $key|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $key;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
_gcry_sexp_release($2);
$3 = $0;
_GNUNET_xfree_($3,21019,178);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_rsa_private_key_encode($key,$buffer) {
$key = $key|0;
$buffer = $buffer|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $log_line = 0, $n = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $key;
$1 = $buffer;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = (_gcry_sexp_sprint($3,0,0,0)|0);
$n = $4;
$5 = $n;
$6 = (_GNUNET_xmalloc_($5,21019,201)|0);
$b = $6;
$7 = $n;
$8 = (($7) - 1)|0;
$9 = $0;
$10 = HEAP32[$9>>2]|0;
$11 = $b;
$12 = $n;
$13 = (_gcry_sexp_sprint($10,0,$11,$12)|0);
$14 = ($8|0)==($13|0);
if ($14) {
$23 = $b;
$24 = $1;
HEAP32[$24>>2] = $23;
$25 = $n;
STACKTOP = sp;return ($25|0);
}
$log_line = 206;
$15 = HEAP32[241]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line;
$18 = (_GNUNET_get_log_call_status(1,0,21019,21069,$17)|0);
HEAP32[241] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$21 = HEAP32[241]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 206;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_private_key_decode($buf,$len) {
$buf = $buf|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $key = 0, $log_line = 0, $log_line1 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$1 = $buf;
$2 = $len;
$3 = (_GNUNET_xmalloc_(4,21019,225)|0);
$key = $3;
$4 = $key;
$5 = $1;
$6 = $2;
$7 = (_gcry_sexp_new($4,$5,$6,0)|0);
$8 = (0)!=($7|0);
if ($8) {
$log_line = 233;
$9 = HEAP32[242]|0;
$10 = ($9|0)==(-1);
if ($10) {
$11 = $log_line;
$12 = (_GNUNET_get_log_call_status(2,21106,21019,21111,$11)|0);
HEAP32[242] = $12;
}
$13 = (_GNUNET_get_log_skip()|0);
$14 = ($13|0)>(0);
if ($14) {
_GNUNET_log_skip(-1,0);
} else {
$15 = HEAP32[242]|0;
$16 = ($15|0)!=(0);
if ($16) {
_GNUNET_log_from_nocheck(2,21106,21148,$vararg_buffer);
}
}
$17 = $key;
_GNUNET_xfree_($17,21019,234);
$0 = 0;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
$18 = $key;
$19 = HEAP32[$18>>2]|0;
$20 = (_gcry_pk_testkey($19)|0);
$21 = (0)!=($20|0);
if (!($21)) {
$31 = $key;
$0 = $31;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
$log_line1 = 240;
$22 = HEAP32[243]|0;
$23 = ($22|0)==(-1);
if ($23) {
$24 = $log_line1;
$25 = (_GNUNET_get_log_call_status(2,21106,21019,21111,$24)|0);
HEAP32[243] = $25;
}
$26 = (_GNUNET_get_log_skip()|0);
$27 = ($26|0)>(0);
if ($27) {
_GNUNET_log_skip(-1,0);
} else {
$28 = HEAP32[243]|0;
$29 = ($28|0)!=(0);
if ($29) {
_GNUNET_log_from_nocheck(2,21106,21148,$vararg_buffer1);
}
}
$30 = $key;
_GNUNET_CRYPTO_rsa_private_key_free($30);
$0 = 0;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
function _GNUNET_CRYPTO_rsa_private_key_get_public($priv) {
$priv = $priv|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $log_line = 0, $ne = 0, $pub = 0;
var $rc = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ne = sp + 32|0;
$result = sp + 20|0;
$1 = $priv;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (_key_from_sexp_125($ne,$3,37970,39383)|0);
$rc = $4;
$5 = $rc;
$6 = (0)!=($5|0);
if ($6) {
$7 = $1;
$8 = HEAP32[$7>>2]|0;
$9 = (_key_from_sexp_125($ne,$8,37958,39383)|0);
$rc = $9;
}
$10 = $rc;
$11 = (0)!=($10|0);
if ($11) {
$12 = $1;
$13 = HEAP32[$12>>2]|0;
$14 = (_key_from_sexp_125($ne,$13,39342,39383)|0);
$rc = $14;
}
$15 = $rc;
$16 = (0)!=($15|0);
if (!($16)) {
$25 = HEAP32[$ne>>2]|0;
$26 = ((($ne)) + 4|0);
$27 = HEAP32[$26>>2]|0;
HEAP32[$vararg_buffer2>>2] = $25;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $27;
$28 = (_gcry_sexp_build($result,0,21271,$vararg_buffer2)|0);
$rc = $28;
$29 = HEAP32[$ne>>2]|0;
_gcry_mpi_release($29);
$30 = ((($ne)) + 4|0);
$31 = HEAP32[$30>>2]|0;
_gcry_mpi_release($31);
$32 = (_GNUNET_xmalloc_(4,21019,279)|0);
$pub = $32;
$33 = HEAP32[$result>>2]|0;
$34 = $pub;
HEAP32[$34>>2] = $33;
$35 = $pub;
$0 = $35;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
$log_line = 269;
$17 = HEAP32[244]|0;
$18 = ($17|0)==(-1);
if ($18) {
$19 = $log_line;
$20 = (_GNUNET_get_log_call_status(2,0,21019,21182,$19)|0);
HEAP32[244] = $20;
}
$21 = (_GNUNET_get_log_skip()|0);
$22 = ($21|0)>(0);
if ($22) {
_GNUNET_log_skip(-1,0);
} else {
$23 = HEAP32[244]|0;
$24 = ($23|0)!=(0);
if ($24) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 269;
_GNUNET_log_nocheck(34,21223,$vararg_buffer);
}
}
$0 = 0;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
function _key_from_sexp_125($array,$sexp,$topname,$elems) {
$array = $array|0;
$sexp = $sexp|0;
$topname = $topname|0;
$elems = $elems|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $idx = 0, $l2 = 0, $list = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $array;
$2 = $sexp;
$3 = $topname;
$4 = $elems;
$5 = $2;
$6 = $3;
$7 = (_gcry_sexp_find_token($5,$6,0)|0);
$list = $7;
$8 = ($7|0)!=(0|0);
if (!($8)) {
$0 = 1;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
$9 = $list;
$10 = (_gcry_sexp_cadr($9)|0);
$l2 = $10;
$11 = $list;
_gcry_sexp_release($11);
$12 = $l2;
$list = $12;
$13 = $list;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$0 = 2;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
$idx = 0;
$15 = $4;
$s = $15;
while(1) {
$16 = $s;
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)!=(0);
$19 = $list;
if (!($18)) {
label = 18;
break;
}
$20 = $s;
$21 = (_gcry_sexp_find_token($19,$20,1)|0);
$l2 = $21;
$22 = ($21|0)!=(0|0);
if (!($22)) {
label = 8;
break;
}
$36 = $l2;
$37 = (_gcry_sexp_nth_mpi($36,1,5)|0);
$38 = $idx;
$39 = $1;
$40 = (($39) + ($38<<2)|0);
HEAP32[$40>>2] = $37;
$41 = $l2;
_gcry_sexp_release($41);
$42 = $idx;
$43 = $1;
$44 = (($43) + ($42<<2)|0);
$45 = HEAP32[$44>>2]|0;
$46 = ($45|0)!=(0|0);
if (!($46)) {
label = 13;
break;
}
$60 = $s;
$61 = ((($60)) + 1|0);
$s = $61;
$62 = $idx;
$63 = (($62) + 1)|0;
$idx = $63;
}
if ((label|0) == 8) {
$i = 0;
while(1) {
$23 = $i;
$24 = $idx;
$25 = ($23>>>0)<($24>>>0);
if (!($25)) {
break;
}
$26 = $i;
$27 = $1;
$28 = (($27) + ($26<<2)|0);
$29 = HEAP32[$28>>2]|0;
_gcry_free($29);
$30 = $i;
$31 = $1;
$32 = (($31) + ($30<<2)|0);
HEAP32[$32>>2] = 0;
$33 = $i;
$34 = (($33) + 1)|0;
$i = $34;
}
$35 = $list;
_gcry_sexp_release($35);
$0 = 3;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
else if ((label|0) == 13) {
$i = 0;
while(1) {
$47 = $i;
$48 = $idx;
$49 = ($47>>>0)<($48>>>0);
if (!($49)) {
break;
}
$50 = $i;
$51 = $1;
$52 = (($51) + ($50<<2)|0);
$53 = HEAP32[$52>>2]|0;
_gcry_free($53);
$54 = $i;
$55 = $1;
$56 = (($55) + ($54<<2)|0);
HEAP32[$56>>2] = 0;
$57 = $i;
$58 = (($57) + 1)|0;
$i = $58;
}
$59 = $list;
_gcry_sexp_release($59);
$0 = 4;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
else if ((label|0) == 18) {
_gcry_sexp_release($19);
$0 = 0;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_public_key_free($key) {
$key = $key|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $key;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
_gcry_sexp_release($2);
$3 = $0;
_GNUNET_xfree_($3,21019,294);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_rsa_public_key_encode($key,$buffer) {
$key = $key|0;
$buffer = $buffer|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $log_line = 0, $n = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $key;
$1 = $buffer;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = (_gcry_sexp_sprint($3,3,0,0)|0);
$n = $4;
$5 = $n;
$6 = (_GNUNET_xmalloc_($5,21019,317)|0);
$b = $6;
$7 = $n;
$8 = (($7) - 1)|0;
$9 = $0;
$10 = HEAP32[$9>>2]|0;
$11 = $b;
$12 = $n;
$13 = (_gcry_sexp_sprint($10,3,$11,$12)|0);
$14 = ($8|0)==($13|0);
if ($14) {
$23 = $b;
$24 = $1;
HEAP32[$24>>2] = $23;
$25 = $n;
STACKTOP = sp;return ($25|0);
}
$log_line = 322;
$15 = HEAP32[245]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line;
$18 = (_GNUNET_get_log_call_status(1,0,21019,21301,$17)|0);
HEAP32[245] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$21 = HEAP32[245]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 322;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_public_key_hash($key,$hc) {
$key = $key|0;
$hc = $hc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $buf = 0, $buf_size = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$buf = sp + 4|0;
$0 = $key;
$1 = $hc;
$2 = $0;
$3 = (_GNUNET_CRYPTO_rsa_public_key_encode($2,$buf)|0);
$buf_size = $3;
$4 = HEAP32[$buf>>2]|0;
$5 = $buf_size;
$6 = $1;
_GNUNET_CRYPTO_hash($4,$5,$6);
$7 = HEAP32[$buf>>2]|0;
_GNUNET_xfree_($7,21019,346);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_rsa_public_key_decode($buf,$len) {
$buf = $buf|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $key = 0, $log_line = 0, $log_line1 = 0, $n = 0, $ret = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$n = sp + 28|0;
$1 = $buf;
$2 = $len;
$3 = (_GNUNET_xmalloc_(4,21019,366)|0);
$key = $3;
$4 = $key;
$5 = $1;
$6 = $2;
$7 = (_gcry_sexp_new($4,$5,$6,0)|0);
$8 = (0)!=($7|0);
if ($8) {
$log_line = 373;
$9 = HEAP32[246]|0;
$10 = ($9|0)==(-1);
if ($10) {
$11 = $log_line;
$12 = (_GNUNET_get_log_call_status(2,0,21019,21337,$11)|0);
HEAP32[246] = $12;
}
$13 = (_GNUNET_get_log_skip()|0);
$14 = ($13|0)>(0);
if ($14) {
_GNUNET_log_skip(-1,0);
} else {
$15 = HEAP32[246]|0;
$16 = ($15|0)!=(0);
if ($16) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 373;
_GNUNET_log_nocheck(34,21223,$vararg_buffer);
}
}
$17 = $key;
_GNUNET_xfree_($17,21019,374);
$0 = 0;
$41 = $0;
STACKTOP = sp;return ($41|0);
}
$18 = $key;
$19 = HEAP32[$18>>2]|0;
$20 = (_key_from_sexp_125($n,$19,37970,39397)|0);
$ret = $20;
$21 = $ret;
$22 = (0)!=($21|0);
if ($22) {
$23 = $key;
$24 = HEAP32[$23>>2]|0;
$25 = (_key_from_sexp_125($n,$24,39342,39397)|0);
$ret = $25;
}
$26 = $ret;
$27 = (0)!=($26|0);
if (!($27)) {
$39 = HEAP32[$n>>2]|0;
_gcry_mpi_release($39);
$40 = $key;
$0 = $40;
$41 = $0;
STACKTOP = sp;return ($41|0);
}
$log_line1 = 384;
$28 = HEAP32[247]|0;
$29 = ($28|0)==(-1);
if ($29) {
$30 = $log_line1;
$31 = (_GNUNET_get_log_call_status(1,0,21019,21337,$30)|0);
HEAP32[247] = $31;
}
$32 = (_GNUNET_get_log_skip()|0);
$33 = ($32|0)>(0);
if ($33) {
_GNUNET_log_skip(-1,0);
} else {
$34 = HEAP32[247]|0;
$35 = ($34|0)!=(0);
if ($35) {
HEAP32[$vararg_buffer2>>2] = 21019;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 384;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
}
}
$36 = $key;
$37 = HEAP32[$36>>2]|0;
_gcry_sexp_release($37);
$38 = $key;
_GNUNET_xfree_($38,21019,386);
$0 = 0;
$41 = $0;
STACKTOP = sp;return ($41|0);
}
function _GNUNET_CRYPTO_rsa_blinding_key_create($len) {
$len = $len|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $blind = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $len;
$1 = (_GNUNET_xmalloc_(4,21019,405)|0);
$blind = $1;
$2 = $0;
$3 = (_gcry_mpi_new($2)|0);
$4 = $blind;
HEAP32[$4>>2] = $3;
$5 = $blind;
$6 = HEAP32[$5>>2]|0;
$7 = $0;
_gcry_mpi_randomize($6,$7,1);
$8 = $blind;
STACKTOP = sp;return ($8|0);
}
function _GNUNET_CRYPTO_rsa_signature_encode($sig,$buffer) {
$sig = $sig|0;
$buffer = $buffer|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $log_line = 0, $n = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $sig;
$1 = $buffer;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = (_gcry_sexp_sprint($3,3,0,0)|0);
$n = $4;
$5 = $n;
$6 = (_GNUNET_xmalloc_($5,21019,825)|0);
$b = $6;
$7 = $n;
$8 = (($7) - 1)|0;
$9 = $0;
$10 = HEAP32[$9>>2]|0;
$11 = $b;
$12 = $n;
$13 = (_gcry_sexp_sprint($10,3,$11,$12)|0);
$14 = ($8|0)==($13|0);
if ($14) {
$23 = $b;
$24 = $1;
HEAP32[$24>>2] = $23;
$25 = $n;
STACKTOP = sp;return ($25|0);
}
$log_line = 830;
$15 = HEAP32[248]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line;
$18 = (_GNUNET_get_log_call_status(1,0,21019,21373,$17)|0);
HEAP32[248] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$21 = HEAP32[248]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 830;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_blinding_key_free($bkey) {
$bkey = $bkey|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $bkey;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
_gcry_mpi_release($2);
$3 = $0;
_GNUNET_xfree_($3,21019,564);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_rsa_blinding_key_encode($bkey,$buffer) {
$bkey = $bkey|0;
$buffer = $buffer|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $b = 0, $log_line = 0, $n = 0, $rsize = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$n = sp + 20|0;
$rsize = sp + 12|0;
$0 = $bkey;
$1 = $buffer;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
(_gcry_mpi_print(5,0,0,$n,$3)|0);
$4 = HEAP32[$n>>2]|0;
$5 = (_GNUNET_xmalloc_($4,21019,589)|0);
$b = $5;
$6 = $b;
$7 = HEAP32[$n>>2]|0;
$8 = $0;
$9 = HEAP32[$8>>2]|0;
$10 = (_gcry_mpi_print(5,$6,$7,$rsize,$9)|0);
$11 = (0)==($10|0);
if ($11) {
$20 = $b;
$21 = $1;
HEAP32[$21>>2] = $20;
$22 = HEAP32[$n>>2]|0;
STACKTOP = sp;return ($22|0);
}
$log_line = 595;
$12 = HEAP32[249]|0;
$13 = ($12|0)==(-1);
if ($13) {
$14 = $log_line;
$15 = (_GNUNET_get_log_call_status(1,0,21019,21408,$14)|0);
HEAP32[249] = $15;
}
$16 = (_GNUNET_get_log_skip()|0);
$17 = ($16|0)>(0);
if ($17) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$18 = HEAP32[249]|0;
$19 = ($18|0)!=(0);
if (!($19)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 595;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_blinding_key_decode($buf,$len) {
$buf = $buf|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $bkey = 0, $log_line = 0, $rsize = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$rsize = sp + 12|0;
$1 = $buf;
$2 = $len;
$3 = (_GNUNET_xmalloc_(4,21019,616)|0);
$bkey = $3;
$4 = $bkey;
$5 = $1;
$6 = $2;
$7 = (_gcry_mpi_scan($4,5,$5,$6,$rsize)|0);
$8 = (0)!=($7|0);
if (!($8)) {
$18 = $bkey;
$0 = $18;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
$log_line = 624;
$9 = HEAP32[250]|0;
$10 = ($9|0)==(-1);
if ($10) {
$11 = $log_line;
$12 = (_GNUNET_get_log_call_status(2,0,21019,21446,$11)|0);
HEAP32[250] = $12;
}
$13 = (_GNUNET_get_log_skip()|0);
$14 = ($13|0)>(0);
if ($14) {
_GNUNET_log_skip(-1,0);
} else {
$15 = HEAP32[250]|0;
$16 = ($15|0)!=(0);
if ($16) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 624;
_GNUNET_log_nocheck(34,21223,$vararg_buffer);
}
}
$17 = $bkey;
_GNUNET_xfree_($17,21019,625);
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _GNUNET_CRYPTO_rsa_blind($hash,$bkey,$pkey,$buffer) {
$hash = $hash|0;
$bkey = $bkey|0;
$pkey = $pkey|0;
$buffer = $buffer|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $data = 0, $data_r_e = 0, $log_line = 0, $log_line1 = 0, $n = 0, $ne = 0, $r_e = 0, $rc = 0, $ret = 0, $rsize = 0, $vararg_buffer = 0;
var $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$data = sp + 64|0;
$ne = sp + 56|0;
$rsize = sp + 40|0;
$n = sp + 36|0;
$1 = $hash;
$2 = $bkey;
$3 = $pkey;
$4 = $buffer;
$5 = $3;
$6 = HEAP32[$5>>2]|0;
$7 = (_key_from_sexp_125($ne,$6,37970,39383)|0);
$ret = $7;
$8 = $ret;
$9 = (0)!=($8|0);
if ($9) {
$10 = $3;
$11 = HEAP32[$10>>2]|0;
$12 = (_key_from_sexp_125($ne,$11,39342,39383)|0);
$ret = $12;
}
$13 = $ret;
$14 = (0)!=($13|0);
if ($14) {
$log_line = 662;
$15 = HEAP32[251]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line;
$18 = (_GNUNET_get_log_call_status(1,0,21019,21484,$17)|0);
HEAP32[251] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
} else {
$21 = HEAP32[251]|0;
$22 = ($21|0)!=(0);
if ($22) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 662;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
}
}
$23 = $4;
HEAP32[$23>>2] = 0;
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$24 = $1;
$25 = (_gcry_mpi_scan($data,5,$24,64,$rsize)|0);
$rc = $25;
$26 = (0)!=($25|0);
if (!($26)) {
$39 = (_gcry_mpi_new(0)|0);
$r_e = $39;
$40 = $r_e;
$41 = $2;
$42 = HEAP32[$41>>2]|0;
$43 = ((($ne)) + 4|0);
$44 = HEAP32[$43>>2]|0;
$45 = HEAP32[$ne>>2]|0;
_gcry_mpi_powm($40,$42,$44,$45);
$46 = (_gcry_mpi_new(0)|0);
$data_r_e = $46;
$47 = $data_r_e;
$48 = HEAP32[$data>>2]|0;
$49 = $r_e;
$50 = HEAP32[$ne>>2]|0;
_gcry_mpi_mulm($47,$48,$49,$50);
$51 = HEAP32[$data>>2]|0;
_gcry_mpi_release($51);
$52 = HEAP32[$ne>>2]|0;
_gcry_mpi_release($52);
$53 = ((($ne)) + 4|0);
$54 = HEAP32[$53>>2]|0;
_gcry_mpi_release($54);
$55 = $r_e;
_gcry_mpi_release($55);
$56 = $data_r_e;
(_gcry_mpi_print(5,0,0,$n,$56)|0);
$57 = HEAP32[$n>>2]|0;
$58 = (_GNUNET_xmalloc_($57,21019,698)|0);
$b = $58;
$59 = $b;
$60 = HEAP32[$n>>2]|0;
$61 = $data_r_e;
$62 = (_gcry_mpi_print(5,$59,$60,$rsize,$61)|0);
$rc = $62;
$63 = $data_r_e;
_gcry_mpi_release($63);
$64 = $b;
$65 = $4;
HEAP32[$65>>2] = $64;
$66 = HEAP32[$n>>2]|0;
$0 = $66;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$log_line1 = 672;
$27 = HEAP32[252]|0;
$28 = ($27|0)==(-1);
if ($28) {
$29 = $log_line1;
$30 = (_GNUNET_get_log_call_status(1,0,21019,21484,$29)|0);
HEAP32[252] = $30;
}
$31 = (_GNUNET_get_log_skip()|0);
$32 = ($31|0)>(0);
if ($32) {
_GNUNET_log_skip(-1,0);
} else {
$33 = HEAP32[252]|0;
$34 = ($33|0)!=(0);
if ($34) {
HEAP32[$vararg_buffer2>>2] = 21019;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 672;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
}
}
$35 = HEAP32[$ne>>2]|0;
_gcry_mpi_release($35);
$36 = ((($ne)) + 4|0);
$37 = HEAP32[$36>>2]|0;
_gcry_mpi_release($37);
$38 = $4;
HEAP32[$38>>2] = 0;
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
function _GNUNET_CRYPTO_rsa_sign($key,$msg,$msg_len) {
$key = $key|0;
$msg = $msg|0;
$msg_len = $msg_len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $log_line = 0, $log_line1 = 0, $public_key = 0, $result = 0, $sig = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$result = sp + 28|0;
$1 = $key;
$2 = $msg;
$3 = $msg_len;
$4 = $2;
$5 = $3;
$6 = (_data_to_sexp($4,$5)|0);
$data = $6;
$7 = $data;
$8 = $1;
$9 = HEAP32[$8>>2]|0;
$10 = (_gcry_pk_sign($result,$7,$9)|0);
$11 = (0)!=($10|0);
if ($11) {
$log_line = 767;
$12 = HEAP32[255]|0;
$13 = ($12|0)==(-1);
if ($13) {
$14 = $log_line;
$15 = (_GNUNET_get_log_call_status(1,0,21019,21551,$14)|0);
HEAP32[255] = $15;
}
$16 = (_GNUNET_get_log_skip()|0);
$17 = ($16|0)>(0);
if ($17) {
_GNUNET_log_skip(-1,0);
} else {
$18 = HEAP32[255]|0;
$19 = ($18|0)!=(0);
if ($19) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 767;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
}
}
$0 = 0;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
$20 = $1;
$21 = (_GNUNET_CRYPTO_rsa_private_key_get_public($20)|0);
$public_key = $21;
$22 = HEAP32[$result>>2]|0;
$23 = $data;
$24 = $public_key;
$25 = HEAP32[$24>>2]|0;
$26 = (_gcry_pk_verify($22,$23,$25)|0);
$27 = (0)!=($26|0);
if (!($27)) {
$39 = $public_key;
_GNUNET_CRYPTO_rsa_public_key_free($39);
$40 = $data;
_gcry_sexp_release($40);
$41 = (_GNUNET_xmalloc_(4,21019,788)|0);
$sig = $41;
$42 = HEAP32[$result>>2]|0;
$43 = $sig;
HEAP32[$43>>2] = $42;
$44 = $sig;
$0 = $44;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
$log_line1 = 778;
$28 = HEAP32[256]|0;
$29 = ($28|0)==(-1);
if ($29) {
$30 = $log_line1;
$31 = (_GNUNET_get_log_call_status(1,0,21019,21551,$30)|0);
HEAP32[256] = $31;
}
$32 = (_GNUNET_get_log_skip()|0);
$33 = ($32|0)>(0);
if ($33) {
_GNUNET_log_skip(-1,0);
} else {
$34 = HEAP32[256]|0;
$35 = ($34|0)!=(0);
if ($35) {
HEAP32[$vararg_buffer2>>2] = 21019;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 778;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
}
}
$36 = $public_key;
_GNUNET_CRYPTO_rsa_public_key_free($36);
$37 = $data;
_gcry_sexp_release($37);
$38 = HEAP32[$result>>2]|0;
_gcry_sexp_release($38);
$0 = 0;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
function _data_to_sexp($ptr,$size) {
$ptr = $ptr|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $log_line = 0, $log_line1 = 0, $value = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_ptr1 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$value = sp + 36|0;
$data = sp + 32|0;
$0 = $ptr;
$1 = $size;
HEAP32[$value>>2] = 0;
HEAP32[$data>>2] = 0;
$2 = $0;
$3 = $1;
$4 = (_gcry_mpi_scan($value,5,$2,$3,0)|0);
$5 = (0)==($4|0);
if (!($5)) {
$log_line = 731;
$6 = HEAP32[253]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $log_line;
$9 = (_GNUNET_get_log_call_status(1,0,21019,21508,$8)|0);
HEAP32[253] = $9;
}
$10 = (_GNUNET_get_log_skip()|0);
$11 = ($10|0)>(0);
if ($11) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$12 = HEAP32[253]|0;
$13 = ($12|0)!=(0);
if (!($13)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 731;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$14 = HEAP32[$value>>2]|0;
HEAP32[$vararg_buffer2>>2] = $14;
$15 = (_gcry_sexp_build($data,0,21521,$vararg_buffer2)|0);
$16 = (0)==($15|0);
if ($16) {
$25 = HEAP32[$value>>2]|0;
_gcry_mpi_release($25);
$26 = HEAP32[$data>>2]|0;
STACKTOP = sp;return ($26|0);
}
$log_line1 = 736;
$17 = HEAP32[254]|0;
$18 = ($17|0)==(-1);
if ($18) {
$19 = $log_line1;
$20 = (_GNUNET_get_log_call_status(1,0,21019,21508,$19)|0);
HEAP32[254] = $20;
}
$21 = (_GNUNET_get_log_skip()|0);
$22 = ($21|0)>(0);
if ($22) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$23 = HEAP32[254]|0;
$24 = ($23|0)!=(0);
if (!($24)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer5>>2] = 21019;
$vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
HEAP32[$vararg_ptr8>>2] = 736;
_GNUNET_log_nocheck(1,61615,$vararg_buffer5);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_signature_free($sig) {
$sig = $sig|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $sig;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
_gcry_sexp_release($2);
$3 = $0;
_GNUNET_xfree_($3,21019,803);
STACKTOP = sp;return;
}
function _GNUNET_CRYPTO_rsa_signature_decode($buf,$len) {
$buf = $buf|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $ret = 0, $s = 0, $sig = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$s = sp + 24|0;
$1 = $buf;
$2 = $len;
$3 = (_GNUNET_xmalloc_(4,21019,852)|0);
$sig = $3;
$4 = $sig;
$5 = $1;
$6 = $2;
$7 = (_gcry_sexp_new($4,$5,$6,0)|0);
$8 = (0)!=($7|0);
if ($8) {
$log_line = 859;
$9 = HEAP32[257]|0;
$10 = ($9|0)==(-1);
if ($10) {
$11 = $log_line;
$12 = (_GNUNET_get_log_call_status(2,0,21019,21574,$11)|0);
HEAP32[257] = $12;
}
$13 = (_GNUNET_get_log_skip()|0);
$14 = ($13|0)>(0);
if ($14) {
_GNUNET_log_skip(-1,0);
} else {
$15 = HEAP32[257]|0;
$16 = ($15|0)!=(0);
if ($16) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 859;
_GNUNET_log_nocheck(34,21223,$vararg_buffer);
}
}
$17 = $sig;
_GNUNET_xfree_($17,21019,860);
$0 = 0;
$41 = $0;
STACKTOP = sp;return ($41|0);
}
$18 = $sig;
$19 = HEAP32[$18>>2]|0;
$20 = (_key_from_sexp_125($s,$19,37820,39395)|0);
$ret = $20;
$21 = $ret;
$22 = (0)!=($21|0);
if ($22) {
$23 = $sig;
$24 = HEAP32[$23>>2]|0;
$25 = (_key_from_sexp_125($s,$24,39342,39395)|0);
$ret = $25;
}
$26 = $ret;
$27 = (0)!=($26|0);
if (!($27)) {
$39 = HEAP32[$s>>2]|0;
_gcry_mpi_release($39);
$40 = $sig;
$0 = $40;
$41 = $0;
STACKTOP = sp;return ($41|0);
}
$log_line1 = 870;
$28 = HEAP32[258]|0;
$29 = ($28|0)==(-1);
if ($29) {
$30 = $log_line1;
$31 = (_GNUNET_get_log_call_status(2,0,21019,21574,$30)|0);
HEAP32[258] = $31;
}
$32 = (_GNUNET_get_log_skip()|0);
$33 = ($32|0)>(0);
if ($33) {
_GNUNET_log_skip(-1,0);
} else {
$34 = HEAP32[258]|0;
$35 = ($34|0)!=(0);
if ($35) {
HEAP32[$vararg_buffer2>>2] = 21019;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 870;
_GNUNET_log_nocheck(34,21223,$vararg_buffer2);
}
}
$36 = $sig;
$37 = HEAP32[$36>>2]|0;
_gcry_sexp_release($37);
$38 = $sig;
_GNUNET_xfree_($38,21019,872);
$0 = 0;
$41 = $0;
STACKTOP = sp;return ($41|0);
}
function _GNUNET_CRYPTO_rsa_unblind($sig,$bkey,$pkey) {
$sig = $sig|0;
$bkey = $bkey|0;
$pkey = $pkey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $9 = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $log_line3 = 0, $n = 0, $r_inv = 0, $ret = 0, $s = 0, $sret = 0, $ubsig = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr16 = 0;
var $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer13 = sp + 32|0;
$vararg_buffer10 = sp + 24|0;
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$n = sp + 76|0;
$s = sp + 72|0;
$1 = $sig;
$2 = $bkey;
$3 = $pkey;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (_key_from_sexp_125($n,$5,37970,39397)|0);
$ret = $6;
$7 = $ret;
$8 = (0)!=($7|0);
if ($8) {
$9 = $3;
$10 = HEAP32[$9>>2]|0;
$11 = (_key_from_sexp_125($n,$10,39342,39397)|0);
$ret = $11;
}
$12 = $ret;
$13 = (0)!=($12|0);
if ($13) {
$log_line = 932;
$14 = HEAP32[259]|0;
$15 = ($14|0)==(-1);
if ($15) {
$16 = $log_line;
$17 = (_GNUNET_get_log_call_status(2,0,21019,21609,$16)|0);
HEAP32[259] = $17;
}
$18 = (_GNUNET_get_log_skip()|0);
$19 = ($18|0)>(0);
if ($19) {
_GNUNET_log_skip(-1,0);
} else {
$20 = HEAP32[259]|0;
$21 = ($20|0)!=(0);
if ($21) {
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 932;
_GNUNET_log_nocheck(34,21223,$vararg_buffer);
}
}
$0 = 0;
$82 = $0;
STACKTOP = sp;return ($82|0);
}
$22 = $1;
$23 = HEAP32[$22>>2]|0;
$24 = (_key_from_sexp_125($s,$23,37820,39395)|0);
$ret = $24;
$25 = $ret;
$26 = (0)!=($25|0);
if ($26) {
$27 = $1;
$28 = HEAP32[$27>>2]|0;
$29 = (_key_from_sexp_125($s,$28,39342,39395)|0);
$ret = $29;
}
$30 = $ret;
$31 = (0)!=($30|0);
if ($31) {
$32 = HEAP32[$n>>2]|0;
_gcry_mpi_release($32);
$log_line1 = 941;
$33 = HEAP32[260]|0;
$34 = ($33|0)==(-1);
if ($34) {
$35 = $log_line1;
$36 = (_GNUNET_get_log_call_status(2,0,21019,21609,$35)|0);
HEAP32[260] = $36;
}
$37 = (_GNUNET_get_log_skip()|0);
$38 = ($37|0)>(0);
if ($38) {
_GNUNET_log_skip(-1,0);
} else {
$39 = HEAP32[260]|0;
$40 = ($39|0)!=(0);
if ($40) {
HEAP32[$vararg_buffer2>>2] = 21019;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 941;
_GNUNET_log_nocheck(34,21223,$vararg_buffer2);
}
}
$0 = 0;
$82 = $0;
STACKTOP = sp;return ($82|0);
}
$41 = (_gcry_mpi_new(0)|0);
$r_inv = $41;
$42 = $r_inv;
$43 = $2;
$44 = HEAP32[$43>>2]|0;
$45 = HEAP32[$n>>2]|0;
$46 = (_gcry_mpi_invm($42,$44,$45)|0);
$47 = (1)!=($46|0);
if ($47) {
$log_line2 = 950;
$48 = HEAP32[261]|0;
$49 = ($48|0)==(-1);
if ($49) {
$50 = $log_line2;
$51 = (_GNUNET_get_log_call_status(2,0,21019,21609,$50)|0);
HEAP32[261] = $51;
}
$52 = (_GNUNET_get_log_skip()|0);
$53 = ($52|0)>(0);
if ($53) {
_GNUNET_log_skip(-1,0);
} else {
$54 = HEAP32[261]|0;
$55 = ($54|0)!=(0);
if ($55) {
HEAP32[$vararg_buffer6>>2] = 21019;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 950;
_GNUNET_log_nocheck(34,21223,$vararg_buffer6);
}
}
$56 = HEAP32[$n>>2]|0;
_gcry_mpi_release($56);
$57 = $r_inv;
_gcry_mpi_release($57);
$58 = HEAP32[$s>>2]|0;
_gcry_mpi_release($58);
$0 = 0;
$82 = $0;
STACKTOP = sp;return ($82|0);
}
$59 = (_gcry_mpi_new(0)|0);
$ubsig = $59;
$60 = $ubsig;
$61 = HEAP32[$s>>2]|0;
$62 = $r_inv;
$63 = HEAP32[$n>>2]|0;
_gcry_mpi_mulm($60,$61,$62,$63);
$64 = HEAP32[$n>>2]|0;
_gcry_mpi_release($64);
$65 = $r_inv;
_gcry_mpi_release($65);
$66 = HEAP32[$s>>2]|0;
_gcry_mpi_release($66);
$67 = (_GNUNET_xmalloc_(4,21019,962)|0);
$sret = $67;
$68 = $sret;
$69 = $ubsig;
HEAP32[$vararg_buffer10>>2] = $69;
$70 = (_gcry_sexp_build($68,0,21635,$vararg_buffer10)|0);
$71 = (0)==($70|0);
if ($71) {
$80 = $ubsig;
_gcry_mpi_release($80);
$81 = $sret;
$0 = $81;
$82 = $0;
STACKTOP = sp;return ($82|0);
}
$log_line3 = 967;
$72 = HEAP32[262]|0;
$73 = ($72|0)==(-1);
if ($73) {
$74 = $log_line3;
$75 = (_GNUNET_get_log_call_status(1,0,21019,21609,$74)|0);
HEAP32[262] = $75;
}
$76 = (_GNUNET_get_log_skip()|0);
$77 = ($76|0)>(0);
if ($77) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$78 = HEAP32[262]|0;
$79 = ($78|0)!=(0);
if (!($79)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer13>>2] = 21019;
$vararg_ptr16 = ((($vararg_buffer13)) + 4|0);
HEAP32[$vararg_ptr16>>2] = 967;
_GNUNET_log_nocheck(1,61615,$vararg_buffer13);
_GNUNET_abort_();
// unreachable;
return (0)|0;
}
function _GNUNET_CRYPTO_rsa_verify($hash,$sig,$public_key) {
$hash = $hash|0;
$sig = $sig|0;
$public_key = $public_key|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $log_line = 0, $rc = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $hash;
$2 = $sig;
$3 = $public_key;
$4 = $1;
$5 = (_data_to_sexp($4,64)|0);
$data = $5;
$6 = $2;
$7 = HEAP32[$6>>2]|0;
$8 = $data;
$9 = $3;
$10 = HEAP32[$9>>2]|0;
$11 = (_gcry_pk_verify($7,$8,$10)|0);
$rc = $11;
$12 = $data;
_gcry_sexp_release($12);
$13 = $rc;
$14 = (0)!=($13|0);
if (!($14)) {
$0 = 1;
$25 = $0;
STACKTOP = sp;return ($25|0);
}
$log_line = 1002;
$15 = HEAP32[263]|0;
$16 = ($15|0)==(-1);
if ($16) {
$17 = $log_line;
$18 = (_GNUNET_get_log_call_status(2,21106,21019,21658,$17)|0);
HEAP32[263] = $18;
}
$19 = (_GNUNET_get_log_skip()|0);
$20 = ($19|0)>(0);
if ($20) {
_GNUNET_log_skip(-1,0);
} else {
$21 = HEAP32[263]|0;
$22 = ($21|0)!=(0);
if ($22) {
$23 = $rc;
$24 = (_gcry_strerror($23)|0);
HEAP32[$vararg_buffer>>2] = 21019;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 1001;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $24;
_GNUNET_log_from_nocheck(2,21106,21683,$vararg_buffer);
}
}
$0 = -1;
$25 = $0;
STACKTOP = sp;return ($25|0);
}
function _GNUNET_STRINGS_relative_time_to_string($delta,$do_round) {
$delta = $delta|0;
$do_round = $do_round|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0;
var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0;
var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dval = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $unit = 0, $vararg_buffer = 0, $vararg_ptr10 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp + 16|0;
$dval = sp + 8|0;
$2 = sp;
$1 = $do_round;
$unit = 21804;
$3 = $delta;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $dval;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = (_GNUNET_TIME_relative_get_forever_()|0);
$14 = tempRet0;
$15 = $2;
$16 = $15;
HEAP32[$16>>2] = $13;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = $2;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = $delta;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = ($21|0)==($27|0);
$32 = ($24|0)==($30|0);
$33 = $31 & $32;
if ($33) {
$0 = 21749;
$243 = $0;
STACKTOP = sp;return ($243|0);
}
$34 = $delta;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (0)==($36|0);
$41 = (0)==($39|0);
$42 = $40 & $41;
if ($42) {
$0 = 21808;
$243 = $0;
STACKTOP = sp;return ($243|0);
}
$43 = $1;
$44 = (1)==($43|0);
$45 = $dval;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$48 = (($45) + 4)|0;
$49 = $48;
$50 = HEAP32[$49>>2]|0;
$51 = ($50>>>0)>(0);
$52 = ($47>>>0)>(5000);
$53 = ($50|0)==(0);
$54 = $53 & $52;
$55 = $51 | $54;
$or$cond = $44 & $55;
if ($or$cond) {
label = 7;
} else {
$56 = $dval;
$57 = $56;
$58 = HEAP32[$57>>2]|0;
$59 = (($56) + 4)|0;
$60 = $59;
$61 = HEAP32[$60>>2]|0;
$62 = (___uremdi3(($58|0),($61|0),1000,0)|0);
$63 = tempRet0;
$64 = (0)==($62|0);
$65 = (0)==($63|0);
$66 = $64 & $65;
if ($66) {
label = 7;
}
}
do {
if ((label|0) == 7) {
$67 = $dval;
$68 = $67;
$69 = HEAP32[$68>>2]|0;
$70 = (($67) + 4)|0;
$71 = $70;
$72 = HEAP32[$71>>2]|0;
$73 = (___udivdi3(($69|0),($72|0),1000,0)|0);
$74 = tempRet0;
$75 = $dval;
$76 = $75;
HEAP32[$76>>2] = $73;
$77 = (($75) + 4)|0;
$78 = $77;
HEAP32[$78>>2] = $74;
$unit = 21757;
$79 = $1;
$80 = (1)==($79|0);
$81 = $dval;
$82 = $81;
$83 = HEAP32[$82>>2]|0;
$84 = (($81) + 4)|0;
$85 = $84;
$86 = HEAP32[$85>>2]|0;
$87 = ($86>>>0)>(0);
$88 = ($83>>>0)>(5000);
$89 = ($86|0)==(0);
$90 = $89 & $88;
$91 = $87 | $90;
$or$cond3 = $80 & $91;
if (!($or$cond3)) {
$92 = $dval;
$93 = $92;
$94 = HEAP32[$93>>2]|0;
$95 = (($92) + 4)|0;
$96 = $95;
$97 = HEAP32[$96>>2]|0;
$98 = (___uremdi3(($94|0),($97|0),1000,0)|0);
$99 = tempRet0;
$100 = (0)==($98|0);
$101 = (0)==($99|0);
$102 = $100 & $101;
if (!($102)) {
break;
}
}
$103 = $dval;
$104 = $103;
$105 = HEAP32[$104>>2]|0;
$106 = (($103) + 4)|0;
$107 = $106;
$108 = HEAP32[$107>>2]|0;
$109 = (___udivdi3(($105|0),($108|0),1000,0)|0);
$110 = tempRet0;
$111 = $dval;
$112 = $111;
HEAP32[$112>>2] = $109;
$113 = (($111) + 4)|0;
$114 = $113;
HEAP32[$114>>2] = $110;
$unit = 39395;
$115 = $1;
$116 = (1)==($115|0);
$117 = $dval;
$118 = $117;
$119 = HEAP32[$118>>2]|0;
$120 = (($117) + 4)|0;
$121 = $120;
$122 = HEAP32[$121>>2]|0;
$123 = ($122>>>0)>(0);
$124 = ($119>>>0)>(300);
$125 = ($122|0)==(0);
$126 = $125 & $124;
$127 = $123 | $126;
$or$cond5 = $116 & $127;
if (!($or$cond5)) {
$128 = $dval;
$129 = $128;
$130 = HEAP32[$129>>2]|0;
$131 = (($128) + 4)|0;
$132 = $131;
$133 = HEAP32[$132>>2]|0;
$134 = (___uremdi3(($130|0),($133|0),60,0)|0);
$135 = tempRet0;
$136 = (0)==($134|0);
$137 = (0)==($135|0);
$138 = $136 & $137;
if (!($138)) {
break;
}
}
$139 = $dval;
$140 = $139;
$141 = HEAP32[$140>>2]|0;
$142 = (($139) + 4)|0;
$143 = $142;
$144 = HEAP32[$143>>2]|0;
$145 = (___udivdi3(($141|0),($144|0),60,0)|0);
$146 = tempRet0;
$147 = $dval;
$148 = $147;
HEAP32[$148>>2] = $145;
$149 = (($147) + 4)|0;
$150 = $149;
HEAP32[$150>>2] = $146;
$unit = 21760;
$151 = $1;
$152 = (1)==($151|0);
$153 = $dval;
$154 = $153;
$155 = HEAP32[$154>>2]|0;
$156 = (($153) + 4)|0;
$157 = $156;
$158 = HEAP32[$157>>2]|0;
$159 = ($158>>>0)>(0);
$160 = ($155>>>0)>(300);
$161 = ($158|0)==(0);
$162 = $161 & $160;
$163 = $159 | $162;
$or$cond7 = $152 & $163;
if (!($or$cond7)) {
$164 = $dval;
$165 = $164;
$166 = HEAP32[$165>>2]|0;
$167 = (($164) + 4)|0;
$168 = $167;
$169 = HEAP32[$168>>2]|0;
$170 = (___uremdi3(($166|0),($169|0),60,0)|0);
$171 = tempRet0;
$172 = (0)==($170|0);
$173 = (0)==($171|0);
$174 = $172 & $173;
if (!($174)) {
break;
}
}
$175 = $dval;
$176 = $175;
$177 = HEAP32[$176>>2]|0;
$178 = (($175) + 4)|0;
$179 = $178;
$180 = HEAP32[$179>>2]|0;
$181 = (___udivdi3(($177|0),($180|0),60,0)|0);
$182 = tempRet0;
$183 = $dval;
$184 = $183;
HEAP32[$184>>2] = $181;
$185 = (($183) + 4)|0;
$186 = $185;
HEAP32[$186>>2] = $182;
$unit = 35606;
$187 = $1;
$188 = (1)==($187|0);
$189 = $dval;
$190 = $189;
$191 = HEAP32[$190>>2]|0;
$192 = (($189) + 4)|0;
$193 = $192;
$194 = HEAP32[$193>>2]|0;
$195 = ($194>>>0)>(0);
$196 = ($191>>>0)>(120);
$197 = ($194|0)==(0);
$198 = $197 & $196;
$199 = $195 | $198;
$or$cond9 = $188 & $199;
if (!($or$cond9)) {
$200 = $dval;
$201 = $200;
$202 = HEAP32[$201>>2]|0;
$203 = (($200) + 4)|0;
$204 = $203;
$205 = HEAP32[$204>>2]|0;
$206 = (___uremdi3(($202|0),($205|0),24,0)|0);
$207 = tempRet0;
$208 = (0)==($206|0);
$209 = (0)==($207|0);
$210 = $208 & $209;
if (!($210)) {
break;
}
}
$211 = $dval;
$212 = $211;
$213 = HEAP32[$212>>2]|0;
$214 = (($211) + 4)|0;
$215 = $214;
$216 = HEAP32[$215>>2]|0;
$217 = (___udivdi3(($213|0),($216|0),24,0)|0);
$218 = tempRet0;
$219 = $dval;
$220 = $219;
HEAP32[$220>>2] = $217;
$221 = (($219) + 4)|0;
$222 = $221;
HEAP32[$222>>2] = $218;
$223 = $dval;
$224 = $223;
$225 = HEAP32[$224>>2]|0;
$226 = (($223) + 4)|0;
$227 = $226;
$228 = HEAP32[$227>>2]|0;
$229 = (1)==($225|0);
$230 = (0)==($228|0);
$231 = $229 & $230;
if ($231) {
$unit = 21762;
break;
} else {
$unit = 21766;
break;
}
}
} while(0);
$232 = $dval;
$233 = $232;
$234 = HEAP32[$233>>2]|0;
$235 = (($232) + 4)|0;
$236 = $235;
$237 = HEAP32[$236>>2]|0;
$238 = $unit;
$239 = $vararg_buffer;
$240 = $239;
HEAP32[$240>>2] = $234;
$241 = (($239) + 4)|0;
$242 = $241;
HEAP32[$242>>2] = $237;
$vararg_ptr10 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr10>>2] = $238;
(_GNUNET_snprintf(76064,128,21741,$vararg_buffer)|0);
$0 = 76064;
$243 = $0;
STACKTOP = sp;return ($243|0);
}
function _GNUNET_STRINGS_absolute_time_to_string($t) {
$t = $t|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tp = 0, $tt = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tt = sp + 12|0;
$1 = sp;
$2 = $t;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (_GNUNET_TIME_absolute_get_forever_()|0);
$9 = tempRet0;
$10 = $1;
$11 = $10;
HEAP32[$11>>2] = $8;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = $1;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = ($4|0)==($16|0);
$21 = ($7|0)==($19|0);
$22 = $20 & $21;
if ($22) {
$0 = 21771;
$35 = $0;
STACKTOP = sp;return ($35|0);
} else {
$23 = $t;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = (($23) + 4)|0;
$27 = $26;
$28 = HEAP32[$27>>2]|0;
$29 = (___udivdi3(($25|0),($28|0),1000,0)|0);
$30 = tempRet0;
$31 = (___udivdi3(($29|0),($30|0),1000,0)|0);
$32 = tempRet0;
HEAP32[$tt>>2] = $31;
$33 = (_localtime(($tt|0))|0);
$tp = $33;
$34 = $tp;
(_strftime((76192|0),255,(21783|0),($34|0))|0);
$0 = 76192;
$35 = $0;
STACKTOP = sp;return ($35|0);
}
return (0)|0;
}
function _GNUNET_STRINGS_data_to_string($data,$size,$out,$out_size) {
$data = $data|0;
$size = $size|0;
$out = $out|0;
$out_size = $out_size|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $bits = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $log_line3 = 0, $or$cond = 0, $rpos = 0, $udata = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0;
var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vbit = 0, $wpos = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer11 = sp + 24|0;
$vararg_buffer7 = sp + 16|0;
$vararg_buffer3 = sp + 8|0;
$vararg_buffer = sp;
$1 = $data;
$2 = $size;
$3 = $out;
$4 = $out_size;
$5 = $1;
$udata = $5;
$6 = $4;
$7 = $2;
$8 = $7<<3;
$9 = (($8) + 4)|0;
$10 = (($9>>>0) / 5)&-1;
$11 = ($6>>>0)<($10>>>0);
if ($11) {
$log_line = 873;
$12 = HEAP32[264]|0;
$13 = ($12|0)==(-1);
if ($13) {
$14 = $log_line;
$15 = (_GNUNET_get_log_call_status(1,0,21731,21813,$14)|0);
HEAP32[264] = $15;
}
$16 = (_GNUNET_get_log_skip()|0);
$17 = ($16|0)>(0);
if ($17) {
_GNUNET_log_skip(-1,0);
} else {
$18 = HEAP32[264]|0;
$19 = ($18|0)!=(0);
if ($19) {
HEAP32[$vararg_buffer>>2] = 21731;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = 873;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
}
}
$0 = 0;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
$vbit = 0;
$wpos = 0;
$rpos = 0;
$bits = 0;
while(1) {
$20 = $rpos;
$21 = $2;
$22 = ($20>>>0)<($21>>>0);
$23 = $vbit;
$24 = ($23>>>0)>(0);
$25 = $22 ? 1 : $24;
if (!($25)) {
label = 32;
break;
}
$26 = $rpos;
$27 = $2;
$28 = ($26>>>0)<($27>>>0);
$29 = $vbit;
$30 = ($29>>>0)<(5);
$or$cond = $28 & $30;
if ($or$cond) {
$31 = $bits;
$32 = $31 << 8;
$33 = $rpos;
$34 = (($33) + 1)|0;
$rpos = $34;
$35 = $udata;
$36 = (($35) + ($33)|0);
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = $32 | $38;
$bits = $39;
$40 = $vbit;
$41 = (($40) + 8)|0;
$vbit = $41;
}
$42 = $vbit;
$43 = ($42>>>0)<(5);
if ($43) {
$44 = $vbit;
$45 = (5 - ($44))|0;
$46 = $bits;
$47 = $46 << $45;
$bits = $47;
$48 = $vbit;
$49 = $2;
$50 = $49<<3;
$51 = (($50>>>0) % 5)&-1;
$52 = ($48|0)==($51|0);
if (!($52)) {
label = 15;
break;
}
$vbit = 5;
}
$61 = $wpos;
$62 = $4;
$63 = ($61>>>0)>=($62>>>0);
if ($63) {
label = 24;
break;
}
$72 = $bits;
$73 = $vbit;
$74 = (($73) - 5)|0;
$75 = $72 >>> $74;
$76 = $75 & 31;
$77 = HEAP32[267]|0;
$78 = (($77) + ($76)|0);
$79 = HEAP8[$78>>0]|0;
$80 = $wpos;
$81 = (($80) + 1)|0;
$wpos = $81;
$82 = $3;
$83 = (($82) + ($80)|0);
HEAP8[$83>>0] = $79;
$84 = $vbit;
$85 = (($84) - 5)|0;
$vbit = $85;
}
if ((label|0) == 15) {
$log_line1 = 890;
$53 = HEAP32[265]|0;
$54 = ($53|0)==(-1);
if ($54) {
$55 = $log_line1;
$56 = (_GNUNET_get_log_call_status(1,0,21731,21813,$55)|0);
HEAP32[265] = $56;
}
$57 = (_GNUNET_get_log_skip()|0);
$58 = ($57|0)>(0);
if ($58) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$59 = HEAP32[265]|0;
$60 = ($59|0)!=(0);
if (!($60)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer3>>2] = 21731;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = 890;
_GNUNET_log_nocheck(1,61615,$vararg_buffer3);
_GNUNET_abort_();
// unreachable;
}
else if ((label|0) == 24) {
$log_line2 = 895;
$64 = HEAP32[266]|0;
$65 = ($64|0)==(-1);
if ($65) {
$66 = $log_line2;
$67 = (_GNUNET_get_log_call_status(1,0,21731,21813,$66)|0);
HEAP32[266] = $67;
}
$68 = (_GNUNET_get_log_skip()|0);
$69 = ($68|0)>(0);
if ($69) {
_GNUNET_log_skip(-1,0);
} else {
$70 = HEAP32[266]|0;
$71 = ($70|0)!=(0);
if ($71) {
HEAP32[$vararg_buffer7>>2] = 21731;
$vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
HEAP32[$vararg_ptr10>>2] = 895;
_GNUNET_log_nocheck(1,61615,$vararg_buffer7);
}
}
$0 = 0;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
else if ((label|0) == 32) {
$86 = $vbit;
$87 = (0)==($86|0);
if ($87) {
$96 = $wpos;
$97 = $4;
$98 = ($96>>>0)<($97>>>0);
if ($98) {
$99 = $wpos;
$100 = $3;
$101 = (($100) + ($99)|0);
HEAP8[$101>>0] = 0;
}
$102 = $wpos;
$103 = $3;
$104 = (($103) + ($102)|0);
$0 = $104;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
$log_line3 = 901;
$88 = HEAP32[268]|0;
$89 = ($88|0)==(-1);
if ($89) {
$90 = $log_line3;
$91 = (_GNUNET_get_log_call_status(1,0,21731,21813,$90)|0);
HEAP32[268] = $91;
}
$92 = (_GNUNET_get_log_skip()|0);
$93 = ($92|0)>(0);
if ($93) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$94 = HEAP32[268]|0;
$95 = ($94|0)!=(0);
if (!($95)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer11>>2] = 21731;
$vararg_ptr14 = ((($vararg_buffer11)) + 4|0);
HEAP32[$vararg_ptr14>>2] = 901;
_GNUNET_log_nocheck(1,61615,$vararg_buffer11);
_GNUNET_abort_();
// unreachable;
}
return (0)|0;
}
function _GNUNET_STRINGS_data_to_string_alloc($buf,$size) {
$buf = $buf|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $end = 0, $len = 0, $str_buf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $buf;
$2 = $size;
$3 = $2;
$4 = $3<<3;
$len = $4;
$5 = $len;
$6 = (($5>>>0) % 5)&-1;
$7 = ($6>>>0)>(0);
if ($7) {
$8 = $len;
$9 = (($8>>>0) % 5)&-1;
$10 = (5 - ($9))|0;
$11 = $len;
$12 = (($11) + ($10))|0;
$len = $12;
}
$13 = $len;
$14 = (($13>>>0) / 5)&-1;
$len = $14;
$15 = $len;
$16 = (($15) + 1)|0;
$17 = (_GNUNET_xmalloc_($16,21731,929)|0);
$str_buf = $17;
$18 = $1;
$19 = $2;
$20 = $str_buf;
$21 = $len;
$22 = (_GNUNET_STRINGS_data_to_string($18,$19,$20,$21)|0);
$end = $22;
$23 = $end;
$24 = (0|0)==($23|0);
if ($24) {
$25 = $str_buf;
_GNUNET_xfree_($25,21731,933);
$0 = 0;
$28 = $0;
STACKTOP = sp;return ($28|0);
} else {
$26 = $end;
HEAP8[$26>>0] = 0;
$27 = $str_buf;
$0 = $27;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
return (0)|0;
}
function _GNUNET_STRINGS_string_to_data($enc,$enclen,$out,$out_size) {
$enc = $enc|0;
$enclen = $enclen|0;
$out = $out|0;
$out_size = $out_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, $bits = 0, $encoded_len = 0, $log_line = 0, $or$cond = 0, $ret = 0, $rpos = 0, $shift = 0, $uout = 0, $vararg_buffer = 0, $vararg_ptr2 = 0, $vbit = 0, $wpos = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $enc;
$2 = $enclen;
$3 = $out;
$4 = $out_size;
$5 = $4;
$6 = $5<<3;
$encoded_len = $6;
$7 = $2;
$8 = (0)==($7|0);
if ($8) {
$9 = $4;
$10 = (0)==($9|0);
if ($10) {
$0 = 1;
$84 = $0;
STACKTOP = sp;return ($84|0);
} else {
$0 = -1;
$84 = $0;
STACKTOP = sp;return ($84|0);
}
}
$11 = $3;
$uout = $11;
$12 = $4;
$wpos = $12;
$13 = $2;
$rpos = $13;
$14 = $encoded_len;
$15 = (($14>>>0) % 5)&-1;
$16 = ($15>>>0)>(0);
if ($16) {
$17 = $encoded_len;
$18 = (($17>>>0) % 5)&-1;
$vbit = $18;
$19 = $vbit;
$20 = (5 - ($19))|0;
$shift = $20;
$21 = $rpos;
$22 = (($21) + -1)|0;
$rpos = $22;
$23 = $1;
$24 = (($23) + ($22)|0);
$25 = HEAP8[$24>>0]|0;
$26 = (_getValue__($25)|0);
$ret = $26;
$27 = $shift;
$28 = $26 >> $27;
$bits = $28;
} else {
$vbit = 5;
$shift = 0;
$29 = $rpos;
$30 = (($29) + -1)|0;
$rpos = $30;
$31 = $1;
$32 = (($31) + ($30)|0);
$33 = HEAP8[$32>>0]|0;
$34 = (_getValue__($33)|0);
$ret = $34;
$bits = $34;
}
$35 = $encoded_len;
$36 = $shift;
$37 = (($35) + ($36))|0;
$38 = (($37>>>0) / 5)&-1;
$39 = $2;
$40 = ($38|0)!=($39|0);
if ($40) {
$0 = -1;
$84 = $0;
STACKTOP = sp;return ($84|0);
}
$41 = $ret;
$42 = (-1)==($41|0);
if ($42) {
$0 = -1;
$84 = $0;
STACKTOP = sp;return ($84|0);
}
while(1) {
$43 = $wpos;
$44 = ($43>>>0)>(0);
$45 = $rpos;
if (!($44)) {
label = 25;
break;
}
$46 = (0)==($45|0);
if ($46) {
label = 14;
break;
}
$55 = $rpos;
$56 = (($55) + -1)|0;
$rpos = $56;
$57 = $1;
$58 = (($57) + ($56)|0);
$59 = HEAP8[$58>>0]|0;
$60 = (_getValue__($59)|0);
$ret = $60;
$61 = $vbit;
$62 = $60 << $61;
$63 = $bits;
$64 = $62 | $63;
$bits = $64;
$65 = $ret;
$66 = (-1)==($65|0);
if ($66) {
label = 22;
break;
}
$67 = $vbit;
$68 = (($67) + 5)|0;
$vbit = $68;
$69 = $vbit;
$70 = ($69>>>0)>=(8);
if (!($70)) {
continue;
}
$71 = $bits;
$72 = $71&255;
$73 = $wpos;
$74 = (($73) + -1)|0;
$wpos = $74;
$75 = $uout;
$76 = (($75) + ($74)|0);
HEAP8[$76>>0] = $72;
$77 = $bits;
$78 = $77 >>> 8;
$bits = $78;
$79 = $vbit;
$80 = (($79) - 8)|0;
$vbit = $80;
}
if ((label|0) == 14) {
$log_line = 993;
$47 = HEAP32[269]|0;
$48 = ($47|0)==(-1);
if ($48) {
$49 = $log_line;
$50 = (_GNUNET_get_log_call_status(1,0,21731,21876,$49)|0);
HEAP32[269] = $50;
}
$51 = (_GNUNET_get_log_skip()|0);
$52 = ($51|0)>(0);
if ($52) {
_GNUNET_log_skip(-1,0);
} else {
$53 = HEAP32[269]|0;
$54 = ($53|0)!=(0);
if ($54) {
HEAP32[$vararg_buffer>>2] = 21731;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = 993;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
}
}
$0 = -1;
$84 = $0;
STACKTOP = sp;return ($84|0);
}
else if ((label|0) == 22) {
$0 = -1;
$84 = $0;
STACKTOP = sp;return ($84|0);
}
else if ((label|0) == 25) {
$81 = (0)!=($45|0);
$82 = $vbit;
$83 = (0)!=($82|0);
$or$cond = $81 | $83;
if ($or$cond) {
$0 = -1;
$84 = $0;
STACKTOP = sp;return ($84|0);
} else {
$0 = 1;
$84 = $0;
STACKTOP = sp;return ($84|0);
}
}
return (0)|0;
}
function _getValue__($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $1;
$3 = $2&255;
switch ($3|0) {
case 111: case 79: {
$1 = 48;
break;
}
case 76: case 108: case 73: case 105: {
$1 = 49;
break;
}
case 85: case 117: {
$1 = 86;
break;
}
default: {
}
}
$4 = $1;
$5 = $4&255;
$6 = ($5|0)>=(48);
if ($6) {
$7 = $1;
$8 = $7&255;
$9 = ($8|0)<=(57);
if ($9) {
$10 = $1;
$11 = $10&255;
$12 = (($11) - 48)|0;
$0 = $12;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
}
$13 = $1;
$14 = $13&255;
$15 = ($14|0)>=(97);
if ($15) {
$16 = $1;
$17 = $16&255;
$18 = ($17|0)<=(122);
if ($18) {
$19 = $1;
$20 = $19&255;
$21 = (_toupper($20)|0);
$22 = $21&255;
$1 = $22;
}
}
$dec = 0;
$23 = $1;
$24 = $23&255;
$25 = ($24|0)>=(65);
if ($25) {
$26 = $1;
$27 = $26&255;
$28 = ($27|0)<=(90);
if ($28) {
$29 = $1;
$30 = $29&255;
$31 = (73)<($30|0);
if ($31) {
$32 = $dec;
$33 = (($32) + 1)|0;
$dec = $33;
}
$34 = $1;
$35 = $34&255;
$36 = (76)<($35|0);
if ($36) {
$37 = $dec;
$38 = (($37) + 1)|0;
$dec = $38;
}
$39 = $1;
$40 = $39&255;
$41 = (79)<($40|0);
if ($41) {
$42 = $dec;
$43 = (($42) + 1)|0;
$dec = $43;
}
$44 = $1;
$45 = $44&255;
$46 = (85)<($45|0);
if ($46) {
$47 = $dec;
$48 = (($47) + 1)|0;
$dec = $48;
}
$49 = $1;
$50 = $49&255;
$51 = (($50) - 65)|0;
$52 = (($51) + 10)|0;
$53 = $dec;
$54 = (($52) - ($53))|0;
$0 = $54;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
}
$0 = -1;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
function _GNUNET_TIME_get_offset() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = 70552;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = (($0) + 4)|0;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
tempRet0 = ($5);
return ($2|0);
}
function _GNUNET_TIME_absolute_get() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ret = 0, $tv = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = sp + 8|0;
$ret = sp;
$tv = sp + 16|0;
(_gettimeofday(($tv|0),(0|0))|0);
$1 = HEAP32[$tv>>2]|0;
$2 = ($1|0)<(0);
$3 = $2 << 31 >> 31;
$4 = (___muldi3(($1|0),($3|0),1000,0)|0);
$5 = tempRet0;
$6 = (___muldi3(($4|0),($5|0),1000,0)|0);
$7 = tempRet0;
$8 = ((($tv)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)<(0);
$11 = $10 << 31 >> 31;
$12 = (_i64Add(($6|0),($7|0),($9|0),($11|0))|0);
$13 = tempRet0;
$14 = 70552;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (_i64Add(($12|0),($13|0),($16|0),($19|0))|0);
$21 = tempRet0;
$22 = $ret;
$23 = $22;
HEAP32[$23>>2] = $20;
$24 = (($22) + 4)|0;
$25 = $24;
HEAP32[$25>>2] = $21;
;HEAP32[$0>>2]=HEAP32[$ret>>2]|0;HEAP32[$0+4>>2]=HEAP32[$ret+4>>2]|0;
$26 = $0;
$27 = $26;
$28 = HEAP32[$27>>2]|0;
$29 = (($26) + 4)|0;
$30 = $29;
$31 = HEAP32[$30>>2]|0;
tempRet0 = ($31);
STACKTOP = sp;return ($28|0);
}
function _GNUNET_TIME_relative_get_zero_() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = sp;
;HEAP32[$0>>2]=HEAP32[70560>>2]|0;HEAP32[$0+4>>2]=HEAP32[70560+4>>2]|0;
$1 = $0;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
tempRet0 = ($6);
STACKTOP = sp;return ($3|0);
}
function _GNUNET_TIME_relative_get_forever_() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = sp;
;HEAP32[$0>>2]=HEAP32[64>>2]|0;HEAP32[$0+4>>2]=HEAP32[64+4>>2]|0;
$1 = $0;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
tempRet0 = ($6);
STACKTOP = sp;return ($3|0);
}
function _GNUNET_TIME_absolute_get_forever_() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = sp;
;HEAP32[$0>>2]=HEAP32[72>>2]|0;HEAP32[$0+4>>2]=HEAP32[72+4>>2]|0;
$1 = $0;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
tempRet0 = ($6);
STACKTOP = sp;return ($3|0);
}
function _GNUNET_TIME_absolute_get_duration($whence) {
$whence = $whence|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $now = 0, $ret = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = sp + 24|0;
$now = sp + 16|0;
$ret = sp + 8|0;
$1 = sp;
$2 = (_GNUNET_TIME_absolute_get()|0);
$3 = tempRet0;
$4 = $1;
$5 = $4;
HEAP32[$5>>2] = $2;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $3;
;HEAP32[$now>>2]=HEAP32[$1>>2]|0;HEAP32[$now+4>>2]=HEAP32[$1+4>>2]|0;
$8 = $whence;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = $now;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = ($13>>>0)>($19>>>0);
$21 = ($10>>>0)>($16>>>0);
$22 = ($13|0)==($19|0);
$23 = $22 & $21;
$24 = $20 | $23;
if ($24) {
$25 = (_GNUNET_TIME_relative_get_zero_()|0);
$26 = tempRet0;
$27 = $0;
$28 = $27;
HEAP32[$28>>2] = $25;
$29 = (($27) + 4)|0;
$30 = $29;
HEAP32[$30>>2] = $26;
$49 = $0;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = (($49) + 4)|0;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
tempRet0 = ($54);
STACKTOP = sp;return ($51|0);
} else {
$31 = $now;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = (($31) + 4)|0;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = $whence;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (($37) + 4)|0;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = (_i64Subtract(($33|0),($36|0),($39|0),($42|0))|0);
$44 = tempRet0;
$45 = $ret;
$46 = $45;
HEAP32[$46>>2] = $43;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP32[$48>>2] = $44;
;HEAP32[$0>>2]=HEAP32[$ret>>2]|0;HEAP32[$0+4>>2]=HEAP32[$ret+4>>2]|0;
$49 = $0;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = (($49) + 4)|0;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
tempRet0 = ($54);
STACKTOP = sp;return ($51|0);
}
return (0)|0;
}
function _GNUNET_TIME_absolute_hton($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ret = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = sp + 8|0;
$ret = sp;
$1 = $a;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$7 = (_GNUNET_htonll($3,$6)|0);
$8 = tempRet0;
$9 = $ret;
$10 = $9;
HEAP8[$10>>0]=$7&255;HEAP8[$10+1>>0]=($7>>8)&255;HEAP8[$10+2>>0]=($7>>16)&255;HEAP8[$10+3>>0]=$7>>24;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP8[$12>>0]=$8&255;HEAP8[$12+1>>0]=($8>>8)&255;HEAP8[$12+2>>0]=($8>>16)&255;HEAP8[$12+3>>0]=$8>>24;
;HEAP8[$0>>0]=HEAP8[$ret>>0]|0;HEAP8[$0+1>>0]=HEAP8[$ret+1>>0]|0;HEAP8[$0+2>>0]=HEAP8[$ret+2>>0]|0;HEAP8[$0+3>>0]=HEAP8[$ret+3>>0]|0;HEAP8[$0+4>>0]=HEAP8[$ret+4>>0]|0;HEAP8[$0+5>>0]=HEAP8[$ret+5>>0]|0;HEAP8[$0+6>>0]=HEAP8[$ret+6>>0]|0;HEAP8[$0+7>>0]=HEAP8[$ret+7>>0]|0;
$13 = $0;
$14 = $13;
$15 = HEAPU8[$14>>0]|(HEAPU8[$14+1>>0]<<8)|(HEAPU8[$14+2>>0]<<16)|(HEAPU8[$14+3>>0]<<24);
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24);
tempRet0 = ($18);
STACKTOP = sp;return ($15|0);
}
function _gcry_strerror($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (__gcry_strerror($1)|0);
STACKTOP = sp;return ($2|0);
}
function __gcry_strerror($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (_gpg_strerror($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function _gpg_error($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_check_version($req_version) {
$req_version = $req_version|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $req_version;
$1 = $0;
$2 = (__gcry_check_version($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_control($cmd,$varargs) {
$cmd = $cmd|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $arg_ptr = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $cmd;
HEAP32[$arg_ptr>>2] = $varargs;
$1 = $0;
$2 = (__gcry_vcontrol($1,$arg_ptr)|0);
$3 = (_gpg_error($2)|0);
$err = $3;
$4 = $err;
STACKTOP = sp;return ($4|0);
}
function _gcry_sexp_new($retsexp,$buffer,$length,$autodetect) {
$retsexp = $retsexp|0;
$buffer = $buffer|0;
$length = $length|0;
$autodetect = $autodetect|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $retsexp;
$1 = $buffer;
$2 = $length;
$3 = $autodetect;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (__gcry_sexp_new($4,$5,$6,$7)|0);
$9 = (_gpg_error($8)|0);
STACKTOP = sp;return ($9|0);
}
function _gcry_sexp_build($retsexp,$erroff,$format,$varargs) {
$retsexp = $retsexp|0;
$erroff = $erroff|0;
$format = $format|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $arg_ptr = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $retsexp;
$1 = $erroff;
$2 = $format;
HEAP32[$arg_ptr>>2] = $varargs;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_sexp_vbuild($3,$4,$5,$arg_ptr)|0);
$rc = $6;
$7 = $rc;
$8 = (_gpg_error($7)|0);
STACKTOP = sp;return ($8|0);
}
function _gcry_sexp_release($sexp) {
$sexp = $sexp|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $sexp;
$1 = $0;
__gcry_sexp_release($1);
STACKTOP = sp;return;
}
function _gcry_sexp_sprint($sexp,$mode,$buffer,$maxlength) {
$sexp = $sexp|0;
$mode = $mode|0;
$buffer = $buffer|0;
$maxlength = $maxlength|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $sexp;
$1 = $mode;
$2 = $buffer;
$3 = $maxlength;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (__gcry_sexp_sprint($4,$5,$6,$7)|0);
STACKTOP = sp;return ($8|0);
}
function _gcry_sexp_find_token($list,$tok,$toklen) {
$list = $list|0;
$tok = $tok|0;
$toklen = $toklen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $list;
$1 = $tok;
$2 = $toklen;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_sexp_find_token($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _gcry_sexp_cadr($list) {
$list = $list|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $list;
$1 = $0;
$2 = (__gcry_sexp_cadr($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_sexp_nth_mpi($list,$number,$mpifmt) {
$list = $list|0;
$number = $number|0;
$mpifmt = $mpifmt|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $list;
$1 = $number;
$2 = $mpifmt;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_sexp_nth_mpi($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _gcry_mpi_new($nbits) {
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = $0;
$2 = (__gcry_mpi_new($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_mpi_release($a) {
$a = $a|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
__gcry_mpi_release($1);
STACKTOP = sp;return;
}
function _gcry_mpi_scan($ret_mpi,$format,$buffer,$buflen,$nscanned) {
$ret_mpi = $ret_mpi|0;
$format = $format|0;
$buffer = $buffer|0;
$buflen = $buflen|0;
$nscanned = $nscanned|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ret_mpi;
$1 = $format;
$2 = $buffer;
$3 = $buflen;
$4 = $nscanned;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = (__gcry_mpi_scan($5,$6,$7,$8,$9)|0);
$11 = (_gpg_error($10)|0);
STACKTOP = sp;return ($11|0);
}
function _gcry_mpi_print($format,$buffer,$buflen,$nwritten,$a) {
$format = $format|0;
$buffer = $buffer|0;
$buflen = $buflen|0;
$nwritten = $nwritten|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $format;
$1 = $buffer;
$2 = $buflen;
$3 = $nwritten;
$4 = $a;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = (__gcry_mpi_print($5,$6,$7,$8,$9)|0);
$11 = (_gpg_error($10)|0);
STACKTOP = sp;return ($11|0);
}
function _gcry_mpi_mulm($w,$u,$v,$m) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$m = $m|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $m;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
__gcry_mpi_mulm($4,$5,$6,$7);
STACKTOP = sp;return;
}
function _gcry_mpi_powm($w,$b,$e,$m) {
$w = $w|0;
$b = $b|0;
$e = $e|0;
$m = $m|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $b;
$2 = $e;
$3 = $m;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
__gcry_mpi_powm($4,$5,$6,$7);
STACKTOP = sp;return;
}
function _gcry_mpi_invm($x,$a,$m) {
$x = $x|0;
$a = $a|0;
$m = $m|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $a;
$2 = $m;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_mpi_invm($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _gcry_mpi_point_new($nbits) {
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = $0;
$2 = (__gcry_mpi_point_new($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_mpi_point_release($point) {
$point = $point|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $point;
$1 = $0;
__gcry_mpi_point_release($1);
STACKTOP = sp;return;
}
function _gcry_mpi_ec_new($r_ctx,$keyparam,$curvename) {
$r_ctx = $r_ctx|0;
$keyparam = $keyparam|0;
$curvename = $curvename|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $r_ctx;
$1 = $keyparam;
$2 = $curvename;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_mpi_ec_new($3,$4,$5)|0);
$7 = (_gpg_error($6)|0);
STACKTOP = sp;return ($7|0);
}
function _gcry_mpi_ec_get_mpi($name,$ctx,$copy) {
$name = $name|0;
$ctx = $ctx|0;
$copy = $copy|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = $ctx;
$2 = $copy;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_mpi_ec_get_mpi($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _gcry_mpi_ec_get_point($name,$ctx,$copy) {
$name = $name|0;
$ctx = $ctx|0;
$copy = $copy|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = $ctx;
$2 = $copy;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_mpi_ec_get_point($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _gcry_mpi_ec_get_affine($x,$y,$point,$ctx) {
$x = $x|0;
$y = $y|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $y;
$2 = $point;
$3 = $ctx;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (__gcry_ctx_get_pointer($7,1)|0);
$9 = (__gcry_mpi_ec_get_affine($4,$5,$6,$8)|0);
STACKTOP = sp;return ($9|0);
}
function _gcry_mpi_ec_mul($w,$n,$u,$ctx) {
$w = $w|0;
$n = $n|0;
$u = $u|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $n;
$2 = $u;
$3 = $ctx;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (__gcry_ctx_get_pointer($7,1)|0);
__gcry_mpi_ec_mul_point($4,$5,$6,$8);
STACKTOP = sp;return;
}
function _gcry_mpi_get_opaque($a,$nbits) {
$a = $a|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $nbits;
$2 = $0;
$3 = $1;
$4 = (__gcry_mpi_get_opaque($2,$3)|0);
STACKTOP = sp;return ($4|0);
}
function _gcry_mpi_get_flag($a,$flag) {
$a = $a|0;
$flag = $flag|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $flag;
$2 = $0;
$3 = $1;
$4 = (__gcry_mpi_get_flag($2,$3)|0);
STACKTOP = sp;return ($4|0);
}
function _gcry_cipher_open($handle,$algo,$mode,$flags) {
$handle = $handle|0;
$algo = $algo|0;
$mode = $mode|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $handle;
$2 = $algo;
$3 = $mode;
$4 = $flags;
$5 = (__gcry_global_is_operational()|0);
$6 = ($5|0)!=(0);
$7 = $1;
if ($6) {
$9 = $2;
$10 = $3;
$11 = $4;
$12 = (__gcry_cipher_open($7,$9,$10,$11)|0);
$13 = (_gpg_error($12)|0);
$0 = $13;
$14 = $0;
STACKTOP = sp;return ($14|0);
} else {
HEAP32[$7>>2] = 0;
$8 = (_gpg_error(176)|0);
$0 = $8;
$14 = $0;
STACKTOP = sp;return ($14|0);
}
return (0)|0;
}
function _gcry_cipher_close($h) {
$h = $h|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $h;
$1 = $0;
__gcry_cipher_close($1);
STACKTOP = sp;return;
}
function _gcry_cipher_setkey($hd,$key,$keylen) {
$hd = $hd|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $hd;
$2 = $key;
$3 = $keylen;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
if ($5) {
$7 = $1;
$8 = $2;
$9 = $3;
$10 = (__gcry_cipher_setkey($7,$8,$9)|0);
$11 = (_gcry_error($10)|0);
$0 = $11;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
$6 = (_gpg_error(176)|0);
$0 = $6;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _gcry_error($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gcry_err_make(32,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_err_make($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $0;
$3 = $1;
$4 = (_gpg_err_make($2,$3)|0);
STACKTOP = sp;return ($4|0);
}
function _gcry_cipher_setiv($hd,$iv,$ivlen) {
$hd = $hd|0;
$iv = $iv|0;
$ivlen = $ivlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $hd;
$2 = $iv;
$3 = $ivlen;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
if ($5) {
$7 = $1;
$8 = $2;
$9 = $3;
$10 = (__gcry_cipher_setiv($7,$8,$9)|0);
$11 = (_gcry_error($10)|0);
$0 = $11;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
$6 = (_gpg_error(176)|0);
$0 = $6;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _gcry_cipher_encrypt($h,$out,$outsize,$in,$inlen) {
$h = $h|0;
$out = $out|0;
$outsize = $outsize|0;
$in = $in|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $h;
$2 = $out;
$3 = $outsize;
$4 = $in;
$5 = $inlen;
$6 = (__gcry_global_is_operational()|0);
$7 = ($6|0)!=(0);
if ($7) {
$13 = $1;
$14 = $2;
$15 = $3;
$16 = $4;
$17 = $5;
$18 = (__gcry_cipher_encrypt($13,$14,$15,$16,$17)|0);
$19 = (_gpg_error($18)|0);
$0 = $19;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
$8 = $2;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $2;
$11 = $3;
_memset(($10|0),66,($11|0))|0;
}
$12 = (_gpg_error(176)|0);
$0 = $12;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
function _gcry_cipher_decrypt($h,$out,$outsize,$in,$inlen) {
$h = $h|0;
$out = $out|0;
$outsize = $outsize|0;
$in = $in|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $h;
$2 = $out;
$3 = $outsize;
$4 = $in;
$5 = $inlen;
$6 = (__gcry_global_is_operational()|0);
$7 = ($6|0)!=(0);
if ($7) {
$9 = $1;
$10 = $2;
$11 = $3;
$12 = $4;
$13 = $5;
$14 = (__gcry_cipher_decrypt($9,$10,$11,$12,$13)|0);
$15 = (_gpg_error($14)|0);
$0 = $15;
$16 = $0;
STACKTOP = sp;return ($16|0);
} else {
$8 = (_gpg_error(176)|0);
$0 = $8;
$16 = $0;
STACKTOP = sp;return ($16|0);
}
return (0)|0;
}
function _gcry_pk_sign($result,$data,$skey) {
$result = $result|0;
$data = $data|0;
$skey = $skey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $result;
$2 = $data;
$3 = $skey;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
$6 = $1;
if ($5) {
$8 = $2;
$9 = $3;
$10 = (__gcry_pk_sign($6,$8,$9)|0);
$11 = (_gpg_error($10)|0);
$0 = $11;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
HEAP32[$6>>2] = 0;
$7 = (_gpg_error(176)|0);
$0 = $7;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _gcry_pk_verify($sigval,$data,$pkey) {
$sigval = $sigval|0;
$data = $data|0;
$pkey = $pkey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $sigval;
$2 = $data;
$3 = $pkey;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
if ($5) {
$7 = $1;
$8 = $2;
$9 = $3;
$10 = (__gcry_pk_verify($7,$8,$9)|0);
$11 = (_gpg_error($10)|0);
$0 = $11;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
$6 = (_gpg_error(176)|0);
$0 = $6;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _gcry_pk_testkey($key) {
$key = $key|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $key;
$2 = (__gcry_global_is_operational()|0);
$3 = ($2|0)!=(0);
if ($3) {
$5 = $1;
$6 = (__gcry_pk_testkey($5)|0);
$7 = (_gpg_error($6)|0);
$0 = $7;
$8 = $0;
STACKTOP = sp;return ($8|0);
} else {
$4 = (_gpg_error(176)|0);
$0 = $4;
$8 = $0;
STACKTOP = sp;return ($8|0);
}
return (0)|0;
}
function _gcry_pk_genkey($r_key,$s_parms) {
$r_key = $r_key|0;
$s_parms = $s_parms|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $r_key;
$2 = $s_parms;
$3 = (__gcry_global_is_operational()|0);
$4 = ($3|0)!=(0);
$5 = $1;
if ($4) {
$7 = $2;
$8 = (__gcry_pk_genkey($5,$7)|0);
$9 = (_gpg_error($8)|0);
$0 = $9;
$10 = $0;
STACKTOP = sp;return ($10|0);
} else {
HEAP32[$5>>2] = 0;
$6 = (_gpg_error(176)|0);
$0 = $6;
$10 = $0;
STACKTOP = sp;return ($10|0);
}
return (0)|0;
}
function _gcry_md_open($h,$algo,$flags) {
$h = $h|0;
$algo = $algo|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $h;
$2 = $algo;
$3 = $flags;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
$6 = $1;
if ($5) {
$8 = $2;
$9 = $3;
$10 = (__gcry_md_open($6,$8,$9)|0);
$11 = (_gpg_error($10)|0);
$0 = $11;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
HEAP32[$6>>2] = 0;
$7 = (_gpg_error(176)|0);
$0 = $7;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _gcry_md_close($hd) {
$hd = $hd|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $0;
__gcry_md_close($1);
STACKTOP = sp;return;
}
function _gcry_md_reset($hd) {
$hd = $hd|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $0;
__gcry_md_reset($1);
STACKTOP = sp;return;
}
function _gcry_md_write($hd,$buffer,$length) {
$hd = $hd|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $buffer;
$2 = $length;
$3 = (__gcry_global_is_operational()|0);
$4 = ($3|0)!=(0);
if (!($4)) {
STACKTOP = sp;return;
}
$5 = $0;
$6 = $1;
$7 = $2;
__gcry_md_write($5,$6,$7);
STACKTOP = sp;return;
}
function _gcry_md_read($hd,$algo) {
$hd = $hd|0;
$algo = $algo|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $algo;
$2 = $0;
$3 = $1;
$4 = (__gcry_md_read($2,$3)|0);
STACKTOP = sp;return ($4|0);
}
function _gcry_md_hash_buffer($algo,$digest,$buffer,$length) {
$algo = $algo|0;
$digest = $digest|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $digest;
$2 = $buffer;
$3 = $length;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
if (!($5)) {
__gcry_fips_signal_error(21906,1175,21919,0,21939);
}
$6 = $0;
$7 = $1;
$8 = $2;
$9 = $3;
__gcry_md_hash_buffer($6,$7,$8,$9);
STACKTOP = sp;return;
}
function _gcry_md_get_algo($hd) {
$hd = $hd|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $hd;
$2 = (__gcry_global_is_operational()|0);
$3 = ($2|0)!=(0);
if ($3) {
$4 = $1;
$5 = (__gcry_md_get_algo($4)|0);
$0 = $5;
$6 = $0;
STACKTOP = sp;return ($6|0);
} else {
__gcry_fips_signal_error(21906,1198,21971,0,21988);
$0 = 0;
$6 = $0;
STACKTOP = sp;return ($6|0);
}
return (0)|0;
}
function _gcry_md_get_algo_dlen($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $0;
$2 = (__gcry_md_get_algo_dlen($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_md_setkey($hd,$key,$keylen) {
$hd = $hd|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $hd;
$2 = $key;
$3 = $keylen;
$4 = (__gcry_global_is_operational()|0);
$5 = ($4|0)!=(0);
if ($5) {
$7 = $1;
$8 = $2;
$9 = $3;
$10 = (__gcry_md_setkey($7,$8,$9)|0);
$11 = (_gpg_error($10)|0);
$0 = $11;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
$6 = (_gpg_error(176)|0);
$0 = $6;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _gcry_randomize($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $level;
$3 = (__gcry_global_is_operational()|0);
$4 = ($3|0)!=(0);
if (!($4)) {
__gcry_fips_signal_error(21906,1287,22018,1,21939);
__gcry_fips_noreturn();
}
$5 = $0;
$6 = $1;
$7 = $2;
__gcry_randomize($5,$6,$7);
STACKTOP = sp;return;
}
function _gcry_mpi_randomize($w,$nbits,$level) {
$w = $w|0;
$nbits = $nbits|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $nbits;
$2 = $level;
$3 = $0;
$4 = $1;
$5 = $2;
__gcry_mpi_randomize($3,$4,$5);
STACKTOP = sp;return;
}
function _gcry_create_nonce($buffer,$length) {
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = (__gcry_global_is_operational()|0);
$3 = ($2|0)!=(0);
if (!($3)) {
__gcry_fips_signal_error(21906,1340,22033,1,21939);
__gcry_fips_noreturn();
}
$4 = $0;
$5 = $1;
__gcry_create_nonce($4,$5);
STACKTOP = sp;return;
}
function _gcry_ctx_release($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
__gcry_ctx_release($1);
STACKTOP = sp;return;
}
function _gcry_set_progress_handler($cb,$cb_data) {
$cb = $cb|0;
$cb_data = $cb_data|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $cb;
$1 = $cb_data;
$2 = $0;
$3 = $1;
__gcry_set_progress_handler($2,$3);
STACKTOP = sp;return;
}
function _gcry_free($a) {
$a = $a|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
__gcry_free($1);
STACKTOP = sp;return;
}
function __gcry_gettext($key) {
$key = $key|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $key;
$2 = HEAP32[17661]|0;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = HEAP32[17661]|0;
$5 = $1;
$6 = (FUNCTION_TABLE_ii[$4 & 63]($5)|0);
$0 = $6;
$8 = $0;
STACKTOP = sp;return ($8|0);
} else {
$7 = $1;
$0 = $7;
$8 = $0;
STACKTOP = sp;return ($8|0);
}
return (0)|0;
}
function __gcry_fatal_error($rc,$text) {
$rc = $rc|0;
$text = $text|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rc;
$1 = $text;
$2 = $1;
$3 = ($2|0)!=(0|0);
if (!($3)) {
$4 = $0;
$5 = (_gpg_strerror($4)|0);
$1 = $5;
}
$6 = HEAP32[17663]|0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = (__gcry_fips_mode()|0);
$9 = ($8|0)!=(0);
if (!($9)) {
$10 = HEAP32[17663]|0;
$11 = HEAP32[17662]|0;
$12 = $0;
$13 = $1;
FUNCTION_TABLE_viii[$10 & 127]($11,$12,$13);
}
}
$14 = $1;
__gcry_fips_signal_error(22051,86,22058,1,$14);
_write2stderr(22076);
$15 = $1;
_write2stderr($15);
_write2stderr(22507);
__gcry_secmem_term();
_abort();
// unreachable;
}
function _write2stderr($s) {
$s = $s|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $res = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $s;
$1 = $0;
$2 = $0;
$3 = (_strlen($2)|0);
$4 = (_write(2,$1,$3)|0);
$res = $4;
STACKTOP = sp;return;
}
function __gcry_set_log_verbosity($level) {
$level = $level|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $level;
$1 = $0;
HEAP32[17666] = $1;
STACKTOP = sp;return;
}
function __gcry_log_verbosity($level) {
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $level;
$1 = HEAP32[17666]|0;
$2 = $0;
$3 = ($1|0)>=($2|0);
$4 = $3&1;
STACKTOP = sp;return ($4|0);
}
function __gcry_logv($level,$fmt,$arg_ptr) {
$level = $level|0;
$fmt = $fmt|0;
$arg_ptr = $arg_ptr|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $level;
$1 = $fmt;
$2 = $arg_ptr;
$3 = HEAP32[17664]|0;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = HEAP32[17664]|0;
$6 = HEAP32[17665]|0;
$7 = $0;
$8 = $1;
$9 = $2;
FUNCTION_TABLE_viiii[$5 & 63]($6,$7,$8,$9);
} else {
$10 = $0;
switch ($10|0) {
case 30: case 20: case 10: case 0: {
break;
}
case 40: {
$11 = HEAP32[3963]|0;
(_fputs(22091,$11)|0);
break;
}
case 50: {
$12 = HEAP32[3963]|0;
(_fputs(22099,$12)|0);
break;
}
case 100: {
$13 = HEAP32[3963]|0;
(_fputs(22113,$13)|0);
break;
}
default: {
$14 = HEAP32[3963]|0;
$15 = $0;
HEAP32[$vararg_buffer>>2] = $15;
(_fprintf($14,22119,$vararg_buffer)|0);
}
}
$16 = HEAP32[3963]|0;
$17 = $1;
$18 = $2;
(_vfprintf($16,$17,$18)|0);
}
$19 = $0;
$20 = ($19|0)==(40);
$21 = $0;
$22 = ($21|0)==(50);
$or$cond = $20 | $22;
if ($or$cond) {
__gcry_fips_signal_error(22051,140,22144,1,22155);
__gcry_secmem_term();
_abort();
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function __gcry_log($level,$fmt,$varargs) {
$level = $level|0;
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $level;
$1 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$2 = $0;
$3 = $1;
__gcry_logv($2,$3,$arg_ptr);
STACKTOP = sp;return;
}
function __gcry_bug($file,$line,$func) {
$file = $file|0;
$line = $line|0;
$func = $func|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $file;
$1 = $line;
$2 = $func;
$3 = $0;
$4 = $1;
$5 = $2;
HEAP32[$vararg_buffer>>2] = $3;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $4;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $5;
__gcry_log(50,22185,$vararg_buffer);
_abort();
// unreachable;
}
function __gcry_assert_failed($expr,$file,$line,$func) {
$expr = $expr|0;
$file = $file|0;
$line = $line|0;
$func = $func|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $expr;
$1 = $file;
$2 = $line;
$3 = $func;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
HEAP32[$vararg_buffer>>2] = $4;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $5;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $6;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $7;
__gcry_log(50,22215,$vararg_buffer);
_abort();
// unreachable;
}
function __gcry_log_info($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$1 = $0;
__gcry_logv(10,$1,$arg_ptr);
STACKTOP = sp;return;
}
function __gcry_log_info_with_dummy_fp($fp,$fmt,$varargs) {
$fp = $fp|0;
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fp;
$1 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$2 = $1;
__gcry_logv(10,$2,$arg_ptr);
STACKTOP = sp;return 0;
}
function __gcry_log_error($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$1 = $0;
__gcry_logv(30,$1,$arg_ptr);
STACKTOP = sp;return;
}
function __gcry_log_fatal($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$1 = $0;
__gcry_logv(40,$1,$arg_ptr);
_abort();
// unreachable;
}
function __gcry_log_bug($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$1 = $0;
__gcry_logv(50,$1,$arg_ptr);
_abort();
// unreachable;
}
function __gcry_log_debug($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fmt;
HEAP32[$arg_ptr>>2] = $varargs;
$1 = $0;
__gcry_logv(100,$1,$arg_ptr);
STACKTOP = sp;return;
}
function __gcry_log_printf($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $arg_ptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $fmt;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
HEAP32[$arg_ptr>>2] = $varargs;
$3 = $0;
__gcry_logv(0,$3,$arg_ptr);
STACKTOP = sp;return;
}
function __gcry_log_printhex($text,$buffer,$length) {
$text = $text|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $text;
$1 = $buffer;
$2 = $length;
$3 = $0;
$4 = $1;
$5 = $2;
_do_printhex($3,22249,$4,$5);
STACKTOP = sp;return;
}
function _do_printhex($text,$text2,$buffer,$length) {
$text = $text|0;
$text2 = $text2|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cnt = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $p = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer18 = 0, $vararg_buffer24 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, $vararg_ptr12 = 0;
var $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr23 = 0, $vararg_ptr6 = 0, $wrap = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer24 = sp + 56|0;
$vararg_buffer18 = sp + 40|0;
$vararg_buffer16 = sp + 32|0;
$vararg_buffer13 = sp + 24|0;
$vararg_buffer9 = sp + 16|0;
$vararg_buffer7 = sp + 8|0;
$vararg_buffer = sp;
$0 = $text;
$1 = $text2;
$2 = $buffer;
$3 = $length;
$wrap = 0;
$cnt = 0;
$4 = $0;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $0;
$7 = HEAP8[$6>>0]|0;
$8 = $7 << 24 >> 24;
$9 = ($8|0)!=(0);
if ($9) {
$wrap = 1;
$10 = $0;
$11 = $1;
HEAP32[$vararg_buffer>>2] = $10;
$vararg_ptr6 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr6>>2] = $11;
__gcry_log_debug(22251,$vararg_buffer);
$12 = $1;
$13 = ((($12)) + 1|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14 << 24 >> 24;
$16 = ($15|0)==(91);
$17 = $3;
$18 = ($17|0)!=(0);
$or$cond = $16 & $18;
$19 = $2;
$20 = ($19|0)!=(0|0);
$or$cond3 = $or$cond & $20;
if ($or$cond3) {
__gcry_log_printf(22507,$vararg_buffer7);
$1 = 22249;
$21 = $0;
$22 = (_strlen($21)|0);
HEAP32[$vararg_buffer9>>2] = $22;
$vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
HEAP32[$vararg_ptr12>>2] = 76543;
__gcry_log_debug(22257,$vararg_buffer9);
}
}
}
$23 = $3;
$24 = ($23|0)!=(0);
L6: do {
if ($24) {
$25 = $2;
$p = $25;
while(1) {
$26 = $3;
$27 = (($26) + -1)|0;
$3 = $27;
$28 = ($26|0)!=(0);
if (!($28)) {
break L6;
}
$29 = $p;
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
HEAP32[$vararg_buffer13>>2] = $31;
__gcry_log_printf(22263,$vararg_buffer13);
$32 = $wrap;
$33 = ($32|0)!=(0);
if ($33) {
$34 = $cnt;
$35 = (($34) + 1)|0;
$cnt = $35;
$36 = ($35|0)==(32);
$37 = $3;
$38 = ($37|0)!=(0);
$or$cond5 = $36 & $38;
if ($or$cond5) {
$cnt = 0;
__gcry_log_printf(22268,$vararg_buffer16);
$39 = $0;
$40 = (_strlen($39)|0);
$41 = $1;
$42 = (_strlen($41)|0);
HEAP32[$vararg_buffer18>>2] = $40;
$vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
HEAP32[$vararg_ptr21>>2] = 76543;
$vararg_ptr22 = ((($vararg_buffer18)) + 8|0);
HEAP32[$vararg_ptr22>>2] = $42;
$vararg_ptr23 = ((($vararg_buffer18)) + 12|0);
HEAP32[$vararg_ptr23>>2] = 76543;
__gcry_log_debug(22272,$vararg_buffer18);
}
}
$43 = $p;
$44 = ((($43)) + 1|0);
$p = $44;
}
}
} while(0);
$45 = $0;
$46 = ($45|0)!=(0|0);
if (!($46)) {
STACKTOP = sp;return;
}
__gcry_log_printf(22507,$vararg_buffer24);
STACKTOP = sp;return;
}
function __gcry_log_printmpi($text,$mpi) {
$text = $text|0;
$mpi = $mpi|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $nbits = 0, $p = 0, $prefix = 0, $rawmpi = 0, $rawmpilen = 0, $sign = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$rawmpilen = sp + 16|0;
$sign = sp + 12|0;
$nbits = sp + 8|0;
$prefix = sp + 32|0;
$0 = $text;
$1 = $mpi;
$2 = $1;
$3 = ($2|0)!=(0|0);
if (!($3)) {
$4 = $0;
$5 = ($4|0)!=(0|0);
$6 = $0;
$7 = $5 ? $6 : 22249;
_do_printhex($7,22280,0,0);
STACKTOP = sp;return;
}
$8 = $1;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $1;
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = $12 & 4;
$14 = ($13|0)!=(0);
if ($14) {
$15 = $1;
$16 = (__gcry_mpi_get_opaque($15,$nbits)|0);
$p = $16;
$17 = HEAP32[$nbits>>2]|0;
HEAP32[$vararg_buffer>>2] = $17;
(_snprintf($prefix,30,22288,$vararg_buffer)|0);
$18 = $0;
$19 = ($18|0)!=(0|0);
$20 = $0;
$21 = $19 ? $20 : 22249;
$22 = $p;
$23 = HEAP32[$nbits>>2]|0;
$24 = (($23) + 7)|0;
$25 = (($24>>>0) / 8)&-1;
_do_printhex($21,$prefix,$22,$25);
STACKTOP = sp;return;
}
}
$26 = $1;
$27 = (__gcry_mpi_get_buffer($26,0,$rawmpilen,$sign)|0);
$rawmpi = $27;
$28 = $rawmpi;
$29 = ($28|0)!=(0|0);
if (!($29)) {
$30 = $0;
$31 = ($30|0)!=(0|0);
$32 = $0;
$33 = $31 ? $32 : 22249;
_do_printhex($33,22298,0,0);
STACKTOP = sp;return;
}
$34 = HEAP32[$rawmpilen>>2]|0;
$35 = ($34|0)!=(0);
$36 = $0;
$37 = HEAP32[$sign>>2]|0;
$38 = ($37|0)!=(0);
$39 = $38 ? 22313 : 22315;
if ($35) {
$40 = $rawmpi;
$41 = HEAP32[$rawmpilen>>2]|0;
_do_printhex($36,$39,$40,$41);
} else {
_do_printhex($36,$39,76543,1);
}
$42 = $rawmpi;
__gcry_free($42);
STACKTOP = sp;return;
}
function ___gcry_burn_stack($bytes) {
$bytes = $bytes|0;
var $$alloca_mul = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $buflen = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp;
$0 = $bytes;
$2 = $0;
$3 = ($2|0)!=(0);
$4 = $3 ^ 1;
$5 = $4&1;
$6 = $0;
$7 = (($5) + ($6))|0;
$8 = (($7) + 63)|0;
$9 = $8 & -64;
$buflen = $9;
$10 = $buflen;
$11 = (_llvm_stacksave()|0);
$1 = $11;
$$alloca_mul = $10;
$12 = STACKTOP; STACKTOP = STACKTOP + ((((1*$$alloca_mul)|0)+15)&-16)|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();;
$_vptr = $12;
$_vlen = $10;
$_vset = 0;
$13 = $_vset;
$14 = $13&255;
$15 = $_vset_long;
$16 = $15;
HEAP32[$16>>2] = $14;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = 0;
while(1) {
$19 = $_vptr;
$20 = $19;
$21 = $20 & 7;
$22 = ($21|0)!=(0);
$23 = $_vlen;
$24 = ($23|0)!=(0);
$25 = $22 ? $24 : 0;
if (!($25)) {
break;
}
$26 = $_vset;
$27 = $_vptr;
HEAP8[$27>>0] = $26;
$28 = $_vptr;
$29 = ((($28)) + 1|0);
$_vptr = $29;
$30 = $_vlen;
$31 = (($30) + -1)|0;
$_vlen = $31;
}
$32 = $_vlen;
$33 = ($32>>>0)<(8);
if (!($33)) {
$34 = $_vset_long;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (___muldi3(($36|0),($39|0),16843009,16843009)|0);
$41 = tempRet0;
$42 = $_vset_long;
$43 = $42;
HEAP32[$43>>2] = $40;
$44 = (($42) + 4)|0;
$45 = $44;
HEAP32[$45>>2] = $41;
while(1) {
$46 = $_vptr;
$_vptr_long = $46;
$47 = $_vset_long;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = (($47) + 4)|0;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = $_vptr_long;
$54 = $53;
$55 = $54;
HEAP32[$55>>2] = $49;
$56 = (($54) + 4)|0;
$57 = $56;
HEAP32[$57>>2] = $52;
$58 = $_vlen;
$59 = (($58) - 8)|0;
$_vlen = $59;
$60 = $_vptr;
$61 = ((($60)) + 8|0);
$_vptr = $61;
$62 = $_vlen;
$63 = ($62>>>0)>=(8);
if (!($63)) {
break;
}
}
}
while(1) {
$64 = $_vlen;
$65 = ($64|0)!=(0);
if (!($65)) {
break;
}
$66 = $_vset;
$67 = $_vptr;
HEAP8[$67>>0] = $66;
$68 = $_vptr;
$69 = ((($68)) + 1|0);
$_vptr = $69;
$70 = $_vlen;
$71 = (($70) + -1)|0;
$_vlen = $71;
}
$72 = $1;
_llvm_stackrestore(($72|0));
STACKTOP = sp;return;
}
function ___gcry_burn_stack_dummy() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function __gcry_divide_by_zero() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
_gpg_err_set_errno(33);
$0 = (___errno_location()|0);
$1 = HEAP32[$0>>2]|0;
$2 = (_gpg_err_code_from_errno($1)|0);
__gcry_fatal_error($2,22317);
// unreachable;
}
function __gcry_global_is_operational() {
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17667]|0;
$1 = ($0|0)!=(0);
if (!($1)) {
_global_init();
}
$2 = (__gcry_fips_is_operational()|0);
return ($2|0);
}
function _global_init() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$err = 0;
$0 = HEAP32[17667]|0;
$1 = ($0|0)!=(0);
if ($1) {
STACKTOP = sp;return;
}
HEAP32[17667] = 1;
__gcry_set_preferred_rng_type(0);
$2 = HEAP32[17668]|0;
__gcry_initialize_fips_mode($2);
__gcry_detect_hw_features();
$3 = (__gcry_cipher_init()|0);
$err = $3;
$4 = $err;
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = (__gcry_md_init()|0);
$err = $6;
$7 = $err;
$8 = ($7|0)!=(0);
if (!($8)) {
$9 = (__gcry_pk_init()|0);
$err = $9;
$10 = $err;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = (__gcry_primegen_init()|0);
$err = $12;
$13 = $err;
$14 = ($13|0)!=(0);
if (!($14)) {
$15 = (__gcry_secmem_module_init()|0);
$err = $15;
$16 = $err;
$17 = ($16|0)!=(0);
if (!($17)) {
$18 = (__gcry_mpi_init()|0);
$err = $18;
$19 = $err;
$20 = ($19|0)!=(0);
if (!($20)) {
STACKTOP = sp;return;
}
}
}
}
}
}
__gcry_bug(22332,123,22341);
// unreachable;
}
function __gcry_check_version($req_version) {
$req_version = $req_version|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $my_major = 0, $my_micro = 0, $my_minor = 0, $my_plvl = 0, $rq_major = 0, $rq_micro = 0, $rq_minor = 0, $ver = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$my_major = sp + 24|0;
$my_minor = sp + 20|0;
$my_micro = sp + 16|0;
$rq_major = sp + 12|0;
$rq_minor = sp + 8|0;
$rq_micro = sp + 4|0;
$1 = $req_version;
$ver = 22353;
$2 = $1;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $1;
$5 = HEAP8[$4>>0]|0;
$6 = $5 << 24 >> 24;
$7 = ($6|0)==(1);
if ($7) {
$8 = $1;
$9 = ((($8)) + 1|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10 << 24 >> 24;
$12 = ($11|0)==(1);
if ($12) {
$13 = (__gcry_compat_identification()|0);
$0 = $13;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
}
}
_global_init();
$14 = $1;
$15 = ($14|0)!=(0|0);
$16 = $ver;
if (!($15)) {
$0 = $16;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$17 = (_parse_version_string($16,$my_major,$my_minor,$my_micro)|0);
$my_plvl = $17;
$18 = $my_plvl;
$19 = ($18|0)!=(0|0);
if (!($19)) {
$0 = 0;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$20 = $1;
$21 = (_parse_version_string($20,$rq_major,$rq_minor,$rq_micro)|0);
$22 = ($21|0)!=(0|0);
if (!($22)) {
$0 = 0;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
$23 = HEAP32[$my_major>>2]|0;
$24 = HEAP32[$rq_major>>2]|0;
$25 = ($23|0)>($24|0);
do {
if (!($25)) {
$26 = HEAP32[$my_major>>2]|0;
$27 = HEAP32[$rq_major>>2]|0;
$28 = ($26|0)==($27|0);
if ($28) {
$29 = HEAP32[$my_minor>>2]|0;
$30 = HEAP32[$rq_minor>>2]|0;
$31 = ($29|0)>($30|0);
if ($31) {
break;
}
}
$32 = HEAP32[$my_major>>2]|0;
$33 = HEAP32[$rq_major>>2]|0;
$34 = ($32|0)==($33|0);
if ($34) {
$35 = HEAP32[$my_minor>>2]|0;
$36 = HEAP32[$rq_minor>>2]|0;
$37 = ($35|0)==($36|0);
if ($37) {
$38 = HEAP32[$my_micro>>2]|0;
$39 = HEAP32[$rq_micro>>2]|0;
$40 = ($38|0)>($39|0);
if ($40) {
break;
}
}
}
$41 = HEAP32[$my_major>>2]|0;
$42 = HEAP32[$rq_major>>2]|0;
$43 = ($41|0)==($42|0);
if ($43) {
$44 = HEAP32[$my_minor>>2]|0;
$45 = HEAP32[$rq_minor>>2]|0;
$46 = ($44|0)==($45|0);
if ($46) {
$47 = HEAP32[$my_micro>>2]|0;
$48 = HEAP32[$rq_micro>>2]|0;
$49 = ($47|0)==($48|0);
if ($49) {
break;
}
}
}
$0 = 0;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
} while(0);
$50 = $ver;
$0 = $50;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
function _parse_version_string($s,$major,$minor,$micro) {
$s = $s|0;
$major = $major|0;
$minor = $minor|0;
$micro = $micro|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $s;
$2 = $major;
$3 = $minor;
$4 = $micro;
$5 = $1;
$6 = $2;
$7 = (_parse_version_number($5,$6)|0);
$1 = $7;
$8 = $1;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $1;
$11 = HEAP8[$10>>0]|0;
$12 = $11 << 24 >> 24;
$13 = ($12|0)!=(46);
if (!($13)) {
$14 = $1;
$15 = ((($14)) + 1|0);
$1 = $15;
$16 = $1;
$17 = $3;
$18 = (_parse_version_number($16,$17)|0);
$1 = $18;
$19 = $1;
$20 = ($19|0)!=(0|0);
if ($20) {
$21 = $1;
$22 = HEAP8[$21>>0]|0;
$23 = $22 << 24 >> 24;
$24 = ($23|0)!=(46);
if (!($24)) {
$25 = $1;
$26 = ((($25)) + 1|0);
$1 = $26;
$27 = $1;
$28 = $4;
$29 = (_parse_version_number($27,$28)|0);
$1 = $29;
$30 = $1;
$31 = ($30|0)!=(0|0);
if ($31) {
$32 = $1;
$0 = $32;
$33 = $0;
STACKTOP = sp;return ($33|0);
} else {
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
}
}
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
}
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
function _parse_version_number($s,$number) {
$s = $s|0;
$number = $number|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $val = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $s;
$2 = $number;
$val = 0;
$3 = $1;
$4 = HEAP8[$3>>0]|0;
$5 = $4 << 24 >> 24;
$6 = ($5|0)==(48);
if ($6) {
$7 = $1;
$8 = ((($7)) + 1|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 << 24 >> 24;
$11 = (_isdigit($10)|0);
$12 = ($11|0)!=(0);
if ($12) {
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
}
while(1) {
$13 = $1;
$14 = HEAP8[$13>>0]|0;
$15 = $14 << 24 >> 24;
$16 = (_isdigit($15)|0);
$17 = ($16|0)!=(0);
$18 = $val;
if (!($17)) {
break;
}
$19 = ($18*10)|0;
$val = $19;
$20 = $1;
$21 = HEAP8[$20>>0]|0;
$22 = $21 << 24 >> 24;
$23 = (($22) - 48)|0;
$24 = $val;
$25 = (($24) + ($23))|0;
$val = $25;
$26 = $1;
$27 = ((($26)) + 1|0);
$1 = $27;
}
$28 = $2;
HEAP32[$28>>2] = $18;
$29 = $val;
$30 = ($29|0)<(0);
$31 = $1;
$32 = $30 ? 0 : $31;
$0 = $32;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
function __gcry_vcontrol($cmd,$arg_ptr) {
$cmd = $cmd|0;
$arg_ptr = $arg_ptr|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0;
var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0;
var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current12 = 0, $arglist_current15 = 0, $arglist_current18 = 0, $arglist_current21 = 0, $arglist_current24 = 0, $arglist_current27 = 0, $arglist_current3 = 0, $arglist_current30 = 0, $arglist_current33 = 0, $arglist_current36 = 0, $arglist_current39 = 0, $arglist_current42 = 0, $arglist_current45 = 0, $arglist_current48 = 0, $arglist_current51 = 0;
var $arglist_current54 = 0, $arglist_current57 = 0, $arglist_current6 = 0, $arglist_current60 = 0, $arglist_current63 = 0, $arglist_current66 = 0, $arglist_current69 = 0, $arglist_current9 = 0, $arglist_next = 0, $arglist_next10 = 0, $arglist_next13 = 0, $arglist_next16 = 0, $arglist_next19 = 0, $arglist_next22 = 0, $arglist_next25 = 0, $arglist_next28 = 0, $arglist_next31 = 0, $arglist_next34 = 0, $arglist_next37 = 0, $arglist_next4 = 0;
var $arglist_next40 = 0, $arglist_next43 = 0, $arglist_next46 = 0, $arglist_next49 = 0, $arglist_next52 = 0, $arglist_next55 = 0, $arglist_next58 = 0, $arglist_next61 = 0, $arglist_next64 = 0, $arglist_next67 = 0, $arglist_next7 = 0, $arglist_next70 = 0, $buffer = 0, $buflen = 0, $ctx = 0, $ctx1 = 0, $dt = 0, $dtlen = 0, $expanded = 0, $expanded101 = 0;
var $expanded102 = 0, $expanded103 = 0, $expanded105 = 0, $expanded106 = 0, $expanded108 = 0, $expanded109 = 0, $expanded110 = 0, $expanded112 = 0, $expanded113 = 0, $expanded115 = 0, $expanded116 = 0, $expanded117 = 0, $expanded119 = 0, $expanded120 = 0, $expanded122 = 0, $expanded123 = 0, $expanded124 = 0, $expanded126 = 0, $expanded127 = 0, $expanded129 = 0;
var $expanded130 = 0, $expanded131 = 0, $expanded133 = 0, $expanded134 = 0, $expanded136 = 0, $expanded137 = 0, $expanded138 = 0, $expanded140 = 0, $expanded141 = 0, $expanded143 = 0, $expanded144 = 0, $expanded145 = 0, $expanded147 = 0, $expanded148 = 0, $expanded150 = 0, $expanded151 = 0, $expanded152 = 0, $expanded154 = 0, $expanded155 = 0, $expanded157 = 0;
var $expanded158 = 0, $expanded159 = 0, $expanded161 = 0, $expanded162 = 0, $expanded164 = 0, $expanded165 = 0, $expanded166 = 0, $expanded168 = 0, $expanded169 = 0, $expanded171 = 0, $expanded172 = 0, $expanded173 = 0, $expanded175 = 0, $expanded176 = 0, $expanded178 = 0, $expanded179 = 0, $expanded180 = 0, $expanded182 = 0, $expanded183 = 0, $expanded185 = 0;
var $expanded186 = 0, $expanded187 = 0, $expanded189 = 0, $expanded190 = 0, $expanded192 = 0, $expanded193 = 0, $expanded194 = 0, $expanded196 = 0, $expanded197 = 0, $expanded199 = 0, $expanded200 = 0, $expanded201 = 0, $expanded203 = 0, $expanded204 = 0, $expanded206 = 0, $expanded207 = 0, $expanded208 = 0, $expanded210 = 0, $expanded211 = 0, $expanded213 = 0;
var $expanded214 = 0, $expanded215 = 0, $expanded217 = 0, $expanded218 = 0, $expanded220 = 0, $expanded221 = 0, $expanded222 = 0, $expanded224 = 0, $expanded225 = 0, $expanded227 = 0, $expanded228 = 0, $expanded229 = 0, $expanded231 = 0, $expanded232 = 0, $expanded234 = 0, $expanded235 = 0, $expanded236 = 0, $expanded71 = 0, $expanded73 = 0, $expanded74 = 0;
var $expanded75 = 0, $expanded77 = 0, $expanded78 = 0, $expanded80 = 0, $expanded81 = 0, $expanded82 = 0, $expanded84 = 0, $expanded85 = 0, $expanded87 = 0, $expanded88 = 0, $expanded89 = 0, $expanded91 = 0, $expanded92 = 0, $expanded94 = 0, $expanded95 = 0, $expanded96 = 0, $expanded98 = 0, $expanded99 = 0, $flags = 0, $fp = 0;
var $i = 0, $ip = 0, $key = 0, $keylen = 0, $name = 0, $or$cond = 0, $rc = 0, $rctx = 0, $seed = 0, $seedlen = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $cmd;
$1 = $arg_ptr;
$rc = 0;
$2 = $0;
do {
switch ($2|0) {
case 31: {
__gcry_private_enable_m_guard();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 44: {
__gcry_set_preferred_rng_type(0);
__gcry_enable_quick_random_gen();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 51: {
$3 = (__gcry_random_is_faked()|0);
$4 = ($3|0)!=(0);
if (!($4)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 13: {
__gcry_random_dump_stats();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 14: {
__gcry_secmem_dump_stats();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 30: {
_global_init();
__gcry_secmem_init(0);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 37: {
_global_init();
HEAP32[17669] = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 24: {
_global_init();
$5 = $1;
$arglist_current = HEAP32[$5>>2]|0;
$6 = $arglist_current;
$7 = ((0) + 4|0);
$expanded71 = $7;
$expanded = (($expanded71) - 1)|0;
$8 = (($6) + ($expanded))|0;
$9 = ((0) + 4|0);
$expanded75 = $9;
$expanded74 = (($expanded75) - 1)|0;
$expanded73 = $expanded74 ^ -1;
$10 = $8 & $expanded73;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$arglist_next = ((($11)) + 4|0);
HEAP32[$5>>2] = $arglist_next;
__gcry_secmem_init($12);
$13 = (__gcry_secmem_get_flags()|0);
$14 = $13 & 4;
$15 = ($14|0)!=(0);
if (!($15)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 25: {
_global_init();
__gcry_secmem_term();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 27: {
__gcry_set_preferred_rng_type(0);
$16 = (__gcry_secmem_get_flags()|0);
$17 = $16 | 1;
__gcry_secmem_set_flags($17);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 28: {
__gcry_set_preferred_rng_type(0);
$18 = (__gcry_secmem_get_flags()|0);
$19 = $18 | 2;
__gcry_secmem_set_flags($19);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 29: {
__gcry_set_preferred_rng_type(0);
$20 = (__gcry_secmem_get_flags()|0);
$21 = $20 & -3;
__gcry_secmem_set_flags($21);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 22: {
_global_init();
__gcry_secure_random_alloc();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 45: {
__gcry_set_preferred_rng_type(0);
$22 = $1;
$arglist_current3 = HEAP32[$22>>2]|0;
$23 = $arglist_current3;
$24 = ((0) + 4|0);
$expanded78 = $24;
$expanded77 = (($expanded78) - 1)|0;
$25 = (($23) + ($expanded77))|0;
$26 = ((0) + 4|0);
$expanded82 = $26;
$expanded81 = (($expanded82) - 1)|0;
$expanded80 = $expanded81 ^ -1;
$27 = $25 & $expanded80;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$arglist_next4 = ((($28)) + 4|0);
HEAP32[$22>>2] = $arglist_next4;
__gcry_set_random_seed_file($29);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 46: {
__gcry_set_preferred_rng_type(0);
$30 = (__gcry_global_is_operational()|0);
$31 = ($30|0)!=(0);
if (!($31)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
__gcry_update_random_seed_file();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 19: {
__gcry_set_preferred_rng_type(0);
$32 = $1;
$arglist_current6 = HEAP32[$32>>2]|0;
$33 = $arglist_current6;
$34 = ((0) + 4|0);
$expanded85 = $34;
$expanded84 = (($expanded85) - 1)|0;
$35 = (($33) + ($expanded84))|0;
$36 = ((0) + 4|0);
$expanded89 = $36;
$expanded88 = (($expanded89) - 1)|0;
$expanded87 = $expanded88 ^ -1;
$37 = $35 & $expanded87;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$arglist_next7 = ((($38)) + 4|0);
HEAP32[$32>>2] = $arglist_next7;
__gcry_set_log_verbosity($39);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 20: {
$40 = $1;
$arglist_current9 = HEAP32[$40>>2]|0;
$41 = $arglist_current9;
$42 = ((0) + 4|0);
$expanded92 = $42;
$expanded91 = (($expanded92) - 1)|0;
$43 = (($41) + ($expanded91))|0;
$44 = ((0) + 4|0);
$expanded96 = $44;
$expanded95 = (($expanded96) - 1)|0;
$expanded94 = $expanded95 ^ -1;
$45 = $43 & $expanded94;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$arglist_next10 = ((($46)) + 4|0);
HEAP32[$40>>2] = $arglist_next10;
$48 = HEAP32[17670]|0;
$49 = $48 | $47;
HEAP32[17670] = $49;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 21: {
$50 = $1;
$arglist_current12 = HEAP32[$50>>2]|0;
$51 = $arglist_current12;
$52 = ((0) + 4|0);
$expanded99 = $52;
$expanded98 = (($expanded99) - 1)|0;
$53 = (($51) + ($expanded98))|0;
$54 = ((0) + 4|0);
$expanded103 = $54;
$expanded102 = (($expanded103) - 1)|0;
$expanded101 = $expanded102 ^ -1;
$55 = $53 & $expanded101;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$arglist_next13 = ((($56)) + 4|0);
HEAP32[$50>>2] = $arglist_next13;
$58 = $57 ^ -1;
$59 = HEAP32[17670]|0;
$60 = $59 & $58;
HEAP32[17670] = $60;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 36: {
_global_init();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 40: {
$61 = HEAP32[17667]|0;
$62 = ($61|0)!=(0);
if (!($62)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 39: {
$63 = HEAP32[17671]|0;
$64 = ($63|0)!=(0);
if (!($64)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 38: {
$65 = HEAP32[17671]|0;
$66 = ($65|0)!=(0);
if ($66) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
_global_init();
__gcry_random_initialize(0);
HEAP32[17671] = 1;
(__gcry_global_is_operational()|0);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 47: {
__gcry_set_preferred_rng_type(0);
_global_init();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 48: {
__gcry_set_preferred_rng_type(0);
__gcry_random_initialize(1);
$67 = (__gcry_global_is_operational()|0);
$68 = ($67|0)!=(0);
if (!($68)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
__gcry_fast_random_poll();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 52: {
$69 = (_gpg_error_398(60)|0);
$rc = $69;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 49: {
__gcry_set_preferred_rng_type(0);
$70 = $1;
$arglist_current15 = HEAP32[$70>>2]|0;
$71 = $arglist_current15;
$72 = ((0) + 4|0);
$expanded106 = $72;
$expanded105 = (($expanded106) - 1)|0;
$73 = (($71) + ($expanded105))|0;
$74 = ((0) + 4|0);
$expanded110 = $74;
$expanded109 = (($expanded110) - 1)|0;
$expanded108 = $expanded109 ^ -1;
$75 = $73 & $expanded108;
$76 = $75;
$77 = HEAP32[$76>>2]|0;
$arglist_next16 = ((($76)) + 4|0);
HEAP32[$70>>2] = $arglist_next16;
__gcry_set_random_daemon_socket($77);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 50: {
__gcry_set_preferred_rng_type(0);
__gcry_random_initialize(1);
$78 = $1;
$arglist_current18 = HEAP32[$78>>2]|0;
$79 = $arglist_current18;
$80 = ((0) + 4|0);
$expanded113 = $80;
$expanded112 = (($expanded113) - 1)|0;
$81 = (($79) + ($expanded112))|0;
$82 = ((0) + 4|0);
$expanded117 = $82;
$expanded116 = (($expanded117) - 1)|0;
$expanded115 = $expanded116 ^ -1;
$83 = $81 & $expanded115;
$84 = $83;
$85 = HEAP32[$84>>2]|0;
$arglist_next19 = ((($84)) + 4|0);
HEAP32[$78>>2] = $arglist_next19;
$86 = ($85|0)!=(0);
$87 = $86 ^ 1;
$88 = $87 ^ 1;
$89 = $88&1;
(__gcry_use_random_daemon($89)|0);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 70: {
__gcry_random_close_fds();
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 53: {
$90 = $1;
$arglist_current21 = HEAP32[$90>>2]|0;
$91 = $arglist_current21;
$92 = ((0) + 4|0);
$expanded120 = $92;
$expanded119 = (($expanded120) - 1)|0;
$93 = (($91) + ($expanded119))|0;
$94 = ((0) + 4|0);
$expanded124 = $94;
$expanded123 = (($expanded124) - 1)|0;
$expanded122 = $expanded123 ^ -1;
$95 = $93 & $expanded122;
$96 = $95;
$97 = HEAP32[$96>>2]|0;
$arglist_next22 = ((($96)) + 4|0);
HEAP32[$90>>2] = $arglist_next22;
$fp = $97;
__gcry_set_preferred_rng_type(0);
$98 = $fp;
$99 = ($98|0)!=(0|0);
$100 = $99 ? 55 : 54;
$101 = $fp;
_print_config($100,$101);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 54: {
__gcry_set_preferred_rng_type(0);
$102 = (__gcry_fips_test_operational()|0);
$103 = ($102|0)!=(0);
if (!($103)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 55: {
$104 = (__gcry_fips_mode()|0);
$105 = ($104|0)!=(0);
if (!($105)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$106 = (__gcry_is_fips_mode_inactive()|0);
$107 = ($106|0)!=(0);
$108 = HEAP32[17669]|0;
$109 = ($108|0)!=(0);
$or$cond = $107 | $109;
if ($or$cond) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 56: {
__gcry_set_preferred_rng_type(0);
$110 = HEAP32[17667]|0;
$111 = ($110|0)!=(0);
if (!($111)) {
HEAP32[17668] = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$112 = (__gcry_fips_test_error_or_operational()|0);
$113 = ($112|0)!=(0);
if ($113) {
(__gcry_fips_run_selftests(1)|0);
}
$114 = (__gcry_fips_is_operational()|0);
$115 = ($114|0)!=(0);
if (!($115)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 57: {
_global_init();
$116 = (__gcry_fips_run_selftests(1)|0);
$rc = $116;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 58: {
$117 = $1;
$arglist_current24 = HEAP32[$117>>2]|0;
$118 = $arglist_current24;
$119 = ((0) + 4|0);
$expanded127 = $119;
$expanded126 = (($expanded127) - 1)|0;
$120 = (($118) + ($expanded126))|0;
$121 = ((0) + 4|0);
$expanded131 = $121;
$expanded130 = (($expanded131) - 1)|0;
$expanded129 = $expanded130 ^ -1;
$122 = $120 & $expanded129;
$123 = $122;
$124 = HEAP32[$123>>2]|0;
$arglist_next25 = ((($123)) + 4|0);
HEAP32[$117>>2] = $arglist_next25;
$rctx = $124;
$125 = $1;
$arglist_current27 = HEAP32[$125>>2]|0;
$126 = $arglist_current27;
$127 = ((0) + 4|0);
$expanded134 = $127;
$expanded133 = (($expanded134) - 1)|0;
$128 = (($126) + ($expanded133))|0;
$129 = ((0) + 4|0);
$expanded138 = $129;
$expanded137 = (($expanded138) - 1)|0;
$expanded136 = $expanded137 ^ -1;
$130 = $128 & $expanded136;
$131 = $130;
$132 = HEAP32[$131>>2]|0;
$arglist_next28 = ((($131)) + 4|0);
HEAP32[$125>>2] = $arglist_next28;
$flags = $132;
$133 = $1;
$arglist_current30 = HEAP32[$133>>2]|0;
$134 = $arglist_current30;
$135 = ((0) + 4|0);
$expanded141 = $135;
$expanded140 = (($expanded141) - 1)|0;
$136 = (($134) + ($expanded140))|0;
$137 = ((0) + 4|0);
$expanded145 = $137;
$expanded144 = (($expanded145) - 1)|0;
$expanded143 = $expanded144 ^ -1;
$138 = $136 & $expanded143;
$139 = $138;
$140 = HEAP32[$139>>2]|0;
$arglist_next31 = ((($139)) + 4|0);
HEAP32[$133>>2] = $arglist_next31;
$key = $140;
$141 = $1;
$arglist_current33 = HEAP32[$141>>2]|0;
$142 = $arglist_current33;
$143 = ((0) + 4|0);
$expanded148 = $143;
$expanded147 = (($expanded148) - 1)|0;
$144 = (($142) + ($expanded147))|0;
$145 = ((0) + 4|0);
$expanded152 = $145;
$expanded151 = (($expanded152) - 1)|0;
$expanded150 = $expanded151 ^ -1;
$146 = $144 & $expanded150;
$147 = $146;
$148 = HEAP32[$147>>2]|0;
$arglist_next34 = ((($147)) + 4|0);
HEAP32[$141>>2] = $arglist_next34;
$keylen = $148;
$149 = $1;
$arglist_current36 = HEAP32[$149>>2]|0;
$150 = $arglist_current36;
$151 = ((0) + 4|0);
$expanded155 = $151;
$expanded154 = (($expanded155) - 1)|0;
$152 = (($150) + ($expanded154))|0;
$153 = ((0) + 4|0);
$expanded159 = $153;
$expanded158 = (($expanded159) - 1)|0;
$expanded157 = $expanded158 ^ -1;
$154 = $152 & $expanded157;
$155 = $154;
$156 = HEAP32[$155>>2]|0;
$arglist_next37 = ((($155)) + 4|0);
HEAP32[$149>>2] = $arglist_next37;
$seed = $156;
$157 = $1;
$arglist_current39 = HEAP32[$157>>2]|0;
$158 = $arglist_current39;
$159 = ((0) + 4|0);
$expanded162 = $159;
$expanded161 = (($expanded162) - 1)|0;
$160 = (($158) + ($expanded161))|0;
$161 = ((0) + 4|0);
$expanded166 = $161;
$expanded165 = (($expanded166) - 1)|0;
$expanded164 = $expanded165 ^ -1;
$162 = $160 & $expanded164;
$163 = $162;
$164 = HEAP32[$163>>2]|0;
$arglist_next40 = ((($163)) + 4|0);
HEAP32[$157>>2] = $arglist_next40;
$seedlen = $164;
$165 = $1;
$arglist_current42 = HEAP32[$165>>2]|0;
$166 = $arglist_current42;
$167 = ((0) + 4|0);
$expanded169 = $167;
$expanded168 = (($expanded169) - 1)|0;
$168 = (($166) + ($expanded168))|0;
$169 = ((0) + 4|0);
$expanded173 = $169;
$expanded172 = (($expanded173) - 1)|0;
$expanded171 = $expanded172 ^ -1;
$170 = $168 & $expanded171;
$171 = $170;
$172 = HEAP32[$171>>2]|0;
$arglist_next43 = ((($171)) + 4|0);
HEAP32[$165>>2] = $arglist_next43;
$dt = $172;
$173 = $1;
$arglist_current45 = HEAP32[$173>>2]|0;
$174 = $arglist_current45;
$175 = ((0) + 4|0);
$expanded176 = $175;
$expanded175 = (($expanded176) - 1)|0;
$176 = (($174) + ($expanded175))|0;
$177 = ((0) + 4|0);
$expanded180 = $177;
$expanded179 = (($expanded180) - 1)|0;
$expanded178 = $expanded179 ^ -1;
$178 = $176 & $expanded178;
$179 = $178;
$180 = HEAP32[$179>>2]|0;
$arglist_next46 = ((($179)) + 4|0);
HEAP32[$173>>2] = $arglist_next46;
$dtlen = $180;
$181 = (__gcry_global_is_operational()|0);
$182 = ($181|0)!=(0);
if ($182) {
$183 = $rctx;
$184 = $flags;
$185 = $key;
$186 = $keylen;
$187 = $seed;
$188 = $seedlen;
$189 = $dt;
$190 = $dtlen;
$191 = (__gcry_random_init_external_test($183,$184,$185,$186,$187,$188,$189,$190)|0);
$rc = $191;
$283 = $rc;
STACKTOP = sp;return ($283|0);
} else {
$rc = 176;
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
break;
}
case 59: {
$192 = $1;
$arglist_current48 = HEAP32[$192>>2]|0;
$193 = $arglist_current48;
$194 = ((0) + 4|0);
$expanded183 = $194;
$expanded182 = (($expanded183) - 1)|0;
$195 = (($193) + ($expanded182))|0;
$196 = ((0) + 4|0);
$expanded187 = $196;
$expanded186 = (($expanded187) - 1)|0;
$expanded185 = $expanded186 ^ -1;
$197 = $195 & $expanded185;
$198 = $197;
$199 = HEAP32[$198>>2]|0;
$arglist_next49 = ((($198)) + 4|0);
HEAP32[$192>>2] = $arglist_next49;
$ctx = $199;
$200 = $1;
$arglist_current51 = HEAP32[$200>>2]|0;
$201 = $arglist_current51;
$202 = ((0) + 4|0);
$expanded190 = $202;
$expanded189 = (($expanded190) - 1)|0;
$203 = (($201) + ($expanded189))|0;
$204 = ((0) + 4|0);
$expanded194 = $204;
$expanded193 = (($expanded194) - 1)|0;
$expanded192 = $expanded193 ^ -1;
$205 = $203 & $expanded192;
$206 = $205;
$207 = HEAP32[$206>>2]|0;
$arglist_next52 = ((($206)) + 4|0);
HEAP32[$200>>2] = $arglist_next52;
$buffer = $207;
$208 = $1;
$arglist_current54 = HEAP32[$208>>2]|0;
$209 = $arglist_current54;
$210 = ((0) + 4|0);
$expanded197 = $210;
$expanded196 = (($expanded197) - 1)|0;
$211 = (($209) + ($expanded196))|0;
$212 = ((0) + 4|0);
$expanded201 = $212;
$expanded200 = (($expanded201) - 1)|0;
$expanded199 = $expanded200 ^ -1;
$213 = $211 & $expanded199;
$214 = $213;
$215 = HEAP32[$214>>2]|0;
$arglist_next55 = ((($214)) + 4|0);
HEAP32[$208>>2] = $arglist_next55;
$buflen = $215;
$216 = (__gcry_global_is_operational()|0);
$217 = ($216|0)!=(0);
if ($217) {
$218 = $ctx;
$219 = $buffer;
$220 = $buflen;
$221 = (__gcry_random_run_external_test($218,$219,$220)|0);
$rc = $221;
$283 = $rc;
STACKTOP = sp;return ($283|0);
} else {
$rc = 176;
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
break;
}
case 60: {
$222 = $1;
$arglist_current57 = HEAP32[$222>>2]|0;
$223 = $arglist_current57;
$224 = ((0) + 4|0);
$expanded204 = $224;
$expanded203 = (($expanded204) - 1)|0;
$225 = (($223) + ($expanded203))|0;
$226 = ((0) + 4|0);
$expanded208 = $226;
$expanded207 = (($expanded208) - 1)|0;
$expanded206 = $expanded207 ^ -1;
$227 = $225 & $expanded206;
$228 = $227;
$229 = HEAP32[$228>>2]|0;
$arglist_next58 = ((($228)) + 4|0);
HEAP32[$222>>2] = $arglist_next58;
$ctx1 = $229;
$230 = $ctx1;
__gcry_random_deinit_external_test($230);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 61: {
$231 = $1;
$arglist_current60 = HEAP32[$231>>2]|0;
$232 = $arglist_current60;
$233 = ((0) + 4|0);
$expanded211 = $233;
$expanded210 = (($expanded211) - 1)|0;
$234 = (($232) + ($expanded210))|0;
$235 = ((0) + 4|0);
$expanded215 = $235;
$expanded214 = (($expanded215) - 1)|0;
$expanded213 = $expanded214 ^ -1;
$236 = $234 & $expanded213;
$237 = $236;
$238 = HEAP32[$237>>2]|0;
$arglist_next61 = ((($237)) + 4|0);
HEAP32[$231>>2] = $arglist_next61;
$239 = (_external_lock_test($238)|0);
$rc = $239;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 63: {
$240 = $1;
$arglist_current63 = HEAP32[$240>>2]|0;
$241 = $arglist_current63;
$242 = ((0) + 4|0);
$expanded218 = $242;
$expanded217 = (($expanded218) - 1)|0;
$243 = (($241) + ($expanded217))|0;
$244 = ((0) + 4|0);
$expanded222 = $244;
$expanded221 = (($expanded222) - 1)|0;
$expanded220 = $expanded221 ^ -1;
$245 = $243 & $expanded220;
$246 = $245;
$247 = HEAP32[$246>>2]|0;
$arglist_next64 = ((($246)) + 4|0);
HEAP32[$240>>2] = $arglist_next64;
$name = $247;
$248 = $name;
$249 = (__gcry_disable_hw_feature($248)|0);
$rc = $249;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 64: {
$250 = HEAP32[17667]|0;
$251 = ($250|0)!=(0);
if ($251) {
$rc = 1;
$283 = $rc;
STACKTOP = sp;return ($283|0);
} else {
__gcry_set_preferred_rng_type(0);
__gcry_set_enforced_fips_mode();
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
break;
}
case 65: {
$252 = $1;
$arglist_current66 = HEAP32[$252>>2]|0;
$253 = $arglist_current66;
$254 = ((0) + 4|0);
$expanded225 = $254;
$expanded224 = (($expanded225) - 1)|0;
$255 = (($253) + ($expanded224))|0;
$256 = ((0) + 4|0);
$expanded229 = $256;
$expanded228 = (($expanded229) - 1)|0;
$expanded227 = $expanded228 ^ -1;
$257 = $255 & $expanded227;
$258 = $257;
$259 = HEAP32[$258>>2]|0;
$arglist_next67 = ((($258)) + 4|0);
HEAP32[$252>>2] = $arglist_next67;
$i = $259;
$260 = $i;
$261 = ($260|0)>(0);
if (!($261)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$262 = $i;
__gcry_set_preferred_rng_type($262);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 66: {
$263 = $1;
$arglist_current69 = HEAP32[$263>>2]|0;
$264 = $arglist_current69;
$265 = ((0) + 4|0);
$expanded232 = $265;
$expanded231 = (($expanded232) - 1)|0;
$266 = (($264) + ($expanded231))|0;
$267 = ((0) + 4|0);
$expanded236 = $267;
$expanded235 = (($expanded236) - 1)|0;
$expanded234 = $expanded235 ^ -1;
$268 = $266 & $expanded234;
$269 = $268;
$270 = HEAP32[$269>>2]|0;
$arglist_next70 = ((($269)) + 4|0);
HEAP32[$263>>2] = $arglist_next70;
$ip = $270;
$271 = $ip;
$272 = ($271|0)!=(0|0);
if (!($272)) {
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
$273 = HEAP32[17667]|0;
$274 = ($273|0)!=(0);
$275 = $274 ^ 1;
$276 = $275&1;
$277 = (__gcry_get_rng_type($276)|0);
$278 = $ip;
HEAP32[$278>>2] = $277;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 67: {
__gcry_set_preferred_rng_type(0);
$279 = (__gcry_secmem_get_flags()|0);
$280 = $279 | 8;
__gcry_secmem_set_flags($280);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 68: {
__gcry_set_preferred_rng_type(0);
$281 = (__gcry_secmem_get_flags()|0);
$282 = $281 | 16;
__gcry_secmem_set_flags($282);
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 72: case 71: {
$rc = 69;
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
case 62: case 23: {
$283 = $rc;
STACKTOP = sp;return ($283|0);
break;
}
default: {
__gcry_set_preferred_rng_type(0);
$rc = 61;
$283 = $rc;
STACKTOP = sp;return ($283|0);
}
}
} while(0);
return (0)|0;
}
function _gpg_error_398($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_399(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make_399($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function _print_config($fnc,$fp) {
$fnc = $fnc|0;
$fp = $fp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $afeature = 0, $hwfeatures = 0, $i = 0, $s = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer23 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0;
var $vararg_buffer33 = 0, $vararg_buffer38 = 0, $vararg_buffer5 = 0, $vararg_buffer9 = 0, $vararg_ptr36 = 0, $vararg_ptr41 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer38 = sp + 88|0;
$vararg_buffer33 = sp + 80|0;
$vararg_buffer30 = sp + 72|0;
$vararg_buffer26 = sp + 64|0;
$vararg_buffer23 = sp + 56|0;
$vararg_buffer19 = sp + 48|0;
$vararg_buffer16 = sp + 40|0;
$vararg_buffer13 = sp + 32|0;
$vararg_buffer9 = sp + 24|0;
$vararg_buffer5 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$afeature = sp + 104|0;
$0 = $fnc;
$1 = $fp;
$2 = $0;
$3 = $1;
HEAP32[$vararg_buffer>>2] = 22353;
(FUNCTION_TABLE_iiii[$2 & 127]($3,22367,$vararg_buffer)|0);
$4 = $0;
$5 = $1;
HEAP32[$vararg_buffer1>>2] = 22393;
(FUNCTION_TABLE_iiii[$4 & 127]($5,22380,$vararg_buffer1)|0);
$6 = $0;
$7 = $1;
HEAP32[$vararg_buffer5>>2] = 22418;
(FUNCTION_TABLE_iiii[$6 & 127]($7,22405,$vararg_buffer5)|0);
$8 = $0;
$9 = $1;
HEAP32[$vararg_buffer9>>2] = 22439;
(FUNCTION_TABLE_iiii[$8 & 127]($9,22426,$vararg_buffer9)|0);
$10 = $0;
$11 = $1;
(FUNCTION_TABLE_iiii[$10 & 127]($11,22453,$vararg_buffer13)|0);
$12 = $0;
$13 = $1;
(FUNCTION_TABLE_iiii[$12 & 127]($13,22469,$vararg_buffer16)|0);
$14 = $0;
$15 = $1;
$16 = (__gcry_mpi_get_hw_config()|0);
HEAP32[$vararg_buffer19>>2] = $16;
(FUNCTION_TABLE_iiii[$14 & 127]($15,22481,$vararg_buffer19)|0);
$17 = (__gcry_get_hw_features()|0);
$hwfeatures = $17;
$18 = $0;
$19 = $1;
(FUNCTION_TABLE_iiii[$18 & 127]($19,22494,$vararg_buffer23)|0);
$i = 0;
while(1) {
$20 = $i;
$21 = (__gcry_enum_hw_features($20,$afeature)|0);
$s = $21;
$22 = ($21|0)!=(0|0);
if (!($22)) {
break;
}
$23 = $hwfeatures;
$24 = HEAP32[$afeature>>2]|0;
$25 = $23 & $24;
$26 = ($25|0)!=(0);
if ($26) {
$27 = $0;
$28 = $1;
$29 = $s;
HEAP32[$vararg_buffer26>>2] = $29;
(FUNCTION_TABLE_iiii[$27 & 127]($28,22503,$vararg_buffer26)|0);
}
$30 = $i;
$31 = (($30) + 1)|0;
$i = $31;
}
$32 = $0;
$33 = $1;
(FUNCTION_TABLE_iiii[$32 & 127]($33,22507,$vararg_buffer30)|0);
$34 = $0;
$35 = $1;
$36 = (__gcry_fips_mode()|0);
$37 = ($36|0)!=(0);
$38 = $37 ? 121 : 110;
$39 = (__gcry_enforced_fips_mode()|0);
$40 = ($39|0)!=(0);
$41 = $40 ? 121 : 110;
HEAP32[$vararg_buffer33>>2] = $38;
$vararg_ptr36 = ((($vararg_buffer33)) + 4|0);
HEAP32[$vararg_ptr36>>2] = $41;
(FUNCTION_TABLE_iiii[$34 & 127]($35,22509,$vararg_buffer33)|0);
$42 = (__gcry_get_rng_type(0)|0);
$i = $42;
$43 = $i;
switch ($43|0) {
case 1: {
$s = 22527;
$44 = $0;
$45 = $1;
$46 = $s;
$47 = $i;
HEAP32[$vararg_buffer38>>2] = $46;
$vararg_ptr41 = ((($vararg_buffer38)) + 4|0);
HEAP32[$vararg_ptr41>>2] = $47;
(FUNCTION_TABLE_iiii[$44 & 127]($45,22561,$vararg_buffer38)|0);
STACKTOP = sp;return;
break;
}
case 2: {
$s = 22536;
$44 = $0;
$45 = $1;
$46 = $s;
$47 = $i;
HEAP32[$vararg_buffer38>>2] = $46;
$vararg_ptr41 = ((($vararg_buffer38)) + 4|0);
HEAP32[$vararg_ptr41>>2] = $47;
(FUNCTION_TABLE_iiii[$44 & 127]($45,22561,$vararg_buffer38)|0);
STACKTOP = sp;return;
break;
}
case 3: {
$s = 22541;
$44 = $0;
$45 = $1;
$46 = $s;
$47 = $i;
HEAP32[$vararg_buffer38>>2] = $46;
$vararg_ptr41 = ((($vararg_buffer38)) + 4|0);
HEAP32[$vararg_ptr41>>2] = $47;
(FUNCTION_TABLE_iiii[$44 & 127]($45,22561,$vararg_buffer38)|0);
STACKTOP = sp;return;
break;
}
default: {
__gcry_bug(22332,321,22548);
// unreachable;
}
}
}
function _external_lock_test($cmd) {
$cmd = $cmd|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $cmd;
$rc = 0;
$1 = $0;
switch ($1|0) {
case 30111: {
$2 = (_gpgrt_lock_init(1080)|0);
$rc = $2;
break;
}
case 30112: {
$3 = (_gpgrt_lock_lock(1080)|0);
$rc = $3;
break;
}
case 30113: {
$4 = (_gpgrt_lock_unlock(1080)|0);
$rc = $4;
break;
}
case 30114: {
$5 = (_gpgrt_lock_destroy(1080)|0);
$rc = $5;
break;
}
default: {
$rc = 61;
}
}
$6 = $rc;
STACKTOP = sp;return ($6|0);
}
function __gcry_malloc($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $2 = 0, $mem = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$mem = sp;
$0 = $n;
HEAP32[$mem>>2] = 0;
$1 = $0;
(_do_malloc($1,0,$mem)|0);
$2 = HEAP32[$mem>>2]|0;
STACKTOP = sp;return ($2|0);
}
function _do_malloc($n,$flags,$mem) {
$n = $n|0;
$flags = $flags|0;
$mem = $mem|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $m = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
$1 = $flags;
$2 = $mem;
$err = 0;
$3 = $1;
$4 = $3 & 1;
$5 = ($4|0)!=(0);
do {
if ($5) {
$6 = (_get_no_secure_memory()|0);
$7 = ($6|0)!=(0);
if ($7) {
label = 6;
} else {
$8 = HEAP32[17673]|0;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = HEAP32[17673]|0;
$11 = $0;
$12 = (FUNCTION_TABLE_ii[$10 & 63]($11)|0);
$m = $12;
break;
} else {
$13 = $0;
$14 = (__gcry_private_malloc_secure($13)|0);
$m = $14;
break;
}
}
} else {
label = 6;
}
} while(0);
do {
if ((label|0) == 6) {
$15 = HEAP32[17672]|0;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = HEAP32[17672]|0;
$18 = $0;
$19 = (FUNCTION_TABLE_ii[$17 & 63]($18)|0);
$m = $19;
break;
} else {
$20 = $0;
$21 = (__gcry_private_malloc($20)|0);
$m = $21;
break;
}
}
} while(0);
$22 = $m;
$23 = ($22|0)!=(0|0);
if ($23) {
$30 = $m;
$31 = $2;
HEAP32[$31>>2] = $30;
$32 = $err;
STACKTOP = sp;return ($32|0);
}
$24 = (___errno_location()|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($25|0)!=(0);
if (!($26)) {
_gpg_err_set_errno(12);
}
$27 = (___errno_location()|0);
$28 = HEAP32[$27>>2]|0;
$29 = (_gpg_err_code_from_errno($28)|0);
$err = $29;
$32 = $err;
STACKTOP = sp;return ($32|0);
}
function _get_no_secure_memory() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = HEAP32[17669]|0;
$2 = ($1|0)!=(0);
do {
if ($2) {
$3 = (__gcry_enforced_fips_mode()|0);
$4 = ($3|0)!=(0);
if ($4) {
HEAP32[17669] = 0;
$0 = 0;
break;
} else {
$5 = HEAP32[17669]|0;
$0 = $5;
break;
}
} else {
$0 = 0;
}
} while(0);
$6 = $0;
STACKTOP = sp;return ($6|0);
}
function __gcry_malloc_secure($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $2 = 0, $mem = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$mem = sp;
$0 = $n;
HEAP32[$mem>>2] = 0;
$1 = $0;
(_do_malloc($1,1,$mem)|0);
$2 = HEAP32[$mem>>2]|0;
STACKTOP = sp;return ($2|0);
}
function __gcry_is_secure($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = (_get_no_secure_memory()|0);
$3 = ($2|0)!=(0);
do {
if ($3) {
$0 = 0;
} else {
$4 = HEAP32[17674]|0;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = HEAP32[17674]|0;
$7 = $1;
$8 = (FUNCTION_TABLE_ii[$6 & 63]($7)|0);
$0 = $8;
break;
} else {
$9 = $1;
$10 = (__gcry_private_is_secure($9)|0);
$0 = $10;
break;
}
}
} while(0);
$11 = $0;
STACKTOP = sp;return ($11|0);
}
function __gcry_realloc($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $n;
$3 = $1;
$4 = ($3|0)!=(0|0);
$5 = $2;
if (!($4)) {
$6 = (__gcry_malloc($5)|0);
$0 = $6;
$24 = $0;
STACKTOP = sp;return ($24|0);
}
$7 = ($5|0)!=(0);
if (!($7)) {
$8 = $1;
__gcry_free($8);
$0 = 0;
$24 = $0;
STACKTOP = sp;return ($24|0);
}
$9 = HEAP32[17675]|0;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = HEAP32[17675]|0;
$12 = $1;
$13 = $2;
$14 = (FUNCTION_TABLE_iii[$11 & 127]($12,$13)|0);
$p = $14;
} else {
$15 = $1;
$16 = $2;
$17 = (__gcry_private_realloc($15,$16)|0);
$p = $17;
}
$18 = $p;
$19 = ($18|0)!=(0|0);
if (!($19)) {
$20 = (___errno_location()|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)!=(0);
if (!($22)) {
_gpg_err_set_errno(12);
}
}
$23 = $p;
$0 = $23;
$24 = $0;
STACKTOP = sp;return ($24|0);
}
function __gcry_free($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $save_errno = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = (___errno_location()|0);
$4 = HEAP32[$3>>2]|0;
$save_errno = $4;
$5 = HEAP32[17676]|0;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = HEAP32[17676]|0;
$8 = $0;
FUNCTION_TABLE_vi[$7 & 127]($8);
} else {
$9 = $0;
__gcry_private_free($9);
}
$10 = $save_errno;
$11 = ($10|0)!=(0);
if (!($11)) {
STACKTOP = sp;return;
}
$12 = $save_errno;
_gpg_err_set_errno($12);
STACKTOP = sp;return;
}
function __gcry_calloc($n,$m) {
$n = $n|0;
$m = $m|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $bytes = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $n;
$2 = $m;
$3 = $1;
$4 = $2;
$5 = Math_imul($3, $4)|0;
$bytes = $5;
$6 = $2;
$7 = ($6|0)!=(0);
if ($7) {
$8 = $bytes;
$9 = $2;
$10 = (($8>>>0) / ($9>>>0))&-1;
$11 = $1;
$12 = ($10|0)!=($11|0);
if ($12) {
_gpg_err_set_errno(12);
$0 = 0;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
}
$13 = $bytes;
$14 = (__gcry_malloc($13)|0);
$p = $14;
$15 = $p;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $p;
$18 = $bytes;
_memset(($17|0),0,($18|0))|0;
}
$19 = $p;
$0 = $19;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
function __gcry_calloc_secure($n,$m) {
$n = $n|0;
$m = $m|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $bytes = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $n;
$2 = $m;
$3 = $1;
$4 = $2;
$5 = Math_imul($3, $4)|0;
$bytes = $5;
$6 = $2;
$7 = ($6|0)!=(0);
if ($7) {
$8 = $bytes;
$9 = $2;
$10 = (($8>>>0) / ($9>>>0))&-1;
$11 = $1;
$12 = ($10|0)!=($11|0);
if ($12) {
_gpg_err_set_errno(12);
$0 = 0;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
}
$13 = $bytes;
$14 = (__gcry_malloc_secure($13)|0);
$p = $14;
$15 = $p;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $p;
$18 = $bytes;
_memset(($17|0),0,($18|0))|0;
}
$19 = $p;
$0 = $19;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
function __gcry_strdup($string) {
$string = $string|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $string_cp = 0, $string_n = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $string;
$string_cp = 0;
$string_n = 0;
$1 = $0;
$2 = (_strlen($1)|0);
$string_n = $2;
$3 = $0;
$4 = (__gcry_is_secure($3)|0);
$5 = ($4|0)!=(0);
$6 = $string_n;
$7 = (($6) + 1)|0;
if ($5) {
$8 = (__gcry_malloc_secure($7)|0);
$string_cp = $8;
} else {
$9 = (__gcry_malloc($7)|0);
$string_cp = $9;
}
$10 = $string_cp;
$11 = ($10|0)!=(0|0);
if (!($11)) {
$14 = $string_cp;
STACKTOP = sp;return ($14|0);
}
$12 = $string_cp;
$13 = $0;
(_strcpy($12,$13)|0);
$14 = $string_cp;
STACKTOP = sp;return ($14|0);
}
function __gcry_xmalloc($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $p = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
while(1) {
$1 = $0;
$2 = (__gcry_malloc($1)|0);
$p = $2;
$3 = ($2|0)!=(0|0);
$4 = $3 ^ 1;
if (!($4)) {
label = 6;
break;
}
$5 = (__gcry_fips_mode()|0);
$6 = ($5|0)==(0);
$7 = HEAP32[17677]|0;
$8 = ($7|0)!=(0|0);
$or$cond = $6 & $8;
if (!($or$cond)) {
label = 5;
break;
}
$9 = HEAP32[17677]|0;
$10 = HEAP32[17678]|0;
$11 = $0;
$12 = (FUNCTION_TABLE_iiii[$9 & 127]($10,$11,0)|0);
$13 = ($12|0)!=(0);
if (!($13)) {
label = 5;
break;
}
}
if ((label|0) == 5) {
$14 = (___errno_location()|0);
$15 = HEAP32[$14>>2]|0;
$16 = (_gpg_err_code_from_errno($15)|0);
__gcry_fatal_error($16,0);
// unreachable;
}
else if ((label|0) == 6) {
$17 = $p;
STACKTOP = sp;return ($17|0);
}
return (0)|0;
}
function __gcry_xrealloc($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $n;
while(1) {
$2 = $0;
$3 = $1;
$4 = (__gcry_realloc($2,$3)|0);
$p = $4;
$5 = ($4|0)!=(0|0);
$6 = $5 ^ 1;
if (!($6)) {
label = 6;
break;
}
$7 = (__gcry_fips_mode()|0);
$8 = ($7|0)==(0);
$9 = HEAP32[17677]|0;
$10 = ($9|0)!=(0|0);
$or$cond = $8 & $10;
if (!($or$cond)) {
label = 5;
break;
}
$11 = HEAP32[17677]|0;
$12 = HEAP32[17678]|0;
$13 = $1;
$14 = $0;
$15 = (__gcry_is_secure($14)|0);
$16 = ($15|0)!=(0);
$17 = $16 ? 3 : 2;
$18 = (FUNCTION_TABLE_iiii[$11 & 127]($12,$13,$17)|0);
$19 = ($18|0)!=(0);
if (!($19)) {
label = 5;
break;
}
}
if ((label|0) == 5) {
$20 = (___errno_location()|0);
$21 = HEAP32[$20>>2]|0;
$22 = (_gpg_err_code_from_errno($21)|0);
__gcry_fatal_error($22,0);
// unreachable;
}
else if ((label|0) == 6) {
$23 = $p;
STACKTOP = sp;return ($23|0);
}
return (0)|0;
}
function __gcry_xmalloc_secure($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0;
var $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
while(1) {
$1 = $0;
$2 = (__gcry_malloc_secure($1)|0);
$p = $2;
$3 = ($2|0)!=(0|0);
$4 = $3 ^ 1;
if (!($4)) {
label = 6;
break;
}
$5 = (__gcry_fips_mode()|0);
$6 = ($5|0)==(0);
$7 = HEAP32[17677]|0;
$8 = ($7|0)!=(0|0);
$or$cond = $6 & $8;
if (!($or$cond)) {
label = 5;
break;
}
$9 = HEAP32[17677]|0;
$10 = HEAP32[17678]|0;
$11 = $0;
$12 = (FUNCTION_TABLE_iiii[$9 & 127]($10,$11,1)|0);
$13 = ($12|0)!=(0);
if (!($13)) {
label = 5;
break;
}
}
if ((label|0) == 5) {
$14 = (___errno_location()|0);
$15 = HEAP32[$14>>2]|0;
$16 = (_gpg_err_code_from_errno($15)|0);
$17 = (__gcry_gettext(22578)|0);
__gcry_fatal_error($16,$17);
// unreachable;
}
else if ((label|0) == 6) {
$18 = $p;
STACKTOP = sp;return ($18|0);
}
return (0)|0;
}
function __gcry_xcalloc($n,$m) {
$n = $n|0;
$m = $m|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $nbytes = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
$1 = $m;
$2 = $0;
$3 = $1;
$4 = Math_imul($2, $3)|0;
$nbytes = $4;
$5 = $1;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $nbytes;
$8 = $1;
$9 = (($7>>>0) / ($8>>>0))&-1;
$10 = $0;
$11 = ($9|0)!=($10|0);
if ($11) {
_gpg_err_set_errno(12);
$12 = (___errno_location()|0);
$13 = HEAP32[$12>>2]|0;
$14 = (_gpg_err_code_from_errno($13)|0);
__gcry_fatal_error($14,0);
// unreachable;
}
}
$15 = $nbytes;
$16 = (__gcry_xmalloc($15)|0);
$p = $16;
$17 = $p;
$18 = $nbytes;
_memset(($17|0),0,($18|0))|0;
$19 = $p;
STACKTOP = sp;return ($19|0);
}
function __gcry_xcalloc_secure($n,$m) {
$n = $n|0;
$m = $m|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $nbytes = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
$1 = $m;
$2 = $0;
$3 = $1;
$4 = Math_imul($2, $3)|0;
$nbytes = $4;
$5 = $1;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $nbytes;
$8 = $1;
$9 = (($7>>>0) / ($8>>>0))&-1;
$10 = $0;
$11 = ($9|0)!=($10|0);
if ($11) {
_gpg_err_set_errno(12);
$12 = (___errno_location()|0);
$13 = HEAP32[$12>>2]|0;
$14 = (_gpg_err_code_from_errno($13)|0);
__gcry_fatal_error($14,0);
// unreachable;
}
}
$15 = $nbytes;
$16 = (__gcry_xmalloc_secure($15)|0);
$p = $16;
$17 = $p;
$18 = $nbytes;
_memset(($17|0),0,($18|0))|0;
$19 = $p;
STACKTOP = sp;return ($19|0);
}
function __gcry_xstrdup($string) {
$string = $string|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $is_sec = 0, $n = 0, $or$cond = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $string;
while(1) {
$1 = $0;
$2 = (__gcry_strdup($1)|0);
$p = $2;
$3 = ($2|0)!=(0|0);
$4 = $3 ^ 1;
if (!($4)) {
label = 8;
break;
}
$5 = $0;
$6 = (_strlen($5)|0);
$n = $6;
$7 = $0;
$8 = (__gcry_is_secure($7)|0);
$9 = ($8|0)!=(0);
$10 = $9 ^ 1;
$11 = $10 ^ 1;
$12 = $11&1;
$is_sec = $12;
$13 = (__gcry_fips_mode()|0);
$14 = ($13|0)==(0);
$15 = HEAP32[17677]|0;
$16 = ($15|0)!=(0|0);
$or$cond = $14 & $16;
if (!($or$cond)) {
break;
}
$17 = HEAP32[17677]|0;
$18 = HEAP32[17678]|0;
$19 = $n;
$20 = $is_sec;
$21 = (FUNCTION_TABLE_iiii[$17 & 127]($18,$19,$20)|0);
$22 = ($21|0)!=(0);
if (!($22)) {
break;
}
}
if ((label|0) == 8) {
$30 = $p;
STACKTOP = sp;return ($30|0);
}
$23 = (___errno_location()|0);
$24 = HEAP32[$23>>2]|0;
$25 = (_gpg_err_code_from_errno($24)|0);
$26 = $is_sec;
$27 = ($26|0)!=(0);
if (!($27)) {
$29 = 0;
__gcry_fatal_error($25,$29);
// unreachable;
}
$28 = (__gcry_gettext(22578)|0);
$29 = $28;
__gcry_fatal_error($25,$29);
// unreachable;
return (0)|0;
}
function __gcry_get_debug_flag($mask) {
$mask = $mask|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $mask;
$2 = (__gcry_fips_mode()|0);
$3 = ($2|0)!=(0);
if ($3) {
$0 = 0;
} else {
$4 = HEAP32[17670]|0;
$5 = $1;
$6 = $4 & $5;
$0 = $6;
}
$7 = $0;
STACKTOP = sp;return ($7|0);
}
function __gcry_set_progress_handler($cb,$cb_data) {
$cb = $cb|0;
$cb_data = $cb_data|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $cb;
$1 = $cb_data;
$2 = $0;
$3 = $1;
__gcry_register_primegen_progress($2,$3);
$4 = $0;
$5 = $1;
__gcry_register_random_progress($4,$5);
STACKTOP = sp;return;
}
function __gcry_sexp_create($retsexp,$buffer,$length,$autodetect,$freefnc) {
$retsexp = $retsexp|0;
$buffer = $buffer|0;
$length = $length|0;
$autodetect = $autodetect|0;
$freefnc = $freefnc|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $errcode = 0, $or$cond = 0, $or$cond$not = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $se = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$errcode = sp + 8|0;
$se = sp + 4|0;
$1 = $retsexp;
$2 = $buffer;
$3 = $length;
$4 = $autodetect;
$5 = $freefnc;
$6 = $1;
$7 = ($6|0)!=(0|0);
if (!($7)) {
$0 = 45;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
$8 = $1;
HEAP32[$8>>2] = 0;
$9 = $4;
$10 = ($9|0)<(0);
$11 = $4;
$12 = ($11|0)>(1);
$or$cond = $10 | $12;
$or$cond$not = $or$cond ^ 1;
$13 = $2;
$14 = ($13|0)!=(0|0);
$or$cond3 = $or$cond$not & $14;
if (!($or$cond3)) {
$0 = 45;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
$15 = $3;
$16 = ($15|0)!=(0);
$17 = $4;
$18 = ($17|0)!=(0);
$or$cond5 = $16 | $18;
if ($or$cond5) {
$24 = $3;
$25 = ($24|0)==(0);
$26 = $4;
$27 = ($26|0)!=(0);
$or$cond7 = $25 & $27;
if ($or$cond7) {
$28 = $2;
$29 = (_strlen($28)|0);
$3 = $29;
}
} else {
$19 = $2;
$20 = (__gcry_sexp_canon_len($19,0,0,$errcode)|0);
$3 = $20;
$21 = $3;
$22 = ($21|0)!=(0);
if (!($22)) {
$23 = HEAP32[$errcode>>2]|0;
$0 = $23;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
}
$30 = $2;
$31 = $3;
$32 = (_do_sexp_sscan($se,0,$30,$31,0,0,$vararg_buffer)|0);
HEAP32[$errcode>>2] = $32;
$33 = HEAP32[$errcode>>2]|0;
$34 = ($33|0)!=(0);
if ($34) {
$35 = HEAP32[$errcode>>2]|0;
$0 = $35;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
$36 = HEAP32[$se>>2]|0;
$37 = $1;
HEAP32[$37>>2] = $36;
$38 = $5;
$39 = ($38|0)!=(0|0);
if ($39) {
$40 = $5;
$41 = $2;
FUNCTION_TABLE_vi[$40 & 127]($41);
}
$0 = 0;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
function __gcry_sexp_canon_len($buffer,$length,$erroff,$errcode) {
$buffer = $buffer|0;
$length = $length|0;
$erroff = $erroff|0;
$errcode = $errcode|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $count = 0, $datalen = 0, $disphint = 0, $dummy_errcode = 0, $dummy_erroff = 0, $level = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$dummy_erroff = sp + 12|0;
$dummy_errcode = sp + 8|0;
$1 = $buffer;
$2 = $length;
$3 = $erroff;
$4 = $errcode;
$disphint = 0;
$datalen = 0;
$count = 0;
$level = 0;
$5 = $3;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$3 = $dummy_erroff;
}
$7 = $4;
$8 = ($7|0)!=(0|0);
if (!($8)) {
$4 = $dummy_errcode;
}
$9 = $4;
HEAP32[$9>>2] = 0;
$10 = $3;
HEAP32[$10>>2] = 0;
$11 = $1;
$12 = ($11|0)!=(0|0);
if (!($12)) {
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
}
$13 = $1;
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = ($15|0)!=(40);
if ($16) {
$17 = $4;
HEAP32[$17>>2] = 204;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
}
$18 = $1;
$p = $18;
L15: while(1) {
$19 = $2;
$20 = ($19|0)!=(0);
if ($20) {
$21 = $count;
$22 = $2;
$23 = ($21>>>0)>=($22>>>0);
if ($23) {
label = 12;
break;
}
}
$27 = $datalen;
$28 = ($27|0)!=(0);
$29 = $p;
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
do {
if ($28) {
$32 = ($31|0)==(58);
if ($32) {
$33 = $2;
$34 = ($33|0)!=(0);
if ($34) {
$35 = $count;
$36 = $datalen;
$37 = (($35) + ($36))|0;
$38 = $2;
$39 = ($37>>>0)>=($38>>>0);
if ($39) {
label = 17;
break L15;
}
}
$43 = $datalen;
$44 = $count;
$45 = (($44) + ($43))|0;
$count = $45;
$46 = $datalen;
$47 = $p;
$48 = (($47) + ($46)|0);
$p = $48;
$datalen = 0;
break;
} else {
$49 = $p;
$50 = HEAP8[$49>>0]|0;
$51 = $50&255;
$52 = ($51|0)>=(48);
if (!($52)) {
label = 22;
break L15;
}
$53 = $p;
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = ($55|0)<=(57);
if (!($56)) {
label = 22;
break L15;
}
$57 = $datalen;
$58 = ($57*10)|0;
$59 = $p;
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = (($61) - 48)|0;
$63 = (($58) + ($62))|0;
$datalen = $63;
break;
}
} else {
$67 = ($31|0)==(40);
if ($67) {
$68 = $disphint;
$69 = ($68|0)!=(0|0);
if ($69) {
label = 25;
break L15;
}
$73 = $level;
$74 = (($73) + 1)|0;
$level = $74;
break;
}
$75 = $p;
$76 = HEAP8[$75>>0]|0;
$77 = $76&255;
$78 = ($77|0)==(41);
if ($78) {
$79 = $level;
$80 = ($79|0)!=(0);
if (!($80)) {
label = 29;
break L15;
}
$84 = $disphint;
$85 = ($84|0)!=(0|0);
if ($85) {
label = 31;
break L15;
}
$89 = $level;
$90 = (($89) + -1)|0;
$level = $90;
$91 = ($90|0)!=(0);
if ($91) {
break;
} else {
label = 33;
break L15;
}
}
$94 = $p;
$95 = HEAP8[$94>>0]|0;
$96 = $95&255;
$97 = ($96|0)==(91);
if ($97) {
$98 = $disphint;
$99 = ($98|0)!=(0|0);
if ($99) {
label = 36;
break L15;
}
$103 = $p;
$disphint = $103;
break;
}
$104 = $p;
$105 = HEAP8[$104>>0]|0;
$106 = $105&255;
$107 = ($106|0)==(93);
if ($107) {
$108 = $disphint;
$109 = ($108|0)!=(0|0);
if (!($109)) {
label = 40;
break L15;
}
$disphint = 0;
break;
}
$113 = $p;
$114 = HEAP8[$113>>0]|0;
$115 = $114&255;
$116 = ($115|0)>=(48);
if (!($116)) {
label = 47;
break L15;
}
$117 = $p;
$118 = HEAP8[$117>>0]|0;
$119 = $118&255;
$120 = ($119|0)<=(57);
if (!($120)) {
label = 47;
break L15;
}
$121 = $p;
$122 = HEAP8[$121>>0]|0;
$123 = $122&255;
$124 = ($123|0)==(48);
if ($124) {
label = 45;
break L15;
}
$128 = $p;
$129 = HEAP8[$128>>0]|0;
$130 = $129&255;
$131 = (($130) - 48)|0;
$datalen = $131;
}
} while(0);
$146 = $p;
$147 = ((($146)) + 1|0);
$p = $147;
$148 = $count;
$149 = (($148) + 1)|0;
$count = $149;
}
switch (label|0) {
case 12: {
$24 = $count;
$25 = $3;
HEAP32[$25>>2] = $24;
$26 = $4;
HEAP32[$26>>2] = 202;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 17: {
$40 = $count;
$41 = $3;
HEAP32[$41>>2] = $40;
$42 = $4;
HEAP32[$42>>2] = 202;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 22: {
$64 = $count;
$65 = $3;
HEAP32[$65>>2] = $64;
$66 = $4;
HEAP32[$66>>2] = 201;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 25: {
$70 = $count;
$71 = $3;
HEAP32[$71>>2] = $70;
$72 = $4;
HEAP32[$72>>2] = 209;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 29: {
$81 = $count;
$82 = $3;
HEAP32[$82>>2] = $81;
$83 = $4;
HEAP32[$83>>2] = 203;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 31: {
$86 = $count;
$87 = $3;
HEAP32[$87>>2] = $86;
$88 = $4;
HEAP32[$88>>2] = 209;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 33: {
$92 = $count;
$93 = (($92) + 1)|0;
$count = $93;
$0 = $93;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 36: {
$100 = $count;
$101 = $3;
HEAP32[$101>>2] = $100;
$102 = $4;
HEAP32[$102>>2] = 208;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 40: {
$110 = $count;
$111 = $3;
HEAP32[$111>>2] = $110;
$112 = $4;
HEAP32[$112>>2] = 209;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 45: {
$125 = $count;
$126 = $3;
HEAP32[$126>>2] = $125;
$127 = $4;
HEAP32[$127>>2] = 207;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 47: {
$132 = $p;
$133 = HEAP8[$132>>0]|0;
$134 = $133&255;
$135 = ($134|0)==(38);
if (!($135)) {
$136 = $p;
$137 = HEAP8[$136>>0]|0;
$138 = $137&255;
$139 = ($138|0)==(92);
if (!($139)) {
$143 = $count;
$144 = $3;
HEAP32[$144>>2] = $143;
$145 = $4;
HEAP32[$145>>2] = 205;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
}
}
$140 = $count;
$141 = $3;
HEAP32[$141>>2] = $140;
$142 = $4;
HEAP32[$142>>2] = 210;
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
}
return (0)|0;
}
function _do_sexp_sscan($retsexp,$erroff,$buffer,$length,$argflag,$arg_list,$varargs) {
$retsexp = $retsexp|0;
$erroff = $erroff|0;
$buffer = $buffer|0;
$length = $length|0;
$argflag = $argflag|0;
$arg_list = $arg_list|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arg_ptr = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $retsexp;
$1 = $erroff;
$2 = $buffer;
$3 = $length;
$4 = $argflag;
$5 = $arg_list;
HEAP32[$arg_ptr>>2] = $varargs;
$6 = $0;
$7 = $1;
$8 = $2;
$9 = $3;
$10 = $4;
$11 = $5;
$12 = (_do_vsexp_sscan($6,$7,$8,$9,$10,$11,$arg_ptr)|0);
$rc = $12;
$13 = $rc;
STACKTOP = sp;return ($13|0);
}
function _do_vsexp_sscan($retsexp,$erroff,$buffer,$length,$argflag,$arg_list,$arg_ptr) {
$retsexp = $retsexp|0;
$erroff = $erroff|0;
$buffer = $buffer|0;
$length = $length|0;
$argflag = $argflag|0;
$arg_list = $arg_list|0;
$arg_ptr = $arg_ptr|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0;
var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0;
var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0;
var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0;
var $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0;
var $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0;
var $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0;
var $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0;
var $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0;
var $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0;
var $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0;
var $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0;
var $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0;
var $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0;
var $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0;
var $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0;
var $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0;
var $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0;
var $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0;
var $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0;
var $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0;
var $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0;
var $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0;
var $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0;
var $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0;
var $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0;
var $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0;
var $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0;
var $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0;
var $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0;
var $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0;
var $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0;
var $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0;
var $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0;
var $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0;
var $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0;
var $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0;
var $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0;
var $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0;
var $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0;
var $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0;
var $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0;
var $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0;
var $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0;
var $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0;
var $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0;
var $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0;
var $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0;
var $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $_ms_err = 0, $_ms_err1 = 0, $_ms_err10 = 0, $_ms_err14 = 0, $_ms_err18 = 0, $_ms_err23 = 0, $_ms_err28 = 0, $_ms_err31 = 0, $_ms_err32 = 0, $_ms_err33 = 0, $_ms_err34 = 0, $_ms_err4 = 0;
var $_ms_err6 = 0, $_ms_err8 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $aint = 0, $aint25 = 0, $alen = 0, $alen17 = 0, $alen22 = 0, $alen26 = 0, $alen30 = 0, $aoff = 0, $arg_counter = 0, $arglist_current = 0, $arglist_current10 = 0, $arglist_current13 = 0, $arglist_current16 = 0;
var $arglist_current19 = 0, $arglist_current25 = 0, $arglist_current7 = 0, $arglist_next = 0, $arglist_next11 = 0, $arglist_next14 = 0, $arglist_next17 = 0, $arglist_next20 = 0, $arglist_next26 = 0, $arglist_next8 = 0, $asexp = 0, $ashort = 0, $ashort13 = 0, $ashort15 = 0, $ashort2 = 0, $ashort21 = 0, $ashort24 = 0, $ashort29 = 0, $ashort3 = 0, $ashort5 = 0;
var $ashort7 = 0, $ashort9 = 0, $astr = 0, $astr16 = 0, $base64 = 0, $buf = 0, $buf27 = 0, $c = 0, $datalen = 0, $digptr = 0, $disphint = 0, $dummy_erroff = 0, $err = 0, $expanded = 0, $expanded27 = 0, $expanded29 = 0, $expanded30 = 0, $expanded31 = 0, $expanded33 = 0, $expanded34 = 0;
var $expanded36 = 0, $expanded37 = 0, $expanded38 = 0, $expanded40 = 0, $expanded41 = 0, $expanded43 = 0, $expanded44 = 0, $expanded45 = 0, $expanded47 = 0, $expanded48 = 0, $expanded50 = 0, $expanded51 = 0, $expanded52 = 0, $expanded54 = 0, $expanded55 = 0, $expanded57 = 0, $expanded58 = 0, $expanded59 = 0, $expanded61 = 0, $expanded62 = 0;
var $expanded64 = 0, $expanded65 = 0, $expanded66 = 0, $expanded68 = 0, $expanded69 = 0, $expanded71 = 0, $expanded72 = 0, $expanded73 = 0, $hexcount = 0, $hexfmt = 0, $len = 0, $level = 0, $m = 0, $mp = 0, $mpifmt = 0, $n = 0, $nbits = 0, $newhead = 0, $newhead12 = 0, $newhead20 = 0;
var $newsexp = 0, $newsexp11 = 0, $newsexp19 = 0, $nm = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $p = 0, $percent = 0, $quoted = 0, $quoted_esc = 0, $save = 0, $tmpc = 0, $tokenp = 0, $vararg_buffer = 0, $vararg_buffer21 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 400|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer21 = sp + 16|0;
$vararg_buffer = sp + 8|0;
$dummy_erroff = sp + 208|0;
$c = sp + 196|0;
$ashort = sp + 316|0;
$ashort2 = sp + 314|0;
$ashort3 = sp + 312|0;
$ashort5 = sp + 310|0;
$ashort7 = sp + 308|0;
$nm = sp + 152|0;
$nbits = sp + 140|0;
$ashort9 = sp + 306|0;
$ashort13 = sp + 304|0;
$ashort15 = sp + 302|0;
$ashort21 = sp + 300|0;
$buf = sp + 354|0;
$ashort24 = sp + 298|0;
$buf27 = sp + 319|0;
$ashort29 = sp + 296|0;
$aoff = sp + 48|0;
$_vset_long = sp;
$1 = $retsexp;
$2 = $erroff;
$3 = $buffer;
$4 = $length;
$5 = $argflag;
$6 = $arg_list;
$7 = $arg_ptr;
$err = 0;
$digptr = 0;
$quoted = 0;
$tokenp = 0;
$hexfmt = 0;
$base64 = 0;
$disphint = 0;
$percent = 0;
$hexcount = 0;
$quoted_esc = 0;
$datalen = 0;
$arg_counter = 0;
$level = 0;
$8 = $1;
$9 = ($8|0)!=(0|0);
if (!($9)) {
$0 = 45;
$1187 = $0;
STACKTOP = sp;return ($1187|0);
}
$10 = $1;
HEAP32[$10>>2] = 0;
$11 = $3;
$12 = ($11|0)!=(0|0);
if (!($12)) {
$0 = 45;
$1187 = $0;
STACKTOP = sp;return ($1187|0);
}
$13 = $2;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$2 = $dummy_erroff;
}
$15 = $4;
$16 = (($15) + 2)|0;
$17 = ((($c)) + 4|0);
HEAP32[$17>>2] = $16;
$18 = $4;
$19 = ($18|0)!=(0);
if ($19) {
$20 = $3;
$21 = (__gcry_is_secure($20)|0);
$22 = ($21|0)!=(0);
if ($22) {
$23 = ((($c)) + 4|0);
$24 = HEAP32[$23>>2]|0;
$25 = (1 + ($24))|0;
$26 = (($25) - 1)|0;
$27 = (__gcry_malloc_secure($26)|0);
HEAP32[$c>>2] = $27;
} else {
label = 10;
}
} else {
label = 10;
}
if ((label|0) == 10) {
$28 = ((($c)) + 4|0);
$29 = HEAP32[$28>>2]|0;
$30 = (1 + ($29))|0;
$31 = (($30) - 1)|0;
$32 = (__gcry_malloc($31)|0);
HEAP32[$c>>2] = $32;
}
$33 = HEAP32[$c>>2]|0;
$34 = ($33|0)!=(0|0);
L18: do {
if ($34) {
$39 = HEAP32[$c>>2]|0;
$40 = ((($c)) + 8|0);
HEAP32[$40>>2] = $39;
$41 = $3;
$p = $41;
$42 = $4;
$n = $42;
L20: while(1) {
$43 = $n;
$44 = ($43|0)!=(0);
if (!($44)) {
label = 220;
break;
}
$45 = $tokenp;
$46 = ($45|0)==(0|0);
$47 = $hexfmt;
$48 = ($47|0)!=(0|0);
$or$cond = $46 | $48;
if ($or$cond) {
label = 20;
} else {
$49 = $p;
$50 = HEAP8[$49>>0]|0;
$51 = $50 << 24 >> 24;
$52 = (_strchr(22614,$51)|0);
$53 = ($52|0)!=(0|0);
if (!($53)) {
$54 = $p;
$55 = $tokenp;
$56 = $54;
$57 = $55;
$58 = (($56) - ($57))|0;
$datalen = $58;
$59 = $datalen;
$60 = (_make_space($c,$59)|0);
$_ms_err = $60;
$61 = $_ms_err;
$62 = ($61|0)!=(0);
if ($62) {
label = 18;
break;
}
$70 = ((($c)) + 8|0);
$71 = HEAP32[$70>>2]|0;
$72 = ((($71)) + 1|0);
HEAP32[$70>>2] = $72;
HEAP8[$71>>0] = 1;
$73 = $datalen;
$74 = $73&65535;
HEAP16[$ashort>>1] = $74;
$75 = ((($c)) + 8|0);
$76 = HEAP32[$75>>2]|0;
;HEAP8[$76>>0]=HEAP8[$ashort>>0]|0;HEAP8[$76+1>>0]=HEAP8[$ashort+1>>0]|0;
$77 = ((($c)) + 8|0);
$78 = HEAP32[$77>>2]|0;
$79 = ((($78)) + 2|0);
HEAP32[$77>>2] = $79;
$80 = ((($c)) + 8|0);
$81 = HEAP32[$80>>2]|0;
$82 = $tokenp;
$83 = $datalen;
_memcpy(($81|0),($82|0),($83|0))|0;
$84 = $datalen;
$85 = ((($c)) + 8|0);
$86 = HEAP32[$85>>2]|0;
$87 = (($86) + ($84)|0);
HEAP32[$85>>2] = $87;
$tokenp = 0;
label = 20;
}
}
L27: do {
if ((label|0) == 20) {
label = 0;
$88 = $quoted;
$89 = ($88|0)!=(0|0);
if ($89) {
$90 = $quoted_esc;
$91 = ($90|0)!=(0);
$92 = $p;
$93 = HEAP8[$92>>0]|0;
$94 = $93 << 24 >> 24;
if (!($91)) {
$227 = ($94|0)==(92);
if ($227) {
$quoted_esc = 1;
break;
}
$228 = $p;
$229 = HEAP8[$228>>0]|0;
$230 = $229 << 24 >> 24;
$231 = ($230|0)==(34);
if (!($231)) {
break;
}
$232 = $quoted;
$233 = ((($232)) + 1|0);
$quoted = $233;
$234 = $p;
$235 = $quoted;
$236 = $234;
$237 = $235;
$238 = (($236) - ($237))|0;
$239 = (_make_space($c,$238)|0);
$_ms_err1 = $239;
$240 = $_ms_err1;
$241 = ($240|0)!=(0);
if ($241) {
label = 59;
break L20;
}
$249 = ((($c)) + 8|0);
$250 = HEAP32[$249>>2]|0;
$251 = ((($250)) + 1|0);
HEAP32[$249>>2] = $251;
HEAP8[$250>>0] = 1;
$252 = ((($c)) + 8|0);
$253 = HEAP32[$252>>2]|0;
$save = $253;
HEAP16[$ashort2>>1] = 0;
$254 = ((($c)) + 8|0);
$255 = HEAP32[$254>>2]|0;
;HEAP8[$255>>0]=HEAP8[$ashort2>>0]|0;HEAP8[$255+1>>0]=HEAP8[$ashort2+1>>0]|0;
$256 = ((($c)) + 8|0);
$257 = HEAP32[$256>>2]|0;
$258 = ((($257)) + 2|0);
HEAP32[$256>>2] = $258;
$259 = $quoted;
$260 = $p;
$261 = $quoted;
$262 = $260;
$263 = $261;
$264 = (($262) - ($263))|0;
$265 = ((($c)) + 8|0);
$266 = HEAP32[$265>>2]|0;
$267 = (_unquote_string($259,$264,$266)|0);
$len = $267;
$268 = $len;
$269 = ((($c)) + 8|0);
$270 = HEAP32[$269>>2]|0;
$271 = (($270) + ($268)|0);
HEAP32[$269>>2] = $271;
$272 = $len;
$273 = $272&65535;
HEAP16[$ashort3>>1] = $273;
$274 = $save;
;HEAP8[$274>>0]=HEAP8[$ashort3>>0]|0;HEAP8[$274+1>>0]=HEAP8[$ashort3+1>>0]|0;
$275 = $save;
$276 = ((($275)) + 2|0);
$save = $276;
$quoted = 0;
break;
}
switch ($94|0) {
case 92: case 39: case 34: case 114: case 102: case 110: case 118: case 116: case 98: {
$quoted_esc = 0;
break L27;
break;
}
case 55: case 54: case 53: case 52: case 51: case 50: case 49: case 48: {
$95 = $n;
$96 = ($95>>>0)>(2);
if (!($96)) {
label = 29;
break L20;
}
$97 = $p;
$98 = ((($97)) + 1|0);
$99 = HEAP8[$98>>0]|0;
$100 = $99 << 24 >> 24;
$101 = ($100|0)>=(48);
if (!($101)) {
label = 29;
break L20;
}
$102 = $p;
$103 = ((($102)) + 1|0);
$104 = HEAP8[$103>>0]|0;
$105 = $104 << 24 >> 24;
$106 = ($105|0)<=(55);
if (!($106)) {
label = 29;
break L20;
}
$107 = $p;
$108 = ((($107)) + 2|0);
$109 = HEAP8[$108>>0]|0;
$110 = $109 << 24 >> 24;
$111 = ($110|0)>=(48);
if (!($111)) {
label = 29;
break L20;
}
$112 = $p;
$113 = ((($112)) + 2|0);
$114 = HEAP8[$113>>0]|0;
$115 = $114 << 24 >> 24;
$116 = ($115|0)<=(55);
if (!($116)) {
label = 29;
break L20;
}
$123 = $p;
$124 = ((($123)) + 2|0);
$p = $124;
$125 = $n;
$126 = (($125) - 2)|0;
$n = $126;
$quoted_esc = 0;
break L27;
break;
}
case 120: {
$127 = $n;
$128 = ($127>>>0)>(2);
if (!($128)) {
label = 44;
break L20;
}
$129 = $p;
$130 = ((($129)) + 1|0);
$131 = HEAP8[$130>>0]|0;
$132 = $131 << 24 >> 24;
$133 = ($132|0)>=(48);
if ($133) {
$134 = $p;
$135 = ((($134)) + 1|0);
$136 = HEAP8[$135>>0]|0;
$137 = $136 << 24 >> 24;
$138 = ($137|0)<=(57);
if (!($138)) {
label = 34;
}
} else {
label = 34;
}
do {
if ((label|0) == 34) {
label = 0;
$139 = $p;
$140 = ((($139)) + 1|0);
$141 = HEAP8[$140>>0]|0;
$142 = $141 << 24 >> 24;
$143 = ($142|0)>=(65);
if ($143) {
$144 = $p;
$145 = ((($144)) + 1|0);
$146 = HEAP8[$145>>0]|0;
$147 = $146 << 24 >> 24;
$148 = ($147|0)<=(70);
if ($148) {
break;
}
}
$149 = $p;
$150 = ((($149)) + 1|0);
$151 = HEAP8[$150>>0]|0;
$152 = $151 << 24 >> 24;
$153 = ($152|0)>=(97);
if (!($153)) {
label = 44;
break L20;
}
$154 = $p;
$155 = ((($154)) + 1|0);
$156 = HEAP8[$155>>0]|0;
$157 = $156 << 24 >> 24;
$158 = ($157|0)<=(102);
if (!($158)) {
label = 44;
break L20;
}
}
} while(0);
$159 = $p;
$160 = ((($159)) + 2|0);
$161 = HEAP8[$160>>0]|0;
$162 = $161 << 24 >> 24;
$163 = ($162|0)>=(48);
if ($163) {
$164 = $p;
$165 = ((($164)) + 2|0);
$166 = HEAP8[$165>>0]|0;
$167 = $166 << 24 >> 24;
$168 = ($167|0)<=(57);
if (!($168)) {
label = 40;
}
} else {
label = 40;
}
do {
if ((label|0) == 40) {
label = 0;
$169 = $p;
$170 = ((($169)) + 2|0);
$171 = HEAP8[$170>>0]|0;
$172 = $171 << 24 >> 24;
$173 = ($172|0)>=(65);
if ($173) {
$174 = $p;
$175 = ((($174)) + 2|0);
$176 = HEAP8[$175>>0]|0;
$177 = $176 << 24 >> 24;
$178 = ($177|0)<=(70);
if ($178) {
break;
}
}
$179 = $p;
$180 = ((($179)) + 2|0);
$181 = HEAP8[$180>>0]|0;
$182 = $181 << 24 >> 24;
$183 = ($182|0)>=(97);
if (!($183)) {
label = 44;
break L20;
}
$184 = $p;
$185 = ((($184)) + 2|0);
$186 = HEAP8[$185>>0]|0;
$187 = $186 << 24 >> 24;
$188 = ($187|0)<=(102);
if (!($188)) {
label = 44;
break L20;
}
}
} while(0);
$195 = $p;
$196 = ((($195)) + 2|0);
$p = $196;
$197 = $n;
$198 = (($197) - 2)|0;
$n = $198;
$quoted_esc = 0;
break L27;
break;
}
case 13: {
$199 = $n;
$200 = ($199|0)!=(0);
if ($200) {
$201 = $p;
$202 = ((($201)) + 1|0);
$203 = HEAP8[$202>>0]|0;
$204 = $203 << 24 >> 24;
$205 = ($204|0)==(10);
if ($205) {
$206 = $p;
$207 = ((($206)) + 1|0);
$p = $207;
$208 = $n;
$209 = (($208) + -1)|0;
$n = $209;
}
}
$quoted_esc = 0;
break L27;
break;
}
case 10: {
$210 = $n;
$211 = ($210|0)!=(0);
if ($211) {
$212 = $p;
$213 = ((($212)) + 1|0);
$214 = HEAP8[$213>>0]|0;
$215 = $214 << 24 >> 24;
$216 = ($215|0)==(13);
if ($216) {
$217 = $p;
$218 = ((($217)) + 1|0);
$p = $218;
$219 = $n;
$220 = (($219) + -1)|0;
$n = $220;
}
}
$quoted_esc = 0;
break L27;
break;
}
default: {
label = 54;
break L20;
}
}
}
$277 = $hexfmt;
$278 = ($277|0)!=(0|0);
if ($278) {
$279 = $p;
$280 = HEAP8[$279>>0]|0;
$281 = $280 << 24 >> 24;
$282 = (_isxdigit($281)|0);
$283 = ($282|0)!=(0);
if ($283) {
$284 = $hexcount;
$285 = (($284) + 1)|0;
$hexcount = $285;
break;
}
$286 = $p;
$287 = HEAP8[$286>>0]|0;
$288 = $287 << 24 >> 24;
$289 = ($288|0)==(35);
if (!($289)) {
$362 = $p;
$363 = (_whitespacep($362)|0);
$364 = ($363|0)!=(0);
if ($364) {
break;
} else {
label = 82;
break L20;
}
}
$290 = $hexcount;
$291 = $290 & 1;
$292 = ($291|0)!=(0);
if ($292) {
label = 66;
break L20;
}
$299 = $hexcount;
$300 = (($299|0) / 2)&-1;
$datalen = $300;
$301 = $datalen;
$302 = (_make_space($c,$301)|0);
$_ms_err4 = $302;
$303 = $_ms_err4;
$304 = ($303|0)!=(0);
if ($304) {
label = 68;
break L20;
}
$312 = ((($c)) + 8|0);
$313 = HEAP32[$312>>2]|0;
$314 = ((($313)) + 1|0);
HEAP32[$312>>2] = $314;
HEAP8[$313>>0] = 1;
$315 = $datalen;
$316 = $315&65535;
HEAP16[$ashort5>>1] = $316;
$317 = ((($c)) + 8|0);
$318 = HEAP32[$317>>2]|0;
;HEAP8[$318>>0]=HEAP8[$ashort5>>0]|0;HEAP8[$318+1>>0]=HEAP8[$ashort5+1>>0]|0;
$319 = ((($c)) + 8|0);
$320 = HEAP32[$319>>2]|0;
$321 = ((($320)) + 2|0);
HEAP32[$319>>2] = $321;
$322 = $hexfmt;
$323 = ((($322)) + 1|0);
$hexfmt = $323;
while(1) {
$324 = $hexfmt;
$325 = $p;
$326 = ($324>>>0)<($325>>>0);
if (!($326)) {
break;
}
$327 = $hexfmt;
$328 = (_whitespacep($327)|0);
$329 = ($328|0)!=(0);
if (!($329)) {
$330 = $hexfmt;
$331 = HEAP8[$330>>0]|0;
$332 = $331&255;
$333 = (_hextonibble($332)|0);
$tmpc = $333;
$334 = $hexfmt;
$335 = ((($334)) + 1|0);
$hexfmt = $335;
while(1) {
$336 = $hexfmt;
$337 = $p;
$338 = ($336>>>0)<($337>>>0);
if (!($338)) {
break;
}
$339 = $hexfmt;
$340 = (_whitespacep($339)|0);
$341 = ($340|0)!=(0);
if (!($341)) {
break;
}
$342 = $hexfmt;
$343 = ((($342)) + 1|0);
$hexfmt = $343;
}
$344 = $hexfmt;
$345 = $p;
$346 = ($344>>>0)<($345>>>0);
if ($346) {
$347 = $tmpc;
$348 = $347<<4;
$tmpc = $348;
$349 = $hexfmt;
$350 = HEAP8[$349>>0]|0;
$351 = $350&255;
$352 = (_hextonibble($351)|0);
$353 = $tmpc;
$354 = (($353) + ($352))|0;
$tmpc = $354;
}
$355 = $tmpc;
$356 = $355&255;
$357 = ((($c)) + 8|0);
$358 = HEAP32[$357>>2]|0;
$359 = ((($358)) + 1|0);
HEAP32[$357>>2] = $359;
HEAP8[$358>>0] = $356;
}
$360 = $hexfmt;
$361 = ((($360)) + 1|0);
$hexfmt = $361;
}
$hexfmt = 0;
break;
}
$371 = $base64;
$372 = ($371|0)!=(0|0);
if ($372) {
$373 = $p;
$374 = HEAP8[$373>>0]|0;
$375 = $374 << 24 >> 24;
$376 = ($375|0)==(124);
if (!($376)) {
break;
}
$base64 = 0;
break;
}
$377 = $digptr;
$378 = ($377|0)!=(0|0);
if ($378) {
$379 = $p;
$380 = HEAP8[$379>>0]|0;
$381 = $380 << 24 >> 24;
$382 = ($381|0)>=(48);
if ($382) {
$383 = $p;
$384 = HEAP8[$383>>0]|0;
$385 = $384 << 24 >> 24;
$386 = ($385|0)<=(57);
if ($386) {
break;
}
}
$387 = $p;
$388 = HEAP8[$387>>0]|0;
$389 = $388 << 24 >> 24;
$390 = ($389|0)==(58);
if ($390) {
$391 = $digptr;
$392 = (_atoi($391)|0);
$datalen = $392;
$digptr = 0;
$393 = $datalen;
$394 = $n;
$395 = (($394) - 1)|0;
$396 = ($393>>>0)>($395>>>0);
if ($396) {
label = 91;
break L20;
}
$403 = $datalen;
$404 = (_make_space($c,$403)|0);
$_ms_err6 = $404;
$405 = $_ms_err6;
$406 = ($405|0)!=(0);
if ($406) {
label = 93;
break L20;
}
$414 = ((($c)) + 8|0);
$415 = HEAP32[$414>>2]|0;
$416 = ((($415)) + 1|0);
HEAP32[$414>>2] = $416;
HEAP8[$415>>0] = 1;
$417 = $datalen;
$418 = $417&65535;
HEAP16[$ashort7>>1] = $418;
$419 = ((($c)) + 8|0);
$420 = HEAP32[$419>>2]|0;
;HEAP8[$420>>0]=HEAP8[$ashort7>>0]|0;HEAP8[$420+1>>0]=HEAP8[$ashort7+1>>0]|0;
$421 = ((($c)) + 8|0);
$422 = HEAP32[$421>>2]|0;
$423 = ((($422)) + 2|0);
HEAP32[$421>>2] = $423;
$424 = ((($c)) + 8|0);
$425 = HEAP32[$424>>2]|0;
$426 = $p;
$427 = ((($426)) + 1|0);
$428 = $datalen;
_memcpy(($425|0),($427|0),($428|0))|0;
$429 = $datalen;
$430 = ((($c)) + 8|0);
$431 = HEAP32[$430>>2]|0;
$432 = (($431) + ($429)|0);
HEAP32[$430>>2] = $432;
$433 = $datalen;
$434 = $n;
$435 = (($434) - ($433))|0;
$n = $435;
$436 = $datalen;
$437 = $p;
$438 = (($437) + ($436)|0);
$p = $438;
break;
}
$439 = $p;
$440 = HEAP8[$439>>0]|0;
$441 = $440 << 24 >> 24;
$442 = ($441|0)==(34);
if ($442) {
$digptr = 0;
$443 = $p;
$quoted = $443;
$quoted_esc = 0;
break;
}
$444 = $p;
$445 = HEAP8[$444>>0]|0;
$446 = $445 << 24 >> 24;
$447 = ($446|0)==(35);
if ($447) {
$digptr = 0;
$448 = $p;
$hexfmt = $448;
$hexcount = 0;
break;
}
$449 = $p;
$450 = HEAP8[$449>>0]|0;
$451 = $450 << 24 >> 24;
$452 = ($451|0)==(124);
if (!($452)) {
label = 101;
break L20;
}
$digptr = 0;
$453 = $p;
$base64 = $453;
break;
}
$460 = $percent;
$461 = ($460|0)!=(0|0);
$462 = $p;
$463 = HEAP8[$462>>0]|0;
$464 = $463 << 24 >> 24;
if (!($461)) {
$945 = ($464|0)==(40);
if ($945) {
$946 = $disphint;
$947 = ($946|0)!=(0|0);
if ($947) {
label = 179;
break L20;
}
$954 = (_make_space($c,0)|0);
$_ms_err32 = $954;
$955 = $_ms_err32;
$956 = ($955|0)!=(0);
if ($956) {
label = 181;
break L20;
}
$964 = ((($c)) + 8|0);
$965 = HEAP32[$964>>2]|0;
$966 = ((($965)) + 1|0);
HEAP32[$964>>2] = $966;
HEAP8[$965>>0] = 3;
$967 = $level;
$968 = (($967) + 1)|0;
$level = $968;
break;
}
$969 = $p;
$970 = HEAP8[$969>>0]|0;
$971 = $970 << 24 >> 24;
$972 = ($971|0)==(41);
if ($972) {
$973 = $disphint;
$974 = ($973|0)!=(0|0);
if ($974) {
label = 185;
break L20;
}
$981 = (_make_space($c,0)|0);
$_ms_err33 = $981;
$982 = $_ms_err33;
$983 = ($982|0)!=(0);
if ($983) {
label = 187;
break L20;
}
$991 = ((($c)) + 8|0);
$992 = HEAP32[$991>>2]|0;
$993 = ((($992)) + 1|0);
HEAP32[$991>>2] = $993;
HEAP8[$992>>0] = 4;
$994 = $level;
$995 = (($994) + -1)|0;
$level = $995;
break;
}
$996 = $p;
$997 = HEAP8[$996>>0]|0;
$998 = $997 << 24 >> 24;
$999 = ($998|0)==(34);
$1000 = $p;
if ($999) {
$quoted = $1000;
$quoted_esc = 0;
break;
}
$1001 = HEAP8[$1000>>0]|0;
$1002 = $1001 << 24 >> 24;
$1003 = ($1002|0)==(35);
$1004 = $p;
if ($1003) {
$hexfmt = $1004;
$hexcount = 0;
break;
}
$1005 = HEAP8[$1004>>0]|0;
$1006 = $1005 << 24 >> 24;
$1007 = ($1006|0)==(124);
$1008 = $p;
if ($1007) {
$base64 = $1008;
break;
}
$1009 = HEAP8[$1008>>0]|0;
$1010 = $1009 << 24 >> 24;
$1011 = ($1010|0)==(91);
if ($1011) {
$1012 = $disphint;
$1013 = ($1012|0)!=(0|0);
$1014 = $p;
if ($1013) {
label = 197;
break L20;
}
$disphint = $1014;
break;
}
$1020 = $p;
$1021 = HEAP8[$1020>>0]|0;
$1022 = $1021 << 24 >> 24;
$1023 = ($1022|0)==(93);
if ($1023) {
$1024 = $disphint;
$1025 = ($1024|0)!=(0|0);
if (!($1025)) {
label = 201;
break L20;
}
$disphint = 0;
break;
}
$1032 = $p;
$1033 = HEAP8[$1032>>0]|0;
$1034 = $1033 << 24 >> 24;
$1035 = ($1034|0)>=(48);
do {
if ($1035) {
$1036 = $p;
$1037 = HEAP8[$1036>>0]|0;
$1038 = $1037 << 24 >> 24;
$1039 = ($1038|0)<=(57);
if (!($1039)) {
break;
}
$1040 = $p;
$1041 = HEAP8[$1040>>0]|0;
$1042 = $1041 << 24 >> 24;
$1043 = ($1042|0)==(48);
$1044 = $p;
if ($1043) {
label = 206;
break L20;
}
$digptr = $1044;
break L27;
}
} while(0);
$1050 = $p;
$1051 = HEAP8[$1050>>0]|0;
$1052 = $1051 << 24 >> 24;
$1053 = (_strchr(22614,$1052)|0);
$1054 = ($1053|0)!=(0|0);
$1055 = $p;
if ($1054) {
$tokenp = $1055;
break;
}
$1056 = (_whitespacep($1055)|0);
$1057 = ($1056|0)!=(0);
if ($1057) {
break;
}
$1058 = $p;
$1059 = HEAP8[$1058>>0]|0;
$1060 = $1059 << 24 >> 24;
$1061 = ($1060|0)==(123);
$1062 = $p;
if ($1061) {
label = 212;
break L20;
}
$1068 = HEAP8[$1062>>0]|0;
$1069 = $1068 << 24 >> 24;
$1070 = (_strchr(22713,$1069)|0);
$1071 = ($1070|0)!=(0|0);
if ($1071) {
label = 214;
break L20;
}
$1078 = $5;
$1079 = ($1078|0)!=(0);
if (!($1079)) {
label = 218;
break L20;
}
$1080 = $p;
$1081 = HEAP8[$1080>>0]|0;
$1082 = $1081 << 24 >> 24;
$1083 = ($1082|0)==(37);
if (!($1083)) {
label = 218;
break L20;
}
$1084 = $p;
$percent = $1084;
break;
}
$465 = ($464|0)==(109);
do {
if ($465) {
label = 105;
} else {
$466 = $p;
$467 = HEAP8[$466>>0]|0;
$468 = $467 << 24 >> 24;
$469 = ($468|0)==(77);
if ($469) {
label = 105;
} else {
$640 = $p;
$641 = HEAP8[$640>>0]|0;
$642 = $641 << 24 >> 24;
$643 = ($642|0)==(115);
if ($643) {
$644 = $6;
$645 = ($644|0)!=(0|0);
if ($645) {
$654 = $arg_counter;
$655 = (($654) + 1)|0;
$arg_counter = $655;
$656 = $6;
$657 = (($656) + ($654<<2)|0);
$658 = HEAP32[$657>>2]|0;
$659 = HEAP32[$658>>2]|0;
$astr = $659;
} else {
$646 = $7;
$arglist_current7 = HEAP32[$646>>2]|0;
$647 = $arglist_current7;
$648 = ((0) + 4|0);
$expanded34 = $648;
$expanded33 = (($expanded34) - 1)|0;
$649 = (($647) + ($expanded33))|0;
$650 = ((0) + 4|0);
$expanded38 = $650;
$expanded37 = (($expanded38) - 1)|0;
$expanded36 = $expanded37 ^ -1;
$651 = $649 & $expanded36;
$652 = $651;
$653 = HEAP32[$652>>2]|0;
$arglist_next8 = ((($652)) + 4|0);
HEAP32[$646>>2] = $arglist_next8;
$astr = $653;
}
$660 = $astr;
$661 = (_strlen($660)|0);
$alen = $661;
$662 = $alen;
$663 = (_make_space($c,$662)|0);
$_ms_err14 = $663;
$664 = $_ms_err14;
$665 = ($664|0)!=(0);
if ($665) {
label = 135;
break L20;
}
$673 = ((($c)) + 8|0);
$674 = HEAP32[$673>>2]|0;
$675 = ((($674)) + 1|0);
HEAP32[$673>>2] = $675;
HEAP8[$674>>0] = 1;
$676 = $alen;
$677 = $676&65535;
HEAP16[$ashort15>>1] = $677;
$678 = ((($c)) + 8|0);
$679 = HEAP32[$678>>2]|0;
;HEAP8[$679>>0]=HEAP8[$ashort15>>0]|0;HEAP8[$679+1>>0]=HEAP8[$ashort15+1>>0]|0;
$680 = ((($c)) + 8|0);
$681 = HEAP32[$680>>2]|0;
$682 = ((($681)) + 2|0);
HEAP32[$680>>2] = $682;
$683 = ((($c)) + 8|0);
$684 = HEAP32[$683>>2]|0;
$685 = $astr;
$686 = $alen;
_memcpy(($684|0),($685|0),($686|0))|0;
$687 = $alen;
$688 = ((($c)) + 8|0);
$689 = HEAP32[$688>>2]|0;
$690 = (($689) + ($687)|0);
HEAP32[$688>>2] = $690;
break;
}
$691 = $p;
$692 = HEAP8[$691>>0]|0;
$693 = $692 << 24 >> 24;
$694 = ($693|0)==(98);
if ($694) {
$695 = $6;
$696 = ($695|0)!=(0|0);
if ($696) {
$705 = $arg_counter;
$706 = (($705) + 1)|0;
$arg_counter = $706;
$707 = $6;
$708 = (($707) + ($705<<2)|0);
$709 = HEAP32[$708>>2]|0;
$710 = HEAP32[$709>>2]|0;
$alen17 = $710;
} else {
$697 = $7;
$arglist_current10 = HEAP32[$697>>2]|0;
$698 = $arglist_current10;
$699 = ((0) + 4|0);
$expanded41 = $699;
$expanded40 = (($expanded41) - 1)|0;
$700 = (($698) + ($expanded40))|0;
$701 = ((0) + 4|0);
$expanded45 = $701;
$expanded44 = (($expanded45) - 1)|0;
$expanded43 = $expanded44 ^ -1;
$702 = $700 & $expanded43;
$703 = $702;
$704 = HEAP32[$703>>2]|0;
$arglist_next11 = ((($703)) + 4|0);
HEAP32[$697>>2] = $arglist_next11;
$alen17 = $704;
}
$711 = $6;
$712 = ($711|0)!=(0|0);
if ($712) {
$721 = $arg_counter;
$722 = (($721) + 1)|0;
$arg_counter = $722;
$723 = $6;
$724 = (($723) + ($721<<2)|0);
$725 = HEAP32[$724>>2]|0;
$726 = HEAP32[$725>>2]|0;
$astr16 = $726;
} else {
$713 = $7;
$arglist_current13 = HEAP32[$713>>2]|0;
$714 = $arglist_current13;
$715 = ((0) + 4|0);
$expanded48 = $715;
$expanded47 = (($expanded48) - 1)|0;
$716 = (($714) + ($expanded47))|0;
$717 = ((0) + 4|0);
$expanded52 = $717;
$expanded51 = (($expanded52) - 1)|0;
$expanded50 = $expanded51 ^ -1;
$718 = $716 & $expanded50;
$719 = $718;
$720 = HEAP32[$719>>2]|0;
$arglist_next14 = ((($719)) + 4|0);
HEAP32[$713>>2] = $arglist_next14;
$astr16 = $720;
}
$727 = $alen17;
$728 = (_make_space($c,$727)|0);
$_ms_err18 = $728;
$729 = $_ms_err18;
$730 = ($729|0)!=(0);
if ($730) {
label = 145;
break L20;
}
$738 = $alen17;
$739 = ($738|0)!=(0);
do {
if ($739) {
$740 = HEAP32[$c>>2]|0;
$741 = (__gcry_is_secure($740)|0);
$742 = ($741|0)!=(0);
if ($742) {
break;
}
$743 = $astr16;
$744 = (__gcry_is_secure($743)|0);
$745 = ($744|0)!=(0);
if (!($745)) {
break;
}
$746 = ((($c)) + 4|0);
$747 = HEAP32[$746>>2]|0;
$748 = (1 + ($747))|0;
$749 = (($748) - 1)|0;
$750 = (__gcry_malloc_secure($749)|0);
$newsexp19 = $750;
$751 = $newsexp19;
$752 = ($751|0)!=(0|0);
if (!($752)) {
label = 150;
break L20;
}
$756 = $newsexp19;
$newhead20 = $756;
$757 = $newhead20;
$758 = HEAP32[$c>>2]|0;
$759 = ((($c)) + 8|0);
$760 = HEAP32[$759>>2]|0;
$761 = HEAP32[$c>>2]|0;
$762 = $760;
$763 = $761;
$764 = (($762) - ($763))|0;
_memcpy(($757|0),($758|0),($764|0))|0;
$765 = $newhead20;
$766 = ((($c)) + 8|0);
$767 = HEAP32[$766>>2]|0;
$768 = HEAP32[$c>>2]|0;
$769 = $767;
$770 = $768;
$771 = (($769) - ($770))|0;
$772 = (($765) + ($771)|0);
$773 = ((($c)) + 8|0);
HEAP32[$773>>2] = $772;
$774 = HEAP32[$c>>2]|0;
__gcry_free($774);
$775 = $newsexp19;
HEAP32[$c>>2] = $775;
}
} while(0);
$776 = ((($c)) + 8|0);
$777 = HEAP32[$776>>2]|0;
$778 = ((($777)) + 1|0);
HEAP32[$776>>2] = $778;
HEAP8[$777>>0] = 1;
$779 = $alen17;
$780 = $779&65535;
HEAP16[$ashort21>>1] = $780;
$781 = ((($c)) + 8|0);
$782 = HEAP32[$781>>2]|0;
;HEAP8[$782>>0]=HEAP8[$ashort21>>0]|0;HEAP8[$782+1>>0]=HEAP8[$ashort21+1>>0]|0;
$783 = ((($c)) + 8|0);
$784 = HEAP32[$783>>2]|0;
$785 = ((($784)) + 2|0);
HEAP32[$783>>2] = $785;
$786 = ((($c)) + 8|0);
$787 = HEAP32[$786>>2]|0;
$788 = $astr16;
$789 = $alen17;
_memcpy(($787|0),($788|0),($789|0))|0;
$790 = $alen17;
$791 = ((($c)) + 8|0);
$792 = HEAP32[$791>>2]|0;
$793 = (($792) + ($790)|0);
HEAP32[$791>>2] = $793;
break;
}
$794 = $p;
$795 = HEAP8[$794>>0]|0;
$796 = $795 << 24 >> 24;
$797 = ($796|0)==(100);
if ($797) {
$798 = $6;
$799 = ($798|0)!=(0|0);
if ($799) {
$808 = $arg_counter;
$809 = (($808) + 1)|0;
$arg_counter = $809;
$810 = $6;
$811 = (($810) + ($808<<2)|0);
$812 = HEAP32[$811>>2]|0;
$813 = HEAP32[$812>>2]|0;
$aint = $813;
} else {
$800 = $7;
$arglist_current16 = HEAP32[$800>>2]|0;
$801 = $arglist_current16;
$802 = ((0) + 4|0);
$expanded55 = $802;
$expanded54 = (($expanded55) - 1)|0;
$803 = (($801) + ($expanded54))|0;
$804 = ((0) + 4|0);
$expanded59 = $804;
$expanded58 = (($expanded59) - 1)|0;
$expanded57 = $expanded58 ^ -1;
$805 = $803 & $expanded57;
$806 = $805;
$807 = HEAP32[$806>>2]|0;
$arglist_next17 = ((($806)) + 4|0);
HEAP32[$800>>2] = $arglist_next17;
$aint = $807;
}
$814 = $aint;
HEAP32[$vararg_buffer>>2] = $814;
(_sprintf($buf,22707,$vararg_buffer)|0);
$815 = (_strlen($buf)|0);
$alen22 = $815;
$816 = $alen22;
$817 = (_make_space($c,$816)|0);
$_ms_err23 = $817;
$818 = $_ms_err23;
$819 = ($818|0)!=(0);
if ($819) {
label = 158;
break L20;
}
$827 = ((($c)) + 8|0);
$828 = HEAP32[$827>>2]|0;
$829 = ((($828)) + 1|0);
HEAP32[$827>>2] = $829;
HEAP8[$828>>0] = 1;
$830 = $alen22;
$831 = $830&65535;
HEAP16[$ashort24>>1] = $831;
$832 = ((($c)) + 8|0);
$833 = HEAP32[$832>>2]|0;
;HEAP8[$833>>0]=HEAP8[$ashort24>>0]|0;HEAP8[$833+1>>0]=HEAP8[$ashort24+1>>0]|0;
$834 = ((($c)) + 8|0);
$835 = HEAP32[$834>>2]|0;
$836 = ((($835)) + 2|0);
HEAP32[$834>>2] = $836;
$837 = ((($c)) + 8|0);
$838 = HEAP32[$837>>2]|0;
$839 = $alen22;
_memcpy(($838|0),($buf|0),($839|0))|0;
$840 = $alen22;
$841 = ((($c)) + 8|0);
$842 = HEAP32[$841>>2]|0;
$843 = (($842) + ($840)|0);
HEAP32[$841>>2] = $843;
break;
}
$844 = $p;
$845 = HEAP8[$844>>0]|0;
$846 = $845 << 24 >> 24;
$847 = ($846|0)==(117);
if ($847) {
$848 = $6;
$849 = ($848|0)!=(0|0);
if ($849) {
$858 = $arg_counter;
$859 = (($858) + 1)|0;
$arg_counter = $859;
$860 = $6;
$861 = (($860) + ($858<<2)|0);
$862 = HEAP32[$861>>2]|0;
$863 = HEAP32[$862>>2]|0;
$aint25 = $863;
} else {
$850 = $7;
$arglist_current19 = HEAP32[$850>>2]|0;
$851 = $arglist_current19;
$852 = ((0) + 4|0);
$expanded62 = $852;
$expanded61 = (($expanded62) - 1)|0;
$853 = (($851) + ($expanded61))|0;
$854 = ((0) + 4|0);
$expanded66 = $854;
$expanded65 = (($expanded66) - 1)|0;
$expanded64 = $expanded65 ^ -1;
$855 = $853 & $expanded64;
$856 = $855;
$857 = HEAP32[$856>>2]|0;
$arglist_next20 = ((($856)) + 4|0);
HEAP32[$850>>2] = $arglist_next20;
$aint25 = $857;
}
$864 = $aint25;
HEAP32[$vararg_buffer21>>2] = $864;
(_sprintf($buf27,22710,$vararg_buffer21)|0);
$865 = (_strlen($buf27)|0);
$alen26 = $865;
$866 = $alen26;
$867 = (_make_space($c,$866)|0);
$_ms_err28 = $867;
$868 = $_ms_err28;
$869 = ($868|0)!=(0);
if ($869) {
label = 165;
break L20;
}
$877 = ((($c)) + 8|0);
$878 = HEAP32[$877>>2]|0;
$879 = ((($878)) + 1|0);
HEAP32[$877>>2] = $879;
HEAP8[$878>>0] = 1;
$880 = $alen26;
$881 = $880&65535;
HEAP16[$ashort29>>1] = $881;
$882 = ((($c)) + 8|0);
$883 = HEAP32[$882>>2]|0;
;HEAP8[$883>>0]=HEAP8[$ashort29>>0]|0;HEAP8[$883+1>>0]=HEAP8[$ashort29+1>>0]|0;
$884 = ((($c)) + 8|0);
$885 = HEAP32[$884>>2]|0;
$886 = ((($885)) + 2|0);
HEAP32[$884>>2] = $886;
$887 = ((($c)) + 8|0);
$888 = HEAP32[$887>>2]|0;
$889 = $alen26;
_memcpy(($888|0),($buf27|0),($889|0))|0;
$890 = $alen26;
$891 = ((($c)) + 8|0);
$892 = HEAP32[$891>>2]|0;
$893 = (($892) + ($890)|0);
HEAP32[$891>>2] = $893;
break;
}
$894 = $p;
$895 = HEAP8[$894>>0]|0;
$896 = $895 << 24 >> 24;
$897 = ($896|0)==(83);
if (!($897)) {
label = 175;
break L20;
}
$898 = $6;
$899 = ($898|0)!=(0|0);
if ($899) {
$908 = $arg_counter;
$909 = (($908) + 1)|0;
$arg_counter = $909;
$910 = $6;
$911 = (($910) + ($908<<2)|0);
$912 = HEAP32[$911>>2]|0;
$913 = HEAP32[$912>>2]|0;
$asexp = $913;
} else {
$900 = $7;
$arglist_current25 = HEAP32[$900>>2]|0;
$901 = $arglist_current25;
$902 = ((0) + 4|0);
$expanded69 = $902;
$expanded68 = (($expanded69) - 1)|0;
$903 = (($901) + ($expanded68))|0;
$904 = ((0) + 4|0);
$expanded73 = $904;
$expanded72 = (($expanded73) - 1)|0;
$expanded71 = $expanded72 ^ -1;
$905 = $903 & $expanded71;
$906 = $905;
$907 = HEAP32[$906>>2]|0;
$arglist_next26 = ((($906)) + 4|0);
HEAP32[$900>>2] = $arglist_next26;
$asexp = $907;
}
$914 = $asexp;
$915 = (_get_internal_buffer($914,$aoff)|0);
$alen30 = $915;
$916 = $alen30;
$917 = ($916|0)!=(0);
if (!($917)) {
break;
}
$918 = $alen30;
$919 = (_make_space($c,$918)|0);
$_ms_err31 = $919;
$920 = $_ms_err31;
$921 = ($920|0)!=(0);
if ($921) {
label = 173;
break L20;
}
$929 = ((($c)) + 8|0);
$930 = HEAP32[$929>>2]|0;
$931 = $asexp;
$932 = HEAP32[$aoff>>2]|0;
$933 = (($931) + ($932)|0);
$934 = $alen30;
_memcpy(($930|0),($933|0),($934|0))|0;
$935 = $alen30;
$936 = ((($c)) + 8|0);
$937 = HEAP32[$936>>2]|0;
$938 = (($937) + ($935)|0);
HEAP32[$936>>2] = $938;
}
}
} while(0);
do {
if ((label|0) == 105) {
label = 0;
HEAP32[$nm>>2] = 0;
$470 = $p;
$471 = HEAP8[$470>>0]|0;
$472 = $471 << 24 >> 24;
$473 = ($472|0)==(109);
$474 = $473 ? 1 : 5;
$mpifmt = $474;
$475 = $6;
$476 = ($475|0)!=(0|0);
if ($476) {
$485 = $arg_counter;
$486 = (($485) + 1)|0;
$arg_counter = $486;
$487 = $6;
$488 = (($487) + ($485<<2)|0);
$489 = HEAP32[$488>>2]|0;
$490 = HEAP32[$489>>2]|0;
$m = $490;
} else {
$477 = $7;
$arglist_current = HEAP32[$477>>2]|0;
$478 = $arglist_current;
$479 = ((0) + 4|0);
$expanded27 = $479;
$expanded = (($expanded27) - 1)|0;
$480 = (($478) + ($expanded))|0;
$481 = ((0) + 4|0);
$expanded31 = $481;
$expanded30 = (($expanded31) - 1)|0;
$expanded29 = $expanded30 ^ -1;
$482 = $480 & $expanded29;
$483 = $482;
$484 = HEAP32[$483>>2]|0;
$arglist_next = ((($483)) + 4|0);
HEAP32[$477>>2] = $arglist_next;
$m = $484;
}
$491 = $m;
$492 = (__gcry_mpi_get_flag($491,2)|0);
$493 = ($492|0)!=(0);
if ($493) {
$494 = $m;
$495 = (__gcry_mpi_get_opaque($494,$nbits)|0);
$mp = $495;
$496 = HEAP32[$nbits>>2]|0;
$497 = (($496) + 7)|0;
$498 = (($497>>>0) / 8)&-1;
HEAP32[$nm>>2] = $498;
$499 = $mp;
$500 = ($499|0)!=(0|0);
$501 = HEAP32[$nm>>2]|0;
$502 = ($501|0)!=(0);
$or$cond3 = $500 & $502;
if (!($or$cond3)) {
break;
}
$503 = HEAP32[$nm>>2]|0;
$504 = (_make_space($c,$503)|0);
$_ms_err8 = $504;
$505 = $_ms_err8;
$506 = ($505|0)!=(0);
if ($506) {
label = 111;
break L20;
}
$514 = HEAP32[$c>>2]|0;
$515 = (__gcry_is_secure($514)|0);
$516 = ($515|0)!=(0);
do {
if (!($516)) {
$517 = $m;
$518 = (__gcry_mpi_get_flag($517,1)|0);
$519 = ($518|0)!=(0);
if (!($519)) {
break;
}
$520 = ((($c)) + 4|0);
$521 = HEAP32[$520>>2]|0;
$522 = (1 + ($521))|0;
$523 = (($522) - 1)|0;
$524 = (__gcry_malloc_secure($523)|0);
$newsexp = $524;
$525 = $newsexp;
$526 = ($525|0)!=(0|0);
if (!($526)) {
label = 115;
break L20;
}
$530 = $newsexp;
$newhead = $530;
$531 = $newhead;
$532 = HEAP32[$c>>2]|0;
$533 = ((($c)) + 8|0);
$534 = HEAP32[$533>>2]|0;
$535 = HEAP32[$c>>2]|0;
$536 = $534;
$537 = $535;
$538 = (($536) - ($537))|0;
_memcpy(($531|0),($532|0),($538|0))|0;
$539 = $newhead;
$540 = ((($c)) + 8|0);
$541 = HEAP32[$540>>2]|0;
$542 = HEAP32[$c>>2]|0;
$543 = $541;
$544 = $542;
$545 = (($543) - ($544))|0;
$546 = (($539) + ($545)|0);
$547 = ((($c)) + 8|0);
HEAP32[$547>>2] = $546;
$548 = HEAP32[$c>>2]|0;
__gcry_free($548);
$549 = $newsexp;
HEAP32[$c>>2] = $549;
}
} while(0);
$550 = ((($c)) + 8|0);
$551 = HEAP32[$550>>2]|0;
$552 = ((($551)) + 1|0);
HEAP32[$550>>2] = $552;
HEAP8[$551>>0] = 1;
$553 = HEAP32[$nm>>2]|0;
$554 = $553&65535;
HEAP16[$ashort9>>1] = $554;
$555 = ((($c)) + 8|0);
$556 = HEAP32[$555>>2]|0;
;HEAP8[$556>>0]=HEAP8[$ashort9>>0]|0;HEAP8[$556+1>>0]=HEAP8[$ashort9+1>>0]|0;
$557 = ((($c)) + 8|0);
$558 = HEAP32[$557>>2]|0;
$559 = ((($558)) + 2|0);
HEAP32[$557>>2] = $559;
$560 = ((($c)) + 8|0);
$561 = HEAP32[$560>>2]|0;
$562 = $mp;
$563 = HEAP32[$nm>>2]|0;
_memcpy(($561|0),($562|0),($563|0))|0;
$564 = HEAP32[$nm>>2]|0;
$565 = ((($c)) + 8|0);
$566 = HEAP32[$565>>2]|0;
$567 = (($566) + ($564)|0);
HEAP32[$565>>2] = $567;
break;
}
$568 = $mpifmt;
$569 = $m;
$570 = (__gcry_mpi_print($568,0,0,$nm,$569)|0);
$571 = ($570|0)!=(0);
if ($571) {
label = 119;
break L20;
}
$572 = HEAP32[$nm>>2]|0;
$573 = (_make_space($c,$572)|0);
$_ms_err10 = $573;
$574 = $_ms_err10;
$575 = ($574|0)!=(0);
if ($575) {
label = 121;
break L20;
}
$583 = HEAP32[$c>>2]|0;
$584 = (__gcry_is_secure($583)|0);
$585 = ($584|0)!=(0);
do {
if (!($585)) {
$586 = $m;
$587 = (__gcry_mpi_get_flag($586,1)|0);
$588 = ($587|0)!=(0);
if (!($588)) {
break;
}
$589 = ((($c)) + 4|0);
$590 = HEAP32[$589>>2]|0;
$591 = (1 + ($590))|0;
$592 = (($591) - 1)|0;
$593 = (__gcry_malloc_secure($592)|0);
$newsexp11 = $593;
$594 = $newsexp11;
$595 = ($594|0)!=(0|0);
if (!($595)) {
label = 125;
break L20;
}
$599 = $newsexp11;
$newhead12 = $599;
$600 = $newhead12;
$601 = HEAP32[$c>>2]|0;
$602 = ((($c)) + 8|0);
$603 = HEAP32[$602>>2]|0;
$604 = HEAP32[$c>>2]|0;
$605 = $603;
$606 = $604;
$607 = (($605) - ($606))|0;
_memcpy(($600|0),($601|0),($607|0))|0;
$608 = $newhead12;
$609 = ((($c)) + 8|0);
$610 = HEAP32[$609>>2]|0;
$611 = HEAP32[$c>>2]|0;
$612 = $610;
$613 = $611;
$614 = (($612) - ($613))|0;
$615 = (($608) + ($614)|0);
$616 = ((($c)) + 8|0);
HEAP32[$616>>2] = $615;
$617 = HEAP32[$c>>2]|0;
__gcry_free($617);
$618 = $newsexp11;
HEAP32[$c>>2] = $618;
}
} while(0);
$619 = ((($c)) + 8|0);
$620 = HEAP32[$619>>2]|0;
$621 = ((($620)) + 1|0);
HEAP32[$619>>2] = $621;
HEAP8[$620>>0] = 1;
$622 = HEAP32[$nm>>2]|0;
$623 = $622&65535;
HEAP16[$ashort13>>1] = $623;
$624 = ((($c)) + 8|0);
$625 = HEAP32[$624>>2]|0;
;HEAP8[$625>>0]=HEAP8[$ashort13>>0]|0;HEAP8[$625+1>>0]=HEAP8[$ashort13+1>>0]|0;
$626 = ((($c)) + 8|0);
$627 = HEAP32[$626>>2]|0;
$628 = ((($627)) + 2|0);
HEAP32[$626>>2] = $628;
$629 = $mpifmt;
$630 = ((($c)) + 8|0);
$631 = HEAP32[$630>>2]|0;
$632 = HEAP32[$nm>>2]|0;
$633 = $m;
$634 = (__gcry_mpi_print($629,$631,$632,$nm,$633)|0);
$635 = ($634|0)!=(0);
if ($635) {
label = 128;
break L20;
}
$636 = HEAP32[$nm>>2]|0;
$637 = ((($c)) + 8|0);
$638 = HEAP32[$637>>2]|0;
$639 = (($638) + ($636)|0);
HEAP32[$637>>2] = $639;
}
} while(0);
$percent = 0;
}
} while(0);
$1091 = $p;
$1092 = ((($1091)) + 1|0);
$p = $1092;
$1093 = $n;
$1094 = (($1093) + -1)|0;
$n = $1094;
}
switch (label|0) {
case 18: {
$63 = $_ms_err;
$err = $63;
$64 = $p;
$65 = $3;
$66 = $64;
$67 = $65;
$68 = (($66) - ($67))|0;
$69 = $2;
HEAP32[$69>>2] = $68;
break L18;
break;
}
case 29: {
$117 = $p;
$118 = $3;
$119 = $117;
$120 = $118;
$121 = (($119) - ($120))|0;
$122 = $2;
HEAP32[$122>>2] = $121;
$err = 206;
break L18;
break;
}
case 44: {
$189 = $p;
$190 = $3;
$191 = $189;
$192 = $190;
$193 = (($191) - ($192))|0;
$194 = $2;
HEAP32[$194>>2] = $193;
$err = 206;
break L18;
break;
}
case 54: {
$221 = $p;
$222 = $3;
$223 = $221;
$224 = $222;
$225 = (($223) - ($224))|0;
$226 = $2;
HEAP32[$226>>2] = $225;
$err = 206;
break L18;
break;
}
case 59: {
$242 = $_ms_err1;
$err = $242;
$243 = $p;
$244 = $3;
$245 = $243;
$246 = $244;
$247 = (($245) - ($246))|0;
$248 = $2;
HEAP32[$248>>2] = $247;
break L18;
break;
}
case 66: {
$293 = $p;
$294 = $3;
$295 = $293;
$296 = $294;
$297 = (($295) - ($296))|0;
$298 = $2;
HEAP32[$298>>2] = $297;
$err = 212;
break L18;
break;
}
case 68: {
$305 = $_ms_err4;
$err = $305;
$306 = $p;
$307 = $3;
$308 = $306;
$309 = $307;
$310 = (($308) - ($309))|0;
$311 = $2;
HEAP32[$311>>2] = $310;
break L18;
break;
}
case 82: {
$365 = $p;
$366 = $3;
$367 = $365;
$368 = $366;
$369 = (($367) - ($368))|0;
$370 = $2;
HEAP32[$370>>2] = $369;
$err = 211;
break L18;
break;
}
case 91: {
$397 = $p;
$398 = $3;
$399 = $397;
$400 = $398;
$401 = (($399) - ($400))|0;
$402 = $2;
HEAP32[$402>>2] = $401;
$err = 202;
break L18;
break;
}
case 93: {
$407 = $_ms_err6;
$err = $407;
$408 = $p;
$409 = $3;
$410 = $408;
$411 = $409;
$412 = (($410) - ($411))|0;
$413 = $2;
HEAP32[$413>>2] = $412;
break L18;
break;
}
case 101: {
$454 = $p;
$455 = $3;
$456 = $454;
$457 = $455;
$458 = (($456) - ($457))|0;
$459 = $2;
HEAP32[$459>>2] = $458;
$err = 201;
break L18;
break;
}
case 111: {
$507 = $_ms_err8;
$err = $507;
$508 = $p;
$509 = $3;
$510 = $508;
$511 = $509;
$512 = (($510) - ($511))|0;
$513 = $2;
HEAP32[$513>>2] = $512;
break L18;
break;
}
case 115: {
$527 = (___errno_location()|0);
$528 = HEAP32[$527>>2]|0;
$529 = (_gpg_err_code_from_errno($528)|0);
$err = $529;
break L18;
break;
}
case 119: {
__gcry_bug(22685,1433,22692);
// unreachable;
break;
}
case 121: {
$576 = $_ms_err10;
$err = $576;
$577 = $p;
$578 = $3;
$579 = $577;
$580 = $578;
$581 = (($579) - ($580))|0;
$582 = $2;
HEAP32[$582>>2] = $581;
break L18;
break;
}
case 125: {
$596 = (___errno_location()|0);
$597 = HEAP32[$596>>2]|0;
$598 = (_gpg_err_code_from_errno($597)|0);
$err = $598;
break L18;
break;
}
case 128: {
__gcry_bug(22685,1460,22692);
// unreachable;
break;
}
case 135: {
$666 = $_ms_err14;
$err = $666;
$667 = $p;
$668 = $3;
$669 = $667;
$670 = $668;
$671 = (($669) - ($670))|0;
$672 = $2;
HEAP32[$672>>2] = $671;
break L18;
break;
}
case 145: {
$731 = $_ms_err18;
$err = $731;
$732 = $p;
$733 = $3;
$734 = $732;
$735 = $733;
$736 = (($734) - ($735))|0;
$737 = $2;
HEAP32[$737>>2] = $736;
break L18;
break;
}
case 150: {
$753 = (___errno_location()|0);
$754 = HEAP32[$753>>2]|0;
$755 = (_gpg_err_code_from_errno($754)|0);
$err = $755;
break L18;
break;
}
case 158: {
$820 = $_ms_err23;
$err = $820;
$821 = $p;
$822 = $3;
$823 = $821;
$824 = $822;
$825 = (($823) - ($824))|0;
$826 = $2;
HEAP32[$826>>2] = $825;
break L18;
break;
}
case 165: {
$870 = $_ms_err28;
$err = $870;
$871 = $p;
$872 = $3;
$873 = $871;
$874 = $872;
$875 = (($873) - ($874))|0;
$876 = $2;
HEAP32[$876>>2] = $875;
break L18;
break;
}
case 173: {
$922 = $_ms_err31;
$err = $922;
$923 = $p;
$924 = $3;
$925 = $923;
$926 = $924;
$927 = (($925) - ($926))|0;
$928 = $2;
HEAP32[$928>>2] = $927;
break L18;
break;
}
case 175: {
$939 = $p;
$940 = $3;
$941 = $939;
$942 = $940;
$943 = (($941) - ($942))|0;
$944 = $2;
HEAP32[$944>>2] = $943;
$err = 201;
break L18;
break;
}
case 179: {
$948 = $p;
$949 = $3;
$950 = $948;
$951 = $949;
$952 = (($950) - ($951))|0;
$953 = $2;
HEAP32[$953>>2] = $952;
$err = 209;
break L18;
break;
}
case 181: {
$957 = $_ms_err32;
$err = $957;
$958 = $p;
$959 = $3;
$960 = $958;
$961 = $959;
$962 = (($960) - ($961))|0;
$963 = $2;
HEAP32[$963>>2] = $962;
break L18;
break;
}
case 185: {
$975 = $p;
$976 = $3;
$977 = $975;
$978 = $976;
$979 = (($977) - ($978))|0;
$980 = $2;
HEAP32[$980>>2] = $979;
$err = 209;
break L18;
break;
}
case 187: {
$984 = $_ms_err33;
$err = $984;
$985 = $p;
$986 = $3;
$987 = $985;
$988 = $986;
$989 = (($987) - ($988))|0;
$990 = $2;
HEAP32[$990>>2] = $989;
break L18;
break;
}
case 197: {
$1015 = $3;
$1016 = $1014;
$1017 = $1015;
$1018 = (($1016) - ($1017))|0;
$1019 = $2;
HEAP32[$1019>>2] = $1018;
$err = 208;
break L18;
break;
}
case 201: {
$1026 = $p;
$1027 = $3;
$1028 = $1026;
$1029 = $1027;
$1030 = (($1028) - ($1029))|0;
$1031 = $2;
HEAP32[$1031>>2] = $1030;
$err = 209;
break L18;
break;
}
case 206: {
$1045 = $3;
$1046 = $1044;
$1047 = $1045;
$1048 = (($1046) - ($1047))|0;
$1049 = $2;
HEAP32[$1049>>2] = $1048;
$err = 207;
break L18;
break;
}
case 212: {
$1063 = $3;
$1064 = $1062;
$1065 = $1063;
$1066 = (($1064) - ($1065))|0;
$1067 = $2;
HEAP32[$1067>>2] = $1066;
$err = 210;
break L18;
break;
}
case 214: {
$1072 = $p;
$1073 = $3;
$1074 = $1072;
$1075 = $1073;
$1076 = (($1074) - ($1075))|0;
$1077 = $2;
HEAP32[$1077>>2] = $1076;
$err = 210;
break L18;
break;
}
case 218: {
$1085 = $p;
$1086 = $3;
$1087 = $1085;
$1088 = $1086;
$1089 = (($1087) - ($1088))|0;
$1090 = $2;
HEAP32[$1090>>2] = $1089;
$err = 205;
break L18;
break;
}
case 220: {
$1095 = (_make_space($c,0)|0);
$_ms_err34 = $1095;
$1096 = $_ms_err34;
$1097 = ($1096|0)!=(0);
if ($1097) {
$1098 = $_ms_err34;
$err = $1098;
$1099 = $p;
$1100 = $3;
$1101 = $1099;
$1102 = $1100;
$1103 = (($1101) - ($1102))|0;
$1104 = $2;
HEAP32[$1104>>2] = $1103;
break L18;
}
$1105 = ((($c)) + 8|0);
$1106 = HEAP32[$1105>>2]|0;
$1107 = ((($1106)) + 1|0);
HEAP32[$1105>>2] = $1107;
HEAP8[$1106>>0] = 0;
$1108 = $level;
$1109 = ($1108|0)==(0);
$1110 = $err;
$1111 = ($1110|0)!=(0);
$or$cond5 = $1109 | $1111;
if ($or$cond5) {
break L18;
}
$err = 203;
break L18;
break;
}
}
} else {
$35 = (___errno_location()|0);
$36 = HEAP32[$35>>2]|0;
$37 = (_gpg_err_code_from_errno($36)|0);
$err = $37;
$38 = $2;
HEAP32[$38>>2] = 0;
}
} while(0);
$1112 = $err;
$1113 = ($1112|0)!=(0);
$1114 = HEAP32[$c>>2]|0;
if ($1113) {
$1115 = ($1114|0)!=(0|0);
if ($1115) {
$1116 = HEAP32[$c>>2]|0;
$1117 = (__gcry_is_secure($1116)|0);
$1118 = ($1117|0)!=(0);
L292: do {
if ($1118) {
$1119 = HEAP32[$c>>2]|0;
$_vptr = $1119;
$1120 = ((($c)) + 4|0);
$1121 = HEAP32[$1120>>2]|0;
$1122 = (1 + ($1121))|0;
$1123 = (($1122) - 1)|0;
$_vlen = $1123;
$_vset = 0;
$1124 = $_vset;
$1125 = $1124&255;
$1126 = $_vset_long;
$1127 = $1126;
HEAP32[$1127>>2] = $1125;
$1128 = (($1126) + 4)|0;
$1129 = $1128;
HEAP32[$1129>>2] = 0;
while(1) {
$1130 = $_vptr;
$1131 = $1130;
$1132 = $1131 & 7;
$1133 = ($1132|0)!=(0);
$1134 = $_vlen;
$1135 = ($1134|0)!=(0);
$1136 = $1133 ? $1135 : 0;
if (!($1136)) {
break;
}
$1137 = $_vset;
$1138 = $_vptr;
HEAP8[$1138>>0] = $1137;
$1139 = $_vptr;
$1140 = ((($1139)) + 1|0);
$_vptr = $1140;
$1141 = $_vlen;
$1142 = (($1141) + -1)|0;
$_vlen = $1142;
}
$1143 = $_vlen;
$1144 = ($1143>>>0)<(8);
if (!($1144)) {
$1145 = $_vset_long;
$1146 = $1145;
$1147 = HEAP32[$1146>>2]|0;
$1148 = (($1145) + 4)|0;
$1149 = $1148;
$1150 = HEAP32[$1149>>2]|0;
$1151 = (___muldi3(($1147|0),($1150|0),16843009,16843009)|0);
$1152 = tempRet0;
$1153 = $_vset_long;
$1154 = $1153;
HEAP32[$1154>>2] = $1151;
$1155 = (($1153) + 4)|0;
$1156 = $1155;
HEAP32[$1156>>2] = $1152;
while(1) {
$1157 = $_vptr;
$_vptr_long = $1157;
$1158 = $_vset_long;
$1159 = $1158;
$1160 = HEAP32[$1159>>2]|0;
$1161 = (($1158) + 4)|0;
$1162 = $1161;
$1163 = HEAP32[$1162>>2]|0;
$1164 = $_vptr_long;
$1165 = $1164;
$1166 = $1165;
HEAP32[$1166>>2] = $1160;
$1167 = (($1165) + 4)|0;
$1168 = $1167;
HEAP32[$1168>>2] = $1163;
$1169 = $_vlen;
$1170 = (($1169) - 8)|0;
$_vlen = $1170;
$1171 = $_vptr;
$1172 = ((($1171)) + 8|0);
$_vptr = $1172;
$1173 = $_vlen;
$1174 = ($1173>>>0)>=(8);
if (!($1174)) {
break;
}
}
}
while(1) {
$1175 = $_vlen;
$1176 = ($1175|0)!=(0);
if (!($1176)) {
break L292;
}
$1177 = $_vset;
$1178 = $_vptr;
HEAP8[$1178>>0] = $1177;
$1179 = $_vptr;
$1180 = ((($1179)) + 1|0);
$_vptr = $1180;
$1181 = $_vlen;
$1182 = (($1181) + -1)|0;
$_vlen = $1182;
}
}
} while(0);
$1183 = HEAP32[$c>>2]|0;
__gcry_free($1183);
}
} else {
$1184 = (_normalize($1114)|0);
$1185 = $1;
HEAP32[$1185>>2] = $1184;
}
$1186 = $err;
$0 = $1186;
$1187 = $0;
STACKTOP = sp;return ($1187|0);
}
function _make_space($c,$n) {
$c = $c|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $newhead = 0, $newsexp = 0, $newsize = 0, $used = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $n;
$3 = $1;
$4 = ((($3)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$6 = $1;
$7 = HEAP32[$6>>2]|0;
$8 = $5;
$9 = $7;
$10 = (($8) - ($9))|0;
$used = $10;
$11 = $used;
$12 = $2;
$13 = (($11) + ($12))|0;
$14 = (($13) + 2)|0;
$15 = (($14) + 1)|0;
$16 = $1;
$17 = ((($16)) + 4|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($15>>>0)>=($18>>>0);
do {
if ($19) {
$20 = $1;
$21 = ((($20)) + 4|0);
$22 = HEAP32[$21>>2]|0;
$23 = $2;
$24 = (($23) + 2)|0;
$25 = (($24) + 1)|0;
$26 = $25<<1;
$27 = (($22) + ($26))|0;
$newsize = $27;
$28 = $newsize;
$29 = $1;
$30 = ((($29)) + 4|0);
$31 = HEAP32[$30>>2]|0;
$32 = ($28>>>0)<=($31>>>0);
if ($32) {
$0 = 67;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
$33 = $1;
$34 = HEAP32[$33>>2]|0;
$35 = $newsize;
$36 = (1 + ($35))|0;
$37 = (($36) - 1)|0;
$38 = (__gcry_realloc($34,$37)|0);
$newsexp = $38;
$39 = $newsexp;
$40 = ($39|0)!=(0|0);
if ($40) {
$44 = $newsize;
$45 = $1;
$46 = ((($45)) + 4|0);
HEAP32[$46>>2] = $44;
$47 = $newsexp;
$newhead = $47;
$48 = $newhead;
$49 = $used;
$50 = (($48) + ($49)|0);
$51 = $1;
$52 = ((($51)) + 8|0);
HEAP32[$52>>2] = $50;
$53 = $newsexp;
$54 = $1;
HEAP32[$54>>2] = $53;
break;
}
$41 = (___errno_location()|0);
$42 = HEAP32[$41>>2]|0;
$43 = (_gpg_err_code_from_errno($42)|0);
$0 = $43;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
} while(0);
$0 = 0;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
function _unquote_string($string,$length,$buf) {
$string = $string|0;
$length = $length|0;
$buf = $buf|0;
var $$sink = 0, $$sink1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0;
var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $d = 0, $esc = 0, $n = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $string;
$1 = $length;
$2 = $buf;
$esc = 0;
$3 = $0;
$s = $3;
$4 = $2;
$d = $4;
$5 = $1;
$n = $5;
while(1) {
$6 = $n;
$7 = ($6|0)!=(0);
if (!($7)) {
break;
}
$8 = $esc;
$9 = ($8|0)!=(0);
$10 = $s;
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
do {
if ($9) {
L6: do {
switch ($12|0) {
case 98: {
$13 = $d;
$14 = ((($13)) + 1|0);
$d = $14;
HEAP8[$13>>0] = 8;
break;
}
case 116: {
$15 = $d;
$16 = ((($15)) + 1|0);
$d = $16;
HEAP8[$15>>0] = 9;
break;
}
case 118: {
$17 = $d;
$18 = ((($17)) + 1|0);
$d = $18;
HEAP8[$17>>0] = 11;
break;
}
case 110: {
$19 = $d;
$20 = ((($19)) + 1|0);
$d = $20;
HEAP8[$19>>0] = 10;
break;
}
case 102: {
$21 = $d;
$22 = ((($21)) + 1|0);
$d = $22;
HEAP8[$21>>0] = 12;
break;
}
case 114: {
$23 = $d;
$24 = ((($23)) + 1|0);
$d = $24;
HEAP8[$23>>0] = 13;
break;
}
case 34: {
$25 = $d;
$26 = ((($25)) + 1|0);
$d = $26;
HEAP8[$25>>0] = 34;
break;
}
case 39: {
$27 = $d;
$28 = ((($27)) + 1|0);
$d = $28;
HEAP8[$27>>0] = 39;
break;
}
case 92: {
$29 = $d;
$30 = ((($29)) + 1|0);
$d = $30;
HEAP8[$29>>0] = 92;
break;
}
case 13: {
$31 = $n;
$32 = ($31>>>0)>(1);
if ($32) {
$33 = $s;
$34 = ((($33)) + 1|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35&255;
$37 = ($36|0)==(10);
if ($37) {
$38 = $s;
$39 = ((($38)) + 1|0);
$s = $39;
$40 = $n;
$41 = (($40) + -1)|0;
$n = $41;
}
}
break;
}
case 10: {
$42 = $n;
$43 = ($42>>>0)>(1);
if ($43) {
$44 = $s;
$45 = ((($44)) + 1|0);
$46 = HEAP8[$45>>0]|0;
$47 = $46&255;
$48 = ($47|0)==(13);
if ($48) {
$49 = $s;
$50 = ((($49)) + 1|0);
$s = $50;
$51 = $n;
$52 = (($51) + -1)|0;
$n = $52;
}
}
break;
}
case 120: {
$53 = $n;
$54 = ($53>>>0)>(2);
if ($54) {
$55 = $s;
$56 = ((($55)) + 1|0);
$57 = HEAP8[$56>>0]|0;
$58 = $57&255;
$59 = ($58|0)>=(48);
if ($59) {
$60 = $s;
$61 = ((($60)) + 1|0);
$62 = HEAP8[$61>>0]|0;
$63 = $62&255;
$64 = ($63|0)<=(57);
if (!($64)) {
label = 23;
}
} else {
label = 23;
}
do {
if ((label|0) == 23) {
label = 0;
$65 = $s;
$66 = ((($65)) + 1|0);
$67 = HEAP8[$66>>0]|0;
$68 = $67&255;
$69 = ($68|0)>=(65);
if ($69) {
$70 = $s;
$71 = ((($70)) + 1|0);
$72 = HEAP8[$71>>0]|0;
$73 = $72&255;
$74 = ($73|0)<=(70);
if ($74) {
break;
}
}
$75 = $s;
$76 = ((($75)) + 1|0);
$77 = HEAP8[$76>>0]|0;
$78 = $77&255;
$79 = ($78|0)>=(97);
if (!($79)) {
break L6;
}
$80 = $s;
$81 = ((($80)) + 1|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82&255;
$84 = ($83|0)<=(102);
if (!($84)) {
break L6;
}
}
} while(0);
$85 = $s;
$86 = ((($85)) + 2|0);
$87 = HEAP8[$86>>0]|0;
$88 = $87&255;
$89 = ($88|0)>=(48);
if ($89) {
$90 = $s;
$91 = ((($90)) + 2|0);
$92 = HEAP8[$91>>0]|0;
$93 = $92&255;
$94 = ($93|0)<=(57);
if (!($94)) {
label = 29;
}
} else {
label = 29;
}
do {
if ((label|0) == 29) {
label = 0;
$95 = $s;
$96 = ((($95)) + 2|0);
$97 = HEAP8[$96>>0]|0;
$98 = $97&255;
$99 = ($98|0)>=(65);
if ($99) {
$100 = $s;
$101 = ((($100)) + 2|0);
$102 = HEAP8[$101>>0]|0;
$103 = $102&255;
$104 = ($103|0)<=(70);
if ($104) {
break;
}
}
$105 = $s;
$106 = ((($105)) + 2|0);
$107 = HEAP8[$106>>0]|0;
$108 = $107&255;
$109 = ($108|0)>=(97);
if (!($109)) {
break L6;
}
$110 = $s;
$111 = ((($110)) + 2|0);
$112 = HEAP8[$111>>0]|0;
$113 = $112&255;
$114 = ($113|0)<=(102);
if (!($114)) {
break L6;
}
}
} while(0);
$115 = $s;
$116 = ((($115)) + 1|0);
$s = $116;
$117 = $n;
$118 = (($117) + -1)|0;
$n = $118;
$119 = $s;
$120 = HEAP8[$119>>0]|0;
$121 = $120&255;
$122 = ($121|0)<=(57);
$123 = $s;
$124 = HEAP8[$123>>0]|0;
$125 = $124&255;
if ($122) {
$126 = (($125) - 48)|0;
$135 = $126;
} else {
$127 = ($125|0)<=(70);
$128 = $s;
$129 = HEAP8[$128>>0]|0;
$130 = $129&255;
$131 = (($130) - 65)|0;
$132 = (($130) - 97)|0;
$$sink = $127 ? $131 : $132;
$133 = (($$sink) + 10)|0;
$135 = $133;
}
$134 = $135<<4;
$136 = $s;
$137 = ((($136)) + 1|0);
$138 = HEAP8[$137>>0]|0;
$139 = $138&255;
$140 = ($139|0)<=(57);
$141 = $s;
$142 = ((($141)) + 1|0);
$143 = HEAP8[$142>>0]|0;
$144 = $143&255;
if ($140) {
$145 = (($144) - 48)|0;
$155 = $145;
} else {
$146 = ($144|0)<=(70);
$147 = $s;
$148 = ((($147)) + 1|0);
$149 = HEAP8[$148>>0]|0;
$150 = $149&255;
$151 = (($150) - 65)|0;
$152 = (($150) - 97)|0;
$$sink1 = $146 ? $151 : $152;
$153 = (($$sink1) + 10)|0;
$155 = $153;
}
$154 = (($134) + ($155))|0;
$156 = $154&255;
$157 = $d;
$158 = ((($157)) + 1|0);
$d = $158;
HEAP8[$157>>0] = $156;
$159 = $s;
$160 = ((($159)) + 1|0);
$s = $160;
$161 = $n;
$162 = (($161) + -1)|0;
$n = $162;
}
break;
}
default: {
$163 = $n;
$164 = ($163>>>0)>(2);
if ($164) {
$165 = $s;
$166 = HEAP8[$165>>0]|0;
$167 = $166&255;
$168 = ($167|0)>=(48);
if ($168) {
$169 = $s;
$170 = HEAP8[$169>>0]|0;
$171 = $170&255;
$172 = ($171|0)<=(55);
if ($172) {
$173 = $s;
$174 = ((($173)) + 1|0);
$175 = HEAP8[$174>>0]|0;
$176 = $175&255;
$177 = ($176|0)>=(48);
if ($177) {
$178 = $s;
$179 = ((($178)) + 1|0);
$180 = HEAP8[$179>>0]|0;
$181 = $180&255;
$182 = ($181|0)<=(55);
if ($182) {
$183 = $s;
$184 = ((($183)) + 2|0);
$185 = HEAP8[$184>>0]|0;
$186 = $185&255;
$187 = ($186|0)>=(48);
if ($187) {
$188 = $s;
$189 = ((($188)) + 2|0);
$190 = HEAP8[$189>>0]|0;
$191 = $190&255;
$192 = ($191|0)<=(55);
if ($192) {
$193 = $s;
$194 = HEAP8[$193>>0]|0;
$195 = $194&255;
$196 = (($195) - 48)|0;
$197 = $196<<6;
$198 = $s;
$199 = ((($198)) + 1|0);
$200 = HEAP8[$199>>0]|0;
$201 = $200&255;
$202 = (($201) - 48)|0;
$203 = $202<<3;
$204 = (($197) + ($203))|0;
$205 = $s;
$206 = ((($205)) + 2|0);
$207 = HEAP8[$206>>0]|0;
$208 = $207&255;
$209 = (($208) - 48)|0;
$210 = (($204) + ($209))|0;
$211 = $210&255;
$212 = $d;
$213 = ((($212)) + 1|0);
$d = $213;
HEAP8[$212>>0] = $211;
$214 = $s;
$215 = ((($214)) + 2|0);
$s = $215;
$216 = $n;
$217 = (($216) - 2)|0;
$n = $217;
}
}
}
}
}
}
}
}
}
} while(0);
$esc = 0;
} else {
$218 = ($12|0)==(92);
if ($218) {
$esc = 1;
break;
} else {
$219 = $s;
$220 = HEAP8[$219>>0]|0;
$221 = $d;
$222 = ((($221)) + 1|0);
$d = $222;
HEAP8[$221>>0] = $220;
break;
}
}
} while(0);
$223 = $n;
$224 = (($223) + -1)|0;
$n = $224;
$225 = $s;
$226 = ((($225)) + 1|0);
$s = $226;
}
$227 = $d;
$228 = $2;
$229 = $227;
$230 = $228;
$231 = (($229) - ($230))|0;
STACKTOP = sp;return ($231|0);
}
function _whitespacep($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $p;
$2 = $1;
$3 = HEAP8[$2>>0]|0;
$4 = $3 << 24 >> 24;
switch ($4|0) {
case 10: case 13: case 12: case 11: case 9: case 32: {
$0 = 1;
break;
}
default: {
$0 = 0;
}
}
$5 = $0;
STACKTOP = sp;return ($5|0);
}
function _hextonibble($s) {
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $s;
$2 = $1;
$3 = ($2|0)>=(48);
$4 = $1;
$5 = ($4|0)<=(57);
$or$cond = $3 & $5;
$6 = $1;
do {
if ($or$cond) {
$7 = (($6) - 48)|0;
$0 = $7;
} else {
$8 = ($6|0)>=(65);
$9 = $1;
$10 = ($9|0)<=(70);
$or$cond3 = $8 & $10;
$11 = $1;
if ($or$cond3) {
$12 = (10 + ($11))|0;
$13 = (($12) - 65)|0;
$0 = $13;
break;
}
$14 = ($11|0)>=(97);
$15 = $1;
$16 = ($15|0)<=(102);
$or$cond5 = $14 & $16;
if ($or$cond5) {
$17 = $1;
$18 = (10 + ($17))|0;
$19 = (($18) - 97)|0;
$0 = $19;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$20 = $0;
STACKTOP = sp;return ($20|0);
}
function _get_internal_buffer($list,$r_off) {
$list = $list|0;
$r_off = $r_off|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $level = 0, $n = 0, $p = 0, $type = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 24|0;
$1 = $list;
$2 = $r_off;
$level = 0;
$3 = $2;
HEAP32[$3>>2] = 0;
$4 = $1;
$5 = ($4|0)!=(0|0);
L1: do {
if ($5) {
$6 = $1;
$p = $6;
while(1) {
$7 = $p;
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$type = $9;
$10 = ($9|0)!=(0);
if (!($10)) {
break L1;
}
$11 = $p;
$12 = ((($11)) + 1|0);
$p = $12;
$13 = $type;
$14 = ($13|0)==(1);
if ($14) {
$15 = $p;
;HEAP8[$n>>0]=HEAP8[$15>>0]|0;HEAP8[$n+1>>0]=HEAP8[$15+1>>0]|0;
$16 = HEAP16[$n>>1]|0;
$17 = $16&65535;
$18 = (2 + ($17))|0;
$19 = $p;
$20 = (($19) + ($18)|0);
$p = $20;
continue;
}
$21 = $type;
$22 = ($21|0)==(3);
if (!($22)) {
$34 = $type;
$35 = ($34|0)==(4);
if (!($35)) {
continue;
}
$36 = $level;
$37 = (($36) + -1)|0;
$level = $37;
$38 = $level;
$39 = ($38|0)!=(0);
if ($39) {
continue;
} else {
break;
}
}
$23 = $level;
$24 = ($23|0)!=(0);
if (!($24)) {
$25 = $p;
$26 = ((($25)) + -1|0);
$27 = $1;
$28 = $26;
$29 = $27;
$30 = (($28) - ($29))|0;
$31 = $2;
HEAP32[$31>>2] = $30;
}
$32 = $level;
$33 = (($32) + 1)|0;
$level = $33;
}
$40 = $p;
$41 = $1;
$42 = $40;
$43 = $41;
$44 = (($42) - ($43))|0;
$0 = $44;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
} while(0);
$0 = 0;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
function _normalize($list) {
$list = $list|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $list;
$2 = $1;
$3 = ($2|0)!=(0|0);
do {
if ($3) {
$4 = $1;
$p = $4;
$5 = $p;
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = ($7|0)==(0);
if ($8) {
$9 = $1;
__gcry_sexp_release($9);
$0 = 0;
break;
}
$10 = $p;
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = ($12|0)==(3);
if ($13) {
$14 = $p;
$15 = ((($14)) + 1|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = ($17|0)==(4);
if ($18) {
$19 = $1;
__gcry_sexp_release($19);
$0 = 0;
break;
}
}
$20 = $1;
$0 = $20;
} else {
$0 = 0;
}
} while(0);
$21 = $0;
STACKTOP = sp;return ($21|0);
}
function __gcry_sexp_release($sexp) {
$sexp = $sexp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $cond = 0, $n = 0, $p = 0, $type = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 32|0;
$_vset_long = sp;
$0 = $sexp;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = (__gcry_is_secure($3)|0);
$5 = ($4|0)!=(0);
L4: do {
if ($5) {
$6 = $0;
$p = $6;
while(1) {
$7 = $p;
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$type = $9;
$10 = ($9|0)!=(0);
if (!($10)) {
break;
}
$11 = $p;
$12 = ((($11)) + 1|0);
$p = $12;
$13 = $type;
$cond = ($13|0)==(1);
if (!($cond)) {
continue;
}
$14 = $p;
;HEAP8[$n>>0]=HEAP8[$14>>0]|0;HEAP8[$n+1>>0]=HEAP8[$14+1>>0]|0;
$15 = $p;
$16 = ((($15)) + 2|0);
$p = $16;
$17 = HEAP16[$n>>1]|0;
$18 = $17&65535;
$19 = $p;
$20 = (($19) + ($18)|0);
$p = $20;
}
$21 = $0;
$_vptr = $21;
$22 = $p;
$23 = $0;
$24 = $22;
$25 = $23;
$26 = (($24) - ($25))|0;
$_vlen = $26;
$_vset = 0;
$27 = $_vset;
$28 = $27&255;
$29 = $_vset_long;
$30 = $29;
HEAP32[$30>>2] = $28;
$31 = (($29) + 4)|0;
$32 = $31;
HEAP32[$32>>2] = 0;
while(1) {
$33 = $_vptr;
$34 = $33;
$35 = $34 & 7;
$36 = ($35|0)!=(0);
$37 = $_vlen;
$38 = ($37|0)!=(0);
$39 = $36 ? $38 : 0;
if (!($39)) {
break;
}
$40 = $_vset;
$41 = $_vptr;
HEAP8[$41>>0] = $40;
$42 = $_vptr;
$43 = ((($42)) + 1|0);
$_vptr = $43;
$44 = $_vlen;
$45 = (($44) + -1)|0;
$_vlen = $45;
}
$46 = $_vlen;
$47 = ($46>>>0)<(8);
if (!($47)) {
$48 = $_vset_long;
$49 = $48;
$50 = HEAP32[$49>>2]|0;
$51 = (($48) + 4)|0;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (___muldi3(($50|0),($53|0),16843009,16843009)|0);
$55 = tempRet0;
$56 = $_vset_long;
$57 = $56;
HEAP32[$57>>2] = $54;
$58 = (($56) + 4)|0;
$59 = $58;
HEAP32[$59>>2] = $55;
while(1) {
$60 = $_vptr;
$_vptr_long = $60;
$61 = $_vset_long;
$62 = $61;
$63 = HEAP32[$62>>2]|0;
$64 = (($61) + 4)|0;
$65 = $64;
$66 = HEAP32[$65>>2]|0;
$67 = $_vptr_long;
$68 = $67;
$69 = $68;
HEAP32[$69>>2] = $63;
$70 = (($68) + 4)|0;
$71 = $70;
HEAP32[$71>>2] = $66;
$72 = $_vlen;
$73 = (($72) - 8)|0;
$_vlen = $73;
$74 = $_vptr;
$75 = ((($74)) + 8|0);
$_vptr = $75;
$76 = $_vlen;
$77 = ($76>>>0)>=(8);
if (!($77)) {
break;
}
}
}
while(1) {
$78 = $_vlen;
$79 = ($78|0)!=(0);
if (!($79)) {
break L4;
}
$80 = $_vset;
$81 = $_vptr;
HEAP8[$81>>0] = $80;
$82 = $_vptr;
$83 = ((($82)) + 1|0);
$_vptr = $83;
$84 = $_vlen;
$85 = (($84) + -1)|0;
$_vlen = $85;
}
}
} while(0);
$86 = $0;
__gcry_free($86);
STACKTOP = sp;return;
}
function __gcry_sexp_new($retsexp,$buffer,$length,$autodetect) {
$retsexp = $retsexp|0;
$buffer = $buffer|0;
$length = $length|0;
$autodetect = $autodetect|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $retsexp;
$1 = $buffer;
$2 = $length;
$3 = $autodetect;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (__gcry_sexp_create($4,$5,$6,$7,0)|0);
STACKTOP = sp;return ($8|0);
}
function __gcry_sexp_find_token($list,$tok,$toklen) {
$list = $list|0;
$tok = $tok|0;
$toklen = $toklen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $d = 0;
var $head = 0, $level = 0, $n = 0, $newlist = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 36|0;
$1 = $list;
$2 = $tok;
$3 = $toklen;
$4 = $1;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$0 = 0;
$118 = $0;
STACKTOP = sp;return ($118|0);
}
$6 = $3;
$7 = ($6|0)!=(0);
if (!($7)) {
$8 = $2;
$9 = (_strlen($8)|0);
$3 = $9;
}
$10 = $1;
$p = $10;
while(1) {
$11 = $p;
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = ($13|0)!=(0);
if (!($14)) {
label = 29;
break;
}
$15 = $p;
$16 = HEAP8[$15>>0]|0;
$17 = $16&255;
$18 = ($17|0)==(3);
if ($18) {
$19 = $p;
$20 = ((($19)) + 1|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21&255;
$23 = ($22|0)==(1);
if ($23) {
$24 = $p;
$head = $24;
$25 = $p;
$26 = ((($25)) + 2|0);
$p = $26;
$27 = $p;
;HEAP8[$n>>0]=HEAP8[$27>>0]|0;HEAP8[$n+1>>0]=HEAP8[$27+1>>0]|0;
$28 = $p;
$29 = ((($28)) + 2|0);
$p = $29;
$30 = HEAP16[$n>>1]|0;
$31 = $30&65535;
$32 = $3;
$33 = ($31|0)==($32|0);
if ($33) {
$34 = $p;
$35 = $2;
$36 = $3;
$37 = (_memcmp($34,$35,$36)|0);
$38 = ($37|0)!=(0);
if (!($38)) {
break;
}
}
$100 = HEAP16[$n>>1]|0;
$101 = $100&65535;
$102 = $p;
$103 = (($102) + ($101)|0);
$p = $103;
continue;
}
}
$104 = $p;
$105 = HEAP8[$104>>0]|0;
$106 = $105&255;
$107 = ($106|0)==(1);
if ($107) {
$108 = $p;
$109 = ((($108)) + 1|0);
$p = $109;
;HEAP8[$n>>0]=HEAP8[$109>>0]|0;HEAP8[$n+1>>0]=HEAP8[$109+1>>0]|0;
$110 = $p;
$111 = ((($110)) + 2|0);
$p = $111;
$112 = HEAP16[$n>>1]|0;
$113 = $112&65535;
$114 = $p;
$115 = (($114) + ($113)|0);
$p = $115;
continue;
} else {
$116 = $p;
$117 = ((($116)) + 1|0);
$p = $117;
continue;
}
}
if ((label|0) == 29) {
$0 = 0;
$118 = $0;
STACKTOP = sp;return ($118|0);
}
$level = 1;
$39 = HEAP16[$n>>1]|0;
$40 = $39&65535;
$41 = $p;
$42 = (($41) + ($40)|0);
$p = $42;
L25: while(1) {
$43 = $level;
$44 = ($43|0)!=(0);
$45 = $p;
if (!($44)) {
break;
}
$46 = HEAP8[$45>>0]|0;
$47 = $46&255;
$48 = ($47|0)==(1);
do {
if ($48) {
$49 = $p;
$50 = ((($49)) + 1|0);
$p = $50;
;HEAP8[$n>>0]=HEAP8[$50>>0]|0;HEAP8[$n+1>>0]=HEAP8[$50+1>>0]|0;
$51 = HEAP16[$n>>1]|0;
$52 = $51&65535;
$53 = (2 + ($52))|0;
$54 = $p;
$55 = (($54) + ($53)|0);
$p = $55;
$56 = $p;
$57 = ((($56)) + -1|0);
$p = $57;
} else {
$58 = $p;
$59 = HEAP8[$58>>0]|0;
$60 = $59&255;
$61 = ($60|0)==(3);
if ($61) {
$62 = $level;
$63 = (($62) + 1)|0;
$level = $63;
break;
}
$64 = $p;
$65 = HEAP8[$64>>0]|0;
$66 = $65&255;
$67 = ($66|0)==(4);
if ($67) {
$68 = $level;
$69 = (($68) + -1)|0;
$level = $69;
break;
} else {
$70 = $p;
$71 = HEAP8[$70>>0]|0;
$72 = $71&255;
$73 = ($72|0)==(0);
if ($73) {
label = 20;
break L25;
} else {
break;
}
}
}
} while(0);
$74 = $p;
$75 = ((($74)) + 1|0);
$p = $75;
}
if ((label|0) == 20) {
__gcry_bug(22685,481,22716);
// unreachable;
}
$76 = $head;
$77 = $45;
$78 = $76;
$79 = (($77) - ($78))|0;
$80 = $79&65535;
HEAP16[$n>>1] = $80;
$81 = HEAP16[$n>>1]|0;
$82 = $81&65535;
$83 = (1 + ($82))|0;
$84 = (__gcry_malloc($83)|0);
$newlist = $84;
$85 = $newlist;
$86 = ($85|0)!=(0|0);
if ($86) {
$87 = $newlist;
$d = $87;
$88 = $d;
$89 = $head;
$90 = HEAP16[$n>>1]|0;
$91 = $90&65535;
_memcpy(($88|0),($89|0),($91|0))|0;
$92 = HEAP16[$n>>1]|0;
$93 = $92&65535;
$94 = $d;
$95 = (($94) + ($93)|0);
$d = $95;
$96 = $d;
$97 = ((($96)) + 1|0);
$d = $97;
HEAP8[$96>>0] = 0;
$98 = $newlist;
$99 = (_normalize($98)|0);
$0 = $99;
$118 = $0;
STACKTOP = sp;return ($118|0);
} else {
$0 = 0;
$118 = $0;
STACKTOP = sp;return ($118|0);
}
return (0)|0;
}
function __gcry_sexp_length($list) {
$list = $list|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $length = 0, $level = 0, $n = 0;
var $p = 0, $type = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 24|0;
$1 = $list;
$length = 0;
$level = 0;
$2 = $1;
$3 = ($2|0)!=(0|0);
if (!($3)) {
$0 = 0;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
$4 = $1;
$p = $4;
while(1) {
$5 = $p;
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$type = $7;
$8 = ($7|0)!=(0);
if (!($8)) {
break;
}
$9 = $p;
$10 = ((($9)) + 1|0);
$p = $10;
$11 = $type;
$12 = ($11|0)==(1);
if ($12) {
$13 = $p;
;HEAP8[$n>>0]=HEAP8[$13>>0]|0;HEAP8[$n+1>>0]=HEAP8[$13+1>>0]|0;
$14 = HEAP16[$n>>1]|0;
$15 = $14&65535;
$16 = (2 + ($15))|0;
$17 = $p;
$18 = (($17) + ($16)|0);
$p = $18;
$19 = $level;
$20 = ($19|0)==(1);
if (!($20)) {
continue;
}
$21 = $length;
$22 = (($21) + 1)|0;
$length = $22;
continue;
}
$23 = $type;
$24 = ($23|0)==(3);
if (!($24)) {
$31 = $type;
$32 = ($31|0)==(4);
if (!($32)) {
continue;
}
$33 = $level;
$34 = (($33) + -1)|0;
$level = $34;
continue;
}
$25 = $level;
$26 = ($25|0)==(1);
if ($26) {
$27 = $length;
$28 = (($27) + 1)|0;
$length = $28;
}
$29 = $level;
$30 = (($29) + 1)|0;
$level = $30;
}
$35 = $length;
$0 = $35;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
function __gcry_sexp_nth($list,$number) {
$list = $list|0;
$number = $number|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $d = 0, $head = 0, $level = 0, $n = 0, $newlist = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 32|0;
$1 = $list;
$2 = $number;
$level = 0;
$3 = $1;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $1;
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = ($7|0)!=(3);
if (!($8)) {
$9 = $1;
$p = $9;
while(1) {
$10 = $2;
$11 = ($10|0)>(0);
$12 = $p;
$13 = ((($12)) + 1|0);
$p = $13;
$14 = $p;
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = ($16|0)==(1);
if (!($11)) {
break;
}
if ($17) {
$18 = $p;
$19 = ((($18)) + 1|0);
$p = $19;
;HEAP8[$n>>0]=HEAP8[$19>>0]|0;HEAP8[$n+1>>0]=HEAP8[$19+1>>0]|0;
$20 = HEAP16[$n>>1]|0;
$21 = $20&65535;
$22 = (2 + ($21))|0;
$23 = $p;
$24 = (($23) + ($22)|0);
$p = $24;
$25 = $p;
$26 = ((($25)) + -1|0);
$p = $26;
$27 = $level;
$28 = ($27|0)!=(0);
if ($28) {
continue;
}
$29 = $2;
$30 = (($29) + -1)|0;
$2 = $30;
continue;
}
$31 = $p;
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = ($33|0)==(3);
if ($34) {
$35 = $level;
$36 = (($35) + 1)|0;
$level = $36;
continue;
}
$37 = $p;
$38 = HEAP8[$37>>0]|0;
$39 = $38&255;
$40 = ($39|0)==(4);
if (!($40)) {
$47 = $p;
$48 = HEAP8[$47>>0]|0;
$49 = $48&255;
$50 = ($49|0)==(0);
if ($50) {
label = 15;
break;
} else {
continue;
}
}
$41 = $level;
$42 = (($41) + -1)|0;
$level = $42;
$43 = $level;
$44 = ($43|0)!=(0);
if ($44) {
continue;
}
$45 = $2;
$46 = (($45) + -1)|0;
$2 = $46;
}
if ((label|0) == 15) {
$0 = 0;
$140 = $0;
STACKTOP = sp;return ($140|0);
}
do {
if ($17) {
$51 = $p;
$52 = ((($51)) + 1|0);
;HEAP8[$n>>0]=HEAP8[$52>>0]|0;HEAP8[$n+1>>0]=HEAP8[$52+1>>0]|0;
$53 = HEAP16[$n>>1]|0;
$54 = $53&65535;
$55 = (5 + ($54))|0;
$56 = (($55) + 1)|0;
$57 = (__gcry_malloc($56)|0);
$newlist = $57;
$58 = $newlist;
$59 = ($58|0)!=(0|0);
if ($59) {
$60 = $newlist;
$d = $60;
$61 = $d;
$62 = ((($61)) + 1|0);
$d = $62;
HEAP8[$61>>0] = 3;
$63 = $d;
$64 = $p;
$65 = HEAP16[$n>>1]|0;
$66 = $65&65535;
$67 = (3 + ($66))|0;
_memcpy(($63|0),($64|0),($67|0))|0;
$68 = HEAP16[$n>>1]|0;
$69 = $68&65535;
$70 = (3 + ($69))|0;
$71 = $d;
$72 = (($71) + ($70)|0);
$d = $72;
$73 = $d;
$74 = ((($73)) + 1|0);
$d = $74;
HEAP8[$73>>0] = 4;
$75 = $d;
HEAP8[$75>>0] = 0;
break;
}
$0 = 0;
$140 = $0;
STACKTOP = sp;return ($140|0);
} else {
$76 = $p;
$77 = HEAP8[$76>>0]|0;
$78 = $77&255;
$79 = ($78|0)==(3);
if (!($79)) {
$newlist = 0;
break;
}
$80 = $p;
$head = $80;
$level = 1;
L32: while(1) {
$81 = $p;
$82 = ((($81)) + 1|0);
$p = $82;
$83 = $p;
$84 = HEAP8[$83>>0]|0;
$85 = $84&255;
$86 = ($85|0)==(1);
do {
if ($86) {
$87 = $p;
$88 = ((($87)) + 1|0);
$p = $88;
;HEAP8[$n>>0]=HEAP8[$88>>0]|0;HEAP8[$n+1>>0]=HEAP8[$88+1>>0]|0;
$89 = HEAP16[$n>>1]|0;
$90 = $89&65535;
$91 = (2 + ($90))|0;
$92 = $p;
$93 = (($92) + ($91)|0);
$p = $93;
$94 = $p;
$95 = ((($94)) + -1|0);
$p = $95;
} else {
$96 = $p;
$97 = HEAP8[$96>>0]|0;
$98 = $97&255;
$99 = ($98|0)==(3);
if ($99) {
$100 = $level;
$101 = (($100) + 1)|0;
$level = $101;
break;
}
$102 = $p;
$103 = HEAP8[$102>>0]|0;
$104 = $103&255;
$105 = ($104|0)==(4);
if ($105) {
$106 = $level;
$107 = (($106) + -1)|0;
$level = $107;
break;
} else {
$108 = $p;
$109 = HEAP8[$108>>0]|0;
$110 = $109&255;
$111 = ($110|0)==(0);
if ($111) {
label = 29;
break L32;
} else {
break;
}
}
}
} while(0);
$112 = $level;
$113 = ($112|0)!=(0);
if (!($113)) {
break;
}
}
if ((label|0) == 29) {
__gcry_bug(22685,673,22738);
// unreachable;
}
$114 = $p;
$115 = ((($114)) + 1|0);
$116 = $head;
$117 = $115;
$118 = $116;
$119 = (($117) - ($118))|0;
$120 = $119&65535;
HEAP16[$n>>1] = $120;
$121 = HEAP16[$n>>1]|0;
$122 = $121&65535;
$123 = (1 + ($122))|0;
$124 = (__gcry_malloc($123)|0);
$newlist = $124;
$125 = $newlist;
$126 = ($125|0)!=(0|0);
if ($126) {
$127 = $newlist;
$d = $127;
$128 = $d;
$129 = $head;
$130 = HEAP16[$n>>1]|0;
$131 = $130&65535;
_memcpy(($128|0),($129|0),($131|0))|0;
$132 = HEAP16[$n>>1]|0;
$133 = $132&65535;
$134 = $d;
$135 = (($134) + ($133)|0);
$d = $135;
$136 = $d;
$137 = ((($136)) + 1|0);
$d = $137;
HEAP8[$136>>0] = 0;
break;
}
$0 = 0;
$140 = $0;
STACKTOP = sp;return ($140|0);
}
} while(0);
$138 = $newlist;
$139 = (_normalize($138)|0);
$0 = $139;
$140 = $0;
STACKTOP = sp;return ($140|0);
}
}
$0 = 0;
$140 = $0;
STACKTOP = sp;return ($140|0);
}
function __gcry_sexp_car($list) {
$list = $list|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $list;
$1 = $0;
$2 = (__gcry_sexp_nth($1,0)|0);
STACKTOP = sp;return ($2|0);
}
function __gcry_sexp_nth_data($list,$number,$datalen) {
$list = $list|0;
$number = $number|0;
$datalen = $datalen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $list;
$1 = $number;
$2 = $datalen;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (_do_sexp_nth_data($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _do_sexp_nth_data($list,$number,$datalen) {
$list = $list|0;
$number = $number|0;
$datalen = $datalen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $level = 0, $n = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 24|0;
$1 = $list;
$2 = $number;
$3 = $datalen;
$level = 0;
$4 = $3;
HEAP32[$4>>2] = 0;
$5 = $1;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$0 = 0;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
$7 = $1;
$p = $7;
$8 = $p;
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = ($10|0)==(3);
if ($11) {
$12 = $p;
$13 = ((($12)) + 1|0);
$p = $13;
} else {
$14 = $2;
$15 = ($14|0)!=(0);
if ($15) {
$0 = 0;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
}
L10: while(1) {
$16 = $2;
$17 = ($16|0)>(0);
$18 = $p;
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$21 = ($20|0)==(1);
if (!($17)) {
break;
}
do {
if ($21) {
$22 = $p;
$23 = ((($22)) + 1|0);
$p = $23;
;HEAP8[$n>>0]=HEAP8[$23>>0]|0;HEAP8[$n+1>>0]=HEAP8[$23+1>>0]|0;
$24 = HEAP16[$n>>1]|0;
$25 = $24&65535;
$26 = (2 + ($25))|0;
$27 = $p;
$28 = (($27) + ($26)|0);
$p = $28;
$29 = $p;
$30 = ((($29)) + -1|0);
$p = $30;
$31 = $level;
$32 = ($31|0)!=(0);
if (!($32)) {
$33 = $2;
$34 = (($33) + -1)|0;
$2 = $34;
}
} else {
$35 = $p;
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = ($37|0)==(3);
if ($38) {
$39 = $level;
$40 = (($39) + 1)|0;
$level = $40;
break;
}
$41 = $p;
$42 = HEAP8[$41>>0]|0;
$43 = $42&255;
$44 = ($43|0)==(4);
if (!($44)) {
$51 = $p;
$52 = HEAP8[$51>>0]|0;
$53 = $52&255;
$54 = ($53|0)==(0);
if ($54) {
label = 17;
break L10;
} else {
break;
}
}
$45 = $level;
$46 = (($45) + -1)|0;
$level = $46;
$47 = $level;
$48 = ($47|0)!=(0);
if (!($48)) {
$49 = $2;
$50 = (($49) + -1)|0;
$2 = $50;
}
}
} while(0);
$55 = $p;
$56 = ((($55)) + 1|0);
$p = $56;
}
if ((label|0) == 17) {
$0 = 0;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
if ($21) {
$57 = $p;
$58 = ((($57)) + 1|0);
$p = $58;
;HEAP8[$n>>0]=HEAP8[$58>>0]|0;HEAP8[$n+1>>0]=HEAP8[$58+1>>0]|0;
$59 = HEAP16[$n>>1]|0;
$60 = $59&65535;
$61 = $3;
HEAP32[$61>>2] = $60;
$62 = $p;
$63 = ((($62)) + 2|0);
$0 = $63;
$64 = $0;
STACKTOP = sp;return ($64|0);
} else {
$0 = 0;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
return (0)|0;
}
function __gcry_sexp_nth_buffer($list,$number,$rlength) {
$list = $list|0;
$number = $number|0;
$rlength = $rlength|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $buf = 0, $n = 0, $or$cond = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 4|0;
$1 = $list;
$2 = $number;
$3 = $rlength;
$4 = $3;
HEAP32[$4>>2] = 0;
$5 = $1;
$6 = $2;
$7 = (_do_sexp_nth_data($5,$6,$n)|0);
$s = $7;
$8 = $s;
$9 = ($8|0)!=(0|0);
$10 = HEAP32[$n>>2]|0;
$11 = ($10|0)!=(0);
$or$cond = $9 & $11;
if (!($or$cond)) {
$0 = 0;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
$12 = HEAP32[$n>>2]|0;
$13 = (__gcry_malloc($12)|0);
$buf = $13;
$14 = $buf;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $buf;
$17 = $s;
$18 = HEAP32[$n>>2]|0;
_memcpy(($16|0),($17|0),($18|0))|0;
$19 = HEAP32[$n>>2]|0;
$20 = $3;
HEAP32[$20>>2] = $19;
$21 = $buf;
$0 = $21;
$22 = $0;
STACKTOP = sp;return ($22|0);
} else {
$0 = 0;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
return (0)|0;
}
function __gcry_sexp_nth_string($list,$number) {
$list = $list|0;
$number = $number|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $buf = 0, $n = 0, $or$cond = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 4|0;
$1 = $list;
$2 = $number;
$3 = $1;
$4 = $2;
$5 = (_do_sexp_nth_data($3,$4,$n)|0);
$s = $5;
$6 = $s;
$7 = ($6|0)==(0|0);
$8 = HEAP32[$n>>2]|0;
$9 = ($8>>>0)<(1);
$or$cond = $7 | $9;
if (!($or$cond)) {
$10 = HEAP32[$n>>2]|0;
$11 = (($10) + 1)|0;
$12 = ($11>>>0)<(1);
if (!($12)) {
$13 = HEAP32[$n>>2]|0;
$14 = (($13) + 1)|0;
$15 = (__gcry_malloc($14)|0);
$buf = $15;
$16 = $buf;
$17 = ($16|0)!=(0|0);
if ($17) {
$18 = $buf;
$19 = $s;
$20 = HEAP32[$n>>2]|0;
_memcpy(($18|0),($19|0),($20|0))|0;
$21 = HEAP32[$n>>2]|0;
$22 = $buf;
$23 = (($22) + ($21)|0);
HEAP8[$23>>0] = 0;
$24 = $buf;
$0 = $24;
$25 = $0;
STACKTOP = sp;return ($25|0);
} else {
$0 = 0;
$25 = $0;
STACKTOP = sp;return ($25|0);
}
}
}
$0 = 0;
$25 = $0;
STACKTOP = sp;return ($25|0);
}
function __gcry_sexp_nth_mpi($list,$number,$mpifmt) {
$list = $list|0;
$number = $number|0;
$mpifmt = $mpifmt|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $a = 0, $n = 0;
var $p = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 12|0;
$a = sp + 8|0;
$1 = $list;
$2 = $number;
$3 = $mpifmt;
$4 = $3;
$5 = ($4|0)==(8);
do {
if ($5) {
$6 = $1;
$7 = $2;
$8 = (__gcry_sexp_nth_buffer($6,$7,$n)|0);
$p = $8;
$9 = $p;
$10 = ($9|0)!=(0|0);
if (!($10)) {
$0 = 0;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
$11 = $1;
$12 = (__gcry_is_secure($11)|0);
$13 = ($12|0)!=(0);
if ($13) {
$14 = (__gcry_mpi_snew(0)|0);
$16 = $14;
} else {
$15 = (__gcry_mpi_new(0)|0);
$16 = $15;
}
HEAP32[$a>>2] = $16;
$17 = HEAP32[$a>>2]|0;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = HEAP32[$a>>2]|0;
$20 = $p;
$21 = HEAP32[$n>>2]|0;
$22 = $21<<3;
(__gcry_mpi_set_opaque($19,$20,$22)|0);
break;
} else {
$23 = $p;
__gcry_free($23);
break;
}
} else {
$24 = $3;
$25 = ($24|0)!=(0);
if (!($25)) {
$3 = 1;
}
$26 = $1;
$27 = $2;
$28 = (_do_sexp_nth_data($26,$27,$n)|0);
$s = $28;
$29 = $s;
$30 = ($29|0)!=(0|0);
if (!($30)) {
$0 = 0;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
$31 = $3;
$32 = $s;
$33 = HEAP32[$n>>2]|0;
$34 = (__gcry_mpi_scan($a,$31,$32,$33,0)|0);
$35 = ($34|0)!=(0);
if ($35) {
$0 = 0;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
}
} while(0);
$36 = HEAP32[$a>>2]|0;
$0 = $36;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
function __gcry_sexp_cdr($list) {
$list = $list|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0;
var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $d = 0, $head = 0, $level = 0, $n = 0, $newlist = 0, $p = 0;
var $skip = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 32|0;
$1 = $list;
$level = 0;
$skip = 1;
$2 = $1;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $1;
$5 = HEAP8[$4>>0]|0;
$6 = $5&255;
$7 = ($6|0)!=(3);
if (!($7)) {
$8 = $1;
$p = $8;
while(1) {
$9 = $skip;
$10 = ($9|0)>(0);
$11 = $p;
$12 = ((($11)) + 1|0);
$p = $12;
$13 = $p;
if (!($10)) {
break;
}
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = ($15|0)==(1);
if ($16) {
$17 = $p;
$18 = ((($17)) + 1|0);
$p = $18;
;HEAP8[$n>>0]=HEAP8[$18>>0]|0;HEAP8[$n+1>>0]=HEAP8[$18+1>>0]|0;
$19 = HEAP16[$n>>1]|0;
$20 = $19&65535;
$21 = (2 + ($20))|0;
$22 = $p;
$23 = (($22) + ($21)|0);
$p = $23;
$24 = $p;
$25 = ((($24)) + -1|0);
$p = $25;
$26 = $level;
$27 = ($26|0)!=(0);
if ($27) {
continue;
}
$28 = $skip;
$29 = (($28) + -1)|0;
$skip = $29;
continue;
}
$30 = $p;
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
$33 = ($32|0)==(3);
if ($33) {
$34 = $level;
$35 = (($34) + 1)|0;
$level = $35;
continue;
}
$36 = $p;
$37 = HEAP8[$36>>0]|0;
$38 = $37&255;
$39 = ($38|0)==(4);
if (!($39)) {
$46 = $p;
$47 = HEAP8[$46>>0]|0;
$48 = $47&255;
$49 = ($48|0)==(0);
if ($49) {
label = 15;
break;
} else {
continue;
}
}
$40 = $level;
$41 = (($40) + -1)|0;
$level = $41;
$42 = $level;
$43 = ($42|0)!=(0);
if ($43) {
continue;
}
$44 = $skip;
$45 = (($44) + -1)|0;
$skip = $45;
}
if ((label|0) == 15) {
$0 = 0;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
$head = $13;
$level = 0;
L22: while(1) {
$50 = $p;
$51 = HEAP8[$50>>0]|0;
$52 = $51&255;
$53 = ($52|0)==(1);
do {
if ($53) {
$54 = $p;
$55 = ((($54)) + 1|0);
$p = $55;
;HEAP8[$n>>0]=HEAP8[$55>>0]|0;HEAP8[$n+1>>0]=HEAP8[$55+1>>0]|0;
$56 = HEAP16[$n>>1]|0;
$57 = $56&65535;
$58 = (2 + ($57))|0;
$59 = $p;
$60 = (($59) + ($58)|0);
$p = $60;
$61 = $p;
$62 = ((($61)) + -1|0);
$p = $62;
} else {
$63 = $p;
$64 = HEAP8[$63>>0]|0;
$65 = $64&255;
$66 = ($65|0)==(3);
if ($66) {
$67 = $level;
$68 = (($67) + 1)|0;
$level = $68;
break;
}
$69 = $p;
$70 = HEAP8[$69>>0]|0;
$71 = $70&255;
$72 = ($71|0)==(4);
if ($72) {
$73 = $level;
$74 = (($73) + -1)|0;
$level = $74;
break;
} else {
$75 = $p;
$76 = HEAP8[$75>>0]|0;
$77 = $76&255;
$78 = ($77|0)==(0);
if ($78) {
label = 24;
break L22;
} else {
break;
}
}
}
} while(0);
$79 = $p;
$80 = ((($79)) + 1|0);
$p = $80;
$81 = $level;
$82 = ($81|0)!=(0);
if (!($82)) {
break;
}
}
if ((label|0) == 24) {
$0 = 0;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
$83 = $p;
$84 = $head;
$85 = $83;
$86 = $84;
$87 = (($85) - ($86))|0;
$88 = $87&65535;
HEAP16[$n>>1] = $88;
$89 = HEAP16[$n>>1]|0;
$90 = $89&65535;
$91 = (1 + ($90))|0;
$92 = (($91) + 2)|0;
$93 = (__gcry_malloc($92)|0);
$newlist = $93;
$94 = $newlist;
$95 = ($94|0)!=(0|0);
if ($95) {
$96 = $newlist;
$d = $96;
$97 = $d;
$98 = ((($97)) + 1|0);
$d = $98;
HEAP8[$97>>0] = 3;
$99 = $d;
$100 = $head;
$101 = HEAP16[$n>>1]|0;
$102 = $101&65535;
_memcpy(($99|0),($100|0),($102|0))|0;
$103 = HEAP16[$n>>1]|0;
$104 = $103&65535;
$105 = $d;
$106 = (($105) + ($104)|0);
$d = $106;
$107 = $d;
$108 = ((($107)) + 1|0);
$d = $108;
HEAP8[$107>>0] = 4;
$109 = $d;
$110 = ((($109)) + 1|0);
$d = $110;
HEAP8[$109>>0] = 0;
$111 = $newlist;
$112 = (_normalize($111)|0);
$0 = $112;
$113 = $0;
STACKTOP = sp;return ($113|0);
} else {
$0 = 0;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
}
}
$0 = 0;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
function __gcry_sexp_cadr($list) {
$list = $list|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $a = 0, $b = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $list;
$1 = $0;
$2 = (__gcry_sexp_cdr($1)|0);
$a = $2;
$3 = $a;
$4 = (__gcry_sexp_car($3)|0);
$b = $4;
$5 = $a;
__gcry_sexp_release($5);
$6 = $b;
STACKTOP = sp;return ($6|0);
}
function __gcry_sexp_build($retsexp,$erroff,$format,$varargs) {
$retsexp = $retsexp|0;
$erroff = $erroff|0;
$format = $format|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arg_ptr = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $retsexp;
$1 = $erroff;
$2 = $format;
HEAP32[$arg_ptr>>2] = $varargs;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = $2;
$7 = (_strlen($6)|0);
$8 = (_do_vsexp_sscan($3,$4,$5,$7,1,0,$arg_ptr)|0);
$rc = $8;
$9 = $rc;
STACKTOP = sp;return ($9|0);
}
function __gcry_sexp_vbuild($retsexp,$erroff,$format,$arg_ptr) {
$retsexp = $retsexp|0;
$erroff = $erroff|0;
$format = $format|0;
$arg_ptr = $arg_ptr|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $retsexp;
$1 = $erroff;
$2 = $format;
$3 = $arg_ptr;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $2;
$8 = (_strlen($7)|0);
$9 = $3;
$10 = (_do_vsexp_sscan($4,$5,$6,$8,1,0,$9)|0);
STACKTOP = sp;return ($10|0);
}
function __gcry_sexp_sscan($retsexp,$erroff,$buffer,$length) {
$retsexp = $retsexp|0;
$erroff = $erroff|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $retsexp;
$1 = $erroff;
$2 = $buffer;
$3 = $length;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (_do_sexp_sscan($4,$5,$6,$7,0,0,$vararg_buffer)|0);
STACKTOP = sp;return ($8|0);
}
function __gcry_sexp_sprint($list,$mode,$buffer,$maxlength) {
$list = $list|0;
$mode = $mode|0;
$buffer = $buffer|0;
$maxlength = $maxlength|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $d = 0, $i = 0, $indent = 0, $len = 0, $n = 0, $nn = 0, $numbuf = 0, $or$cond = 0, $s = 0, $type = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$n = sp + 52|0;
$numbuf = sp + 56|0;
$1 = $list;
$2 = $mode;
$3 = $buffer;
$4 = $maxlength;
$len = 0;
$indent = 0;
$5 = $1;
$6 = ($5|0)!=(0|0);
$7 = $1;
$8 = $6 ? $7 : 22753;
$s = $8;
$9 = $3;
$d = $9;
L1: while(1) {
$10 = $s;
$11 = HEAP8[$10>>0]|0;
$12 = $11&255;
$13 = ($12|0)!=(0);
if (!($13)) {
label = 55;
break;
}
$14 = $s;
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
switch ($16|0) {
case 3: {
$17 = $s;
$18 = ((($17)) + 1|0);
$s = $18;
$19 = $2;
$20 = ($19|0)!=(1);
if ($20) {
$21 = $indent;
$22 = ($21|0)!=(0);
if ($22) {
$23 = $len;
$24 = (($23) + 1)|0;
$len = $24;
}
$25 = $indent;
$26 = $len;
$27 = (($26) + ($25))|0;
$len = $27;
}
$28 = $len;
$29 = (($28) + 1)|0;
$len = $29;
$30 = $3;
$31 = ($30|0)!=(0|0);
if ($31) {
$32 = $len;
$33 = $4;
$34 = ($32>>>0)>=($33>>>0);
if ($34) {
label = 10;
break L1;
}
$35 = $2;
$36 = ($35|0)!=(1);
L15: do {
if ($36) {
$37 = $indent;
$38 = ($37|0)!=(0);
if ($38) {
$39 = $d;
$40 = ((($39)) + 1|0);
$d = $40;
HEAP8[$39>>0] = 10;
}
$i = 0;
while(1) {
$41 = $i;
$42 = $indent;
$43 = ($41|0)<($42|0);
if (!($43)) {
break L15;
}
$44 = $d;
$45 = ((($44)) + 1|0);
$d = $45;
HEAP8[$44>>0] = 32;
$46 = $i;
$47 = (($46) + 1)|0;
$i = $47;
}
}
} while(0);
$48 = $d;
$49 = ((($48)) + 1|0);
$d = $49;
HEAP8[$48>>0] = 40;
}
$50 = $indent;
$51 = (($50) + 1)|0;
$indent = $51;
continue L1;
break;
}
case 4: {
$52 = $s;
$53 = ((($52)) + 1|0);
$s = $53;
$54 = $len;
$55 = (($54) + 1)|0;
$len = $55;
$56 = $3;
$57 = ($56|0)!=(0|0);
if ($57) {
$58 = $len;
$59 = $4;
$60 = ($58>>>0)>=($59>>>0);
if ($60) {
label = 21;
break L1;
}
$61 = $d;
$62 = ((($61)) + 1|0);
$d = $62;
HEAP8[$61>>0] = 41;
}
$63 = $indent;
$64 = (($63) + -1)|0;
$indent = $64;
$65 = $s;
$66 = HEAP8[$65>>0]|0;
$67 = $66&255;
$68 = ($67|0)!=(3);
if (!($68)) {
continue L1;
}
$69 = $s;
$70 = HEAP8[$69>>0]|0;
$71 = $70&255;
$72 = ($71|0)!=(0);
$73 = $2;
$74 = ($73|0)!=(1);
$or$cond = $72 & $74;
if (!($or$cond)) {
continue L1;
}
$75 = $len;
$76 = (($75) + 1)|0;
$len = $76;
$77 = $indent;
$78 = $len;
$79 = (($78) + ($77))|0;
$len = $79;
$80 = $3;
$81 = ($80|0)!=(0|0);
if (!($81)) {
continue L1;
}
$82 = $len;
$83 = $4;
$84 = ($82>>>0)>=($83>>>0);
if ($84) {
label = 27;
break L1;
}
$85 = $d;
$86 = ((($85)) + 1|0);
$d = $86;
HEAP8[$85>>0] = 10;
$i = 0;
while(1) {
$87 = $i;
$88 = $indent;
$89 = ($87|0)<($88|0);
if (!($89)) {
continue L1;
}
$90 = $d;
$91 = ((($90)) + 1|0);
$d = $91;
HEAP8[$90>>0] = 32;
$92 = $i;
$93 = (($92) + 1)|0;
$i = $93;
}
break;
}
case 1: {
$94 = $s;
$95 = ((($94)) + 1|0);
$s = $95;
$96 = $s;
;HEAP8[$n>>0]=HEAP8[$96>>0]|0;HEAP8[$n+1>>0]=HEAP8[$96+1>>0]|0;
$97 = $s;
$98 = ((($97)) + 2|0);
$s = $98;
$99 = $2;
$100 = ($99|0)==(3);
if ($100) {
$101 = $s;
$102 = HEAP16[$n>>1]|0;
$103 = $102&65535;
$104 = (_suitable_encoding($101,$103)|0);
$type = $104;
switch ($104|0) {
case 1: {
$105 = $s;
$106 = HEAP16[$n>>1]|0;
$107 = $106&65535;
$108 = (_convert_to_string($105,$107,0)|0);
$nn = $108;
break;
}
case 2: {
$109 = $s;
$110 = HEAP16[$n>>1]|0;
$111 = $110&65535;
$112 = (_convert_to_token($109,$111,0)|0);
$nn = $112;
break;
}
default: {
$113 = $s;
$114 = HEAP16[$n>>1]|0;
$115 = $114&65535;
$116 = (_convert_to_hex($113,$115,0)|0);
$nn = $116;
}
}
$117 = $nn;
$118 = $len;
$119 = (($118) + ($117))|0;
$len = $119;
$120 = $3;
$121 = ($120|0)!=(0|0);
if ($121) {
$122 = $len;
$123 = $4;
$124 = ($122>>>0)>=($123>>>0);
if ($124) {
label = 38;
break L1;
}
$125 = $type;
switch ($125|0) {
case 1: {
$126 = $s;
$127 = HEAP16[$n>>1]|0;
$128 = $127&65535;
$129 = $d;
(_convert_to_string($126,$128,$129)|0);
break;
}
case 2: {
$130 = $s;
$131 = HEAP16[$n>>1]|0;
$132 = $131&65535;
$133 = $d;
(_convert_to_token($130,$132,$133)|0);
break;
}
default: {
$134 = $s;
$135 = HEAP16[$n>>1]|0;
$136 = $135&65535;
$137 = $d;
(_convert_to_hex($134,$136,$137)|0);
}
}
$138 = $nn;
$139 = $d;
$140 = (($139) + ($138)|0);
$d = $140;
}
$141 = HEAP16[$n>>1]|0;
$142 = $141&65535;
$143 = $s;
$144 = (($143) + ($142)|0);
$145 = HEAP8[$144>>0]|0;
$146 = $145&255;
$147 = ($146|0)!=(4);
if ($147) {
$148 = $len;
$149 = (($148) + 1)|0;
$len = $149;
$150 = $3;
$151 = ($150|0)!=(0|0);
if ($151) {
$152 = $len;
$153 = $4;
$154 = ($152>>>0)>=($153>>>0);
if ($154) {
label = 47;
break L1;
}
$155 = $d;
$156 = ((($155)) + 1|0);
$d = $156;
HEAP8[$155>>0] = 32;
}
}
} else {
$157 = HEAP16[$n>>1]|0;
$158 = $157&65535;
HEAP32[$vararg_buffer>>2] = $158;
(_sprintf($numbuf,22780,$vararg_buffer)|0);
$159 = (_strlen($numbuf)|0);
$160 = HEAP16[$n>>1]|0;
$161 = $160&65535;
$162 = (($159) + ($161))|0;
$163 = $len;
$164 = (($163) + ($162))|0;
$len = $164;
$165 = $3;
$166 = ($165|0)!=(0|0);
if ($166) {
$167 = $len;
$168 = $4;
$169 = ($167>>>0)>=($168>>>0);
if ($169) {
label = 51;
break L1;
}
$170 = $d;
$171 = (___stpcpy($170,$numbuf)|0);
$d = $171;
$172 = $d;
$173 = $s;
$174 = HEAP16[$n>>1]|0;
$175 = $174&65535;
_memcpy(($172|0),($173|0),($175|0))|0;
$176 = HEAP16[$n>>1]|0;
$177 = $176&65535;
$178 = $d;
$179 = (($178) + ($177)|0);
$d = $179;
}
}
$180 = HEAP16[$n>>1]|0;
$181 = $180&65535;
$182 = $s;
$183 = (($182) + ($181)|0);
$s = $183;
continue L1;
break;
}
default: {
label = 54;
break L1;
}
}
}
if ((label|0) == 10) {
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
else if ((label|0) == 21) {
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
else if ((label|0) == 27) {
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
else if ((label|0) == 38) {
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
else if ((label|0) == 47) {
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
else if ((label|0) == 51) {
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
else if ((label|0) == 54) {
__gcry_bug(22685,2008,22784);
// unreachable;
}
else if ((label|0) == 55) {
$184 = $2;
$185 = ($184|0)!=(1);
do {
if ($185) {
$186 = $len;
$187 = (($186) + 1)|0;
$len = $187;
$188 = $3;
$189 = ($188|0)!=(0|0);
if ($189) {
$190 = $len;
$191 = $4;
$192 = ($190>>>0)>=($191>>>0);
if (!($192)) {
$193 = $d;
$194 = ((($193)) + 1|0);
$d = $194;
HEAP8[$193>>0] = 10;
break;
}
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
}
} while(0);
$195 = $3;
$196 = ($195|0)!=(0|0);
$197 = $len;
do {
if ($196) {
$198 = $4;
$199 = ($197>>>0)>=($198>>>0);
if (!($199)) {
$200 = $d;
$201 = ((($200)) + 1|0);
$d = $201;
HEAP8[$200>>0] = 0;
break;
}
$0 = 0;
$204 = $0;
STACKTOP = sp;return ($204|0);
} else {
$202 = (($197) + 1)|0;
$len = $202;
}
} while(0);
$203 = $len;
$0 = $203;
$204 = $0;
STACKTOP = sp;return ($204|0);
}
return (0)|0;
}
function _suitable_encoding($buffer,$length) {
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $9 = 0;
var $maybe_token = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $buffer;
$2 = $length;
$maybe_token = 1;
$3 = $2;
$4 = ($3|0)!=(0);
if (!($4)) {
$0 = 1;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
$5 = $1;
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = $7 & 128;
$9 = ($8|0)!=(0);
if ($9) {
$0 = 0;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
$10 = $1;
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)!=(0);
if (!($12)) {
$0 = 0;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
$13 = $1;
$s = $13;
while(1) {
$14 = $2;
$15 = ($14|0)!=(0);
if (!($15)) {
break;
}
$16 = $s;
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = ($18|0)<(32);
if ($19) {
label = 12;
} else {
$20 = $s;
$21 = HEAP8[$20>>0]|0;
$22 = $21&255;
$23 = ($22|0)>=(127);
if ($23) {
$24 = $s;
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = ($26|0)<=(160);
if ($27) {
label = 12;
}
}
}
if ((label|0) == 12) {
label = 0;
$28 = $s;
$29 = HEAP8[$28>>0]|0;
$30 = $29&255;
$31 = (_strchr(22756,$30)|0);
$32 = ($31|0)!=(0|0);
if (!($32)) {
label = 13;
break;
}
}
$33 = $maybe_token;
$34 = ($33|0)!=(0);
do {
if ($34) {
$35 = $s;
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = ($37|0)>=(65);
if ($38) {
$39 = $s;
$40 = HEAP8[$39>>0]|0;
$41 = $40&255;
$42 = ($41|0)<=(90);
if ($42) {
break;
}
}
$43 = $s;
$44 = HEAP8[$43>>0]|0;
$45 = $44&255;
$46 = ($45|0)>=(97);
if ($46) {
$47 = $s;
$48 = HEAP8[$47>>0]|0;
$49 = $48&255;
$50 = ($49|0)<=(122);
if ($50) {
break;
}
}
$51 = $s;
$52 = HEAP8[$51>>0]|0;
$53 = $52&255;
$54 = ($53|0)>=(48);
if ($54) {
$55 = $s;
$56 = HEAP8[$55>>0]|0;
$57 = $56&255;
$58 = ($57|0)<=(57);
if ($58) {
break;
}
}
$59 = $s;
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = (_strchr(22766,$61)|0);
$63 = ($62|0)!=(0|0);
if (!($63)) {
$maybe_token = 0;
}
}
} while(0);
$64 = $s;
$65 = ((($64)) + 1|0);
$s = $65;
$66 = $2;
$67 = (($66) + -1)|0;
$2 = $67;
}
if ((label|0) == 13) {
$0 = 0;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
$68 = $1;
$s = $68;
$69 = $maybe_token;
$70 = ($69|0)!=(0);
do {
if ($70) {
$71 = $s;
$72 = HEAP8[$71>>0]|0;
$73 = $72&255;
$74 = ($73|0)>=(48);
if ($74) {
$75 = $s;
$76 = HEAP8[$75>>0]|0;
$77 = $76&255;
$78 = ($77|0)<=(57);
if ($78) {
break;
}
}
$0 = 2;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
} while(0);
$0 = 1;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
function _convert_to_string($s,$len,$dest) {
$s = $s|0;
$len = $len|0;
$dest = $dest|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $count = 0, $p = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $s;
$2 = $len;
$3 = $dest;
$4 = $3;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$count = 2;
while(1) {
$83 = $2;
$84 = ($83|0)!=(0);
if (!($84)) {
break;
}
$85 = $1;
$86 = HEAP8[$85>>0]|0;
$87 = $86&255;
L6: do {
switch ($87|0) {
case 92: case 39: case 34: case 13: case 12: case 10: case 11: case 9: case 8: {
$88 = $count;
$89 = (($88) + 2)|0;
$count = $89;
break;
}
default: {
$90 = $1;
$91 = HEAP8[$90>>0]|0;
$92 = $91&255;
$93 = ($92|0)<(32);
do {
if (!($93)) {
$94 = $1;
$95 = HEAP8[$94>>0]|0;
$96 = $95&255;
$97 = ($96|0)>=(127);
if ($97) {
$98 = $1;
$99 = HEAP8[$98>>0]|0;
$100 = $99&255;
$101 = ($100|0)<=(160);
if ($101) {
break;
}
}
$104 = $count;
$105 = (($104) + 1)|0;
$count = $105;
break L6;
}
} while(0);
$102 = $count;
$103 = (($102) + 4)|0;
$count = $103;
}
}
} while(0);
$106 = $2;
$107 = (($106) + -1)|0;
$2 = $107;
$108 = $1;
$109 = ((($108)) + 1|0);
$1 = $109;
}
$110 = $count;
$0 = $110;
$111 = $0;
STACKTOP = sp;return ($111|0);
}
$6 = $3;
$p = $6;
$7 = $p;
$8 = ((($7)) + 1|0);
$p = $8;
HEAP8[$7>>0] = 34;
while(1) {
$9 = $2;
$10 = ($9|0)!=(0);
if (!($10)) {
break;
}
$11 = $1;
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
L22: do {
switch ($13|0) {
case 8: {
$14 = $p;
$15 = ((($14)) + 1|0);
$p = $15;
HEAP8[$14>>0] = 92;
$16 = $p;
$17 = ((($16)) + 1|0);
$p = $17;
HEAP8[$16>>0] = 98;
break;
}
case 9: {
$18 = $p;
$19 = ((($18)) + 1|0);
$p = $19;
HEAP8[$18>>0] = 92;
$20 = $p;
$21 = ((($20)) + 1|0);
$p = $21;
HEAP8[$20>>0] = 116;
break;
}
case 11: {
$22 = $p;
$23 = ((($22)) + 1|0);
$p = $23;
HEAP8[$22>>0] = 92;
$24 = $p;
$25 = ((($24)) + 1|0);
$p = $25;
HEAP8[$24>>0] = 118;
break;
}
case 10: {
$26 = $p;
$27 = ((($26)) + 1|0);
$p = $27;
HEAP8[$26>>0] = 92;
$28 = $p;
$29 = ((($28)) + 1|0);
$p = $29;
HEAP8[$28>>0] = 110;
break;
}
case 12: {
$30 = $p;
$31 = ((($30)) + 1|0);
$p = $31;
HEAP8[$30>>0] = 92;
$32 = $p;
$33 = ((($32)) + 1|0);
$p = $33;
HEAP8[$32>>0] = 102;
break;
}
case 13: {
$34 = $p;
$35 = ((($34)) + 1|0);
$p = $35;
HEAP8[$34>>0] = 92;
$36 = $p;
$37 = ((($36)) + 1|0);
$p = $37;
HEAP8[$36>>0] = 114;
break;
}
case 34: {
$38 = $p;
$39 = ((($38)) + 1|0);
$p = $39;
HEAP8[$38>>0] = 92;
$40 = $p;
$41 = ((($40)) + 1|0);
$p = $41;
HEAP8[$40>>0] = 34;
break;
}
case 39: {
$42 = $p;
$43 = ((($42)) + 1|0);
$p = $43;
HEAP8[$42>>0] = 92;
$44 = $p;
$45 = ((($44)) + 1|0);
$p = $45;
HEAP8[$44>>0] = 39;
break;
}
case 92: {
$46 = $p;
$47 = ((($46)) + 1|0);
$p = $47;
HEAP8[$46>>0] = 92;
$48 = $p;
$49 = ((($48)) + 1|0);
$p = $49;
HEAP8[$48>>0] = 92;
break;
}
default: {
$50 = $1;
$51 = HEAP8[$50>>0]|0;
$52 = $51&255;
$53 = ($52|0)<(32);
do {
if (!($53)) {
$54 = $1;
$55 = HEAP8[$54>>0]|0;
$56 = $55&255;
$57 = ($56|0)>=(127);
if ($57) {
$58 = $1;
$59 = HEAP8[$58>>0]|0;
$60 = $59&255;
$61 = ($60|0)<=(160);
if ($61) {
break;
}
}
$68 = $1;
$69 = HEAP8[$68>>0]|0;
$70 = $p;
$71 = ((($70)) + 1|0);
$p = $71;
HEAP8[$70>>0] = $69;
break L22;
}
} while(0);
$62 = $p;
$63 = $1;
$64 = HEAP8[$63>>0]|0;
$65 = $64&255;
HEAP32[$vararg_buffer>>2] = $65;
(_sprintf($62,22607,$vararg_buffer)|0);
$66 = $p;
$67 = ((($66)) + 4|0);
$p = $67;
}
}
} while(0);
$72 = $2;
$73 = (($72) + -1)|0;
$2 = $73;
$74 = $1;
$75 = ((($74)) + 1|0);
$1 = $75;
}
$76 = $p;
$77 = ((($76)) + 1|0);
$p = $77;
HEAP8[$76>>0] = 34;
$78 = $p;
$79 = $3;
$80 = $78;
$81 = $79;
$82 = (($80) - ($81))|0;
$0 = $82;
$111 = $0;
STACKTOP = sp;return ($111|0);
}
function _convert_to_token($src,$len,$dest) {
$src = $src|0;
$len = $len|0;
$dest = $dest|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $src;
$1 = $len;
$2 = $dest;
$3 = $2;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $2;
$6 = $0;
$7 = $1;
_memcpy(($5|0),($6|0),($7|0))|0;
}
$8 = $1;
STACKTOP = sp;return ($8|0);
}
function _convert_to_hex($src,$len,$dest) {
$src = $src|0;
$len = $len|0;
$dest = $dest|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $src;
$1 = $len;
$2 = $dest;
$3 = $2;
$4 = ($3|0)!=(0|0);
if (!($4)) {
$21 = $1;
$22 = $21<<1;
$23 = (($22) + 2)|0;
STACKTOP = sp;return ($23|0);
}
$5 = $2;
$6 = ((($5)) + 1|0);
$2 = $6;
HEAP8[$5>>0] = 35;
$i = 0;
while(1) {
$7 = $i;
$8 = $1;
$9 = ($7>>>0)<($8>>>0);
$10 = $2;
if (!($9)) {
break;
}
$11 = $i;
$12 = $0;
$13 = (($12) + ($11)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
HEAP32[$vararg_buffer>>2] = $15;
(_sprintf($10,22775,$vararg_buffer)|0);
$16 = $i;
$17 = (($16) + 1)|0;
$i = $17;
$18 = $2;
$19 = ((($18)) + 2|0);
$2 = $19;
}
$20 = ((($10)) + 1|0);
$2 = $20;
HEAP8[$10>>0] = 35;
$21 = $1;
$22 = $21<<1;
$23 = (($22) + 2)|0;
STACKTOP = sp;return ($23|0);
}
function __gcry_sexp_vextract_param($sexp,$path,$list,$arg_ptr) {
$sexp = $sexp|0;
$path = $path|0;
$list = $list|0;
$arg_ptr = $arg_ptr|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current3 = 0, $arglist_next = 0, $arglist_next4 = 0, $array = 0, $arrayisdesc = 0, $expanded = 0, $expanded11 = 0, $expanded12 = 0;
var $expanded14 = 0, $expanded15 = 0, $expanded16 = 0, $expanded5 = 0, $expanded7 = 0, $expanded8 = 0, $expanded9 = 0, $freethis = 0, $idx = 0, $l1 = 0, $mode = 0, $n = 0, $nbuf = 0, $or$cond = 0, $pbuf = 0, $rc = 0, $s = 0, $s2 = 0, $spec = 0, $spec1 = 0;
var $spec2 = 0, $spec3 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$array = sp + 48|0;
$arrayisdesc = sp + 160|0;
$nbuf = sp + 8|0;
$1 = $sexp;
$2 = $path;
$3 = $list;
$4 = $arg_ptr;
$mode = 43;
$freethis = 0;
dest=$arrayisdesc; stop=dest+20|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$5 = $3;
$s = $5;
$idx = 0;
while(1) {
$6 = $s;
$7 = HEAP8[$6>>0]|0;
$8 = $7 << 24 >> 24;
$9 = ($8|0)!=(0);
$10 = $idx;
$11 = ($10>>>0)<(20);
$12 = $9 ? $11 : 0;
$13 = $s;
$14 = HEAP8[$13>>0]|0;
if (!($12)) {
label = 18;
break;
}
$15 = $14 << 24 >> 24;
$16 = ($15|0)==(38);
if (!($16)) {
$17 = $s;
$18 = HEAP8[$17>>0]|0;
$19 = $18 << 24 >> 24;
$20 = ($19|0)==(43);
if (!($20)) {
$21 = $s;
$22 = HEAP8[$21>>0]|0;
$23 = $22 << 24 >> 24;
$24 = ($23|0)==(45);
if (!($24)) {
$25 = $s;
$26 = HEAP8[$25>>0]|0;
$27 = $26 << 24 >> 24;
$28 = ($27|0)==(47);
if (!($28)) {
$29 = $s;
$30 = HEAP8[$29>>0]|0;
$31 = $30 << 24 >> 24;
$32 = ($31|0)==(63);
if (!($32)) {
$33 = $s;
$34 = (_whitespacep($33)|0);
$35 = ($34|0)!=(0);
if (!($35)) {
$36 = $s;
$37 = HEAP8[$36>>0]|0;
$38 = $37 << 24 >> 24;
$39 = ($38|0)==(39);
if ($39) {
$40 = $s;
$41 = ((($40)) + 1|0);
$s = $41;
$42 = $s;
$43 = (_strchr($42,39)|0);
$s2 = $43;
$44 = $s2;
$45 = ($44|0)!=(0|0);
if (!($45)) {
label = 12;
break;
}
$46 = $s2;
$47 = $s;
$48 = ($46|0)==($47|0);
if ($48) {
label = 12;
break;
}
$49 = $s2;
$s = $49;
}
$50 = $4;
$arglist_current = HEAP32[$50>>2]|0;
$51 = $arglist_current;
$52 = ((0) + 4|0);
$expanded5 = $52;
$expanded = (($expanded5) - 1)|0;
$53 = (($51) + ($expanded))|0;
$54 = ((0) + 4|0);
$expanded9 = $54;
$expanded8 = (($expanded9) - 1)|0;
$expanded7 = $expanded8 ^ -1;
$55 = $53 & $expanded7;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$arglist_next = ((($56)) + 4|0);
HEAP32[$50>>2] = $arglist_next;
$58 = $idx;
$59 = (($array) + ($58<<2)|0);
HEAP32[$59>>2] = $57;
$60 = $idx;
$61 = (($array) + ($60<<2)|0);
$62 = HEAP32[$61>>2]|0;
$63 = ($62|0)!=(0|0);
if (!($63)) {
label = 15;
break;
}
$64 = $idx;
$65 = (($64) + 1)|0;
$idx = $65;
}
}
}
}
}
}
$66 = $s;
$67 = ((($66)) + 1|0);
$s = $67;
}
if ((label|0) == 12) {
$0 = 29;
$310 = $0;
STACKTOP = sp;return ($310|0);
}
else if ((label|0) == 15) {
$0 = 128;
$310 = $0;
STACKTOP = sp;return ($310|0);
}
else if ((label|0) == 18) {
$68 = ($14<<24>>24)!=(0);
if ($68) {
$0 = 183;
$310 = $0;
STACKTOP = sp;return ($310|0);
}
$69 = $4;
$arglist_current3 = HEAP32[$69>>2]|0;
$70 = $arglist_current3;
$71 = ((0) + 4|0);
$expanded12 = $71;
$expanded11 = (($expanded12) - 1)|0;
$72 = (($70) + ($expanded11))|0;
$73 = ((0) + 4|0);
$expanded16 = $73;
$expanded15 = (($expanded16) - 1)|0;
$expanded14 = $expanded15 ^ -1;
$74 = $72 & $expanded14;
$75 = $74;
$76 = HEAP32[$75>>2]|0;
$arglist_next4 = ((($75)) + 4|0);
HEAP32[$69>>2] = $arglist_next4;
$77 = ($76|0)!=(0|0);
if ($77) {
$0 = 45;
$310 = $0;
STACKTOP = sp;return ($310|0);
}
while(1) {
$78 = $2;
$79 = ($78|0)!=(0|0);
if (!($79)) {
label = 33;
break;
}
$80 = $2;
$81 = HEAP8[$80>>0]|0;
$82 = $81 << 24 >> 24;
$83 = ($82|0)!=(0);
if (!($83)) {
label = 33;
break;
}
$84 = $2;
$85 = (_strchr($84,33)|0);
$s = $85;
$86 = $s;
$87 = $2;
$88 = ($86|0)==($87|0);
if ($88) {
label = 25;
break;
}
$89 = $s;
$90 = ($89|0)!=(0|0);
if ($90) {
$91 = $s;
$92 = $2;
$93 = $91;
$94 = $92;
$95 = (($93) - ($94))|0;
$96 = $95;
} else {
$96 = 0;
}
$n = $96;
$97 = $1;
$98 = $2;
$99 = $n;
$100 = (__gcry_sexp_find_token($97,$98,$99)|0);
$l1 = $100;
$101 = $l1;
$102 = ($101|0)!=(0|0);
if (!($102)) {
label = 29;
break;
}
$103 = $l1;
$1 = $103;
$l1 = 0;
$104 = $freethis;
__gcry_sexp_release($104);
$105 = $1;
$freethis = $105;
$106 = $n;
$107 = ($106|0)!=(0);
if ($107) {
$108 = $n;
$109 = (($108) + 1)|0;
$110 = $2;
$111 = (($110) + ($109)|0);
$2 = $111;
continue;
} else {
$2 = 0;
continue;
}
}
do {
if ((label|0) == 25) {
$rc = 27;
}
else if ((label|0) == 29) {
$rc = 27;
}
else if ((label|0) == 33) {
$112 = $3;
$s = $112;
$idx = 0;
L41: while(1) {
$113 = $s;
$114 = HEAP8[$113>>0]|0;
$115 = ($114<<24>>24)!=(0);
if (!($115)) {
label = 76;
break;
}
$116 = $s;
$117 = HEAP8[$116>>0]|0;
$118 = $117 << 24 >> 24;
$119 = ($118|0)==(38);
if ($119) {
label = 39;
} else {
$120 = $s;
$121 = HEAP8[$120>>0]|0;
$122 = $121 << 24 >> 24;
$123 = ($122|0)==(43);
if ($123) {
label = 39;
} else {
$124 = $s;
$125 = HEAP8[$124>>0]|0;
$126 = $125 << 24 >> 24;
$127 = ($126|0)==(45);
if ($127) {
label = 39;
} else {
$128 = $s;
$129 = HEAP8[$128>>0]|0;
$130 = $129 << 24 >> 24;
$131 = ($130|0)==(47);
if ($131) {
label = 39;
} else {
$135 = $s;
$136 = (_whitespacep($135)|0);
$137 = ($136|0)!=(0);
if (!($137)) {
$138 = $s;
$139 = HEAP8[$138>>0]|0;
$140 = $139 << 24 >> 24;
$141 = ($140|0)==(63);
if (!($141)) {
$142 = $s;
$143 = HEAP8[$142>>0]|0;
$144 = $143 << 24 >> 24;
$145 = ($144|0)==(39);
if ($145) {
$146 = $s;
$147 = ((($146)) + 1|0);
$s = $147;
$148 = $s;
$149 = (_strchr($148,39)|0);
$s2 = $149;
$150 = $s2;
$151 = ($150|0)!=(0|0);
if (!($151)) {
label = 45;
break;
}
$152 = $s2;
$153 = $s;
$154 = ($152|0)==($153|0);
if ($154) {
label = 45;
break;
}
$155 = $1;
$156 = $s;
$157 = $s2;
$158 = $s;
$159 = $157;
$160 = $158;
$161 = (($159) - ($160))|0;
$162 = (__gcry_sexp_find_token($155,$156,$161)|0);
$l1 = $162;
$163 = $s2;
$s = $163;
} else {
$164 = $1;
$165 = $s;
$166 = (__gcry_sexp_find_token($164,$165,1)|0);
$l1 = $166;
}
$167 = $l1;
$168 = ($167|0)!=(0|0);
do {
if ($168) {
label = 55;
} else {
$169 = $s;
$170 = ((($169)) + 1|0);
$171 = HEAP8[$170>>0]|0;
$172 = $171 << 24 >> 24;
$173 = ($172|0)==(63);
if ($173) {
$174 = $mode;
$175 = ($174|0)==(38);
$176 = $idx;
$177 = (($array) + ($176<<2)|0);
$178 = HEAP32[$177>>2]|0;
if (!($175)) {
HEAP32[$178>>2] = 0;
break;
}
$spec = $178;
$179 = $spec;
$180 = ((($179)) + 12|0);
$181 = HEAP32[$180>>2]|0;
$182 = ($181|0)!=(0|0);
if (!($182)) {
$183 = $spec;
HEAP32[$183>>2] = 0;
$184 = $spec;
$185 = ((($184)) + 4|0);
HEAP32[$185>>2] = 0;
}
$186 = $spec;
$187 = ((($186)) + 8|0);
HEAP32[$187>>2] = 0;
} else {
label = 55;
}
}
} while(0);
if ((label|0) == 55) {
label = 0;
$188 = $l1;
$189 = ($188|0)!=(0|0);
if (!($189)) {
label = 56;
break;
}
$190 = $mode;
$191 = ($190|0)==(38);
do {
if ($191) {
$192 = $idx;
$193 = (($array) + ($192<<2)|0);
$194 = HEAP32[$193>>2]|0;
$spec1 = $194;
$195 = $spec1;
$196 = ((($195)) + 12|0);
$197 = HEAP32[$196>>2]|0;
$198 = ($197|0)!=(0|0);
$199 = $l1;
if (!($198)) {
$227 = $spec1;
$228 = (__gcry_sexp_nth_buffer($199,1,$227)|0);
$229 = $spec1;
$230 = ((($229)) + 12|0);
HEAP32[$230>>2] = $228;
$231 = $spec1;
$232 = ((($231)) + 12|0);
$233 = HEAP32[$232>>2]|0;
$234 = ($233|0)!=(0|0);
if (!($234)) {
label = 65;
break L41;
}
$235 = $spec1;
$236 = HEAP32[$235>>2]|0;
$237 = $spec1;
$238 = ((($237)) + 8|0);
HEAP32[$238>>2] = $236;
$239 = $spec1;
$240 = ((($239)) + 4|0);
HEAP32[$240>>2] = 0;
$241 = $idx;
$242 = (($arrayisdesc) + ($241)|0);
HEAP8[$242>>0] = 2;
break;
}
$200 = (__gcry_sexp_nth_data($199,1,$nbuf)|0);
$pbuf = $200;
$201 = $pbuf;
$202 = ($201|0)!=(0|0);
$203 = HEAP32[$nbuf>>2]|0;
$204 = ($203|0)!=(0);
$or$cond = $202 & $204;
if (!($or$cond)) {
label = 60;
break L41;
}
$205 = $spec1;
$206 = ((($205)) + 4|0);
$207 = HEAP32[$206>>2]|0;
$208 = HEAP32[$nbuf>>2]|0;
$209 = (($207) + ($208))|0;
$210 = $spec1;
$211 = HEAP32[$210>>2]|0;
$212 = ($209>>>0)>($211>>>0);
if ($212) {
label = 62;
break L41;
}
$213 = $spec1;
$214 = ((($213)) + 12|0);
$215 = HEAP32[$214>>2]|0;
$216 = $spec1;
$217 = ((($216)) + 4|0);
$218 = HEAP32[$217>>2]|0;
$219 = (($215) + ($218)|0);
$220 = $pbuf;
$221 = HEAP32[$nbuf>>2]|0;
_memcpy(($219|0),($220|0),($221|0))|0;
$222 = HEAP32[$nbuf>>2]|0;
$223 = $spec1;
$224 = ((($223)) + 8|0);
HEAP32[$224>>2] = $222;
$225 = $idx;
$226 = (($arrayisdesc) + ($225)|0);
HEAP8[$226>>0] = 1;
} else {
$243 = $mode;
$244 = ($243|0)==(47);
if ($244) {
$245 = $l1;
$246 = (__gcry_sexp_nth_mpi($245,1,8)|0);
$247 = $idx;
$248 = (($array) + ($247<<2)|0);
$249 = HEAP32[$248>>2]|0;
HEAP32[$249>>2] = $246;
break;
}
$250 = $mode;
$251 = ($250|0)==(45);
$252 = $l1;
if ($251) {
$253 = (__gcry_sexp_nth_mpi($252,1,1)|0);
$254 = $idx;
$255 = (($array) + ($254<<2)|0);
$256 = HEAP32[$255>>2]|0;
HEAP32[$256>>2] = $253;
break;
} else {
$257 = (__gcry_sexp_nth_mpi($252,1,5)|0);
$258 = $idx;
$259 = (($array) + ($258<<2)|0);
$260 = HEAP32[$259>>2]|0;
HEAP32[$260>>2] = $257;
break;
}
}
} while(0);
$261 = $l1;
__gcry_sexp_release($261);
$l1 = 0;
$262 = $idx;
$263 = (($array) + ($262<<2)|0);
$264 = HEAP32[$263>>2]|0;
$265 = HEAP32[$264>>2]|0;
$266 = ($265|0)!=(0|0);
if (!($266)) {
label = 73;
break;
}
}
$267 = $idx;
$268 = (($267) + 1)|0;
$idx = $268;
}
}
}
}
}
}
if ((label|0) == 39) {
label = 0;
$132 = $s;
$133 = HEAP8[$132>>0]|0;
$134 = $133 << 24 >> 24;
$mode = $134;
}
$269 = $s;
$270 = ((($269)) + 1|0);
$s = $270;
}
if ((label|0) == 45) {
$rc = 29;
break;
}
else if ((label|0) == 56) {
$rc = 68;
break;
}
else if ((label|0) == 60) {
$rc = 65;
break;
}
else if ((label|0) == 62) {
$rc = 200;
break;
}
else if ((label|0) == 65) {
$rc = 65;
break;
}
else if ((label|0) == 73) {
$rc = 65;
break;
}
else if ((label|0) == 76) {
$271 = $freethis;
__gcry_sexp_release($271);
$0 = 0;
$310 = $0;
STACKTOP = sp;return ($310|0);
}
}
} while(0);
$272 = $freethis;
__gcry_sexp_release($272);
$273 = $l1;
__gcry_sexp_release($273);
while(1) {
$274 = $idx;
$275 = (($274) + -1)|0;
$idx = $275;
$276 = ($274|0)!=(0);
if (!($276)) {
break;
}
$277 = $idx;
$278 = (($arrayisdesc) + ($277)|0);
$279 = HEAP8[$278>>0]|0;
$280 = ($279<<24>>24)!=(0);
$281 = $idx;
if (!($280)) {
$282 = (($array) + ($281<<2)|0);
$283 = HEAP32[$282>>2]|0;
$284 = HEAP32[$283>>2]|0;
__gcry_mpi_release($284);
$285 = $idx;
$286 = (($array) + ($285<<2)|0);
$287 = HEAP32[$286>>2]|0;
HEAP32[$287>>2] = 0;
continue;
}
$288 = (($arrayisdesc) + ($281)|0);
$289 = HEAP8[$288>>0]|0;
$290 = ($289<<24>>24)!=(0);
$291 = $290 ^ 1;
$292 = $291&1;
$293 = ($292|0)==(1);
$294 = $idx;
$295 = (($array) + ($294<<2)|0);
$296 = HEAP32[$295>>2]|0;
if ($293) {
$spec2 = $296;
$297 = $spec2;
$298 = ((($297)) + 8|0);
HEAP32[$298>>2] = 0;
continue;
} else {
$spec3 = $296;
$299 = $spec3;
$300 = ((($299)) + 12|0);
$301 = HEAP32[$300>>2]|0;
__gcry_free($301);
$302 = $spec3;
$303 = ((($302)) + 12|0);
HEAP32[$303>>2] = 0;
$304 = $spec3;
$305 = ((($304)) + 8|0);
HEAP32[$305>>2] = 0;
$306 = $spec3;
$307 = ((($306)) + 4|0);
HEAP32[$307>>2] = 0;
$308 = $spec3;
HEAP32[$308>>2] = 0;
continue;
}
}
$309 = $rc;
$0 = $309;
$310 = $0;
STACKTOP = sp;return ($310|0);
}
return (0)|0;
}
function __gcry_sexp_extract_param($sexp,$path,$list,$varargs) {
$sexp = $sexp|0;
$path = $path|0;
$list = $list|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $arg_ptr = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$arg_ptr = sp;
$0 = $sexp;
$1 = $path;
$2 = $list;
HEAP32[$arg_ptr>>2] = $varargs;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (__gcry_sexp_vextract_param($3,$4,$5,$arg_ptr)|0);
$rc = $6;
$7 = $rc;
$8 = (_gpg_error_526($7)|0);
STACKTOP = sp;return ($8|0);
}
function _gpg_error_526($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_527(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make_527($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function __gcry_disable_hw_feature($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $name;
$i = 0;
while(1) {
$2 = $i;
$3 = ($2>>>0)<(13);
if (!($3)) {
label = 6;
break;
}
$4 = $i;
$5 = (1124 + ($4<<3)|0);
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = $1;
$9 = (_strcmp($7,$8)|0);
$10 = ($9|0)!=(0);
$11 = $i;
if (!($10)) {
label = 4;
break;
}
$16 = (($11) + 1)|0;
$i = $16;
}
if ((label|0) == 4) {
$12 = (1124 + ($11<<3)|0);
$13 = HEAP32[$12>>2]|0;
$14 = HEAP32[17679]|0;
$15 = $14 | $13;
HEAP32[17679] = $15;
$0 = 0;
$17 = $0;
STACKTOP = sp;return ($17|0);
}
else if ((label|0) == 6) {
$0 = 88;
$17 = $0;
STACKTOP = sp;return ($17|0);
}
return (0)|0;
}
function __gcry_get_hw_features() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17680]|0;
return ($0|0);
}
function __gcry_enum_hw_features($idx,$r_feature) {
$idx = $idx|0;
$r_feature = $r_feature|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $idx;
$2 = $r_feature;
$3 = $1;
$4 = ($3|0)<(0);
$5 = $1;
$6 = ($5>>>0)>=(13);
$or$cond = $4 | $6;
if ($or$cond) {
$0 = 0;
$17 = $0;
STACKTOP = sp;return ($17|0);
}
$7 = $2;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $1;
$10 = (1124 + ($9<<3)|0);
$11 = HEAP32[$10>>2]|0;
$12 = $2;
HEAP32[$12>>2] = $11;
}
$13 = $1;
$14 = (1124 + ($13<<3)|0);
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$0 = $16;
$17 = $0;
STACKTOP = sp;return ($17|0);
}
function __gcry_detect_hw_features() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAP32[17680] = 0;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
return;
}
_parse_hwf_deny_file();
$2 = HEAP32[17679]|0;
$3 = $2 ^ -1;
$4 = HEAP32[17680]|0;
$5 = $4 & $3;
HEAP32[17680] = $5;
return;
}
function _parse_hwf_deny_file() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, $buffer = 0, $fname = 0, $fp = 0, $i = 0;
var $lnr = 0, $p = 0, $pend = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$buffer = sp + 24|0;
$fname = 22952;
$lnr = 0;
$0 = $fname;
$1 = (_fopen($0,23833)|0);
$fp = $1;
$2 = $fp;
$3 = ($2|0)!=(0|0);
if (!($3)) {
STACKTOP = sp;return;
}
while(1) {
$4 = $fp;
$5 = (_fgets($buffer,256,$4)|0);
$6 = ($5|0)!=(0|0);
if (!($6)) {
break;
}
$9 = $lnr;
$10 = (($9) + 1)|0;
$lnr = $10;
$p = $buffer;
while(1) {
$11 = $p;
$12 = HEAP8[$11>>0]|0;
$13 = $12 << 24 >> 24;
$14 = $13 & 128;
$15 = ($14|0)!=(0);
if ($15) {
break;
}
$16 = $p;
$17 = HEAP8[$16>>0]|0;
$18 = $17 << 24 >> 24;
$19 = (_isspace($18)|0);
$20 = ($19|0)!=(0);
if (!($20)) {
break;
}
$21 = $p;
$22 = ((($21)) + 1|0);
$p = $22;
}
$23 = $p;
$24 = (_strchr($23,10)|0);
$pend = $24;
$25 = $pend;
$26 = ($25|0)!=(0|0);
if ($26) {
$27 = $pend;
HEAP8[$27>>0] = 0;
}
$28 = $p;
$29 = $p;
$30 = HEAP8[$29>>0]|0;
$31 = $30 << 24 >> 24;
$32 = ($31|0)!=(0);
if ($32) {
$33 = $p;
$34 = (_strlen($33)|0);
$35 = (($34) - 1)|0;
$37 = $35;
} else {
$37 = 0;
}
$36 = (($28) + ($37)|0);
$pend = $36;
while(1) {
$38 = $pend;
$39 = $p;
$40 = ($38>>>0)>($39>>>0);
if (!($40)) {
break;
}
$41 = $pend;
$42 = HEAP8[$41>>0]|0;
$43 = $42 << 24 >> 24;
$44 = $43 & 128;
$45 = ($44|0)!=(0);
if (!($45)) {
$46 = $pend;
$47 = HEAP8[$46>>0]|0;
$48 = $47 << 24 >> 24;
$49 = (_isspace($48)|0);
$50 = ($49|0)!=(0);
if ($50) {
$51 = $pend;
HEAP8[$51>>0] = 0;
}
}
$52 = $pend;
$53 = ((($52)) + -1|0);
$pend = $53;
}
$54 = $p;
$55 = HEAP8[$54>>0]|0;
$56 = ($55<<24>>24)!=(0);
if (!($56)) {
continue;
}
$57 = $p;
$58 = HEAP8[$57>>0]|0;
$59 = $58 << 24 >> 24;
$60 = ($59|0)==(35);
if ($60) {
continue;
}
$i = 0;
while(1) {
$61 = $i;
$62 = ($61>>>0)<(13);
if (!($62)) {
break;
}
$63 = $i;
$64 = (1124 + ($63<<3)|0);
$65 = ((($64)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$67 = $p;
$68 = (_strcmp($66,$67)|0);
$69 = ($68|0)!=(0);
$70 = $i;
if (!($69)) {
label = 23;
break;
}
$75 = (($70) + 1)|0;
$i = $75;
}
if ((label|0) == 23) {
label = 0;
$71 = (1124 + ($70<<3)|0);
$72 = HEAP32[$71>>2]|0;
$73 = HEAP32[17679]|0;
$74 = $73 | $72;
HEAP32[17679] = $74;
}
}
$7 = $fp;
(_feof($7)|0);
$8 = $fp;
(_fclose($8)|0);
STACKTOP = sp;return;
}
function __gcry_private_enable_m_guard() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[17681] = 1;
return;
}
function __gcry_private_malloc($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $n;
$2 = $1;
$3 = ($2|0)!=(0);
if (!($3)) {
_gpg_err_set_errno(22);
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
$4 = HEAP32[17681]|0;
$5 = ($4|0)!=(0);
$6 = $1;
if (!($5)) {
$32 = (_malloc($6)|0);
$0 = $32;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
$7 = (($6) + 0)|0;
$8 = (($7) + 5)|0;
$9 = (_malloc($8)|0);
$p = $9;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = $1;
$12 = $11&255;
$13 = $p;
HEAP8[$13>>0] = $12;
$14 = $1;
$15 = $14 >>> 8;
$16 = $15&255;
$17 = $p;
$18 = ((($17)) + 1|0);
HEAP8[$18>>0] = $16;
$19 = $1;
$20 = $19 >>> 16;
$21 = $20&255;
$22 = $p;
$23 = ((($22)) + 2|0);
HEAP8[$23>>0] = $21;
$24 = $p;
$25 = ((($24)) + 3|0);
HEAP8[$25>>0] = 85;
$26 = $1;
$27 = (4 + ($26))|0;
$28 = $p;
$29 = (($28) + ($27)|0);
HEAP8[$29>>0] = -86;
$30 = $p;
$31 = ((($30)) + 4|0);
$0 = $31;
$33 = $0;
STACKTOP = sp;return ($33|0);
} else {
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
return (0)|0;
}
function __gcry_private_malloc_secure($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $n;
$2 = $1;
$3 = ($2|0)!=(0);
if (!($3)) {
_gpg_err_set_errno(22);
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
$4 = HEAP32[17681]|0;
$5 = ($4|0)!=(0);
$6 = $1;
if (!($5)) {
$32 = (__gcry_secmem_malloc($6)|0);
$0 = $32;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
$7 = (($6) + 0)|0;
$8 = (($7) + 5)|0;
$9 = (__gcry_secmem_malloc($8)|0);
$p = $9;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = $1;
$12 = $11&255;
$13 = $p;
HEAP8[$13>>0] = $12;
$14 = $1;
$15 = $14 >>> 8;
$16 = $15&255;
$17 = $p;
$18 = ((($17)) + 1|0);
HEAP8[$18>>0] = $16;
$19 = $1;
$20 = $19 >>> 16;
$21 = $20&255;
$22 = $p;
$23 = ((($22)) + 2|0);
HEAP8[$23>>0] = $21;
$24 = $p;
$25 = ((($24)) + 3|0);
HEAP8[$25>>0] = -52;
$26 = $1;
$27 = (4 + ($26))|0;
$28 = $p;
$29 = (($28) + ($27)|0);
HEAP8[$29>>0] = -86;
$30 = $p;
$31 = ((($30)) + 4|0);
$0 = $31;
$33 = $0;
STACKTOP = sp;return ($33|0);
} else {
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
return (0)|0;
}
function __gcry_private_realloc($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $7 = 0, $8 = 0;
var $9 = 0, $b = 0, $len = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $n;
$3 = HEAP32[17681]|0;
$4 = ($3|0)!=(0);
$5 = $1;
if (!($4)) {
$54 = (__gcry_private_is_secure($5)|0);
$55 = ($54|0)!=(0);
$56 = $1;
$57 = $2;
if ($55) {
$58 = (__gcry_secmem_realloc($56,$57)|0);
$0 = $58;
$60 = $0;
STACKTOP = sp;return ($60|0);
} else {
$59 = (_realloc($56,$57)|0);
$0 = $59;
$60 = $0;
STACKTOP = sp;return ($60|0);
}
}
$p = $5;
$6 = $1;
$7 = ($6|0)!=(0|0);
if (!($7)) {
$8 = $2;
$9 = (__gcry_private_malloc($8)|0);
$0 = $9;
$60 = $0;
STACKTOP = sp;return ($60|0);
}
$10 = $p;
__gcry_private_check_heap($10);
$11 = $p;
$12 = ((($11)) + -4|0);
$13 = HEAP8[$12>>0]|0;
$14 = $13&255;
$len = $14;
$15 = $p;
$16 = ((($15)) + -3|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = $18 << 8;
$20 = $len;
$21 = $20 | $19;
$len = $21;
$22 = $p;
$23 = ((($22)) + -2|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24&255;
$26 = $25 << 16;
$27 = $len;
$28 = $27 | $26;
$len = $28;
$29 = $len;
$30 = $2;
$31 = ($29>>>0)>=($30>>>0);
if ($31) {
$32 = $1;
$0 = $32;
$60 = $0;
STACKTOP = sp;return ($60|0);
}
$33 = $p;
$34 = ((($33)) + -1|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35&255;
$37 = ($36|0)==(204);
$38 = $2;
if ($37) {
$39 = (__gcry_private_malloc_secure($38)|0);
$b = $39;
} else {
$40 = (__gcry_private_malloc($38)|0);
$b = $40;
}
$41 = $b;
$42 = ($41|0)!=(0|0);
if ($42) {
$43 = $b;
$44 = $1;
$45 = $len;
_memcpy(($43|0),($44|0),($45|0))|0;
$46 = $b;
$47 = $len;
$48 = (($46) + ($47)|0);
$49 = $2;
$50 = $len;
$51 = (($49) - ($50))|0;
_memset(($48|0),0,($51|0))|0;
$52 = $p;
__gcry_private_free($52);
$53 = $b;
$0 = $53;
$60 = $0;
STACKTOP = sp;return ($60|0);
} else {
$0 = 0;
$60 = $0;
STACKTOP = sp;return ($60|0);
}
return (0)|0;
}
function __gcry_private_check_heap($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $len = 0, $p = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$0 = $a;
$1 = HEAP32[17681]|0;
$2 = ($1|0)!=(0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$p = $3;
$4 = $p;
$5 = ($4|0)!=(0|0);
if (!($5)) {
STACKTOP = sp;return;
}
$6 = $p;
$7 = ((($6)) + -1|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = ($9|0)==(85);
if (!($10)) {
$11 = $p;
$12 = ((($11)) + -1|0);
$13 = HEAP8[$12>>0]|0;
$14 = $13&255;
$15 = ($14|0)==(204);
if (!($15)) {
$16 = $p;
$17 = $p;
$18 = ((($17)) + -1|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
HEAP32[$vararg_buffer>>2] = $16;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $20;
__gcry_log_fatal(22973,$vararg_buffer);
// unreachable;
}
}
$21 = $p;
$22 = ((($21)) + -4|0);
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$len = $24;
$25 = $p;
$26 = ((($25)) + -3|0);
$27 = HEAP8[$26>>0]|0;
$28 = $27&255;
$29 = $28 << 8;
$30 = $len;
$31 = $30 | $29;
$len = $31;
$32 = $p;
$33 = ((($32)) + -2|0);
$34 = HEAP8[$33>>0]|0;
$35 = $34&255;
$36 = $35 << 16;
$37 = $len;
$38 = $37 | $36;
$len = $38;
$39 = $len;
$40 = $p;
$41 = (($40) + ($39)|0);
$42 = HEAP8[$41>>0]|0;
$43 = $42&255;
$44 = ($43|0)!=(170);
if ($44) {
$45 = $p;
$46 = $p;
$47 = ((($46)) + -1|0);
$48 = HEAP8[$47>>0]|0;
$49 = $48&255;
HEAP32[$vararg_buffer2>>2] = $45;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $49;
__gcry_log_fatal(23014,$vararg_buffer2);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function __gcry_private_free($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$p = $1;
$2 = $p;
$3 = ($2|0)!=(0|0);
do {
if ($3) {
$4 = HEAP32[17681]|0;
$5 = ($4|0)!=(0);
if ($5) {
$6 = $p;
__gcry_private_check_heap($6);
$7 = $0;
$8 = (__gcry_private_is_secure($7)|0);
$9 = ($8|0)!=(0);
$10 = $p;
$11 = ((($10)) + -4|0);
if ($9) {
__gcry_secmem_free($11);
break;
} else {
_free($11);
break;
}
} else {
$12 = $0;
$13 = (__gcry_private_is_secure($12)|0);
$14 = ($13|0)!=(0);
$15 = $p;
if ($14) {
__gcry_secmem_free($15);
break;
} else {
_free($15);
break;
}
}
}
} while(0);
STACKTOP = sp;return;
}
function __gcry_secmem_set_flags($flags) {
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond$not = 0, $or$cond3 = 0, $was_susp = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $flags;
(_gpgrt_lock_lock(1228)|0);
$1 = HEAP32[17682]|0;
$was_susp = $1;
$2 = $0;
$3 = $2 & 1;
HEAP32[17683] = $3;
$4 = $0;
$5 = $4 & 2;
HEAP32[17682] = $5;
$6 = $0;
$7 = $6 & 8;
HEAP32[17684] = $7;
$8 = $0;
$9 = $8 & 16;
HEAP32[17685] = $9;
$10 = $was_susp;
$11 = ($10|0)==(0);
$12 = HEAP32[17682]|0;
$13 = ($12|0)!=(0);
$or$cond = $11 | $13;
$or$cond$not = $or$cond ^ 1;
$14 = HEAP32[17686]|0;
$15 = ($14|0)!=(0);
$or$cond3 = $or$cond$not & $15;
if (!($or$cond3)) {
(_gpgrt_lock_unlock(1228)|0);
STACKTOP = sp;return;
}
HEAP32[17686] = 0;
_print_warn();
(_gpgrt_lock_unlock(1228)|0);
STACKTOP = sp;return;
}
function _print_warn() {
var $0 = 0, $1 = 0, $2 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[17683]|0;
$1 = ($0|0)!=(0);
if ($1) {
STACKTOP = sp;return;
}
$2 = (__gcry_gettext(23054)|0);
__gcry_log_info($2,$vararg_buffer);
STACKTOP = sp;return;
}
function __gcry_secmem_get_flags() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $flags = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
(_gpgrt_lock_lock(1228)|0);
$0 = HEAP32[17683]|0;
$1 = ($0|0)!=(0);
$2 = $1 ? 1 : 0;
$flags = $2;
$3 = HEAP32[17682]|0;
$4 = ($3|0)!=(0);
$5 = $4 ? 2 : 0;
$6 = $flags;
$7 = $6 | $5;
$flags = $7;
$8 = HEAP32[17687]|0;
$9 = ($8|0)!=(0);
$10 = $9 ? 4 : 0;
$11 = $flags;
$12 = $11 | $10;
$flags = $12;
$13 = HEAP32[17684]|0;
$14 = ($13|0)!=(0);
$15 = $14 ? 8 : 0;
$16 = $flags;
$17 = $16 | $15;
$flags = $17;
$18 = HEAP32[17685]|0;
$19 = ($18|0)!=(0);
$20 = $19 ? 16 : 0;
$21 = $flags;
$22 = $21 | $20;
$flags = $22;
(_gpgrt_lock_unlock(1228)|0);
$23 = $flags;
STACKTOP = sp;return ($23|0);
}
function __gcry_secmem_init($n) {
$n = $n|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
(_gpgrt_lock_lock(1228)|0);
$1 = $0;
_secmem_init($1);
(_gpgrt_lock_unlock(1228)|0);
STACKTOP = sp;return;
}
function _secmem_init($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $uid = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$0 = $n;
$1 = $0;
$2 = ($1|0)!=(0);
if ($2) {
$15 = $0;
$16 = ($15>>>0)<(16384);
if ($16) {
$0 = 16384;
}
$17 = HEAP32[17689]|0;
$18 = ($17|0)!=(0);
if ($18) {
__gcry_log_error(23286,$vararg_buffer1);
STACKTOP = sp;return;
} else {
$19 = $0;
_init_pool($19);
$20 = HEAP32[17691]|0;
$21 = $0;
_lock_pool($20,$21);
STACKTOP = sp;return;
}
}
HEAP32[17688] = 1;
$3 = (_getuid()|0);
$uid = $3;
$4 = $uid;
$5 = (_geteuid()|0);
$6 = ($4|0)!=($5|0);
if (!($6)) {
STACKTOP = sp;return;
}
$7 = $uid;
$8 = (_setuid($7)|0);
$9 = ($8|0)!=(0);
if ($9) {
__gcry_log_fatal(23087,$vararg_buffer);
// unreachable;
}
$10 = (_getuid()|0);
$11 = (_geteuid()|0);
$12 = ($10|0)!=($11|0);
if ($12) {
__gcry_log_fatal(23087,$vararg_buffer);
// unreachable;
}
$13 = (_setuid(0)|0);
$14 = ($13|0)!=(0);
if ($14) {
STACKTOP = sp;return;
} else {
__gcry_log_fatal(23087,$vararg_buffer);
// unreachable;
}
}
function _init_pool($n) {
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $mb = 0;
var $or$cond = 0, $pgsize = 0, $pgsize_val = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$0 = $n;
$1 = $0;
HEAP32[17690] = $1;
$2 = HEAP32[17688]|0;
$3 = ($2|0)!=(0);
if ($3) {
__gcry_log_bug(23110,$vararg_buffer);
// unreachable;
}
$4 = (_sysconf(30)|0);
$pgsize_val = $4;
$5 = $pgsize_val;
$6 = ($5|0)!=(-1);
$7 = $pgsize_val;
$8 = ($7|0)>(0);
$or$cond = $6 & $8;
$9 = $pgsize_val;
$10 = $or$cond ? $9 : 4096;
$pgsize = $10;
$11 = HEAP32[17690]|0;
$12 = $pgsize;
$13 = (($11) + ($12))|0;
$14 = (($13) - 1)|0;
$15 = $pgsize;
$16 = (($15) - 1)|0;
$17 = $16 ^ -1;
$18 = $14 & $17;
HEAP32[17690] = $18;
$19 = HEAP32[17690]|0;
$20 = (___mmap(0,$19,3,34,-1,0)|0);
HEAP32[17691] = $20;
$21 = HEAP32[17691]|0;
$22 = ($21|0)==((-1)|0);
if ($22) {
$23 = HEAP32[17690]|0;
$24 = (___errno_location()|0);
$25 = HEAP32[$24>>2]|0;
$26 = (_strerror($25)|0);
HEAP32[$vararg_buffer2>>2] = $23;
$vararg_ptr4 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr4>>2] = $26;
__gcry_log_info(23136,$vararg_buffer2);
} else {
HEAP32[17692] = 1;
HEAP32[17689] = 1;
}
$27 = HEAP32[17689]|0;
$28 = ($27|0)!=(0);
if ($28) {
$34 = HEAP32[17691]|0;
$mb = $34;
$35 = HEAP32[17690]|0;
$36 = $mb;
HEAP32[$36>>2] = $35;
$37 = $mb;
$38 = ((($37)) + 4|0);
HEAP32[$38>>2] = 0;
STACKTOP = sp;return;
}
$29 = HEAP32[17690]|0;
$30 = (_malloc($29)|0);
HEAP32[17691] = $30;
$31 = HEAP32[17691]|0;
$32 = ($31|0)!=(0|0);
if (!($32)) {
$33 = HEAP32[17690]|0;
HEAP32[$vararg_buffer5>>2] = $33;
__gcry_log_fatal(23184,$vararg_buffer5);
// unreachable;
}
HEAP32[17689] = 1;
$34 = HEAP32[17691]|0;
$mb = $34;
$35 = HEAP32[17690]|0;
$36 = $mb;
HEAP32[$36>>2] = $35;
$37 = $mb;
$38 = ((($37)) + 4|0);
HEAP32[$38>>2] = 0;
STACKTOP = sp;return;
}
function _lock_pool($p,$n) {
$p = $p|0;
$n = $n|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $p;
$1 = $n;
$2 = HEAP32[17684]|0;
$3 = ($2|0)!=(0);
if ($3) {
STACKTOP = sp;return;
}
__gcry_log_info(23224,$vararg_buffer);
STACKTOP = sp;return;
}
function __gcry_secmem_module_init() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_secmem_malloc($size) {
$size = $size|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $size;
(_gpgrt_lock_lock(1228)|0);
$1 = $0;
$2 = (__gcry_secmem_malloc_internal($1)|0);
$p = $2;
(_gpgrt_lock_unlock(1228)|0);
$3 = $p;
STACKTOP = sp;return ($3|0);
}
function __gcry_secmem_malloc_internal($size) {
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $mb = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$1 = $size;
$2 = HEAP32[17689]|0;
$3 = ($2|0)!=(0);
if (!($3)) {
_secmem_init(32768);
$4 = HEAP32[17689]|0;
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = (__gcry_gettext(23332)|0);
__gcry_log_info($6,$vararg_buffer);
_gpg_err_set_errno(12);
$0 = 0;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
}
$7 = HEAP32[17687]|0;
$8 = ($7|0)!=(0);
if ($8) {
$9 = (__gcry_fips_mode()|0);
$10 = ($9|0)!=(0);
if ($10) {
$11 = (__gcry_gettext(23393)|0);
__gcry_log_info($11,$vararg_buffer2);
_gpg_err_set_errno(12);
$0 = 0;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
}
$12 = HEAP32[17686]|0;
$13 = ($12|0)==(0);
$14 = HEAP32[17682]|0;
$15 = ($14|0)!=(0);
$or$cond = $13 | $15;
if (!($or$cond)) {
HEAP32[17686] = 0;
_print_warn();
}
$16 = $1;
$17 = (($16) + 31)|0;
$18 = (($17>>>0) / 32)&-1;
$19 = $18<<5;
$1 = $19;
$20 = HEAP32[17691]|0;
$21 = $1;
$22 = (_mb_get_new($20,$21)|0);
$mb = $22;
$23 = $mb;
$24 = ($23|0)!=(0|0);
if ($24) {
$25 = $1;
_stats_update($25,0);
}
$26 = $mb;
$27 = ($26|0)!=(0|0);
$28 = $mb;
$29 = ((($28)) + 8|0);
$30 = $27 ? $29 : 0;
$0 = $30;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
function _mb_get_new($block,$size) {
$block = $block|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $mb = 0, $mb_split = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $block;
$1 = $size;
$2 = $0;
$mb = $2;
while(1) {
$3 = $mb;
$4 = (_ptr_into_pool_p($3)|0);
$5 = ($4|0)!=(0);
if (!($5)) {
break;
}
$6 = $mb;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 & 1;
$10 = ($9|0)!=(0);
if (!($10)) {
$11 = $mb;
$12 = HEAP32[$11>>2]|0;
$13 = $1;
$14 = ($12>>>0)>=($13>>>0);
if ($14) {
label = 5;
break;
}
}
$39 = $mb;
$40 = (_mb_get_next($39)|0);
$mb = $40;
}
if ((label|0) == 5) {
$15 = $mb;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = $17 | 1;
HEAP32[$16>>2] = $18;
$19 = $mb;
$20 = HEAP32[$19>>2]|0;
$21 = $1;
$22 = (($20) - ($21))|0;
$23 = ($22>>>0)>(8);
if ($23) {
$24 = $mb;
$25 = ((($24)) + 8|0);
$26 = $1;
$27 = (($25) + ($26)|0);
$mb_split = $27;
$28 = $mb;
$29 = HEAP32[$28>>2]|0;
$30 = $1;
$31 = (($29) - ($30))|0;
$32 = (($31) - 8)|0;
$33 = $mb_split;
HEAP32[$33>>2] = $32;
$34 = $mb_split;
$35 = ((($34)) + 4|0);
HEAP32[$35>>2] = 0;
$36 = $1;
$37 = $mb;
HEAP32[$37>>2] = $36;
$38 = $mb_split;
_mb_merge($38);
}
}
$41 = $mb;
$42 = (_ptr_into_pool_p($41)|0);
$43 = ($42|0)!=(0);
if ($43) {
$44 = $mb;
STACKTOP = sp;return ($44|0);
}
_gpg_err_set_errno(12);
$mb = 0;
$44 = $mb;
STACKTOP = sp;return ($44|0);
}
function _ptr_into_pool_p($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p_addr = 0, $pool_addr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = $0;
$2 = $1;
$p_addr = $2;
$3 = HEAP32[17691]|0;
$4 = $3;
$pool_addr = $4;
$5 = $p_addr;
$6 = $pool_addr;
$7 = ($5>>>0)>=($6>>>0);
if (!($7)) {
$14 = 0;
$13 = $14&1;
STACKTOP = sp;return ($13|0);
}
$8 = $p_addr;
$9 = $pool_addr;
$10 = HEAP32[17690]|0;
$11 = (($9) + ($10))|0;
$12 = ($8>>>0)<($11>>>0);
$14 = $12;
$13 = $14&1;
STACKTOP = sp;return ($13|0);
}
function _mb_merge($mb) {
$mb = $mb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $mb_next = 0, $mb_prev = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $mb;
$1 = $0;
$2 = (_mb_get_prev($1)|0);
$mb_prev = $2;
$3 = $0;
$4 = (_mb_get_next($3)|0);
$mb_next = $4;
$5 = $mb_prev;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $mb_prev;
$8 = ((($7)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = $9 & 1;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $0;
$13 = HEAP32[$12>>2]|0;
$14 = (8 + ($13))|0;
$15 = $mb_prev;
$16 = HEAP32[$15>>2]|0;
$17 = (($16) + ($14))|0;
HEAP32[$15>>2] = $17;
$18 = $mb_prev;
$0 = $18;
}
}
$19 = $mb_next;
$20 = ($19|0)!=(0|0);
if (!($20)) {
STACKTOP = sp;return;
}
$21 = $mb_next;
$22 = ((($21)) + 4|0);
$23 = HEAP32[$22>>2]|0;
$24 = $23 & 1;
$25 = ($24|0)!=(0);
if ($25) {
STACKTOP = sp;return;
}
$26 = $mb_next;
$27 = HEAP32[$26>>2]|0;
$28 = (8 + ($27))|0;
$29 = $0;
$30 = HEAP32[$29>>2]|0;
$31 = (($30) + ($28))|0;
HEAP32[$29>>2] = $31;
STACKTOP = sp;return;
}
function _mb_get_prev($mb) {
$mb = $mb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $mb_next = 0, $mb_prev = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $mb;
$1 = $0;
$2 = HEAP32[17691]|0;
$3 = ($1|0)==($2|0);
if ($3) {
$mb_prev = 0;
$11 = $mb_prev;
STACKTOP = sp;return ($11|0);
}
$4 = HEAP32[17691]|0;
$mb_prev = $4;
while(1) {
$5 = $mb_prev;
$6 = (_mb_get_next($5)|0);
$mb_next = $6;
$7 = $mb_next;
$8 = $0;
$9 = ($7|0)==($8|0);
if ($9) {
break;
}
$10 = $mb_next;
$mb_prev = $10;
}
$11 = $mb_prev;
STACKTOP = sp;return ($11|0);
}
function _mb_get_next($mb) {
$mb = $mb|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $mb_next = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $mb;
$1 = $0;
$2 = ((($1)) + 8|0);
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + ($4)|0);
$mb_next = $5;
$6 = $mb_next;
$7 = (_ptr_into_pool_p($6)|0);
$8 = ($7|0)!=(0);
if ($8) {
$9 = $mb_next;
STACKTOP = sp;return ($9|0);
}
$mb_next = 0;
$9 = $mb_next;
STACKTOP = sp;return ($9|0);
}
function _stats_update($add,$sub) {
$add = $add|0;
$sub = $sub|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $add;
$1 = $sub;
$2 = $0;
$3 = ($2|0)!=(0);
if ($3) {
$4 = $0;
$5 = HEAP32[17693]|0;
$6 = (($5) + ($4))|0;
HEAP32[17693] = $6;
$7 = HEAP32[17694]|0;
$8 = (($7) + 1)|0;
HEAP32[17694] = $8;
}
$9 = $1;
$10 = ($9|0)!=(0);
if (!($10)) {
STACKTOP = sp;return;
}
$11 = $1;
$12 = HEAP32[17693]|0;
$13 = (($12) - ($11))|0;
HEAP32[17693] = $13;
$14 = HEAP32[17694]|0;
$15 = (($14) + -1)|0;
HEAP32[17694] = $15;
STACKTOP = sp;return;
}
function __gcry_secmem_free($a) {
$a = $a|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
(_gpgrt_lock_lock(1228)|0);
$1 = $0;
__gcry_secmem_free_internal($1);
(_gpgrt_lock_unlock(1228)|0);
STACKTOP = sp;return;
}
function __gcry_secmem_free_internal($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $_vlen = 0, $_vlen12 = 0, $_vlen2 = 0, $_vlen7 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr11 = 0, $_vptr6 = 0, $_vptr_long = 0, $_vptr_long10 = 0, $_vptr_long15 = 0, $_vptr_long5 = 0, $_vset = 0, $_vset13 = 0, $_vset3 = 0, $_vset8 = 0, $_vset_long = 0, $_vset_long14 = 0, $_vset_long4 = 0;
var $_vset_long9 = 0, $mb = 0, $size = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp + 24|0;
$_vset_long4 = sp + 16|0;
$_vset_long9 = sp + 8|0;
$_vset_long14 = sp;
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = ((($3)) + -8|0);
$mb = $4;
$5 = $mb;
$6 = HEAP32[$5>>2]|0;
$size = $6;
$7 = $mb;
$8 = ((($7)) + 8|0);
$_vptr = $8;
$9 = $size;
$_vlen = $9;
$_vset = -1;
$10 = $_vset;
$11 = $10&255;
$12 = $_vset_long;
$13 = $12;
HEAP32[$13>>2] = $11;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = 0;
while(1) {
$16 = $_vptr;
$17 = $16;
$18 = $17 & 7;
$19 = ($18|0)!=(0);
$20 = $_vlen;
$21 = ($20|0)!=(0);
$22 = $19 ? $21 : 0;
if (!($22)) {
break;
}
$23 = $_vset;
$24 = $_vptr;
HEAP8[$24>>0] = $23;
$25 = $_vptr;
$26 = ((($25)) + 1|0);
$_vptr = $26;
$27 = $_vlen;
$28 = (($27) + -1)|0;
$_vlen = $28;
}
$29 = $_vlen;
$30 = ($29>>>0)<(8);
if (!($30)) {
$31 = $_vset_long;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = (($31) + 4)|0;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (___muldi3(($33|0),($36|0),16843009,16843009)|0);
$38 = tempRet0;
$39 = $_vset_long;
$40 = $39;
HEAP32[$40>>2] = $37;
$41 = (($39) + 4)|0;
$42 = $41;
HEAP32[$42>>2] = $38;
while(1) {
$43 = $_vptr;
$_vptr_long = $43;
$44 = $_vset_long;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = (($44) + 4)|0;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = $_vptr_long;
$51 = $50;
$52 = $51;
HEAP32[$52>>2] = $46;
$53 = (($51) + 4)|0;
$54 = $53;
HEAP32[$54>>2] = $49;
$55 = $_vlen;
$56 = (($55) - 8)|0;
$_vlen = $56;
$57 = $_vptr;
$58 = ((($57)) + 8|0);
$_vptr = $58;
$59 = $_vlen;
$60 = ($59>>>0)>=(8);
if (!($60)) {
break;
}
}
}
while(1) {
$61 = $_vlen;
$62 = ($61|0)!=(0);
if (!($62)) {
break;
}
$63 = $_vset;
$64 = $_vptr;
HEAP8[$64>>0] = $63;
$65 = $_vptr;
$66 = ((($65)) + 1|0);
$_vptr = $66;
$67 = $_vlen;
$68 = (($67) + -1)|0;
$_vlen = $68;
}
$69 = $mb;
$70 = ((($69)) + 8|0);
$_vptr1 = $70;
$71 = $size;
$_vlen2 = $71;
$_vset3 = -86;
$72 = $_vset3;
$73 = $72&255;
$74 = $_vset_long4;
$75 = $74;
HEAP32[$75>>2] = $73;
$76 = (($74) + 4)|0;
$77 = $76;
HEAP32[$77>>2] = 0;
while(1) {
$78 = $_vptr1;
$79 = $78;
$80 = $79 & 7;
$81 = ($80|0)!=(0);
$82 = $_vlen2;
$83 = ($82|0)!=(0);
$84 = $81 ? $83 : 0;
if (!($84)) {
break;
}
$85 = $_vset3;
$86 = $_vptr1;
HEAP8[$86>>0] = $85;
$87 = $_vptr1;
$88 = ((($87)) + 1|0);
$_vptr1 = $88;
$89 = $_vlen2;
$90 = (($89) + -1)|0;
$_vlen2 = $90;
}
$91 = $_vlen2;
$92 = ($91>>>0)<(8);
if (!($92)) {
$93 = $_vset_long4;
$94 = $93;
$95 = HEAP32[$94>>2]|0;
$96 = (($93) + 4)|0;
$97 = $96;
$98 = HEAP32[$97>>2]|0;
$99 = (___muldi3(($95|0),($98|0),16843009,16843009)|0);
$100 = tempRet0;
$101 = $_vset_long4;
$102 = $101;
HEAP32[$102>>2] = $99;
$103 = (($101) + 4)|0;
$104 = $103;
HEAP32[$104>>2] = $100;
while(1) {
$105 = $_vptr1;
$_vptr_long5 = $105;
$106 = $_vset_long4;
$107 = $106;
$108 = HEAP32[$107>>2]|0;
$109 = (($106) + 4)|0;
$110 = $109;
$111 = HEAP32[$110>>2]|0;
$112 = $_vptr_long5;
$113 = $112;
$114 = $113;
HEAP32[$114>>2] = $108;
$115 = (($113) + 4)|0;
$116 = $115;
HEAP32[$116>>2] = $111;
$117 = $_vlen2;
$118 = (($117) - 8)|0;
$_vlen2 = $118;
$119 = $_vptr1;
$120 = ((($119)) + 8|0);
$_vptr1 = $120;
$121 = $_vlen2;
$122 = ($121>>>0)>=(8);
if (!($122)) {
break;
}
}
}
while(1) {
$123 = $_vlen2;
$124 = ($123|0)!=(0);
if (!($124)) {
break;
}
$125 = $_vset3;
$126 = $_vptr1;
HEAP8[$126>>0] = $125;
$127 = $_vptr1;
$128 = ((($127)) + 1|0);
$_vptr1 = $128;
$129 = $_vlen2;
$130 = (($129) + -1)|0;
$_vlen2 = $130;
}
$131 = $mb;
$132 = ((($131)) + 8|0);
$_vptr6 = $132;
$133 = $size;
$_vlen7 = $133;
$_vset8 = 85;
$134 = $_vset8;
$135 = $134&255;
$136 = $_vset_long9;
$137 = $136;
HEAP32[$137>>2] = $135;
$138 = (($136) + 4)|0;
$139 = $138;
HEAP32[$139>>2] = 0;
while(1) {
$140 = $_vptr6;
$141 = $140;
$142 = $141 & 7;
$143 = ($142|0)!=(0);
$144 = $_vlen7;
$145 = ($144|0)!=(0);
$146 = $143 ? $145 : 0;
if (!($146)) {
break;
}
$147 = $_vset8;
$148 = $_vptr6;
HEAP8[$148>>0] = $147;
$149 = $_vptr6;
$150 = ((($149)) + 1|0);
$_vptr6 = $150;
$151 = $_vlen7;
$152 = (($151) + -1)|0;
$_vlen7 = $152;
}
$153 = $_vlen7;
$154 = ($153>>>0)<(8);
if (!($154)) {
$155 = $_vset_long9;
$156 = $155;
$157 = HEAP32[$156>>2]|0;
$158 = (($155) + 4)|0;
$159 = $158;
$160 = HEAP32[$159>>2]|0;
$161 = (___muldi3(($157|0),($160|0),16843009,16843009)|0);
$162 = tempRet0;
$163 = $_vset_long9;
$164 = $163;
HEAP32[$164>>2] = $161;
$165 = (($163) + 4)|0;
$166 = $165;
HEAP32[$166>>2] = $162;
while(1) {
$167 = $_vptr6;
$_vptr_long10 = $167;
$168 = $_vset_long9;
$169 = $168;
$170 = HEAP32[$169>>2]|0;
$171 = (($168) + 4)|0;
$172 = $171;
$173 = HEAP32[$172>>2]|0;
$174 = $_vptr_long10;
$175 = $174;
$176 = $175;
HEAP32[$176>>2] = $170;
$177 = (($175) + 4)|0;
$178 = $177;
HEAP32[$178>>2] = $173;
$179 = $_vlen7;
$180 = (($179) - 8)|0;
$_vlen7 = $180;
$181 = $_vptr6;
$182 = ((($181)) + 8|0);
$_vptr6 = $182;
$183 = $_vlen7;
$184 = ($183>>>0)>=(8);
if (!($184)) {
break;
}
}
}
while(1) {
$185 = $_vlen7;
$186 = ($185|0)!=(0);
if (!($186)) {
break;
}
$187 = $_vset8;
$188 = $_vptr6;
HEAP8[$188>>0] = $187;
$189 = $_vptr6;
$190 = ((($189)) + 1|0);
$_vptr6 = $190;
$191 = $_vlen7;
$192 = (($191) + -1)|0;
$_vlen7 = $192;
}
$193 = $mb;
$194 = ((($193)) + 8|0);
$_vptr11 = $194;
$195 = $size;
$_vlen12 = $195;
$_vset13 = 0;
$196 = $_vset13;
$197 = $196&255;
$198 = $_vset_long14;
$199 = $198;
HEAP32[$199>>2] = $197;
$200 = (($198) + 4)|0;
$201 = $200;
HEAP32[$201>>2] = 0;
while(1) {
$202 = $_vptr11;
$203 = $202;
$204 = $203 & 7;
$205 = ($204|0)!=(0);
$206 = $_vlen12;
$207 = ($206|0)!=(0);
$208 = $205 ? $207 : 0;
if (!($208)) {
break;
}
$209 = $_vset13;
$210 = $_vptr11;
HEAP8[$210>>0] = $209;
$211 = $_vptr11;
$212 = ((($211)) + 1|0);
$_vptr11 = $212;
$213 = $_vlen12;
$214 = (($213) + -1)|0;
$_vlen12 = $214;
}
$215 = $_vlen12;
$216 = ($215>>>0)<(8);
if (!($216)) {
$217 = $_vset_long14;
$218 = $217;
$219 = HEAP32[$218>>2]|0;
$220 = (($217) + 4)|0;
$221 = $220;
$222 = HEAP32[$221>>2]|0;
$223 = (___muldi3(($219|0),($222|0),16843009,16843009)|0);
$224 = tempRet0;
$225 = $_vset_long14;
$226 = $225;
HEAP32[$226>>2] = $223;
$227 = (($225) + 4)|0;
$228 = $227;
HEAP32[$228>>2] = $224;
while(1) {
$229 = $_vptr11;
$_vptr_long15 = $229;
$230 = $_vset_long14;
$231 = $230;
$232 = HEAP32[$231>>2]|0;
$233 = (($230) + 4)|0;
$234 = $233;
$235 = HEAP32[$234>>2]|0;
$236 = $_vptr_long15;
$237 = $236;
$238 = $237;
HEAP32[$238>>2] = $232;
$239 = (($237) + 4)|0;
$240 = $239;
HEAP32[$240>>2] = $235;
$241 = $_vlen12;
$242 = (($241) - 8)|0;
$_vlen12 = $242;
$243 = $_vptr11;
$244 = ((($243)) + 8|0);
$_vptr11 = $244;
$245 = $_vlen12;
$246 = ($245>>>0)>=(8);
if (!($246)) {
break;
}
}
}
while(1) {
$247 = $_vlen12;
$248 = ($247|0)!=(0);
if (!($248)) {
break;
}
$249 = $_vset13;
$250 = $_vptr11;
HEAP8[$250>>0] = $249;
$251 = $_vptr11;
$252 = ((($251)) + 1|0);
$_vptr11 = $252;
$253 = $_vlen12;
$254 = (($253) + -1)|0;
$_vlen12 = $254;
}
$255 = $size;
_stats_update(0,$255);
$256 = $mb;
$257 = ((($256)) + 4|0);
$258 = HEAP32[$257>>2]|0;
$259 = $258 & -2;
HEAP32[$257>>2] = $259;
$260 = $mb;
_mb_merge($260);
STACKTOP = sp;return;
}
function __gcry_secmem_realloc($p,$newsize) {
$p = $p|0;
$newsize = $newsize|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $a = 0, $mb = 0, $size = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = $newsize;
(_gpgrt_lock_lock(1228)|0);
$2 = $0;
$3 = (($2) + (((0 - ((((0) + 8|0))))|0))|0);
$mb = $3;
$4 = $mb;
$5 = HEAP32[$4>>2]|0;
$size = $5;
$6 = $1;
$7 = $size;
$8 = ($6>>>0)<($7>>>0);
if ($8) {
$9 = $0;
$a = $9;
} else {
$10 = $1;
$11 = (__gcry_secmem_malloc_internal($10)|0);
$a = $11;
$12 = $a;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = $a;
$15 = $0;
$16 = $size;
_memcpy(($14|0),($15|0),($16|0))|0;
$17 = $a;
$18 = $size;
$19 = (($17) + ($18)|0);
$20 = $1;
$21 = $size;
$22 = (($20) - ($21))|0;
_memset(($19|0),0,($22|0))|0;
$23 = $0;
__gcry_secmem_free_internal($23);
}
}
(_gpgrt_lock_unlock(1228)|0);
$24 = $a;
STACKTOP = sp;return ($24|0);
}
function __gcry_private_is_secure($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = HEAP32[17689]|0;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $0;
$4 = (_ptr_into_pool_p($3)|0);
$5 = ($4|0)!=(0);
$7 = $5;
} else {
$7 = 0;
}
$6 = $7&1;
STACKTOP = sp;return ($6|0);
}
function __gcry_secmem_term() {
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vlen12 = 0, $_vlen2 = 0, $_vlen7 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr11 = 0, $_vptr6 = 0, $_vptr_long = 0, $_vptr_long10 = 0;
var $_vptr_long15 = 0, $_vptr_long5 = 0, $_vset = 0, $_vset13 = 0, $_vset3 = 0, $_vset8 = 0, $_vset_long = 0, $_vset_long14 = 0, $_vset_long4 = 0, $_vset_long9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp + 24|0;
$_vset_long4 = sp + 16|0;
$_vset_long9 = sp + 8|0;
$_vset_long14 = sp;
$0 = HEAP32[17689]|0;
$1 = ($0|0)!=(0);
if (!($1)) {
STACKTOP = sp;return;
}
$2 = HEAP32[17691]|0;
$_vptr = $2;
$3 = HEAP32[17690]|0;
$_vlen = $3;
$_vset = -1;
$4 = $_vset;
$5 = $4&255;
$6 = $_vset_long;
$7 = $6;
HEAP32[$7>>2] = $5;
$8 = (($6) + 4)|0;
$9 = $8;
HEAP32[$9>>2] = 0;
while(1) {
$10 = $_vptr;
$11 = $10;
$12 = $11 & 7;
$13 = ($12|0)!=(0);
$14 = $_vlen;
$15 = ($14|0)!=(0);
$16 = $13 ? $15 : 0;
if (!($16)) {
break;
}
$17 = $_vset;
$18 = $_vptr;
HEAP8[$18>>0] = $17;
$19 = $_vptr;
$20 = ((($19)) + 1|0);
$_vptr = $20;
$21 = $_vlen;
$22 = (($21) + -1)|0;
$_vlen = $22;
}
$23 = $_vlen;
$24 = ($23>>>0)<(8);
if (!($24)) {
$25 = $_vset_long;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (___muldi3(($27|0),($30|0),16843009,16843009)|0);
$32 = tempRet0;
$33 = $_vset_long;
$34 = $33;
HEAP32[$34>>2] = $31;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
while(1) {
$37 = $_vptr;
$_vptr_long = $37;
$38 = $_vset_long;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = $_vptr_long;
$45 = $44;
$46 = $45;
HEAP32[$46>>2] = $40;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP32[$48>>2] = $43;
$49 = $_vlen;
$50 = (($49) - 8)|0;
$_vlen = $50;
$51 = $_vptr;
$52 = ((($51)) + 8|0);
$_vptr = $52;
$53 = $_vlen;
$54 = ($53>>>0)>=(8);
if (!($54)) {
break;
}
}
}
while(1) {
$55 = $_vlen;
$56 = ($55|0)!=(0);
if (!($56)) {
break;
}
$57 = $_vset;
$58 = $_vptr;
HEAP8[$58>>0] = $57;
$59 = $_vptr;
$60 = ((($59)) + 1|0);
$_vptr = $60;
$61 = $_vlen;
$62 = (($61) + -1)|0;
$_vlen = $62;
}
$63 = HEAP32[17691]|0;
$_vptr1 = $63;
$64 = HEAP32[17690]|0;
$_vlen2 = $64;
$_vset3 = -86;
$65 = $_vset3;
$66 = $65&255;
$67 = $_vset_long4;
$68 = $67;
HEAP32[$68>>2] = $66;
$69 = (($67) + 4)|0;
$70 = $69;
HEAP32[$70>>2] = 0;
while(1) {
$71 = $_vptr1;
$72 = $71;
$73 = $72 & 7;
$74 = ($73|0)!=(0);
$75 = $_vlen2;
$76 = ($75|0)!=(0);
$77 = $74 ? $76 : 0;
if (!($77)) {
break;
}
$78 = $_vset3;
$79 = $_vptr1;
HEAP8[$79>>0] = $78;
$80 = $_vptr1;
$81 = ((($80)) + 1|0);
$_vptr1 = $81;
$82 = $_vlen2;
$83 = (($82) + -1)|0;
$_vlen2 = $83;
}
$84 = $_vlen2;
$85 = ($84>>>0)<(8);
if (!($85)) {
$86 = $_vset_long4;
$87 = $86;
$88 = HEAP32[$87>>2]|0;
$89 = (($86) + 4)|0;
$90 = $89;
$91 = HEAP32[$90>>2]|0;
$92 = (___muldi3(($88|0),($91|0),16843009,16843009)|0);
$93 = tempRet0;
$94 = $_vset_long4;
$95 = $94;
HEAP32[$95>>2] = $92;
$96 = (($94) + 4)|0;
$97 = $96;
HEAP32[$97>>2] = $93;
while(1) {
$98 = $_vptr1;
$_vptr_long5 = $98;
$99 = $_vset_long4;
$100 = $99;
$101 = HEAP32[$100>>2]|0;
$102 = (($99) + 4)|0;
$103 = $102;
$104 = HEAP32[$103>>2]|0;
$105 = $_vptr_long5;
$106 = $105;
$107 = $106;
HEAP32[$107>>2] = $101;
$108 = (($106) + 4)|0;
$109 = $108;
HEAP32[$109>>2] = $104;
$110 = $_vlen2;
$111 = (($110) - 8)|0;
$_vlen2 = $111;
$112 = $_vptr1;
$113 = ((($112)) + 8|0);
$_vptr1 = $113;
$114 = $_vlen2;
$115 = ($114>>>0)>=(8);
if (!($115)) {
break;
}
}
}
while(1) {
$116 = $_vlen2;
$117 = ($116|0)!=(0);
if (!($117)) {
break;
}
$118 = $_vset3;
$119 = $_vptr1;
HEAP8[$119>>0] = $118;
$120 = $_vptr1;
$121 = ((($120)) + 1|0);
$_vptr1 = $121;
$122 = $_vlen2;
$123 = (($122) + -1)|0;
$_vlen2 = $123;
}
$124 = HEAP32[17691]|0;
$_vptr6 = $124;
$125 = HEAP32[17690]|0;
$_vlen7 = $125;
$_vset8 = 85;
$126 = $_vset8;
$127 = $126&255;
$128 = $_vset_long9;
$129 = $128;
HEAP32[$129>>2] = $127;
$130 = (($128) + 4)|0;
$131 = $130;
HEAP32[$131>>2] = 0;
while(1) {
$132 = $_vptr6;
$133 = $132;
$134 = $133 & 7;
$135 = ($134|0)!=(0);
$136 = $_vlen7;
$137 = ($136|0)!=(0);
$138 = $135 ? $137 : 0;
if (!($138)) {
break;
}
$139 = $_vset8;
$140 = $_vptr6;
HEAP8[$140>>0] = $139;
$141 = $_vptr6;
$142 = ((($141)) + 1|0);
$_vptr6 = $142;
$143 = $_vlen7;
$144 = (($143) + -1)|0;
$_vlen7 = $144;
}
$145 = $_vlen7;
$146 = ($145>>>0)<(8);
if (!($146)) {
$147 = $_vset_long9;
$148 = $147;
$149 = HEAP32[$148>>2]|0;
$150 = (($147) + 4)|0;
$151 = $150;
$152 = HEAP32[$151>>2]|0;
$153 = (___muldi3(($149|0),($152|0),16843009,16843009)|0);
$154 = tempRet0;
$155 = $_vset_long9;
$156 = $155;
HEAP32[$156>>2] = $153;
$157 = (($155) + 4)|0;
$158 = $157;
HEAP32[$158>>2] = $154;
while(1) {
$159 = $_vptr6;
$_vptr_long10 = $159;
$160 = $_vset_long9;
$161 = $160;
$162 = HEAP32[$161>>2]|0;
$163 = (($160) + 4)|0;
$164 = $163;
$165 = HEAP32[$164>>2]|0;
$166 = $_vptr_long10;
$167 = $166;
$168 = $167;
HEAP32[$168>>2] = $162;
$169 = (($167) + 4)|0;
$170 = $169;
HEAP32[$170>>2] = $165;
$171 = $_vlen7;
$172 = (($171) - 8)|0;
$_vlen7 = $172;
$173 = $_vptr6;
$174 = ((($173)) + 8|0);
$_vptr6 = $174;
$175 = $_vlen7;
$176 = ($175>>>0)>=(8);
if (!($176)) {
break;
}
}
}
while(1) {
$177 = $_vlen7;
$178 = ($177|0)!=(0);
if (!($178)) {
break;
}
$179 = $_vset8;
$180 = $_vptr6;
HEAP8[$180>>0] = $179;
$181 = $_vptr6;
$182 = ((($181)) + 1|0);
$_vptr6 = $182;
$183 = $_vlen7;
$184 = (($183) + -1)|0;
$_vlen7 = $184;
}
$185 = HEAP32[17691]|0;
$_vptr11 = $185;
$186 = HEAP32[17690]|0;
$_vlen12 = $186;
$_vset13 = 0;
$187 = $_vset13;
$188 = $187&255;
$189 = $_vset_long14;
$190 = $189;
HEAP32[$190>>2] = $188;
$191 = (($189) + 4)|0;
$192 = $191;
HEAP32[$192>>2] = 0;
while(1) {
$193 = $_vptr11;
$194 = $193;
$195 = $194 & 7;
$196 = ($195|0)!=(0);
$197 = $_vlen12;
$198 = ($197|0)!=(0);
$199 = $196 ? $198 : 0;
if (!($199)) {
break;
}
$200 = $_vset13;
$201 = $_vptr11;
HEAP8[$201>>0] = $200;
$202 = $_vptr11;
$203 = ((($202)) + 1|0);
$_vptr11 = $203;
$204 = $_vlen12;
$205 = (($204) + -1)|0;
$_vlen12 = $205;
}
$206 = $_vlen12;
$207 = ($206>>>0)<(8);
if (!($207)) {
$208 = $_vset_long14;
$209 = $208;
$210 = HEAP32[$209>>2]|0;
$211 = (($208) + 4)|0;
$212 = $211;
$213 = HEAP32[$212>>2]|0;
$214 = (___muldi3(($210|0),($213|0),16843009,16843009)|0);
$215 = tempRet0;
$216 = $_vset_long14;
$217 = $216;
HEAP32[$217>>2] = $214;
$218 = (($216) + 4)|0;
$219 = $218;
HEAP32[$219>>2] = $215;
while(1) {
$220 = $_vptr11;
$_vptr_long15 = $220;
$221 = $_vset_long14;
$222 = $221;
$223 = HEAP32[$222>>2]|0;
$224 = (($221) + 4)|0;
$225 = $224;
$226 = HEAP32[$225>>2]|0;
$227 = $_vptr_long15;
$228 = $227;
$229 = $228;
HEAP32[$229>>2] = $223;
$230 = (($228) + 4)|0;
$231 = $230;
HEAP32[$231>>2] = $226;
$232 = $_vlen12;
$233 = (($232) - 8)|0;
$_vlen12 = $233;
$234 = $_vptr11;
$235 = ((($234)) + 8|0);
$_vptr11 = $235;
$236 = $_vlen12;
$237 = ($236>>>0)>=(8);
if (!($237)) {
break;
}
}
}
while(1) {
$238 = $_vlen12;
$239 = ($238|0)!=(0);
if (!($239)) {
break;
}
$240 = $_vset13;
$241 = $_vptr11;
HEAP8[$241>>0] = $240;
$242 = $_vptr11;
$243 = ((($242)) + 1|0);
$_vptr11 = $243;
$244 = $_vlen12;
$245 = (($244) + -1)|0;
$_vlen12 = $245;
}
$246 = HEAP32[17692]|0;
$247 = ($246|0)!=(0);
if ($247) {
$248 = HEAP32[17691]|0;
$249 = HEAP32[17690]|0;
(___munmap($248,$249)|0);
}
HEAP32[17691] = 0;
HEAP32[17689] = 0;
HEAP32[17690] = 0;
HEAP32[17687] = 0;
STACKTOP = sp;return;
}
function __gcry_secmem_dump_stats() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
(_gpgrt_lock_lock(1228)|0);
$0 = HEAP32[17689]|0;
$1 = ($0|0)!=(0);
if (!($1)) {
(_gpgrt_lock_unlock(1228)|0);
STACKTOP = sp;return;
}
$2 = HEAP32[17693]|0;
$3 = HEAP32[17690]|0;
$4 = HEAP32[17694]|0;
HEAP32[$vararg_buffer>>2] = $2;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $4;
__gcry_log_info(23446,$vararg_buffer);
(_gpgrt_lock_unlock(1228)|0);
STACKTOP = sp;return;
}
function __gcry_initialize_fips_mode($force) {
$force = $force|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $fp = 0, $fp1 = 0, $line = 0, $line2 = 0, $or$cond = 0, $saved_errno = 0, $vararg_buffer = 0;
var $vararg_buffer3 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 544|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 8|0;
$vararg_buffer = sp;
$line = sp + 288|0;
$line2 = sp + 32|0;
$0 = $force;
$1 = HEAP32[17695]|0;
$2 = ($1|0)!=(0);
if ($2) {
$3 = (__gcry_fips_mode()|0);
$4 = ($3|0)!=(0);
if ($4) {
_fips_new_state(5);
__gcry_fips_noreturn();
}
$5 = HEAP32[17695]|0;
$6 = ($5|0)!=(0);
if ($6) {
__gcry_assert_failed(23715,23721,114,23728);
// unreachable;
}
}
HEAP32[17695] = 1;
$7 = $0;
$8 = ($7|0)!=(0);
do {
if ($8) {
$9 = HEAP32[17696]|0;
$10 = ($9|0)!=(0);
if ($10) {
__gcry_assert_failed(23755,23721,121,23728);
// unreachable;
}
} else {
$11 = (_access(23778,0)|0);
$12 = ($11|0)!=(0);
if (!($12)) {
$13 = HEAP32[17696]|0;
$14 = ($13|0)!=(0);
if (!($14)) {
break;
}
__gcry_assert_failed(23755,23721,132,23728);
// unreachable;
}
$15 = (_fopen(23803,23833)|0);
$fp = $15;
$16 = $fp;
$17 = ($16|0)!=(0|0);
if ($17) {
$18 = $fp;
$19 = (_fgets($line,256,$18)|0);
$20 = ($19|0)!=(0|0);
if ($20) {
$21 = (_atoi($line)|0);
$22 = ($21|0)!=(0);
if ($22) {
$23 = $fp;
(_fclose($23)|0);
$24 = HEAP32[17696]|0;
$25 = ($24|0)!=(0);
if (!($25)) {
break;
}
__gcry_assert_failed(23755,23721,151,23728);
// unreachable;
}
}
$26 = $fp;
(_fclose($26)|0);
} else {
$27 = (___errno_location()|0);
$28 = HEAP32[$27>>2]|0;
$saved_errno = $28;
$29 = ($28|0)!=(2);
$30 = $saved_errno;
$31 = ($30|0)!=(13);
$or$cond = $29 & $31;
if ($or$cond) {
$32 = (_access(23835,0)|0);
$33 = ($32|0)!=(0);
if (!($33)) {
$34 = $saved_errno;
$35 = (_strerror($34)|0);
HEAP32[$vararg_buffer>>2] = 23803;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $35;
__gcry_log_info(23849,$vararg_buffer);
_abort();
// unreachable;
}
}
}
HEAP32[17696] = 1;
}
} while(0);
$36 = HEAP32[17696]|0;
$37 = ($36|0)!=(0);
if ($37) {
STACKTOP = sp;return;
}
$38 = (_gpgrt_lock_init(1272)|0);
$err = $38;
$39 = $err;
$40 = ($39|0)!=(0);
if ($40) {
$41 = $err;
$42 = (_gpg_strerror($41)|0);
HEAP32[$vararg_buffer3>>2] = $42;
__gcry_log_info(23893,$vararg_buffer3);
_abort();
// unreachable;
}
$43 = (_fopen(23778,23833)|0);
$fp1 = $43;
$44 = $fp1;
$45 = ($44|0)!=(0|0);
if ($45) {
$46 = $fp1;
$47 = (_fgets($line2,256,$46)|0);
$48 = ($47|0)!=(0|0);
if ($48) {
$49 = (_atoi($line2)|0);
$50 = ($49|0)!=(0);
if ($50) {
HEAP32[17698] = 1;
}
}
$51 = $fp1;
(_fclose($51)|0);
}
_fips_new_state(1);
STACKTOP = sp;return;
}
function __gcry_fips_mode() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17696]|0;
$1 = ($0|0)!=(0);
$2 = $1 ^ 1;
$3 = $2&1;
return ($3|0);
}
function _fips_new_state($new_state) {
$new_state = $new_state|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $last_state = 0, $ok = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0;
var $or$cond15 = 0, $or$cond17 = 0, $or$cond19 = 0, $or$cond21 = 0, $or$cond23 = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $vararg_buffer = 0, $vararg_ptr26 = 0, $vararg_ptr27 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $new_state;
$ok = 0;
_lock_fsm();
$1 = HEAP32[17697]|0;
$last_state = $1;
$2 = HEAP32[17697]|0;
switch ($2|0) {
case 0: {
$3 = $0;
$4 = ($3|0)==(1);
$5 = $0;
$6 = ($5|0)==(4);
$or$cond = $4 | $6;
$7 = $0;
$8 = ($7|0)==(5);
$or$cond3 = $or$cond | $8;
if ($or$cond3) {
$ok = 1;
}
break;
}
case 1: {
$9 = $0;
$10 = ($9|0)==(2);
$11 = $0;
$12 = ($11|0)==(4);
$or$cond5 = $10 | $12;
$13 = $0;
$14 = ($13|0)==(5);
$or$cond7 = $or$cond5 | $14;
if ($or$cond7) {
$ok = 1;
}
break;
}
case 2: {
$15 = $0;
$16 = ($15|0)==(3);
$17 = $0;
$18 = ($17|0)==(4);
$or$cond9 = $16 | $18;
$19 = $0;
$20 = ($19|0)==(5);
$or$cond11 = $or$cond9 | $20;
if ($or$cond11) {
$ok = 1;
}
break;
}
case 3: {
$21 = $0;
$22 = ($21|0)==(6);
$23 = $0;
$24 = ($23|0)==(2);
$or$cond13 = $22 | $24;
$25 = $0;
$26 = ($25|0)==(4);
$or$cond15 = $or$cond13 | $26;
$27 = $0;
$28 = ($27|0)==(5);
$or$cond17 = $or$cond15 | $28;
if ($or$cond17) {
$ok = 1;
}
break;
}
case 4: {
$29 = $0;
$30 = ($29|0)==(6);
$31 = $0;
$32 = ($31|0)==(4);
$or$cond19 = $30 | $32;
$33 = $0;
$34 = ($33|0)==(5);
$or$cond21 = $or$cond19 | $34;
$35 = $0;
$36 = ($35|0)==(2);
$or$cond23 = $or$cond21 | $36;
if ($or$cond23) {
$ok = 1;
}
break;
}
case 5: {
$37 = $0;
$38 = ($37|0)==(6);
if ($38) {
$ok = 1;
}
break;
}
default: {
}
}
$39 = $ok;
$40 = ($39|0)!=(0);
if ($40) {
$41 = $0;
HEAP32[17697] = $41;
}
_unlock_fsm();
$42 = $ok;
$43 = ($42|0)!=(0);
if ($43) {
$44 = (__gcry_log_verbosity(2)|0);
$45 = ($44|0)!=(0);
if ($45) {
label = 18;
}
} else {
label = 18;
}
if ((label|0) == 18) {
$46 = $last_state;
$47 = (_state2str($46)|0);
$48 = $0;
$49 = (_state2str($48)|0);
$50 = $ok;
$51 = ($50|0)!=(0);
$52 = $51 ? 23660 : 23668;
HEAP32[$vararg_buffer>>2] = $47;
$vararg_ptr26 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr26>>2] = $49;
$vararg_ptr27 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr27>>2] = $52;
__gcry_log_info(23675,$vararg_buffer);
}
$53 = $ok;
$54 = ($53|0)!=(0);
if ($54) {
STACKTOP = sp;return;
} else {
__gcry_fips_noreturn();
STACKTOP = sp;return;
}
}
function _lock_fsm() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $err = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_gpgrt_lock_lock(1272)|0);
$err = $0;
$1 = $err;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $err;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_info(23487,$vararg_buffer);
_abort();
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function _unlock_fsm() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $err = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_gpgrt_lock_unlock(1272)|0);
$err = $0;
$1 = $err;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $err;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_info(23542,$vararg_buffer);
_abort();
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function _state2str($state) {
$state = $state|0;
var $0 = 0, $1 = 0, $2 = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $state;
$1 = $0;
switch ($1|0) {
case 0: {
$s = 23597;
break;
}
case 1: {
$s = 23606;
break;
}
case 2: {
$s = 23611;
break;
}
case 3: {
$s = 23621;
break;
}
case 4: {
$s = 23633;
break;
}
case 5: {
$s = 23639;
break;
}
case 6: {
$s = 23651;
break;
}
default: {
$s = 37956;
}
}
$2 = $s;
STACKTOP = sp;return ($2|0);
}
function __gcry_fips_noreturn() {
var label = 0, sp = 0;
sp = STACKTOP;
(_fflush(0)|0);
_abort();
// unreachable;
}
function __gcry_enforced_fips_mode() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if ($2) {
$3 = HEAP32[17698]|0;
$0 = $3;
} else {
$0 = 0;
}
$4 = $0;
STACKTOP = sp;return ($4|0);
}
function __gcry_set_enforced_fips_mode() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[17698] = 1;
return;
}
function __gcry_inactivate_fips_mode($text) {
$text = $text|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $text;
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if (!($2)) {
__gcry_assert_failed(23948,23721,295,23967);
// unreachable;
}
$3 = (__gcry_enforced_fips_mode()|0);
$4 = ($3|0)!=(0);
if ($4) {
$5 = $0;
__gcry_fips_signal_error(23721,300,23967,0,$5);
STACKTOP = sp;return;
}
_lock_fsm();
$6 = HEAP32[17699]|0;
$7 = ($6|0)!=(0);
if ($7) {
_unlock_fsm();
STACKTOP = sp;return;
} else {
HEAP32[17699] = 1;
_unlock_fsm();
STACKTOP = sp;return;
}
}
function __gcry_fips_signal_error($srcfile,$srcline,$srcfunc,$is_fatal,$description) {
$srcfile = $srcfile|0;
$srcline = $srcline|0;
$srcfunc = $srcfunc|0;
$is_fatal = $is_fatal|0;
$description = $description|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $srcfile;
$1 = $srcline;
$2 = $srcfunc;
$3 = $is_fatal;
$4 = $description;
$5 = (__gcry_fips_mode()|0);
$6 = ($5|0)!=(0);
if (!($6)) {
STACKTOP = sp;return;
}
$7 = $3;
$8 = ($7|0)!=(0);
$9 = $8 ? 5 : 4;
_fips_new_state($9);
$10 = $3;
$11 = ($10|0)!=(0);
$12 = $11 ? 23994 : 76543;
$13 = $0;
$14 = $1;
$15 = $2;
$16 = ($15|0)!=(0|0);
$17 = $16 ? 24001 : 76543;
$18 = $2;
$19 = ($18|0)!=(0|0);
$20 = $2;
$21 = $19 ? $20 : 76543;
$22 = $4;
$23 = ($22|0)!=(0|0);
$24 = $4;
$25 = $23 ? $24 : 24013;
HEAP32[$vararg_buffer>>2] = $12;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $13;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $14;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $17;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $21;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $25;
__gcry_log_info(24038,$vararg_buffer);
STACKTOP = sp;return;
}
function __gcry_is_fips_mode_inactive() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $flag = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if ($2) {
_lock_fsm();
$3 = HEAP32[17699]|0;
$flag = $3;
_unlock_fsm();
$4 = $flag;
$0 = $4;
} else {
$0 = 0;
}
$5 = $0;
STACKTOP = sp;return ($5|0);
}
function __gcry_fips_is_operational() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if (!($1)) {
$result = 1;
$7 = $result;
STACKTOP = sp;return ($7|0);
}
_lock_fsm();
$2 = HEAP32[17697]|0;
$3 = ($2|0)==(1);
if ($3) {
_unlock_fsm();
(__gcry_fips_run_selftests(0)|0);
_lock_fsm();
}
$4 = HEAP32[17697]|0;
$5 = ($4|0)==(3);
$6 = $5&1;
$result = $6;
_unlock_fsm();
$7 = $result;
STACKTOP = sp;return ($7|0);
}
function __gcry_fips_run_selftests($extended) {
$extended = $extended|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $ec = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $extended;
$result = 4;
$ec = 50;
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if ($2) {
_fips_new_state(2);
}
$3 = $0;
$4 = (_run_cipher_selftests($3)|0);
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = $0;
$7 = (_run_digest_selftests($6)|0);
$8 = ($7|0)!=(0);
if (!($8)) {
$9 = $0;
$10 = (_run_hmac_selftests($9)|0);
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = (_run_random_selftests()|0);
$13 = ($12|0)!=(0);
if (!($13)) {
$14 = $0;
$15 = (_run_pubkey_selftests($14)|0);
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = (_check_binary_integrity()|0);
$18 = ($17|0)!=(0);
if (!($18)) {
$result = 3;
$ec = 0;
}
}
}
}
}
}
$19 = (__gcry_fips_mode()|0);
$20 = ($19|0)!=(0);
if (!($20)) {
$22 = $ec;
STACKTOP = sp;return ($22|0);
}
$21 = $result;
_fips_new_state($21);
$22 = $ec;
STACKTOP = sp;return ($22|0);
}
function _run_cipher_selftests($extended) {
$extended = $extended|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $anyerr = 0, $err = 0, $idx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $extended;
$anyerr = 0;
$idx = 0;
while(1) {
$1 = $idx;
$2 = (1316 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(0);
if (!($4)) {
break;
}
$5 = $idx;
$6 = (1316 + ($5<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = (__gcry_cipher_selftest($7,$8,56)|0);
$err = $9;
$10 = $idx;
$11 = (1316 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = $err;
$14 = ($13|0)!=(0);
if ($14) {
$15 = $err;
$16 = (_gpg_strerror($15)|0);
$17 = $16;
} else {
$17 = 0;
}
_reporter(38657,$12,0,$17);
$18 = $err;
$19 = ($18|0)!=(0);
if ($19) {
$anyerr = 1;
}
$20 = $idx;
$21 = (($20) + 1)|0;
$idx = $21;
}
$22 = $anyerr;
STACKTOP = sp;return ($22|0);
}
function _reporter($domain,$algo,$what,$errtxt) {
$domain = $domain|0;
$algo = $algo|0;
$what = $what|0;
$errtxt = $errtxt|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0;
var $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $domain;
$1 = $algo;
$2 = $what;
$3 = $errtxt;
$4 = $3;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$6 = (__gcry_log_verbosity(2)|0);
$7 = ($6|0)!=(0);
if (!($7)) {
STACKTOP = sp;return;
}
}
$8 = $0;
$9 = (_strcmp($8,36342)|0);
$10 = ($9|0)!=(0);
$11 = $0;
$12 = $10 ? $11 : 43192;
$13 = $0;
$14 = (_strcmp($13,36342)|0);
$15 = ($14|0)!=(0);
$16 = $15 ^ 1;
$17 = $16 ? 24086 : 76543;
$18 = $0;
$19 = (_strcmp($18,38657)|0);
$20 = ($19|0)!=(0);
do {
if ($20) {
$23 = $0;
$24 = (_strcmp($23,43192)|0);
$25 = ($24|0)!=(0);
if (!($25)) {
$26 = $1;
$27 = (__gcry_md_algo_name($26)|0);
$53 = $27;
break;
}
$28 = $0;
$29 = (_strcmp($28,36342)|0);
$30 = ($29|0)!=(0);
if (!($30)) {
$31 = $1;
$32 = (__gcry_md_algo_name($31)|0);
$53 = $32;
break;
}
$33 = $0;
$34 = (_strcmp($33,49859)|0);
$35 = ($34|0)!=(0);
if ($35) {
$53 = 76543;
} else {
$36 = $1;
$37 = (__gcry_pk_algo_name($36)|0);
$53 = $37;
}
} else {
$21 = $1;
$22 = (__gcry_cipher_algo_name($21)|0);
$53 = $22;
}
} while(0);
$38 = $1;
$39 = $3;
$40 = ($39|0)!=(0|0);
$41 = $3;
$42 = $40 ? $41 : 24092;
$43 = $2;
$44 = ($43|0)!=(0|0);
$45 = $44 ? 24097 : 76543;
$46 = $2;
$47 = ($46|0)!=(0|0);
$48 = $2;
$49 = $47 ? $48 : 76543;
$50 = $2;
$51 = ($50|0)!=(0|0);
$52 = $51 ? 49913 : 76543;
HEAP32[$vararg_buffer>>2] = $12;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $17;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $53;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $38;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $42;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $45;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = $49;
$vararg_ptr7 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr7>>2] = $52;
__gcry_log_info(24100,$vararg_buffer);
STACKTOP = sp;return;
}
function _run_digest_selftests($extended) {
$extended = $extended|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $anyerr = 0, $err = 0, $idx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $extended;
$anyerr = 0;
$idx = 0;
while(1) {
$1 = $idx;
$2 = (1336 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(0);
if (!($4)) {
break;
}
$5 = $idx;
$6 = (1336 + ($5<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = (__gcry_md_selftest($7,$8,56)|0);
$err = $9;
$10 = $idx;
$11 = (1336 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = $err;
$14 = ($13|0)!=(0);
if ($14) {
$15 = $err;
$16 = (_gpg_strerror($15)|0);
$17 = $16;
} else {
$17 = 0;
}
_reporter(43192,$12,0,$17);
$18 = $err;
$19 = ($18|0)!=(0);
if ($19) {
$anyerr = 1;
}
$20 = $idx;
$21 = (($20) + 1)|0;
$idx = $21;
}
$22 = $anyerr;
STACKTOP = sp;return ($22|0);
}
function _run_hmac_selftests($extended) {
$extended = $extended|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $anyerr = 0, $err = 0, $idx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $extended;
$anyerr = 0;
$idx = 0;
while(1) {
$1 = $idx;
$2 = (1360 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(0);
if (!($4)) {
break;
}
$5 = $idx;
$6 = (1360 + ($5<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = (__gcry_hmac_selftest($7,$8,56)|0);
$err = $9;
$10 = $idx;
$11 = (1360 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = $err;
$14 = ($13|0)!=(0);
if ($14) {
$15 = $err;
$16 = (_gpg_strerror($15)|0);
$17 = $16;
} else {
$17 = 0;
}
_reporter(36342,$12,0,$17);
$18 = $err;
$19 = ($18|0)!=(0);
if ($19) {
$anyerr = 1;
}
$20 = $idx;
$21 = (($20) + 1)|0;
$idx = $21;
}
$22 = $anyerr;
STACKTOP = sp;return ($22|0);
}
function _run_random_selftests() {
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = (__gcry_random_selftest(56)|0);
$err = $0;
$1 = $err;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $err;
$4 = (_gpg_strerror($3)|0);
$5 = $4;
} else {
$5 = 0;
}
_reporter(52623,0,0,$5);
$6 = $err;
$7 = ($6|0)!=(0);
$8 = $7 ^ 1;
$9 = $8 ^ 1;
$10 = $9&1;
STACKTOP = sp;return ($10|0);
}
function _run_pubkey_selftests($extended) {
$extended = $extended|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $anyerr = 0, $err = 0, $idx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $extended;
$anyerr = 0;
$idx = 0;
while(1) {
$1 = $idx;
$2 = (1384 + ($1<<2)|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(0);
if (!($4)) {
break;
}
$5 = $idx;
$6 = (1384 + ($5<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = (__gcry_pk_selftest($7,$8,56)|0);
$err = $9;
$10 = $idx;
$11 = (1384 + ($10<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = $err;
$14 = ($13|0)!=(0);
if ($14) {
$15 = $err;
$16 = (_gpg_strerror($15)|0);
$17 = $16;
} else {
$17 = 0;
}
_reporter(49859,$12,0,$17);
$18 = $err;
$19 = ($18|0)!=(0);
if ($19) {
$anyerr = 1;
}
$20 = $idx;
$21 = (($20) + 1)|0;
$idx = $21;
}
$22 = $anyerr;
STACKTOP = sp;return ($22|0);
}
function _check_binary_integrity() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_fips_test_operational() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
_lock_fsm();
$2 = HEAP32[17697]|0;
$3 = ($2|0)==(3);
$4 = $3&1;
$result = $4;
_unlock_fsm();
} else {
$result = 1;
}
$5 = $result;
STACKTOP = sp;return ($5|0);
}
function __gcry_fips_test_error_or_operational() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
_lock_fsm();
$2 = HEAP32[17697]|0;
$3 = ($2|0)==(3);
$4 = HEAP32[17697]|0;
$5 = ($4|0)==(4);
$6 = $3 ? 1 : $5;
$7 = $6&1;
$result = $7;
_unlock_fsm();
$8 = $result;
STACKTOP = sp;return ($8|0);
} else {
$result = 1;
$8 = $result;
STACKTOP = sp;return ($8|0);
}
return (0)|0;
}
function __gcry_ctx_alloc($type,$length,$deinit) {
$type = $type|0;
$length = $length|0;
$deinit = $deinit|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $cond = 0, $ctx = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $type;
$2 = $length;
$3 = $deinit;
$4 = $1;
$cond = ($4|0)==(1);
if (!($cond)) {
$5 = $1;
HEAP32[$vararg_buffer>>2] = $5;
__gcry_log_bug(24144,$vararg_buffer);
// unreachable;
}
$6 = $2;
$7 = ($6>>>0)<(8);
if ($7) {
$2 = 8;
}
$8 = $2;
$9 = (8 + ($8))|0;
$10 = (__gcry_calloc(1,$9)|0);
$ctx = $10;
$11 = $ctx;
$12 = ($11|0)!=(0|0);
if ($12) {
$13 = $ctx;
;HEAP8[$13>>0]=HEAP8[24190>>0]|0;HEAP8[$13+1>>0]=HEAP8[24190+1>>0]|0;HEAP8[$13+2>>0]=HEAP8[24190+2>>0]|0;
$14 = $1;
$15 = $14&255;
$16 = $ctx;
$17 = ((($16)) + 3|0);
HEAP8[$17>>0] = $15;
$18 = $3;
$19 = $ctx;
$20 = ((($19)) + 4|0);
HEAP32[$20>>2] = $18;
$21 = $ctx;
$0 = $21;
$22 = $0;
STACKTOP = sp;return ($22|0);
} else {
$0 = 0;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
return (0)|0;
}
function __gcry_ctx_get_pointer($ctx,$type) {
$ctx = $ctx|0;
$type = $type|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$0 = $ctx;
$1 = $type;
$2 = $0;
$3 = ($2|0)!=(0|0);
if (!($3)) {
$7 = $0;
HEAP32[$vararg_buffer>>2] = $7;
__gcry_log_fatal(24194,$vararg_buffer);
// unreachable;
}
$4 = $0;
$5 = (_memcmp($4,24190,3)|0);
$6 = ($5|0)!=(0);
if ($6) {
$7 = $0;
HEAP32[$vararg_buffer>>2] = $7;
__gcry_log_fatal(24194,$vararg_buffer);
// unreachable;
}
$8 = $0;
$9 = ((($8)) + 3|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10 << 24 >> 24;
$12 = $1;
$13 = ($11|0)!=($12|0);
if ($13) {
$14 = $1;
$15 = $0;
$16 = $0;
$17 = ((($16)) + 3|0);
$18 = HEAP8[$17>>0]|0;
$19 = $18 << 24 >> 24;
HEAP32[$vararg_buffer1>>2] = $14;
$vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr4>>2] = $15;
$vararg_ptr5 = ((($vararg_buffer1)) + 8|0);
HEAP32[$vararg_ptr5>>2] = $19;
__gcry_log_fatal(24242,$vararg_buffer1);
// unreachable;
} else {
$20 = $0;
$21 = ((($20)) + 8|0);
STACKTOP = sp;return ($21|0);
}
return (0)|0;
}
function __gcry_ctx_release($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $cond = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$0 = $ctx;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = (_memcmp($3,24190,3)|0);
$5 = ($4|0)!=(0);
$6 = $0;
if ($5) {
HEAP32[$vararg_buffer>>2] = $6;
__gcry_log_fatal(24299,$vararg_buffer);
// unreachable;
}
$7 = ((($6)) + 3|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8 << 24 >> 24;
$cond = ($9|0)==(1);
$10 = $0;
if (!($cond)) {
$11 = ((($10)) + 3|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 << 24 >> 24;
HEAP32[$vararg_buffer1>>2] = $13;
__gcry_log_fatal(24341,$vararg_buffer1);
// unreachable;
}
$14 = ((($10)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $0;
$18 = ((($17)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = $0;
$21 = ((($20)) + 8|0);
FUNCTION_TABLE_vi[$19 & 127]($21);
}
$22 = $0;
__gcry_free($22);
STACKTOP = sp;return;
}
function __gcry_cipher_algo_name($algorithm) {
$algorithm = $algorithm|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algorithm;
$1 = $0;
$2 = (_spec_from_algo($1)|0);
$spec = $2;
$3 = $spec;
$4 = ($3|0)!=(0|0);
if (!($4)) {
$8 = 37956;
STACKTOP = sp;return ($8|0);
}
$5 = $spec;
$6 = ((($5)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
STACKTOP = sp;return ($8|0);
}
function _spec_from_algo($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algo;
$2 = $1;
$3 = (_map_algo($2)|0);
$1 = $3;
$idx = 0;
while(1) {
$4 = $idx;
$5 = (1396 + ($4<<2)|0);
$6 = HEAP32[$5>>2]|0;
$spec = $6;
$7 = ($6|0)!=(0|0);
if (!($7)) {
label = 6;
break;
}
$8 = $1;
$9 = $spec;
$10 = HEAP32[$9>>2]|0;
$11 = ($8|0)==($10|0);
if ($11) {
label = 4;
break;
}
$13 = $idx;
$14 = (($13) + 1)|0;
$idx = $14;
}
if ((label|0) == 4) {
$12 = $spec;
$0 = $12;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
else if ((label|0) == 6) {
$0 = 0;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
return (0)|0;
}
function _map_algo($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $0;
STACKTOP = sp;return ($1|0);
}
function __gcry_cipher_open($handle,$algo,$mode,$flags) {
$handle = $handle|0;
$algo = $algo|0;
$mode = $mode|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $h = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$h = sp;
$0 = $handle;
$1 = $algo;
$2 = $mode;
$3 = $flags;
HEAP32[$h>>2] = 0;
$4 = $2;
$5 = ($4|0)>=(65536);
if ($5) {
$rc = 71;
} else {
$6 = $1;
$7 = $2;
$8 = $3;
$9 = (__gcry_cipher_open_internal($h,$6,$7,$8)|0);
$rc = $9;
}
$10 = $rc;
$11 = ($10|0)!=(0);
$12 = HEAP32[$h>>2]|0;
$13 = $11 ? 0 : $12;
$14 = $0;
HEAP32[$14>>2] = $13;
$15 = $rc;
STACKTOP = sp;return ($15|0);
}
function __gcry_cipher_open_internal($handle,$algo,$mode,$flags) {
$handle = $handle|0;
$algo = $algo|0;
$mode = $mode|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $cond = 0, $err = 0, $h = 0, $off = 0, $secure = 0, $size = 0, $spec = 0, $switch$split102D = 0, $switch$split2D = 0, $switch$split42D = 0, $switch$split72D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $handle;
$1 = $algo;
$2 = $mode;
$3 = $flags;
$4 = $3;
$5 = $4 & 1;
$secure = $5;
$h = 0;
__gcry_fast_random_poll();
$6 = $1;
$7 = (_spec_from_algo($6)|0);
$spec = $7;
$8 = $spec;
$9 = ($8|0)!=(0|0);
do {
if ($9) {
$10 = $spec;
$11 = ((($10)) + 4|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 & 1;
$14 = $13&255;
$15 = ($14|0)!=(0);
if ($15) {
$err = 12;
break;
} else {
$err = 0;
break;
}
} else {
$err = 12;
}
} while(0);
$16 = $err;
$17 = ($16|0)!=(0);
do {
if (!($17)) {
$18 = $3;
$19 = $18 & -16;
$20 = ($19|0)!=(0);
if (!($20)) {
$21 = $3;
$22 = $21 & 4;
$23 = $22 & 8;
$24 = ($23|0)!=(0);
if (!($24)) {
break;
}
}
$err = 12;
}
} while(0);
$25 = $err;
$26 = ($25|0)!=(0);
L14: do {
if (!($26)) {
$27 = $2;
$switch$split2D = ($27|0)<(6);
L16: do {
if ($switch$split2D) {
switch ($27|0) {
case 5: case 2: case 3: case 1: {
break L16;
break;
}
case 4: {
$75 = $spec;
$76 = ((($75)) + 44|0);
$77 = HEAP32[$76>>2]|0;
$78 = ($77|0)!=(0|0);
if ($78) {
$79 = $spec;
$80 = ((($79)) + 48|0);
$81 = HEAP32[$80>>2]|0;
$82 = ($81|0)!=(0|0);
if ($82) {
break L14;
}
}
$err = 71;
break L14;
break;
}
case 0: {
$83 = (__gcry_fips_mode()|0);
$84 = ($83|0)!=(0);
if (!($84)) {
$85 = (__gcry_get_debug_flag(0)|0);
$86 = ($85|0)!=(0);
if ($86) {
break L14;
}
}
$err = 71;
break L14;
break;
}
default: {
label = 37;
break L16;
}
}
} else {
$switch$split42D = ($27|0)<(9);
if ($switch$split42D) {
switch ($27|0) {
case 7: case 6: {
break L16;
break;
}
case 8: {
break;
}
default: {
label = 37;
break L16;
}
}
$28 = $spec;
$29 = ((($28)) + 20|0);
$30 = HEAP32[$29>>2]|0;
$31 = ($30|0)!=(16);
if ($31) {
$err = 71;
}
$32 = $spec;
$33 = ((($32)) + 36|0);
$34 = HEAP32[$33>>2]|0;
$35 = ($34|0)!=(0|0);
if ($35) {
$36 = $spec;
$37 = ((($36)) + 40|0);
$38 = HEAP32[$37>>2]|0;
$39 = ($38|0)!=(0|0);
if ($39) {
break L14;
}
}
$err = 71;
break L14;
}
$switch$split72D = ($27|0)<(11);
if ($switch$split72D) {
switch ($27|0) {
case 9: {
break L16;
break;
}
case 10: {
break;
}
default: {
label = 37;
break L16;
}
}
$48 = $spec;
$49 = ((($48)) + 44|0);
$50 = HEAP32[$49>>2]|0;
$51 = ($50|0)!=(0|0);
if ($51) {
$52 = $spec;
$53 = ((($52)) + 48|0);
$54 = HEAP32[$53>>2]|0;
$55 = ($54|0)!=(0|0);
if ($55) {
$56 = $spec;
$57 = ((($56)) + 60|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)!=(0|0);
if ($59) {
$60 = $spec;
$61 = HEAP32[$60>>2]|0;
$62 = ($61|0)!=(316);
if (!($62)) {
break L14;
}
$err = 71;
break L14;
}
}
}
$err = 71;
break L14;
}
$switch$split102D = ($27|0)<(65537);
if (!($switch$split102D)) {
switch ($27|0) {
case 65537: {
break L16;
break;
}
default: {
label = 37;
break L16;
}
}
}
switch ($27|0) {
case 11: {
break;
}
default: {
label = 37;
break L16;
}
}
$63 = $spec;
$64 = ((($63)) + 36|0);
$65 = HEAP32[$64>>2]|0;
$66 = ($65|0)!=(0|0);
if ($66) {
$67 = $spec;
$68 = ((($67)) + 40|0);
$69 = HEAP32[$68>>2]|0;
$70 = ($69|0)!=(0|0);
if ($70) {
$71 = $spec;
$72 = ((($71)) + 20|0);
$73 = HEAP32[$72>>2]|0;
$74 = ($73|0)!=(16);
if (!($74)) {
break L14;
}
$err = 71;
break L14;
}
}
$err = 71;
break L14;
}
} while(0);
if ((label|0) == 37) {
$err = 71;
break;
}
$40 = $spec;
$41 = ((($40)) + 36|0);
$42 = HEAP32[$41>>2]|0;
$43 = ($42|0)!=(0|0);
if ($43) {
$44 = $spec;
$45 = ((($44)) + 40|0);
$46 = HEAP32[$45>>2]|0;
$47 = ($46|0)!=(0|0);
if ($47) {
break;
}
}
$err = 71;
}
} while(0);
$87 = $err;
$88 = ($87|0)!=(0);
if ($88) {
$173 = $err;
$174 = ($173|0)!=(0);
$175 = $h;
$176 = $174 ? 0 : $175;
$177 = $0;
HEAP32[$177>>2] = $176;
$178 = $err;
$179 = (_gcry_error_675($178)|0);
STACKTOP = sp;return ($179|0);
}
$89 = $spec;
$90 = ((($89)) + 28|0);
$91 = HEAP32[$90>>2]|0;
$92 = $91<<1;
$93 = (512 + ($92))|0;
$94 = (($93) - 16)|0;
$95 = (($94) + 15)|0;
$size = $95;
$96 = $secure;
$97 = ($96|0)!=(0);
$98 = $size;
if ($97) {
$99 = (__gcry_calloc_secure(1,$98)|0);
$h = $99;
} else {
$100 = (__gcry_calloc(1,$98)|0);
$h = $100;
}
$101 = $h;
$102 = ($101|0)!=(0|0);
if (!($102)) {
$103 = (_gpg_err_code_from_syserror()|0);
$err = $103;
$173 = $err;
$174 = ($173|0)!=(0);
$175 = $h;
$176 = $174 ? 0 : $175;
$177 = $0;
HEAP32[$177>>2] = $176;
$178 = $err;
$179 = (_gcry_error_675($178)|0);
STACKTOP = sp;return ($179|0);
}
$off = 0;
$104 = $h;
$105 = $104;
$106 = $105 & 15;
$107 = ($106|0)!=(0);
if ($107) {
$108 = $h;
$109 = $108;
$110 = $109 & 15;
$111 = (16 - ($110))|0;
$off = $111;
$112 = $h;
$113 = $off;
$114 = (($112) + ($113)|0);
$h = $114;
}
$115 = $secure;
$116 = ($115|0)!=(0);
$117 = $116 ? 1183944770 : 604576100;
$118 = $h;
HEAP32[$118>>2] = $117;
$119 = $size;
$120 = $off;
$121 = (($119) - ($120))|0;
$122 = $h;
$123 = ((($122)) + 4|0);
HEAP32[$123>>2] = $121;
$124 = $off;
$125 = $h;
$126 = ((($125)) + 8|0);
HEAP32[$126>>2] = $124;
$127 = $spec;
$128 = $h;
$129 = ((($128)) + 12|0);
HEAP32[$129>>2] = $127;
$130 = $1;
$131 = $h;
$132 = ((($131)) + 16|0);
HEAP32[$132>>2] = $130;
$133 = $2;
$134 = $h;
$135 = ((($134)) + 48|0);
HEAP32[$135>>2] = $133;
$136 = $3;
$137 = $h;
$138 = ((($137)) + 52|0);
HEAP32[$138>>2] = $136;
$139 = $1;
switch ($139|0) {
case 9: case 8: case 7: {
$140 = $h;
$141 = ((($140)) + 20|0);
HEAP32[$141>>2] = 57;
$142 = $h;
$143 = ((($142)) + 20|0);
$144 = ((($143)) + 4|0);
HEAP32[$144>>2] = 58;
$145 = $h;
$146 = ((($145)) + 20|0);
$147 = ((($146)) + 8|0);
HEAP32[$147>>2] = 59;
$148 = $h;
$149 = ((($148)) + 20|0);
$150 = ((($149)) + 12|0);
HEAP32[$150>>2] = 60;
$151 = $h;
$152 = ((($151)) + 20|0);
$153 = ((($152)) + 16|0);
HEAP32[$153>>2] = 61;
$154 = $h;
$155 = ((($154)) + 20|0);
$156 = ((($155)) + 20|0);
HEAP32[$156>>2] = 62;
$157 = $h;
$158 = ((($157)) + 20|0);
$159 = ((($158)) + 24|0);
HEAP32[$159>>2] = 63;
break;
}
case 303: case 10: {
$160 = $h;
$161 = ((($160)) + 20|0);
$162 = ((($161)) + 12|0);
HEAP32[$162>>2] = 64;
$163 = $h;
$164 = ((($163)) + 20|0);
$165 = ((($164)) + 4|0);
HEAP32[$165>>2] = 65;
$166 = $h;
$167 = ((($166)) + 20|0);
$168 = ((($167)) + 16|0);
HEAP32[$168>>2] = 66;
break;
}
default: {
}
}
$169 = $2;
$cond = ($169|0)==(11);
if (!($cond)) {
$173 = $err;
$174 = ($173|0)!=(0);
$175 = $h;
$176 = $174 ? 0 : $175;
$177 = $0;
HEAP32[$177>>2] = $176;
$178 = $err;
$179 = (_gcry_error_675($178)|0);
STACKTOP = sp;return ($179|0);
}
$170 = $h;
$171 = ((($170)) + 128|0);
$172 = ((($171)) + 352|0);
HEAP8[$172>>0] = 16;
$173 = $err;
$174 = ($173|0)!=(0);
$175 = $h;
$176 = $174 ? 0 : $175;
$177 = $0;
HEAP32[$177>>2] = $176;
$178 = $err;
$179 = (_gcry_error_675($178)|0);
STACKTOP = sp;return ($179|0);
}
function _gcry_error_675($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gcry_err_make_676(32,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_err_make_676($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $0;
$3 = $1;
$4 = (_gpg_err_make_677($2,$3)|0);
STACKTOP = sp;return ($4|0);
}
function _gpg_err_make_677($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function __gcry_cipher_close($h) {
$h = $h|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $9 = 0;
var $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $off = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp;
$0 = $h;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)!=(1183944770);
if ($5) {
$6 = $0;
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(604576100);
if ($8) {
__gcry_fatal_error(63,24390);
// unreachable;
}
}
$9 = $0;
HEAP32[$9>>2] = 0;
$10 = $0;
$11 = ((($10)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$off = $12;
$13 = $0;
$_vptr = $13;
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$_vlen = $16;
$_vset = 0;
$17 = $_vset;
$18 = $17&255;
$19 = $_vset_long;
$20 = $19;
HEAP32[$20>>2] = $18;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = 0;
while(1) {
$23 = $_vptr;
$24 = $23;
$25 = $24 & 7;
$26 = ($25|0)!=(0);
$27 = $_vlen;
$28 = ($27|0)!=(0);
$29 = $26 ? $28 : 0;
if (!($29)) {
break;
}
$30 = $_vset;
$31 = $_vptr;
HEAP8[$31>>0] = $30;
$32 = $_vptr;
$33 = ((($32)) + 1|0);
$_vptr = $33;
$34 = $_vlen;
$35 = (($34) + -1)|0;
$_vlen = $35;
}
$36 = $_vlen;
$37 = ($36>>>0)<(8);
if (!($37)) {
$38 = $_vset_long;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = (___muldi3(($40|0),($43|0),16843009,16843009)|0);
$45 = tempRet0;
$46 = $_vset_long;
$47 = $46;
HEAP32[$47>>2] = $44;
$48 = (($46) + 4)|0;
$49 = $48;
HEAP32[$49>>2] = $45;
while(1) {
$50 = $_vptr;
$_vptr_long = $50;
$51 = $_vset_long;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (($51) + 4)|0;
$55 = $54;
$56 = HEAP32[$55>>2]|0;
$57 = $_vptr_long;
$58 = $57;
$59 = $58;
HEAP32[$59>>2] = $53;
$60 = (($58) + 4)|0;
$61 = $60;
HEAP32[$61>>2] = $56;
$62 = $_vlen;
$63 = (($62) - 8)|0;
$_vlen = $63;
$64 = $_vptr;
$65 = ((($64)) + 8|0);
$_vptr = $65;
$66 = $_vlen;
$67 = ($66>>>0)>=(8);
if (!($67)) {
break;
}
}
}
while(1) {
$68 = $_vlen;
$69 = ($68|0)!=(0);
if (!($69)) {
break;
}
$70 = $_vset;
$71 = $_vptr;
HEAP8[$71>>0] = $70;
$72 = $_vptr;
$73 = ((($72)) + 1|0);
$_vptr = $73;
$74 = $_vlen;
$75 = (($74) + -1)|0;
$_vlen = $75;
}
$76 = $0;
$77 = $off;
$78 = (0 - ($77))|0;
$79 = (($76) + ($78)|0);
__gcry_free($79);
STACKTOP = sp;return;
}
function __gcry_cipher_encrypt($h,$out,$outsize,$in,$inlen) {
$h = $h|0;
$out = $out|0;
$outsize = $outsize|0;
$in = $in|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $h;
$1 = $out;
$2 = $outsize;
$3 = $in;
$4 = $inlen;
$5 = $3;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$7 = $1;
$3 = $7;
$8 = $2;
$4 = $8;
}
$9 = $0;
$10 = $1;
$11 = $2;
$12 = $3;
$13 = $4;
$14 = (_cipher_encrypt($9,$10,$11,$12,$13)|0);
$rc = $14;
$15 = $rc;
$16 = ($15|0)!=(0);
$17 = $1;
$18 = ($17|0)!=(0|0);
$or$cond = $16 & $18;
if (!($or$cond)) {
$21 = $rc;
STACKTOP = sp;return ($21|0);
}
$19 = $1;
$20 = $2;
_memset(($19|0),66,($20|0))|0;
$21 = $rc;
STACKTOP = sp;return ($21|0);
}
function _cipher_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $rc = 0, $switch$split112D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $c;
$1 = $outbuf;
$2 = $outbuflen;
$3 = $inbuf;
$4 = $inbuflen;
$5 = $0;
$6 = ((($5)) + 48|0);
$7 = HEAP32[$6>>2]|0;
$switch$split2D = ($7|0)<(6);
L1: do {
if ($switch$split2D) {
switch ($7|0) {
case 1: {
$8 = $0;
$9 = $1;
$10 = $2;
$11 = $3;
$12 = $4;
$13 = (_do_ecb_encrypt($8,$9,$10,$11,$12)|0);
$rc = $13;
label = 21;
break L1;
break;
}
case 3: {
$14 = $0;
$15 = $1;
$16 = $2;
$17 = $3;
$18 = $4;
$19 = (__gcry_cipher_cbc_encrypt($14,$15,$16,$17,$18)|0);
$rc = $19;
label = 21;
break L1;
break;
}
case 2: {
$20 = $0;
$21 = $1;
$22 = $2;
$23 = $3;
$24 = $4;
$25 = (__gcry_cipher_cfb_encrypt($20,$21,$22,$23,$24)|0);
$rc = $25;
label = 21;
break L1;
break;
}
case 5: {
$26 = $0;
$27 = $1;
$28 = $2;
$29 = $3;
$30 = $4;
$31 = (__gcry_cipher_ofb_encrypt($26,$27,$28,$29,$30)|0);
$rc = $31;
label = 21;
break L1;
break;
}
case 4: {
$68 = $0;
$69 = ((($68)) + 12|0);
$70 = HEAP32[$69>>2]|0;
$71 = ((($70)) + 44|0);
$72 = HEAP32[$71>>2]|0;
$73 = $0;
$74 = ((($73)) + 496|0);
$75 = $1;
$76 = $3;
$77 = $4;
FUNCTION_TABLE_viiii[$72 & 63]($74,$75,$76,$77);
$rc = 0;
label = 21;
break L1;
break;
}
case 0: {
$78 = (__gcry_fips_mode()|0);
$79 = ($78|0)!=(0);
if (!($79)) {
$80 = (__gcry_get_debug_flag(0)|0);
$81 = ($80|0)!=(0);
if ($81) {
$82 = $3;
$83 = $1;
$84 = ($82|0)!=($83|0);
if ($84) {
$85 = $1;
$86 = $3;
$87 = $4;
_memmove(($85|0),($86|0),($87|0))|0;
}
$rc = 0;
label = 21;
break L1;
}
}
__gcry_fips_signal_error(24439,875,24448,0,24463);
$rc = 71;
label = 21;
break L1;
break;
}
default: {
label = 20;
break L1;
}
}
} else {
$switch$split52D = ($7|0)<(9);
if ($switch$split52D) {
switch ($7|0) {
case 6: {
$32 = $0;
$33 = $1;
$34 = $2;
$35 = $3;
$36 = $4;
$37 = (__gcry_cipher_ctr_encrypt($32,$33,$34,$35,$36)|0);
$rc = $37;
label = 21;
break L1;
break;
}
case 7: {
$38 = $0;
$39 = $1;
$40 = $2;
$41 = $3;
$42 = $4;
$43 = (__gcry_cipher_aeswrap_encrypt($38,$39,$40,$41,$42)|0);
$rc = $43;
label = 21;
break L1;
break;
}
case 8: {
$44 = $0;
$45 = $1;
$46 = $2;
$47 = $3;
$48 = $4;
$49 = (__gcry_cipher_ccm_encrypt($44,$45,$46,$47,$48)|0);
$rc = $49;
label = 21;
break L1;
break;
}
default: {
label = 20;
break L1;
}
}
}
$switch$split82D = ($7|0)<(11);
if ($switch$split82D) {
switch ($7|0) {
case 9: {
$50 = $0;
$51 = $1;
$52 = $2;
$53 = $3;
$54 = $4;
$55 = (__gcry_cipher_gcm_encrypt($50,$51,$52,$53,$54)|0);
$rc = $55;
label = 21;
break L1;
break;
}
case 10: {
$56 = $0;
$57 = $1;
$58 = $2;
$59 = $3;
$60 = $4;
$61 = (__gcry_cipher_poly1305_encrypt($56,$57,$58,$59,$60)|0);
$rc = $61;
label = 21;
break L1;
break;
}
default: {
label = 20;
break L1;
}
}
}
$switch$split112D = ($7|0)<(65537);
if ($switch$split112D) {
switch ($7|0) {
case 11: {
break;
}
default: {
label = 20;
break L1;
}
}
$62 = $0;
$63 = $1;
$64 = $2;
$65 = $3;
$66 = $4;
$67 = (__gcry_cipher_ocb_encrypt($62,$63,$64,$65,$66)|0);
$rc = $67;
label = 21;
break;
} else {
switch ($7|0) {
case 65537: {
break;
}
default: {
label = 20;
break L1;
}
}
$rc = 71;
label = 21;
break;
}
}
} while(0);
if ((label|0) == 20) {
$88 = $0;
$89 = ((($88)) + 48|0);
$90 = HEAP32[$89>>2]|0;
HEAP32[$vararg_buffer>>2] = $90;
__gcry_log_fatal(24485,$vararg_buffer);
// unreachable;
}
else if ((label|0) == 21) {
$91 = $rc;
STACKTOP = sp;return ($91|0);
}
return (0)|0;
}
function _do_ecb_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $outbuf;
$2 = $outbuflen;
$3 = $inbuf;
$4 = $inbuflen;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = $0;
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 36|0);
$14 = HEAP32[$13>>2]|0;
$15 = (_do_ecb_crypt($5,$6,$7,$8,$9,$14)|0);
STACKTOP = sp;return ($15|0);
}
function _do_ecb_crypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen,$crypt_fn) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
$crypt_fn = $crypt_fn|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $blocksize = 0, $burn = 0, $n = 0, $nblocks = 0, $nburn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $crypt_fn;
$7 = $1;
$8 = ((($7)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 20|0);
$11 = HEAP32[$10>>2]|0;
$blocksize = $11;
$12 = $3;
$13 = $5;
$14 = ($12>>>0)<($13>>>0);
if ($14) {
$0 = 200;
$49 = $0;
STACKTOP = sp;return ($49|0);
}
$15 = $5;
$16 = $blocksize;
$17 = (($15>>>0) % ($16>>>0))&-1;
$18 = ($17|0)!=(0);
if ($18) {
$0 = 139;
$49 = $0;
STACKTOP = sp;return ($49|0);
}
$19 = $5;
$20 = $blocksize;
$21 = (($19>>>0) / ($20>>>0))&-1;
$nblocks = $21;
$burn = 0;
$n = 0;
while(1) {
$22 = $n;
$23 = $nblocks;
$24 = ($22>>>0)<($23>>>0);
if (!($24)) {
break;
}
$25 = $6;
$26 = $1;
$27 = ((($26)) + 496|0);
$28 = $2;
$29 = $4;
$30 = (FUNCTION_TABLE_iiii[$25 & 127]($27,$28,$29)|0);
$nburn = $30;
$31 = $nburn;
$32 = $burn;
$33 = ($31>>>0)>($32>>>0);
$34 = $nburn;
$35 = $burn;
$36 = $33 ? $34 : $35;
$burn = $36;
$37 = $blocksize;
$38 = $4;
$39 = (($38) + ($37)|0);
$4 = $39;
$40 = $blocksize;
$41 = $2;
$42 = (($41) + ($40)|0);
$2 = $42;
$43 = $n;
$44 = (($43) + 1)|0;
$n = $44;
}
$45 = $burn;
$46 = ($45>>>0)>(0);
if ($46) {
$47 = $burn;
$48 = (($47) + 16)|0;
___gcry_burn_stack($48);
___gcry_burn_stack_dummy();
}
$0 = 0;
$49 = $0;
STACKTOP = sp;return ($49|0);
}
function __gcry_cipher_decrypt($h,$out,$outsize,$in,$inlen) {
$h = $h|0;
$out = $out|0;
$outsize = $outsize|0;
$in = $in|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $h;
$1 = $out;
$2 = $outsize;
$3 = $in;
$4 = $inlen;
$5 = $3;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$7 = $1;
$3 = $7;
$8 = $2;
$4 = $8;
}
$9 = $0;
$10 = $1;
$11 = $2;
$12 = $3;
$13 = $4;
$14 = (_cipher_decrypt($9,$10,$11,$12,$13)|0);
STACKTOP = sp;return ($14|0);
}
function _cipher_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $rc = 0, $switch$split112D = 0, $switch$split2D = 0, $switch$split52D = 0, $switch$split82D = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $c;
$1 = $outbuf;
$2 = $outbuflen;
$3 = $inbuf;
$4 = $inbuflen;
$5 = $0;
$6 = ((($5)) + 48|0);
$7 = HEAP32[$6>>2]|0;
$switch$split2D = ($7|0)<(6);
L1: do {
if ($switch$split2D) {
switch ($7|0) {
case 1: {
$8 = $0;
$9 = $1;
$10 = $2;
$11 = $3;
$12 = $4;
$13 = (_do_ecb_decrypt($8,$9,$10,$11,$12)|0);
$rc = $13;
label = 21;
break L1;
break;
}
case 3: {
$14 = $0;
$15 = $1;
$16 = $2;
$17 = $3;
$18 = $4;
$19 = (__gcry_cipher_cbc_decrypt($14,$15,$16,$17,$18)|0);
$rc = $19;
label = 21;
break L1;
break;
}
case 2: {
$20 = $0;
$21 = $1;
$22 = $2;
$23 = $3;
$24 = $4;
$25 = (__gcry_cipher_cfb_decrypt($20,$21,$22,$23,$24)|0);
$rc = $25;
label = 21;
break L1;
break;
}
case 5: {
$26 = $0;
$27 = $1;
$28 = $2;
$29 = $3;
$30 = $4;
$31 = (__gcry_cipher_ofb_encrypt($26,$27,$28,$29,$30)|0);
$rc = $31;
label = 21;
break L1;
break;
}
case 4: {
$68 = $0;
$69 = ((($68)) + 12|0);
$70 = HEAP32[$69>>2]|0;
$71 = ((($70)) + 48|0);
$72 = HEAP32[$71>>2]|0;
$73 = $0;
$74 = ((($73)) + 496|0);
$75 = $1;
$76 = $3;
$77 = $4;
FUNCTION_TABLE_viiii[$72 & 63]($74,$75,$76,$77);
$rc = 0;
label = 21;
break L1;
break;
}
case 0: {
$78 = (__gcry_fips_mode()|0);
$79 = ($78|0)!=(0);
if (!($79)) {
$80 = (__gcry_get_debug_flag(0)|0);
$81 = ($80|0)!=(0);
if ($81) {
$82 = $3;
$83 = $1;
$84 = ($82|0)!=($83|0);
if ($84) {
$85 = $1;
$86 = $3;
$87 = $4;
_memmove(($85|0),($86|0),($87|0))|0;
}
$rc = 0;
label = 21;
break L1;
}
}
__gcry_fips_signal_error(24439,992,24518,0,24463);
$rc = 71;
label = 21;
break L1;
break;
}
default: {
label = 20;
break L1;
}
}
} else {
$switch$split52D = ($7|0)<(9);
if ($switch$split52D) {
switch ($7|0) {
case 6: {
$32 = $0;
$33 = $1;
$34 = $2;
$35 = $3;
$36 = $4;
$37 = (__gcry_cipher_ctr_encrypt($32,$33,$34,$35,$36)|0);
$rc = $37;
label = 21;
break L1;
break;
}
case 7: {
$38 = $0;
$39 = $1;
$40 = $2;
$41 = $3;
$42 = $4;
$43 = (__gcry_cipher_aeswrap_decrypt($38,$39,$40,$41,$42)|0);
$rc = $43;
label = 21;
break L1;
break;
}
case 8: {
$44 = $0;
$45 = $1;
$46 = $2;
$47 = $3;
$48 = $4;
$49 = (__gcry_cipher_ccm_decrypt($44,$45,$46,$47,$48)|0);
$rc = $49;
label = 21;
break L1;
break;
}
default: {
label = 20;
break L1;
}
}
}
$switch$split82D = ($7|0)<(11);
if ($switch$split82D) {
switch ($7|0) {
case 9: {
$50 = $0;
$51 = $1;
$52 = $2;
$53 = $3;
$54 = $4;
$55 = (__gcry_cipher_gcm_decrypt($50,$51,$52,$53,$54)|0);
$rc = $55;
label = 21;
break L1;
break;
}
case 10: {
$56 = $0;
$57 = $1;
$58 = $2;
$59 = $3;
$60 = $4;
$61 = (__gcry_cipher_poly1305_decrypt($56,$57,$58,$59,$60)|0);
$rc = $61;
label = 21;
break L1;
break;
}
default: {
label = 20;
break L1;
}
}
}
$switch$split112D = ($7|0)<(65537);
if ($switch$split112D) {
switch ($7|0) {
case 11: {
break;
}
default: {
label = 20;
break L1;
}
}
$62 = $0;
$63 = $1;
$64 = $2;
$65 = $3;
$66 = $4;
$67 = (__gcry_cipher_ocb_decrypt($62,$63,$64,$65,$66)|0);
$rc = $67;
label = 21;
break;
} else {
switch ($7|0) {
case 65537: {
break;
}
default: {
label = 20;
break L1;
}
}
$rc = 71;
label = 21;
break;
}
}
} while(0);
if ((label|0) == 20) {
$88 = $0;
$89 = ((($88)) + 48|0);
$90 = HEAP32[$89>>2]|0;
HEAP32[$vararg_buffer>>2] = $90;
__gcry_log_fatal(24533,$vararg_buffer);
// unreachable;
}
else if ((label|0) == 21) {
$91 = $rc;
STACKTOP = sp;return ($91|0);
}
return (0)|0;
}
function _do_ecb_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $outbuf;
$2 = $outbuflen;
$3 = $inbuf;
$4 = $inbuflen;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = $0;
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 40|0);
$14 = HEAP32[$13>>2]|0;
$15 = (_do_ecb_crypt($5,$6,$7,$8,$9,$14)|0);
STACKTOP = sp;return ($15|0);
}
function __gcry_cipher_setkey($hd,$key,$keylen) {
$hd = $hd|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $key;
$2 = $keylen;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (_cipher_setkey($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _cipher_setkey($c,$key,$keylen) {
$c = $c|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, $switch$split2D = 0, $switch$split32D = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $key;
$2 = $keylen;
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 32|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = ((($8)) + 496|0);
$10 = $1;
$11 = $2;
$12 = (FUNCTION_TABLE_iiii[$7 & 127]($9,$10,$11)|0);
$rc = $12;
$13 = $rc;
$14 = ($13|0)!=(0);
$15 = $0;
L1: do {
if ($14) {
$41 = ((($15)) + 56|0);
$42 = HEAP8[$41>>0]|0;
$43 = $42 & -2;
HEAP8[$41>>0] = $43;
} else {
$16 = ((($15)) + 496|0);
$17 = $0;
$18 = ((($17)) + 12|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($19)) + 28|0);
$21 = HEAP32[$20>>2]|0;
$22 = (($16) + ($21)|0);
$23 = $0;
$24 = ((($23)) + 496|0);
$25 = $0;
$26 = ((($25)) + 12|0);
$27 = HEAP32[$26>>2]|0;
$28 = ((($27)) + 28|0);
$29 = HEAP32[$28>>2]|0;
_memcpy(($22|0),($24|0),($29|0))|0;
$30 = $0;
$31 = ((($30)) + 56|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32 & -2;
$34 = $33 | 1;
HEAP8[$31>>0] = $34;
$35 = $0;
$36 = ((($35)) + 48|0);
$37 = HEAP32[$36>>2]|0;
$switch$split2D = ($37|0)<(10);
if ($switch$split2D) {
switch ($37|0) {
case 9: {
break;
}
default: {
break L1;
}
}
$39 = $0;
__gcry_cipher_gcm_setkey($39);
break;
}
$switch$split32D = ($37|0)<(65537);
if ($switch$split32D) {
switch ($37|0) {
case 10: {
break;
}
default: {
break L1;
}
}
$40 = $0;
__gcry_cipher_poly1305_setkey($40);
break;
} else {
switch ($37|0) {
case 65537: {
break;
}
default: {
break L1;
}
}
$38 = $0;
(__gcry_cipher_cmac_set_subkeys($38)|0);
break;
}
}
} while(0);
$44 = $rc;
STACKTOP = sp;return ($44|0);
}
function __gcry_cipher_setiv($hd,$iv,$ivlen) {
$hd = $hd|0;
$iv = $iv|0;
$ivlen = $ivlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $iv;
$2 = $ivlen;
$rc = 0;
$3 = $0;
$4 = ((($3)) + 48|0);
$5 = HEAP32[$4>>2]|0;
switch ($5|0) {
case 8: {
$6 = $0;
$7 = $1;
$8 = $2;
$9 = (__gcry_cipher_ccm_set_nonce($6,$7,$8)|0);
$rc = $9;
break;
}
case 9: {
$10 = $0;
$11 = $1;
$12 = $2;
$13 = (__gcry_cipher_gcm_setiv($10,$11,$12)|0);
$rc = $13;
break;
}
case 10: {
$14 = $0;
$15 = $1;
$16 = $2;
$17 = (__gcry_cipher_poly1305_setiv($14,$15,$16)|0);
$rc = $17;
break;
}
case 11: {
$18 = $0;
$19 = $1;
$20 = $2;
$21 = (__gcry_cipher_ocb_set_nonce($18,$19,$20)|0);
$rc = $21;
break;
}
default: {
$22 = $0;
$23 = $1;
$24 = $2;
$25 = (_cipher_setiv($22,$23,$24)|0);
$rc = $25;
}
}
$26 = $rc;
STACKTOP = sp;return ($26|0);
}
function _cipher_setiv($c,$iv,$ivlen) {
$c = $c|0;
$iv = $iv|0;
$ivlen = $ivlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $c;
$2 = $iv;
$3 = $ivlen;
$4 = $1;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 60|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)!=(0|0);
$10 = $1;
if ($9) {
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 60|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = ((($15)) + 496|0);
$17 = $2;
$18 = $3;
FUNCTION_TABLE_viii[$14 & 127]($16,$17,$18);
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$19 = ((($10)) + 64|0);
$20 = $1;
$21 = ((($20)) + 12|0);
$22 = HEAP32[$21>>2]|0;
$23 = ((($22)) + 20|0);
$24 = HEAP32[$23>>2]|0;
_memset(($19|0),0,($24|0))|0;
$25 = $2;
$26 = ($25|0)!=(0|0);
if ($26) {
$27 = $3;
$28 = $1;
$29 = ((($28)) + 12|0);
$30 = HEAP32[$29>>2]|0;
$31 = ((($30)) + 20|0);
$32 = HEAP32[$31>>2]|0;
$33 = ($27|0)!=($32|0);
if ($33) {
$34 = $3;
$35 = $1;
$36 = ((($35)) + 12|0);
$37 = HEAP32[$36>>2]|0;
$38 = ((($37)) + 20|0);
$39 = HEAP32[$38>>2]|0;
HEAP32[$vararg_buffer>>2] = $34;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $39;
__gcry_log_info(24566,$vararg_buffer);
__gcry_fips_signal_error(24439,682,24609,0,24622);
}
$40 = $3;
$41 = $1;
$42 = ((($41)) + 12|0);
$43 = HEAP32[$42>>2]|0;
$44 = ((($43)) + 20|0);
$45 = HEAP32[$44>>2]|0;
$46 = ($40>>>0)>($45>>>0);
if ($46) {
$47 = $1;
$48 = ((($47)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = ((($49)) + 20|0);
$51 = HEAP32[$50>>2]|0;
$3 = $51;
}
$52 = $1;
$53 = ((($52)) + 64|0);
$54 = $2;
$55 = $3;
_memcpy(($53|0),($54|0),($55|0))|0;
$56 = $1;
$57 = ((($56)) + 56|0);
$58 = HEAP8[$57>>0]|0;
$59 = $58 & -3;
$60 = $59 | 2;
HEAP8[$57>>0] = $60;
} else {
$61 = $1;
$62 = ((($61)) + 56|0);
$63 = HEAP8[$62>>0]|0;
$64 = $63 & -3;
HEAP8[$62>>0] = $64;
}
$65 = $1;
$66 = ((($65)) + 112|0);
HEAP32[$66>>2] = 0;
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
function __gcry_cipher_init() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_cipher_selftest($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $ec = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$ec = 0;
$3 = $0;
$4 = (_spec_from_algo($3)|0);
$spec = $4;
$5 = $spec;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $spec;
$8 = ((($7)) + 4|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 & 1;
$11 = $10&255;
$12 = ($11|0)!=(0);
if (!($12)) {
$13 = $spec;
$14 = ((($13)) + 52|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $spec;
$18 = ((($17)) + 52|0);
$19 = HEAP32[$18>>2]|0;
$20 = $0;
$21 = $1;
$22 = $2;
$23 = (FUNCTION_TABLE_iiii[$19 & 127]($20,$21,$22)|0);
$ec = $23;
$40 = $ec;
$41 = (_gpg_error_728($40)|0);
STACKTOP = sp;return ($41|0);
}
}
}
$ec = 12;
$24 = $2;
$25 = ($24|0)!=(0|0);
if (!($25)) {
$40 = $ec;
$41 = (_gpg_error_728($40)|0);
STACKTOP = sp;return ($41|0);
}
$26 = $2;
$27 = $0;
$28 = $spec;
$29 = ($28|0)!=(0|0);
if ($29) {
$30 = $spec;
$31 = ((($30)) + 4|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32 & 1;
$34 = $33&255;
$35 = ($34|0)!=(0);
if ($35) {
label = 8;
} else {
$39 = 38027;
}
} else {
label = 8;
}
if ((label|0) == 8) {
$36 = $spec;
$37 = ($36|0)!=(0|0);
$38 = $37 ? 37988 : 38007;
$39 = $38;
}
FUNCTION_TABLE_viiii[$26 & 63](38657,$27,38049,$39);
$40 = $ec;
$41 = (_gpg_error_728($40)|0);
STACKTOP = sp;return ($41|0);
}
function _gpg_error_728($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_677(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function __gcry_ecc_fill_in_curve($nbits,$name,$curve,$r_nbits) {
$nbits = $nbits|0;
$name = $name|0;
$curve = $curve|0;
$r_nbits = $r_nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0;
var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0;
var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $idx = 0, $resname = 0, $switch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $nbits;
$2 = $name;
$3 = $curve;
$4 = $r_nbits;
$resname = 0;
$5 = $2;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $2;
$8 = (_find_domain_parms_idx($7)|0);
$idx = $8;
} else {
$idx = 0;
while(1) {
$9 = $idx;
$10 = (1420 + (($9*48)|0)|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)!=(0|0);
if (!($12)) {
break;
}
$13 = $1;
$14 = $idx;
$15 = (1420 + (($14*48)|0)|0);
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($13|0)==($17|0);
if ($18) {
$19 = $idx;
$20 = (1420 + (($19*48)|0)|0);
$21 = ((($20)) + 12|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($22|0)==(0);
if ($23) {
break;
}
}
$24 = $idx;
$25 = (($24) + 1)|0;
$idx = $25;
}
$26 = $idx;
$27 = (1420 + (($26*48)|0)|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)!=(0|0);
if (!($29)) {
$idx = -1;
}
}
$30 = $idx;
$31 = ($30|0)<(0);
if ($31) {
$0 = 188;
$163 = $0;
STACKTOP = sp;return ($163|0);
}
$32 = $idx;
$33 = (1420 + (($32*48)|0)|0);
$34 = HEAP32[$33>>2]|0;
$resname = $34;
$35 = (__gcry_fips_mode()|0);
$36 = ($35|0)!=(0);
if ($36) {
$37 = $idx;
$38 = (1420 + (($37*48)|0)|0);
$39 = ((($38)) + 8|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40 & 1;
$42 = $41&255;
$43 = ($42|0)!=(0);
if (!($43)) {
$0 = 60;
$163 = $0;
STACKTOP = sp;return ($163|0);
}
}
$44 = $idx;
$45 = (1420 + (($44*48)|0)|0);
$46 = ((($45)) + 12|0);
$47 = HEAP32[$46>>2]|0;
$switch = ($47>>>0)<(3);
if (!($switch)) {
$0 = 59;
$163 = $0;
STACKTOP = sp;return ($163|0);
}
$48 = $4;
$49 = ($48|0)!=(0|0);
if ($49) {
$50 = $idx;
$51 = (1420 + (($50*48)|0)|0);
$52 = ((($51)) + 4|0);
$53 = HEAP32[$52>>2]|0;
$54 = $4;
HEAP32[$54>>2] = $53;
}
$55 = $3;
$56 = ($55|0)!=(0|0);
if ($56) {
$57 = $idx;
$58 = (1420 + (($57*48)|0)|0);
$59 = ((($58)) + 12|0);
$60 = HEAP32[$59>>2]|0;
$61 = $3;
HEAP32[$61>>2] = $60;
$62 = $idx;
$63 = (1420 + (($62*48)|0)|0);
$64 = ((($63)) + 16|0);
$65 = HEAP32[$64>>2]|0;
$66 = $3;
$67 = ((($66)) + 4|0);
HEAP32[$67>>2] = $65;
$68 = $3;
$69 = ((($68)) + 8|0);
$70 = HEAP32[$69>>2]|0;
$71 = ($70|0)!=(0|0);
if (!($71)) {
$72 = $idx;
$73 = (1420 + (($72*48)|0)|0);
$74 = ((($73)) + 20|0);
$75 = HEAP32[$74>>2]|0;
$76 = (_scanval($75)|0);
$77 = $3;
$78 = ((($77)) + 8|0);
HEAP32[$78>>2] = $76;
}
$79 = $3;
$80 = ((($79)) + 12|0);
$81 = HEAP32[$80>>2]|0;
$82 = ($81|0)!=(0|0);
if (!($82)) {
$83 = $idx;
$84 = (1420 + (($83*48)|0)|0);
$85 = ((($84)) + 24|0);
$86 = HEAP32[$85>>2]|0;
$87 = (_scanval($86)|0);
$88 = $3;
$89 = ((($88)) + 12|0);
HEAP32[$89>>2] = $87;
}
$90 = $3;
$91 = ((($90)) + 16|0);
$92 = HEAP32[$91>>2]|0;
$93 = ($92|0)!=(0|0);
if (!($93)) {
$94 = $idx;
$95 = (1420 + (($94*48)|0)|0);
$96 = ((($95)) + 28|0);
$97 = HEAP32[$96>>2]|0;
$98 = (_scanval($97)|0);
$99 = $3;
$100 = ((($99)) + 16|0);
HEAP32[$100>>2] = $98;
}
$101 = $3;
$102 = ((($101)) + 32|0);
$103 = HEAP32[$102>>2]|0;
$104 = ($103|0)!=(0|0);
if (!($104)) {
$105 = $idx;
$106 = (1420 + (($105*48)|0)|0);
$107 = ((($106)) + 32|0);
$108 = HEAP32[$107>>2]|0;
$109 = (_scanval($108)|0);
$110 = $3;
$111 = ((($110)) + 32|0);
HEAP32[$111>>2] = $109;
}
$112 = $3;
$113 = ((($112)) + 36|0);
$114 = HEAP32[$113>>2]|0;
$115 = ($114|0)!=(0|0);
if (!($115)) {
$116 = $idx;
$117 = (1420 + (($116*48)|0)|0);
$118 = ((($117)) + 44|0);
$119 = HEAP32[$118>>2]|0;
$120 = (_scanval($119)|0);
$121 = $3;
$122 = ((($121)) + 36|0);
HEAP32[$122>>2] = $120;
}
$123 = $3;
$124 = ((($123)) + 20|0);
$125 = HEAP32[$124>>2]|0;
$126 = ($125|0)!=(0|0);
if (!($126)) {
$127 = $idx;
$128 = (1420 + (($127*48)|0)|0);
$129 = ((($128)) + 36|0);
$130 = HEAP32[$129>>2]|0;
$131 = (_scanval($130)|0);
$132 = $3;
$133 = ((($132)) + 20|0);
HEAP32[$133>>2] = $131;
}
$134 = $3;
$135 = ((($134)) + 20|0);
$136 = ((($135)) + 4|0);
$137 = HEAP32[$136>>2]|0;
$138 = ($137|0)!=(0|0);
if (!($138)) {
$139 = $idx;
$140 = (1420 + (($139*48)|0)|0);
$141 = ((($140)) + 40|0);
$142 = HEAP32[$141>>2]|0;
$143 = (_scanval($142)|0);
$144 = $3;
$145 = ((($144)) + 20|0);
$146 = ((($145)) + 4|0);
HEAP32[$146>>2] = $143;
}
$147 = $3;
$148 = ((($147)) + 20|0);
$149 = ((($148)) + 8|0);
$150 = HEAP32[$149>>2]|0;
$151 = ($150|0)!=(0|0);
if (!($151)) {
$152 = (__gcry_mpi_alloc_set_ui(1)|0);
$153 = $3;
$154 = ((($153)) + 20|0);
$155 = ((($154)) + 8|0);
HEAP32[$155>>2] = $152;
}
$156 = $3;
$157 = ((($156)) + 40|0);
$158 = HEAP32[$157>>2]|0;
$159 = ($158|0)!=(0|0);
if (!($159)) {
$160 = $resname;
$161 = $3;
$162 = ((($161)) + 40|0);
HEAP32[$162>>2] = $160;
}
}
$0 = 0;
$163 = $0;
STACKTOP = sp;return ($163|0);
}
function _find_domain_parms_idx($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $aliasno = 0, $idx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $name;
$idx = 0;
while(1) {
$2 = $idx;
$3 = (1420 + (($2*48)|0)|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)!=(0|0);
if (!($5)) {
break;
}
$6 = $1;
$7 = $idx;
$8 = (1420 + (($7*48)|0)|0);
$9 = HEAP32[$8>>2]|0;
$10 = (_strcmp($6,$9)|0);
$11 = ($10|0)!=(0);
$12 = $idx;
if (!($11)) {
label = 4;
break;
}
$13 = (($12) + 1)|0;
$idx = $13;
}
if ((label|0) == 4) {
$0 = $12;
$49 = $0;
STACKTOP = sp;return ($49|0);
}
$14 = $idx;
$15 = (1420 + (($14*48)|0)|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)!=(0|0);
L9: do {
if (!($17)) {
$aliasno = 0;
while(1) {
$18 = $aliasno;
$19 = (2476 + ($18<<3)|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)!=(0|0);
if (!($21)) {
break;
}
$22 = $1;
$23 = $aliasno;
$24 = (2476 + ($23<<3)|0);
$25 = ((($24)) + 4|0);
$26 = HEAP32[$25>>2]|0;
$27 = (_strcmp($22,$26)|0);
$28 = ($27|0)!=(0);
if (!($28)) {
break;
}
$29 = $aliasno;
$30 = (($29) + 1)|0;
$aliasno = $30;
}
$31 = $aliasno;
$32 = (2476 + ($31<<3)|0);
$33 = HEAP32[$32>>2]|0;
$34 = ($33|0)!=(0|0);
if ($34) {
$idx = 0;
while(1) {
$35 = $idx;
$36 = (1420 + (($35*48)|0)|0);
$37 = HEAP32[$36>>2]|0;
$38 = ($37|0)!=(0|0);
if (!($38)) {
break L9;
}
$39 = $aliasno;
$40 = (2476 + ($39<<3)|0);
$41 = HEAP32[$40>>2]|0;
$42 = $idx;
$43 = (1420 + (($42*48)|0)|0);
$44 = HEAP32[$43>>2]|0;
$45 = (_strcmp($41,$44)|0);
$46 = ($45|0)!=(0);
$47 = $idx;
if (!($46)) {
break;
}
$48 = (($47) + 1)|0;
$idx = $48;
}
$0 = $47;
$49 = $0;
STACKTOP = sp;return ($49|0);
}
}
} while(0);
$0 = -1;
$49 = $0;
STACKTOP = sp;return ($49|0);
}
function _scanval($string) {
$string = $string|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $rc = 0, $val = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$val = sp + 4|0;
$0 = $string;
$1 = $0;
$2 = (__gcry_mpi_scan($val,4,$1,0,0)|0);
$rc = $2;
$3 = $rc;
$4 = ($3|0)!=(0);
if ($4) {
$5 = $rc;
$6 = (_gpg_strerror($5)|0);
HEAP32[$vararg_buffer>>2] = $6;
__gcry_log_fatal(35841,$vararg_buffer);
// unreachable;
} else {
$7 = HEAP32[$val>>2]|0;
STACKTOP = sp;return ($7|0);
}
return (0)|0;
}
function __gcry_ecc_update_curve_param($name,$model,$dialect,$p,$a,$b,$g,$n,$h) {
$name = $name|0;
$model = $model|0;
$dialect = $dialect|0;
$p = $p|0;
$a = $a|0;
$b = $b|0;
$g = $g|0;
$n = $n|0;
$h = $h|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $buf = 0, $idx = 0, $len = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $name;
$2 = $model;
$3 = $dialect;
$4 = $p;
$5 = $a;
$6 = $b;
$7 = $g;
$8 = $n;
$9 = $h;
$10 = $1;
$11 = (_find_domain_parms_idx($10)|0);
$idx = $11;
$12 = $idx;
$13 = ($12|0)<(0);
if ($13) {
$0 = 188;
$122 = $0;
STACKTOP = sp;return ($122|0);
}
$14 = $7;
$15 = ($14|0)!=(0|0);
do {
if ($15) {
$len = 4;
$16 = $idx;
$17 = (1420 + (($16*48)|0)|0);
$18 = ((($17)) + 36|0);
$19 = HEAP32[$18>>2]|0;
$20 = ((($19)) + 2|0);
$21 = (_strlen($20)|0);
$22 = $len;
$23 = (($22) + ($21))|0;
$len = $23;
$24 = $idx;
$25 = (1420 + (($24*48)|0)|0);
$26 = ((($25)) + 40|0);
$27 = HEAP32[$26>>2]|0;
$28 = ((($27)) + 2|0);
$29 = (_strlen($28)|0);
$30 = $len;
$31 = (($30) + ($29))|0;
$len = $31;
$32 = $len;
$33 = (($32) + 1)|0;
$len = $33;
$34 = $len;
$35 = (__gcry_malloc($34)|0);
$buf = $35;
$36 = $buf;
$37 = ($36|0)!=(0|0);
if ($37) {
$39 = $buf;
$40 = (___stpcpy($39,35580)|0);
$41 = $idx;
$42 = (1420 + (($41*48)|0)|0);
$43 = ((($42)) + 36|0);
$44 = HEAP32[$43>>2]|0;
$45 = ((($44)) + 2|0);
$46 = (___stpcpy($40,$45)|0);
$47 = $idx;
$48 = (1420 + (($47*48)|0)|0);
$49 = ((($48)) + 40|0);
$50 = HEAP32[$49>>2]|0;
$51 = ((($50)) + 2|0);
(_strcpy($46,$51)|0);
$52 = $7;
$53 = HEAP32[$52>>2]|0;
__gcry_mpi_release($53);
$54 = $buf;
$55 = (_scanval($54)|0);
$56 = $7;
HEAP32[$56>>2] = $55;
$57 = $buf;
__gcry_free($57);
break;
}
$38 = (_gpg_err_code_from_syserror()|0);
$0 = $38;
$122 = $0;
STACKTOP = sp;return ($122|0);
}
} while(0);
$58 = $2;
$59 = ($58|0)!=(0|0);
if ($59) {
$60 = $idx;
$61 = (1420 + (($60*48)|0)|0);
$62 = ((($61)) + 12|0);
$63 = HEAP32[$62>>2]|0;
$64 = $2;
HEAP32[$64>>2] = $63;
}
$65 = $3;
$66 = ($65|0)!=(0|0);
if ($66) {
$67 = $idx;
$68 = (1420 + (($67*48)|0)|0);
$69 = ((($68)) + 16|0);
$70 = HEAP32[$69>>2]|0;
$71 = $3;
HEAP32[$71>>2] = $70;
}
$72 = $4;
$73 = ($72|0)!=(0|0);
if ($73) {
$74 = $4;
$75 = HEAP32[$74>>2]|0;
__gcry_mpi_release($75);
$76 = $idx;
$77 = (1420 + (($76*48)|0)|0);
$78 = ((($77)) + 20|0);
$79 = HEAP32[$78>>2]|0;
$80 = (_scanval($79)|0);
$81 = $4;
HEAP32[$81>>2] = $80;
}
$82 = $5;
$83 = ($82|0)!=(0|0);
if ($83) {
$84 = $5;
$85 = HEAP32[$84>>2]|0;
__gcry_mpi_release($85);
$86 = $idx;
$87 = (1420 + (($86*48)|0)|0);
$88 = ((($87)) + 24|0);
$89 = HEAP32[$88>>2]|0;
$90 = (_scanval($89)|0);
$91 = $5;
HEAP32[$91>>2] = $90;
}
$92 = $6;
$93 = ($92|0)!=(0|0);
if ($93) {
$94 = $6;
$95 = HEAP32[$94>>2]|0;
__gcry_mpi_release($95);
$96 = $idx;
$97 = (1420 + (($96*48)|0)|0);
$98 = ((($97)) + 28|0);
$99 = HEAP32[$98>>2]|0;
$100 = (_scanval($99)|0);
$101 = $6;
HEAP32[$101>>2] = $100;
}
$102 = $8;
$103 = ($102|0)!=(0|0);
if ($103) {
$104 = $8;
$105 = HEAP32[$104>>2]|0;
__gcry_mpi_release($105);
$106 = $idx;
$107 = (1420 + (($106*48)|0)|0);
$108 = ((($107)) + 32|0);
$109 = HEAP32[$108>>2]|0;
$110 = (_scanval($109)|0);
$111 = $8;
HEAP32[$111>>2] = $110;
}
$112 = $9;
$113 = ($112|0)!=(0|0);
if ($113) {
$114 = $9;
$115 = HEAP32[$114>>2]|0;
__gcry_mpi_release($115);
$116 = $idx;
$117 = (1420 + (($116*48)|0)|0);
$118 = ((($117)) + 44|0);
$119 = HEAP32[$118>>2]|0;
$120 = (_scanval($119)|0);
$121 = $9;
HEAP32[$121>>2] = $120;
}
$0 = 0;
$122 = $0;
STACKTOP = sp;return ($122|0);
}
function __gcry_ecc_get_curve($keyparms,$iterator,$r_nbits) {
$keyparms = $keyparms|0;
$iterator = $iterator|0;
$r_nbits = $r_nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $E = 0, $idx = 0;
var $l1 = 0, $mpi_g = 0, $name = 0, $or$cond = 0, $rc = 0, $result = 0, $tmp = 0, $vararg_buffer = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$E = sp + 48|0;
$mpi_g = sp + 44|0;
$1 = $keyparms;
$2 = $iterator;
$3 = $r_nbits;
$result = 0;
HEAP32[$mpi_g>>2] = 0;
$tmp = 0;
dest=$E; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$4 = $3;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $3;
HEAP32[$6>>2] = 0;
}
$7 = $1;
$8 = ($7|0)!=(0|0);
if (!($8)) {
$9 = $2;
$idx = $9;
$10 = $idx;
$11 = ($10|0)>=(0);
$12 = $idx;
$13 = ($12>>>0)<(22);
$or$cond = $11 & $13;
if ($or$cond) {
$14 = $idx;
$15 = (1420 + (($14*48)|0)|0);
$16 = HEAP32[$15>>2]|0;
$result = $16;
$17 = $3;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = $idx;
$20 = (1420 + (($19*48)|0)|0);
$21 = ((($20)) + 4|0);
$22 = HEAP32[$21>>2]|0;
$23 = $3;
HEAP32[$23>>2] = $22;
}
}
$24 = $result;
$0 = $24;
$177 = $0;
STACKTOP = sp;return ($177|0);
}
$25 = $1;
$26 = ((($E)) + 8|0);
$27 = ((($E)) + 12|0);
$28 = ((($E)) + 16|0);
$29 = ((($E)) + 32|0);
$30 = ((($E)) + 36|0);
HEAP32[$vararg_buffer>>2] = $26;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $27;
$vararg_ptr3 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr3>>2] = $28;
$vararg_ptr4 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr4>>2] = $mpi_g;
$vararg_ptr5 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr5>>2] = $29;
$vararg_ptr6 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr6>>2] = $30;
$vararg_ptr7 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr7>>2] = 0;
$31 = (__gcry_sexp_extract_param($25,0,35585,$vararg_buffer)|0);
$32 = (_gpg_err_code($31)|0);
$rc = $32;
$33 = $rc;
$34 = ($33|0)==(68);
L12: do {
if ($34) {
$35 = $1;
$36 = (__gcry_sexp_find_token($35,47184,5)|0);
$l1 = $36;
$37 = $l1;
$38 = ($37|0)!=(0|0);
if ($38) {
$39 = $l1;
$40 = (__gcry_sexp_nth_string($39,1)|0);
$name = $40;
$41 = $l1;
__gcry_sexp_release($41);
$42 = $name;
$43 = ($42|0)!=(0|0);
if ($43) {
$44 = $name;
$45 = (_find_domain_parms_idx($44)|0);
$idx = $45;
$46 = $name;
__gcry_free($46);
$47 = $idx;
$48 = ($47|0)>=(0);
if ($48) {
$49 = $idx;
$50 = (1420 + (($49*48)|0)|0);
$51 = HEAP32[$50>>2]|0;
$result = $51;
$52 = $3;
$53 = ($52|0)!=(0|0);
if ($53) {
$54 = $idx;
$55 = (1420 + (($54*48)|0)|0);
$56 = ((($55)) + 4|0);
$57 = HEAP32[$56>>2]|0;
$58 = $3;
HEAP32[$58>>2] = $57;
}
}
$59 = $result;
$0 = $59;
$177 = $0;
STACKTOP = sp;return ($177|0);
}
}
} else {
$60 = $rc;
$61 = ($60|0)!=(0);
if (!($61)) {
$62 = HEAP32[$mpi_g>>2]|0;
$63 = ($62|0)!=(0|0);
if ($63) {
$64 = ((($E)) + 20|0);
__gcry_mpi_point_init($64);
$65 = ((($E)) + 20|0);
$66 = HEAP32[$mpi_g>>2]|0;
$67 = (__gcry_ecc_os2ec($65,$66)|0);
$68 = ($67|0)!=(0);
if ($68) {
break;
}
}
$idx = 0;
while(1) {
$69 = $idx;
$70 = (1420 + (($69*48)|0)|0);
$71 = HEAP32[$70>>2]|0;
$72 = ($71|0)!=(0|0);
if (!($72)) {
break L12;
}
$73 = $tmp;
__gcry_mpi_free($73);
$74 = $idx;
$75 = (1420 + (($74*48)|0)|0);
$76 = ((($75)) + 20|0);
$77 = HEAP32[$76>>2]|0;
$78 = (_scanval($77)|0);
$tmp = $78;
$79 = $tmp;
$80 = ((($E)) + 8|0);
$81 = HEAP32[$80>>2]|0;
$82 = (__gcry_mpi_cmp($79,$81)|0);
$83 = ($82|0)!=(0);
if (!($83)) {
$84 = $tmp;
__gcry_mpi_free($84);
$85 = $idx;
$86 = (1420 + (($85*48)|0)|0);
$87 = ((($86)) + 24|0);
$88 = HEAP32[$87>>2]|0;
$89 = (_scanval($88)|0);
$tmp = $89;
$90 = $tmp;
$91 = ((($E)) + 12|0);
$92 = HEAP32[$91>>2]|0;
$93 = (__gcry_mpi_cmp($90,$92)|0);
$94 = ($93|0)!=(0);
if (!($94)) {
$95 = $tmp;
__gcry_mpi_free($95);
$96 = $idx;
$97 = (1420 + (($96*48)|0)|0);
$98 = ((($97)) + 28|0);
$99 = HEAP32[$98>>2]|0;
$100 = (_scanval($99)|0);
$tmp = $100;
$101 = $tmp;
$102 = ((($E)) + 16|0);
$103 = HEAP32[$102>>2]|0;
$104 = (__gcry_mpi_cmp($101,$103)|0);
$105 = ($104|0)!=(0);
if (!($105)) {
$106 = $tmp;
__gcry_mpi_free($106);
$107 = $idx;
$108 = (1420 + (($107*48)|0)|0);
$109 = ((($108)) + 32|0);
$110 = HEAP32[$109>>2]|0;
$111 = (_scanval($110)|0);
$tmp = $111;
$112 = $tmp;
$113 = ((($E)) + 32|0);
$114 = HEAP32[$113>>2]|0;
$115 = (__gcry_mpi_cmp($112,$114)|0);
$116 = ($115|0)!=(0);
if (!($116)) {
$117 = $tmp;
__gcry_mpi_free($117);
$118 = $idx;
$119 = (1420 + (($118*48)|0)|0);
$120 = ((($119)) + 44|0);
$121 = HEAP32[$120>>2]|0;
$122 = (_scanval($121)|0);
$tmp = $122;
$123 = $tmp;
$124 = ((($E)) + 36|0);
$125 = HEAP32[$124>>2]|0;
$126 = (__gcry_mpi_cmp($123,$125)|0);
$127 = ($126|0)!=(0);
if (!($127)) {
$128 = $tmp;
__gcry_mpi_free($128);
$129 = $idx;
$130 = (1420 + (($129*48)|0)|0);
$131 = ((($130)) + 36|0);
$132 = HEAP32[$131>>2]|0;
$133 = (_scanval($132)|0);
$tmp = $133;
$134 = $tmp;
$135 = ((($E)) + 20|0);
$136 = HEAP32[$135>>2]|0;
$137 = (__gcry_mpi_cmp($134,$136)|0);
$138 = ($137|0)!=(0);
if (!($138)) {
$139 = $tmp;
__gcry_mpi_free($139);
$140 = $idx;
$141 = (1420 + (($140*48)|0)|0);
$142 = ((($141)) + 40|0);
$143 = HEAP32[$142>>2]|0;
$144 = (_scanval($143)|0);
$tmp = $144;
$145 = $tmp;
$146 = ((($E)) + 20|0);
$147 = ((($146)) + 4|0);
$148 = HEAP32[$147>>2]|0;
$149 = (__gcry_mpi_cmp($145,$148)|0);
$150 = ($149|0)!=(0);
if (!($150)) {
break;
}
}
}
}
}
}
}
$161 = $idx;
$162 = (($161) + 1)|0;
$idx = $162;
}
$151 = $idx;
$152 = (1420 + (($151*48)|0)|0);
$153 = HEAP32[$152>>2]|0;
$result = $153;
$154 = $3;
$155 = ($154|0)!=(0|0);
if ($155) {
$156 = $idx;
$157 = (1420 + (($156*48)|0)|0);
$158 = ((($157)) + 4|0);
$159 = HEAP32[$158>>2]|0;
$160 = $3;
HEAP32[$160>>2] = $159;
}
}
}
} while(0);
$163 = $tmp;
__gcry_mpi_release($163);
$164 = ((($E)) + 8|0);
$165 = HEAP32[$164>>2]|0;
__gcry_mpi_release($165);
$166 = ((($E)) + 12|0);
$167 = HEAP32[$166>>2]|0;
__gcry_mpi_release($167);
$168 = ((($E)) + 16|0);
$169 = HEAP32[$168>>2]|0;
__gcry_mpi_release($169);
$170 = HEAP32[$mpi_g>>2]|0;
__gcry_mpi_release($170);
$171 = ((($E)) + 20|0);
__gcry_mpi_point_free_parts($171);
$172 = ((($E)) + 32|0);
$173 = HEAP32[$172>>2]|0;
__gcry_mpi_release($173);
$174 = ((($E)) + 36|0);
$175 = HEAP32[$174>>2]|0;
__gcry_mpi_release($175);
$176 = $result;
$0 = $176;
$177 = $0;
STACKTOP = sp;return ($177|0);
}
function _gpg_err_code($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = $1 & 65535;
STACKTOP = sp;return ($2|0);
}
function __gcry_mpi_ec_new($r_ctx,$keyparam,$curvename) {
$r_ctx = $r_ctx|0;
$keyparam = $keyparam|0;
$curvename = $curvename|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $E = 0, $G = 0, $Q = 0, $a = 0, $b = 0, $ctx = 0, $d = 0, $dialect = 0, $ec = 0, $errc = 0, $flags = 0, $h = 0, $l1 = 0, $model = 0, $n = 0, $name = 0, $or$cond = 0;
var $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp + 60|0;
$p = sp + 48|0;
$a = sp + 44|0;
$b = sp + 40|0;
$G = sp + 36|0;
$n = sp + 32|0;
$h = sp + 28|0;
$Q = sp + 24|0;
$d = sp + 20|0;
$flags = sp + 16|0;
$0 = $r_ctx;
$1 = $keyparam;
$2 = $curvename;
HEAP32[$ctx>>2] = 0;
$model = 0;
$dialect = 0;
HEAP32[$p>>2] = 0;
HEAP32[$a>>2] = 0;
HEAP32[$b>>2] = 0;
HEAP32[$G>>2] = 0;
HEAP32[$n>>2] = 0;
HEAP32[$h>>2] = 0;
HEAP32[$Q>>2] = 0;
HEAP32[$d>>2] = 0;
HEAP32[$flags>>2] = 0;
$3 = $0;
HEAP32[$3>>2] = 0;
$4 = $1;
$5 = ($4|0)!=(0|0);
do {
if ($5) {
$6 = $1;
$7 = (__gcry_sexp_find_token($6,47190,0)|0);
$l1 = $7;
$8 = $l1;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $l1;
$11 = (__gcry_pk_util_parse_flaglist($10,$flags,0)|0);
$errc = $11;
$12 = $l1;
__gcry_sexp_release($12);
$l1 = 0;
$13 = $errc;
$14 = ($13|0)!=(0);
if ($14) {
break;
}
}
$15 = $1;
$16 = (__gcry_sexp_find_token($15,47184,5)|0);
$l1 = $16;
$17 = $l1;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = HEAP32[$flags>>2]|0;
$20 = $19 & 512;
$21 = ($20|0)!=(0);
if (!($21)) {
label = 13;
break;
}
}
$22 = $1;
$23 = (_mpi_from_keyparam($p,$22,48667)|0);
$errc = $23;
$24 = $errc;
$25 = ($24|0)!=(0);
if (!($25)) {
$26 = $1;
$27 = (_mpi_from_keyparam($a,$26,39393)|0);
$errc = $27;
$28 = $errc;
$29 = ($28|0)!=(0);
if (!($29)) {
$30 = $1;
$31 = (_mpi_from_keyparam($b,$30,35593)|0);
$errc = $31;
$32 = $errc;
$33 = ($32|0)!=(0);
if (!($33)) {
$34 = $1;
$35 = (_point_from_keyparam($G,$34,35595,0)|0);
$errc = $35;
$36 = $errc;
$37 = ($36|0)!=(0);
if (!($37)) {
$38 = $1;
$39 = (_mpi_from_keyparam($n,$38,39397)|0);
$errc = $39;
$40 = $errc;
$41 = ($40|0)!=(0);
if (!($41)) {
$42 = $1;
$43 = (_mpi_from_keyparam($h,$42,35606)|0);
$errc = $43;
$44 = $errc;
$45 = ($44|0)!=(0);
if (!($45)) {
label = 13;
}
}
}
}
}
}
} else {
$l1 = 0;
label = 13;
}
} while(0);
do {
if ((label|0) == 13) {
$46 = $l1;
$47 = ($46|0)!=(0|0);
$48 = $2;
$49 = ($48|0)!=(0|0);
$or$cond = $47 | $49;
if ($or$cond) {
$50 = $l1;
$51 = ($50|0)!=(0|0);
if ($51) {
$52 = $l1;
$53 = (__gcry_sexp_nth_string($52,1)|0);
$name = $53;
$54 = $l1;
__gcry_sexp_release($54);
$55 = $name;
$56 = ($55|0)!=(0|0);
if (!($56)) {
$errc = 65;
break;
}
} else {
$name = 0;
}
$57 = (__gcry_calloc(1,44)|0);
$E = $57;
$58 = $E;
$59 = ($58|0)!=(0|0);
if (!($59)) {
$60 = (_gpg_err_code_from_syserror()|0);
$errc = $60;
$61 = $name;
__gcry_free($61);
break;
}
$62 = $name;
$63 = ($62|0)!=(0|0);
$64 = $name;
$65 = $2;
$66 = $63 ? $64 : $65;
$67 = $E;
$68 = (__gcry_ecc_fill_in_curve(0,$66,$67,0)|0);
$errc = $68;
$69 = $name;
__gcry_free($69);
$70 = $errc;
$71 = ($70|0)!=(0);
$72 = $E;
if ($71) {
__gcry_free($72);
break;
}
$73 = HEAP32[$72>>2]|0;
$model = $73;
$74 = $E;
$75 = ((($74)) + 4|0);
$76 = HEAP32[$75>>2]|0;
$dialect = $76;
$77 = HEAP32[$p>>2]|0;
$78 = ($77|0)!=(0|0);
if (!($78)) {
$79 = $E;
$80 = ((($79)) + 8|0);
$81 = HEAP32[$80>>2]|0;
HEAP32[$p>>2] = $81;
$82 = $E;
$83 = ((($82)) + 8|0);
HEAP32[$83>>2] = 0;
}
$84 = HEAP32[$a>>2]|0;
$85 = ($84|0)!=(0|0);
if (!($85)) {
$86 = $E;
$87 = ((($86)) + 12|0);
$88 = HEAP32[$87>>2]|0;
HEAP32[$a>>2] = $88;
$89 = $E;
$90 = ((($89)) + 12|0);
HEAP32[$90>>2] = 0;
}
$91 = HEAP32[$b>>2]|0;
$92 = ($91|0)!=(0|0);
if (!($92)) {
$93 = $E;
$94 = ((($93)) + 16|0);
$95 = HEAP32[$94>>2]|0;
HEAP32[$b>>2] = $95;
$96 = $E;
$97 = ((($96)) + 16|0);
HEAP32[$97>>2] = 0;
}
$98 = HEAP32[$G>>2]|0;
$99 = ($98|0)!=(0|0);
if (!($99)) {
$100 = $E;
$101 = ((($100)) + 20|0);
$102 = HEAP32[$101>>2]|0;
$103 = $E;
$104 = ((($103)) + 20|0);
$105 = ((($104)) + 4|0);
$106 = HEAP32[$105>>2]|0;
$107 = $E;
$108 = ((($107)) + 20|0);
$109 = ((($108)) + 8|0);
$110 = HEAP32[$109>>2]|0;
$111 = (__gcry_mpi_point_snatch_set(0,$102,$106,$110)|0);
HEAP32[$G>>2] = $111;
$112 = $E;
$113 = ((($112)) + 20|0);
HEAP32[$113>>2] = 0;
$114 = $E;
$115 = ((($114)) + 20|0);
$116 = ((($115)) + 4|0);
HEAP32[$116>>2] = 0;
$117 = $E;
$118 = ((($117)) + 20|0);
$119 = ((($118)) + 8|0);
HEAP32[$119>>2] = 0;
}
$120 = HEAP32[$n>>2]|0;
$121 = ($120|0)!=(0|0);
if (!($121)) {
$122 = $E;
$123 = ((($122)) + 32|0);
$124 = HEAP32[$123>>2]|0;
HEAP32[$n>>2] = $124;
$125 = $E;
$126 = ((($125)) + 32|0);
HEAP32[$126>>2] = 0;
}
$127 = HEAP32[$h>>2]|0;
$128 = ($127|0)!=(0|0);
if (!($128)) {
$129 = $E;
$130 = ((($129)) + 36|0);
$131 = HEAP32[$130>>2]|0;
HEAP32[$h>>2] = $131;
$132 = $E;
$133 = ((($132)) + 36|0);
HEAP32[$133>>2] = 0;
}
$134 = $E;
__gcry_ecc_curve_free($134);
$135 = $E;
__gcry_free($135);
}
$136 = $model;
$137 = $dialect;
$138 = HEAP32[$flags>>2]|0;
$139 = HEAP32[$p>>2]|0;
$140 = HEAP32[$a>>2]|0;
$141 = HEAP32[$b>>2]|0;
$142 = (__gcry_mpi_ec_p_new($ctx,$136,$137,$138,$139,$140,$141)|0);
$errc = $142;
$143 = $errc;
$144 = ($143|0)!=(0);
if (!($144)) {
$145 = HEAP32[$ctx>>2]|0;
$146 = (__gcry_ctx_get_pointer($145,1)|0);
$ec = $146;
$147 = HEAP32[$b>>2]|0;
$148 = ($147|0)!=(0|0);
if ($148) {
$149 = $ec;
$150 = ((($149)) + 24|0);
$151 = HEAP32[$150>>2]|0;
__gcry_mpi_free($151);
$152 = HEAP32[$b>>2]|0;
$153 = $ec;
$154 = ((($153)) + 24|0);
HEAP32[$154>>2] = $152;
HEAP32[$b>>2] = 0;
}
$155 = HEAP32[$G>>2]|0;
$156 = ($155|0)!=(0|0);
if ($156) {
$157 = HEAP32[$G>>2]|0;
$158 = $ec;
$159 = ((($158)) + 28|0);
HEAP32[$159>>2] = $157;
HEAP32[$G>>2] = 0;
}
$160 = HEAP32[$n>>2]|0;
$161 = ($160|0)!=(0|0);
if ($161) {
$162 = HEAP32[$n>>2]|0;
$163 = $ec;
$164 = ((($163)) + 32|0);
HEAP32[$164>>2] = $162;
HEAP32[$n>>2] = 0;
}
$165 = HEAP32[$h>>2]|0;
$166 = ($165|0)!=(0|0);
if ($166) {
$167 = HEAP32[$h>>2]|0;
$168 = $ec;
$169 = ((($168)) + 36|0);
HEAP32[$169>>2] = $167;
HEAP32[$h>>2] = 0;
}
$170 = $1;
$171 = ($170|0)!=(0|0);
if ($171) {
$172 = $1;
$173 = $ec;
$174 = (_point_from_keyparam($Q,$172,49895,$173)|0);
$errc = $174;
$175 = $errc;
$176 = ($175|0)!=(0);
if ($176) {
break;
}
$177 = $1;
$178 = (_mpi_from_keyparam($d,$177,35608)|0);
$errc = $178;
$179 = $errc;
$180 = ($179|0)!=(0);
if ($180) {
break;
}
}
$181 = HEAP32[$Q>>2]|0;
$182 = ($181|0)!=(0|0);
if ($182) {
$183 = HEAP32[$Q>>2]|0;
$184 = $ec;
$185 = ((($184)) + 40|0);
HEAP32[$185>>2] = $183;
HEAP32[$Q>>2] = 0;
}
$186 = HEAP32[$d>>2]|0;
$187 = ($186|0)!=(0|0);
if ($187) {
$188 = HEAP32[$d>>2]|0;
$189 = $ec;
$190 = ((($189)) + 44|0);
HEAP32[$190>>2] = $188;
HEAP32[$d>>2] = 0;
}
$191 = HEAP32[$ctx>>2]|0;
$192 = $0;
HEAP32[$192>>2] = $191;
HEAP32[$ctx>>2] = 0;
}
}
} while(0);
$193 = HEAP32[$ctx>>2]|0;
__gcry_ctx_release($193);
$194 = HEAP32[$p>>2]|0;
__gcry_mpi_free($194);
$195 = HEAP32[$a>>2]|0;
__gcry_mpi_free($195);
$196 = HEAP32[$b>>2]|0;
__gcry_mpi_free($196);
$197 = HEAP32[$G>>2]|0;
__gcry_mpi_point_release($197);
$198 = HEAP32[$n>>2]|0;
__gcry_mpi_free($198);
$199 = HEAP32[$h>>2]|0;
__gcry_mpi_free($199);
$200 = HEAP32[$Q>>2]|0;
__gcry_mpi_point_release($200);
$201 = HEAP32[$d>>2]|0;
__gcry_mpi_free($201);
$202 = $errc;
STACKTOP = sp;return ($202|0);
}
function _mpi_from_keyparam($r_a,$keyparam,$name) {
$r_a = $r_a|0;
$keyparam = $keyparam|0;
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, $l1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $r_a;
$1 = $keyparam;
$2 = $name;
$ec = 0;
$3 = $1;
$4 = $2;
$5 = (__gcry_sexp_find_token($3,$4,0)|0);
$l1 = $5;
$6 = $l1;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $l1;
$9 = (__gcry_sexp_nth_mpi($8,1,5)|0);
$10 = $0;
HEAP32[$10>>2] = $9;
$11 = $l1;
__gcry_sexp_release($11);
$12 = $0;
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$ec = 65;
}
}
$15 = $ec;
STACKTOP = sp;return ($15|0);
}
function _point_from_keyparam($r_a,$keyparam,$name,$ec) {
$r_a = $r_a|0;
$keyparam = $keyparam|0;
$name = $name|0;
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $a = 0, $l1 = 0, $or$cond = 0, $point = 0, $rc = 0, $tmpname = 0, $x = 0;
var $y = 0, $z = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$x = sp + 8|0;
$y = sp + 4|0;
$z = sp;
$1 = $r_a;
$2 = $keyparam;
$3 = $name;
$4 = $ec;
$5 = $2;
$6 = $3;
$7 = (__gcry_sexp_find_token($5,$6,0)|0);
$l1 = $7;
$8 = $l1;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $l1;
$11 = (__gcry_sexp_nth_mpi($10,1,8)|0);
$a = $11;
$12 = $l1;
__gcry_sexp_release($12);
$13 = $a;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$0 = 65;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$15 = (__gcry_mpi_point_new(0)|0);
$point = $15;
$16 = $4;
$17 = ($16|0)!=(0|0);
if ($17) {
$18 = $4;
$19 = ((($18)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(1);
if ($21) {
$22 = $a;
$23 = $4;
$24 = $point;
$25 = (__gcry_ecc_eddsa_decodepoint($22,$23,$24,0,0)|0);
$rc = $25;
} else {
label = 7;
}
} else {
label = 7;
}
if ((label|0) == 7) {
$26 = $point;
$27 = $a;
$28 = (__gcry_ecc_os2ec($26,$27)|0);
$rc = $28;
}
$29 = $a;
__gcry_mpi_free($29);
$30 = $rc;
$31 = ($30|0)!=(0);
if ($31) {
$32 = $point;
__gcry_mpi_point_release($32);
$point = 0;
$33 = $rc;
$0 = $33;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
} else {
HEAP32[$x>>2] = 0;
HEAP32[$y>>2] = 0;
HEAP32[$z>>2] = 0;
$34 = $3;
$35 = (_strlen($34)|0);
$36 = (($35) + 2)|0;
$37 = (($36) + 1)|0;
$38 = (__gcry_malloc($37)|0);
$tmpname = $38;
$39 = $tmpname;
$40 = ($39|0)!=(0|0);
if (!($40)) {
$41 = (_gpg_err_code_from_syserror()|0);
$0 = $41;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$42 = $tmpname;
$43 = $3;
$44 = (___stpcpy($42,$43)|0);
(_strcpy($44,35597)|0);
$45 = $2;
$46 = $tmpname;
$47 = (_mpi_from_keyparam($x,$45,$46)|0);
$rc = $47;
$48 = $rc;
$49 = ($48|0)!=(0);
$50 = $tmpname;
if ($49) {
__gcry_free($50);
$51 = $rc;
$0 = $51;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$52 = $3;
$53 = (___stpcpy($50,$52)|0);
(_strcpy($53,35600)|0);
$54 = $2;
$55 = $tmpname;
$56 = (_mpi_from_keyparam($y,$54,$55)|0);
$rc = $56;
$57 = $rc;
$58 = ($57|0)!=(0);
if ($58) {
$59 = HEAP32[$x>>2]|0;
__gcry_mpi_free($59);
$60 = $tmpname;
__gcry_free($60);
$61 = $rc;
$0 = $61;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$62 = $tmpname;
$63 = $3;
$64 = (___stpcpy($62,$63)|0);
(_strcpy($64,35603)|0);
$65 = $2;
$66 = $tmpname;
$67 = (_mpi_from_keyparam($z,$65,$66)|0);
$rc = $67;
$68 = $rc;
$69 = ($68|0)!=(0);
if ($69) {
$70 = HEAP32[$y>>2]|0;
__gcry_mpi_free($70);
$71 = HEAP32[$x>>2]|0;
__gcry_mpi_free($71);
$72 = $tmpname;
__gcry_free($72);
$73 = $rc;
$0 = $73;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$74 = HEAP32[$z>>2]|0;
$75 = ($74|0)!=(0|0);
if (!($75)) {
$76 = (__gcry_mpi_set_ui(0,1)|0);
HEAP32[$z>>2] = $76;
}
$77 = HEAP32[$x>>2]|0;
$78 = ($77|0)!=(0|0);
$79 = HEAP32[$y>>2]|0;
$80 = ($79|0)!=(0|0);
$or$cond = $78 & $80;
$81 = HEAP32[$x>>2]|0;
if ($or$cond) {
$82 = HEAP32[$y>>2]|0;
$83 = HEAP32[$z>>2]|0;
$84 = (__gcry_mpi_point_snatch_set(0,$81,$82,$83)|0);
$point = $84;
} else {
__gcry_mpi_free($81);
$85 = HEAP32[$y>>2]|0;
__gcry_mpi_free($85);
$86 = HEAP32[$z>>2]|0;
__gcry_mpi_free($86);
$point = 0;
}
$87 = $tmpname;
__gcry_free($87);
}
$88 = $point;
$89 = ($88|0)!=(0|0);
if ($89) {
$90 = $point;
$91 = $1;
HEAP32[$91>>2] = $90;
}
$0 = 0;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
function __gcry_ecc_get_param_sexp($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $E = 0, $ctx = 0, $g_x = 0, $g_y = 0, $i = 0, $nbits = 0, $pkey = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0;
var $vararg_ptr6 = 0, $vararg_ptr7 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$nbits = sp + 124|0;
$E = sp + 80|0;
$pkey = sp + 40|0;
$result = sp + 36|0;
$1 = $name;
dest=$E; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$2 = $1;
$3 = (__gcry_ecc_fill_in_curve(0,$2,$E,$nbits)|0);
$4 = ($3|0)!=(0);
if ($4) {
$0 = 0;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
$5 = (__gcry_mpi_new(0)|0);
$g_x = $5;
$6 = (__gcry_mpi_new(0)|0);
$g_y = $6;
$7 = ((($E)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($E)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = (__gcry_mpi_ec_p_internal_new(0,0,0,$8,$10,0)|0);
$ctx = $11;
$12 = $g_x;
$13 = $g_y;
$14 = ((($E)) + 20|0);
$15 = $ctx;
$16 = (__gcry_mpi_ec_get_affine($12,$13,$14,$15)|0);
$17 = ($16|0)!=(0);
if ($17) {
__gcry_log_fatal(35610,$vararg_buffer);
// unreachable;
}
$18 = $ctx;
__gcry_mpi_ec_free($18);
$19 = ((($E)) + 20|0);
__gcry_mpi_point_free_parts($19);
$20 = ((($E)) + 8|0);
$21 = HEAP32[$20>>2]|0;
HEAP32[$pkey>>2] = $21;
$22 = ((($E)) + 12|0);
$23 = HEAP32[$22>>2]|0;
$24 = ((($pkey)) + 4|0);
HEAP32[$24>>2] = $23;
$25 = ((($E)) + 16|0);
$26 = HEAP32[$25>>2]|0;
$27 = ((($pkey)) + 8|0);
HEAP32[$27>>2] = $26;
$28 = $g_x;
$29 = $g_y;
$30 = ((($E)) + 8|0);
$31 = HEAP32[$30>>2]|0;
$32 = (__gcry_ecc_ec2os($28,$29,$31)|0);
$33 = ((($pkey)) + 12|0);
HEAP32[$33>>2] = $32;
$34 = ((($E)) + 32|0);
$35 = HEAP32[$34>>2]|0;
$36 = ((($pkey)) + 16|0);
HEAP32[$36>>2] = $35;
$37 = ((($E)) + 36|0);
$38 = HEAP32[$37>>2]|0;
$39 = ((($pkey)) + 20|0);
HEAP32[$39>>2] = $38;
$40 = ((($pkey)) + 24|0);
HEAP32[$40>>2] = 0;
$41 = $g_x;
__gcry_mpi_free($41);
$42 = $g_y;
__gcry_mpi_free($42);
$43 = HEAP32[$pkey>>2]|0;
$44 = ((($pkey)) + 4|0);
$45 = HEAP32[$44>>2]|0;
$46 = ((($pkey)) + 8|0);
$47 = HEAP32[$46>>2]|0;
$48 = ((($pkey)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = ((($pkey)) + 16|0);
$51 = HEAP32[$50>>2]|0;
$52 = ((($pkey)) + 20|0);
$53 = HEAP32[$52>>2]|0;
HEAP32[$vararg_buffer1>>2] = $43;
$vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr3>>2] = $45;
$vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
HEAP32[$vararg_ptr4>>2] = $47;
$vararg_ptr5 = ((($vararg_buffer1)) + 12|0);
HEAP32[$vararg_ptr5>>2] = $49;
$vararg_ptr6 = ((($vararg_buffer1)) + 16|0);
HEAP32[$vararg_ptr6>>2] = $51;
$vararg_ptr7 = ((($vararg_buffer1)) + 20|0);
HEAP32[$vararg_ptr7>>2] = $53;
$54 = (__gcry_sexp_build($result,0,35659,$vararg_buffer1)|0);
$55 = ($54|0)!=(0);
if ($55) {
HEAP32[$result>>2] = 0;
}
$i = 0;
while(1) {
$56 = $i;
$57 = (($pkey) + ($56<<2)|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)!=(0|0);
if (!($59)) {
break;
}
$60 = $i;
$61 = (($pkey) + ($60<<2)|0);
$62 = HEAP32[$61>>2]|0;
__gcry_mpi_release($62);
$63 = $i;
$64 = (($63) + 1)|0;
$i = $64;
}
$65 = HEAP32[$result>>2]|0;
$0 = $65;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
function __gcry_ecc_get_mpi($name,$ec,$copy) {
$name = $name|0;
$ec = $ec|0;
$copy = $copy|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $encpk = 0, $encpklen = 0;
var $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond17 = 0, $or$cond19 = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$encpk = sp + 4|0;
$encpklen = sp;
$1 = $name;
$2 = $ec;
$3 = $copy;
$4 = $1;
$5 = HEAP8[$4>>0]|0;
$6 = ($5<<24>>24)!=(0);
if (!($6)) {
$0 = 0;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
$7 = $1;
$8 = (_strcmp($7,48667)|0);
$9 = ($8|0)!=(0);
if (!($9)) {
$10 = $2;
$11 = ((($10)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = $2;
$15 = ((($14)) + 16|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)!=(0|0);
if ($17) {
$18 = $2;
$19 = ((($18)) + 16|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($20)) + 12|0);
$22 = HEAP32[$21>>2]|0;
$23 = $22 & 32;
$24 = ($23|0)==(0);
$25 = $3;
$26 = ($25|0)!=(0);
$or$cond = $24 | $26;
if ($or$cond) {
label = 8;
} else {
$27 = $2;
$28 = ((($27)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$34 = $29;
}
} else {
label = 8;
}
if ((label|0) == 8) {
$30 = $2;
$31 = ((($30)) + 16|0);
$32 = HEAP32[$31>>2]|0;
$33 = (__gcry_mpi_copy($32)|0);
$34 = $33;
}
$0 = $34;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$35 = $1;
$36 = (_strcmp($35,39393)|0);
$37 = ($36|0)!=(0);
if (!($37)) {
$38 = $2;
$39 = ((($38)) + 20|0);
$40 = HEAP32[$39>>2]|0;
$41 = ($40|0)!=(0|0);
if ($41) {
$42 = $2;
$43 = ((($42)) + 20|0);
$44 = HEAP32[$43>>2]|0;
$45 = ($44|0)!=(0|0);
if ($45) {
$46 = $2;
$47 = ((($46)) + 20|0);
$48 = HEAP32[$47>>2]|0;
$49 = ((($48)) + 12|0);
$50 = HEAP32[$49>>2]|0;
$51 = $50 & 32;
$52 = ($51|0)==(0);
$53 = $3;
$54 = ($53|0)!=(0);
$or$cond3 = $52 | $54;
if ($or$cond3) {
label = 15;
} else {
$55 = $2;
$56 = ((($55)) + 20|0);
$57 = HEAP32[$56>>2]|0;
$62 = $57;
}
} else {
label = 15;
}
if ((label|0) == 15) {
$58 = $2;
$59 = ((($58)) + 20|0);
$60 = HEAP32[$59>>2]|0;
$61 = (__gcry_mpi_copy($60)|0);
$62 = $61;
}
$0 = $62;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$63 = $1;
$64 = (_strcmp($63,35593)|0);
$65 = ($64|0)!=(0);
if (!($65)) {
$66 = $2;
$67 = ((($66)) + 24|0);
$68 = HEAP32[$67>>2]|0;
$69 = ($68|0)!=(0|0);
if ($69) {
$70 = $2;
$71 = ((($70)) + 24|0);
$72 = HEAP32[$71>>2]|0;
$73 = ($72|0)!=(0|0);
if ($73) {
$74 = $2;
$75 = ((($74)) + 24|0);
$76 = HEAP32[$75>>2]|0;
$77 = ((($76)) + 12|0);
$78 = HEAP32[$77>>2]|0;
$79 = $78 & 32;
$80 = ($79|0)==(0);
$81 = $3;
$82 = ($81|0)!=(0);
$or$cond5 = $80 | $82;
if ($or$cond5) {
label = 22;
} else {
$83 = $2;
$84 = ((($83)) + 24|0);
$85 = HEAP32[$84>>2]|0;
$90 = $85;
}
} else {
label = 22;
}
if ((label|0) == 22) {
$86 = $2;
$87 = ((($86)) + 24|0);
$88 = HEAP32[$87>>2]|0;
$89 = (__gcry_mpi_copy($88)|0);
$90 = $89;
}
$0 = $90;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$91 = $1;
$92 = (_strcmp($91,39397)|0);
$93 = ($92|0)!=(0);
if (!($93)) {
$94 = $2;
$95 = ((($94)) + 32|0);
$96 = HEAP32[$95>>2]|0;
$97 = ($96|0)!=(0|0);
if ($97) {
$98 = $2;
$99 = ((($98)) + 32|0);
$100 = HEAP32[$99>>2]|0;
$101 = ($100|0)!=(0|0);
if ($101) {
$102 = $2;
$103 = ((($102)) + 32|0);
$104 = HEAP32[$103>>2]|0;
$105 = ((($104)) + 12|0);
$106 = HEAP32[$105>>2]|0;
$107 = $106 & 32;
$108 = ($107|0)==(0);
$109 = $3;
$110 = ($109|0)!=(0);
$or$cond7 = $108 | $110;
if ($or$cond7) {
label = 29;
} else {
$111 = $2;
$112 = ((($111)) + 32|0);
$113 = HEAP32[$112>>2]|0;
$118 = $113;
}
} else {
label = 29;
}
if ((label|0) == 29) {
$114 = $2;
$115 = ((($114)) + 32|0);
$116 = HEAP32[$115>>2]|0;
$117 = (__gcry_mpi_copy($116)|0);
$118 = $117;
}
$0 = $118;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$119 = $1;
$120 = (_strcmp($119,35606)|0);
$121 = ($120|0)!=(0);
if (!($121)) {
$122 = $2;
$123 = ((($122)) + 36|0);
$124 = HEAP32[$123>>2]|0;
$125 = ($124|0)!=(0|0);
if ($125) {
$126 = $2;
$127 = ((($126)) + 36|0);
$128 = HEAP32[$127>>2]|0;
$129 = ($128|0)!=(0|0);
if ($129) {
$130 = $2;
$131 = ((($130)) + 36|0);
$132 = HEAP32[$131>>2]|0;
$133 = ((($132)) + 12|0);
$134 = HEAP32[$133>>2]|0;
$135 = $134 & 32;
$136 = ($135|0)==(0);
$137 = $3;
$138 = ($137|0)!=(0);
$or$cond9 = $136 | $138;
if ($or$cond9) {
label = 36;
} else {
$139 = $2;
$140 = ((($139)) + 36|0);
$141 = HEAP32[$140>>2]|0;
$146 = $141;
}
} else {
label = 36;
}
if ((label|0) == 36) {
$142 = $2;
$143 = ((($142)) + 36|0);
$144 = HEAP32[$143>>2]|0;
$145 = (__gcry_mpi_copy($144)|0);
$146 = $145;
}
$0 = $146;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$147 = $1;
$148 = (_strcmp($147,35608)|0);
$149 = ($148|0)!=(0);
if (!($149)) {
$150 = $2;
$151 = ((($150)) + 44|0);
$152 = HEAP32[$151>>2]|0;
$153 = ($152|0)!=(0|0);
if ($153) {
$154 = $2;
$155 = ((($154)) + 44|0);
$156 = HEAP32[$155>>2]|0;
$157 = ($156|0)!=(0|0);
if ($157) {
$158 = $2;
$159 = ((($158)) + 44|0);
$160 = HEAP32[$159>>2]|0;
$161 = ((($160)) + 12|0);
$162 = HEAP32[$161>>2]|0;
$163 = $162 & 32;
$164 = ($163|0)==(0);
$165 = $3;
$166 = ($165|0)!=(0);
$or$cond11 = $164 | $166;
if ($or$cond11) {
label = 43;
} else {
$167 = $2;
$168 = ((($167)) + 44|0);
$169 = HEAP32[$168>>2]|0;
$174 = $169;
}
} else {
label = 43;
}
if ((label|0) == 43) {
$170 = $2;
$171 = ((($170)) + 44|0);
$172 = HEAP32[$171>>2]|0;
$173 = (__gcry_mpi_copy($172)|0);
$174 = $173;
}
$0 = $174;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$175 = $1;
$176 = (_strcmp($175,35707)|0);
$177 = ($176|0)!=(0);
if (!($177)) {
$178 = $2;
$179 = ((($178)) + 28|0);
$180 = HEAP32[$179>>2]|0;
$181 = ($180|0)!=(0|0);
if ($181) {
$182 = $2;
$183 = ((($182)) + 28|0);
$184 = HEAP32[$183>>2]|0;
$185 = HEAP32[$184>>2]|0;
$186 = ($185|0)!=(0|0);
if ($186) {
$187 = $2;
$188 = ((($187)) + 28|0);
$189 = HEAP32[$188>>2]|0;
$190 = HEAP32[$189>>2]|0;
$191 = ($190|0)!=(0|0);
if ($191) {
$192 = $2;
$193 = ((($192)) + 28|0);
$194 = HEAP32[$193>>2]|0;
$195 = HEAP32[$194>>2]|0;
$196 = ((($195)) + 12|0);
$197 = HEAP32[$196>>2]|0;
$198 = $197 & 32;
$199 = ($198|0)==(0);
$200 = $3;
$201 = ($200|0)!=(0);
$or$cond13 = $199 | $201;
if ($or$cond13) {
label = 51;
} else {
$202 = $2;
$203 = ((($202)) + 28|0);
$204 = HEAP32[$203>>2]|0;
$205 = HEAP32[$204>>2]|0;
$211 = $205;
}
} else {
label = 51;
}
if ((label|0) == 51) {
$206 = $2;
$207 = ((($206)) + 28|0);
$208 = HEAP32[$207>>2]|0;
$209 = HEAP32[$208>>2]|0;
$210 = (__gcry_mpi_copy($209)|0);
$211 = $210;
}
$0 = $211;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
}
$212 = $1;
$213 = (_strcmp($212,35711)|0);
$214 = ($213|0)!=(0);
if (!($214)) {
$215 = $2;
$216 = ((($215)) + 28|0);
$217 = HEAP32[$216>>2]|0;
$218 = ($217|0)!=(0|0);
if ($218) {
$219 = $2;
$220 = ((($219)) + 28|0);
$221 = HEAP32[$220>>2]|0;
$222 = ((($221)) + 4|0);
$223 = HEAP32[$222>>2]|0;
$224 = ($223|0)!=(0|0);
if ($224) {
$225 = $2;
$226 = ((($225)) + 28|0);
$227 = HEAP32[$226>>2]|0;
$228 = ((($227)) + 4|0);
$229 = HEAP32[$228>>2]|0;
$230 = ($229|0)!=(0|0);
if ($230) {
$231 = $2;
$232 = ((($231)) + 28|0);
$233 = HEAP32[$232>>2]|0;
$234 = ((($233)) + 4|0);
$235 = HEAP32[$234>>2]|0;
$236 = ((($235)) + 12|0);
$237 = HEAP32[$236>>2]|0;
$238 = $237 & 32;
$239 = ($238|0)==(0);
$240 = $3;
$241 = ($240|0)!=(0);
$or$cond15 = $239 | $241;
if ($or$cond15) {
label = 59;
} else {
$242 = $2;
$243 = ((($242)) + 28|0);
$244 = HEAP32[$243>>2]|0;
$245 = ((($244)) + 4|0);
$246 = HEAP32[$245>>2]|0;
$253 = $246;
}
} else {
label = 59;
}
if ((label|0) == 59) {
$247 = $2;
$248 = ((($247)) + 28|0);
$249 = HEAP32[$248>>2]|0;
$250 = ((($249)) + 4|0);
$251 = HEAP32[$250>>2]|0;
$252 = (__gcry_mpi_copy($251)|0);
$253 = $252;
}
$0 = $253;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
}
$254 = $1;
$255 = (_strcmp($254,35715)|0);
$256 = ($255|0)!=(0);
if (!($256)) {
$257 = $2;
$258 = ((($257)) + 40|0);
$259 = HEAP32[$258>>2]|0;
$260 = ($259|0)!=(0|0);
if ($260) {
$261 = $2;
$262 = ((($261)) + 40|0);
$263 = HEAP32[$262>>2]|0;
$264 = HEAP32[$263>>2]|0;
$265 = ($264|0)!=(0|0);
if ($265) {
$266 = $2;
$267 = ((($266)) + 40|0);
$268 = HEAP32[$267>>2]|0;
$269 = HEAP32[$268>>2]|0;
$270 = ($269|0)!=(0|0);
if ($270) {
$271 = $2;
$272 = ((($271)) + 40|0);
$273 = HEAP32[$272>>2]|0;
$274 = HEAP32[$273>>2]|0;
$275 = ((($274)) + 12|0);
$276 = HEAP32[$275>>2]|0;
$277 = $276 & 32;
$278 = ($277|0)==(0);
$279 = $3;
$280 = ($279|0)!=(0);
$or$cond17 = $278 | $280;
if ($or$cond17) {
label = 67;
} else {
$281 = $2;
$282 = ((($281)) + 40|0);
$283 = HEAP32[$282>>2]|0;
$284 = HEAP32[$283>>2]|0;
$290 = $284;
}
} else {
label = 67;
}
if ((label|0) == 67) {
$285 = $2;
$286 = ((($285)) + 40|0);
$287 = HEAP32[$286>>2]|0;
$288 = HEAP32[$287>>2]|0;
$289 = (__gcry_mpi_copy($288)|0);
$290 = $289;
}
$0 = $290;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
}
$291 = $1;
$292 = (_strcmp($291,35719)|0);
$293 = ($292|0)!=(0);
if (!($293)) {
$294 = $2;
$295 = ((($294)) + 40|0);
$296 = HEAP32[$295>>2]|0;
$297 = ($296|0)!=(0|0);
if ($297) {
$298 = $2;
$299 = ((($298)) + 40|0);
$300 = HEAP32[$299>>2]|0;
$301 = ((($300)) + 4|0);
$302 = HEAP32[$301>>2]|0;
$303 = ($302|0)!=(0|0);
if ($303) {
$304 = $2;
$305 = ((($304)) + 28|0);
$306 = HEAP32[$305>>2]|0;
$307 = ((($306)) + 4|0);
$308 = HEAP32[$307>>2]|0;
$309 = ($308|0)!=(0|0);
if ($309) {
$310 = $2;
$311 = ((($310)) + 28|0);
$312 = HEAP32[$311>>2]|0;
$313 = ((($312)) + 4|0);
$314 = HEAP32[$313>>2]|0;
$315 = ((($314)) + 12|0);
$316 = HEAP32[$315>>2]|0;
$317 = $316 & 32;
$318 = ($317|0)==(0);
$319 = $3;
$320 = ($319|0)!=(0);
$or$cond19 = $318 | $320;
if ($or$cond19) {
label = 75;
} else {
$321 = $2;
$322 = ((($321)) + 40|0);
$323 = HEAP32[$322>>2]|0;
$324 = ((($323)) + 4|0);
$325 = HEAP32[$324>>2]|0;
$332 = $325;
}
} else {
label = 75;
}
if ((label|0) == 75) {
$326 = $2;
$327 = ((($326)) + 40|0);
$328 = HEAP32[$327>>2]|0;
$329 = ((($328)) + 4|0);
$330 = HEAP32[$329>>2]|0;
$331 = (__gcry_mpi_copy($330)|0);
$332 = $331;
}
$0 = $332;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
}
$333 = $1;
$334 = (_strcmp($333,35595)|0);
$335 = ($334|0)!=(0);
if (!($335)) {
$336 = $2;
$337 = ((($336)) + 28|0);
$338 = HEAP32[$337>>2]|0;
$339 = ($338|0)!=(0|0);
if ($339) {
$340 = $2;
$341 = ((($340)) + 28|0);
$342 = HEAP32[$341>>2]|0;
$343 = $2;
$344 = (__gcry_mpi_ec_ec2os($342,$343)|0);
$0 = $344;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
$345 = $1;
$346 = HEAP8[$345>>0]|0;
$347 = $346 << 24 >> 24;
$348 = ($347|0)==(113);
do {
if ($348) {
$349 = $1;
$350 = ((($349)) + 1|0);
$351 = HEAP8[$350>>0]|0;
$352 = ($351<<24>>24)!=(0);
if ($352) {
$353 = $1;
$354 = ((($353)) + 1|0);
$355 = HEAP8[$354>>0]|0;
$356 = $355 << 24 >> 24;
$357 = ($356|0)==(64);
if (!($357)) {
break;
}
}
$358 = $2;
$359 = ((($358)) + 40|0);
$360 = HEAP32[$359>>2]|0;
$361 = ($360|0)!=(0|0);
if (!($361)) {
$362 = $2;
$363 = (__gcry_ecc_compute_public(0,$362,0,0)|0);
$364 = $2;
$365 = ((($364)) + 40|0);
HEAP32[$365>>2] = $363;
}
$366 = $2;
$367 = ((($366)) + 40|0);
$368 = HEAP32[$367>>2]|0;
$369 = ($368|0)!=(0|0);
if (!($369)) {
$0 = 0;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
$370 = $1;
$371 = ((($370)) + 1|0);
$372 = HEAP8[$371>>0]|0;
$373 = $372 << 24 >> 24;
$374 = ($373|0)!=(64);
if ($374) {
$375 = $2;
$376 = ((($375)) + 40|0);
$377 = HEAP32[$376>>2]|0;
$378 = $2;
$379 = (__gcry_mpi_ec_ec2os($377,$378)|0);
$0 = $379;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
$380 = $1;
$381 = ((($380)) + 2|0);
$382 = (_strcmp($381,47150)|0);
$383 = ($382|0)!=(0);
if (!($383)) {
$384 = $2;
$385 = HEAP32[$384>>2]|0;
$386 = ($385|0)==(2);
if ($386) {
$387 = $2;
$388 = ((($387)) + 40|0);
$389 = HEAP32[$388>>2]|0;
$390 = $2;
$391 = (__gcry_ecc_eddsa_encodepoint($389,$390,0,0,0,$encpk,$encpklen)|0);
$392 = ($391|0)!=(0);
if ($392) {
break;
}
$393 = HEAP32[$encpk>>2]|0;
$394 = HEAP32[$encpklen>>2]|0;
$395 = $394<<3;
$396 = (__gcry_mpi_set_opaque(0,$393,$395)|0);
$0 = $396;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
}
}
} while(0);
$0 = 0;
$397 = $0;
STACKTOP = sp;return ($397|0);
}
function __gcry_ecc_get_point($name,$ec) {
$name = $name|0;
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $name;
$2 = $ec;
$3 = $1;
$4 = (_strcmp($3,35595)|0);
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = $2;
$7 = ((($6)) + 28|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $2;
$11 = ((($10)) + 28|0);
$12 = HEAP32[$11>>2]|0;
$13 = (_point_copy($12)|0);
$0 = $13;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
}
$14 = $1;
$15 = (_strcmp($14,49895)|0);
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $2;
$18 = ((($17)) + 40|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)!=(0|0);
if (!($20)) {
$21 = $2;
$22 = (__gcry_ecc_compute_public(0,$21,0,0)|0);
$23 = $2;
$24 = ((($23)) + 40|0);
HEAP32[$24>>2] = $22;
}
$25 = $2;
$26 = ((($25)) + 40|0);
$27 = HEAP32[$26>>2]|0;
$28 = ($27|0)!=(0|0);
if ($28) {
$29 = $2;
$30 = ((($29)) + 40|0);
$31 = HEAP32[$30>>2]|0;
$32 = (_point_copy($31)|0);
$0 = $32;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
}
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
function _point_copy($point) {
$point = $point|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $newpoint = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $point;
$1 = $0;
$2 = ($1|0)!=(0|0);
if ($2) {
$3 = (__gcry_mpi_point_new(0)|0);
$newpoint = $3;
$4 = $newpoint;
$5 = $0;
_point_set($4,$5);
} else {
$newpoint = 0;
}
$6 = $newpoint;
STACKTOP = sp;return ($6|0);
}
function _point_set($d,$s) {
$d = $d|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
(__gcry_mpi_set($3,$5)|0);
$6 = $0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
(__gcry_mpi_set($8,$11)|0);
$12 = $0;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
(__gcry_mpi_set($14,$17)|0);
STACKTOP = sp;return;
}
function __gcry_ecc_eddsa_encodepoint($point,$ec,$x_in,$y_in,$with_prefix,$r_buffer,$r_buflen) {
$point = $point|0;
$ec = $ec|0;
$x_in = $x_in|0;
$y_in = $y_in|0;
$with_prefix = $with_prefix|0;
$r_buffer = $r_buffer|0;
$r_buflen = $r_buflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $rc = 0, $vararg_buffer = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $point;
$1 = $ec;
$2 = $x_in;
$3 = $y_in;
$4 = $with_prefix;
$5 = $r_buffer;
$6 = $r_buflen;
$7 = $2;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $2;
$11 = $9;
} else {
$10 = (__gcry_mpi_new(0)|0);
$11 = $10;
}
$x = $11;
$12 = $3;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = $3;
$16 = $14;
} else {
$15 = (__gcry_mpi_new(0)|0);
$16 = $15;
}
$y = $16;
$17 = $x;
$18 = $y;
$19 = $0;
$20 = $1;
$21 = (__gcry_mpi_ec_get_affine($17,$18,$19,$20)|0);
$22 = ($21|0)!=(0);
if ($22) {
__gcry_log_error(35723,$vararg_buffer);
$rc = 63;
} else {
$23 = $x;
$24 = $y;
$25 = $1;
$26 = ((($25)) + 12|0);
$27 = HEAP32[$26>>2]|0;
$28 = (($27>>>0) / 8)&-1;
$29 = $4;
$30 = $5;
$31 = $6;
$32 = (_eddsa_encode_x_y($23,$24,$28,$29,$30,$31)|0);
$rc = $32;
}
$33 = $2;
$34 = ($33|0)!=(0|0);
if (!($34)) {
$35 = $x;
__gcry_mpi_free($35);
}
$36 = $3;
$37 = ($36|0)!=(0|0);
if ($37) {
$39 = $rc;
STACKTOP = sp;return ($39|0);
}
$38 = $y;
__gcry_mpi_free($38);
$39 = $rc;
STACKTOP = sp;return ($39|0);
}
function _eddsa_encode_x_y($x,$y,$minlen,$with_prefix,$r_buffer,$r_buflen) {
$x = $x|0;
$y = $y|0;
$minlen = $minlen|0;
$with_prefix = $with_prefix|0;
$r_buffer = $r_buffer|0;
$r_buflen = $r_buflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $off = 0, $or$cond = 0, $rawmpi = 0, $rawmpilen = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$rawmpilen = sp + 4|0;
$1 = $x;
$2 = $y;
$3 = $minlen;
$4 = $with_prefix;
$5 = $r_buffer;
$6 = $r_buflen;
$7 = $4;
$8 = ($7|0)!=(0);
$9 = $8 ? 1 : 0;
$off = $9;
$10 = $2;
$11 = $3;
$12 = $off;
$13 = ($12|0)!=(0);
$14 = $13 ? -1 : 0;
$15 = (__gcry_mpi_get_buffer_extra($10,$11,$14,$rawmpilen,0)|0);
$rawmpi = $15;
$16 = $rawmpi;
$17 = ($16|0)!=(0|0);
if (!($17)) {
$18 = (_gpg_err_code_from_syserror()|0);
$0 = $18;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$19 = $1;
$20 = (__gcry_mpi_test_bit($19,0)|0);
$21 = ($20|0)!=(0);
$22 = HEAP32[$rawmpilen>>2]|0;
$23 = ($22|0)!=(0);
$or$cond = $21 & $23;
if ($or$cond) {
$24 = $off;
$25 = HEAP32[$rawmpilen>>2]|0;
$26 = (($24) + ($25))|0;
$27 = (($26) - 1)|0;
$28 = $rawmpi;
$29 = (($28) + ($27)|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
$32 = $31 | 128;
$33 = $32&255;
HEAP8[$29>>0] = $33;
}
$34 = $off;
$35 = ($34|0)!=(0);
if ($35) {
$36 = $rawmpi;
HEAP8[$36>>0] = 64;
}
$37 = $rawmpi;
$38 = $5;
HEAP32[$38>>2] = $37;
$39 = HEAP32[$rawmpilen>>2]|0;
$40 = $off;
$41 = (($39) + ($40))|0;
$42 = $6;
HEAP32[$42>>2] = $41;
$0 = 0;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
function __gcry_ecc_eddsa_ensure_compact($value,$nbits) {
$value = $value|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $buf = 0, $enc = 0, $enclen = 0, $rawmpilen = 0, $rc = 0;
var $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$rawmpilen = sp + 16|0;
$x = sp + 12|0;
$y = sp + 8|0;
$enc = sp + 4|0;
$enclen = sp;
$1 = $value;
$2 = $nbits;
$3 = $1;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $1;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7 & 4;
$9 = ($8|0)!=(0);
if ($9) {
$10 = $1;
$11 = (__gcry_mpi_get_opaque($10,$rawmpilen)|0);
$buf = $11;
$12 = $buf;
$13 = ($12|0)!=(0|0);
if (!($13)) {
$0 = 65;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$14 = HEAP32[$rawmpilen>>2]|0;
$15 = (($14) + 7)|0;
$16 = (($15>>>0) / 8)&-1;
HEAP32[$rawmpilen>>2] = $16;
$17 = HEAP32[$rawmpilen>>2]|0;
$18 = ($17>>>0)>(1);
do {
if ($18) {
$19 = HEAP32[$rawmpilen>>2]|0;
$20 = (($19>>>0) % 2)&-1;
$21 = ($20|0)!=(0);
if ($21) {
$22 = $buf;
$23 = HEAP8[$22>>0]|0;
$24 = $23&255;
$25 = ($24|0)==(4);
$26 = $buf;
if (!($25)) {
$62 = HEAP8[$26>>0]|0;
$63 = $62&255;
$64 = ($63|0)==(64);
if (!($64)) {
break;
}
$65 = $1;
$66 = $buf;
$67 = ((($66)) + 1|0);
$68 = HEAP32[$rawmpilen>>2]|0;
$69 = (($68) - 1)|0;
$70 = $69<<3;
$71 = (__gcry_mpi_set_opaque_copy($65,$67,$70)|0);
$72 = ($71|0)!=(0|0);
if ($72) {
break;
}
$73 = (_gpg_err_code_from_syserror()|0);
$0 = $73;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$27 = ((($26)) + 1|0);
$28 = HEAP32[$rawmpilen>>2]|0;
$29 = (($28) - 1)|0;
$30 = (($29>>>0) / 2)&-1;
$31 = (__gcry_mpi_scan($x,1,$27,$30,0)|0);
$rc = $31;
$32 = $rc;
$33 = ($32|0)!=(0);
if ($33) {
$34 = $rc;
$0 = $34;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$35 = $buf;
$36 = ((($35)) + 1|0);
$37 = HEAP32[$rawmpilen>>2]|0;
$38 = (($37) - 1)|0;
$39 = (($38>>>0) / 2)&-1;
$40 = (($36) + ($39)|0);
$41 = HEAP32[$rawmpilen>>2]|0;
$42 = (($41) - 1)|0;
$43 = (($42>>>0) / 2)&-1;
$44 = (__gcry_mpi_scan($y,1,$40,$43,0)|0);
$rc = $44;
$45 = $rc;
$46 = ($45|0)!=(0);
$47 = HEAP32[$x>>2]|0;
if ($46) {
__gcry_mpi_free($47);
$48 = $rc;
$0 = $48;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
$49 = HEAP32[$y>>2]|0;
$50 = $2;
$51 = (($50>>>0) / 8)&-1;
$52 = (_eddsa_encode_x_y($47,$49,$51,0,$enc,$enclen)|0);
$rc = $52;
$53 = HEAP32[$x>>2]|0;
__gcry_mpi_free($53);
$54 = HEAP32[$y>>2]|0;
__gcry_mpi_free($54);
$55 = $rc;
$56 = ($55|0)!=(0);
if (!($56)) {
$58 = $1;
$59 = HEAP32[$enc>>2]|0;
$60 = HEAP32[$enclen>>2]|0;
$61 = $60<<3;
(__gcry_mpi_set_opaque($58,$59,$61)|0);
break;
}
$57 = $rc;
$0 = $57;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
}
} while(0);
$0 = 0;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
}
$0 = 65;
$74 = $0;
STACKTOP = sp;return ($74|0);
}
function __gcry_ecc_eddsa_recover_x($x,$y,$sign,$ec) {
$x = $x|0;
$y = $y|0;
$sign = $sign|0;
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0;
var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0;
var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $rc = 0, $t = 0, $u = 0;
var $v = 0, $v3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $x;
$2 = $y;
$3 = $sign;
$4 = $ec;
$rc = 0;
$5 = $4;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(1);
if ($8) {
$0 = 69;
$136 = $0;
STACKTOP = sp;return ($136|0);
}
$9 = HEAP32[17700]|0;
$10 = ($9|0)!=(0|0);
if (!($10)) {
$11 = (_scanval_826(35776)|0);
HEAP32[17700] = $11;
}
$12 = HEAP32[17701]|0;
$13 = ($12|0)!=(0|0);
if (!($13)) {
$14 = (__gcry_mpi_set_ui(0,7)|0);
HEAP32[17701] = $14;
}
$15 = (__gcry_mpi_new(0)|0);
$u = $15;
$16 = (__gcry_mpi_new(0)|0);
$v = $16;
$17 = (__gcry_mpi_new(0)|0);
$v3 = $17;
$18 = (__gcry_mpi_new(0)|0);
$t = $18;
$19 = $u;
$20 = $2;
$21 = $2;
$22 = $4;
$23 = ((($22)) + 16|0);
$24 = HEAP32[$23>>2]|0;
__gcry_mpi_mulm($19,$20,$21,$24);
$25 = $v;
$26 = $4;
$27 = ((($26)) + 24|0);
$28 = HEAP32[$27>>2]|0;
$29 = $u;
$30 = $4;
$31 = ((($30)) + 16|0);
$32 = HEAP32[$31>>2]|0;
__gcry_mpi_mulm($25,$28,$29,$32);
$33 = $u;
$34 = $u;
__gcry_mpi_sub_ui($33,$34,1);
$35 = $v;
$36 = $v;
__gcry_mpi_add_ui($35,$36,1);
$37 = $v3;
$38 = $v;
$39 = (__gcry_mpi_const(3)|0);
$40 = $4;
$41 = ((($40)) + 16|0);
$42 = HEAP32[$41>>2]|0;
__gcry_mpi_powm($37,$38,$39,$42);
$43 = $t;
$44 = $v;
$45 = HEAP32[17701]|0;
$46 = $4;
$47 = ((($46)) + 16|0);
$48 = HEAP32[$47>>2]|0;
__gcry_mpi_powm($43,$44,$45,$48);
$49 = $t;
$50 = $t;
$51 = $u;
$52 = $4;
$53 = ((($52)) + 16|0);
$54 = HEAP32[$53>>2]|0;
__gcry_mpi_mulm($49,$50,$51,$54);
$55 = $t;
$56 = $t;
$57 = HEAP32[17700]|0;
$58 = $4;
$59 = ((($58)) + 16|0);
$60 = HEAP32[$59>>2]|0;
__gcry_mpi_powm($55,$56,$57,$60);
$61 = $t;
$62 = $t;
$63 = $u;
$64 = $4;
$65 = ((($64)) + 16|0);
$66 = HEAP32[$65>>2]|0;
__gcry_mpi_mulm($61,$62,$63,$66);
$67 = $1;
$68 = $t;
$69 = $v3;
$70 = $4;
$71 = ((($70)) + 16|0);
$72 = HEAP32[$71>>2]|0;
__gcry_mpi_mulm($67,$68,$69,$72);
$73 = $t;
$74 = $1;
$75 = $1;
$76 = $4;
$77 = ((($76)) + 16|0);
$78 = HEAP32[$77>>2]|0;
__gcry_mpi_mulm($73,$74,$75,$78);
$79 = $t;
$80 = $t;
$81 = $v;
$82 = $4;
$83 = ((($82)) + 16|0);
$84 = HEAP32[$83>>2]|0;
__gcry_mpi_mulm($79,$80,$81,$84);
$85 = $t;
$86 = $t;
__gcry_mpi_neg($85,$86);
$87 = $t;
$88 = $u;
$89 = (__gcry_mpi_cmp($87,$88)|0);
$90 = ($89|0)!=(0);
if (!($90)) {
$91 = HEAP32[17702]|0;
$92 = ($91|0)!=(0|0);
if (!($92)) {
$93 = (_scanval_826(35876)|0);
HEAP32[17702] = $93;
}
$94 = $1;
$95 = $1;
$96 = HEAP32[17702]|0;
$97 = $4;
$98 = ((($97)) + 16|0);
$99 = HEAP32[$98>>2]|0;
__gcry_mpi_mulm($94,$95,$96,$99);
$100 = $t;
$101 = $1;
$102 = $1;
$103 = $4;
$104 = ((($103)) + 16|0);
$105 = HEAP32[$104>>2]|0;
__gcry_mpi_mulm($100,$101,$102,$105);
$106 = $t;
$107 = $t;
$108 = $v;
$109 = $4;
$110 = ((($109)) + 16|0);
$111 = HEAP32[$110>>2]|0;
__gcry_mpi_mulm($106,$107,$108,$111);
$112 = $t;
$113 = $t;
__gcry_mpi_neg($112,$113);
$114 = $t;
$115 = $u;
$116 = (__gcry_mpi_cmp($114,$115)|0);
$117 = ($116|0)!=(0);
if (!($117)) {
$rc = 65;
}
}
$118 = $1;
$119 = (__gcry_mpi_test_bit($118,0)|0);
$120 = $3;
$121 = ($120|0)!=(0);
$122 = $121 ^ 1;
$123 = $122 ^ 1;
$124 = $123&1;
$125 = ($119|0)!=($124|0);
if ($125) {
$126 = $1;
$127 = $4;
$128 = ((($127)) + 16|0);
$129 = HEAP32[$128>>2]|0;
$130 = $1;
__gcry_mpi_sub($126,$129,$130);
}
$131 = $t;
__gcry_mpi_free($131);
$132 = $v3;
__gcry_mpi_free($132);
$133 = $v;
__gcry_mpi_free($133);
$134 = $u;
__gcry_mpi_free($134);
$135 = $rc;
$0 = $135;
$136 = $0;
STACKTOP = sp;return ($136|0);
}
function _scanval_826($string) {
$string = $string|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $rc = 0, $val = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$val = sp + 4|0;
$0 = $string;
$1 = $0;
$2 = (__gcry_mpi_scan($val,4,$1,0,0)|0);
$rc = $2;
$3 = $rc;
$4 = ($3|0)!=(0);
if ($4) {
$5 = $rc;
$6 = (_gpg_strerror($5)|0);
HEAP32[$vararg_buffer>>2] = $6;
__gcry_log_fatal(35841,$vararg_buffer);
// unreachable;
} else {
$7 = HEAP32[$val>>2]|0;
STACKTOP = sp;return ($7|0);
}
return (0)|0;
}
function __gcry_ecc_eddsa_decodepoint($pk,$ctx,$result,$r_encpk,$r_encpklen) {
$pk = $pk|0;
$ctx = $ctx|0;
$result = $result|0;
$r_encpk = $r_encpk|0;
$r_encpklen = $r_encpklen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $buf = 0, $or$cond = 0, $rawmpi = 0, $rawmpilen = 0, $rc = 0, $sign = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$rawmpilen = sp + 16|0;
$x = sp + 4|0;
$y = sp;
$1 = $pk;
$2 = $ctx;
$3 = $result;
$4 = $r_encpk;
$5 = $r_encpklen;
$6 = $1;
$7 = ($6|0)!=(0|0);
do {
if ($7) {
$8 = $1;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10 & 4;
$12 = ($11|0)!=(0);
if ($12) {
$13 = $1;
$14 = (__gcry_mpi_get_opaque($13,$rawmpilen)|0);
$buf = $14;
$15 = $buf;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$0 = 65;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
$17 = HEAP32[$rawmpilen>>2]|0;
$18 = (($17) + 7)|0;
$19 = (($18>>>0) / 8)&-1;
HEAP32[$rawmpilen>>2] = $19;
$20 = HEAP32[$rawmpilen>>2]|0;
$21 = ($20>>>0)>(1);
do {
if ($21) {
$22 = HEAP32[$rawmpilen>>2]|0;
$23 = (($22>>>0) % 2)&-1;
$24 = ($23|0)!=(0);
if ($24) {
$25 = $buf;
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
$28 = ($27|0)==(4);
$29 = $buf;
if (!($28)) {
$78 = HEAP8[$29>>0]|0;
$79 = $78&255;
$80 = ($79|0)==(64);
if (!($80)) {
break;
}
$81 = HEAP32[$rawmpilen>>2]|0;
$82 = (($81) + -1)|0;
HEAP32[$rawmpilen>>2] = $82;
$83 = $buf;
$84 = ((($83)) + 1|0);
$buf = $84;
break;
}
$30 = ((($29)) + 1|0);
$31 = HEAP32[$rawmpilen>>2]|0;
$32 = (($31) - 1)|0;
$33 = (($32>>>0) / 2)&-1;
$34 = (__gcry_mpi_scan($x,1,$30,$33,0)|0);
$rc = $34;
$35 = $rc;
$36 = ($35|0)!=(0);
if ($36) {
$37 = $rc;
$0 = $37;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
$38 = $buf;
$39 = ((($38)) + 1|0);
$40 = HEAP32[$rawmpilen>>2]|0;
$41 = (($40) - 1)|0;
$42 = (($41>>>0) / 2)&-1;
$43 = (($39) + ($42)|0);
$44 = HEAP32[$rawmpilen>>2]|0;
$45 = (($44) - 1)|0;
$46 = (($45>>>0) / 2)&-1;
$47 = (__gcry_mpi_scan($y,1,$43,$46,0)|0);
$rc = $47;
$48 = $rc;
$49 = ($48|0)!=(0);
if ($49) {
$50 = HEAP32[$x>>2]|0;
__gcry_mpi_free($50);
$51 = $rc;
$0 = $51;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
$52 = $4;
$53 = ($52|0)!=(0|0);
if ($53) {
$54 = HEAP32[$x>>2]|0;
$55 = HEAP32[$y>>2]|0;
$56 = $2;
$57 = ((($56)) + 12|0);
$58 = HEAP32[$57>>2]|0;
$59 = (($58>>>0) / 8)&-1;
$60 = $4;
$61 = $5;
$62 = (_eddsa_encode_x_y($54,$55,$59,0,$60,$61)|0);
$rc = $62;
$63 = $rc;
$64 = ($63|0)!=(0);
if ($64) {
$65 = HEAP32[$x>>2]|0;
__gcry_mpi_free($65);
$66 = HEAP32[$y>>2]|0;
__gcry_mpi_free($66);
$67 = $rc;
$0 = $67;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
}
$68 = $3;
$69 = HEAP32[$68>>2]|0;
$70 = HEAP32[$x>>2]|0;
__gcry_mpi_snatch($69,$70);
$71 = $3;
$72 = ((($71)) + 4|0);
$73 = HEAP32[$72>>2]|0;
$74 = HEAP32[$y>>2]|0;
__gcry_mpi_snatch($73,$74);
$75 = $3;
$76 = ((($75)) + 8|0);
$77 = HEAP32[$76>>2]|0;
(__gcry_mpi_set_ui($77,1)|0);
$0 = 0;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
}
} while(0);
$85 = HEAP32[$rawmpilen>>2]|0;
$86 = ($85|0)!=(0);
$87 = HEAP32[$rawmpilen>>2]|0;
$88 = $86 ? $87 : 1;
$89 = (__gcry_malloc($88)|0);
$rawmpi = $89;
$90 = $rawmpi;
$91 = ($90|0)!=(0|0);
if ($91) {
$93 = $rawmpi;
$94 = $buf;
$95 = HEAP32[$rawmpilen>>2]|0;
_memcpy(($93|0),($94|0),($95|0))|0;
$96 = $rawmpi;
$97 = HEAP32[$rawmpilen>>2]|0;
_reverse_buffer_831($96,$97);
break;
}
$92 = (_gpg_err_code_from_syserror()|0);
$0 = $92;
$159 = $0;
STACKTOP = sp;return ($159|0);
} else {
label = 21;
}
} else {
label = 21;
}
} while(0);
if ((label|0) == 21) {
$98 = $1;
$99 = $2;
$100 = ((($99)) + 12|0);
$101 = HEAP32[$100>>2]|0;
$102 = (($101>>>0) / 8)&-1;
$103 = (__gcry_mpi_get_buffer($98,$102,$rawmpilen,0)|0);
$rawmpi = $103;
$104 = $rawmpi;
$105 = ($104|0)!=(0|0);
if (!($105)) {
$106 = (_gpg_err_code_from_syserror()|0);
$0 = $106;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
}
$107 = HEAP32[$rawmpilen>>2]|0;
$108 = ($107|0)!=(0);
if ($108) {
$109 = $rawmpi;
$110 = HEAP8[$109>>0]|0;
$111 = $110&255;
$112 = $111 & 128;
$113 = ($112|0)!=(0);
$114 = $113 ^ 1;
$115 = $114 ^ 1;
$116 = $115&1;
$sign = $116;
$117 = $rawmpi;
$118 = HEAP8[$117>>0]|0;
$119 = $118&255;
$120 = $119 & 127;
$121 = $120&255;
HEAP8[$117>>0] = $121;
} else {
$sign = 0;
}
$122 = $3;
$123 = ((($122)) + 4|0);
$124 = HEAP32[$123>>2]|0;
$125 = $rawmpi;
$126 = HEAP32[$rawmpilen>>2]|0;
__gcry_mpi_set_buffer($124,$125,$126,0);
$127 = $4;
$128 = ($127|0)!=(0|0);
if ($128) {
$129 = $sign;
$130 = ($129|0)!=(0);
$131 = HEAP32[$rawmpilen>>2]|0;
$132 = ($131|0)!=(0);
$or$cond = $130 & $132;
if ($or$cond) {
$133 = $rawmpi;
$134 = HEAP8[$133>>0]|0;
$135 = $134&255;
$136 = $135 | 128;
$137 = $136&255;
HEAP8[$133>>0] = $137;
}
$138 = $rawmpi;
$139 = HEAP32[$rawmpilen>>2]|0;
_reverse_buffer_831($138,$139);
$140 = $rawmpi;
$141 = $4;
HEAP32[$141>>2] = $140;
$142 = $5;
$143 = ($142|0)!=(0|0);
if ($143) {
$144 = HEAP32[$rawmpilen>>2]|0;
$145 = $5;
HEAP32[$145>>2] = $144;
}
} else {
$146 = $rawmpi;
__gcry_free($146);
}
$147 = $3;
$148 = HEAP32[$147>>2]|0;
$149 = $3;
$150 = ((($149)) + 4|0);
$151 = HEAP32[$150>>2]|0;
$152 = $sign;
$153 = $2;
$154 = (__gcry_ecc_eddsa_recover_x($148,$151,$152,$153)|0);
$rc = $154;
$155 = $3;
$156 = ((($155)) + 8|0);
$157 = HEAP32[$156>>2]|0;
(__gcry_mpi_set_ui($157,1)|0);
$158 = $rc;
$0 = $158;
$159 = $0;
STACKTOP = sp;return ($159|0);
}
function _reverse_buffer_831($buffer,$length) {
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$i = 0;
while(1) {
$2 = $i;
$3 = $1;
$4 = (($3>>>0) / 2)&-1;
$5 = ($2>>>0)<($4>>>0);
if (!($5)) {
break;
}
$6 = $i;
$7 = $0;
$8 = (($7) + ($6)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$tmp = $10;
$11 = $1;
$12 = (($11) - 1)|0;
$13 = $i;
$14 = (($12) - ($13))|0;
$15 = $0;
$16 = (($15) + ($14)|0);
$17 = HEAP8[$16>>0]|0;
$18 = $i;
$19 = $0;
$20 = (($19) + ($18)|0);
HEAP8[$20>>0] = $17;
$21 = $tmp;
$22 = $21&255;
$23 = $1;
$24 = (($23) - 1)|0;
$25 = $i;
$26 = (($24) - ($25))|0;
$27 = $0;
$28 = (($27) + ($26)|0);
HEAP8[$28>>0] = $22;
$29 = $i;
$30 = (($29) + 1)|0;
$i = $30;
}
STACKTOP = sp;return;
}
function __gcry_ecc_eddsa_compute_h_d($r_digest,$d,$ec) {
$r_digest = $r_digest|0;
$d = $d|0;
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $digest = 0, $hashalgo = 0, $hvec = 0, $rawmpi = 0, $rawmpilen = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$rawmpilen = sp + 44|0;
$hvec = sp + 8|0;
$1 = $r_digest;
$2 = $d;
$3 = $ec;
$rawmpi = 0;
$4 = $1;
HEAP32[$4>>2] = 0;
$hashalgo = 10;
$5 = $hashalgo;
$6 = ($5|0)!=(10);
if ($6) {
$0 = 5;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
$7 = $3;
$8 = ((($7)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9) + 7)|0;
$11 = (($10>>>0) / 8)&-1;
$b = $11;
$12 = $b;
$13 = ($12|0)!=(32);
if ($13) {
$0 = 63;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
$14 = $b;
$15 = (__gcry_calloc_secure(2,$14)|0);
$digest = $15;
$16 = $digest;
$17 = ($16|0)!=(0|0);
if (!($17)) {
$18 = (_gpg_err_code_from_syserror()|0);
$0 = $18;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
;HEAP32[$hvec>>2]=0|0;HEAP32[$hvec+4>>2]=0|0;HEAP32[$hvec+8>>2]=0|0;HEAP32[$hvec+12>>2]=0|0;HEAP32[$hvec+16>>2]=0|0;HEAP32[$hvec+20>>2]=0|0;HEAP32[$hvec+24>>2]=0|0;HEAP32[$hvec+28>>2]=0|0;
$19 = $2;
$20 = (__gcry_mpi_get_buffer($19,0,$rawmpilen,0)|0);
$rawmpi = $20;
$21 = $rawmpi;
$22 = ($21|0)!=(0|0);
$23 = $digest;
if (!($22)) {
__gcry_free($23);
$24 = (_gpg_err_code_from_syserror()|0);
$0 = $24;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
$25 = ((($hvec)) + 12|0);
HEAP32[$25>>2] = $23;
$26 = ((($hvec)) + 4|0);
HEAP32[$26>>2] = 0;
$27 = $b;
$28 = HEAP32[$rawmpilen>>2]|0;
$29 = ($27>>>0)>($28>>>0);
if ($29) {
$30 = $b;
$31 = HEAP32[$rawmpilen>>2]|0;
$32 = (($30) - ($31))|0;
$34 = $32;
} else {
$34 = 0;
}
$33 = ((($hvec)) + 8|0);
HEAP32[$33>>2] = $34;
$35 = $rawmpi;
$36 = ((($hvec)) + 16|0);
$37 = ((($36)) + 12|0);
HEAP32[$37>>2] = $35;
$38 = ((($hvec)) + 16|0);
$39 = ((($38)) + 4|0);
HEAP32[$39>>2] = 0;
$40 = HEAP32[$rawmpilen>>2]|0;
$41 = ((($hvec)) + 16|0);
$42 = ((($41)) + 8|0);
HEAP32[$42>>2] = $40;
$43 = $hashalgo;
$44 = $digest;
$45 = (__gcry_md_hash_buffers($43,0,$44,$hvec,2)|0);
$rc = $45;
$46 = $rawmpi;
__gcry_free($46);
$47 = $rc;
$48 = ($47|0)!=(0);
$49 = $digest;
if ($48) {
__gcry_free($49);
$50 = $rc;
$0 = $50;
$66 = $0;
STACKTOP = sp;return ($66|0);
} else {
_reverse_buffer_831($49,32);
$51 = $digest;
$52 = HEAP8[$51>>0]|0;
$53 = $52&255;
$54 = $53 & 127;
$55 = $54 | 64;
$56 = $55&255;
$57 = $digest;
HEAP8[$57>>0] = $56;
$58 = $digest;
$59 = ((($58)) + 31|0);
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = $61 & 248;
$63 = $62&255;
HEAP8[$59>>0] = $63;
$64 = $digest;
$65 = $1;
HEAP32[$65>>2] = $64;
$0 = 0;
$66 = $0;
STACKTOP = sp;return ($66|0);
}
return (0)|0;
}
function __gcry_ecc_eddsa_genkey($sk,$E,$ctx,$flags) {
$sk = $sk|0;
$E = $E|0;
$ctx = $ctx|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $Q = 0, $a = 0, $b = 0, $dbuf = 0, $dlen = 0, $hash_d = 0, $hvec = 0, $random_level = 0, $rc = 0;
var $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$Q = sp + 36|0;
$hvec = sp + 8|0;
$0 = $sk;
$1 = $E;
$2 = $ctx;
$3 = $flags;
$b = 32;
$hash_d = 0;
__gcry_mpi_point_init($Q);
;HEAP32[$hvec>>2]=0|0;HEAP32[$hvec+4>>2]=0|0;HEAP32[$hvec+8>>2]=0|0;HEAP32[$hvec+12>>2]=0|0;
$4 = $3;
$5 = $4 & 32;
$6 = ($5|0)!=(0);
if ($6) {
$random_level = 1;
} else {
$random_level = 2;
}
$7 = (__gcry_mpi_snew(0)|0);
$a = $7;
$8 = (__gcry_mpi_new(0)|0);
$x = $8;
$9 = (__gcry_mpi_new(0)|0);
$y = $9;
$10 = $b;
$11 = $10<<1;
$12 = (__gcry_malloc_secure($11)|0);
$hash_d = $12;
$13 = $hash_d;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$15 = (_gpg_error_from_syserror()|0);
$rc = $15;
__gcry_mpi_point_free_parts($Q);
$106 = $a;
__gcry_mpi_release($106);
$107 = $x;
__gcry_mpi_release($107);
$108 = $y;
__gcry_mpi_release($108);
$109 = $hash_d;
__gcry_free($109);
$110 = $rc;
STACKTOP = sp;return ($110|0);
}
$16 = $b;
$dlen = $16;
$17 = $dlen;
$18 = $random_level;
$19 = (__gcry_random_bytes_secure($17,$18)|0);
$dbuf = $19;
$20 = $dbuf;
$21 = ((($hvec)) + 12|0);
HEAP32[$21>>2] = $20;
$22 = $dlen;
$23 = ((($hvec)) + 8|0);
HEAP32[$23>>2] = $22;
$24 = $hash_d;
$25 = (__gcry_md_hash_buffers(10,0,$24,$hvec,1)|0);
$rc = $25;
$26 = $rc;
$27 = ($26|0)!=(0);
if ($27) {
__gcry_mpi_point_free_parts($Q);
$106 = $a;
__gcry_mpi_release($106);
$107 = $x;
__gcry_mpi_release($107);
$108 = $y;
__gcry_mpi_release($108);
$109 = $hash_d;
__gcry_free($109);
$110 = $rc;
STACKTOP = sp;return ($110|0);
}
$28 = $dbuf;
$29 = $dlen;
$30 = $29<<3;
$31 = (__gcry_mpi_set_opaque(0,$28,$30)|0);
$32 = $0;
$33 = ((($32)) + 56|0);
HEAP32[$33>>2] = $31;
$dbuf = 0;
$34 = $hash_d;
_reverse_buffer_831($34,32);
$35 = $hash_d;
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = $37 & 127;
$39 = $38 | 64;
$40 = $39&255;
$41 = $hash_d;
HEAP8[$41>>0] = $40;
$42 = $hash_d;
$43 = ((($42)) + 31|0);
$44 = HEAP8[$43>>0]|0;
$45 = $44&255;
$46 = $45 & 248;
$47 = $46&255;
HEAP8[$43>>0] = $47;
$48 = $a;
$49 = $hash_d;
__gcry_mpi_set_buffer($48,$49,32,0);
$50 = $hash_d;
__gcry_free($50);
$hash_d = 0;
$51 = $a;
$52 = $1;
$53 = ((($52)) + 20|0);
$54 = $2;
__gcry_mpi_ec_mul_point($Q,$51,$53,$54);
$55 = (__gcry_get_debug_flag(1)|0);
$56 = ($55|0)!=(0);
if ($56) {
$57 = $2;
__gcry_mpi_point_log(35941,$Q,$57);
}
$58 = $1;
$59 = HEAP32[$58>>2]|0;
$60 = $0;
HEAP32[$60>>2] = $59;
$61 = $1;
$62 = ((($61)) + 4|0);
$63 = HEAP32[$62>>2]|0;
$64 = $0;
$65 = ((($64)) + 4|0);
HEAP32[$65>>2] = $63;
$66 = $1;
$67 = ((($66)) + 8|0);
$68 = HEAP32[$67>>2]|0;
$69 = (__gcry_mpi_copy($68)|0);
$70 = $0;
$71 = ((($70)) + 8|0);
HEAP32[$71>>2] = $69;
$72 = $1;
$73 = ((($72)) + 12|0);
$74 = HEAP32[$73>>2]|0;
$75 = (__gcry_mpi_copy($74)|0);
$76 = $0;
$77 = ((($76)) + 12|0);
HEAP32[$77>>2] = $75;
$78 = $1;
$79 = ((($78)) + 16|0);
$80 = HEAP32[$79>>2]|0;
$81 = (__gcry_mpi_copy($80)|0);
$82 = $0;
$83 = ((($82)) + 16|0);
HEAP32[$83>>2] = $81;
$84 = $0;
$85 = ((($84)) + 20|0);
__gcry_mpi_point_init($85);
$86 = $0;
$87 = ((($86)) + 20|0);
$88 = $1;
$89 = ((($88)) + 20|0);
_point_set_835($87,$89);
$90 = $1;
$91 = ((($90)) + 32|0);
$92 = HEAP32[$91>>2]|0;
$93 = (__gcry_mpi_copy($92)|0);
$94 = $0;
$95 = ((($94)) + 32|0);
HEAP32[$95>>2] = $93;
$96 = $1;
$97 = ((($96)) + 36|0);
$98 = HEAP32[$97>>2]|0;
$99 = (__gcry_mpi_copy($98)|0);
$100 = $0;
$101 = ((($100)) + 36|0);
HEAP32[$101>>2] = $99;
$102 = $0;
$103 = ((($102)) + 44|0);
__gcry_mpi_point_init($103);
$104 = $0;
$105 = ((($104)) + 44|0);
_point_set_835($105,$Q);
__gcry_mpi_point_free_parts($Q);
$106 = $a;
__gcry_mpi_release($106);
$107 = $x;
__gcry_mpi_release($107);
$108 = $y;
__gcry_mpi_release($108);
$109 = $hash_d;
__gcry_free($109);
$110 = $rc;
STACKTOP = sp;return ($110|0);
}
function _gpg_error_from_syserror() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_gpg_err_code_from_syserror()|0);
$1 = (_gpg_error_832($0)|0);
return ($1|0);
}
function _gpg_error_832($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_833(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make_833($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function _point_set_835($d,$s) {
$d = $d|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
(__gcry_mpi_set($3,$5)|0);
$6 = $0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
(__gcry_mpi_set($8,$11)|0);
$12 = $0;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
(__gcry_mpi_set($14,$17)|0);
STACKTOP = sp;return;
}
function __gcry_ecc_eddsa_sign($input,$skey,$r_r,$s,$hashalgo,$pk) {
$input = $input|0;
$skey = $skey|0;
$r_r = $r_r|0;
$s = $s|0;
$hashalgo = $hashalgo|0;
$pk = $pk|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $I = 0, $Q = 0, $a = 0, $b = 0, $ctx = 0;
var $digest = 0, $encpk = 0, $encpklen = 0, $hvec = 0, $mbuf = 0, $mlen = 0, $r = 0, $rawmpi = 0, $rawmpilen = 0, $rc = 0, $tmp = 0, $x = 0, $y = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp + 116|0;
$digest = sp + 112|0;
$hvec = sp + 64|0;
$rawmpi = sp + 52|0;
$rawmpilen = sp + 48|0;
$encpk = sp + 44|0;
$encpklen = sp + 40|0;
$I = sp + 28|0;
$Q = sp + 16|0;
$1 = $input;
$2 = $skey;
$3 = $r_r;
$4 = $s;
$5 = $hashalgo;
$6 = $pk;
$ctx = 0;
HEAP32[$rawmpi>>2] = 0;
HEAP32[$encpk>>2] = 0;
dest=$hvec; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$7 = $1;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $1;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = $11 & 4;
$13 = ($12|0)!=(0);
if ($13) {
__gcry_mpi_point_init($I);
__gcry_mpi_point_init($Q);
$14 = (__gcry_mpi_snew(0)|0);
$a = $14;
$15 = (__gcry_mpi_new(0)|0);
$x = $15;
$16 = (__gcry_mpi_new(0)|0);
$y = $16;
$17 = (__gcry_mpi_new(0)|0);
$r = $17;
$18 = $2;
$19 = HEAP32[$18>>2]|0;
$20 = $2;
$21 = ((($20)) + 4|0);
$22 = HEAP32[$21>>2]|0;
$23 = $2;
$24 = ((($23)) + 8|0);
$25 = HEAP32[$24>>2]|0;
$26 = $2;
$27 = ((($26)) + 12|0);
$28 = HEAP32[$27>>2]|0;
$29 = $2;
$30 = ((($29)) + 16|0);
$31 = HEAP32[$30>>2]|0;
$32 = (__gcry_mpi_ec_p_internal_new($19,$22,0,$25,$28,$31)|0);
$ctx = $32;
$33 = $ctx;
$34 = ((($33)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = (($35) + 7)|0;
$37 = (($36>>>0) / 8)&-1;
$b = $37;
$38 = $b;
$39 = ($38|0)!=(32);
if ($39) {
$0 = 63;
$194 = $0;
STACKTOP = sp;return ($194|0);
}
$40 = $2;
$41 = ((($40)) + 56|0);
$42 = HEAP32[$41>>2]|0;
$43 = $ctx;
$44 = (__gcry_ecc_eddsa_compute_h_d($digest,$42,$43)|0);
$rc = $44;
$45 = $rc;
$46 = ($45|0)!=(0);
do {
if (!($46)) {
$47 = $a;
$48 = HEAP32[$digest>>2]|0;
__gcry_mpi_set_buffer($47,$48,32,0);
$49 = $6;
$50 = ($49|0)!=(0|0);
if ($50) {
$51 = $6;
$52 = $ctx;
$53 = (__gcry_ecc_eddsa_decodepoint($51,$52,$Q,$encpk,$encpklen)|0);
$rc = $53;
$54 = $rc;
$55 = ($54|0)!=(0);
if ($55) {
break;
}
$56 = (__gcry_get_debug_flag(1)|0);
$57 = ($56|0)!=(0);
if ($57) {
$58 = HEAP32[$encpk>>2]|0;
$59 = HEAP32[$encpklen>>2]|0;
__gcry_log_printhex(35955,$58,$59);
}
$60 = $ctx;
$61 = (__gcry_mpi_ec_curve_point($Q,$60)|0);
$62 = ($61|0)!=(0);
if (!($62)) {
$rc = 195;
break;
}
} else {
$63 = $a;
$64 = $2;
$65 = ((($64)) + 20|0);
$66 = $ctx;
__gcry_mpi_ec_mul_point($Q,$63,$65,$66);
$67 = $ctx;
$68 = $x;
$69 = $y;
$70 = (__gcry_ecc_eddsa_encodepoint($Q,$67,$68,$69,0,$encpk,$encpklen)|0);
$rc = $70;
$71 = $rc;
$72 = ($71|0)!=(0);
if ($72) {
break;
}
$73 = (__gcry_get_debug_flag(1)|0);
$74 = ($73|0)!=(0);
if ($74) {
$75 = HEAP32[$encpk>>2]|0;
$76 = HEAP32[$encpklen>>2]|0;
__gcry_log_printhex(35962,$75,$76);
}
}
$77 = $1;
$78 = (__gcry_mpi_get_opaque($77,$tmp)|0);
$mbuf = $78;
$79 = HEAP32[$tmp>>2]|0;
$80 = (($79) + 7)|0;
$81 = (($80>>>0) / 8)&-1;
$mlen = $81;
$82 = (__gcry_get_debug_flag(1)|0);
$83 = ($82|0)!=(0);
if ($83) {
$84 = $mbuf;
$85 = $mlen;
__gcry_log_printhex(35969,$84,$85);
}
$86 = HEAP32[$digest>>2]|0;
$87 = ((($hvec)) + 12|0);
HEAP32[$87>>2] = $86;
$88 = ((($hvec)) + 4|0);
HEAP32[$88>>2] = 32;
$89 = ((($hvec)) + 8|0);
HEAP32[$89>>2] = 32;
$90 = $mbuf;
$91 = ((($hvec)) + 16|0);
$92 = ((($91)) + 12|0);
HEAP32[$92>>2] = $90;
$93 = $mlen;
$94 = ((($hvec)) + 16|0);
$95 = ((($94)) + 8|0);
HEAP32[$95>>2] = $93;
$96 = $5;
$97 = HEAP32[$digest>>2]|0;
$98 = (__gcry_md_hash_buffers($96,0,$97,$hvec,2)|0);
$rc = $98;
$99 = $rc;
$100 = ($99|0)!=(0);
if (!($100)) {
$101 = HEAP32[$digest>>2]|0;
_reverse_buffer_831($101,64);
$102 = (__gcry_get_debug_flag(1)|0);
$103 = ($102|0)!=(0);
if ($103) {
$104 = HEAP32[$digest>>2]|0;
__gcry_log_printhex(53390,$104,64);
}
$105 = $r;
$106 = HEAP32[$digest>>2]|0;
__gcry_mpi_set_buffer($105,$106,64,0);
$107 = $r;
$108 = $2;
$109 = ((($108)) + 20|0);
$110 = $ctx;
__gcry_mpi_ec_mul_point($I,$107,$109,$110);
$111 = (__gcry_get_debug_flag(1)|0);
$112 = ($111|0)!=(0);
if ($112) {
$113 = $ctx;
__gcry_mpi_point_log(35976,$I,$113);
}
$114 = $ctx;
$115 = $x;
$116 = $y;
$117 = (__gcry_ecc_eddsa_encodepoint($I,$114,$115,$116,0,$rawmpi,$rawmpilen)|0);
$rc = $117;
$118 = $rc;
$119 = ($118|0)!=(0);
if (!($119)) {
$120 = (__gcry_get_debug_flag(1)|0);
$121 = ($120|0)!=(0);
if ($121) {
$122 = HEAP32[$rawmpi>>2]|0;
$123 = HEAP32[$rawmpilen>>2]|0;
__gcry_log_printhex(35981,$122,$123);
}
$124 = HEAP32[$rawmpi>>2]|0;
$125 = ((($hvec)) + 12|0);
HEAP32[$125>>2] = $124;
$126 = ((($hvec)) + 4|0);
HEAP32[$126>>2] = 0;
$127 = HEAP32[$rawmpilen>>2]|0;
$128 = ((($hvec)) + 8|0);
HEAP32[$128>>2] = $127;
$129 = HEAP32[$encpk>>2]|0;
$130 = ((($hvec)) + 16|0);
$131 = ((($130)) + 12|0);
HEAP32[$131>>2] = $129;
$132 = ((($hvec)) + 16|0);
$133 = ((($132)) + 4|0);
HEAP32[$133>>2] = 0;
$134 = HEAP32[$encpklen>>2]|0;
$135 = ((($hvec)) + 16|0);
$136 = ((($135)) + 8|0);
HEAP32[$136>>2] = $134;
$137 = $mbuf;
$138 = ((($hvec)) + 32|0);
$139 = ((($138)) + 12|0);
HEAP32[$139>>2] = $137;
$140 = ((($hvec)) + 32|0);
$141 = ((($140)) + 4|0);
HEAP32[$141>>2] = 0;
$142 = $mlen;
$143 = ((($hvec)) + 32|0);
$144 = ((($143)) + 8|0);
HEAP32[$144>>2] = $142;
$145 = $5;
$146 = HEAP32[$digest>>2]|0;
$147 = (__gcry_md_hash_buffers($145,0,$146,$hvec,3)|0);
$rc = $147;
$148 = $rc;
$149 = ($148|0)!=(0);
if (!($149)) {
$150 = $3;
$151 = HEAP32[$rawmpi>>2]|0;
$152 = HEAP32[$rawmpilen>>2]|0;
$153 = $152<<3;
(__gcry_mpi_set_opaque($150,$151,$153)|0);
HEAP32[$rawmpi>>2] = 0;
$154 = HEAP32[$digest>>2]|0;
_reverse_buffer_831($154,64);
$155 = (__gcry_get_debug_flag(1)|0);
$156 = ($155|0)!=(0);
if ($156) {
$157 = HEAP32[$digest>>2]|0;
__gcry_log_printhex(35988,$157,64);
}
$158 = $4;
$159 = HEAP32[$digest>>2]|0;
__gcry_mpi_set_buffer($158,$159,64,0);
$160 = $4;
$161 = $4;
$162 = $a;
$163 = $2;
$164 = ((($163)) + 32|0);
$165 = HEAP32[$164>>2]|0;
__gcry_mpi_mulm($160,$161,$162,$165);
$166 = $4;
$167 = $4;
$168 = $r;
$169 = $2;
$170 = ((($169)) + 32|0);
$171 = HEAP32[$170>>2]|0;
__gcry_mpi_addm($166,$167,$168,$171);
$172 = $4;
$173 = $b;
$174 = (_eddsa_encodempi($172,$173,$rawmpi,$rawmpilen)|0);
$rc = $174;
$175 = $rc;
$176 = ($175|0)!=(0);
if (!($176)) {
$177 = (__gcry_get_debug_flag(1)|0);
$178 = ($177|0)!=(0);
if ($178) {
$179 = HEAP32[$rawmpi>>2]|0;
$180 = HEAP32[$rawmpilen>>2]|0;
__gcry_log_printhex(35995,$179,$180);
}
$181 = $4;
$182 = HEAP32[$rawmpi>>2]|0;
$183 = HEAP32[$rawmpilen>>2]|0;
$184 = $183<<3;
(__gcry_mpi_set_opaque($181,$182,$184)|0);
HEAP32[$rawmpi>>2] = 0;
$rc = 0;
}
}
}
}
}
} while(0);
$185 = $a;
__gcry_mpi_release($185);
$186 = $x;
__gcry_mpi_release($186);
$187 = $y;
__gcry_mpi_release($187);
$188 = $r;
__gcry_mpi_release($188);
$189 = HEAP32[$digest>>2]|0;
__gcry_free($189);
$190 = $ctx;
__gcry_mpi_ec_free($190);
__gcry_mpi_point_free_parts($I);
__gcry_mpi_point_free_parts($Q);
$191 = HEAP32[$encpk>>2]|0;
__gcry_free($191);
$192 = HEAP32[$rawmpi>>2]|0;
__gcry_free($192);
$193 = $rc;
$0 = $193;
$194 = $0;
STACKTOP = sp;return ($194|0);
}
}
$0 = 79;
$194 = $0;
STACKTOP = sp;return ($194|0);
}
function _eddsa_encodempi($mpi,$minlen,$r_buffer,$r_buflen) {
$mpi = $mpi|0;
$minlen = $minlen|0;
$r_buffer = $r_buffer|0;
$r_buflen = $r_buflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rawmpi = 0, $rawmpilen = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$rawmpilen = sp;
$1 = $mpi;
$2 = $minlen;
$3 = $r_buffer;
$4 = $r_buflen;
$5 = $1;
$6 = $2;
$7 = (__gcry_mpi_get_buffer($5,$6,$rawmpilen,0)|0);
$rawmpi = $7;
$8 = $rawmpi;
$9 = ($8|0)!=(0|0);
if ($9) {
$11 = $rawmpi;
$12 = $3;
HEAP32[$12>>2] = $11;
$13 = HEAP32[$rawmpilen>>2]|0;
$14 = $4;
HEAP32[$14>>2] = $13;
$0 = 0;
$15 = $0;
STACKTOP = sp;return ($15|0);
} else {
$10 = (_gpg_err_code_from_syserror()|0);
$0 = $10;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
return (0)|0;
}
function __gcry_ecc_eddsa_verify($input,$pkey,$r_in,$s_in,$hashalgo,$pk) {
$input = $input|0;
$pkey = $pkey|0;
$r_in = $r_in|0;
$s_in = $s_in|0;
$hashalgo = $hashalgo|0;
$pk = $pk|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $Ia = 0, $Ib = 0, $Q = 0, $b = 0, $ctx = 0, $digest = 0, $encpk = 0, $encpklen = 0, $h = 0, $hvec = 0, $mbuf = 0, $mlen = 0, $or$cond = 0, $or$cond3 = 0, $rbuf = 0;
var $rc = 0, $rlen = 0, $s = 0, $sbuf = 0, $slen = 0, $tbuf = 0, $tlen = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp + 132|0;
$Q = sp + 120|0;
$encpk = sp + 116|0;
$encpklen = sp + 112|0;
$tbuf = sp + 100|0;
$tlen = sp + 88|0;
$digest = sp + 176|0;
$hvec = sp + 40|0;
$Ia = sp + 20|0;
$Ib = sp + 8|0;
$1 = $input;
$2 = $pkey;
$3 = $r_in;
$4 = $s_in;
$5 = $hashalgo;
$6 = $pk;
$ctx = 0;
HEAP32[$encpk>>2] = 0;
HEAP32[$tbuf>>2] = 0;
$7 = $1;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $1;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = $11 & 4;
$13 = ($12|0)!=(0);
$14 = $3;
$15 = ($14|0)!=(0|0);
$or$cond = $13 & $15;
if ($or$cond) {
$16 = $3;
$17 = ((($16)) + 12|0);
$18 = HEAP32[$17>>2]|0;
$19 = $18 & 4;
$20 = ($19|0)!=(0);
$21 = $4;
$22 = ($21|0)!=(0|0);
$or$cond3 = $20 & $22;
if ($or$cond3) {
$23 = $4;
$24 = ((($23)) + 12|0);
$25 = HEAP32[$24>>2]|0;
$26 = $25 & 4;
$27 = ($26|0)!=(0);
if ($27) {
$28 = $5;
$29 = ($28|0)!=(10);
if ($29) {
$0 = 5;
$164 = $0;
STACKTOP = sp;return ($164|0);
}
__gcry_mpi_point_init($Q);
__gcry_mpi_point_init($Ia);
__gcry_mpi_point_init($Ib);
$30 = (__gcry_mpi_new(0)|0);
$h = $30;
$31 = (__gcry_mpi_new(0)|0);
$s = $31;
$32 = $2;
$33 = HEAP32[$32>>2]|0;
$34 = $2;
$35 = ((($34)) + 4|0);
$36 = HEAP32[$35>>2]|0;
$37 = $2;
$38 = ((($37)) + 8|0);
$39 = HEAP32[$38>>2]|0;
$40 = $2;
$41 = ((($40)) + 12|0);
$42 = HEAP32[$41>>2]|0;
$43 = $2;
$44 = ((($43)) + 16|0);
$45 = HEAP32[$44>>2]|0;
$46 = (__gcry_mpi_ec_p_internal_new($33,$36,0,$39,$42,$45)|0);
$ctx = $46;
$47 = $ctx;
$48 = ((($47)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = (($49>>>0) / 8)&-1;
$b = $50;
$51 = $b;
$52 = ($51|0)!=(32);
if ($52) {
$0 = 63;
$164 = $0;
STACKTOP = sp;return ($164|0);
}
$53 = $6;
$54 = $ctx;
$55 = (__gcry_ecc_eddsa_decodepoint($53,$54,$Q,$encpk,$encpklen)|0);
$rc = $55;
$56 = $rc;
$57 = ($56|0)!=(0);
L14: do {
if (!($57)) {
$58 = $ctx;
$59 = (__gcry_mpi_ec_curve_point($Q,$58)|0);
$60 = ($59|0)!=(0);
if (!($60)) {
$rc = 195;
break;
}
$61 = (__gcry_get_debug_flag(1)|0);
$62 = ($61|0)!=(0);
if ($62) {
$63 = HEAP32[$encpk>>2]|0;
$64 = HEAP32[$encpklen>>2]|0;
__gcry_log_printhex(35962,$63,$64);
}
$65 = HEAP32[$encpklen>>2]|0;
$66 = $b;
$67 = ($65|0)!=($66|0);
if ($67) {
$rc = 139;
break;
}
$68 = $1;
$69 = (__gcry_mpi_get_opaque($68,$tmp)|0);
$mbuf = $69;
$70 = HEAP32[$tmp>>2]|0;
$71 = (($70) + 7)|0;
$72 = (($71>>>0) / 8)&-1;
$mlen = $72;
$73 = (__gcry_get_debug_flag(1)|0);
$74 = ($73|0)!=(0);
if ($74) {
$75 = $mbuf;
$76 = $mlen;
__gcry_log_printhex(35969,$75,$76);
}
$77 = $3;
$78 = (__gcry_mpi_get_opaque($77,$tmp)|0);
$rbuf = $78;
$79 = HEAP32[$tmp>>2]|0;
$80 = (($79) + 7)|0;
$81 = (($80>>>0) / 8)&-1;
$rlen = $81;
$82 = (__gcry_get_debug_flag(1)|0);
$83 = ($82|0)!=(0);
if ($83) {
$84 = $rbuf;
$85 = $rlen;
__gcry_log_printhex(53390,$84,$85);
}
$86 = $rlen;
$87 = $b;
$88 = ($86|0)!=($87|0);
if ($88) {
$rc = 139;
break;
}
$89 = $rbuf;
$90 = ((($hvec)) + 12|0);
HEAP32[$90>>2] = $89;
$91 = ((($hvec)) + 4|0);
HEAP32[$91>>2] = 0;
$92 = $rlen;
$93 = ((($hvec)) + 8|0);
HEAP32[$93>>2] = $92;
$94 = HEAP32[$encpk>>2]|0;
$95 = ((($hvec)) + 16|0);
$96 = ((($95)) + 12|0);
HEAP32[$96>>2] = $94;
$97 = ((($hvec)) + 16|0);
$98 = ((($97)) + 4|0);
HEAP32[$98>>2] = 0;
$99 = HEAP32[$encpklen>>2]|0;
$100 = ((($hvec)) + 16|0);
$101 = ((($100)) + 8|0);
HEAP32[$101>>2] = $99;
$102 = $mbuf;
$103 = ((($hvec)) + 32|0);
$104 = ((($103)) + 12|0);
HEAP32[$104>>2] = $102;
$105 = ((($hvec)) + 32|0);
$106 = ((($105)) + 4|0);
HEAP32[$106>>2] = 0;
$107 = $mlen;
$108 = ((($hvec)) + 32|0);
$109 = ((($108)) + 8|0);
HEAP32[$109>>2] = $107;
$110 = $5;
$111 = (__gcry_md_hash_buffers($110,0,$digest,$hvec,3)|0);
$rc = $111;
$112 = $rc;
$113 = ($112|0)!=(0);
if (!($113)) {
_reverse_buffer_831($digest,64);
$114 = (__gcry_get_debug_flag(1)|0);
$115 = ($114|0)!=(0);
if ($115) {
__gcry_log_printhex(35988,$digest,64);
}
$116 = $h;
__gcry_mpi_set_buffer($116,$digest,64,0);
$117 = $4;
$118 = (__gcry_mpi_get_opaque_copy($117,$tmp)|0);
$sbuf = $118;
$119 = HEAP32[$tmp>>2]|0;
$120 = (($119) + 7)|0;
$121 = (($120>>>0) / 8)&-1;
$slen = $121;
$122 = $sbuf;
$123 = $slen;
_reverse_buffer_831($122,$123);
$124 = (__gcry_get_debug_flag(1)|0);
$125 = ($124|0)!=(0);
if ($125) {
$126 = $sbuf;
$127 = $slen;
__gcry_log_printhex(53397,$126,$127);
}
$128 = $s;
$129 = $sbuf;
$130 = $slen;
__gcry_mpi_set_buffer($128,$129,$130,0);
$131 = $sbuf;
__gcry_free($131);
$132 = $slen;
$133 = $b;
$134 = ($132|0)!=($133|0);
if ($134) {
$rc = 139;
break;
}
$135 = $s;
$136 = $2;
$137 = ((($136)) + 20|0);
$138 = $ctx;
__gcry_mpi_ec_mul_point($Ia,$135,$137,$138);
$139 = $h;
$140 = $ctx;
__gcry_mpi_ec_mul_point($Ib,$139,$Q,$140);
$141 = HEAP32[$Ib>>2]|0;
$142 = HEAP32[$Ib>>2]|0;
__gcry_mpi_neg($141,$142);
$143 = $ctx;
__gcry_mpi_ec_add_points($Ia,$Ia,$Ib,$143);
$144 = $ctx;
$145 = $s;
$146 = $h;
$147 = (__gcry_ecc_eddsa_encodepoint($Ia,$144,$145,$146,0,$tbuf,$tlen)|0);
$rc = $147;
$148 = $rc;
$149 = ($148|0)!=(0);
if (!($149)) {
$150 = HEAP32[$tlen>>2]|0;
$151 = $rlen;
$152 = ($150|0)!=($151|0);
do {
if (!($152)) {
$153 = HEAP32[$tbuf>>2]|0;
$154 = $rbuf;
$155 = HEAP32[$tlen>>2]|0;
$156 = (_memcmp($153,$154,$155)|0);
$157 = ($156|0)!=(0);
if ($157) {
break;
}
$rc = 0;
break L14;
}
} while(0);
$rc = 8;
}
}
}
} while(0);
$158 = HEAP32[$encpk>>2]|0;
__gcry_free($158);
$159 = HEAP32[$tbuf>>2]|0;
__gcry_free($159);
$160 = $ctx;
__gcry_mpi_ec_free($160);
$161 = $s;
__gcry_mpi_release($161);
$162 = $h;
__gcry_mpi_release($162);
__gcry_mpi_point_free_parts($Ia);
__gcry_mpi_point_free_parts($Ib);
__gcry_mpi_point_free_parts($Q);
$163 = $rc;
$0 = $163;
$164 = $0;
STACKTOP = sp;return ($164|0);
}
}
}
}
$0 = 79;
$164 = $0;
STACKTOP = sp;return ($164|0);
}
function __gcry_ecc_curve_free($E) {
$E = $E|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $E;
$1 = $0;
$2 = ((($1)) + 8|0);
$3 = HEAP32[$2>>2]|0;
__gcry_mpi_free($3);
$4 = $0;
$5 = ((($4)) + 8|0);
HEAP32[$5>>2] = 0;
$6 = $0;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
__gcry_mpi_free($8);
$9 = $0;
$10 = ((($9)) + 12|0);
HEAP32[$10>>2] = 0;
$11 = $0;
$12 = ((($11)) + 16|0);
$13 = HEAP32[$12>>2]|0;
__gcry_mpi_free($13);
$14 = $0;
$15 = ((($14)) + 16|0);
HEAP32[$15>>2] = 0;
$16 = $0;
$17 = ((($16)) + 20|0);
__gcry_mpi_point_free_parts($17);
$18 = $0;
$19 = ((($18)) + 32|0);
$20 = HEAP32[$19>>2]|0;
__gcry_mpi_free($20);
$21 = $0;
$22 = ((($21)) + 32|0);
HEAP32[$22>>2] = 0;
$23 = $0;
$24 = ((($23)) + 36|0);
$25 = HEAP32[$24>>2]|0;
__gcry_mpi_free($25);
$26 = $0;
$27 = ((($26)) + 36|0);
HEAP32[$27>>2] = 0;
STACKTOP = sp;return;
}
function __gcry_ecc_curve_copy($agg$result,$E) {
$agg$result = $agg$result|0;
$E = $E|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $R = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$R = sp;
$0 = HEAP32[$E>>2]|0;
HEAP32[$R>>2] = $0;
$1 = ((($E)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($R)) + 4|0);
HEAP32[$3>>2] = $2;
$4 = ((($E)) + 40|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($R)) + 40|0);
HEAP32[$6>>2] = $5;
$7 = ((($E)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = (__gcry_mpi_copy($8)|0);
$10 = ((($R)) + 8|0);
HEAP32[$10>>2] = $9;
$11 = ((($E)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = (__gcry_mpi_copy($12)|0);
$14 = ((($R)) + 12|0);
HEAP32[$14>>2] = $13;
$15 = ((($E)) + 16|0);
$16 = HEAP32[$15>>2]|0;
$17 = (__gcry_mpi_copy($16)|0);
$18 = ((($R)) + 16|0);
HEAP32[$18>>2] = $17;
$19 = ((($R)) + 20|0);
__gcry_mpi_point_init($19);
$20 = ((($R)) + 20|0);
$21 = ((($E)) + 20|0);
_point_set_847($20,$21);
$22 = ((($E)) + 32|0);
$23 = HEAP32[$22>>2]|0;
$24 = (__gcry_mpi_copy($23)|0);
$25 = ((($R)) + 32|0);
HEAP32[$25>>2] = $24;
$26 = ((($E)) + 36|0);
$27 = HEAP32[$26>>2]|0;
$28 = (__gcry_mpi_copy($27)|0);
$29 = ((($R)) + 36|0);
HEAP32[$29>>2] = $28;
dest=$agg$result; src=$R; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function _point_set_847($d,$s) {
$d = $d|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
(__gcry_mpi_set($3,$5)|0);
$6 = $0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
(__gcry_mpi_set($8,$11)|0);
$12 = $0;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
(__gcry_mpi_set($14,$17)|0);
STACKTOP = sp;return;
}
function __gcry_ecc_model2str($model) {
$model = $model|0;
var $0 = 0, $1 = 0, $2 = 0, $str = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $model;
$str = 37956;
$1 = $0;
switch ($1|0) {
case 0: {
$str = 36002;
break;
}
case 1: {
$str = 45730;
break;
}
case 2: {
$str = 36014;
break;
}
default: {
}
}
$2 = $str;
STACKTOP = sp;return ($2|0);
}
function __gcry_ecc_dialect2str($dialect) {
$dialect = $dialect|0;
var $0 = 0, $1 = 0, $2 = 0, $str = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $dialect;
$str = 37956;
$1 = $0;
switch ($1|0) {
case 0: {
$str = 36022;
break;
}
case 1: {
$str = 36031;
break;
}
default: {
}
}
$2 = $str;
STACKTOP = sp;return ($2|0);
}
function __gcry_ecc_ec2os($x,$y,$p) {
$x = $x|0;
$y = $y|0;
$p = $p|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $buf = 0, $n = 0, $pbytes = 0, $ptr = 0, $rc = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer1 = 0;
var $vararg_buffer4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer4 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$n = sp + 32|0;
$result = sp + 20|0;
$0 = $x;
$1 = $y;
$2 = $p;
$3 = $2;
$4 = (__gcry_mpi_get_nbits($3)|0);
$5 = (($4) + 7)|0;
$6 = (($5>>>0) / 8)&-1;
$pbytes = $6;
$7 = $pbytes;
$8 = $7<<1;
$9 = (1 + ($8))|0;
$10 = (__gcry_xmalloc($9)|0);
$buf = $10;
$11 = $buf;
HEAP8[$11>>0] = 4;
$12 = $buf;
$13 = ((($12)) + 1|0);
$ptr = $13;
$14 = $ptr;
$15 = $pbytes;
$16 = $0;
$17 = (__gcry_mpi_print(5,$14,$15,$n,$16)|0);
$rc = $17;
$18 = $rc;
$19 = ($18|0)!=(0);
if ($19) {
$20 = $rc;
$21 = (_gpg_strerror($20)|0);
HEAP32[$vararg_buffer>>2] = $21;
__gcry_log_fatal(36039,$vararg_buffer);
// unreachable;
}
$22 = HEAP32[$n>>2]|0;
$23 = $pbytes;
$24 = ($22>>>0)<($23>>>0);
if ($24) {
$25 = $ptr;
$26 = $pbytes;
$27 = HEAP32[$n>>2]|0;
$28 = (($26) - ($27))|0;
$29 = (($25) + ($28)|0);
$30 = $ptr;
$31 = HEAP32[$n>>2]|0;
_memmove(($29|0),($30|0),($31|0))|0;
$32 = $ptr;
$33 = $pbytes;
$34 = HEAP32[$n>>2]|0;
$35 = (($33) - ($34))|0;
_memset(($32|0),0,($35|0))|0;
}
$36 = $pbytes;
$37 = $ptr;
$38 = (($37) + ($36)|0);
$ptr = $38;
$39 = $ptr;
$40 = $pbytes;
$41 = $1;
$42 = (__gcry_mpi_print(5,$39,$40,$n,$41)|0);
$rc = $42;
$43 = $rc;
$44 = ($43|0)!=(0);
if ($44) {
$45 = $rc;
$46 = (_gpg_strerror($45)|0);
HEAP32[$vararg_buffer1>>2] = $46;
__gcry_log_fatal(36039,$vararg_buffer1);
// unreachable;
}
$47 = HEAP32[$n>>2]|0;
$48 = $pbytes;
$49 = ($47>>>0)<($48>>>0);
if ($49) {
$50 = $ptr;
$51 = $pbytes;
$52 = HEAP32[$n>>2]|0;
$53 = (($51) - ($52))|0;
$54 = (($50) + ($53)|0);
$55 = $ptr;
$56 = HEAP32[$n>>2]|0;
_memmove(($54|0),($55|0),($56|0))|0;
$57 = $ptr;
$58 = $pbytes;
$59 = HEAP32[$n>>2]|0;
$60 = (($58) - ($59))|0;
_memset(($57|0),0,($60|0))|0;
}
$61 = $buf;
$62 = $pbytes;
$63 = $62<<1;
$64 = (1 + ($63))|0;
$65 = (__gcry_mpi_scan($result,5,$61,$64,0)|0);
$rc = $65;
$66 = $rc;
$67 = ($66|0)!=(0);
if ($67) {
$68 = $rc;
$69 = (_gpg_strerror($68)|0);
HEAP32[$vararg_buffer4>>2] = $69;
__gcry_log_fatal(36061,$vararg_buffer4);
// unreachable;
} else {
$70 = $buf;
__gcry_free($70);
$71 = HEAP32[$result>>2]|0;
STACKTOP = sp;return ($71|0);
}
return (0)|0;
}
function __gcry_mpi_ec_ec2os($point,$ectx) {
$point = $point|0;
$ectx = $ectx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $g_x = 0;
var $g_y = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $point;
$1 = $ectx;
$2 = (__gcry_mpi_new(0)|0);
$g_x = $2;
$3 = (__gcry_mpi_new(0)|0);
$g_y = $3;
$4 = $g_x;
$5 = $g_y;
$6 = $0;
$7 = $1;
$8 = (__gcry_mpi_ec_get_affine($4,$5,$6,$7)|0);
$9 = ($8|0)!=(0);
if ($9) {
$result = 0;
} else {
$10 = $g_x;
$11 = $g_y;
$12 = $1;
$13 = ((($12)) + 16|0);
$14 = HEAP32[$13>>2]|0;
$15 = (__gcry_ecc_ec2os($10,$11,$14)|0);
$result = $15;
}
$16 = $g_x;
__gcry_mpi_free($16);
$17 = $g_y;
__gcry_mpi_free($17);
$18 = $result;
STACKTOP = sp;return ($18|0);
}
function __gcry_ecc_os2ec($result,$value) {
$result = $result|0;
$value = $value|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $8 = 0, $9 = 0, $buf = 0;
var $buf_memory = 0, $n = 0, $nbits = 0, $rc = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 20|0;
$x = sp + 8|0;
$y = sp + 4|0;
$nbits = sp;
$1 = $result;
$2 = $value;
$3 = $2;
$4 = ($3|0)!=(0|0);
do {
if ($4) {
$5 = $2;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7 & 4;
$9 = ($8|0)!=(0);
if ($9) {
$10 = $2;
$11 = (__gcry_mpi_get_opaque($10,$nbits)|0);
$buf = $11;
$12 = $buf;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = HEAP32[$nbits>>2]|0;
$15 = (($14) + 7)|0;
$16 = (($15>>>0) / 8)&-1;
HEAP32[$n>>2] = $16;
$buf_memory = 0;
break;
}
$0 = 65;
$78 = $0;
STACKTOP = sp;return ($78|0);
} else {
label = 6;
}
} else {
label = 6;
}
} while(0);
do {
if ((label|0) == 6) {
$17 = $2;
$18 = (__gcry_mpi_get_nbits($17)|0);
$19 = (($18) + 7)|0;
$20 = (($19>>>0) / 8)&-1;
HEAP32[$n>>2] = $20;
$21 = HEAP32[$n>>2]|0;
$22 = (__gcry_xmalloc($21)|0);
$buf_memory = $22;
$23 = $buf_memory;
$24 = HEAP32[$n>>2]|0;
$25 = $2;
$26 = (__gcry_mpi_print(5,$23,$24,$n,$25)|0);
$rc = $26;
$27 = $rc;
$28 = ($27|0)!=(0);
$29 = $buf_memory;
if (!($28)) {
$buf = $29;
break;
}
__gcry_free($29);
$30 = $rc;
$0 = $30;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
} while(0);
$31 = HEAP32[$n>>2]|0;
$32 = ($31>>>0)<(1);
if ($32) {
$33 = $buf_memory;
__gcry_free($33);
$0 = 65;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
$34 = $buf;
$35 = HEAP8[$34>>0]|0;
$36 = $35&255;
$37 = ($36|0)!=(4);
if ($37) {
$38 = $buf_memory;
__gcry_free($38);
$0 = 69;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
$39 = HEAP32[$n>>2]|0;
$40 = (($39) - 1)|0;
$41 = (($40>>>0) % 2)&-1;
$42 = ($41|0)!=(0);
if ($42) {
$43 = $buf_memory;
__gcry_free($43);
$0 = 65;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
$44 = HEAP32[$n>>2]|0;
$45 = (($44) - 1)|0;
$46 = (($45>>>0) / 2)&-1;
HEAP32[$n>>2] = $46;
$47 = $buf;
$48 = ((($47)) + 1|0);
$49 = HEAP32[$n>>2]|0;
$50 = (__gcry_mpi_scan($x,5,$48,$49,0)|0);
$rc = $50;
$51 = $rc;
$52 = ($51|0)!=(0);
if ($52) {
$53 = $buf_memory;
__gcry_free($53);
$54 = $rc;
$0 = $54;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
$55 = $buf;
$56 = ((($55)) + 1|0);
$57 = HEAP32[$n>>2]|0;
$58 = (($56) + ($57)|0);
$59 = HEAP32[$n>>2]|0;
$60 = (__gcry_mpi_scan($y,5,$58,$59,0)|0);
$rc = $60;
$61 = $buf_memory;
__gcry_free($61);
$62 = $rc;
$63 = ($62|0)!=(0);
if ($63) {
$64 = HEAP32[$x>>2]|0;
__gcry_mpi_free($64);
$65 = $rc;
$0 = $65;
$78 = $0;
STACKTOP = sp;return ($78|0);
} else {
$66 = $1;
$67 = HEAP32[$66>>2]|0;
$68 = HEAP32[$x>>2]|0;
(__gcry_mpi_set($67,$68)|0);
$69 = $1;
$70 = ((($69)) + 4|0);
$71 = HEAP32[$70>>2]|0;
$72 = HEAP32[$y>>2]|0;
(__gcry_mpi_set($71,$72)|0);
$73 = $1;
$74 = ((($73)) + 8|0);
$75 = HEAP32[$74>>2]|0;
(__gcry_mpi_set_ui($75,1)|0);
$76 = HEAP32[$x>>2]|0;
__gcry_mpi_free($76);
$77 = HEAP32[$y>>2]|0;
__gcry_mpi_free($77);
$0 = 0;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
return (0)|0;
}
function __gcry_ecc_compute_public($Q,$ec,$G,$d) {
$Q = $Q|0;
$ec = $ec|0;
$G = $G|0;
$d = $d|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $a = 0, $digest = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$digest = sp;
$1 = $Q;
$2 = $ec;
$3 = $G;
$4 = $d;
$5 = $3;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$7 = $2;
$8 = ((($7)) + 28|0);
$9 = HEAP32[$8>>2]|0;
$3 = $9;
}
$10 = $4;
$11 = ($10|0)!=(0|0);
if (!($11)) {
$12 = $2;
$13 = ((($12)) + 44|0);
$14 = HEAP32[$13>>2]|0;
$4 = $14;
}
$15 = $4;
$16 = ($15|0)!=(0|0);
$17 = $3;
$18 = ($17|0)!=(0|0);
$or$cond = $16 & $18;
if ($or$cond) {
$19 = $2;
$20 = ((($19)) + 16|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)!=(0|0);
if ($22) {
$23 = $2;
$24 = ((($23)) + 20|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($25|0)!=(0|0);
if ($26) {
$27 = $2;
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)==(2);
if ($29) {
$30 = $2;
$31 = ((($30)) + 24|0);
$32 = HEAP32[$31>>2]|0;
$33 = ($32|0)!=(0|0);
if (!($33)) {
$0 = 0;
$71 = $0;
STACKTOP = sp;return ($71|0);
}
}
$34 = $2;
$35 = ((($34)) + 4|0);
$36 = HEAP32[$35>>2]|0;
$37 = ($36|0)==(1);
if ($37) {
$38 = $2;
$39 = ((($38)) + 8|0);
$40 = HEAP32[$39>>2]|0;
$41 = $40 & 4096;
$42 = ($41|0)!=(0);
if ($42) {
$43 = $4;
$44 = $2;
$45 = (__gcry_ecc_eddsa_compute_h_d($digest,$43,$44)|0);
$46 = ($45|0)!=(0);
if ($46) {
$0 = 0;
$71 = $0;
STACKTOP = sp;return ($71|0);
}
$47 = (__gcry_mpi_snew(0)|0);
$a = $47;
$48 = $a;
$49 = HEAP32[$digest>>2]|0;
__gcry_mpi_set_buffer($48,$49,32,0);
$50 = HEAP32[$digest>>2]|0;
__gcry_free($50);
$51 = $1;
$52 = ($51|0)!=(0|0);
if (!($52)) {
$53 = (__gcry_mpi_point_new(0)|0);
$1 = $53;
}
$54 = $1;
$55 = ($54|0)!=(0|0);
if ($55) {
$56 = $1;
$57 = $a;
$58 = $3;
$59 = $2;
__gcry_mpi_ec_mul_point($56,$57,$58,$59);
}
$60 = $a;
__gcry_mpi_free($60);
} else {
label = 21;
}
} else {
label = 21;
}
if ((label|0) == 21) {
$61 = $1;
$62 = ($61|0)!=(0|0);
if (!($62)) {
$63 = (__gcry_mpi_point_new(0)|0);
$1 = $63;
}
$64 = $1;
$65 = ($64|0)!=(0|0);
if ($65) {
$66 = $1;
$67 = $4;
$68 = $3;
$69 = $2;
__gcry_mpi_ec_mul_point($66,$67,$68,$69);
}
}
$70 = $1;
$0 = $70;
$71 = $0;
STACKTOP = sp;return ($71|0);
}
}
}
$0 = 0;
$71 = $0;
STACKTOP = sp;return ($71|0);
}
function __gcry_hmac_selftest($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$ec = 0;
$3 = $0;
$4 = (__gcry_md_algo_info($3,8,0,0)|0);
$5 = ($4|0)!=(0);
if ($5) {
$ec = 5;
$10 = $2;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $2;
$13 = $0;
FUNCTION_TABLE_viiii[$12 & 63](36342,$13,38049,37086);
}
} else {
$6 = $0;
$7 = $1;
$8 = $2;
$9 = (_run_selftests($6,$7,$8)|0);
$ec = $9;
}
$14 = $ec;
$15 = (_gpg_error_906($14)|0);
STACKTOP = sp;return ($15|0);
}
function _run_selftests($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
switch ($3|0) {
case 2: {
$4 = $1;
$5 = $2;
$6 = (_selftests_sha1($4,$5)|0);
$ec = $6;
break;
}
case 11: {
$7 = $1;
$8 = $2;
$9 = (_selftests_sha224($7,$8)|0);
$ec = $9;
break;
}
case 8: {
$10 = $1;
$11 = $2;
$12 = (_selftests_sha256($10,$11)|0);
$ec = $12;
break;
}
case 9: {
$13 = $1;
$14 = $2;
$15 = (_selftests_sha384($13,$14)|0);
$ec = $15;
break;
}
case 10: {
$16 = $1;
$17 = $2;
$18 = (_selftests_sha512($16,$17)|0);
$ec = $18;
break;
}
default: {
$ec = 5;
}
}
$19 = $ec;
STACKTOP = sp;return ($19|0);
}
function _selftests_sha1($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $i = 0;
var $j = 0, $key = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$key = sp + 32|0;
$1 = $extended;
$2 = $report;
$what = 36082;
$i = 0;
while(1) {
$3 = $i;
$4 = ($3|0)<(64);
if (!($4)) {
break;
}
$5 = $i;
$6 = $5&255;
$7 = $i;
$8 = (($key) + ($7)|0);
HEAP8[$8>>0] = $6;
$9 = $i;
$10 = (($9) + 1)|0;
$i = $10;
}
$11 = (_check_one(2,36097,9,$key,64,36107,20)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
do {
if (!($13)) {
$14 = $1;
$15 = ($14|0)!=(0);
if ($15) {
$what = 36204;
$i = 0;
$j = 48;
while(1) {
$16 = $i;
$17 = ($16|0)<(20);
if (!($17)) {
break;
}
$18 = $j;
$19 = (($18) + 1)|0;
$j = $19;
$20 = $18&255;
$21 = $i;
$22 = (($key) + ($21)|0);
HEAP8[$22>>0] = $20;
$23 = $i;
$24 = (($23) + 1)|0;
$i = $24;
}
$25 = (_check_one(2,36219,9,$key,20,36229,20)|0);
$errtxt = $25;
$26 = $errtxt;
$27 = ($26|0)!=(0|0);
if ($27) {
break;
}
$what = 36250;
$i = 0;
$j = 80;
while(1) {
$28 = $i;
$29 = ($28|0)<(100);
if (!($29)) {
break;
}
$30 = $j;
$31 = (($30) + 1)|0;
$j = $31;
$32 = $30&255;
$33 = $i;
$34 = (($key) + ($33)|0);
HEAP8[$34>>0] = $32;
$35 = $i;
$36 = (($35) + 1)|0;
$i = $36;
}
$37 = (_check_one(2,36265,9,$key,100,36275,20)|0);
$errtxt = $37;
$38 = $errtxt;
$39 = ($38|0)!=(0|0);
if ($39) {
break;
}
$what = 36296;
$i = 0;
$j = 112;
while(1) {
$40 = $i;
$41 = ($40|0)<(49);
if (!($41)) {
break;
}
$42 = $j;
$43 = (($42) + 1)|0;
$j = $43;
$44 = $42&255;
$45 = $i;
$46 = (($key) + ($45)|0);
HEAP8[$46>>0] = $44;
$47 = $i;
$48 = (($47) + 1)|0;
$i = $48;
}
$49 = (_check_one(2,36311,9,$key,49,36321,20)|0);
$errtxt = $49;
$50 = $errtxt;
$51 = ($50|0)!=(0|0);
if ($51) {
break;
}
}
$0 = 0;
$57 = $0;
STACKTOP = sp;return ($57|0);
}
} while(0);
$52 = $2;
$53 = ($52|0)!=(0|0);
if ($53) {
$54 = $2;
$55 = $what;
$56 = $errtxt;
FUNCTION_TABLE_viiii[$54 & 63](36342,2,$55,$56);
}
$0 = 50;
$57 = $0;
STACKTOP = sp;return ($57|0);
}
function _check_one($algo,$data,$datalen,$key,$keylen,$expect,$expectlen) {
$algo = $algo|0;
$data = $data|0;
$datalen = $datalen|0;
$key = $key|0;
$keylen = $keylen|0;
$expect = $expect|0;
$expectlen = $expectlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $digest = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp + 4|0;
$1 = $algo;
$2 = $data;
$3 = $datalen;
$4 = $key;
$5 = $keylen;
$6 = $expect;
$7 = $expectlen;
$8 = $1;
$9 = (__gcry_md_get_algo_dlen($8)|0);
$10 = $7;
$11 = ($9|0)!=($10|0);
do {
if ($11) {
$0 = 36128;
} else {
$12 = $1;
$13 = (__gcry_md_open($hd,$12,2)|0);
$14 = ($13|0)!=(0);
if ($14) {
$0 = 49956;
break;
}
$15 = HEAP32[$hd>>2]|0;
$16 = $4;
$17 = $5;
$18 = (__gcry_md_setkey($15,$16,$17)|0);
$19 = ($18|0)!=(0);
$20 = HEAP32[$hd>>2]|0;
if ($19) {
__gcry_md_close($20);
$0 = 36147;
break;
}
$21 = $2;
$22 = $3;
__gcry_md_write($20,$21,$22);
$23 = HEAP32[$hd>>2]|0;
$24 = $1;
$25 = (__gcry_md_read($23,$24)|0);
$digest = $25;
$26 = $digest;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$28 = HEAP32[$hd>>2]|0;
__gcry_md_close($28);
$0 = 36169;
break;
}
$29 = $digest;
$30 = $6;
$31 = $7;
$32 = (_memcmp($29,$30,$31)|0);
$33 = ($32|0)!=(0);
$34 = HEAP32[$hd>>2]|0;
__gcry_md_close($34);
if ($33) {
$0 = 36189;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$35 = $0;
STACKTOP = sp;return ($35|0);
}
function _selftests_sha224($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $tvidx = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$tvidx = 0;
while(1) {
$3 = $tvidx;
$4 = (2772 + (($3*40)|0)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)!=(0|0);
if (!($6)) {
label = 6;
break;
}
$7 = $tvidx;
$8 = (2772 + (($7*40)|0)|0);
$9 = HEAP32[$8>>2]|0;
$what = $9;
$10 = $tvidx;
$11 = (2772 + (($10*40)|0)|0);
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = $tvidx;
$15 = (2772 + (($14*40)|0)|0);
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = (_strlen($17)|0);
$19 = $tvidx;
$20 = (2772 + (($19*40)|0)|0);
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
$23 = $tvidx;
$24 = (2772 + (($23*40)|0)|0);
$25 = ((($24)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (_strlen($26)|0);
$28 = $tvidx;
$29 = (2772 + (($28*40)|0)|0);
$30 = ((($29)) + 12|0);
$31 = (_check_one(11,$13,$18,$22,$27,$30,28)|0);
$errtxt = $31;
$32 = $errtxt;
$33 = ($32|0)!=(0|0);
if ($33) {
break;
}
$34 = $1;
$35 = ($34|0)!=(0);
if (!($35)) {
label = 6;
break;
}
$36 = $tvidx;
$37 = (($36) + 1)|0;
$tvidx = $37;
}
if ((label|0) == 6) {
$0 = 0;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$38 = $2;
$39 = ($38|0)!=(0|0);
if ($39) {
$40 = $2;
$41 = $what;
$42 = $errtxt;
FUNCTION_TABLE_viiii[$40 & 63](36342,11,$41,$42);
}
$0 = 50;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
function _selftests_sha256($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $9 = 0, $digest = 0, $dlen = 0, $errtxt = 0, $hmachd = 0, $tvidx = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$dlen = sp;
$1 = $extended;
$2 = $report;
$tvidx = 0;
while(1) {
$3 = $tvidx;
$4 = (3052 + (($3*44)|0)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)!=(0|0);
if (!($6)) {
label = 13;
break;
}
$7 = $tvidx;
$8 = (3052 + (($7*44)|0)|0);
$9 = HEAP32[$8>>2]|0;
$what = $9;
$10 = $tvidx;
$11 = (3052 + (($10*44)|0)|0);
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = $tvidx;
$15 = (3052 + (($14*44)|0)|0);
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = (_strlen($17)|0);
$19 = $tvidx;
$20 = (3052 + (($19*44)|0)|0);
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
$23 = $tvidx;
$24 = (3052 + (($23*44)|0)|0);
$25 = ((($24)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (_strlen($26)|0);
$28 = $tvidx;
$29 = (3052 + (($28*44)|0)|0);
$30 = ((($29)) + 12|0);
$31 = (_check_one(8,$13,$18,$22,$27,$30,32)|0);
$errtxt = $31;
$32 = $errtxt;
$33 = ($32|0)!=(0|0);
if ($33) {
break;
}
$34 = $tvidx;
$35 = (3052 + (($34*44)|0)|0);
$36 = ((($35)) + 8|0);
$37 = HEAP32[$36>>2]|0;
$38 = $tvidx;
$39 = (3052 + (($38*44)|0)|0);
$40 = ((($39)) + 8|0);
$41 = HEAP32[$40>>2]|0;
$42 = (_strlen($41)|0);
$43 = (__gcry_hmac256_new($37,$42)|0);
$hmachd = $43;
$44 = $hmachd;
$45 = ($44|0)!=(0|0);
if (!($45)) {
label = 5;
break;
}
$46 = $hmachd;
$47 = $tvidx;
$48 = (3052 + (($47*44)|0)|0);
$49 = ((($48)) + 4|0);
$50 = HEAP32[$49>>2]|0;
$51 = $tvidx;
$52 = (3052 + (($51*44)|0)|0);
$53 = ((($52)) + 4|0);
$54 = HEAP32[$53>>2]|0;
$55 = (_strlen($54)|0);
__gcry_hmac256_update($46,$50,$55);
$56 = $hmachd;
$57 = (__gcry_hmac256_finalize($56,$dlen)|0);
$digest = $57;
$58 = $digest;
$59 = ($58|0)!=(0|0);
if (!($59)) {
label = 7;
break;
}
$61 = HEAP32[$dlen>>2]|0;
$62 = ($61|0)!=(32);
if ($62) {
label = 10;
break;
}
$63 = $digest;
$64 = $tvidx;
$65 = (3052 + (($64*44)|0)|0);
$66 = ((($65)) + 12|0);
$67 = (_memcmp($63,$66,32)|0);
$68 = ($67|0)!=(0);
if ($68) {
label = 10;
break;
}
$70 = $hmachd;
__gcry_hmac256_release($70);
$71 = $1;
$72 = ($71|0)!=(0);
if (!($72)) {
label = 13;
break;
}
$73 = $tvidx;
$74 = (($73) + 1)|0;
$tvidx = $74;
}
if ((label|0) == 5) {
$errtxt = 36991;
}
else if ((label|0) == 7) {
$errtxt = 37016;
$60 = $hmachd;
__gcry_hmac256_release($60);
}
else if ((label|0) == 10) {
$errtxt = 37046;
$69 = $hmachd;
__gcry_hmac256_release($69);
}
else if ((label|0) == 13) {
$0 = 0;
$80 = $0;
STACKTOP = sp;return ($80|0);
}
$75 = $2;
$76 = ($75|0)!=(0|0);
if ($76) {
$77 = $2;
$78 = $what;
$79 = $errtxt;
FUNCTION_TABLE_viiii[$77 & 63](36342,8,$78,$79);
}
$0 = 50;
$80 = $0;
STACKTOP = sp;return ($80|0);
}
function _selftests_sha384($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $tvidx = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$tvidx = 0;
while(1) {
$3 = $tvidx;
$4 = (3360 + (($3*60)|0)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)!=(0|0);
if (!($6)) {
label = 6;
break;
}
$7 = $tvidx;
$8 = (3360 + (($7*60)|0)|0);
$9 = HEAP32[$8>>2]|0;
$what = $9;
$10 = $tvidx;
$11 = (3360 + (($10*60)|0)|0);
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = $tvidx;
$15 = (3360 + (($14*60)|0)|0);
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = (_strlen($17)|0);
$19 = $tvidx;
$20 = (3360 + (($19*60)|0)|0);
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
$23 = $tvidx;
$24 = (3360 + (($23*60)|0)|0);
$25 = ((($24)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (_strlen($26)|0);
$28 = $tvidx;
$29 = (3360 + (($28*60)|0)|0);
$30 = ((($29)) + 12|0);
$31 = (_check_one(9,$13,$18,$22,$27,$30,48)|0);
$errtxt = $31;
$32 = $errtxt;
$33 = ($32|0)!=(0|0);
if ($33) {
break;
}
$34 = $1;
$35 = ($34|0)!=(0);
if (!($35)) {
label = 6;
break;
}
$36 = $tvidx;
$37 = (($36) + 1)|0;
$tvidx = $37;
}
if ((label|0) == 6) {
$0 = 0;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$38 = $2;
$39 = ($38|0)!=(0|0);
if ($39) {
$40 = $2;
$41 = $what;
$42 = $errtxt;
FUNCTION_TABLE_viiii[$40 & 63](36342,9,$41,$42);
}
$0 = 50;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
function _selftests_sha512($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $tvidx = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$tvidx = 0;
while(1) {
$3 = $tvidx;
$4 = (3780 + (($3*76)|0)|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)!=(0|0);
if (!($6)) {
label = 6;
break;
}
$7 = $tvidx;
$8 = (3780 + (($7*76)|0)|0);
$9 = HEAP32[$8>>2]|0;
$what = $9;
$10 = $tvidx;
$11 = (3780 + (($10*76)|0)|0);
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = $tvidx;
$15 = (3780 + (($14*76)|0)|0);
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = (_strlen($17)|0);
$19 = $tvidx;
$20 = (3780 + (($19*76)|0)|0);
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
$23 = $tvidx;
$24 = (3780 + (($23*76)|0)|0);
$25 = ((($24)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = (_strlen($26)|0);
$28 = $tvidx;
$29 = (3780 + (($28*76)|0)|0);
$30 = ((($29)) + 12|0);
$31 = (_check_one(10,$13,$18,$22,$27,$30,64)|0);
$errtxt = $31;
$32 = $errtxt;
$33 = ($32|0)!=(0|0);
if ($33) {
break;
}
$34 = $1;
$35 = ($34|0)!=(0);
if (!($35)) {
label = 6;
break;
}
$36 = $tvidx;
$37 = (($36) + 1)|0;
$tvidx = $37;
}
if ((label|0) == 6) {
$0 = 0;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$38 = $2;
$39 = ($38|0)!=(0|0);
if ($39) {
$40 = $2;
$41 = $what;
$42 = $errtxt;
FUNCTION_TABLE_viiii[$40 & 63](36342,10,$41,$42);
}
$0 = 50;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
function _gpg_error_906($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_907(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make_907($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function __gcry_md_map_name($string) {
$string = $string|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $string;
$2 = $1;
$3 = ($2|0)!=(0|0);
do {
if ($3) {
$4 = $1;
$5 = (_search_oid_943($4,0)|0);
$spec = $5;
$6 = $spec;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $spec;
$9 = HEAP32[$8>>2]|0;
$0 = $9;
break;
}
$10 = $1;
$11 = (_spec_from_name_947($10)|0);
$spec = $11;
$12 = $spec;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = $spec;
$15 = HEAP32[$14>>2]|0;
$0 = $15;
break;
} else {
$0 = 0;
break;
}
} else {
$0 = 0;
}
} while(0);
$16 = $0;
STACKTOP = sp;return ($16|0);
}
function _search_oid_943($oid,$oid_spec) {
$oid = $oid|0;
$oid_spec = $oid_spec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $oid;
$2 = $oid_spec;
$3 = $1;
$4 = ($3|0)!=(0|0);
do {
if ($4) {
$5 = $1;
$6 = (_strncmp($5,37110,4)|0);
$7 = ($6|0)!=(0);
if ($7) {
$8 = $1;
$9 = (_strncmp($8,37115,4)|0);
$10 = ($9|0)!=(0);
if ($10) {
break;
}
}
$11 = $1;
$12 = ((($11)) + 4|0);
$1 = $12;
}
} while(0);
$13 = $1;
$14 = (_spec_from_oid_946($13)|0);
$spec = $14;
$15 = $spec;
$16 = ($15|0)!=(0|0);
L7: do {
if ($16) {
$17 = $spec;
$18 = ((($17)) + 20|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)!=(0|0);
if ($20) {
$i = 0;
while(1) {
$21 = $i;
$22 = $spec;
$23 = ((($22)) + 20|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + ($21<<2)|0);
$26 = HEAP32[$25>>2]|0;
$27 = ($26|0)!=(0|0);
if (!($27)) {
break L7;
}
$28 = $1;
$29 = $i;
$30 = $spec;
$31 = ((($30)) + 20|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($32) + ($29<<2)|0);
$34 = HEAP32[$33>>2]|0;
$35 = (_strcasecmp($28,$34)|0);
$36 = ($35|0)!=(0);
if (!($36)) {
break;
}
$46 = $i;
$47 = (($46) + 1)|0;
$i = $47;
}
$37 = $2;
$38 = ($37|0)!=(0|0);
if ($38) {
$39 = $2;
$40 = $i;
$41 = $spec;
$42 = ((($41)) + 20|0);
$43 = HEAP32[$42>>2]|0;
$44 = (($43) + ($40<<2)|0);
;HEAP32[$39>>2]=HEAP32[$44>>2]|0;
}
$45 = $spec;
$0 = $45;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
}
} while(0);
$0 = 0;
$48 = $0;
STACKTOP = sp;return ($48|0);
}
function _spec_from_oid_946($oid) {
$oid = $oid|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $j = 0, $oid_specs = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $oid;
$idx = 0;
L1: while(1) {
$2 = $idx;
$3 = (4312 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
$spec = $4;
$5 = ($4|0)!=(0|0);
if (!($5)) {
label = 10;
break;
}
$6 = $spec;
$7 = ((($6)) + 20|0);
$8 = HEAP32[$7>>2]|0;
$oid_specs = $8;
$9 = $oid_specs;
$10 = ($9|0)!=(0|0);
L4: do {
if ($10) {
$j = 0;
while(1) {
$11 = $j;
$12 = $oid_specs;
$13 = (($12) + ($11<<2)|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)!=(0|0);
if (!($15)) {
break L4;
}
$16 = $1;
$17 = $j;
$18 = $oid_specs;
$19 = (($18) + ($17<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = (_strcasecmp($16,$20)|0);
$22 = ($21|0)!=(0);
if (!($22)) {
label = 7;
break L1;
}
$24 = $j;
$25 = (($24) + 1)|0;
$j = $25;
}
}
} while(0);
$26 = $idx;
$27 = (($26) + 1)|0;
$idx = $27;
}
if ((label|0) == 7) {
$23 = $spec;
$0 = $23;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
else if ((label|0) == 10) {
$0 = 0;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
return (0)|0;
}
function _spec_from_name_947($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $name;
$idx = 0;
while(1) {
$2 = $idx;
$3 = (4312 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
$spec = $4;
$5 = ($4|0)!=(0|0);
if (!($5)) {
label = 6;
break;
}
$6 = $1;
$7 = $spec;
$8 = ((($7)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = (_strcasecmp($6,$9)|0);
$11 = ($10|0)!=(0);
if (!($11)) {
label = 4;
break;
}
$13 = $idx;
$14 = (($13) + 1)|0;
$idx = $14;
}
if ((label|0) == 4) {
$12 = $spec;
$0 = $12;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
else if ((label|0) == 6) {
$0 = 0;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
return (0)|0;
}
function __gcry_md_algo_name($algorithm) {
$algorithm = $algorithm|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algorithm;
$1 = $0;
$2 = (_spec_from_algo_950($1)|0);
$spec = $2;
$3 = $spec;
$4 = ($3|0)!=(0|0);
if (!($4)) {
$8 = 37956;
STACKTOP = sp;return ($8|0);
}
$5 = $spec;
$6 = ((($5)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
STACKTOP = sp;return ($8|0);
}
function _spec_from_algo_950($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algo;
$2 = $1;
$3 = (_map_algo_951($2)|0);
$1 = $3;
$idx = 0;
while(1) {
$4 = $idx;
$5 = (4312 + ($4<<2)|0);
$6 = HEAP32[$5>>2]|0;
$spec = $6;
$7 = ($6|0)!=(0|0);
if (!($7)) {
label = 6;
break;
}
$8 = $1;
$9 = $spec;
$10 = HEAP32[$9>>2]|0;
$11 = ($8|0)==($10|0);
if ($11) {
label = 4;
break;
}
$13 = $idx;
$14 = (($13) + 1)|0;
$idx = $14;
}
if ((label|0) == 4) {
$12 = $spec;
$0 = $12;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
else if ((label|0) == 6) {
$0 = 0;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
return (0)|0;
}
function _map_algo_951($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $0;
STACKTOP = sp;return ($1|0);
}
function __gcry_md_open($h,$algo,$flags) {
$h = $h|0;
$algo = $algo|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $hd = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp;
$0 = $h;
$1 = $algo;
$2 = $flags;
$3 = $2;
$4 = $3 & -260;
$5 = ($4|0)!=(0);
if ($5) {
$rc = 45;
} else {
$6 = $1;
$7 = $2;
$8 = (_md_open($hd,$6,$7)|0);
$rc = $8;
}
$9 = $rc;
$10 = ($9|0)!=(0);
$11 = HEAP32[$hd>>2]|0;
$12 = $10 ? 0 : $11;
$13 = $0;
HEAP32[$13>>2] = $12;
$14 = $rc;
STACKTOP = sp;return ($14|0);
}
function _md_open($h,$algo,$flags) {
$h = $h|0;
$algo = $algo|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $bufsize = 0, $ctx = 0, $err = 0, $hd = 0, $hmac = 0, $n = 0, $secure = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $h;
$1 = $algo;
$2 = $flags;
$err = 0;
$3 = $2;
$4 = $3 & 1;
$5 = ($4|0)!=(0);
$6 = $5 ^ 1;
$7 = $6 ^ 1;
$8 = $7&1;
$secure = $8;
$9 = $2;
$10 = $9 & 2;
$11 = ($10|0)!=(0);
$12 = $11 ^ 1;
$13 = $12 ^ 1;
$14 = $13&1;
$hmac = $14;
$15 = $secure;
$16 = ($15|0)!=(0);
$17 = $16 ? 512 : 1024;
$bufsize = $17;
$18 = $bufsize;
$19 = (16 + ($18))|0;
$n = $19;
$20 = $n;
$21 = (($20) + 8)|0;
$22 = (($21) - 1)|0;
$23 = (($22>>>0) / 8)&-1;
$24 = $23<<3;
$n = $24;
$25 = $secure;
$26 = ($25|0)!=(0);
$27 = $n;
$28 = (($27) + 28)|0;
if ($26) {
$29 = (__gcry_malloc_secure($28)|0);
$hd = $29;
} else {
$30 = (__gcry_malloc($28)|0);
$hd = $30;
}
$31 = $hd;
$32 = ($31|0)!=(0|0);
if (!($32)) {
$33 = (___errno_location()|0);
$34 = HEAP32[$33>>2]|0;
$35 = (_gpg_err_code_from_errno($34)|0);
$err = $35;
}
$36 = $err;
$37 = ($36|0)!=(0);
if (!($37)) {
$38 = $hd;
$39 = $n;
$40 = (($38) + ($39)|0);
$ctx = $40;
$41 = $hd;
HEAP32[$41>>2] = $40;
$42 = $n;
$43 = (($42) - 16)|0;
$44 = (($43) + 1)|0;
$45 = $hd;
$46 = ((($45)) + 8|0);
HEAP32[$46>>2] = $44;
$47 = $hd;
$48 = ((($47)) + 4|0);
HEAP32[$48>>2] = 0;
$49 = $hd;
$50 = HEAP32[$49>>2]|0;
;HEAP32[$50>>2]=0|0;HEAP32[$50+4>>2]=0|0;HEAP32[$50+8>>2]=0|0;HEAP32[$50+12>>2]=0|0;HEAP32[$50+16>>2]=0|0;HEAP32[$50+20>>2]=0|0;HEAP32[$50+24>>2]=0|0;
$51 = $secure;
$52 = ($51|0)!=(0);
$53 = $52 ? 378630161 : 285677921;
$54 = $ctx;
HEAP32[$54>>2] = $53;
$55 = $n;
$56 = (($55) + 28)|0;
$57 = $ctx;
$58 = ((($57)) + 4|0);
HEAP32[$58>>2] = $56;
$59 = $secure;
$60 = $ctx;
$61 = ((($60)) + 12|0);
$62 = $59&255;
$63 = HEAP8[$61>>0]|0;
$64 = $62 & 1;
$65 = $63 & -2;
$66 = $65 | $64;
HEAP8[$61>>0] = $66;
$67 = $2;
$68 = $67 & 256;
$69 = ($68|0)!=(0);
$70 = $69 ^ 1;
$71 = $70 ^ 1;
$72 = $71&1;
$73 = $ctx;
$74 = ((($73)) + 12|0);
$75 = $72&255;
$76 = HEAP8[$74>>0]|0;
$77 = $75 & 1;
$78 = ($77 << 2)&255;
$79 = $76 & -5;
$80 = $79 | $78;
HEAP8[$74>>0] = $80;
$81 = $hmac;
$82 = ($81|0)!=(0);
if ($82) {
$83 = $1;
switch ($83|0) {
case 10: case 9: {
$84 = $ctx;
$85 = ((($84)) + 24|0);
HEAP32[$85>>2] = 128;
break;
}
case 311: case 308: {
$86 = $ctx;
$87 = ((($86)) + 24|0);
HEAP32[$87>>2] = 32;
break;
}
default: {
$88 = $ctx;
$89 = ((($88)) + 24|0);
HEAP32[$89>>2] = 64;
}
}
$90 = $ctx;
$91 = ((($90)) + 24|0);
$92 = HEAP32[$91>>2]|0;
$93 = $92<<1;
$94 = (__gcry_malloc_secure($93)|0);
$95 = $ctx;
$96 = ((($95)) + 20|0);
HEAP32[$96>>2] = $94;
$97 = $ctx;
$98 = ((($97)) + 20|0);
$99 = HEAP32[$98>>2]|0;
$100 = ($99|0)!=(0|0);
if (!($100)) {
$101 = (___errno_location()|0);
$102 = HEAP32[$101>>2]|0;
$103 = (_gpg_err_code_from_errno($102)|0);
$err = $103;
$104 = $hd;
_md_close($104);
}
}
}
$105 = $err;
$106 = ($105|0)!=(0);
if (!($106)) {
__gcry_fast_random_poll();
$107 = $1;
$108 = ($107|0)!=(0);
if ($108) {
$109 = $hd;
$110 = $1;
$111 = (_md_enable($109,$110)|0);
$err = $111;
$112 = $err;
$113 = ($112|0)!=(0);
if ($113) {
$114 = $hd;
_md_close($114);
}
}
}
$115 = $err;
$116 = ($115|0)!=(0);
if ($116) {
$119 = $err;
STACKTOP = sp;return ($119|0);
}
$117 = $hd;
$118 = $0;
HEAP32[$118>>2] = $117;
$119 = $err;
STACKTOP = sp;return ($119|0);
}
function _md_close($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vlen2 = 0, $_vlen7 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr6 = 0, $_vptr_long = 0, $_vptr_long10 = 0, $_vptr_long5 = 0, $_vset = 0, $_vset3 = 0, $_vset8 = 0, $_vset_long = 0, $_vset_long4 = 0, $_vset_long9 = 0;
var $r = 0, $r2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp + 16|0;
$_vset_long4 = sp + 8|0;
$_vset_long9 = sp;
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $0;
_md_stop_debug($8);
}
$9 = $0;
$10 = HEAP32[$9>>2]|0;
$11 = ((($10)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$r = $12;
while(1) {
$13 = $r;
$14 = ($13|0)!=(0|0);
if (!($14)) {
break;
}
$15 = $r;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$r2 = $17;
$18 = $r;
$_vptr = $18;
$19 = $r;
$20 = ((($19)) + 8|0);
$21 = HEAP32[$20>>2]|0;
$_vlen = $21;
$_vset = 0;
$22 = $_vset;
$23 = $22&255;
$24 = $_vset_long;
$25 = $24;
HEAP32[$25>>2] = $23;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = 0;
while(1) {
$28 = $_vptr;
$29 = $28;
$30 = $29 & 7;
$31 = ($30|0)!=(0);
$32 = $_vlen;
$33 = ($32|0)!=(0);
$34 = $31 ? $33 : 0;
if (!($34)) {
break;
}
$35 = $_vset;
$36 = $_vptr;
HEAP8[$36>>0] = $35;
$37 = $_vptr;
$38 = ((($37)) + 1|0);
$_vptr = $38;
$39 = $_vlen;
$40 = (($39) + -1)|0;
$_vlen = $40;
}
$41 = $_vlen;
$42 = ($41>>>0)<(8);
if (!($42)) {
$43 = $_vset_long;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (($43) + 4)|0;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = (___muldi3(($45|0),($48|0),16843009,16843009)|0);
$50 = tempRet0;
$51 = $_vset_long;
$52 = $51;
HEAP32[$52>>2] = $49;
$53 = (($51) + 4)|0;
$54 = $53;
HEAP32[$54>>2] = $50;
while(1) {
$55 = $_vptr;
$_vptr_long = $55;
$56 = $_vset_long;
$57 = $56;
$58 = HEAP32[$57>>2]|0;
$59 = (($56) + 4)|0;
$60 = $59;
$61 = HEAP32[$60>>2]|0;
$62 = $_vptr_long;
$63 = $62;
$64 = $63;
HEAP32[$64>>2] = $58;
$65 = (($63) + 4)|0;
$66 = $65;
HEAP32[$66>>2] = $61;
$67 = $_vlen;
$68 = (($67) - 8)|0;
$_vlen = $68;
$69 = $_vptr;
$70 = ((($69)) + 8|0);
$_vptr = $70;
$71 = $_vlen;
$72 = ($71>>>0)>=(8);
if (!($72)) {
break;
}
}
}
while(1) {
$73 = $_vlen;
$74 = ($73|0)!=(0);
if (!($74)) {
break;
}
$75 = $_vset;
$76 = $_vptr;
HEAP8[$76>>0] = $75;
$77 = $_vptr;
$78 = ((($77)) + 1|0);
$_vptr = $78;
$79 = $_vlen;
$80 = (($79) + -1)|0;
$_vlen = $80;
}
$81 = $r;
__gcry_free($81);
$82 = $r2;
$r = $82;
}
$83 = $0;
$84 = HEAP32[$83>>2]|0;
$85 = ((($84)) + 20|0);
$86 = HEAP32[$85>>2]|0;
$87 = ($86|0)!=(0|0);
if ($87) {
$88 = $0;
$89 = HEAP32[$88>>2]|0;
$90 = ((($89)) + 20|0);
$91 = HEAP32[$90>>2]|0;
$_vptr1 = $91;
$92 = $0;
$93 = HEAP32[$92>>2]|0;
$94 = ((($93)) + 24|0);
$95 = HEAP32[$94>>2]|0;
$96 = $95<<1;
$_vlen2 = $96;
$_vset3 = 0;
$97 = $_vset3;
$98 = $97&255;
$99 = $_vset_long4;
$100 = $99;
HEAP32[$100>>2] = $98;
$101 = (($99) + 4)|0;
$102 = $101;
HEAP32[$102>>2] = 0;
while(1) {
$103 = $_vptr1;
$104 = $103;
$105 = $104 & 7;
$106 = ($105|0)!=(0);
$107 = $_vlen2;
$108 = ($107|0)!=(0);
$109 = $106 ? $108 : 0;
if (!($109)) {
break;
}
$110 = $_vset3;
$111 = $_vptr1;
HEAP8[$111>>0] = $110;
$112 = $_vptr1;
$113 = ((($112)) + 1|0);
$_vptr1 = $113;
$114 = $_vlen2;
$115 = (($114) + -1)|0;
$_vlen2 = $115;
}
$116 = $_vlen2;
$117 = ($116>>>0)<(8);
if (!($117)) {
$118 = $_vset_long4;
$119 = $118;
$120 = HEAP32[$119>>2]|0;
$121 = (($118) + 4)|0;
$122 = $121;
$123 = HEAP32[$122>>2]|0;
$124 = (___muldi3(($120|0),($123|0),16843009,16843009)|0);
$125 = tempRet0;
$126 = $_vset_long4;
$127 = $126;
HEAP32[$127>>2] = $124;
$128 = (($126) + 4)|0;
$129 = $128;
HEAP32[$129>>2] = $125;
while(1) {
$130 = $_vptr1;
$_vptr_long5 = $130;
$131 = $_vset_long4;
$132 = $131;
$133 = HEAP32[$132>>2]|0;
$134 = (($131) + 4)|0;
$135 = $134;
$136 = HEAP32[$135>>2]|0;
$137 = $_vptr_long5;
$138 = $137;
$139 = $138;
HEAP32[$139>>2] = $133;
$140 = (($138) + 4)|0;
$141 = $140;
HEAP32[$141>>2] = $136;
$142 = $_vlen2;
$143 = (($142) - 8)|0;
$_vlen2 = $143;
$144 = $_vptr1;
$145 = ((($144)) + 8|0);
$_vptr1 = $145;
$146 = $_vlen2;
$147 = ($146>>>0)>=(8);
if (!($147)) {
break;
}
}
}
while(1) {
$148 = $_vlen2;
$149 = ($148|0)!=(0);
if (!($149)) {
break;
}
$150 = $_vset3;
$151 = $_vptr1;
HEAP8[$151>>0] = $150;
$152 = $_vptr1;
$153 = ((($152)) + 1|0);
$_vptr1 = $153;
$154 = $_vlen2;
$155 = (($154) + -1)|0;
$_vlen2 = $155;
}
$156 = $0;
$157 = HEAP32[$156>>2]|0;
$158 = ((($157)) + 20|0);
$159 = HEAP32[$158>>2]|0;
__gcry_free($159);
}
$160 = $0;
$_vptr6 = $160;
$161 = $0;
$162 = HEAP32[$161>>2]|0;
$163 = ((($162)) + 4|0);
$164 = HEAP32[$163>>2]|0;
$_vlen7 = $164;
$_vset8 = 0;
$165 = $_vset8;
$166 = $165&255;
$167 = $_vset_long9;
$168 = $167;
HEAP32[$168>>2] = $166;
$169 = (($167) + 4)|0;
$170 = $169;
HEAP32[$170>>2] = 0;
while(1) {
$171 = $_vptr6;
$172 = $171;
$173 = $172 & 7;
$174 = ($173|0)!=(0);
$175 = $_vlen7;
$176 = ($175|0)!=(0);
$177 = $174 ? $176 : 0;
if (!($177)) {
break;
}
$178 = $_vset8;
$179 = $_vptr6;
HEAP8[$179>>0] = $178;
$180 = $_vptr6;
$181 = ((($180)) + 1|0);
$_vptr6 = $181;
$182 = $_vlen7;
$183 = (($182) + -1)|0;
$_vlen7 = $183;
}
$184 = $_vlen7;
$185 = ($184>>>0)<(8);
if (!($185)) {
$186 = $_vset_long9;
$187 = $186;
$188 = HEAP32[$187>>2]|0;
$189 = (($186) + 4)|0;
$190 = $189;
$191 = HEAP32[$190>>2]|0;
$192 = (___muldi3(($188|0),($191|0),16843009,16843009)|0);
$193 = tempRet0;
$194 = $_vset_long9;
$195 = $194;
HEAP32[$195>>2] = $192;
$196 = (($194) + 4)|0;
$197 = $196;
HEAP32[$197>>2] = $193;
while(1) {
$198 = $_vptr6;
$_vptr_long10 = $198;
$199 = $_vset_long9;
$200 = $199;
$201 = HEAP32[$200>>2]|0;
$202 = (($199) + 4)|0;
$203 = $202;
$204 = HEAP32[$203>>2]|0;
$205 = $_vptr_long10;
$206 = $205;
$207 = $206;
HEAP32[$207>>2] = $201;
$208 = (($206) + 4)|0;
$209 = $208;
HEAP32[$209>>2] = $204;
$210 = $_vlen7;
$211 = (($210) - 8)|0;
$_vlen7 = $211;
$212 = $_vptr6;
$213 = ((($212)) + 8|0);
$_vptr6 = $213;
$214 = $_vlen7;
$215 = ($214>>>0)>=(8);
if (!($215)) {
break;
}
}
}
while(1) {
$216 = $_vlen7;
$217 = ($216|0)!=(0);
if (!($217)) {
break;
}
$218 = $_vset8;
$219 = $_vptr6;
HEAP8[$219>>0] = $218;
$220 = $_vptr6;
$221 = ((($220)) + 1|0);
$_vptr6 = $221;
$222 = $_vlen7;
$223 = (($222) + -1)|0;
$_vlen7 = $223;
}
$224 = $0;
__gcry_free($224);
STACKTOP = sp;return;
}
function _md_stop_debug($md) {
$md = $md|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $a = 0, $b = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$b = sp + 8|0;
$c = sp;
$0 = $md;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)!=(0);
if ($9) {
$10 = $0;
_md_write($10,0,0);
}
$11 = $0;
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
(_fclose($14)|0);
$15 = $0;
$16 = HEAP32[$15>>2]|0;
$17 = ((($16)) + 8|0);
HEAP32[$17>>2] = 0;
}
$18 = $0;
$19 = $18;
$a = $19;
$20 = $b;
$21 = $20;
HEAP32[$21>>2] = 42;
$22 = (($20) + 4)|0;
$23 = $22;
HEAP32[$23>>2] = 0;
$24 = $a;
$25 = $b;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (___muldi3(($24|0),0,($27|0),($30|0))|0);
$32 = tempRet0;
$33 = $c;
$34 = $33;
HEAP32[$34>>2] = $31;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
$37 = $c;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (($37) + 4)|0;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
STACKTOP = sp;return;
}
function _md_write($a,$inbuf,$inlen) {
$a = $a|0;
$inbuf = $inbuf|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $r = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $inbuf;
$2 = $inlen;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $0;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0);
if ($11) {
$12 = $0;
$13 = ((($12)) + 12|0);
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = $0;
$18 = HEAP32[$17>>2]|0;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = (_fwrite($13,$16,1,$20)|0);
$22 = ($21|0)!=(1);
if ($22) {
__gcry_bug(37120,630,37125);
// unreachable;
}
}
$23 = $2;
$24 = ($23|0)!=(0);
if ($24) {
$25 = $1;
$26 = $2;
$27 = $0;
$28 = HEAP32[$27>>2]|0;
$29 = ((($28)) + 8|0);
$30 = HEAP32[$29>>2]|0;
$31 = (_fwrite($25,$26,1,$30)|0);
$32 = ($31|0)!=(1);
if ($32) {
__gcry_bug(37120,632,37125);
// unreachable;
}
}
}
$33 = $0;
$34 = HEAP32[$33>>2]|0;
$35 = ((($34)) + 16|0);
$36 = HEAP32[$35>>2]|0;
$r = $36;
while(1) {
$37 = $r;
$38 = ($37|0)!=(0|0);
$39 = $0;
$40 = ((($39)) + 4|0);
if (!($38)) {
break;
}
$41 = HEAP32[$40>>2]|0;
$42 = ($41|0)!=(0);
if ($42) {
$43 = $r;
$44 = HEAP32[$43>>2]|0;
$45 = ((($44)) + 32|0);
$46 = HEAP32[$45>>2]|0;
$47 = $r;
$48 = ((($47)) + 16|0);
$49 = $0;
$50 = ((($49)) + 12|0);
$51 = $0;
$52 = ((($51)) + 4|0);
$53 = HEAP32[$52>>2]|0;
FUNCTION_TABLE_viii[$46 & 127]($48,$50,$53);
}
$54 = $r;
$55 = HEAP32[$54>>2]|0;
$56 = ((($55)) + 32|0);
$57 = HEAP32[$56>>2]|0;
$58 = $r;
$59 = ((($58)) + 16|0);
$60 = $1;
$61 = $2;
FUNCTION_TABLE_viii[$57 & 127]($59,$60,$61);
$62 = $r;
$63 = ((($62)) + 4|0);
$64 = HEAP32[$63>>2]|0;
$r = $64;
}
HEAP32[$40>>2] = 0;
STACKTOP = sp;return;
}
function _md_enable($hd,$algorithm) {
$hd = $hd|0;
$algorithm = $algorithm|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $9 = 0, $entry = 0, $err = 0, $h = 0, $or$cond = 0, $size = 0, $spec = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $hd;
$2 = $algorithm;
$3 = $1;
$4 = HEAP32[$3>>2]|0;
$h = $4;
$err = 0;
$5 = $h;
$6 = ((($5)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$entry = $7;
while(1) {
$8 = $entry;
$9 = ($8|0)!=(0|0);
if (!($9)) {
break;
}
$10 = $entry;
$11 = HEAP32[$10>>2]|0;
$12 = HEAP32[$11>>2]|0;
$13 = $2;
$14 = ($12|0)==($13|0);
if ($14) {
label = 4;
break;
}
$15 = $entry;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$entry = $17;
}
if ((label|0) == 4) {
$0 = 0;
$80 = $0;
STACKTOP = sp;return ($80|0);
}
$18 = $2;
$19 = (_spec_from_algo_950($18)|0);
$spec = $19;
$20 = $spec;
$21 = ($20|0)!=(0|0);
if (!($21)) {
$22 = $2;
HEAP32[$vararg_buffer>>2] = $22;
__gcry_log_debug(37134,$vararg_buffer);
$err = 5;
}
$23 = $err;
$24 = ($23|0)==(0);
$25 = $2;
$26 = ($25|0)==(1);
$or$cond = $24 & $26;
if ($or$cond) {
$27 = (__gcry_fips_mode()|0);
$28 = ($27|0)!=(0);
if ($28) {
__gcry_inactivate_fips_mode(37173);
$29 = (__gcry_enforced_fips_mode()|0);
$30 = ($29|0)!=(0);
if ($30) {
$err = 5;
}
}
}
$31 = $err;
$32 = ($31|0)!=(0);
do {
if (!($32)) {
$33 = $spec;
$34 = ((($33)) + 44|0);
$35 = HEAP32[$34>>2]|0;
$36 = (24 + ($35))|0;
$37 = (($36) - 8)|0;
$size = $37;
$38 = $h;
$39 = ((($38)) + 12|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40 & 1;
$42 = $41&255;
$43 = ($42|0)!=(0);
$44 = $size;
if ($43) {
$45 = (__gcry_malloc_secure($44)|0);
$entry = $45;
} else {
$46 = (__gcry_malloc($44)|0);
$entry = $46;
}
$47 = $entry;
$48 = ($47|0)!=(0|0);
if ($48) {
$52 = $spec;
$53 = $entry;
HEAP32[$53>>2] = $52;
$54 = $h;
$55 = ((($54)) + 16|0);
$56 = HEAP32[$55>>2]|0;
$57 = $entry;
$58 = ((($57)) + 4|0);
HEAP32[$58>>2] = $56;
$59 = $size;
$60 = $entry;
$61 = ((($60)) + 8|0);
HEAP32[$61>>2] = $59;
$62 = $entry;
$63 = $h;
$64 = ((($63)) + 16|0);
HEAP32[$64>>2] = $62;
$65 = $entry;
$66 = HEAP32[$65>>2]|0;
$67 = ((($66)) + 28|0);
$68 = HEAP32[$67>>2]|0;
$69 = $entry;
$70 = ((($69)) + 16|0);
$71 = $h;
$72 = ((($71)) + 12|0);
$73 = HEAP8[$72>>0]|0;
$74 = ($73&255) >>> 2;
$75 = $74 & 1;
$76 = $75&255;
$77 = ($76|0)!=(0);
$78 = $77 ? 256 : 0;
FUNCTION_TABLE_vii[$68 & 63]($70,$78);
break;
} else {
$49 = (___errno_location()|0);
$50 = HEAP32[$49>>2]|0;
$51 = (_gpg_err_code_from_errno($50)|0);
$err = $51;
break;
}
}
} while(0);
$79 = $err;
$0 = $79;
$80 = $0;
STACKTOP = sp;return ($80|0);
}
function _md_start_debug($md,$suffix) {
$md = $md|0;
$suffix = $suffix|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $buf = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_ptr3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer4 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$buf = sp + 28|0;
$0 = $md;
$1 = $suffix;
$2 = (__gcry_fips_mode()|0);
$3 = ($2|0)!=(0);
if ($3) {
STACKTOP = sp;return;
}
$4 = $0;
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(0|0);
if ($8) {
__gcry_log_debug(37182,$vararg_buffer);
STACKTOP = sp;return;
}
$9 = HEAP32[17703]|0;
$10 = (($9) + 1)|0;
HEAP32[17703] = $10;
$11 = HEAP32[17703]|0;
$12 = $1;
HEAP32[$vararg_buffer1>>2] = $11;
$vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr3>>2] = $12;
(_snprintf($buf,49,37214,$vararg_buffer1)|0);
$13 = (_fopen($buf,37231)|0);
$14 = $0;
$15 = HEAP32[$14>>2]|0;
$16 = ((($15)) + 8|0);
HEAP32[$16>>2] = $13;
$17 = $0;
$18 = HEAP32[$17>>2]|0;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)!=(0|0);
if ($21) {
STACKTOP = sp;return;
}
HEAP32[$vararg_buffer4>>2] = $buf;
__gcry_log_debug(37233,$vararg_buffer4);
STACKTOP = sp;return;
}
function __gcry_md_reset($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $r = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 12|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4 & -3;
HEAP8[$3>>0] = $5;
$6 = $0;
$7 = ((($6)) + 4|0);
HEAP32[$7>>2] = 0;
$8 = $0;
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 16|0);
$11 = HEAP32[$10>>2]|0;
$r = $11;
while(1) {
$12 = $r;
$13 = ($12|0)!=(0|0);
if (!($13)) {
break;
}
$14 = $r;
$15 = ((($14)) + 16|0);
$16 = $r;
$17 = HEAP32[$16>>2]|0;
$18 = ((($17)) + 44|0);
$19 = HEAP32[$18>>2]|0;
_memset(($15|0),0,($19|0))|0;
$20 = $r;
$21 = HEAP32[$20>>2]|0;
$22 = ((($21)) + 28|0);
$23 = HEAP32[$22>>2]|0;
$24 = $r;
$25 = ((($24)) + 16|0);
$26 = $0;
$27 = HEAP32[$26>>2]|0;
$28 = ((($27)) + 12|0);
$29 = HEAP8[$28>>0]|0;
$30 = ($29&255) >>> 2;
$31 = $30 & 1;
$32 = $31&255;
$33 = ($32|0)!=(0);
$34 = $33 ? 256 : 0;
FUNCTION_TABLE_vii[$23 & 63]($25,$34);
$35 = $r;
$36 = ((($35)) + 4|0);
$37 = HEAP32[$36>>2]|0;
$r = $37;
}
$38 = $0;
$39 = HEAP32[$38>>2]|0;
$40 = ((($39)) + 20|0);
$41 = HEAP32[$40>>2]|0;
$42 = ($41|0)!=(0|0);
if (!($42)) {
STACKTOP = sp;return;
}
$43 = $0;
$44 = $0;
$45 = HEAP32[$44>>2]|0;
$46 = ((($45)) + 20|0);
$47 = HEAP32[$46>>2]|0;
$48 = $0;
$49 = HEAP32[$48>>2]|0;
$50 = ((($49)) + 24|0);
$51 = HEAP32[$50>>2]|0;
_md_write($43,$47,$51);
STACKTOP = sp;return;
}
function __gcry_md_close($hd) {
$hd = $hd|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $0;
_md_close($1);
STACKTOP = sp;return;
}
function __gcry_md_write($hd,$inbuf,$inlen) {
$hd = $hd|0;
$inbuf = $inbuf|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $inbuf;
$2 = $inlen;
$3 = $0;
$4 = $1;
$5 = $2;
_md_write($3,$4,$5);
STACKTOP = sp;return;
}
function __gcry_md_ctl($hd,$cmd,$buffer,$buflen) {
$hd = $hd|0;
$cmd = $cmd|0;
$buffer = $buffer|0;
$buflen = $buflen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $cmd;
$2 = $buffer;
$3 = $buflen;
$rc = 0;
$4 = $1;
switch ($4|0) {
case 5: {
$5 = $0;
_md_final($5);
break;
}
case 32: {
$6 = $0;
$7 = $2;
_md_start_debug($6,$7);
break;
}
case 33: {
$8 = $0;
_md_stop_debug($8);
break;
}
default: {
$rc = 61;
}
}
$9 = $rc;
STACKTOP = sp;return ($9|0);
}
function _md_final($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $algo = 0, $dlen = 0, $err = 0, $om = 0, $p = 0, $r = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$om = sp + 4|0;
$0 = $a;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 12|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4&255) >>> 1;
$6 = $5 & 1;
$7 = $6&255;
$8 = ($7|0)!=(0);
if ($8) {
STACKTOP = sp;return;
}
$9 = $0;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)!=(0);
if ($12) {
$13 = $0;
_md_write($13,0,0);
}
$14 = $0;
$15 = HEAP32[$14>>2]|0;
$16 = ((($15)) + 16|0);
$17 = HEAP32[$16>>2]|0;
$r = $17;
while(1) {
$18 = $r;
$19 = ($18|0)!=(0|0);
if (!($19)) {
break;
}
$20 = $r;
$21 = HEAP32[$20>>2]|0;
$22 = ((($21)) + 36|0);
$23 = HEAP32[$22>>2]|0;
$24 = $r;
$25 = ((($24)) + 16|0);
FUNCTION_TABLE_vi[$23 & 127]($25);
$26 = $r;
$27 = ((($26)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$r = $28;
}
$29 = $0;
$30 = HEAP32[$29>>2]|0;
$31 = ((($30)) + 12|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32 & -3;
$34 = $33 | 2;
HEAP8[$31>>0] = $34;
$35 = $0;
$36 = HEAP32[$35>>2]|0;
$37 = ((($36)) + 20|0);
$38 = HEAP32[$37>>2]|0;
$39 = ($38|0)!=(0|0);
if (!($39)) {
STACKTOP = sp;return;
}
$40 = $0;
$41 = (_md_get_algo($40)|0);
$algo = $41;
$42 = $0;
$43 = $algo;
$44 = (_md_read($42,$43)|0);
$p = $44;
$45 = $algo;
$46 = (_md_digest_length($45)|0);
$dlen = $46;
$47 = $algo;
$48 = $0;
$49 = HEAP32[$48>>2]|0;
$50 = ((($49)) + 12|0);
$51 = HEAP8[$50>>0]|0;
$52 = $51 & 1;
$53 = $52&255;
$54 = ($53|0)!=(0);
$55 = $54 ? 1 : 0;
$56 = $0;
$57 = HEAP32[$56>>2]|0;
$58 = ((($57)) + 12|0);
$59 = HEAP8[$58>>0]|0;
$60 = ($59&255) >>> 2;
$61 = $60 & 1;
$62 = $61&255;
$63 = ($62|0)!=(0);
$64 = $63 ? 256 : 0;
$65 = $55 | $64;
$66 = (_md_open($om,$47,$65)|0);
$err = $66;
$67 = $err;
$68 = ($67|0)!=(0);
if ($68) {
$69 = $err;
__gcry_fatal_error($69,0);
// unreachable;
}
$70 = HEAP32[$om>>2]|0;
$71 = $0;
$72 = HEAP32[$71>>2]|0;
$73 = ((($72)) + 20|0);
$74 = HEAP32[$73>>2]|0;
$75 = $0;
$76 = HEAP32[$75>>2]|0;
$77 = ((($76)) + 24|0);
$78 = HEAP32[$77>>2]|0;
$79 = (($74) + ($78)|0);
$80 = $0;
$81 = HEAP32[$80>>2]|0;
$82 = ((($81)) + 24|0);
$83 = HEAP32[$82>>2]|0;
_md_write($70,$79,$83);
$84 = HEAP32[$om>>2]|0;
$85 = $p;
$86 = $dlen;
_md_write($84,$85,$86);
$87 = HEAP32[$om>>2]|0;
_md_final($87);
$88 = $p;
$89 = HEAP32[$om>>2]|0;
$90 = $algo;
$91 = (_md_read($89,$90)|0);
$92 = $dlen;
_memcpy(($88|0),($91|0),($92|0))|0;
$93 = HEAP32[$om>>2]|0;
_md_close($93);
STACKTOP = sp;return;
}
function _md_get_algo($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $r = 0, $vararg_buffer = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $a;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = ((($2)) + 16|0);
$4 = HEAP32[$3>>2]|0;
$r = $4;
$5 = $r;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $r;
$8 = ((($7)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)!=(0|0);
if ($10) {
__gcry_fips_signal_error(37120,980,37258,0,37270);
__gcry_log_error(37291,$vararg_buffer);
}
}
$11 = $r;
$12 = ($11|0)!=(0|0);
if (!($12)) {
$16 = 0;
STACKTOP = sp;return ($16|0);
}
$13 = $r;
$14 = HEAP32[$13>>2]|0;
$15 = HEAP32[$14>>2]|0;
$16 = $15;
STACKTOP = sp;return ($16|0);
}
function _md_read($a,$algo) {
$a = $a|0;
$algo = $algo|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $r = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $a;
$2 = $algo;
$3 = $1;
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$r = $6;
$7 = $2;
$8 = ($7|0)!=(0);
if (!($8)) {
$9 = $r;
$10 = ($9|0)!=(0|0);
if (!($10)) {
__gcry_bug(37120,816,37381);
// unreachable;
}
$11 = $r;
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(0|0);
if ($14) {
__gcry_log_debug(37342,$vararg_buffer);
}
$15 = $r;
$16 = HEAP32[$15>>2]|0;
$17 = ((($16)) + 40|0);
$18 = HEAP32[$17>>2]|0;
$19 = $r;
$20 = ((($19)) + 16|0);
$21 = (FUNCTION_TABLE_ii[$18 & 63]($20)|0);
$0 = $21;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
$22 = $1;
$23 = HEAP32[$22>>2]|0;
$24 = ((($23)) + 16|0);
$25 = HEAP32[$24>>2]|0;
$r = $25;
while(1) {
$26 = $r;
$27 = ($26|0)!=(0|0);
if (!($27)) {
label = 11;
break;
}
$28 = $r;
$29 = HEAP32[$28>>2]|0;
$30 = HEAP32[$29>>2]|0;
$31 = $2;
$32 = ($30|0)==($31|0);
$33 = $r;
if ($32) {
break;
}
$40 = ((($33)) + 4|0);
$41 = HEAP32[$40>>2]|0;
$r = $41;
}
if ((label|0) == 11) {
__gcry_bug(37120,816,37381);
// unreachable;
}
$34 = HEAP32[$33>>2]|0;
$35 = ((($34)) + 40|0);
$36 = HEAP32[$35>>2]|0;
$37 = $r;
$38 = ((($37)) + 16|0);
$39 = (FUNCTION_TABLE_ii[$36 & 63]($38)|0);
$0 = $39;
$42 = $0;
STACKTOP = sp;return ($42|0);
}
function _md_digest_length($algorithm) {
$algorithm = $algorithm|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algorithm;
$1 = $0;
$2 = (_spec_from_algo_950($1)|0);
$spec = $2;
$3 = $spec;
$4 = ($3|0)!=(0|0);
if (!($4)) {
$8 = 0;
STACKTOP = sp;return ($8|0);
}
$5 = $spec;
$6 = ((($5)) + 24|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7;
STACKTOP = sp;return ($8|0);
}
function __gcry_md_setkey($hd,$key,$keylen) {
$hd = $hd|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $key;
$2 = $keylen;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = ((($4)) + 20|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $0;
$9 = $1;
$10 = $2;
$11 = (_prepare_macpads($8,$9,$10)|0);
$rc = $11;
$12 = $rc;
$13 = ($12|0)!=(0);
if (!($13)) {
$14 = $0;
__gcry_md_reset($14);
}
} else {
$rc = 70;
}
$15 = $rc;
STACKTOP = sp;return ($15|0);
}
function _prepare_macpads($hd,$key,$keylen) {
$hd = $hd|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $algo = 0, $helpkey = 0, $i = 0, $ipad = 0, $opad = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $hd;
$2 = $key;
$3 = $keylen;
$4 = $1;
$5 = (_md_get_algo($4)|0);
$algo = $5;
$helpkey = 0;
$6 = $algo;
$7 = ($6|0)!=(0);
if (!($7)) {
$0 = 5;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
$8 = $3;
$9 = $1;
$10 = HEAP32[$9>>2]|0;
$11 = ((($10)) + 24|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($8>>>0)>($12>>>0);
do {
if ($13) {
$14 = $algo;
$15 = (_md_digest_length($14)|0);
$16 = (__gcry_malloc_secure($15)|0);
$helpkey = $16;
$17 = $helpkey;
$18 = ($17|0)!=(0|0);
if ($18) {
$22 = $algo;
$23 = $helpkey;
$24 = $2;
$25 = $3;
__gcry_md_hash_buffer($22,$23,$24,$25);
$26 = $helpkey;
$2 = $26;
$27 = $algo;
$28 = (_md_digest_length($27)|0);
$3 = $28;
$29 = $3;
$30 = $1;
$31 = HEAP32[$30>>2]|0;
$32 = ((($31)) + 24|0);
$33 = HEAP32[$32>>2]|0;
$34 = ($29>>>0)<=($33>>>0);
if ($34) {
break;
}
__gcry_assert_failed(37425,37120,716,37458);
// unreachable;
} else {
$19 = (___errno_location()|0);
$20 = HEAP32[$19>>2]|0;
$21 = (_gpg_err_code_from_errno($20)|0);
$0 = $21;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
}
} while(0);
$35 = $1;
$36 = HEAP32[$35>>2]|0;
$37 = ((($36)) + 20|0);
$38 = HEAP32[$37>>2]|0;
$39 = $1;
$40 = HEAP32[$39>>2]|0;
$41 = ((($40)) + 24|0);
$42 = HEAP32[$41>>2]|0;
$43 = $42<<1;
_memset(($38|0),0,($43|0))|0;
$44 = $1;
$45 = HEAP32[$44>>2]|0;
$46 = ((($45)) + 20|0);
$47 = HEAP32[$46>>2]|0;
$ipad = $47;
$48 = $1;
$49 = HEAP32[$48>>2]|0;
$50 = ((($49)) + 20|0);
$51 = HEAP32[$50>>2]|0;
$52 = $1;
$53 = HEAP32[$52>>2]|0;
$54 = ((($53)) + 24|0);
$55 = HEAP32[$54>>2]|0;
$56 = (($51) + ($55)|0);
$opad = $56;
$57 = $ipad;
$58 = $2;
$59 = $3;
_memcpy(($57|0),($58|0),($59|0))|0;
$60 = $opad;
$61 = $2;
$62 = $3;
_memcpy(($60|0),($61|0),($62|0))|0;
$i = 0;
while(1) {
$63 = $i;
$64 = $1;
$65 = HEAP32[$64>>2]|0;
$66 = ((($65)) + 24|0);
$67 = HEAP32[$66>>2]|0;
$68 = ($63|0)<($67|0);
if (!($68)) {
break;
}
$69 = $i;
$70 = $ipad;
$71 = (($70) + ($69)|0);
$72 = HEAP8[$71>>0]|0;
$73 = $72&255;
$74 = $73 ^ 54;
$75 = $74&255;
HEAP8[$71>>0] = $75;
$76 = $i;
$77 = $opad;
$78 = (($77) + ($76)|0);
$79 = HEAP8[$78>>0]|0;
$80 = $79&255;
$81 = $80 ^ 92;
$82 = $81&255;
HEAP8[$78>>0] = $82;
$83 = $i;
$84 = (($83) + 1)|0;
$i = $84;
}
$85 = $helpkey;
__gcry_free($85);
$0 = 0;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
function __gcry_md_hash_buffer($algo,$digest,$buffer,$length) {
$algo = $algo|0;
$digest = $digest|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $err = 0, $h = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$h = sp + 12|0;
$0 = $algo;
$1 = $digest;
$2 = $buffer;
$3 = $length;
$4 = $0;
$5 = ($4|0)==(2);
if ($5) {
$6 = $1;
$7 = $2;
$8 = $3;
__gcry_sha1_hash_buffer($6,$7,$8);
STACKTOP = sp;return;
}
$9 = $0;
$10 = ($9|0)==(3);
if ($10) {
$11 = (__gcry_fips_mode()|0);
$12 = ($11|0)!=(0);
if (!($12)) {
$13 = $1;
$14 = $2;
$15 = $3;
__gcry_rmd160_hash_buffer($13,$14,$15);
STACKTOP = sp;return;
}
}
$16 = $0;
$17 = ($16|0)==(1);
if ($17) {
$18 = (__gcry_fips_mode()|0);
$19 = ($18|0)!=(0);
if ($19) {
__gcry_inactivate_fips_mode(37173);
$20 = (__gcry_enforced_fips_mode()|0);
$21 = ($20|0)!=(0);
if ($21) {
__gcry_fips_noreturn();
}
}
}
$22 = $0;
$23 = (_md_open($h,$22,0)|0);
$err = $23;
$24 = $err;
$25 = ($24|0)!=(0);
if ($25) {
$26 = $0;
$27 = $err;
$28 = (_gcry_error_984($27)|0);
$29 = (_gpg_strerror($28)|0);
HEAP32[$vararg_buffer>>2] = $26;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $29;
__gcry_log_bug(37389,$vararg_buffer);
// unreachable;
}
$30 = HEAP32[$h>>2]|0;
$31 = $2;
$32 = $3;
_md_write($30,$31,$32);
$33 = HEAP32[$h>>2]|0;
_md_final($33);
$34 = $1;
$35 = HEAP32[$h>>2]|0;
$36 = $0;
$37 = (_md_read($35,$36)|0);
$38 = $0;
$39 = (_md_digest_length($38)|0);
_memcpy(($34|0),($37|0),($39|0))|0;
$40 = HEAP32[$h>>2]|0;
_md_close($40);
STACKTOP = sp;return;
}
function _gcry_error_984($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gcry_err_make_985(32,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gcry_err_make_985($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $0;
$3 = $1;
$4 = (_gpg_err_make_986($2,$3)|0);
STACKTOP = sp;return ($4|0);
}
function _gpg_err_make_986($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function __gcry_md_read($hd,$algo) {
$hd = $hd|0;
$algo = $algo|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $algo;
$2 = $0;
(__gcry_md_ctl($2,5,0,0)|0);
$3 = $0;
$4 = $1;
$5 = (_md_read($3,$4)|0);
STACKTOP = sp;return ($5|0);
}
function __gcry_md_hash_buffers($algo,$flags,$digest,$iov,$iovcnt) {
$algo = $algo|0;
$flags = $flags|0;
$digest = $digest|0;
$iov = $iov|0;
$iovcnt = $iovcnt|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $h = 0, $hmac = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$h = sp + 4|0;
$1 = $algo;
$2 = $flags;
$3 = $digest;
$4 = $iov;
$5 = $iovcnt;
$6 = $4;
$7 = ($6|0)==(0|0);
$8 = $5;
$9 = ($8|0)<(0);
$or$cond = $7 | $9;
if ($or$cond) {
$0 = 45;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
$10 = $2;
$11 = $10 & -3;
$12 = ($11|0)!=(0);
if ($12) {
$0 = 45;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
$13 = $2;
$14 = $13 & 2;
$15 = ($14|0)!=(0);
$16 = $15 ^ 1;
$17 = $16 ^ 1;
$18 = $17&1;
$hmac = $18;
$19 = $hmac;
$20 = ($19|0)!=(0);
$21 = $5;
$22 = ($21|0)<(1);
$or$cond3 = $20 & $22;
if ($or$cond3) {
$0 = 45;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
$23 = $1;
$24 = ($23|0)!=(2);
$25 = $hmac;
$26 = ($25|0)!=(0);
$or$cond5 = $24 | $26;
if ($or$cond5) {
$30 = $1;
$31 = ($30|0)==(1);
if ($31) {
$32 = (__gcry_fips_mode()|0);
$33 = ($32|0)!=(0);
if ($33) {
__gcry_inactivate_fips_mode(37173);
$34 = (__gcry_enforced_fips_mode()|0);
$35 = ($34|0)!=(0);
if ($35) {
__gcry_fips_noreturn();
}
}
}
$36 = $1;
$37 = $hmac;
$38 = ($37|0)!=(0);
$39 = $38 ? 2 : 0;
$40 = (_md_open($h,$36,$39)|0);
$rc = $40;
$41 = $rc;
$42 = ($41|0)!=(0);
if ($42) {
$43 = $rc;
$0 = $43;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
$44 = $hmac;
$45 = ($44|0)!=(0);
do {
if ($45) {
$46 = HEAP32[$h>>2]|0;
$47 = $4;
$48 = ((($47)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = $4;
$51 = ((($50)) + 4|0);
$52 = HEAP32[$51>>2]|0;
$53 = (($49) + ($52)|0);
$54 = $4;
$55 = ((($54)) + 8|0);
$56 = HEAP32[$55>>2]|0;
$57 = (__gcry_md_setkey($46,$53,$56)|0);
$rc = $57;
$58 = $rc;
$59 = ($58|0)!=(0);
if (!($59)) {
$62 = $4;
$63 = ((($62)) + 16|0);
$4 = $63;
$64 = $5;
$65 = (($64) + -1)|0;
$5 = $65;
break;
}
$60 = HEAP32[$h>>2]|0;
_md_close($60);
$61 = $rc;
$0 = $61;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
} while(0);
while(1) {
$66 = $5;
$67 = ($66|0)!=(0);
$68 = HEAP32[$h>>2]|0;
if (!($67)) {
break;
}
$69 = $4;
$70 = ((($69)) + 12|0);
$71 = HEAP32[$70>>2]|0;
$72 = $4;
$73 = ((($72)) + 4|0);
$74 = HEAP32[$73>>2]|0;
$75 = (($71) + ($74)|0);
$76 = $4;
$77 = ((($76)) + 8|0);
$78 = HEAP32[$77>>2]|0;
_md_write($68,$75,$78);
$79 = $4;
$80 = ((($79)) + 16|0);
$4 = $80;
$81 = $5;
$82 = (($81) + -1)|0;
$5 = $82;
}
_md_final($68);
$83 = $3;
$84 = HEAP32[$h>>2]|0;
$85 = $1;
$86 = (_md_read($84,$85)|0);
$87 = $1;
$88 = (_md_digest_length($87)|0);
_memcpy(($83|0),($86|0),($88|0))|0;
$89 = HEAP32[$h>>2]|0;
_md_close($89);
} else {
$27 = $3;
$28 = $4;
$29 = $5;
__gcry_sha1_hash_buffers($27,$28,$29);
}
$0 = 0;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
function __gcry_md_get_algo($hd) {
$hd = $hd|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $0;
$2 = (_md_get_algo($1)|0);
STACKTOP = sp;return ($2|0);
}
function __gcry_md_get_algo_dlen($algorithm) {
$algorithm = $algorithm|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algorithm;
$1 = $0;
$2 = (_md_digest_length($1)|0);
STACKTOP = sp;return ($2|0);
}
function __gcry_md_algo_info($algo,$what,$buffer,$nbytes) {
$algo = $algo|0;
$what = $what|0;
$buffer = $buffer|0;
$nbytes = $nbytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $asn = 0, $asnlen = 0, $or$cond = 0, $or$cond3 = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$asnlen = sp;
$0 = $algo;
$1 = $what;
$2 = $buffer;
$3 = $nbytes;
$4 = $1;
L1: do {
switch ($4|0) {
case 8: {
$5 = $2;
$6 = ($5|0)!=(0|0);
$7 = $3;
$8 = ($7|0)!=(0|0);
$or$cond = $6 | $8;
if ($or$cond) {
$rc = 45;
break L1;
} else {
$9 = $0;
$10 = (_check_digest_algo($9)|0);
$rc = $10;
break L1;
}
break;
}
case 10: {
$11 = $0;
$12 = (_check_digest_algo($11)|0);
$rc = $12;
$13 = $rc;
$14 = ($13|0)!=(0);
if (!($14)) {
$15 = $0;
$16 = (_md_asn_oid($15,$asnlen,0)|0);
$asn = $16;
$17 = $2;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = $3;
$20 = HEAP32[$19>>2]|0;
$21 = HEAP32[$asnlen>>2]|0;
$22 = ($20>>>0)>=($21>>>0);
if ($22) {
$23 = $2;
$24 = $asn;
$25 = HEAP32[$asnlen>>2]|0;
_memcpy(($23|0),($24|0),($25|0))|0;
$26 = HEAP32[$asnlen>>2]|0;
$27 = $3;
HEAP32[$27>>2] = $26;
break L1;
}
}
$28 = $2;
$29 = ($28|0)==(0|0);
$30 = $3;
$31 = ($30|0)!=(0|0);
$or$cond3 = $29 & $31;
if ($or$cond3) {
$32 = HEAP32[$asnlen>>2]|0;
$33 = $3;
HEAP32[$33>>2] = $32;
break L1;
}
$34 = $2;
$35 = ($34|0)!=(0|0);
if ($35) {
$rc = 66;
break L1;
} else {
$rc = 45;
break L1;
}
}
break;
}
case 57: {
$36 = $0;
$37 = $3;
$38 = ($37|0)!=(0|0);
if ($38) {
$39 = $3;
$40 = HEAP32[$39>>2]|0;
$41 = $40;
} else {
$41 = 0;
}
$42 = (__gcry_md_selftest($36,$41,0)|0);
$43 = (_gpg_err_code_1011($42)|0);
$rc = $43;
break;
}
default: {
$rc = 61;
}
}
} while(0);
$44 = $rc;
STACKTOP = sp;return ($44|0);
}
function _check_digest_algo($algorithm) {
$algorithm = $algorithm|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algorithm;
$2 = $1;
$3 = (_spec_from_algo_950($2)|0);
$spec = $3;
$4 = $spec;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $spec;
$7 = ((($6)) + 4|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8 & 1;
$10 = $9&255;
$11 = ($10|0)!=(0);
if (!($11)) {
$0 = 0;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
}
$0 = 5;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
function _md_asn_oid($algorithm,$asnlen,$mdlen) {
$algorithm = $algorithm|0;
$asnlen = $asnlen|0;
$mdlen = $mdlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $asnoid = 0, $spec = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $algorithm;
$1 = $asnlen;
$2 = $mdlen;
$asnoid = 0;
$3 = $0;
$4 = (_spec_from_algo_950($3)|0);
$spec = $4;
$5 = $spec;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$23 = $0;
HEAP32[$vararg_buffer>>2] = $23;
__gcry_log_bug(37474,$vararg_buffer);
// unreachable;
}
$7 = $1;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $spec;
$10 = ((($9)) + 16|0);
$11 = HEAP32[$10>>2]|0;
$12 = $1;
HEAP32[$12>>2] = $11;
}
$13 = $2;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$19 = $spec;
$20 = ((($19)) + 12|0);
$21 = HEAP32[$20>>2]|0;
$asnoid = $21;
$22 = $asnoid;
STACKTOP = sp;return ($22|0);
}
$15 = $spec;
$16 = ((($15)) + 24|0);
$17 = HEAP32[$16>>2]|0;
$18 = $2;
HEAP32[$18>>2] = $17;
$19 = $spec;
$20 = ((($19)) + 12|0);
$21 = HEAP32[$20>>2]|0;
$asnoid = $21;
$22 = $asnoid;
STACKTOP = sp;return ($22|0);
}
function __gcry_md_selftest($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$ec = 0;
$3 = $0;
$4 = (_spec_from_algo_950($3)|0);
$spec = $4;
$5 = $spec;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $spec;
$8 = ((($7)) + 4|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 & 1;
$11 = $10&255;
$12 = ($11|0)!=(0);
if (!($12)) {
$13 = $spec;
$14 = ((($13)) + 48|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $spec;
$18 = ((($17)) + 48|0);
$19 = HEAP32[$18>>2]|0;
$20 = $0;
$21 = $1;
$22 = $2;
$23 = (FUNCTION_TABLE_iiii[$19 & 127]($20,$21,$22)|0);
$ec = $23;
$48 = $ec;
$49 = (_gpg_error_1010($48)|0);
STACKTOP = sp;return ($49|0);
}
}
}
$24 = $spec;
$25 = ($24|0)!=(0|0);
if ($25) {
$26 = $spec;
$27 = ((($26)) + 48|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)!=(0|0);
$30 = $29;
} else {
$30 = 0;
}
$31 = $30 ? 5 : 69;
$ec = $31;
$32 = $2;
$33 = ($32|0)!=(0|0);
if (!($33)) {
$48 = $ec;
$49 = (_gpg_error_1010($48)|0);
STACKTOP = sp;return ($49|0);
}
$34 = $2;
$35 = $0;
$36 = $spec;
$37 = ($36|0)!=(0|0);
if ($37) {
$38 = $spec;
$39 = ((($38)) + 4|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40 & 1;
$42 = $41&255;
$43 = ($42|0)!=(0);
if ($43) {
label = 10;
} else {
$47 = 38027;
}
} else {
label = 10;
}
if ((label|0) == 10) {
$44 = $spec;
$45 = ($44|0)!=(0|0);
$46 = $45 ? 37988 : 38007;
$47 = $46;
}
FUNCTION_TABLE_viiii[$34 & 63](43192,$35,38049,$47);
$48 = $ec;
$49 = (_gpg_error_1010($48)|0);
STACKTOP = sp;return ($49|0);
}
function _gpg_error_1010($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_986(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_code_1011($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = $1 & 65535;
STACKTOP = sp;return ($2|0);
}
function __gcry_md_init() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_primegen_init() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_register_primegen_progress($cb,$cb_data) {
$cb = $cb|0;
$cb_data = $cb_data|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $cb;
$1 = $cb_data;
$2 = $0;
HEAP32[17704] = $2;
$3 = $1;
HEAP32[17705] = $3;
STACKTOP = sp;return;
}
function __gcry_generate_secret_prime($nbits,$random_level,$extra_check,$extra_check_arg) {
$nbits = $nbits|0;
$random_level = $random_level|0;
$extra_check = $extra_check|0;
$extra_check_arg = $extra_check_arg|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $prime = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = $random_level;
$2 = $extra_check;
$3 = $extra_check_arg;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (_gen_prime($4,1,$5,$6,$7)|0);
$prime = $8;
_progress(10);
$9 = $prime;
STACKTOP = sp;return ($9|0);
}
function _gen_prime($nbits,$secret,$randomlevel,$extra_check,$extra_check_arg) {
$nbits = $nbits|0;
$secret = $secret|0;
$randomlevel = $randomlevel|0;
$extra_check = $extra_check|0;
$extra_check_arg = $extra_check_arg|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $count1 = 0, $count2 = 0, $dotcount = 0, $i = 0, $mods = 0, $pminus1 = 0, $prime = 0, $ptest = 0, $result = 0, $step = 0, $val_2 = 0, $val_3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0;
var $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$count2 = sp + 20|0;
$0 = $nbits;
$1 = $secret;
$2 = $randomlevel;
$3 = $extra_check;
$4 = $extra_check_arg;
$5 = $0;
$6 = ($5>>>0)<(16);
if ($6) {
HEAP32[$vararg_buffer>>2] = 16;
__gcry_log_fatal(37503,$vararg_buffer);
// unreachable;
}
$7 = HEAP32[1085]|0;
$8 = $7<<2;
$9 = (__gcry_xmalloc($8)|0);
$mods = $9;
$10 = (__gcry_mpi_alloc_set_ui(2)|0);
$val_2 = $10;
$11 = (__gcry_mpi_alloc_set_ui(3)|0);
$val_3 = $11;
$12 = $1;
$13 = ($12|0)!=(0);
$14 = $0;
if ($13) {
$15 = (__gcry_mpi_snew($14)|0);
$17 = $15;
} else {
$16 = (__gcry_mpi_new($14)|0);
$17 = $16;
}
$prime = $17;
$18 = $prime;
$19 = (__gcry_mpi_alloc_like($18)|0);
$result = $19;
$20 = $prime;
$21 = (__gcry_mpi_alloc_like($20)|0);
$pminus1 = $21;
$22 = $prime;
$23 = (__gcry_mpi_alloc_like($22)|0);
$ptest = $23;
HEAP32[$count2>>2] = 0;
$count1 = 0;
L8: while(1) {
$dotcount = 0;
$24 = $prime;
$25 = $0;
$26 = $2;
__gcry_mpi_randomize($24,$25,$26);
$27 = $prime;
$28 = $0;
$29 = (($28) - 1)|0;
__gcry_mpi_set_highbit($27,$29);
$30 = $1;
$31 = ($30|0)!=(0);
if ($31) {
$32 = $prime;
$33 = $0;
$34 = (($33) - 2)|0;
__gcry_mpi_set_bit($32,$34);
}
$35 = $prime;
__gcry_mpi_set_bit($35,0);
$i = 0;
while(1) {
$36 = $i;
$37 = (16512 + ($36<<1)|0);
$38 = HEAP16[$37>>1]|0;
$39 = $38&65535;
$x = $39;
$40 = ($39|0)!=(0);
if (!($40)) {
break;
}
$41 = $prime;
$42 = $x;
$43 = (__gcry_mpi_fdiv_r_ui(0,$41,$42)|0);
$44 = $i;
$45 = $mods;
$46 = (($45) + ($44<<2)|0);
HEAP32[$46>>2] = $43;
$47 = $i;
$48 = (($47) + 1)|0;
$i = $48;
}
$step = 0;
while(1) {
$49 = $step;
$50 = ($49>>>0)<(20000);
if (!($50)) {
break;
}
$51 = $count1;
$52 = (($51) + 1)|0;
$count1 = $52;
$i = 0;
while(1) {
$53 = $i;
$54 = (16512 + ($53<<1)|0);
$55 = HEAP16[$54>>1]|0;
$56 = $55&65535;
$x = $56;
$57 = ($56|0)!=(0);
if (!($57)) {
break;
}
while(1) {
$58 = $i;
$59 = $mods;
$60 = (($59) + ($58<<2)|0);
$61 = HEAP32[$60>>2]|0;
$62 = $step;
$63 = (($61) + ($62))|0;
$64 = $x;
$65 = ($63>>>0)>=($64>>>0);
if (!($65)) {
break;
}
$66 = $x;
$67 = $i;
$68 = $mods;
$69 = (($68) + ($67<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = (($70) - ($66))|0;
HEAP32[$69>>2] = $71;
}
$72 = $i;
$73 = $mods;
$74 = (($73) + ($72<<2)|0);
$75 = HEAP32[$74>>2]|0;
$76 = $step;
$77 = (($75) + ($76))|0;
$78 = ($77|0)!=(0);
if (!($78)) {
break;
}
$79 = $i;
$80 = (($79) + 1)|0;
$i = $80;
}
$81 = $x;
$82 = ($81|0)!=(0);
if (!($82)) {
$83 = $ptest;
$84 = $prime;
$85 = $step;
__gcry_mpi_add_ui($83,$84,$85);
$86 = HEAP32[$count2>>2]|0;
$87 = (($86) + 1)|0;
HEAP32[$count2>>2] = $87;
$88 = $pminus1;
$89 = $ptest;
__gcry_mpi_sub_ui($88,$89,1);
$90 = $result;
$91 = $val_2;
$92 = $pminus1;
$93 = $ptest;
__gcry_mpi_powm($90,$91,$92,$93);
$94 = $result;
$95 = (__gcry_mpi_cmp_ui($94,1)|0);
$96 = ($95|0)!=(0);
if (!($96)) {
$97 = $ptest;
$98 = (_is_prime($97,5,$count2)|0);
$99 = ($98|0)!=(0);
if ($99) {
$100 = $ptest;
$101 = $0;
$102 = (($101) - 1)|0;
$103 = $1;
$104 = (($102) - ($103))|0;
$105 = (__gcry_mpi_test_bit($100,$104)|0);
$106 = ($105|0)!=(0);
if (!($106)) {
label = 24;
break;
}
$107 = $3;
$108 = ($107|0)!=(0|0);
if (!($108)) {
label = 28;
break L8;
}
$109 = $3;
$110 = $4;
$111 = $ptest;
$112 = (FUNCTION_TABLE_iii[$109 & 127]($110,$111)|0);
$113 = ($112|0)!=(0);
if (!($113)) {
label = 28;
break L8;
}
_progress(47);
}
}
$121 = $dotcount;
$122 = (($121) + 1)|0;
$dotcount = $122;
$123 = ($122|0)==(10);
if ($123) {
_progress(46);
$dotcount = 0;
}
}
$124 = $step;
$125 = (($124) + 2)|0;
$step = $125;
}
if ((label|0) == 24) {
label = 0;
_progress(10);
__gcry_log_debug(37651,$vararg_buffer1);
}
_progress(58);
}
if ((label|0) == 28) {
$114 = $val_2;
__gcry_mpi_free($114);
$115 = $val_3;
__gcry_mpi_free($115);
$116 = $result;
__gcry_mpi_free($116);
$117 = $pminus1;
__gcry_mpi_free($117);
$118 = $prime;
__gcry_mpi_free($118);
$119 = $mods;
__gcry_free($119);
$120 = $ptest;
STACKTOP = sp;return ($120|0);
}
return (0)|0;
}
function _is_prime($n,$steps,$count) {
$n = $n|0;
$steps = $steps|0;
$count = $count|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $a2 = 0, $i = 0, $j = 0, $k = 0, $nbits = 0, $nminus1 = 0, $q = 0, $rc = 0, $x = 0, $y = 0, $z = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $n;
$1 = $steps;
$2 = $count;
$3 = $0;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (__gcry_mpi_alloc($5)|0);
$x = $6;
$7 = $0;
$8 = ((($7)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$10 = (__gcry_mpi_alloc($9)|0);
$y = $10;
$11 = $0;
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = (__gcry_mpi_alloc($13)|0);
$z = $14;
$15 = $0;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = (__gcry_mpi_alloc($17)|0);
$nminus1 = $18;
$19 = (__gcry_mpi_alloc_set_ui(2)|0);
$a2 = $19;
$rc = 0;
$20 = $0;
$21 = (__gcry_mpi_get_nbits($20)|0);
$nbits = $21;
$22 = $1;
$23 = ($22|0)<(5);
if ($23) {
$1 = 5;
}
$24 = $nminus1;
$25 = $0;
__gcry_mpi_sub_ui($24,$25,1);
$26 = $nminus1;
$27 = (__gcry_mpi_copy($26)|0);
$q = $27;
$28 = $q;
$29 = (__gcry_mpi_trailing_zeros($28)|0);
$k = $29;
$30 = $q;
$31 = $q;
$32 = $k;
__gcry_mpi_tdiv_q_2exp($30,$31,$32);
$i = 0;
L4: while(1) {
$33 = $i;
$34 = $1;
$35 = ($33>>>0)<($34>>>0);
if (!($35)) {
label = 22;
break;
}
$36 = $2;
$37 = HEAP32[$36>>2]|0;
$38 = (($37) + 1)|0;
HEAP32[$36>>2] = $38;
$39 = $i;
$40 = ($39|0)!=(0);
$41 = $x;
if ($40) {
$42 = $nbits;
__gcry_mpi_randomize($41,$42,0);
$43 = $x;
$44 = $nbits;
$45 = (($44) - 2)|0;
$46 = (__gcry_mpi_test_bit($43,$45)|0);
$47 = ($46|0)!=(0);
$48 = $x;
$49 = $nbits;
$50 = (($49) - 2)|0;
__gcry_mpi_set_highbit($48,$50);
if (!($47)) {
$51 = $x;
$52 = $nbits;
$53 = (($52) - 2)|0;
__gcry_mpi_clear_bit($51,$53);
}
$54 = $x;
$55 = $nminus1;
$56 = (__gcry_mpi_cmp($54,$55)|0);
$57 = ($56|0)<(0);
if (!($57)) {
label = 11;
break;
}
$58 = $x;
$59 = (__gcry_mpi_cmp_ui($58,1)|0);
$60 = ($59|0)>(0);
if (!($60)) {
label = 11;
break;
}
} else {
(__gcry_mpi_set_ui($41,2)|0);
}
$61 = $y;
$62 = $x;
$63 = $q;
$64 = $0;
__gcry_mpi_powm($61,$62,$63,$64);
$65 = $y;
$66 = (__gcry_mpi_cmp_ui($65,1)|0);
$67 = ($66|0)!=(0);
if ($67) {
$68 = $y;
$69 = $nminus1;
$70 = (__gcry_mpi_cmp($68,$69)|0);
$71 = ($70|0)!=(0);
if ($71) {
$j = 1;
while(1) {
$72 = $j;
$73 = $k;
$74 = ($72>>>0)<($73>>>0);
if ($74) {
$75 = $y;
$76 = $nminus1;
$77 = (__gcry_mpi_cmp($75,$76)|0);
$78 = ($77|0)!=(0);
$100 = $78;
} else {
$100 = 0;
}
$79 = $y;
if (!($100)) {
break;
}
$80 = $y;
$81 = $a2;
$82 = $0;
__gcry_mpi_powm($79,$80,$81,$82);
$83 = $y;
$84 = (__gcry_mpi_cmp_ui($83,1)|0);
$85 = ($84|0)!=(0);
if (!($85)) {
label = 23;
break L4;
}
$86 = $j;
$87 = (($86) + 1)|0;
$j = $87;
}
$88 = $nminus1;
$89 = (__gcry_mpi_cmp($79,$88)|0);
$90 = ($89|0)!=(0);
if ($90) {
label = 23;
break;
}
}
}
_progress(43);
$91 = $i;
$92 = (($91) + 1)|0;
$i = $92;
}
if ((label|0) == 11) {
__gcry_assert_failed(37550,37622,951,37633);
// unreachable;
}
else if ((label|0) == 22) {
$rc = 1;
$93 = $x;
__gcry_mpi_free($93);
$94 = $y;
__gcry_mpi_free($94);
$95 = $z;
__gcry_mpi_free($95);
$96 = $nminus1;
__gcry_mpi_free($96);
$97 = $q;
__gcry_mpi_free($97);
$98 = $a2;
__gcry_mpi_free($98);
$99 = $rc;
STACKTOP = sp;return ($99|0);
}
else if ((label|0) == 23) {
$93 = $x;
__gcry_mpi_free($93);
$94 = $y;
__gcry_mpi_free($94);
$95 = $z;
__gcry_mpi_free($95);
$96 = $nminus1;
__gcry_mpi_free($96);
$97 = $q;
__gcry_mpi_free($97);
$98 = $a2;
__gcry_mpi_free($98);
$99 = $rc;
STACKTOP = sp;return ($99|0);
}
return (0)|0;
}
function _progress($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = HEAP32[17704]|0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = HEAP32[17704]|0;
$4 = HEAP32[17705]|0;
$5 = $0;
FUNCTION_TABLE_viiiii[$3 & 127]($4,37642,$5,0,0);
STACKTOP = sp;return;
}
function _check_prime($prime,$val_2,$rm_rounds,$cb_func,$cb_arg) {
$prime = $prime|0;
$val_2 = $val_2|0;
$rm_rounds = $rm_rounds|0;
$cb_func = $cb_func|0;
$cb_arg = $cb_arg|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $count = 0, $i = 0, $pminus1 = 0, $result = 0;
var $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$count = sp + 8|0;
$1 = $prime;
$2 = $val_2;
$3 = $rm_rounds;
$4 = $cb_func;
$5 = $cb_arg;
HEAP32[$count>>2] = 0;
$i = 0;
while(1) {
$6 = $i;
$7 = (16512 + ($6<<1)|0);
$8 = HEAP16[$7>>1]|0;
$9 = $8&65535;
$x = $9;
$10 = ($9|0)!=(0);
$11 = $1;
if (!($10)) {
break;
}
$12 = $x;
$13 = (__gcry_mpi_divisible_ui($11,$12)|0);
$14 = ($13|0)!=(0);
if ($14) {
label = 4;
break;
}
$21 = $i;
$22 = (($21) + 1)|0;
$i = $22;
}
if ((label|0) == 4) {
$15 = $1;
$16 = $x;
$17 = (__gcry_mpi_cmp_ui($15,$16)|0);
$18 = ($17|0)!=(0);
$19 = $18 ^ 1;
$20 = $19&1;
$0 = $20;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
$23 = (__gcry_mpi_alloc_like($11)|0);
$result = $23;
$24 = $1;
$25 = (__gcry_mpi_alloc_like($24)|0);
$pminus1 = $25;
$26 = $pminus1;
$27 = $1;
__gcry_mpi_sub_ui($26,$27,1);
$28 = $result;
$29 = $2;
$30 = $pminus1;
$31 = $1;
__gcry_mpi_powm($28,$29,$30,$31);
$32 = $pminus1;
__gcry_mpi_free($32);
$33 = $result;
$34 = (__gcry_mpi_cmp_ui($33,1)|0);
$35 = ($34|0)!=(0);
$36 = $result;
__gcry_mpi_free($36);
if ($35) {
_progress(46);
$0 = 0;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
$37 = $4;
$38 = ($37|0)!=(0|0);
if ($38) {
$39 = $4;
$40 = $5;
$41 = $1;
$42 = (FUNCTION_TABLE_iiii[$39 & 127]($40,2,$41)|0);
$43 = ($42|0)!=(0);
if ($43) {
label = 10;
}
} else {
label = 10;
}
do {
if ((label|0) == 10) {
$44 = $1;
$45 = $3;
$46 = (_is_prime($44,$45,$count)|0);
$47 = ($46|0)!=(0);
if ($47) {
$48 = $4;
$49 = ($48|0)!=(0|0);
if ($49) {
$50 = $4;
$51 = $5;
$52 = $1;
$53 = (FUNCTION_TABLE_iiii[$50 & 127]($51,1,$52)|0);
$54 = ($53|0)!=(0);
if (!($54)) {
break;
}
}
$0 = 1;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
}
} while(0);
_progress(46);
$0 = 0;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
function __gcry_derive_x931_prime($xp,$xp1,$xp2,$e,$r_p1,$r_p2) {
$xp = $xp|0;
$xp1 = $xp1|0;
$xp2 = $xp2|0;
$e = $e|0;
$r_p1 = $r_p1|0;
$r_p2 = $r_p2|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $gcdres = 0, $gcdtmp = 0, $or$cond = 0, $or$cond3 = 0, $p1 = 0, $p1p2 = 0, $p2 = 0, $r1 = 0, $tmp = 0, $val_2 = 0, $yp0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $xp;
$2 = $xp1;
$3 = $xp2;
$4 = $e;
$5 = $r_p1;
$6 = $r_p2;
$7 = $1;
$8 = ($7|0)!=(0|0);
$9 = $2;
$10 = ($9|0)!=(0|0);
$or$cond = $8 & $10;
$11 = $3;
$12 = ($11|0)!=(0|0);
$or$cond3 = $or$cond & $12;
if (!($or$cond3)) {
$0 = 0;
$104 = $0;
STACKTOP = sp;return ($104|0);
}
$13 = $4;
$14 = ($13|0)!=(0|0);
if ($14) {
$15 = $4;
$16 = (__gcry_mpi_test_bit($15,0)|0);
$17 = ($16|0)!=(0);
if ($17) {
$18 = $2;
$19 = (_find_x931_prime($18)|0);
$p1 = $19;
$20 = $3;
$21 = (_find_x931_prime($20)|0);
$p2 = $21;
$22 = $1;
$23 = (__gcry_mpi_alloc_like($22)|0);
$p1p2 = $23;
$24 = $p1p2;
$25 = $p1;
$26 = $p2;
__gcry_mpi_mul($24,$25,$26);
$27 = $p1;
$28 = (__gcry_mpi_alloc_like($27)|0);
$tmp = $28;
$29 = $tmp;
$30 = $p2;
$31 = $p1;
(__gcry_mpi_invm($29,$30,$31)|0);
$32 = $tmp;
$33 = $tmp;
$34 = $p2;
__gcry_mpi_mul($32,$33,$34);
$35 = $tmp;
$r1 = $35;
$36 = $p2;
$37 = (__gcry_mpi_alloc_like($36)|0);
$tmp = $37;
$38 = $tmp;
$39 = $p1;
$40 = $p2;
(__gcry_mpi_invm($38,$39,$40)|0);
$41 = $tmp;
$42 = $tmp;
$43 = $p1;
__gcry_mpi_mul($41,$42,$43);
$44 = $r1;
$45 = $r1;
$46 = $tmp;
__gcry_mpi_sub($44,$45,$46);
$47 = $r1;
$48 = ((($47)) + 8|0);
$49 = HEAP32[$48>>2]|0;
$50 = ($49|0)!=(0);
if ($50) {
$51 = $r1;
$52 = $r1;
$53 = $p1p2;
__gcry_mpi_add($51,$52,$53);
}
$54 = $tmp;
$yp0 = $54;
$tmp = 0;
$55 = $yp0;
$56 = $r1;
$57 = $1;
$58 = $p1p2;
__gcry_mpi_subm($55,$56,$57,$58);
$59 = $yp0;
$60 = $yp0;
$61 = $1;
__gcry_mpi_add($59,$60,$61);
$62 = $r1;
__gcry_mpi_free($62);
$63 = $yp0;
$64 = $1;
$65 = (__gcry_mpi_cmp($63,$64)|0);
$66 = ($65|0)<(0);
if ($66) {
$67 = $yp0;
$68 = $yp0;
$69 = $p1p2;
__gcry_mpi_add($67,$68,$69);
}
$70 = (__gcry_mpi_alloc_set_ui(2)|0);
$val_2 = $70;
$71 = $yp0;
$72 = (__gcry_mpi_alloc_like($71)|0);
$gcdtmp = $72;
$73 = $p1p2;
$74 = $p1p2;
__gcry_mpi_sub_ui($73,$74,1);
$75 = $yp0;
$76 = $yp0;
__gcry_mpi_sub_ui($75,$76,1);
while(1) {
$77 = $gcdtmp;
$78 = $4;
$79 = $yp0;
$80 = (__gcry_mpi_gcd($77,$78,$79)|0);
$gcdres = $80;
$81 = $yp0;
$82 = $yp0;
__gcry_mpi_add_ui($81,$82,1);
$83 = $gcdres;
$84 = ($83|0)!=(0);
if ($84) {
$85 = $yp0;
$86 = $val_2;
$87 = (_check_prime($85,$86,64,0,0)|0);
$88 = ($87|0)!=(0);
if ($88) {
break;
}
} else {
_progress(47);
}
$89 = $yp0;
$90 = $yp0;
$91 = $p1p2;
__gcry_mpi_add($89,$90,$91);
}
$92 = $gcdtmp;
__gcry_mpi_free($92);
$93 = $val_2;
__gcry_mpi_free($93);
$94 = $p1p2;
__gcry_mpi_free($94);
_progress(10);
$95 = $5;
$96 = ($95|0)!=(0|0);
$97 = $p1;
if ($96) {
$98 = $5;
HEAP32[$98>>2] = $97;
} else {
__gcry_mpi_free($97);
}
$99 = $6;
$100 = ($99|0)!=(0|0);
$101 = $p2;
if ($100) {
$102 = $6;
HEAP32[$102>>2] = $101;
} else {
__gcry_mpi_free($101);
}
$103 = $yp0;
$0 = $103;
$104 = $0;
STACKTOP = sp;return ($104|0);
}
}
$0 = 0;
$104 = $0;
STACKTOP = sp;return ($104|0);
}
function _find_x931_prime($pfirst) {
$pfirst = $pfirst|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $prime = 0, $val_2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $pfirst;
$1 = (__gcry_mpi_alloc_set_ui(2)|0);
$val_2 = $1;
$2 = $0;
$3 = (__gcry_mpi_copy($2)|0);
$prime = $3;
$4 = $prime;
__gcry_mpi_set_bit($4,0);
while(1) {
$5 = $prime;
$6 = $val_2;
$7 = (_check_prime($5,$6,64,0,0)|0);
$8 = ($7|0)!=(0);
$9 = $8 ^ 1;
if (!($9)) {
break;
}
$10 = $prime;
$11 = $prime;
__gcry_mpi_add_ui($10,$11,2);
}
$12 = $val_2;
__gcry_mpi_free($12);
$13 = $prime;
STACKTOP = sp;return ($13|0);
}
function __gcry_pk_util_parse_flaglist($list,$r_flags,$r_encoding) {
$list = $list|0;
$r_flags = $r_flags|0;
$r_encoding = $r_encoding|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $encoding = 0, $flags = 0, $i = 0, $igninvflag = 0, $n = 0, $or$cond = 0, $or$cond11 = 0, $or$cond3 = 0, $or$cond5 = 0;
var $or$cond7 = 0, $or$cond9 = 0, $rc = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 16|0;
$0 = $list;
$1 = $r_flags;
$2 = $r_encoding;
$rc = 0;
$encoding = 5;
$flags = 0;
$igninvflag = 0;
$3 = $0;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $0;
$6 = (__gcry_sexp_length($5)|0);
$7 = (($6) - 1)|0;
$8 = $7;
} else {
$8 = 0;
}
$i = $8;
while(1) {
$9 = $i;
$10 = ($9|0)>(0);
if (!($10)) {
break;
}
$11 = $0;
$12 = $i;
$13 = (__gcry_sexp_nth_data($11,$12,$n)|0);
$s = $13;
$14 = $s;
$15 = ($14|0)!=(0|0);
L7: do {
if ($15) {
$16 = HEAP32[$n>>2]|0;
do {
switch ($16|0) {
case 3: {
$17 = $s;
$18 = (_memcmp($17,37681,3)|0);
$19 = ($18|0)==(0);
$20 = $encoding;
$21 = ($20|0)==(5);
$or$cond = $19 & $21;
if ($or$cond) {
$encoding = 4;
$22 = $flags;
$23 = $22 | 4;
$flags = $23;
break L7;
}
$24 = $s;
$25 = (_memcmp($24,37685,3)|0);
$26 = ($25|0)==(0);
$27 = $encoding;
$28 = ($27|0)==(5);
$or$cond3 = $26 & $28;
if ($or$cond3) {
$encoding = 0;
$29 = $flags;
$30 = $29 | 16;
$flags = $30;
break L7;
}
$31 = $igninvflag;
$32 = ($31|0)!=(0);
if ($32) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 4: {
$33 = $s;
$34 = (_memcmp($33,37689,4)|0);
$35 = ($34|0)!=(0);
if (!($35)) {
$36 = $flags;
$37 = $36 | 1024;
$flags = $37;
break L7;
}
$38 = $s;
$39 = (_memcmp($38,37694,4)|0);
$40 = ($39|0)==(0);
$41 = $encoding;
$42 = ($41|0)==(5);
$or$cond5 = $40 & $42;
if ($or$cond5) {
$encoding = 3;
$43 = $flags;
$44 = $43 | 4;
$flags = $44;
break L7;
}
$45 = $s;
$46 = (_memcmp($45,47156,4)|0);
$47 = ($46|0)!=(0);
if (!($47)) {
$encoding = 0;
$48 = $flags;
$49 = $48 | 8192;
$flags = $49;
break L7;
}
$50 = $igninvflag;
$51 = ($50|0)!=(0);
if ($51) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 5: {
$52 = $s;
$53 = (_memcmp($52,47150,5)|0);
$54 = ($53|0)!=(0);
if (!($54)) {
$encoding = 0;
$55 = $flags;
$56 = $55 | 4096;
$flags = $56;
break L7;
}
$57 = $s;
$58 = (_memcmp($57,37699,5)|0);
$59 = ($58|0)==(0);
$60 = $encoding;
$61 = ($60|0)==(5);
$or$cond7 = $59 & $61;
if ($or$cond7) {
$encoding = 1;
$62 = $flags;
$63 = $62 | 4;
$flags = $63;
break L7;
}
$64 = $s;
$65 = (_memcmp($64,37705,5)|0);
$66 = ($65|0)!=(0);
if (!($66)) {
$67 = $flags;
$68 = $67 | 512;
$flags = $68;
break L7;
}
$69 = $igninvflag;
$70 = ($69|0)!=(0);
if ($70) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 6: {
$71 = $s;
$72 = (_memcmp($71,37711,6)|0);
$73 = ($72|0)!=(0);
if (!($73)) {
$74 = $flags;
$75 = $74 | 2048;
$flags = $75;
break L7;
}
$76 = $igninvflag;
$77 = ($76|0)!=(0);
if ($77) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 7: {
$78 = $s;
$79 = (_memcmp($78,37718,7)|0);
$80 = ($79|0)!=(0);
if (!($80)) {
$81 = $flags;
$82 = $81 | 2;
$flags = $82;
break L7;
}
$83 = $s;
$84 = (_memcmp($83,37726,7)|0);
$85 = ($84|0)==(0);
$86 = $igninvflag;
$87 = ($86|0)!=(0);
$or$cond11 = $85 | $87;
if ($or$cond11) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 8: {
$88 = $s;
$89 = (_memcmp($88,39412,8)|0);
$90 = ($89|0)!=(0);
if (!($90)) {
$91 = $flags;
$92 = $91 | 64;
$flags = $92;
break L7;
}
$93 = $igninvflag;
$94 = ($93|0)!=(0);
if ($94) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 9: {
$95 = $s;
$96 = (_memcmp($95,37734,9)|0);
$97 = ($96|0)==(0);
$98 = $encoding;
$99 = ($98|0)==(5);
$or$cond9 = $97 & $99;
if ($or$cond9) {
$encoding = 2;
$100 = $flags;
$101 = $100 | 4;
$flags = $101;
break L7;
}
$102 = $igninvflag;
$103 = ($102|0)!=(0);
if ($103) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 10: {
$104 = $s;
$105 = (_memcmp($104,37744,10)|0);
$106 = ($105|0)!=(0);
if (!($106)) {
$igninvflag = 1;
break L7;
}
$107 = $s;
$108 = (_memcmp($107,37755,10)|0);
$109 = ($108|0)!=(0);
if (!($109)) {
$110 = $flags;
$111 = $110 | 16384;
$flags = $111;
break L7;
}
$112 = $igninvflag;
$113 = ($112|0)!=(0);
if ($113) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 11: {
$114 = $s;
$115 = (_memcmp($114,37766,11)|0);
$116 = ($115|0)!=(0);
if (!($116)) {
$117 = $flags;
$118 = $117 | 1;
$flags = $118;
break L7;
}
$119 = $s;
$120 = (_memcmp($119,37778,11)|0);
$121 = ($120|0)!=(0);
if (!($121)) {
$122 = $flags;
$123 = $122 | 128;
$flags = $123;
break L7;
}
$124 = $igninvflag;
$125 = ($124|0)!=(0);
if ($125) {
break L7;
}
$rc = 72;
break L7;
break;
}
case 13: {
$126 = $s;
$127 = (_memcmp($126,37790,13)|0);
$128 = ($127|0)!=(0);
if (!($128)) {
$129 = $flags;
$130 = $129 | 256;
$flags = $130;
break L7;
}
$131 = $s;
$132 = (_memcmp($131,47196,13)|0);
$133 = ($132|0)!=(0);
if (!($133)) {
$134 = $flags;
$135 = $134 | 32;
$flags = $135;
break L7;
}
$136 = $igninvflag;
$137 = ($136|0)!=(0);
if ($137) {
break L7;
}
$rc = 72;
break L7;
break;
}
default: {
$138 = $igninvflag;
$139 = ($138|0)!=(0);
if ($139) {
break L7;
}
$rc = 72;
break L7;
}
}
} while(0);
}
} while(0);
$140 = $i;
$141 = (($140) + -1)|0;
$i = $141;
}
$142 = $1;
$143 = ($142|0)!=(0|0);
if ($143) {
$144 = $flags;
$145 = $1;
HEAP32[$145>>2] = $144;
}
$146 = $2;
$147 = ($146|0)!=(0|0);
if (!($147)) {
$150 = $rc;
STACKTOP = sp;return ($150|0);
}
$148 = $encoding;
$149 = $2;
HEAP32[$149>>2] = $148;
$150 = $rc;
STACKTOP = sp;return ($150|0);
}
function __gcry_pk_util_get_nbits($list,$r_nbits) {
$list = $list|0;
$r_nbits = $r_nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $buf = 0, $n = 0, $or$cond = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$buf = sp + 20|0;
$n = sp;
$1 = $list;
$2 = $r_nbits;
$3 = $2;
HEAP32[$3>>2] = 0;
$4 = $1;
$5 = (__gcry_sexp_find_token($4,37804,0)|0);
$1 = $5;
$6 = $1;
$7 = ($6|0)!=(0|0);
if (!($7)) {
$0 = 0;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
$8 = $1;
$9 = (__gcry_sexp_nth_data($8,1,$n)|0);
$s = $9;
$10 = $s;
$11 = ($10|0)==(0|0);
$12 = HEAP32[$n>>2]|0;
$13 = ($12>>>0)>=(49);
$or$cond = $11 | $13;
if ($or$cond) {
$14 = $1;
__gcry_sexp_release($14);
$0 = 65;
$22 = $0;
STACKTOP = sp;return ($22|0);
} else {
$15 = $s;
$16 = HEAP32[$n>>2]|0;
_memcpy(($buf|0),($15|0),($16|0))|0;
$17 = HEAP32[$n>>2]|0;
$18 = (($buf) + ($17)|0);
HEAP8[$18>>0] = 0;
$19 = (_strtoul($buf,0,0)|0);
$20 = $2;
HEAP32[$20>>2] = $19;
$21 = $1;
__gcry_sexp_release($21);
$0 = 0;
$22 = $0;
STACKTOP = sp;return ($22|0);
}
return (0)|0;
}
function __gcry_pk_util_get_rsa_use_e($list,$r_e) {
$list = $list|0;
$r_e = $r_e|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $buf = 0, $n = 0, $or$cond = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$buf = sp + 20|0;
$n = sp;
$1 = $list;
$2 = $r_e;
$3 = $2;
HEAP32[$3>>2] = 0;
$4 = $1;
$5 = (__gcry_sexp_find_token($4,37810,0)|0);
$1 = $5;
$6 = $1;
$7 = ($6|0)!=(0|0);
if (!($7)) {
$8 = $2;
HEAP32[$8>>2] = 65537;
$0 = 0;
$23 = $0;
STACKTOP = sp;return ($23|0);
}
$9 = $1;
$10 = (__gcry_sexp_nth_data($9,1,$n)|0);
$s = $10;
$11 = $s;
$12 = ($11|0)==(0|0);
$13 = HEAP32[$n>>2]|0;
$14 = ($13>>>0)>=(49);
$or$cond = $12 | $14;
if ($or$cond) {
$15 = $1;
__gcry_sexp_release($15);
$0 = 65;
$23 = $0;
STACKTOP = sp;return ($23|0);
} else {
$16 = $s;
$17 = HEAP32[$n>>2]|0;
_memcpy(($buf|0),($16|0),($17|0))|0;
$18 = HEAP32[$n>>2]|0;
$19 = (($buf) + ($18)|0);
HEAP8[$19>>0] = 0;
$20 = (_strtoul($buf,0,0)|0);
$21 = $2;
HEAP32[$21>>2] = $20;
$22 = $1;
__gcry_sexp_release($22);
$0 = 0;
$23 = $0;
STACKTOP = sp;return ($23|0);
}
return (0)|0;
}
function __gcry_pk_util_preparse_sigval($s_sig,$algo_names,$r_parms,$r_eccflags) {
$s_sig = $s_sig|0;
$algo_names = $algo_names|0;
$r_parms = $r_parms|0;
$r_eccflags = $r_eccflags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $l1 = 0, $l2 = 0, $name = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $s_sig;
$1 = $algo_names;
$2 = $r_parms;
$3 = $r_eccflags;
$l1 = 0;
$l2 = 0;
$name = 0;
$4 = $2;
HEAP32[$4>>2] = 0;
$5 = $3;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $3;
HEAP32[$7>>2] = 0;
}
$8 = $0;
$9 = (__gcry_sexp_find_token($8,37820,0)|0);
$l1 = $9;
$10 = $l1;
$11 = ($10|0)!=(0|0);
do {
if ($11) {
$12 = $l1;
$13 = (__gcry_sexp_nth($12,1)|0);
$l2 = $13;
$14 = $l2;
$15 = ($14|0)!=(0|0);
if (!($15)) {
$rc = 68;
break;
}
$16 = $l2;
$17 = (__gcry_sexp_nth_string($16,0)|0);
$name = $17;
$18 = $name;
$19 = ($18|0)!=(0|0);
if (!($19)) {
$rc = 65;
break;
}
$20 = $name;
$21 = (_strcmp($20,47190)|0);
$22 = ($21|0)!=(0);
if (!($22)) {
$23 = $l2;
__gcry_sexp_release($23);
$24 = $l1;
$25 = (__gcry_sexp_nth($24,2)|0);
$l2 = $25;
$26 = $l2;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$rc = 65;
break;
}
$28 = $name;
__gcry_free($28);
$29 = $l2;
$30 = (__gcry_sexp_nth_string($29,0)|0);
$name = $30;
$31 = $name;
$32 = ($31|0)!=(0|0);
if (!($32)) {
$rc = 65;
break;
}
}
$i = 0;
while(1) {
$33 = $i;
$34 = $1;
$35 = (($34) + ($33<<2)|0);
$36 = HEAP32[$35>>2]|0;
$37 = ($36|0)!=(0|0);
if (!($37)) {
break;
}
$38 = $name;
$39 = $i;
$40 = $1;
$41 = (($40) + ($39<<2)|0);
$42 = HEAP32[$41>>2]|0;
$43 = (_strcasecmp($38,$42)|0);
$44 = ($43|0)!=(0);
if (!($44)) {
break;
}
$45 = $i;
$46 = (($45) + 1)|0;
$i = $46;
}
$47 = $i;
$48 = $1;
$49 = (($48) + ($47<<2)|0);
$50 = HEAP32[$49>>2]|0;
$51 = ($50|0)!=(0|0);
if (!($51)) {
$rc = 70;
break;
}
$52 = $3;
$53 = ($52|0)!=(0|0);
if ($53) {
$54 = $name;
$55 = (_strcmp($54,47150)|0);
$56 = ($55|0)!=(0);
if (!($56)) {
$57 = $3;
HEAP32[$57>>2] = 4096;
}
$58 = $name;
$59 = (_strcmp($58,47156)|0);
$60 = ($59|0)!=(0);
if (!($60)) {
$61 = $3;
HEAP32[$61>>2] = 8192;
}
}
$62 = $l2;
$63 = $2;
HEAP32[$63>>2] = $62;
$l2 = 0;
$rc = 0;
} else {
$rc = 65;
}
} while(0);
$64 = $name;
__gcry_free($64);
$65 = $l2;
__gcry_sexp_release($65);
$66 = $l1;
__gcry_sexp_release($66);
$67 = $rc;
STACKTOP = sp;return ($67|0);
}
function __gcry_pk_util_preparse_encval($sexp,$algo_names,$r_parms,$ctx) {
$sexp = $sexp|0;
$algo_names = $algo_names|0;
$r_parms = $r_parms|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i = 0, $l1 = 0, $l2 = 0, $n = 0, $name = 0, $parsed_flags = 0, $rc = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 12|0;
$parsed_flags = sp + 8|0;
$0 = $sexp;
$1 = $algo_names;
$2 = $r_parms;
$3 = $ctx;
$rc = 0;
$l1 = 0;
$l2 = 0;
$name = 0;
HEAP32[$parsed_flags>>2] = 0;
$4 = $2;
HEAP32[$4>>2] = 0;
$5 = $0;
$6 = (__gcry_sexp_find_token($5,42155,0)|0);
$l1 = $6;
$7 = $l1;
$8 = ($7|0)!=(0|0);
do {
if ($8) {
$9 = $l1;
$10 = (__gcry_sexp_nth($9,1)|0);
$l2 = $10;
$11 = $l2;
$12 = ($11|0)!=(0|0);
if (!($12)) {
$rc = 68;
break;
}
$13 = $l2;
$14 = (__gcry_sexp_nth_string($13,0)|0);
$name = $14;
$15 = $name;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$rc = 65;
break;
}
$17 = $name;
$18 = (_strcmp($17,47190)|0);
$19 = ($18|0)!=(0);
if ($19) {
$115 = HEAP32[$parsed_flags>>2]|0;
$116 = $115 | 8;
HEAP32[$parsed_flags>>2] = $116;
} else {
$20 = $l2;
$21 = $3;
$22 = ((($21)) + 8|0);
$23 = (__gcry_pk_util_parse_flaglist($20,$parsed_flags,$22)|0);
$rc = $23;
$24 = $rc;
$25 = ($24|0)!=(0);
if ($25) {
break;
}
$26 = $3;
$27 = ((($26)) + 8|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)==(4);
if ($29) {
$rc = 70;
break;
}
$30 = $3;
$31 = ((($30)) + 8|0);
$32 = HEAP32[$31>>2]|0;
$33 = ($32|0)==(3);
if ($33) {
$34 = $l2;
__gcry_sexp_release($34);
$35 = $l1;
$36 = (__gcry_sexp_find_token($35,37828,0)|0);
$l2 = $36;
$37 = $l2;
$38 = ($37|0)!=(0|0);
if ($38) {
$39 = $l2;
$40 = (__gcry_sexp_nth_data($39,1,$n)|0);
$s = $40;
$41 = $s;
$42 = ($41|0)!=(0|0);
if ($42) {
$43 = $s;
$44 = HEAP32[$n>>2]|0;
$45 = (_get_hash_algo($43,$44)|0);
$46 = $3;
$47 = ((($46)) + 16|0);
HEAP32[$47>>2] = $45;
$48 = $3;
$49 = ((($48)) + 16|0);
$50 = HEAP32[$49>>2]|0;
$51 = ($50|0)!=(0);
if (!($51)) {
$rc = 5;
}
} else {
$rc = 68;
}
$52 = $rc;
$53 = ($52|0)!=(0);
if ($53) {
break;
}
}
$54 = $l2;
__gcry_sexp_release($54);
$55 = $l1;
$56 = (__gcry_sexp_find_token($55,37912,0)|0);
$l2 = $56;
$57 = $l2;
$58 = ($57|0)!=(0|0);
if ($58) {
$59 = $l2;
$60 = (__gcry_sexp_nth_data($59,1,$n)|0);
$s = $60;
$61 = $s;
$62 = ($61|0)!=(0|0);
do {
if ($62) {
$63 = HEAP32[$n>>2]|0;
$64 = ($63>>>0)>(0);
if ($64) {
$65 = HEAP32[$n>>2]|0;
$66 = (__gcry_malloc($65)|0);
$67 = $3;
$68 = ((($67)) + 20|0);
HEAP32[$68>>2] = $66;
$69 = $3;
$70 = ((($69)) + 20|0);
$71 = HEAP32[$70>>2]|0;
$72 = ($71|0)!=(0|0);
if ($72) {
$74 = $3;
$75 = ((($74)) + 20|0);
$76 = HEAP32[$75>>2]|0;
$77 = $s;
$78 = HEAP32[$n>>2]|0;
_memcpy(($76|0),($77|0),($78|0))|0;
$79 = HEAP32[$n>>2]|0;
$80 = $3;
$81 = ((($80)) + 24|0);
HEAP32[$81>>2] = $79;
break;
} else {
$73 = (_gpg_err_code_from_syserror()|0);
$rc = $73;
break;
}
}
} else {
$rc = 68;
}
} while(0);
$82 = $rc;
$83 = ($82|0)!=(0);
if ($83) {
break;
}
}
}
$i = 2;
L36: while(1) {
$84 = $l2;
__gcry_sexp_release($84);
$85 = $l1;
$86 = $i;
$87 = (__gcry_sexp_nth($85,$86)|0);
$l2 = $87;
$88 = ($87|0)!=(0|0);
if (!($88)) {
break;
}
$89 = $l2;
$90 = (__gcry_sexp_nth_data($89,0,$n)|0);
$s = $90;
$91 = HEAP32[$n>>2]|0;
$92 = ($91|0)==(9);
if ($92) {
$93 = $s;
$94 = (_memcmp($93,37828,9)|0);
$95 = ($94|0)!=(0);
if ($95) {
label = 30;
}
} else {
label = 30;
}
do {
if ((label|0) == 30) {
label = 0;
$96 = HEAP32[$n>>2]|0;
$97 = ($96|0)==(5);
if ($97) {
$98 = $s;
$99 = (_memcmp($98,37912,5)|0);
$100 = ($99|0)!=(0);
if (!($100)) {
break;
}
}
$101 = HEAP32[$n>>2]|0;
$102 = ($101|0)==(15);
if (!($102)) {
break L36;
}
$103 = $s;
$104 = (_memcmp($103,37918,15)|0);
$105 = ($104|0)!=(0);
if ($105) {
break L36;
}
}
} while(0);
$106 = $i;
$107 = (($106) + 1)|0;
$i = $107;
}
$108 = $l2;
$109 = ($108|0)!=(0|0);
if (!($109)) {
$rc = 68;
break;
}
$110 = $name;
__gcry_free($110);
$111 = $l2;
$112 = (__gcry_sexp_nth_string($111,0)|0);
$name = $112;
$113 = $name;
$114 = ($113|0)!=(0|0);
if (!($114)) {
$rc = 65;
break;
}
}
$i = 0;
while(1) {
$117 = $i;
$118 = $1;
$119 = (($118) + ($117<<2)|0);
$120 = HEAP32[$119>>2]|0;
$121 = ($120|0)!=(0|0);
if (!($121)) {
break;
}
$122 = $name;
$123 = $i;
$124 = $1;
$125 = (($124) + ($123<<2)|0);
$126 = HEAP32[$125>>2]|0;
$127 = (_strcasecmp($122,$126)|0);
$128 = ($127|0)!=(0);
if (!($128)) {
break;
}
$129 = $i;
$130 = (($129) + 1)|0;
$i = $130;
}
$131 = $i;
$132 = $1;
$133 = (($132) + ($131<<2)|0);
$134 = HEAP32[$133>>2]|0;
$135 = ($134|0)!=(0|0);
if ($135) {
$136 = $l2;
$137 = $2;
HEAP32[$137>>2] = $136;
$l2 = 0;
$138 = HEAP32[$parsed_flags>>2]|0;
$139 = $3;
$140 = ((($139)) + 12|0);
$141 = HEAP32[$140>>2]|0;
$142 = $141 | $138;
HEAP32[$140>>2] = $142;
$rc = 0;
break;
} else {
$rc = 70;
break;
}
} else {
$rc = 65;
}
} while(0);
$143 = $name;
__gcry_free($143);
$144 = $l2;
__gcry_sexp_release($144);
$145 = $l1;
__gcry_sexp_release($145);
$146 = $rc;
STACKTOP = sp;return ($146|0);
}
function _get_hash_algo($s,$n) {
$s = $s|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $algo = 0, $i = 0, $tmpname = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $s;
$1 = $n;
$i = 0;
while(1) {
$2 = $i;
$3 = (4344 + ($2<<3)|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)!=(0|0);
if (!($5)) {
break;
}
$6 = $i;
$7 = (4344 + ($6<<3)|0);
$8 = HEAP32[$7>>2]|0;
$9 = (_strlen($8)|0);
$10 = $1;
$11 = ($9|0)==($10|0);
if ($11) {
$12 = $i;
$13 = (4344 + ($12<<3)|0);
$14 = HEAP32[$13>>2]|0;
$15 = $0;
$16 = $1;
$17 = (_memcmp($14,$15,$16)|0);
$18 = ($17|0)!=(0);
if (!($18)) {
break;
}
}
$19 = $i;
$20 = (($19) + 1)|0;
$i = $20;
}
$21 = $i;
$22 = (4344 + ($21<<3)|0);
$23 = HEAP32[$22>>2]|0;
$24 = ($23|0)!=(0|0);
if ($24) {
$25 = $i;
$26 = (4344 + ($25<<3)|0);
$27 = ((($26)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$algo = $28;
$43 = $algo;
STACKTOP = sp;return ($43|0);
}
$29 = $1;
$30 = (($29) + 1)|0;
$31 = (__gcry_malloc($30)|0);
$tmpname = $31;
$32 = $tmpname;
$33 = ($32|0)!=(0|0);
if ($33) {
$34 = $tmpname;
$35 = $0;
$36 = $1;
_memcpy(($34|0),($35|0),($36|0))|0;
$37 = $1;
$38 = $tmpname;
$39 = (($38) + ($37)|0);
HEAP8[$39>>0] = 0;
$40 = $tmpname;
$41 = (__gcry_md_map_name($40)|0);
$algo = $41;
$42 = $tmpname;
__gcry_free($42);
$43 = $algo;
STACKTOP = sp;return ($43|0);
} else {
$algo = 0;
$43 = $algo;
STACKTOP = sp;return ($43|0);
}
return (0)|0;
}
function __gcry_pk_util_init_encoding_ctx($ctx,$op,$nbits) {
$ctx = $ctx|0;
$op = $op|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $op;
$2 = $nbits;
$3 = $1;
$4 = $0;
HEAP32[$4>>2] = $3;
$5 = $2;
$6 = $0;
$7 = ((($6)) + 4|0);
HEAP32[$7>>2] = $5;
$8 = $0;
$9 = ((($8)) + 8|0);
HEAP32[$9>>2] = 5;
$10 = $0;
$11 = ((($10)) + 12|0);
HEAP32[$11>>2] = 0;
$12 = $0;
$13 = ((($12)) + 16|0);
HEAP32[$13>>2] = 2;
$14 = $0;
$15 = ((($14)) + 20|0);
HEAP32[$15>>2] = 0;
$16 = $0;
$17 = ((($16)) + 24|0);
HEAP32[$17>>2] = 0;
$18 = $0;
$19 = ((($18)) + 28|0);
HEAP32[$19>>2] = 20;
$20 = $0;
$21 = ((($20)) + 32|0);
HEAP32[$21>>2] = 0;
$22 = $0;
$23 = ((($22)) + 36|0);
HEAP32[$23>>2] = 0;
STACKTOP = sp;return;
}
function __gcry_pk_util_free_encoding_ctx($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$2 = ((($1)) + 20|0);
$3 = HEAP32[$2>>2]|0;
__gcry_free($3);
STACKTOP = sp;return;
}
function __gcry_pk_util_data_to_mpi($input,$ret_mpi,$ctx) {
$input = $input|0;
$ret_mpi = $ret_mpi|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
var $512 = 0, $513 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $ldata = 0, $lflags = 0, $lhash = 0, $list = 0, $list12 = 0, $list19 = 0;
var $list5 = 0, $lvalue = 0, $n = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond17 = 0, $or$cond19 = 0, $or$cond21 = 0, $or$cond23 = 0, $or$cond25 = 0, $or$cond27 = 0, $or$cond29 = 0, $or$cond3 = 0, $or$cond31 = 0, $or$cond33 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0;
var $parsed_flags = 0, $random_override = 0, $random_override13 = 0, $random_override17 = 0, $random_override_len = 0, $random_override_len14 = 0, $random_override_len18 = 0, $rc = 0, $s = 0, $unknown_flag = 0, $value = 0, $value1 = 0, $value10 = 0, $value15 = 0, $value3 = 0, $value6 = 0, $value8 = 0, $valuelen = 0, $valuelen11 = 0, $valuelen16 = 0;
var $valuelen2 = 0, $valuelen4 = 0, $valuelen7 = 0, $valuelen9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp + 112|0;
$parsed_flags = sp + 100|0;
$valuelen = sp + 84|0;
$valuelen2 = sp + 76|0;
$valuelen4 = sp + 68|0;
$valuelen7 = sp + 48|0;
$valuelen9 = sp + 40|0;
$valuelen11 = sp + 32|0;
$valuelen16 = sp + 12|0;
$1 = $input;
$2 = $ret_mpi;
$3 = $ctx;
$rc = 0;
$unknown_flag = 0;
HEAP32[$parsed_flags>>2] = 0;
$4 = $2;
HEAP32[$4>>2] = 0;
$5 = $1;
$6 = (__gcry_sexp_find_token($5,37934,0)|0);
$ldata = $6;
$7 = $ldata;
$8 = ($7|0)!=(0|0);
if (!($8)) {
$9 = $1;
$10 = (__gcry_sexp_nth_mpi($9,0,0)|0);
$11 = $2;
HEAP32[$11>>2] = $10;
$12 = $2;
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(0|0);
$15 = $14 ? 0 : 65;
$0 = $15;
$513 = $0;
STACKTOP = sp;return ($513|0);
}
$16 = $ldata;
$17 = (__gcry_sexp_find_token($16,47190,0)|0);
$lflags = $17;
$18 = $lflags;
$19 = ($18|0)!=(0|0);
if ($19) {
$20 = $lflags;
$21 = $3;
$22 = ((($21)) + 8|0);
$23 = (__gcry_pk_util_parse_flaglist($20,$parsed_flags,$22)|0);
$24 = ($23|0)!=(0);
if ($24) {
$unknown_flag = 1;
}
$25 = $lflags;
__gcry_sexp_release($25);
}
$26 = $3;
$27 = ((($26)) + 8|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)==(5);
if ($29) {
$30 = $3;
$31 = ((($30)) + 8|0);
HEAP32[$31>>2] = 0;
}
$32 = $ldata;
$33 = (__gcry_sexp_find_token($32,37939,0)|0);
$lhash = $33;
$34 = $lhash;
$35 = ($34|0)!=(0|0);
if ($35) {
$38 = 0;
} else {
$36 = $ldata;
$37 = (__gcry_sexp_find_token($36,42240,0)|0);
$38 = $37;
}
$lvalue = $38;
$39 = $lhash;
$40 = ($39|0)!=(0|0);
$41 = $40 ^ 1;
$42 = $41&1;
$43 = $lvalue;
$44 = ($43|0)!=(0|0);
$45 = $44 ^ 1;
$46 = $45&1;
$47 = $42 ^ $46;
$48 = ($47|0)!=(0);
L17: do {
if ($48) {
$49 = $unknown_flag;
$50 = ($49|0)!=(0);
if ($50) {
$rc = 72;
break;
}
$51 = $3;
$52 = ((($51)) + 8|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($53|0)==(0);
if ($54) {
$55 = HEAP32[$parsed_flags>>2]|0;
$56 = $55 & 4096;
$57 = ($56|0)!=(0);
if ($57) {
$58 = $lvalue;
$59 = ($58|0)!=(0|0);
if (!($59)) {
$rc = 65;
break;
}
$60 = $ldata;
$61 = (__gcry_sexp_find_token($60,37828,0)|0);
$list = $61;
$62 = $list;
$63 = ($62|0)!=(0|0);
if ($63) {
$64 = $list;
$65 = (__gcry_sexp_nth_data($64,1,$n)|0);
$s = $65;
$66 = $s;
$67 = ($66|0)!=(0|0);
if ($67) {
$68 = $s;
$69 = HEAP32[$n>>2]|0;
$70 = (_get_hash_algo($68,$69)|0);
$71 = $3;
$72 = ((($71)) + 16|0);
HEAP32[$72>>2] = $70;
$73 = $3;
$74 = ((($73)) + 16|0);
$75 = HEAP32[$74>>2]|0;
$76 = ($75|0)!=(0);
if (!($76)) {
$rc = 5;
}
} else {
$rc = 68;
}
$77 = $list;
__gcry_sexp_release($77);
} else {
$rc = 65;
}
$78 = $rc;
$79 = ($78|0)!=(0);
if ($79) {
break;
}
$80 = $lvalue;
$81 = (__gcry_sexp_nth_buffer($80,1,$valuelen)|0);
$value = $81;
$82 = $value;
$83 = ($82|0)!=(0|0);
if ($83) {
$88 = HEAP32[$valuelen>>2]|0;
$89 = $88<<3;
$90 = HEAP32[$valuelen>>2]|0;
$91 = ($89>>>0)<($90>>>0);
if ($91) {
$92 = $value;
__gcry_free($92);
$rc = 67;
}
} else {
HEAP32[$valuelen>>2] = 0;
$84 = (__gcry_malloc(1)|0);
$value = $84;
$85 = $value;
$86 = ($85|0)!=(0|0);
if (!($86)) {
$87 = (_gpg_err_code_from_syserror()|0);
$rc = $87;
}
}
$93 = $rc;
$94 = ($93|0)!=(0);
if ($94) {
break;
}
$95 = $value;
$96 = HEAP32[$valuelen>>2]|0;
$97 = $96<<3;
$98 = (__gcry_mpi_set_opaque(0,$95,$97)|0);
$99 = $2;
HEAP32[$99>>2] = $98;
break;
}
}
$100 = $3;
$101 = ((($100)) + 8|0);
$102 = HEAP32[$101>>2]|0;
$103 = ($102|0)==(0);
$104 = $lhash;
$105 = ($104|0)!=(0|0);
$or$cond = $103 & $105;
do {
if ($or$cond) {
$106 = HEAP32[$parsed_flags>>2]|0;
$107 = $106 & 16;
$108 = ($107|0)!=(0);
if (!($108)) {
$109 = HEAP32[$parsed_flags>>2]|0;
$110 = $109 & 2;
$111 = ($110|0)!=(0);
if (!($111)) {
break;
}
}
$112 = $lhash;
$113 = (__gcry_sexp_length($112)|0);
$114 = ($113|0)!=(3);
if ($114) {
$rc = 65;
break L17;
}
$115 = $lhash;
$116 = (__gcry_sexp_nth_data($115,1,$n)|0);
$s = $116;
$117 = ($116|0)!=(0|0);
$118 = HEAP32[$n>>2]|0;
$119 = ($118|0)!=(0);
$or$cond3 = $117 & $119;
if (!($or$cond3)) {
$rc = 65;
break L17;
}
$120 = $s;
$121 = HEAP32[$n>>2]|0;
$122 = (_get_hash_algo($120,$121)|0);
$123 = $3;
$124 = ((($123)) + 16|0);
HEAP32[$124>>2] = $122;
$125 = $3;
$126 = ((($125)) + 16|0);
$127 = HEAP32[$126>>2]|0;
$128 = ($127|0)!=(0);
if (!($128)) {
$rc = 5;
break L17;
}
$129 = $lhash;
$130 = (__gcry_sexp_nth_buffer($129,2,$valuelen2)|0);
$value1 = $130;
$131 = ($130|0)!=(0|0);
if (!($131)) {
$rc = 65;
break L17;
}
$132 = HEAP32[$valuelen2>>2]|0;
$133 = $132<<3;
$134 = HEAP32[$valuelen2>>2]|0;
$135 = ($133>>>0)<($134>>>0);
$136 = $value1;
if ($135) {
__gcry_free($136);
$rc = 67;
break L17;
} else {
$137 = HEAP32[$valuelen2>>2]|0;
$138 = $137<<3;
$139 = (__gcry_mpi_set_opaque(0,$136,$138)|0);
$140 = $2;
HEAP32[$140>>2] = $139;
break L17;
}
}
} while(0);
$141 = $3;
$142 = ((($141)) + 8|0);
$143 = HEAP32[$142>>2]|0;
$144 = ($143|0)==(0);
$145 = $lvalue;
$146 = ($145|0)!=(0|0);
$or$cond5 = $144 & $146;
if ($or$cond5) {
$147 = HEAP32[$parsed_flags>>2]|0;
$148 = $147 & 2;
$149 = ($148|0)!=(0);
if ($149) {
$rc = 70;
break;
}
$150 = $lvalue;
$151 = (__gcry_sexp_nth_mpi($150,1,5)|0);
$152 = $2;
HEAP32[$152>>2] = $151;
$153 = $2;
$154 = HEAP32[$153>>2]|0;
$155 = ($154|0)!=(0|0);
if ($155) {
break;
}
$rc = 65;
break;
}
$156 = $3;
$157 = ((($156)) + 8|0);
$158 = HEAP32[$157>>2]|0;
$159 = ($158|0)==(1);
$160 = $lvalue;
$161 = ($160|0)!=(0|0);
$or$cond7 = $159 & $161;
if ($or$cond7) {
$162 = $3;
$163 = HEAP32[$162>>2]|0;
$164 = ($163|0)==(0);
if ($164) {
$random_override = 0;
$random_override_len = 0;
$165 = $lvalue;
$166 = (__gcry_sexp_nth_data($165,1,$valuelen4)|0);
$value3 = $166;
$167 = ($166|0)!=(0|0);
$168 = HEAP32[$valuelen4>>2]|0;
$169 = ($168|0)!=(0);
$or$cond9 = $167 & $169;
if (!($or$cond9)) {
$rc = 65;
break;
}
$170 = $ldata;
$171 = (__gcry_sexp_find_token($170,37918,0)|0);
$list5 = $171;
$172 = $list5;
$173 = ($172|0)!=(0|0);
if ($173) {
$174 = $list5;
$175 = (__gcry_sexp_nth_data($174,1,$n)|0);
$s = $175;
$176 = $s;
$177 = ($176|0)!=(0|0);
do {
if ($177) {
$178 = HEAP32[$n>>2]|0;
$179 = ($178>>>0)>(0);
if ($179) {
$180 = HEAP32[$n>>2]|0;
$181 = (__gcry_malloc($180)|0);
$random_override = $181;
$182 = $random_override;
$183 = ($182|0)!=(0|0);
if ($183) {
$185 = $random_override;
$186 = $s;
$187 = HEAP32[$n>>2]|0;
_memcpy(($185|0),($186|0),($187|0))|0;
$188 = HEAP32[$n>>2]|0;
$random_override_len = $188;
break;
} else {
$184 = (_gpg_err_code_from_syserror()|0);
$rc = $184;
break;
}
}
} else {
$rc = 68;
}
} while(0);
$189 = $list5;
__gcry_sexp_release($189);
$190 = $rc;
$191 = ($190|0)!=(0);
if ($191) {
break;
}
}
$192 = $2;
$193 = $3;
$194 = ((($193)) + 4|0);
$195 = HEAP32[$194>>2]|0;
$196 = $value3;
$197 = HEAP32[$valuelen4>>2]|0;
$198 = $random_override;
$199 = $random_override_len;
$200 = (__gcry_rsa_pkcs1_encode_for_enc($192,$195,$196,$197,$198,$199)|0);
$rc = $200;
$201 = $random_override;
__gcry_free($201);
break;
}
}
$202 = $3;
$203 = ((($202)) + 8|0);
$204 = HEAP32[$203>>2]|0;
$205 = ($204|0)==(1);
$206 = $lhash;
$207 = ($206|0)!=(0|0);
$or$cond11 = $205 & $207;
do {
if ($or$cond11) {
$208 = $3;
$209 = HEAP32[$208>>2]|0;
$210 = ($209|0)==(2);
if (!($210)) {
$211 = $3;
$212 = HEAP32[$211>>2]|0;
$213 = ($212|0)==(3);
if (!($213)) {
break;
}
}
$214 = $lhash;
$215 = (__gcry_sexp_length($214)|0);
$216 = ($215|0)!=(3);
if ($216) {
$rc = 65;
break L17;
}
$217 = $lhash;
$218 = (__gcry_sexp_nth_data($217,1,$n)|0);
$s = $218;
$219 = ($218|0)!=(0|0);
$220 = HEAP32[$n>>2]|0;
$221 = ($220|0)!=(0);
$or$cond13 = $219 & $221;
if (!($or$cond13)) {
$rc = 65;
break L17;
}
$222 = $s;
$223 = HEAP32[$n>>2]|0;
$224 = (_get_hash_algo($222,$223)|0);
$225 = $3;
$226 = ((($225)) + 16|0);
HEAP32[$226>>2] = $224;
$227 = $3;
$228 = ((($227)) + 16|0);
$229 = HEAP32[$228>>2]|0;
$230 = ($229|0)!=(0);
if (!($230)) {
$rc = 5;
break L17;
}
$231 = $lhash;
$232 = (__gcry_sexp_nth_data($231,2,$valuelen7)|0);
$value6 = $232;
$233 = ($232|0)!=(0|0);
$234 = HEAP32[$valuelen7>>2]|0;
$235 = ($234|0)!=(0);
$or$cond15 = $233 & $235;
if ($or$cond15) {
$236 = $2;
$237 = $3;
$238 = ((($237)) + 4|0);
$239 = HEAP32[$238>>2]|0;
$240 = $value6;
$241 = HEAP32[$valuelen7>>2]|0;
$242 = $3;
$243 = ((($242)) + 16|0);
$244 = HEAP32[$243>>2]|0;
$245 = (__gcry_rsa_pkcs1_encode_for_sig($236,$239,$240,$241,$244)|0);
$rc = $245;
break L17;
} else {
$rc = 65;
break L17;
}
}
} while(0);
$246 = $3;
$247 = ((($246)) + 8|0);
$248 = HEAP32[$247>>2]|0;
$249 = ($248|0)==(2);
$250 = $lvalue;
$251 = ($250|0)!=(0|0);
$or$cond17 = $249 & $251;
do {
if ($or$cond17) {
$252 = $3;
$253 = HEAP32[$252>>2]|0;
$254 = ($253|0)==(2);
if (!($254)) {
$255 = $3;
$256 = HEAP32[$255>>2]|0;
$257 = ($256|0)==(3);
if (!($257)) {
break;
}
}
$258 = $lvalue;
$259 = (__gcry_sexp_length($258)|0);
$260 = ($259|0)!=(2);
if ($260) {
$rc = 65;
break L17;
}
$261 = $lvalue;
$262 = (__gcry_sexp_nth_data($261,1,$valuelen9)|0);
$value8 = $262;
$263 = ($262|0)!=(0|0);
$264 = HEAP32[$valuelen9>>2]|0;
$265 = ($264|0)!=(0);
$or$cond19 = $263 & $265;
if ($or$cond19) {
$266 = $2;
$267 = $3;
$268 = ((($267)) + 4|0);
$269 = HEAP32[$268>>2]|0;
$270 = $value8;
$271 = HEAP32[$valuelen9>>2]|0;
$272 = (__gcry_rsa_pkcs1_encode_raw_for_sig($266,$269,$270,$271)|0);
$rc = $272;
break L17;
} else {
$rc = 65;
break L17;
}
}
} while(0);
$273 = $3;
$274 = ((($273)) + 8|0);
$275 = HEAP32[$274>>2]|0;
$276 = ($275|0)==(3);
$277 = $lvalue;
$278 = ($277|0)!=(0|0);
$or$cond21 = $276 & $278;
if ($or$cond21) {
$279 = $3;
$280 = HEAP32[$279>>2]|0;
$281 = ($280|0)==(0);
if ($281) {
$282 = $lvalue;
$283 = (__gcry_sexp_nth_data($282,1,$valuelen11)|0);
$value10 = $283;
$284 = ($283|0)!=(0|0);
$285 = HEAP32[$valuelen11>>2]|0;
$286 = ($285|0)!=(0);
$or$cond23 = $284 & $286;
if (!($or$cond23)) {
$rc = 65;
break;
}
$random_override13 = 0;
$random_override_len14 = 0;
$287 = $ldata;
$288 = (__gcry_sexp_find_token($287,37828,0)|0);
$list12 = $288;
$289 = $list12;
$290 = ($289|0)!=(0|0);
if ($290) {
$291 = $list12;
$292 = (__gcry_sexp_nth_data($291,1,$n)|0);
$s = $292;
$293 = $s;
$294 = ($293|0)!=(0|0);
do {
if ($294) {
$295 = $s;
$296 = HEAP32[$n>>2]|0;
$297 = (_get_hash_algo($295,$296)|0);
$298 = $3;
$299 = ((($298)) + 16|0);
HEAP32[$299>>2] = $297;
$300 = $3;
$301 = ((($300)) + 16|0);
$302 = HEAP32[$301>>2]|0;
$303 = ($302|0)!=(0);
if ($303) {
break;
}
$rc = 5;
} else {
$rc = 68;
}
} while(0);
$304 = $list12;
__gcry_sexp_release($304);
$305 = $rc;
$306 = ($305|0)!=(0);
if ($306) {
break;
}
}
$307 = $ldata;
$308 = (__gcry_sexp_find_token($307,37912,0)|0);
$list12 = $308;
$309 = $list12;
$310 = ($309|0)!=(0|0);
if ($310) {
$311 = $list12;
$312 = (__gcry_sexp_nth_data($311,1,$n)|0);
$s = $312;
$313 = $s;
$314 = ($313|0)!=(0|0);
do {
if ($314) {
$315 = HEAP32[$n>>2]|0;
$316 = ($315>>>0)>(0);
if (!($316)) {
break;
}
$317 = HEAP32[$n>>2]|0;
$318 = (__gcry_malloc($317)|0);
$319 = $3;
$320 = ((($319)) + 20|0);
HEAP32[$320>>2] = $318;
$321 = $3;
$322 = ((($321)) + 20|0);
$323 = HEAP32[$322>>2]|0;
$324 = ($323|0)!=(0|0);
if ($324) {
$326 = $3;
$327 = ((($326)) + 20|0);
$328 = HEAP32[$327>>2]|0;
$329 = $s;
$330 = HEAP32[$n>>2]|0;
_memcpy(($328|0),($329|0),($330|0))|0;
$331 = HEAP32[$n>>2]|0;
$332 = $3;
$333 = ((($332)) + 24|0);
HEAP32[$333>>2] = $331;
break;
} else {
$325 = (_gpg_err_code_from_syserror()|0);
$rc = $325;
break;
}
} else {
$rc = 68;
}
} while(0);
$334 = $list12;
__gcry_sexp_release($334);
$335 = $rc;
$336 = ($335|0)!=(0);
if ($336) {
break;
}
}
$337 = $ldata;
$338 = (__gcry_sexp_find_token($337,37918,0)|0);
$list12 = $338;
$339 = $list12;
$340 = ($339|0)!=(0|0);
if ($340) {
$341 = $list12;
$342 = (__gcry_sexp_nth_data($341,1,$n)|0);
$s = $342;
$343 = $s;
$344 = ($343|0)!=(0|0);
do {
if ($344) {
$345 = HEAP32[$n>>2]|0;
$346 = ($345>>>0)>(0);
if (!($346)) {
break;
}
$347 = HEAP32[$n>>2]|0;
$348 = (__gcry_malloc($347)|0);
$random_override13 = $348;
$349 = $random_override13;
$350 = ($349|0)!=(0|0);
if ($350) {
$352 = $random_override13;
$353 = $s;
$354 = HEAP32[$n>>2]|0;
_memcpy(($352|0),($353|0),($354|0))|0;
$355 = HEAP32[$n>>2]|0;
$random_override_len14 = $355;
break;
} else {
$351 = (_gpg_err_code_from_syserror()|0);
$rc = $351;
break;
}
} else {
$rc = 68;
}
} while(0);
$356 = $list12;
__gcry_sexp_release($356);
$357 = $rc;
$358 = ($357|0)!=(0);
if ($358) {
break;
}
}
$359 = $2;
$360 = $3;
$361 = ((($360)) + 4|0);
$362 = HEAP32[$361>>2]|0;
$363 = $3;
$364 = ((($363)) + 16|0);
$365 = HEAP32[$364>>2]|0;
$366 = $value10;
$367 = HEAP32[$valuelen11>>2]|0;
$368 = $3;
$369 = ((($368)) + 20|0);
$370 = HEAP32[$369>>2]|0;
$371 = $3;
$372 = ((($371)) + 24|0);
$373 = HEAP32[$372>>2]|0;
$374 = $random_override13;
$375 = $random_override_len14;
$376 = (__gcry_rsa_oaep_encode($359,$362,$365,$366,$367,$370,$373,$374,$375)|0);
$rc = $376;
$377 = $random_override13;
__gcry_free($377);
break;
}
}
$378 = $3;
$379 = ((($378)) + 8|0);
$380 = HEAP32[$379>>2]|0;
$381 = ($380|0)==(4);
$382 = $lhash;
$383 = ($382|0)!=(0|0);
$or$cond25 = $381 & $383;
if ($or$cond25) {
$384 = $3;
$385 = HEAP32[$384>>2]|0;
$386 = ($385|0)==(2);
if ($386) {
$387 = $lhash;
$388 = (__gcry_sexp_length($387)|0);
$389 = ($388|0)!=(3);
if ($389) {
$rc = 65;
break;
}
$390 = $lhash;
$391 = (__gcry_sexp_nth_data($390,1,$n)|0);
$s = $391;
$392 = ($391|0)!=(0|0);
$393 = HEAP32[$n>>2]|0;
$394 = ($393|0)!=(0);
$or$cond27 = $392 & $394;
if (!($or$cond27)) {
$rc = 65;
break;
}
$random_override17 = 0;
$random_override_len18 = 0;
$395 = $s;
$396 = HEAP32[$n>>2]|0;
$397 = (_get_hash_algo($395,$396)|0);
$398 = $3;
$399 = ((($398)) + 16|0);
HEAP32[$399>>2] = $397;
$400 = $3;
$401 = ((($400)) + 16|0);
$402 = HEAP32[$401>>2]|0;
$403 = ($402|0)!=(0);
if (!($403)) {
$rc = 5;
break;
}
$404 = $lhash;
$405 = (__gcry_sexp_nth_data($404,2,$valuelen16)|0);
$value15 = $405;
$406 = ($405|0)!=(0|0);
$407 = HEAP32[$valuelen16>>2]|0;
$408 = ($407|0)!=(0);
$or$cond29 = $406 & $408;
if (!($or$cond29)) {
$rc = 65;
break;
}
$409 = $ldata;
$410 = (__gcry_sexp_find_token($409,37944,0)|0);
$list19 = $410;
$411 = $list19;
$412 = ($411|0)!=(0|0);
do {
if ($412) {
$413 = $list19;
$414 = (__gcry_sexp_nth_data($413,1,$n)|0);
$s = $414;
$415 = $s;
$416 = ($415|0)!=(0|0);
if ($416) {
$417 = $s;
$418 = (_strtoul($417,0,10)|0);
$419 = $3;
$420 = ((($419)) + 28|0);
HEAP32[$420>>2] = $418;
$421 = $list19;
__gcry_sexp_release($421);
break;
} else {
$rc = 68;
break L17;
}
}
} while(0);
$422 = $ldata;
$423 = (__gcry_sexp_find_token($422,37918,0)|0);
$list19 = $423;
$424 = $list19;
$425 = ($424|0)!=(0|0);
if ($425) {
$426 = $list19;
$427 = (__gcry_sexp_nth_data($426,1,$n)|0);
$s = $427;
$428 = $s;
$429 = ($428|0)!=(0|0);
do {
if ($429) {
$430 = HEAP32[$n>>2]|0;
$431 = ($430>>>0)>(0);
if (!($431)) {
break;
}
$432 = HEAP32[$n>>2]|0;
$433 = (__gcry_malloc($432)|0);
$random_override17 = $433;
$434 = $random_override17;
$435 = ($434|0)!=(0|0);
if ($435) {
$437 = $random_override17;
$438 = $s;
$439 = HEAP32[$n>>2]|0;
_memcpy(($437|0),($438|0),($439|0))|0;
$440 = HEAP32[$n>>2]|0;
$random_override_len18 = $440;
break;
} else {
$436 = (_gpg_err_code_from_syserror()|0);
$rc = $436;
break;
}
} else {
$rc = 68;
}
} while(0);
$441 = $list19;
__gcry_sexp_release($441);
$442 = $rc;
$443 = ($442|0)!=(0);
if ($443) {
break;
}
}
$444 = $2;
$445 = $3;
$446 = ((($445)) + 4|0);
$447 = HEAP32[$446>>2]|0;
$448 = (($447) - 1)|0;
$449 = $3;
$450 = ((($449)) + 16|0);
$451 = HEAP32[$450>>2]|0;
$452 = $value15;
$453 = HEAP32[$valuelen16>>2]|0;
$454 = $3;
$455 = ((($454)) + 28|0);
$456 = HEAP32[$455>>2]|0;
$457 = $random_override17;
$458 = $random_override_len18;
$459 = (__gcry_rsa_pss_encode($444,$448,$451,$452,$453,$456,$457,$458)|0);
$rc = $459;
$460 = $random_override17;
__gcry_free($460);
break;
}
}
$461 = $3;
$462 = ((($461)) + 8|0);
$463 = HEAP32[$462>>2]|0;
$464 = ($463|0)==(4);
$465 = $lhash;
$466 = ($465|0)!=(0|0);
$or$cond31 = $464 & $466;
if ($or$cond31) {
$467 = $3;
$468 = HEAP32[$467>>2]|0;
$469 = ($468|0)==(3);
if ($469) {
$470 = $lhash;
$471 = (__gcry_sexp_length($470)|0);
$472 = ($471|0)!=(3);
if ($472) {
$rc = 65;
break;
}
$473 = $lhash;
$474 = (__gcry_sexp_nth_data($473,1,$n)|0);
$s = $474;
$475 = ($474|0)!=(0|0);
$476 = HEAP32[$n>>2]|0;
$477 = ($476|0)!=(0);
$or$cond33 = $475 & $477;
if (!($or$cond33)) {
$rc = 65;
break;
}
$478 = $s;
$479 = HEAP32[$n>>2]|0;
$480 = (_get_hash_algo($478,$479)|0);
$481 = $3;
$482 = ((($481)) + 16|0);
HEAP32[$482>>2] = $480;
$483 = $3;
$484 = ((($483)) + 16|0);
$485 = HEAP32[$484>>2]|0;
$486 = ($485|0)!=(0);
if (!($486)) {
$rc = 5;
break;
}
$487 = $lhash;
$488 = (__gcry_sexp_nth_mpi($487,2,5)|0);
$489 = $2;
HEAP32[$489>>2] = $488;
$490 = $2;
$491 = HEAP32[$490>>2]|0;
$492 = ($491|0)!=(0|0);
if (!($492)) {
$rc = 65;
}
$493 = $3;
$494 = ((($493)) + 32|0);
HEAP32[$494>>2] = 67;
$495 = $2;
$496 = HEAP32[$495>>2]|0;
$497 = $3;
$498 = ((($497)) + 36|0);
HEAP32[$498>>2] = $496;
break;
}
}
$rc = 70;
} else {
$rc = 65;
}
} while(0);
$499 = $ldata;
__gcry_sexp_release($499);
$500 = $lhash;
__gcry_sexp_release($500);
$501 = $lvalue;
__gcry_sexp_release($501);
$502 = $rc;
$503 = ($502|0)!=(0);
if ($503) {
$507 = $3;
$508 = ((($507)) + 20|0);
$509 = HEAP32[$508>>2]|0;
__gcry_free($509);
$510 = $3;
$511 = ((($510)) + 20|0);
HEAP32[$511>>2] = 0;
} else {
$504 = HEAP32[$parsed_flags>>2]|0;
$505 = $3;
$506 = ((($505)) + 12|0);
HEAP32[$506>>2] = $504;
}
$512 = $rc;
$0 = $512;
$513 = $0;
STACKTOP = sp;return ($513|0);
}
function _pss_verify_cmp($opaque,$tmp) {
$opaque = $opaque|0;
$tmp = $tmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0;
var $hash = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $opaque;
$1 = $tmp;
$2 = $0;
$ctx = $2;
$3 = $ctx;
$4 = ((($3)) + 36|0);
$5 = HEAP32[$4>>2]|0;
$hash = $5;
$6 = $hash;
$7 = $1;
$8 = $ctx;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) - 1)|0;
$12 = $ctx;
$13 = ((($12)) + 16|0);
$14 = HEAP32[$13>>2]|0;
$15 = $ctx;
$16 = ((($15)) + 28|0);
$17 = HEAP32[$16>>2]|0;
$18 = (__gcry_rsa_pss_verify($6,$7,$11,$14,$17)|0);
STACKTOP = sp;return ($18|0);
}
function _spec_from_name_1102($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $aliases = 0, $idx = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $name;
$idx = 0;
L1: while(1) {
$2 = $idx;
$3 = (4448 + ($2<<2)|0);
$4 = HEAP32[$3>>2]|0;
$spec = $4;
$5 = ($4|0)!=(0|0);
if (!($5)) {
label = 11;
break;
}
$6 = $1;
$7 = $spec;
$8 = ((($7)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = (_strcasecmp($6,$9)|0);
$11 = ($10|0)!=(0);
$12 = $spec;
if (!($11)) {
label = 4;
break;
}
$13 = ((($12)) + 16|0);
$14 = HEAP32[$13>>2]|0;
$aliases = $14;
while(1) {
$15 = $aliases;
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)!=(0|0);
if (!($17)) {
break;
}
$18 = $1;
$19 = $aliases;
$20 = HEAP32[$19>>2]|0;
$21 = (_strcasecmp($18,$20)|0);
$22 = ($21|0)!=(0);
if (!($22)) {
label = 8;
break L1;
}
$24 = $aliases;
$25 = ((($24)) + 4|0);
$aliases = $25;
}
$26 = $idx;
$27 = (($26) + 1)|0;
$idx = $27;
}
if ((label|0) == 4) {
$0 = $12;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
else if ((label|0) == 8) {
$23 = $spec;
$0 = $23;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
else if ((label|0) == 11) {
$0 = 0;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
return (0)|0;
}
function __gcry_pk_algo_name($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algo;
$2 = $1;
$3 = (_spec_from_algo_1105($2)|0);
$spec = $3;
$4 = $spec;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $spec;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$0 = $8;
$9 = $0;
STACKTOP = sp;return ($9|0);
} else {
$0 = 37956;
$9 = $0;
STACKTOP = sp;return ($9|0);
}
return (0)|0;
}
function _spec_from_algo_1105($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algo;
$2 = $1;
$3 = (_map_algo_1106($2)|0);
$1 = $3;
$idx = 0;
while(1) {
$4 = $idx;
$5 = (4448 + ($4<<2)|0);
$6 = HEAP32[$5>>2]|0;
$spec = $6;
$7 = ($6|0)!=(0|0);
if (!($7)) {
label = 6;
break;
}
$8 = $1;
$9 = $spec;
$10 = HEAP32[$9>>2]|0;
$11 = ($8|0)==($10|0);
if ($11) {
label = 4;
break;
}
$13 = $idx;
$14 = (($13) + 1)|0;
$idx = $14;
}
if ((label|0) == 4) {
$12 = $spec;
$0 = $12;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
else if ((label|0) == 6) {
$0 = 0;
$15 = $0;
STACKTOP = sp;return ($15|0);
}
return (0)|0;
}
function _map_algo_1106($algo) {
$algo = $algo|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algo;
$2 = $1;
switch ($2|0) {
case 2: {
$0 = 1;
break;
}
case 3: {
$0 = 1;
break;
}
case 16: {
$0 = 20;
break;
}
case 301: {
$0 = 18;
break;
}
case 302: {
$0 = 18;
break;
}
default: {
$3 = $1;
$0 = $3;
}
}
$4 = $0;
STACKTOP = sp;return ($4|0);
}
function __gcry_pk_encrypt($r_ciph,$s_data,$s_pkey) {
$r_ciph = $r_ciph|0;
$s_data = $s_data|0;
$s_pkey = $s_pkey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $keyparms = 0, $rc = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$spec = sp + 4|0;
$keyparms = sp;
$0 = $r_ciph;
$1 = $s_data;
$2 = $s_pkey;
$3 = $0;
HEAP32[$3>>2] = 0;
$4 = $2;
$5 = (_spec_from_sexp($4,0,$spec,$keyparms)|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
do {
if (!($7)) {
$8 = HEAP32[$spec>>2]|0;
$9 = ((($8)) + 48|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = HEAP32[$spec>>2]|0;
$13 = ((($12)) + 48|0);
$14 = HEAP32[$13>>2]|0;
$15 = $0;
$16 = $1;
$17 = HEAP32[$keyparms>>2]|0;
$18 = (FUNCTION_TABLE_iiii[$14 & 127]($15,$16,$17)|0);
$rc = $18;
break;
} else {
$rc = 69;
break;
}
}
} while(0);
$19 = HEAP32[$keyparms>>2]|0;
__gcry_sexp_release($19);
$20 = $rc;
STACKTOP = sp;return ($20|0);
}
function _spec_from_sexp($sexp,$want_private,$r_spec,$r_parms) {
$sexp = $sexp|0;
$want_private = $want_private|0;
$r_spec = $r_spec|0;
$r_parms = $r_parms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l2 = 0, $list = 0, $name = 0, $or$cond = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $sexp;
$2 = $want_private;
$3 = $r_spec;
$4 = $r_parms;
$5 = $3;
HEAP32[$5>>2] = 0;
$6 = $4;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $4;
HEAP32[$8>>2] = 0;
}
$9 = $1;
$10 = $2;
$11 = ($10|0)!=(0);
$12 = $11 ? 37958 : 37970;
$13 = (__gcry_sexp_find_token($9,$12,0)|0);
$list = $13;
$14 = $list;
$15 = ($14|0)!=(0|0);
$16 = $2;
$17 = ($16|0)!=(0);
$or$cond = $15 | $17;
if (!($or$cond)) {
$18 = $1;
$19 = (__gcry_sexp_find_token($18,37958,0)|0);
$list = $19;
}
$20 = $list;
$21 = ($20|0)!=(0|0);
if (!($21)) {
$0 = 65;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$22 = $list;
$23 = (__gcry_sexp_cadr($22)|0);
$l2 = $23;
$24 = $list;
__gcry_sexp_release($24);
$25 = $l2;
$list = $25;
$26 = $list;
$27 = (__gcry_sexp_nth_string($26,0)|0);
$name = $27;
$28 = $name;
$29 = ($28|0)!=(0|0);
if (!($29)) {
$30 = $list;
__gcry_sexp_release($30);
$0 = 65;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$31 = $name;
$32 = (_spec_from_name_1102($31)|0);
$spec = $32;
$33 = $name;
__gcry_free($33);
$34 = $spec;
$35 = ($34|0)!=(0|0);
if (!($35)) {
$36 = $list;
__gcry_sexp_release($36);
$0 = 4;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$37 = $spec;
$38 = $3;
HEAP32[$38>>2] = $37;
$39 = $4;
$40 = ($39|0)!=(0|0);
$41 = $list;
if ($40) {
$42 = $4;
HEAP32[$42>>2] = $41;
} else {
__gcry_sexp_release($41);
}
$0 = 0;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
function __gcry_pk_decrypt($r_plain,$s_data,$s_skey) {
$r_plain = $r_plain|0;
$s_data = $s_data|0;
$s_skey = $s_skey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $keyparms = 0, $rc = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$spec = sp + 4|0;
$keyparms = sp;
$0 = $r_plain;
$1 = $s_data;
$2 = $s_skey;
$3 = $0;
HEAP32[$3>>2] = 0;
$4 = $2;
$5 = (_spec_from_sexp($4,1,$spec,$keyparms)|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
do {
if (!($7)) {
$8 = HEAP32[$spec>>2]|0;
$9 = ((($8)) + 52|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = HEAP32[$spec>>2]|0;
$13 = ((($12)) + 52|0);
$14 = HEAP32[$13>>2]|0;
$15 = $0;
$16 = $1;
$17 = HEAP32[$keyparms>>2]|0;
$18 = (FUNCTION_TABLE_iiii[$14 & 127]($15,$16,$17)|0);
$rc = $18;
break;
} else {
$rc = 69;
break;
}
}
} while(0);
$19 = HEAP32[$keyparms>>2]|0;
__gcry_sexp_release($19);
$20 = $rc;
STACKTOP = sp;return ($20|0);
}
function __gcry_pk_sign($r_sig,$s_hash,$s_skey) {
$r_sig = $r_sig|0;
$s_hash = $s_hash|0;
$s_skey = $s_skey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $keyparms = 0, $rc = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$spec = sp + 4|0;
$keyparms = sp;
$0 = $r_sig;
$1 = $s_hash;
$2 = $s_skey;
$3 = $0;
HEAP32[$3>>2] = 0;
$4 = $2;
$5 = (_spec_from_sexp($4,1,$spec,$keyparms)|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
do {
if (!($7)) {
$8 = HEAP32[$spec>>2]|0;
$9 = ((($8)) + 56|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = HEAP32[$spec>>2]|0;
$13 = ((($12)) + 56|0);
$14 = HEAP32[$13>>2]|0;
$15 = $0;
$16 = $1;
$17 = HEAP32[$keyparms>>2]|0;
$18 = (FUNCTION_TABLE_iiii[$14 & 127]($15,$16,$17)|0);
$rc = $18;
break;
} else {
$rc = 69;
break;
}
}
} while(0);
$19 = HEAP32[$keyparms>>2]|0;
__gcry_sexp_release($19);
$20 = $rc;
STACKTOP = sp;return ($20|0);
}
function __gcry_pk_verify($s_sig,$s_hash,$s_pkey) {
$s_sig = $s_sig|0;
$s_hash = $s_hash|0;
$s_pkey = $s_pkey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $keyparms = 0, $rc = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$spec = sp + 4|0;
$keyparms = sp;
$0 = $s_sig;
$1 = $s_hash;
$2 = $s_pkey;
$3 = $2;
$4 = (_spec_from_sexp($3,0,$spec,$keyparms)|0);
$rc = $4;
$5 = $rc;
$6 = ($5|0)!=(0);
do {
if (!($6)) {
$7 = HEAP32[$spec>>2]|0;
$8 = ((($7)) + 60|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = HEAP32[$spec>>2]|0;
$12 = ((($11)) + 60|0);
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = $1;
$16 = HEAP32[$keyparms>>2]|0;
$17 = (FUNCTION_TABLE_iiii[$13 & 127]($14,$15,$16)|0);
$rc = $17;
break;
} else {
$rc = 69;
break;
}
}
} while(0);
$18 = HEAP32[$keyparms>>2]|0;
__gcry_sexp_release($18);
$19 = $rc;
STACKTOP = sp;return ($19|0);
}
function __gcry_pk_testkey($s_key) {
$s_key = $s_key|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $keyparms = 0, $rc = 0, $spec = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$spec = sp + 4|0;
$keyparms = sp;
$0 = $s_key;
$1 = $0;
$2 = (_spec_from_sexp($1,1,$spec,$keyparms)|0);
$rc = $2;
$3 = $rc;
$4 = ($3|0)!=(0);
do {
if (!($4)) {
$5 = HEAP32[$spec>>2]|0;
$6 = ((($5)) + 44|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = HEAP32[$spec>>2]|0;
$10 = ((($9)) + 44|0);
$11 = HEAP32[$10>>2]|0;
$12 = HEAP32[$keyparms>>2]|0;
$13 = (FUNCTION_TABLE_ii[$11 & 63]($12)|0);
$rc = $13;
break;
} else {
$rc = 69;
break;
}
}
} while(0);
$14 = HEAP32[$keyparms>>2]|0;
__gcry_sexp_release($14);
$15 = $rc;
STACKTOP = sp;return ($15|0);
}
function __gcry_pk_genkey($r_key,$s_parms) {
$r_key = $r_key|0;
$s_parms = $s_parms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l2 = 0, $list = 0, $name = 0, $rc = 0;
var $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $r_key;
$1 = $s_parms;
$spec = 0;
$list = 0;
$l2 = 0;
$name = 0;
$2 = $0;
HEAP32[$2>>2] = 0;
$3 = $1;
$4 = (__gcry_sexp_find_token($3,37981,0)|0);
$list = $4;
$5 = $list;
$6 = ($5|0)!=(0|0);
do {
if ($6) {
$7 = $list;
$8 = (__gcry_sexp_cadr($7)|0);
$l2 = $8;
$9 = $list;
__gcry_sexp_release($9);
$10 = $l2;
$list = $10;
$l2 = 0;
$11 = $list;
$12 = ($11|0)!=(0|0);
if (!($12)) {
$rc = 68;
break;
}
$13 = $list;
$14 = (__gcry_sexp_nth_string($13,0)|0);
$name = $14;
$15 = $name;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$rc = 65;
break;
}
$17 = $name;
$18 = (_spec_from_name_1102($17)|0);
$spec = $18;
$19 = $name;
__gcry_free($19);
$name = 0;
$20 = $spec;
$21 = ($20|0)!=(0|0);
if (!($21)) {
$rc = 4;
break;
}
$22 = $spec;
$23 = ((($22)) + 40|0);
$24 = HEAP32[$23>>2]|0;
$25 = ($24|0)!=(0|0);
if ($25) {
$26 = $spec;
$27 = ((($26)) + 40|0);
$28 = HEAP32[$27>>2]|0;
$29 = $list;
$30 = $0;
$31 = (FUNCTION_TABLE_iii[$28 & 127]($29,$30)|0);
$rc = $31;
break;
} else {
$rc = 69;
break;
}
} else {
$rc = 65;
}
} while(0);
$32 = $list;
__gcry_sexp_release($32);
$33 = $name;
__gcry_free($33);
$34 = $l2;
__gcry_sexp_release($34);
$35 = $rc;
STACKTOP = sp;return ($35|0);
}
function __gcry_pk_init() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_pk_selftest($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, $spec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
$4 = (_map_algo_1106($3)|0);
$0 = $4;
$5 = $0;
$6 = (_spec_from_algo_1105($5)|0);
$spec = $6;
$7 = $spec;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $spec;
$10 = ((($9)) + 4|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11 & 1;
$13 = $12&255;
$14 = ($13|0)!=(0);
if (!($14)) {
$15 = $spec;
$16 = ((($15)) + 68|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = $spec;
$20 = ((($19)) + 68|0);
$21 = HEAP32[$20>>2]|0;
$22 = $0;
$23 = $1;
$24 = $2;
$25 = (FUNCTION_TABLE_iiii[$21 & 127]($22,$23,$24)|0);
$ec = $25;
$42 = $ec;
$43 = (_gpg_error_1151($42)|0);
STACKTOP = sp;return ($43|0);
}
}
}
$ec = 4;
$26 = $2;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$42 = $ec;
$43 = (_gpg_error_1151($42)|0);
STACKTOP = sp;return ($43|0);
}
$28 = $2;
$29 = $0;
$30 = $spec;
$31 = ($30|0)!=(0|0);
if ($31) {
$32 = $spec;
$33 = ((($32)) + 4|0);
$34 = HEAP8[$33>>0]|0;
$35 = $34 & 1;
$36 = $35&255;
$37 = ($36|0)!=(0);
if ($37) {
label = 8;
} else {
$41 = 38027;
}
} else {
label = 8;
}
if ((label|0) == 8) {
$38 = $spec;
$39 = ($38|0)!=(0|0);
$40 = $39 ? 37988 : 38007;
$41 = $40;
}
FUNCTION_TABLE_viiii[$28 & 63](49859,$29,38049,$41);
$42 = $ec;
$43 = (_gpg_error_1151($42)|0);
STACKTOP = sp;return ($43|0);
}
function _gpg_error_1151($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_1152(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make_1152($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function _rijndael_setkey($context,$key,$keylen) {
$context = $context|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $key;
$2 = $keylen;
$3 = $0;
$ctx = $3;
$4 = $ctx;
$5 = $1;
$6 = $2;
$7 = (_do_setkey($4,$5,$6)|0);
STACKTOP = sp;return ($7|0);
}
function _do_setkey($ctx,$key,$keylen) {
$ctx = $ctx|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $KC = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $i = 0, $j = 0, $or$cond = 0, $r = 0, $rconpointer = 0, $rounds = 0, $sbox = 0, $t = 0, $tkk = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp + 72|0;
$tkk = sp + 8|0;
$_vset_long = sp;
$1 = $ctx;
$2 = $key;
$3 = $keylen;
$rconpointer = 0;
$4 = (__gcry_fips_mode()|0);
$5 = ($4|0)!=(0);
$6 = HEAP32[17706]|0;
$7 = ($6|0)!=(0);
$or$cond = $5 | $7;
if (!($or$cond)) {
HEAP32[17706] = 1;
$8 = (_selftest()|0);
HEAP32[17707] = $8;
$9 = HEAP32[17707]|0;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = HEAP32[17707]|0;
HEAP32[$vararg_buffer>>2] = $11;
__gcry_log_error(43729,$vararg_buffer);
}
}
$12 = HEAP32[17707]|0;
$13 = ($12|0)!=(0|0);
if ($13) {
$0 = 50;
$401 = $0;
STACKTOP = sp;return ($401|0);
}
$14 = $3;
$15 = ($14|0)==(16);
do {
if ($15) {
$rounds = 10;
$KC = 4;
} else {
$16 = $3;
$17 = ($16|0)==(24);
if ($17) {
$rounds = 12;
$KC = 6;
break;
}
$18 = $3;
$19 = ($18|0)==(32);
if ($19) {
$rounds = 14;
$KC = 8;
break;
}
$0 = 44;
$401 = $0;
STACKTOP = sp;return ($401|0);
}
} while(0);
$20 = $rounds;
$21 = $1;
$22 = ((($21)) + 480|0);
HEAP32[$22>>2] = $20;
$23 = $1;
$24 = ((($23)) + 484|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25 & -2;
HEAP8[$24>>0] = $26;
$27 = $1;
$28 = ((($27)) + 488|0);
HEAP32[$28>>2] = 68;
$29 = $1;
$30 = ((($29)) + 492|0);
HEAP32[$30>>2] = 69;
$31 = $1;
$32 = ((($31)) + 496|0);
HEAP32[$32>>2] = 70;
$33 = $1;
$34 = ((($33)) + 500|0);
HEAP32[$34>>2] = 71;
$sbox = (4581);
_prefetch_enc();
$i = 0;
while(1) {
$35 = $i;
$36 = $3;
$37 = ($35>>>0)<($36>>>0);
if (!($37)) {
break;
}
$38 = $i;
$39 = $2;
$40 = (($39) + ($38)|0);
$41 = HEAP8[$40>>0]|0;
$42 = $i;
$43 = $42 & 3;
$44 = $i;
$45 = $44 >> 2;
$46 = (($tkk) + ($45<<2)|0);
$47 = (($46) + ($43)|0);
HEAP8[$47>>0] = $41;
$48 = $i;
$49 = (($48) + 1)|0;
$i = $49;
}
$50 = $KC;
$51 = (($50) - 1)|0;
$j = $51;
while(1) {
$52 = $j;
$53 = ($52|0)>=(0);
if (!($53)) {
break;
}
$54 = $j;
$55 = (($tkk) + ($54<<2)|0);
$56 = HEAP32[$55>>2]|0;
$57 = $j;
$58 = ((($tkk)) + 32|0);
$59 = (($58) + ($57<<2)|0);
HEAP32[$59>>2] = $56;
$60 = $j;
$61 = (($60) + -1)|0;
$j = $61;
}
$r = 0;
$t = 0;
$j = 0;
while(1) {
$62 = $j;
$63 = $KC;
$64 = ($62|0)<($63|0);
if (!($64)) {
break;
}
$65 = $r;
$66 = $rounds;
$67 = (($66) + 1)|0;
$68 = ($65|0)<($67|0);
if (!($68)) {
break;
}
while(1) {
$69 = $j;
$70 = $KC;
$71 = ($69|0)<($70|0);
$72 = $t;
$73 = ($72|0)<(4);
$74 = $71 ? $73 : 0;
if (!($74)) {
break;
}
$75 = $j;
$76 = ((($tkk)) + 32|0);
$77 = (($76) + ($75<<2)|0);
$78 = HEAP32[$77>>2]|0;
$79 = $t;
$80 = $r;
$81 = $1;
$82 = (($81) + ($80<<4)|0);
$83 = (($82) + ($79<<2)|0);
HEAP32[$83>>2] = $78;
$84 = $j;
$85 = (($84) + 1)|0;
$j = $85;
$86 = $t;
$87 = (($86) + 1)|0;
$t = $87;
}
$88 = $t;
$89 = ($88|0)==(4);
if (!($89)) {
continue;
}
$90 = $r;
$91 = (($90) + 1)|0;
$r = $91;
$t = 0;
}
L36: while(1) {
$92 = $r;
$93 = $rounds;
$94 = (($93) + 1)|0;
$95 = ($92|0)<($94|0);
if (!($95)) {
break;
}
$96 = $KC;
$97 = (($96) - 1)|0;
$98 = ((($tkk)) + 32|0);
$99 = (($98) + ($97<<2)|0);
$100 = ((($99)) + 1|0);
$101 = HEAP8[$100>>0]|0;
$102 = $101&255;
$103 = $102<<2;
$104 = $sbox;
$105 = (($104) + ($103)|0);
$106 = HEAP8[$105>>0]|0;
$107 = $106&255;
$108 = ((($tkk)) + 32|0);
$109 = HEAP8[$108>>0]|0;
$110 = $109&255;
$111 = $110 ^ $107;
$112 = $111&255;
HEAP8[$108>>0] = $112;
$113 = $KC;
$114 = (($113) - 1)|0;
$115 = ((($tkk)) + 32|0);
$116 = (($115) + ($114<<2)|0);
$117 = ((($116)) + 2|0);
$118 = HEAP8[$117>>0]|0;
$119 = $118&255;
$120 = $119<<2;
$121 = $sbox;
$122 = (($121) + ($120)|0);
$123 = HEAP8[$122>>0]|0;
$124 = $123&255;
$125 = ((($tkk)) + 32|0);
$126 = ((($125)) + 1|0);
$127 = HEAP8[$126>>0]|0;
$128 = $127&255;
$129 = $128 ^ $124;
$130 = $129&255;
HEAP8[$126>>0] = $130;
$131 = $KC;
$132 = (($131) - 1)|0;
$133 = ((($tkk)) + 32|0);
$134 = (($133) + ($132<<2)|0);
$135 = ((($134)) + 3|0);
$136 = HEAP8[$135>>0]|0;
$137 = $136&255;
$138 = $137<<2;
$139 = $sbox;
$140 = (($139) + ($138)|0);
$141 = HEAP8[$140>>0]|0;
$142 = $141&255;
$143 = ((($tkk)) + 32|0);
$144 = ((($143)) + 2|0);
$145 = HEAP8[$144>>0]|0;
$146 = $145&255;
$147 = $146 ^ $142;
$148 = $147&255;
HEAP8[$144>>0] = $148;
$149 = $KC;
$150 = (($149) - 1)|0;
$151 = ((($tkk)) + 32|0);
$152 = (($151) + ($150<<2)|0);
$153 = HEAP8[$152>>0]|0;
$154 = $153&255;
$155 = $154<<2;
$156 = $sbox;
$157 = (($156) + ($155)|0);
$158 = HEAP8[$157>>0]|0;
$159 = $158&255;
$160 = ((($tkk)) + 32|0);
$161 = ((($160)) + 3|0);
$162 = HEAP8[$161>>0]|0;
$163 = $162&255;
$164 = $163 ^ $159;
$165 = $164&255;
HEAP8[$161>>0] = $165;
$166 = $rconpointer;
$167 = (($166) + 1)|0;
$rconpointer = $167;
$168 = (6884 + ($166<<2)|0);
$169 = HEAP32[$168>>2]|0;
$170 = ((($tkk)) + 32|0);
$171 = HEAP8[$170>>0]|0;
$172 = $171&255;
$173 = $172 ^ $169;
$174 = $173&255;
HEAP8[$170>>0] = $174;
$175 = $KC;
$176 = ($175|0)!=(8);
$j = 1;
L39: do {
if ($176) {
while(1) {
$177 = $j;
$178 = $KC;
$179 = ($177|0)<($178|0);
if (!($179)) {
break L39;
}
$180 = $j;
$181 = (($180) - 1)|0;
$182 = ((($tkk)) + 32|0);
$183 = (($182) + ($181<<2)|0);
$184 = HEAP32[$183>>2]|0;
$185 = $j;
$186 = ((($tkk)) + 32|0);
$187 = (($186) + ($185<<2)|0);
$188 = HEAP32[$187>>2]|0;
$189 = $188 ^ $184;
HEAP32[$187>>2] = $189;
$190 = $j;
$191 = (($190) + 1)|0;
$j = $191;
}
} else {
while(1) {
$192 = $j;
$193 = $KC;
$194 = (($193|0) / 2)&-1;
$195 = ($192|0)<($194|0);
if (!($195)) {
break;
}
$196 = $j;
$197 = (($196) - 1)|0;
$198 = ((($tkk)) + 32|0);
$199 = (($198) + ($197<<2)|0);
$200 = HEAP32[$199>>2]|0;
$201 = $j;
$202 = ((($tkk)) + 32|0);
$203 = (($202) + ($201<<2)|0);
$204 = HEAP32[$203>>2]|0;
$205 = $204 ^ $200;
HEAP32[$203>>2] = $205;
$206 = $j;
$207 = (($206) + 1)|0;
$j = $207;
}
$208 = $KC;
$209 = (($208|0) / 2)&-1;
$210 = (($209) - 1)|0;
$211 = ((($tkk)) + 32|0);
$212 = (($211) + ($210<<2)|0);
$213 = HEAP8[$212>>0]|0;
$214 = $213&255;
$215 = $214<<2;
$216 = $sbox;
$217 = (($216) + ($215)|0);
$218 = HEAP8[$217>>0]|0;
$219 = $218&255;
$220 = $KC;
$221 = (($220|0) / 2)&-1;
$222 = ((($tkk)) + 32|0);
$223 = (($222) + ($221<<2)|0);
$224 = HEAP8[$223>>0]|0;
$225 = $224&255;
$226 = $225 ^ $219;
$227 = $226&255;
HEAP8[$223>>0] = $227;
$228 = $KC;
$229 = (($228|0) / 2)&-1;
$230 = (($229) - 1)|0;
$231 = ((($tkk)) + 32|0);
$232 = (($231) + ($230<<2)|0);
$233 = ((($232)) + 1|0);
$234 = HEAP8[$233>>0]|0;
$235 = $234&255;
$236 = $235<<2;
$237 = $sbox;
$238 = (($237) + ($236)|0);
$239 = HEAP8[$238>>0]|0;
$240 = $239&255;
$241 = $KC;
$242 = (($241|0) / 2)&-1;
$243 = ((($tkk)) + 32|0);
$244 = (($243) + ($242<<2)|0);
$245 = ((($244)) + 1|0);
$246 = HEAP8[$245>>0]|0;
$247 = $246&255;
$248 = $247 ^ $240;
$249 = $248&255;
HEAP8[$245>>0] = $249;
$250 = $KC;
$251 = (($250|0) / 2)&-1;
$252 = (($251) - 1)|0;
$253 = ((($tkk)) + 32|0);
$254 = (($253) + ($252<<2)|0);
$255 = ((($254)) + 2|0);
$256 = HEAP8[$255>>0]|0;
$257 = $256&255;
$258 = $257<<2;
$259 = $sbox;
$260 = (($259) + ($258)|0);
$261 = HEAP8[$260>>0]|0;
$262 = $261&255;
$263 = $KC;
$264 = (($263|0) / 2)&-1;
$265 = ((($tkk)) + 32|0);
$266 = (($265) + ($264<<2)|0);
$267 = ((($266)) + 2|0);
$268 = HEAP8[$267>>0]|0;
$269 = $268&255;
$270 = $269 ^ $262;
$271 = $270&255;
HEAP8[$267>>0] = $271;
$272 = $KC;
$273 = (($272|0) / 2)&-1;
$274 = (($273) - 1)|0;
$275 = ((($tkk)) + 32|0);
$276 = (($275) + ($274<<2)|0);
$277 = ((($276)) + 3|0);
$278 = HEAP8[$277>>0]|0;
$279 = $278&255;
$280 = $279<<2;
$281 = $sbox;
$282 = (($281) + ($280)|0);
$283 = HEAP8[$282>>0]|0;
$284 = $283&255;
$285 = $KC;
$286 = (($285|0) / 2)&-1;
$287 = ((($tkk)) + 32|0);
$288 = (($287) + ($286<<2)|0);
$289 = ((($288)) + 3|0);
$290 = HEAP8[$289>>0]|0;
$291 = $290&255;
$292 = $291 ^ $284;
$293 = $292&255;
HEAP8[$289>>0] = $293;
$294 = $KC;
$295 = (($294|0) / 2)&-1;
$296 = (($295) + 1)|0;
$j = $296;
while(1) {
$297 = $j;
$298 = $KC;
$299 = ($297|0)<($298|0);
if (!($299)) {
break L39;
}
$300 = $j;
$301 = (($300) - 1)|0;
$302 = ((($tkk)) + 32|0);
$303 = (($302) + ($301<<2)|0);
$304 = HEAP32[$303>>2]|0;
$305 = $j;
$306 = ((($tkk)) + 32|0);
$307 = (($306) + ($305<<2)|0);
$308 = HEAP32[$307>>2]|0;
$309 = $308 ^ $304;
HEAP32[$307>>2] = $309;
$310 = $j;
$311 = (($310) + 1)|0;
$j = $311;
}
}
} while(0);
$j = 0;
while(1) {
$312 = $j;
$313 = $KC;
$314 = ($312|0)<($313|0);
if (!($314)) {
continue L36;
}
$315 = $r;
$316 = $rounds;
$317 = (($316) + 1)|0;
$318 = ($315|0)<($317|0);
if (!($318)) {
continue L36;
}
while(1) {
$319 = $j;
$320 = $KC;
$321 = ($319|0)<($320|0);
$322 = $t;
$323 = ($322|0)<(4);
$324 = $321 ? $323 : 0;
if (!($324)) {
break;
}
$325 = $j;
$326 = ((($tkk)) + 32|0);
$327 = (($326) + ($325<<2)|0);
$328 = HEAP32[$327>>2]|0;
$329 = $t;
$330 = $r;
$331 = $1;
$332 = (($331) + ($330<<4)|0);
$333 = (($332) + ($329<<2)|0);
HEAP32[$333>>2] = $328;
$334 = $j;
$335 = (($334) + 1)|0;
$j = $335;
$336 = $t;
$337 = (($336) + 1)|0;
$t = $337;
}
$338 = $t;
$339 = ($338|0)==(4);
if (!($339)) {
continue;
}
$340 = $r;
$341 = (($340) + 1)|0;
$r = $341;
$t = 0;
}
}
$_vptr = $tkk;
$_vlen = 64;
$_vset = 0;
$342 = $_vset;
$343 = $342&255;
$344 = $_vset_long;
$345 = $344;
HEAP32[$345>>2] = $343;
$346 = (($344) + 4)|0;
$347 = $346;
HEAP32[$347>>2] = 0;
while(1) {
$348 = $_vptr;
$349 = $348;
$350 = $349 & 7;
$351 = ($350|0)!=(0);
$352 = $_vlen;
$353 = ($352|0)!=(0);
$354 = $351 ? $353 : 0;
if (!($354)) {
break;
}
$355 = $_vset;
$356 = $_vptr;
HEAP8[$356>>0] = $355;
$357 = $_vptr;
$358 = ((($357)) + 1|0);
$_vptr = $358;
$359 = $_vlen;
$360 = (($359) + -1)|0;
$_vlen = $360;
}
$361 = $_vlen;
$362 = ($361>>>0)<(8);
if (!($362)) {
$363 = $_vset_long;
$364 = $363;
$365 = HEAP32[$364>>2]|0;
$366 = (($363) + 4)|0;
$367 = $366;
$368 = HEAP32[$367>>2]|0;
$369 = (___muldi3(($365|0),($368|0),16843009,16843009)|0);
$370 = tempRet0;
$371 = $_vset_long;
$372 = $371;
HEAP32[$372>>2] = $369;
$373 = (($371) + 4)|0;
$374 = $373;
HEAP32[$374>>2] = $370;
while(1) {
$375 = $_vptr;
$_vptr_long = $375;
$376 = $_vset_long;
$377 = $376;
$378 = HEAP32[$377>>2]|0;
$379 = (($376) + 4)|0;
$380 = $379;
$381 = HEAP32[$380>>2]|0;
$382 = $_vptr_long;
$383 = $382;
$384 = $383;
HEAP32[$384>>2] = $378;
$385 = (($383) + 4)|0;
$386 = $385;
HEAP32[$386>>2] = $381;
$387 = $_vlen;
$388 = (($387) - 8)|0;
$_vlen = $388;
$389 = $_vptr;
$390 = ((($389)) + 8|0);
$_vptr = $390;
$391 = $_vlen;
$392 = ($391>>>0)>=(8);
if (!($392)) {
break;
}
}
}
while(1) {
$393 = $_vlen;
$394 = ($393|0)!=(0);
if (!($394)) {
break;
}
$395 = $_vset;
$396 = $_vptr;
HEAP8[$396>>0] = $395;
$397 = $_vptr;
$398 = ((($397)) + 1|0);
$_vptr = $398;
$399 = $_vlen;
$400 = (($399) + -1)|0;
$_vlen = $400;
}
$0 = 0;
$401 = $0;
STACKTOP = sp;return ($401|0);
}
function _selftest() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $r = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = (_selftest_basic_128()|0);
$r = $1;
$2 = ($1|0)!=(0|0);
do {
if ($2) {
label = 4;
} else {
$3 = (_selftest_basic_192()|0);
$r = $3;
$4 = ($3|0)!=(0|0);
if ($4) {
label = 4;
} else {
$5 = (_selftest_basic_256()|0);
$r = $5;
$6 = ($5|0)!=(0|0);
if ($6) {
label = 4;
} else {
$8 = (_selftest_ctr_128()|0);
$r = $8;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $r;
$0 = $10;
break;
}
$11 = (_selftest_cbc_128()|0);
$r = $11;
$12 = ($11|0)!=(0|0);
if ($12) {
$13 = $r;
$0 = $13;
break;
} else {
$14 = (_selftest_cfb_128()|0);
$r = $14;
$15 = $r;
$0 = $15;
break;
}
}
}
}
} while(0);
if ((label|0) == 4) {
$7 = $r;
$0 = $7;
}
$16 = $0;
STACKTOP = sp;return ($16|0);
}
function _selftest_basic_128() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $ctx = 0, $scratch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp;
$scratch = sp + 512|0;
(_rijndael_setkey($ctx,38176,16)|0);
(_rijndael_encrypt($ctx,$scratch,38192)|0);
$1 = (_memcmp($scratch,38208,16)|0);
$2 = ($1|0)!=(0);
do {
if ($2) {
$0 = 38224;
} else {
(_rijndael_decrypt($ctx,$scratch,$scratch)|0);
$3 = (_memcmp($scratch,38192,16)|0);
$4 = ($3|0)!=(0);
if ($4) {
$0 = 38256;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$5 = $0;
STACKTOP = sp;return ($5|0);
}
function _rijndael_encrypt($context,$b,$a) {
$context = $context|0;
$b = $b|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $b;
$2 = $a;
$3 = $0;
$ctx = $3;
$4 = $ctx;
$5 = ((($4)) + 496|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $ctx;
$9 = ((($8)) + 496|0);
$10 = HEAP32[$9>>2]|0;
FUNCTION_TABLE_v[$10 & 127]();
}
$11 = $ctx;
$12 = ((($11)) + 488|0);
$13 = HEAP32[$12>>2]|0;
$14 = $ctx;
$15 = $1;
$16 = $2;
$17 = (FUNCTION_TABLE_iiii[$13 & 127]($14,$15,$16)|0);
STACKTOP = sp;return ($17|0);
}
function _rijndael_decrypt($context,$b,$a) {
$context = $context|0;
$b = $b|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $b;
$2 = $a;
$3 = $0;
$ctx = $3;
$4 = $ctx;
_check_decryption_preparation($4);
$5 = $ctx;
$6 = ((($5)) + 500|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $ctx;
$10 = ((($9)) + 500|0);
$11 = HEAP32[$10>>2]|0;
FUNCTION_TABLE_v[$11 & 127]();
}
$12 = $ctx;
$13 = ((($12)) + 492|0);
$14 = HEAP32[$13>>2]|0;
$15 = $ctx;
$16 = $1;
$17 = $2;
$18 = (FUNCTION_TABLE_iiii[$14 & 127]($15,$16,$17)|0);
STACKTOP = sp;return ($18|0);
}
function _check_decryption_preparation($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$2 = ((($1)) + 484|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3 & 1;
$5 = $4&255;
$6 = ($5|0)!=(0);
if ($6) {
STACKTOP = sp;return;
}
$7 = $0;
_prepare_decryption($7);
$8 = $0;
$9 = ((($8)) + 484|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10 & -2;
$12 = $11 | 1;
HEAP8[$9>>0] = $12;
STACKTOP = sp;return;
}
function _prepare_decryption($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $r = 0, $sbox = 0, $wi = 0, $wo = 0, $wt = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$sbox = (4581);
_prefetch_enc();
_prefetch_dec();
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = $0;
$4 = ((($3)) + 240|0);
HEAP32[$4>>2] = $2;
$5 = $0;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = ((($8)) + 240|0);
$10 = ((($9)) + 4|0);
HEAP32[$10>>2] = $7;
$11 = $0;
$12 = ((($11)) + 8|0);
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = ((($14)) + 240|0);
$16 = ((($15)) + 8|0);
HEAP32[$16>>2] = $13;
$17 = $0;
$18 = ((($17)) + 12|0);
$19 = HEAP32[$18>>2]|0;
$20 = $0;
$21 = ((($20)) + 240|0);
$22 = ((($21)) + 12|0);
HEAP32[$22>>2] = $19;
$r = 1;
while(1) {
$23 = $r;
$24 = $0;
$25 = ((($24)) + 480|0);
$26 = HEAP32[$25>>2]|0;
$27 = ($23|0)<($26|0);
$28 = $r;
$29 = $0;
$30 = (($29) + ($28<<4)|0);
if (!($27)) {
break;
}
$wi = $30;
$31 = $r;
$32 = $0;
$33 = ((($32)) + 240|0);
$34 = (($33) + ($31<<4)|0);
$wo = $34;
$35 = $wi;
$36 = HEAP32[$35>>2]|0;
$wt = $36;
$37 = $wt;
$38 = $37 >>> 0;
$39 = $38&255;
$40 = $39&255;
$41 = $40<<2;
$42 = $sbox;
$43 = (($42) + ($41)|0);
$44 = HEAP8[$43>>0]|0;
$45 = $44&255;
$46 = (5604 + ($45<<2)|0);
$47 = HEAP32[$46>>2]|0;
$48 = (_rol($47,0)|0);
$49 = $wt;
$50 = $49 >>> 8;
$51 = $50&255;
$52 = $51&255;
$53 = $52<<2;
$54 = $sbox;
$55 = (($54) + ($53)|0);
$56 = HEAP8[$55>>0]|0;
$57 = $56&255;
$58 = (5604 + ($57<<2)|0);
$59 = HEAP32[$58>>2]|0;
$60 = (_rol($59,8)|0);
$61 = $48 ^ $60;
$62 = $wt;
$63 = $62 >>> 16;
$64 = $63&255;
$65 = $64&255;
$66 = $65<<2;
$67 = $sbox;
$68 = (($67) + ($66)|0);
$69 = HEAP8[$68>>0]|0;
$70 = $69&255;
$71 = (5604 + ($70<<2)|0);
$72 = HEAP32[$71>>2]|0;
$73 = (_rol($72,16)|0);
$74 = $61 ^ $73;
$75 = $wt;
$76 = $75 >>> 24;
$77 = $76&255;
$78 = $77&255;
$79 = $78<<2;
$80 = $sbox;
$81 = (($80) + ($79)|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82&255;
$84 = (5604 + ($83<<2)|0);
$85 = HEAP32[$84>>2]|0;
$86 = (_rol($85,24)|0);
$87 = $74 ^ $86;
$88 = $wo;
HEAP32[$88>>2] = $87;
$89 = $wi;
$90 = ((($89)) + 4|0);
$91 = HEAP32[$90>>2]|0;
$wt = $91;
$92 = $wt;
$93 = $92 >>> 0;
$94 = $93&255;
$95 = $94&255;
$96 = $95<<2;
$97 = $sbox;
$98 = (($97) + ($96)|0);
$99 = HEAP8[$98>>0]|0;
$100 = $99&255;
$101 = (5604 + ($100<<2)|0);
$102 = HEAP32[$101>>2]|0;
$103 = (_rol($102,0)|0);
$104 = $wt;
$105 = $104 >>> 8;
$106 = $105&255;
$107 = $106&255;
$108 = $107<<2;
$109 = $sbox;
$110 = (($109) + ($108)|0);
$111 = HEAP8[$110>>0]|0;
$112 = $111&255;
$113 = (5604 + ($112<<2)|0);
$114 = HEAP32[$113>>2]|0;
$115 = (_rol($114,8)|0);
$116 = $103 ^ $115;
$117 = $wt;
$118 = $117 >>> 16;
$119 = $118&255;
$120 = $119&255;
$121 = $120<<2;
$122 = $sbox;
$123 = (($122) + ($121)|0);
$124 = HEAP8[$123>>0]|0;
$125 = $124&255;
$126 = (5604 + ($125<<2)|0);
$127 = HEAP32[$126>>2]|0;
$128 = (_rol($127,16)|0);
$129 = $116 ^ $128;
$130 = $wt;
$131 = $130 >>> 24;
$132 = $131&255;
$133 = $132&255;
$134 = $133<<2;
$135 = $sbox;
$136 = (($135) + ($134)|0);
$137 = HEAP8[$136>>0]|0;
$138 = $137&255;
$139 = (5604 + ($138<<2)|0);
$140 = HEAP32[$139>>2]|0;
$141 = (_rol($140,24)|0);
$142 = $129 ^ $141;
$143 = $wo;
$144 = ((($143)) + 4|0);
HEAP32[$144>>2] = $142;
$145 = $wi;
$146 = ((($145)) + 8|0);
$147 = HEAP32[$146>>2]|0;
$wt = $147;
$148 = $wt;
$149 = $148 >>> 0;
$150 = $149&255;
$151 = $150&255;
$152 = $151<<2;
$153 = $sbox;
$154 = (($153) + ($152)|0);
$155 = HEAP8[$154>>0]|0;
$156 = $155&255;
$157 = (5604 + ($156<<2)|0);
$158 = HEAP32[$157>>2]|0;
$159 = (_rol($158,0)|0);
$160 = $wt;
$161 = $160 >>> 8;
$162 = $161&255;
$163 = $162&255;
$164 = $163<<2;
$165 = $sbox;
$166 = (($165) + ($164)|0);
$167 = HEAP8[$166>>0]|0;
$168 = $167&255;
$169 = (5604 + ($168<<2)|0);
$170 = HEAP32[$169>>2]|0;
$171 = (_rol($170,8)|0);
$172 = $159 ^ $171;
$173 = $wt;
$174 = $173 >>> 16;
$175 = $174&255;
$176 = $175&255;
$177 = $176<<2;
$178 = $sbox;
$179 = (($178) + ($177)|0);
$180 = HEAP8[$179>>0]|0;
$181 = $180&255;
$182 = (5604 + ($181<<2)|0);
$183 = HEAP32[$182>>2]|0;
$184 = (_rol($183,16)|0);
$185 = $172 ^ $184;
$186 = $wt;
$187 = $186 >>> 24;
$188 = $187&255;
$189 = $188&255;
$190 = $189<<2;
$191 = $sbox;
$192 = (($191) + ($190)|0);
$193 = HEAP8[$192>>0]|0;
$194 = $193&255;
$195 = (5604 + ($194<<2)|0);
$196 = HEAP32[$195>>2]|0;
$197 = (_rol($196,24)|0);
$198 = $185 ^ $197;
$199 = $wo;
$200 = ((($199)) + 8|0);
HEAP32[$200>>2] = $198;
$201 = $wi;
$202 = ((($201)) + 12|0);
$203 = HEAP32[$202>>2]|0;
$wt = $203;
$204 = $wt;
$205 = $204 >>> 0;
$206 = $205&255;
$207 = $206&255;
$208 = $207<<2;
$209 = $sbox;
$210 = (($209) + ($208)|0);
$211 = HEAP8[$210>>0]|0;
$212 = $211&255;
$213 = (5604 + ($212<<2)|0);
$214 = HEAP32[$213>>2]|0;
$215 = (_rol($214,0)|0);
$216 = $wt;
$217 = $216 >>> 8;
$218 = $217&255;
$219 = $218&255;
$220 = $219<<2;
$221 = $sbox;
$222 = (($221) + ($220)|0);
$223 = HEAP8[$222>>0]|0;
$224 = $223&255;
$225 = (5604 + ($224<<2)|0);
$226 = HEAP32[$225>>2]|0;
$227 = (_rol($226,8)|0);
$228 = $215 ^ $227;
$229 = $wt;
$230 = $229 >>> 16;
$231 = $230&255;
$232 = $231&255;
$233 = $232<<2;
$234 = $sbox;
$235 = (($234) + ($233)|0);
$236 = HEAP8[$235>>0]|0;
$237 = $236&255;
$238 = (5604 + ($237<<2)|0);
$239 = HEAP32[$238>>2]|0;
$240 = (_rol($239,16)|0);
$241 = $228 ^ $240;
$242 = $wt;
$243 = $242 >>> 24;
$244 = $243&255;
$245 = $244&255;
$246 = $245<<2;
$247 = $sbox;
$248 = (($247) + ($246)|0);
$249 = HEAP8[$248>>0]|0;
$250 = $249&255;
$251 = (5604 + ($250<<2)|0);
$252 = HEAP32[$251>>2]|0;
$253 = (_rol($252,24)|0);
$254 = $241 ^ $253;
$255 = $wo;
$256 = ((($255)) + 12|0);
HEAP32[$256>>2] = $254;
$257 = $r;
$258 = (($257) + 1)|0;
$r = $258;
}
$259 = HEAP32[$30>>2]|0;
$260 = $r;
$261 = $0;
$262 = ((($261)) + 240|0);
$263 = (($262) + ($260<<4)|0);
HEAP32[$263>>2] = $259;
$264 = $r;
$265 = $0;
$266 = (($265) + ($264<<4)|0);
$267 = ((($266)) + 4|0);
$268 = HEAP32[$267>>2]|0;
$269 = $r;
$270 = $0;
$271 = ((($270)) + 240|0);
$272 = (($271) + ($269<<4)|0);
$273 = ((($272)) + 4|0);
HEAP32[$273>>2] = $268;
$274 = $r;
$275 = $0;
$276 = (($275) + ($274<<4)|0);
$277 = ((($276)) + 8|0);
$278 = HEAP32[$277>>2]|0;
$279 = $r;
$280 = $0;
$281 = ((($280)) + 240|0);
$282 = (($281) + ($279<<4)|0);
$283 = ((($282)) + 8|0);
HEAP32[$283>>2] = $278;
$284 = $r;
$285 = $0;
$286 = (($285) + ($284<<4)|0);
$287 = ((($286)) + 12|0);
$288 = HEAP32[$287>>2]|0;
$289 = $r;
$290 = $0;
$291 = ((($290)) + 240|0);
$292 = (($291) + ($289<<4)|0);
$293 = ((($292)) + 12|0);
HEAP32[$293>>2] = $288;
STACKTOP = sp;return;
}
function _prefetch_enc() {
var label = 0, sp = 0;
sp = STACKTOP;
_prefetch_table(4580,1024);
return;
}
function _prefetch_table($tab,$len) {
$tab = $tab|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $tab;
$1 = $len;
$i = 0;
while(1) {
$2 = $i;
$3 = $1;
$4 = ($2>>>0)<($3>>>0);
if (!($4)) {
break;
}
$5 = $i;
$6 = (($5) + 0)|0;
$7 = $0;
$8 = (($7) + ($6)|0);
$9 = HEAP8[$8>>0]|0;
$10 = $i;
$11 = (($10) + 32)|0;
$12 = $0;
$13 = (($12) + ($11)|0);
$14 = HEAP8[$13>>0]|0;
$15 = $i;
$16 = (($15) + 64)|0;
$17 = $0;
$18 = (($17) + ($16)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $i;
$21 = (($20) + 96)|0;
$22 = $0;
$23 = (($22) + ($21)|0);
$24 = HEAP8[$23>>0]|0;
$25 = $i;
$26 = (($25) + 128)|0;
$27 = $0;
$28 = (($27) + ($26)|0);
$29 = HEAP8[$28>>0]|0;
$30 = $i;
$31 = (($30) + 160)|0;
$32 = $0;
$33 = (($32) + ($31)|0);
$34 = HEAP8[$33>>0]|0;
$35 = $i;
$36 = (($35) + 192)|0;
$37 = $0;
$38 = (($37) + ($36)|0);
$39 = HEAP8[$38>>0]|0;
$40 = $i;
$41 = (($40) + 224)|0;
$42 = $0;
$43 = (($42) + ($41)|0);
$44 = HEAP8[$43>>0]|0;
$45 = $i;
$46 = (($45) + 256)|0;
$i = $46;
}
$47 = $1;
$48 = (($47) - 1)|0;
$49 = $0;
$50 = (($49) + ($48)|0);
$51 = HEAP8[$50>>0]|0;
STACKTOP = sp;return;
}
function _prefetch_dec() {
var label = 0, sp = 0;
sp = STACKTOP;
_prefetch_table(5604,1280);
return;
}
function _rol($x,$n) {
$x = $x|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $n;
$2 = $0;
$3 = $1;
$4 = $3 & 31;
$5 = $2 << $4;
$6 = $0;
$7 = $1;
$8 = (32 - ($7))|0;
$9 = $8 & 31;
$10 = $6 >>> $9;
$11 = $5 | $10;
STACKTOP = sp;return ($11|0);
}
function _selftest_basic_192() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $ctx = 0, $scratch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp;
$scratch = sp + 512|0;
(_rijndael_setkey($ctx,38288,24)|0);
(_rijndael_encrypt($ctx,$scratch,38312)|0);
$1 = (_memcmp($scratch,38328,16)|0);
$2 = ($1|0)!=(0);
do {
if ($2) {
$0 = 38344;
} else {
(_rijndael_decrypt($ctx,$scratch,$scratch)|0);
$3 = (_memcmp($scratch,38312,16)|0);
$4 = ($3|0)!=(0);
if ($4) {
$0 = 38376;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$5 = $0;
STACKTOP = sp;return ($5|0);
}
function _selftest_basic_256() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $ctx = 0, $scratch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp;
$scratch = sp + 512|0;
(_rijndael_setkey($ctx,38408,32)|0);
(_rijndael_encrypt($ctx,$scratch,38440)|0);
$1 = (_memcmp($scratch,38456,16)|0);
$2 = ($1|0)!=(0);
do {
if ($2) {
$0 = 38472;
} else {
(_rijndael_decrypt($ctx,$scratch,$scratch)|0);
$3 = (_memcmp($scratch,38440,16)|0);
$4 = ($3|0)!=(0);
if ($4) {
$0 = 38504;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$5 = $0;
STACKTOP = sp;return ($5|0);
}
function _selftest_ctr_128() {
var $0 = 0, $blocksize = 0, $context_size = 0, $nblocks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nblocks = 9;
$blocksize = 16;
$context_size = 504;
$0 = (__gcry_selftest_helper_ctr(38056,1,2,61,9,16,504)|0);
STACKTOP = sp;return ($0|0);
}
function __gcry_aes_ctr_enc($context,$ctr,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$ctr = $ctr|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $burn_depth = 0, $ctx = 0, $encrypt_fn = 0, $i = 0;
var $inbuf = 0, $outbuf = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp;
$_vset_long = sp + 16|0;
$0 = $context;
$1 = $ctr;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_depth = 0;
$8 = $ctx;
$9 = ((($8)) + 496|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $ctx;
$13 = ((($12)) + 496|0);
$14 = HEAP32[$13>>2]|0;
FUNCTION_TABLE_v[$14 & 127]();
}
$15 = $ctx;
$16 = ((($15)) + 488|0);
$17 = HEAP32[$16>>2]|0;
$encrypt_fn = $17;
while(1) {
$18 = $4;
$19 = ($18|0)!=(0);
if (!($19)) {
break;
}
$20 = $encrypt_fn;
$21 = $ctx;
$22 = $1;
$23 = (FUNCTION_TABLE_iiii[$20 & 127]($21,$tmp,$22)|0);
$burn_depth = $23;
$24 = $outbuf;
$25 = $inbuf;
_buf_xor($24,$tmp,$25,16);
$26 = $outbuf;
$27 = ((($26)) + 16|0);
$outbuf = $27;
$28 = $inbuf;
$29 = ((($28)) + 16|0);
$inbuf = $29;
$i = 16;
while(1) {
$30 = $i;
$31 = ($30|0)>(0);
if (!($31)) {
break;
}
$32 = $i;
$33 = (($32) - 1)|0;
$34 = $1;
$35 = (($34) + ($33)|0);
$36 = HEAP8[$35>>0]|0;
$37 = (($36) + 1)<<24>>24;
HEAP8[$35>>0] = $37;
$38 = $i;
$39 = (($38) - 1)|0;
$40 = $1;
$41 = (($40) + ($39)|0);
$42 = HEAP8[$41>>0]|0;
$43 = ($42<<24>>24)!=(0);
if ($43) {
break;
}
$44 = $i;
$45 = (($44) + -1)|0;
$i = $45;
}
$46 = $4;
$47 = (($46) + -1)|0;
$4 = $47;
}
$_vptr = $tmp;
$_vlen = 16;
$_vset = 0;
$48 = $_vset;
$49 = $48&255;
$50 = $_vset_long;
$51 = $50;
HEAP32[$51>>2] = $49;
$52 = (($50) + 4)|0;
$53 = $52;
HEAP32[$53>>2] = 0;
while(1) {
$54 = $_vptr;
$55 = $54;
$56 = $55 & 7;
$57 = ($56|0)!=(0);
$58 = $_vlen;
$59 = ($58|0)!=(0);
$60 = $57 ? $59 : 0;
if (!($60)) {
break;
}
$61 = $_vset;
$62 = $_vptr;
HEAP8[$62>>0] = $61;
$63 = $_vptr;
$64 = ((($63)) + 1|0);
$_vptr = $64;
$65 = $_vlen;
$66 = (($65) + -1)|0;
$_vlen = $66;
}
$67 = $_vlen;
$68 = ($67>>>0)<(8);
if (!($68)) {
$69 = $_vset_long;
$70 = $69;
$71 = HEAP32[$70>>2]|0;
$72 = (($69) + 4)|0;
$73 = $72;
$74 = HEAP32[$73>>2]|0;
$75 = (___muldi3(($71|0),($74|0),16843009,16843009)|0);
$76 = tempRet0;
$77 = $_vset_long;
$78 = $77;
HEAP32[$78>>2] = $75;
$79 = (($77) + 4)|0;
$80 = $79;
HEAP32[$80>>2] = $76;
while(1) {
$81 = $_vptr;
$_vptr_long = $81;
$82 = $_vset_long;
$83 = $82;
$84 = HEAP32[$83>>2]|0;
$85 = (($82) + 4)|0;
$86 = $85;
$87 = HEAP32[$86>>2]|0;
$88 = $_vptr_long;
$89 = $88;
$90 = $89;
HEAP32[$90>>2] = $84;
$91 = (($89) + 4)|0;
$92 = $91;
HEAP32[$92>>2] = $87;
$93 = $_vlen;
$94 = (($93) - 8)|0;
$_vlen = $94;
$95 = $_vptr;
$96 = ((($95)) + 8|0);
$_vptr = $96;
$97 = $_vlen;
$98 = ($97>>>0)>=(8);
if (!($98)) {
break;
}
}
}
while(1) {
$99 = $_vlen;
$100 = ($99|0)!=(0);
if (!($100)) {
break;
}
$101 = $_vset;
$102 = $_vptr;
HEAP8[$102>>0] = $101;
$103 = $_vptr;
$104 = ((($103)) + 1|0);
$_vptr = $104;
$105 = $_vlen;
$106 = (($105) + -1)|0;
$_vlen = $106;
}
$107 = $burn_depth;
$108 = ($107|0)!=(0);
if (!($108)) {
STACKTOP = sp;return;
}
$109 = $burn_depth;
$110 = (($109) + 16)|0;
___gcry_burn_stack($110);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _selftest_cbc_128() {
var $0 = 0, $blocksize = 0, $context_size = 0, $nblocks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nblocks = 10;
$blocksize = 16;
$context_size = 504;
$0 = (__gcry_selftest_helper_cbc(38056,1,2,60,10,16,504)|0);
STACKTOP = sp;return ($0|0);
}
function __gcry_aes_cbc_dec($context,$iv,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$iv = $iv|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0;
var $_vset = 0, $_vset_long = 0, $burn_depth = 0, $ctx = 0, $decrypt_fn = 0, $inbuf = 0, $outbuf = 0, $savebuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$savebuf = sp;
$_vset_long = sp + 16|0;
$0 = $context;
$1 = $iv;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_depth = 0;
$8 = $ctx;
_check_decryption_preparation($8);
$9 = $ctx;
$10 = ((($9)) + 500|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)!=(0|0);
if ($12) {
$13 = $ctx;
$14 = ((($13)) + 500|0);
$15 = HEAP32[$14>>2]|0;
FUNCTION_TABLE_v[$15 & 127]();
}
$16 = $ctx;
$17 = ((($16)) + 492|0);
$18 = HEAP32[$17>>2]|0;
$decrypt_fn = $18;
while(1) {
$19 = $4;
$20 = ($19|0)!=(0);
if (!($20)) {
break;
}
$21 = $decrypt_fn;
$22 = $ctx;
$23 = $inbuf;
$24 = (FUNCTION_TABLE_iiii[$21 & 127]($22,$savebuf,$23)|0);
$burn_depth = $24;
$25 = $outbuf;
$26 = $1;
$27 = $inbuf;
_buf_xor_n_copy_2($25,$savebuf,$26,$27,16);
$28 = $inbuf;
$29 = ((($28)) + 16|0);
$inbuf = $29;
$30 = $outbuf;
$31 = ((($30)) + 16|0);
$outbuf = $31;
$32 = $4;
$33 = (($32) + -1)|0;
$4 = $33;
}
$_vptr = $savebuf;
$_vlen = 16;
$_vset = 0;
$34 = $_vset;
$35 = $34&255;
$36 = $_vset_long;
$37 = $36;
HEAP32[$37>>2] = $35;
$38 = (($36) + 4)|0;
$39 = $38;
HEAP32[$39>>2] = 0;
while(1) {
$40 = $_vptr;
$41 = $40;
$42 = $41 & 7;
$43 = ($42|0)!=(0);
$44 = $_vlen;
$45 = ($44|0)!=(0);
$46 = $43 ? $45 : 0;
if (!($46)) {
break;
}
$47 = $_vset;
$48 = $_vptr;
HEAP8[$48>>0] = $47;
$49 = $_vptr;
$50 = ((($49)) + 1|0);
$_vptr = $50;
$51 = $_vlen;
$52 = (($51) + -1)|0;
$_vlen = $52;
}
$53 = $_vlen;
$54 = ($53>>>0)<(8);
if (!($54)) {
$55 = $_vset_long;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$58 = (($55) + 4)|0;
$59 = $58;
$60 = HEAP32[$59>>2]|0;
$61 = (___muldi3(($57|0),($60|0),16843009,16843009)|0);
$62 = tempRet0;
$63 = $_vset_long;
$64 = $63;
HEAP32[$64>>2] = $61;
$65 = (($63) + 4)|0;
$66 = $65;
HEAP32[$66>>2] = $62;
while(1) {
$67 = $_vptr;
$_vptr_long = $67;
$68 = $_vset_long;
$69 = $68;
$70 = HEAP32[$69>>2]|0;
$71 = (($68) + 4)|0;
$72 = $71;
$73 = HEAP32[$72>>2]|0;
$74 = $_vptr_long;
$75 = $74;
$76 = $75;
HEAP32[$76>>2] = $70;
$77 = (($75) + 4)|0;
$78 = $77;
HEAP32[$78>>2] = $73;
$79 = $_vlen;
$80 = (($79) - 8)|0;
$_vlen = $80;
$81 = $_vptr;
$82 = ((($81)) + 8|0);
$_vptr = $82;
$83 = $_vlen;
$84 = ($83>>>0)>=(8);
if (!($84)) {
break;
}
}
}
while(1) {
$85 = $_vlen;
$86 = ($85|0)!=(0);
if (!($86)) {
break;
}
$87 = $_vset;
$88 = $_vptr;
HEAP8[$88>>0] = $87;
$89 = $_vptr;
$90 = ((($89)) + 1|0);
$_vptr = $90;
$91 = $_vlen;
$92 = (($91) + -1)|0;
$_vlen = $92;
}
$93 = $burn_depth;
$94 = ($93|0)!=(0);
if (!($94)) {
STACKTOP = sp;return;
}
$95 = $burn_depth;
$96 = (($95) + 16)|0;
___gcry_burn_stack($96);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor_n_copy_2($_dst_xor,$_src_xor,$_srcdst_cpy,$_src_cpy,$len) {
$_dst_xor = $_dst_xor|0;
$_src_xor = $_src_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src_cpy = $_src_cpy|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $dst_xor = 0, $ldst_xor = 0, $longmask = 0, $lsrc_cpy = 0, $lsrc_xor = 0, $lsrcdst_cpy = 0, $ltemp = 0, $src_cpy = 0, $src_xor = 0, $srcdst_cpy = 0, $temp = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_src_xor;
$2 = $_srcdst_cpy;
$3 = $_src_cpy;
$4 = $len;
$5 = $0;
$dst_xor = $5;
$6 = $2;
$srcdst_cpy = $6;
$7 = $1;
$src_xor = $7;
$8 = $3;
$src_cpy = $8;
$longmask = 3;
$9 = $src_cpy;
$10 = $9;
$11 = $src_xor;
$12 = $11;
$13 = $10 | $12;
$14 = $dst_xor;
$15 = $14;
$16 = $13 | $15;
$17 = $srcdst_cpy;
$18 = $17;
$19 = $16 | $18;
$20 = $19 & 3;
$21 = ($20|0)!=(0);
if (!($21)) {
$22 = $dst_xor;
$ldst_xor = $22;
$23 = $src_xor;
$lsrc_xor = $23;
$24 = $srcdst_cpy;
$lsrcdst_cpy = $24;
$25 = $src_cpy;
$lsrc_cpy = $25;
while(1) {
$26 = $4;
$27 = ($26>>>0)>=(4);
if (!($27)) {
break;
}
$28 = $lsrc_cpy;
$29 = ((($28)) + 4|0);
$lsrc_cpy = $29;
$30 = HEAP32[$28>>2]|0;
$ltemp = $30;
$31 = $lsrcdst_cpy;
$32 = HEAP32[$31>>2]|0;
$33 = $lsrc_xor;
$34 = ((($33)) + 4|0);
$lsrc_xor = $34;
$35 = HEAP32[$33>>2]|0;
$36 = $32 ^ $35;
$37 = $ldst_xor;
$38 = ((($37)) + 4|0);
$ldst_xor = $38;
HEAP32[$37>>2] = $36;
$39 = $ltemp;
$40 = $lsrcdst_cpy;
$41 = ((($40)) + 4|0);
$lsrcdst_cpy = $41;
HEAP32[$40>>2] = $39;
$42 = $4;
$43 = (($42) - 4)|0;
$4 = $43;
}
$44 = $ldst_xor;
$dst_xor = $44;
$45 = $lsrc_xor;
$src_xor = $45;
$46 = $lsrcdst_cpy;
$srcdst_cpy = $46;
$47 = $lsrc_cpy;
$src_cpy = $47;
}
while(1) {
$48 = $4;
$49 = ($48|0)!=(0);
if (!($49)) {
break;
}
$50 = $src_cpy;
$51 = ((($50)) + 1|0);
$src_cpy = $51;
$52 = HEAP8[$50>>0]|0;
$temp = $52;
$53 = $srcdst_cpy;
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = $src_xor;
$57 = ((($56)) + 1|0);
$src_xor = $57;
$58 = HEAP8[$56>>0]|0;
$59 = $58&255;
$60 = $55 ^ $59;
$61 = $60&255;
$62 = $dst_xor;
$63 = ((($62)) + 1|0);
$dst_xor = $63;
HEAP8[$62>>0] = $61;
$64 = $temp;
$65 = $srcdst_cpy;
$66 = ((($65)) + 1|0);
$srcdst_cpy = $66;
HEAP8[$65>>0] = $64;
$67 = $4;
$68 = (($67) + -1)|0;
$4 = $68;
}
STACKTOP = sp;return;
}
function _selftest_cfb_128() {
var $0 = 0, $blocksize = 0, $context_size = 0, $nblocks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nblocks = 10;
$blocksize = 16;
$context_size = 504;
$0 = (__gcry_selftest_helper_cfb(38056,1,2,58,10,16,504)|0);
STACKTOP = sp;return ($0|0);
}
function __gcry_aes_cfb_dec($context,$iv,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$iv = $iv|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn_depth = 0, $ctx = 0;
var $encrypt_fn = 0, $inbuf = 0, $outbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $iv;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_depth = 0;
$8 = $ctx;
$9 = ((($8)) + 496|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $ctx;
$13 = ((($12)) + 496|0);
$14 = HEAP32[$13>>2]|0;
FUNCTION_TABLE_v[$14 & 127]();
}
$15 = $ctx;
$16 = ((($15)) + 488|0);
$17 = HEAP32[$16>>2]|0;
$encrypt_fn = $17;
while(1) {
$18 = $4;
$19 = ($18|0)!=(0);
if (!($19)) {
break;
}
$20 = $encrypt_fn;
$21 = $ctx;
$22 = $1;
$23 = $1;
$24 = (FUNCTION_TABLE_iiii[$20 & 127]($21,$22,$23)|0);
$burn_depth = $24;
$25 = $outbuf;
$26 = $1;
$27 = $inbuf;
_buf_xor_n_copy($25,$26,$27,16);
$28 = $outbuf;
$29 = ((($28)) + 16|0);
$outbuf = $29;
$30 = $inbuf;
$31 = ((($30)) + 16|0);
$inbuf = $31;
$32 = $4;
$33 = (($32) + -1)|0;
$4 = $33;
}
$34 = $burn_depth;
$35 = ($34|0)!=(0);
if (!($35)) {
STACKTOP = sp;return;
}
$36 = $burn_depth;
$37 = (($36) + 16)|0;
___gcry_burn_stack($37);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor_n_copy($_dst_xor,$_srcdst_cpy,$_src,$len) {
$_dst_xor = $_dst_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_srcdst_cpy;
$2 = $_src;
$3 = $len;
$4 = $0;
$5 = $2;
$6 = $1;
$7 = $2;
$8 = $3;
_buf_xor_n_copy_2($4,$5,$6,$7,$8);
STACKTOP = sp;return;
}
function _do_encrypt($ctx,$bx,$ax) {
$ctx = $ctx|0;
$bx = $bx|0;
$ax = $ax|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $bx;
$2 = $ax;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (_do_encrypt_fn($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _do_encrypt_fn($ctx,$b,$a) {
$ctx = $ctx|0;
$b = $b|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0;
var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0;
var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0;
var $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0;
var $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0;
var $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0;
var $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0;
var $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0;
var $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0;
var $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0;
var $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $r = 0, $rounds = 0;
var $sa = 0, $sb = 0, $sbox = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$sa = sp + 16|0;
$sb = sp;
$0 = $ctx;
$1 = $b;
$2 = $a;
$sbox = (4581);
$3 = $0;
$4 = ((($3)) + 480|0);
$5 = HEAP32[$4>>2]|0;
$rounds = $5;
$6 = $2;
$7 = (_buf_get_le32($6)|0);
HEAP32[$sb>>2] = $7;
$8 = $2;
$9 = ((($8)) + 4|0);
$10 = (_buf_get_le32($9)|0);
$11 = ((($sb)) + 4|0);
HEAP32[$11>>2] = $10;
$12 = $2;
$13 = ((($12)) + 8|0);
$14 = (_buf_get_le32($13)|0);
$15 = ((($sb)) + 8|0);
HEAP32[$15>>2] = $14;
$16 = $2;
$17 = ((($16)) + 12|0);
$18 = (_buf_get_le32($17)|0);
$19 = ((($sb)) + 12|0);
HEAP32[$19>>2] = $18;
$20 = HEAP32[$sb>>2]|0;
$21 = $0;
$22 = HEAP32[$21>>2]|0;
$23 = $20 ^ $22;
HEAP32[$sa>>2] = $23;
$24 = ((($sb)) + 4|0);
$25 = HEAP32[$24>>2]|0;
$26 = $0;
$27 = ((($26)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$29 = $25 ^ $28;
$30 = ((($sa)) + 4|0);
HEAP32[$30>>2] = $29;
$31 = ((($sb)) + 8|0);
$32 = HEAP32[$31>>2]|0;
$33 = $0;
$34 = ((($33)) + 8|0);
$35 = HEAP32[$34>>2]|0;
$36 = $32 ^ $35;
$37 = ((($sa)) + 8|0);
HEAP32[$37>>2] = $36;
$38 = ((($sb)) + 12|0);
$39 = HEAP32[$38>>2]|0;
$40 = $0;
$41 = ((($40)) + 12|0);
$42 = HEAP32[$41>>2]|0;
$43 = $39 ^ $42;
$44 = ((($sa)) + 12|0);
HEAP32[$44>>2] = $43;
$45 = HEAP32[$sa>>2]|0;
$46 = $45 >>> 0;
$47 = $46&255;
$48 = $47&255;
$49 = (4580 + ($48<<2)|0);
$50 = HEAP32[$49>>2]|0;
$51 = (_rol($50,0)|0);
HEAP32[$sb>>2] = $51;
$52 = HEAP32[$sa>>2]|0;
$53 = $52 >>> 8;
$54 = $53&255;
$55 = $54&255;
$56 = (4580 + ($55<<2)|0);
$57 = HEAP32[$56>>2]|0;
$58 = (_rol($57,8)|0);
$59 = ((($sb)) + 12|0);
HEAP32[$59>>2] = $58;
$60 = HEAP32[$sa>>2]|0;
$61 = $60 >>> 16;
$62 = $61&255;
$63 = $62&255;
$64 = (4580 + ($63<<2)|0);
$65 = HEAP32[$64>>2]|0;
$66 = (_rol($65,16)|0);
$67 = ((($sb)) + 8|0);
HEAP32[$67>>2] = $66;
$68 = HEAP32[$sa>>2]|0;
$69 = $68 >>> 24;
$70 = $69&255;
$71 = $70&255;
$72 = (4580 + ($71<<2)|0);
$73 = HEAP32[$72>>2]|0;
$74 = (_rol($73,24)|0);
$75 = ((($sb)) + 4|0);
HEAP32[$75>>2] = $74;
$76 = $0;
$77 = ((($76)) + 16|0);
$78 = HEAP32[$77>>2]|0;
$79 = HEAP32[$sb>>2]|0;
$80 = $78 ^ $79;
HEAP32[$sa>>2] = $80;
$81 = ((($sa)) + 4|0);
$82 = HEAP32[$81>>2]|0;
$83 = $82 >>> 0;
$84 = $83&255;
$85 = $84&255;
$86 = (4580 + ($85<<2)|0);
$87 = HEAP32[$86>>2]|0;
$88 = (_rol($87,0)|0);
$89 = ((($sb)) + 4|0);
$90 = HEAP32[$89>>2]|0;
$91 = $90 ^ $88;
HEAP32[$89>>2] = $91;
$92 = ((($sa)) + 4|0);
$93 = HEAP32[$92>>2]|0;
$94 = $93 >>> 8;
$95 = $94&255;
$96 = $95&255;
$97 = (4580 + ($96<<2)|0);
$98 = HEAP32[$97>>2]|0;
$99 = (_rol($98,8)|0);
$100 = HEAP32[$sa>>2]|0;
$101 = $100 ^ $99;
HEAP32[$sa>>2] = $101;
$102 = ((($sa)) + 4|0);
$103 = HEAP32[$102>>2]|0;
$104 = $103 >>> 16;
$105 = $104&255;
$106 = $105&255;
$107 = (4580 + ($106<<2)|0);
$108 = HEAP32[$107>>2]|0;
$109 = (_rol($108,16)|0);
$110 = ((($sb)) + 12|0);
$111 = HEAP32[$110>>2]|0;
$112 = $111 ^ $109;
HEAP32[$110>>2] = $112;
$113 = ((($sa)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = $114 >>> 24;
$116 = $115&255;
$117 = $116&255;
$118 = (4580 + ($117<<2)|0);
$119 = HEAP32[$118>>2]|0;
$120 = (_rol($119,24)|0);
$121 = ((($sb)) + 8|0);
$122 = HEAP32[$121>>2]|0;
$123 = $122 ^ $120;
HEAP32[$121>>2] = $123;
$124 = $0;
$125 = ((($124)) + 16|0);
$126 = ((($125)) + 4|0);
$127 = HEAP32[$126>>2]|0;
$128 = ((($sb)) + 4|0);
$129 = HEAP32[$128>>2]|0;
$130 = $127 ^ $129;
$131 = ((($sa)) + 4|0);
HEAP32[$131>>2] = $130;
$132 = ((($sa)) + 8|0);
$133 = HEAP32[$132>>2]|0;
$134 = $133 >>> 0;
$135 = $134&255;
$136 = $135&255;
$137 = (4580 + ($136<<2)|0);
$138 = HEAP32[$137>>2]|0;
$139 = (_rol($138,0)|0);
$140 = ((($sb)) + 8|0);
$141 = HEAP32[$140>>2]|0;
$142 = $141 ^ $139;
HEAP32[$140>>2] = $142;
$143 = ((($sa)) + 8|0);
$144 = HEAP32[$143>>2]|0;
$145 = $144 >>> 8;
$146 = $145&255;
$147 = $146&255;
$148 = (4580 + ($147<<2)|0);
$149 = HEAP32[$148>>2]|0;
$150 = (_rol($149,8)|0);
$151 = ((($sa)) + 4|0);
$152 = HEAP32[$151>>2]|0;
$153 = $152 ^ $150;
HEAP32[$151>>2] = $153;
$154 = ((($sa)) + 8|0);
$155 = HEAP32[$154>>2]|0;
$156 = $155 >>> 16;
$157 = $156&255;
$158 = $157&255;
$159 = (4580 + ($158<<2)|0);
$160 = HEAP32[$159>>2]|0;
$161 = (_rol($160,16)|0);
$162 = HEAP32[$sa>>2]|0;
$163 = $162 ^ $161;
HEAP32[$sa>>2] = $163;
$164 = ((($sa)) + 8|0);
$165 = HEAP32[$164>>2]|0;
$166 = $165 >>> 24;
$167 = $166&255;
$168 = $167&255;
$169 = (4580 + ($168<<2)|0);
$170 = HEAP32[$169>>2]|0;
$171 = (_rol($170,24)|0);
$172 = ((($sb)) + 12|0);
$173 = HEAP32[$172>>2]|0;
$174 = $173 ^ $171;
HEAP32[$172>>2] = $174;
$175 = $0;
$176 = ((($175)) + 16|0);
$177 = ((($176)) + 8|0);
$178 = HEAP32[$177>>2]|0;
$179 = ((($sb)) + 8|0);
$180 = HEAP32[$179>>2]|0;
$181 = $178 ^ $180;
$182 = ((($sa)) + 8|0);
HEAP32[$182>>2] = $181;
$183 = ((($sa)) + 12|0);
$184 = HEAP32[$183>>2]|0;
$185 = $184 >>> 0;
$186 = $185&255;
$187 = $186&255;
$188 = (4580 + ($187<<2)|0);
$189 = HEAP32[$188>>2]|0;
$190 = (_rol($189,0)|0);
$191 = ((($sb)) + 12|0);
$192 = HEAP32[$191>>2]|0;
$193 = $192 ^ $190;
HEAP32[$191>>2] = $193;
$194 = ((($sa)) + 12|0);
$195 = HEAP32[$194>>2]|0;
$196 = $195 >>> 8;
$197 = $196&255;
$198 = $197&255;
$199 = (4580 + ($198<<2)|0);
$200 = HEAP32[$199>>2]|0;
$201 = (_rol($200,8)|0);
$202 = ((($sa)) + 8|0);
$203 = HEAP32[$202>>2]|0;
$204 = $203 ^ $201;
HEAP32[$202>>2] = $204;
$205 = ((($sa)) + 12|0);
$206 = HEAP32[$205>>2]|0;
$207 = $206 >>> 16;
$208 = $207&255;
$209 = $208&255;
$210 = (4580 + ($209<<2)|0);
$211 = HEAP32[$210>>2]|0;
$212 = (_rol($211,16)|0);
$213 = ((($sa)) + 4|0);
$214 = HEAP32[$213>>2]|0;
$215 = $214 ^ $212;
HEAP32[$213>>2] = $215;
$216 = ((($sa)) + 12|0);
$217 = HEAP32[$216>>2]|0;
$218 = $217 >>> 24;
$219 = $218&255;
$220 = $219&255;
$221 = (4580 + ($220<<2)|0);
$222 = HEAP32[$221>>2]|0;
$223 = (_rol($222,24)|0);
$224 = HEAP32[$sa>>2]|0;
$225 = $224 ^ $223;
HEAP32[$sa>>2] = $225;
$226 = $0;
$227 = ((($226)) + 16|0);
$228 = ((($227)) + 12|0);
$229 = HEAP32[$228>>2]|0;
$230 = ((($sb)) + 12|0);
$231 = HEAP32[$230>>2]|0;
$232 = $229 ^ $231;
$233 = ((($sa)) + 12|0);
HEAP32[$233>>2] = $232;
$r = 2;
while(1) {
$234 = $r;
$235 = $rounds;
$236 = ($234|0)<($235|0);
$237 = HEAP32[$sa>>2]|0;
$238 = $237 >>> 0;
$239 = $238&255;
$240 = $239&255;
if (!($236)) {
break;
}
$241 = (4580 + ($240<<2)|0);
$242 = HEAP32[$241>>2]|0;
$243 = (_rol($242,0)|0);
HEAP32[$sb>>2] = $243;
$244 = HEAP32[$sa>>2]|0;
$245 = $244 >>> 8;
$246 = $245&255;
$247 = $246&255;
$248 = (4580 + ($247<<2)|0);
$249 = HEAP32[$248>>2]|0;
$250 = (_rol($249,8)|0);
$251 = ((($sb)) + 12|0);
HEAP32[$251>>2] = $250;
$252 = HEAP32[$sa>>2]|0;
$253 = $252 >>> 16;
$254 = $253&255;
$255 = $254&255;
$256 = (4580 + ($255<<2)|0);
$257 = HEAP32[$256>>2]|0;
$258 = (_rol($257,16)|0);
$259 = ((($sb)) + 8|0);
HEAP32[$259>>2] = $258;
$260 = HEAP32[$sa>>2]|0;
$261 = $260 >>> 24;
$262 = $261&255;
$263 = $262&255;
$264 = (4580 + ($263<<2)|0);
$265 = HEAP32[$264>>2]|0;
$266 = (_rol($265,24)|0);
$267 = ((($sb)) + 4|0);
HEAP32[$267>>2] = $266;
$268 = $r;
$269 = $0;
$270 = (($269) + ($268<<4)|0);
$271 = HEAP32[$270>>2]|0;
$272 = HEAP32[$sb>>2]|0;
$273 = $271 ^ $272;
HEAP32[$sa>>2] = $273;
$274 = ((($sa)) + 4|0);
$275 = HEAP32[$274>>2]|0;
$276 = $275 >>> 0;
$277 = $276&255;
$278 = $277&255;
$279 = (4580 + ($278<<2)|0);
$280 = HEAP32[$279>>2]|0;
$281 = (_rol($280,0)|0);
$282 = ((($sb)) + 4|0);
$283 = HEAP32[$282>>2]|0;
$284 = $283 ^ $281;
HEAP32[$282>>2] = $284;
$285 = ((($sa)) + 4|0);
$286 = HEAP32[$285>>2]|0;
$287 = $286 >>> 8;
$288 = $287&255;
$289 = $288&255;
$290 = (4580 + ($289<<2)|0);
$291 = HEAP32[$290>>2]|0;
$292 = (_rol($291,8)|0);
$293 = HEAP32[$sa>>2]|0;
$294 = $293 ^ $292;
HEAP32[$sa>>2] = $294;
$295 = ((($sa)) + 4|0);
$296 = HEAP32[$295>>2]|0;
$297 = $296 >>> 16;
$298 = $297&255;
$299 = $298&255;
$300 = (4580 + ($299<<2)|0);
$301 = HEAP32[$300>>2]|0;
$302 = (_rol($301,16)|0);
$303 = ((($sb)) + 12|0);
$304 = HEAP32[$303>>2]|0;
$305 = $304 ^ $302;
HEAP32[$303>>2] = $305;
$306 = ((($sa)) + 4|0);
$307 = HEAP32[$306>>2]|0;
$308 = $307 >>> 24;
$309 = $308&255;
$310 = $309&255;
$311 = (4580 + ($310<<2)|0);
$312 = HEAP32[$311>>2]|0;
$313 = (_rol($312,24)|0);
$314 = ((($sb)) + 8|0);
$315 = HEAP32[$314>>2]|0;
$316 = $315 ^ $313;
HEAP32[$314>>2] = $316;
$317 = $r;
$318 = $0;
$319 = (($318) + ($317<<4)|0);
$320 = ((($319)) + 4|0);
$321 = HEAP32[$320>>2]|0;
$322 = ((($sb)) + 4|0);
$323 = HEAP32[$322>>2]|0;
$324 = $321 ^ $323;
$325 = ((($sa)) + 4|0);
HEAP32[$325>>2] = $324;
$326 = ((($sa)) + 8|0);
$327 = HEAP32[$326>>2]|0;
$328 = $327 >>> 0;
$329 = $328&255;
$330 = $329&255;
$331 = (4580 + ($330<<2)|0);
$332 = HEAP32[$331>>2]|0;
$333 = (_rol($332,0)|0);
$334 = ((($sb)) + 8|0);
$335 = HEAP32[$334>>2]|0;
$336 = $335 ^ $333;
HEAP32[$334>>2] = $336;
$337 = ((($sa)) + 8|0);
$338 = HEAP32[$337>>2]|0;
$339 = $338 >>> 8;
$340 = $339&255;
$341 = $340&255;
$342 = (4580 + ($341<<2)|0);
$343 = HEAP32[$342>>2]|0;
$344 = (_rol($343,8)|0);
$345 = ((($sa)) + 4|0);
$346 = HEAP32[$345>>2]|0;
$347 = $346 ^ $344;
HEAP32[$345>>2] = $347;
$348 = ((($sa)) + 8|0);
$349 = HEAP32[$348>>2]|0;
$350 = $349 >>> 16;
$351 = $350&255;
$352 = $351&255;
$353 = (4580 + ($352<<2)|0);
$354 = HEAP32[$353>>2]|0;
$355 = (_rol($354,16)|0);
$356 = HEAP32[$sa>>2]|0;
$357 = $356 ^ $355;
HEAP32[$sa>>2] = $357;
$358 = ((($sa)) + 8|0);
$359 = HEAP32[$358>>2]|0;
$360 = $359 >>> 24;
$361 = $360&255;
$362 = $361&255;
$363 = (4580 + ($362<<2)|0);
$364 = HEAP32[$363>>2]|0;
$365 = (_rol($364,24)|0);
$366 = ((($sb)) + 12|0);
$367 = HEAP32[$366>>2]|0;
$368 = $367 ^ $365;
HEAP32[$366>>2] = $368;
$369 = $r;
$370 = $0;
$371 = (($370) + ($369<<4)|0);
$372 = ((($371)) + 8|0);
$373 = HEAP32[$372>>2]|0;
$374 = ((($sb)) + 8|0);
$375 = HEAP32[$374>>2]|0;
$376 = $373 ^ $375;
$377 = ((($sa)) + 8|0);
HEAP32[$377>>2] = $376;
$378 = ((($sa)) + 12|0);
$379 = HEAP32[$378>>2]|0;
$380 = $379 >>> 0;
$381 = $380&255;
$382 = $381&255;
$383 = (4580 + ($382<<2)|0);
$384 = HEAP32[$383>>2]|0;
$385 = (_rol($384,0)|0);
$386 = ((($sb)) + 12|0);
$387 = HEAP32[$386>>2]|0;
$388 = $387 ^ $385;
HEAP32[$386>>2] = $388;
$389 = ((($sa)) + 12|0);
$390 = HEAP32[$389>>2]|0;
$391 = $390 >>> 8;
$392 = $391&255;
$393 = $392&255;
$394 = (4580 + ($393<<2)|0);
$395 = HEAP32[$394>>2]|0;
$396 = (_rol($395,8)|0);
$397 = ((($sa)) + 8|0);
$398 = HEAP32[$397>>2]|0;
$399 = $398 ^ $396;
HEAP32[$397>>2] = $399;
$400 = ((($sa)) + 12|0);
$401 = HEAP32[$400>>2]|0;
$402 = $401 >>> 16;
$403 = $402&255;
$404 = $403&255;
$405 = (4580 + ($404<<2)|0);
$406 = HEAP32[$405>>2]|0;
$407 = (_rol($406,16)|0);
$408 = ((($sa)) + 4|0);
$409 = HEAP32[$408>>2]|0;
$410 = $409 ^ $407;
HEAP32[$408>>2] = $410;
$411 = ((($sa)) + 12|0);
$412 = HEAP32[$411>>2]|0;
$413 = $412 >>> 24;
$414 = $413&255;
$415 = $414&255;
$416 = (4580 + ($415<<2)|0);
$417 = HEAP32[$416>>2]|0;
$418 = (_rol($417,24)|0);
$419 = HEAP32[$sa>>2]|0;
$420 = $419 ^ $418;
HEAP32[$sa>>2] = $420;
$421 = $r;
$422 = $0;
$423 = (($422) + ($421<<4)|0);
$424 = ((($423)) + 12|0);
$425 = HEAP32[$424>>2]|0;
$426 = ((($sb)) + 12|0);
$427 = HEAP32[$426>>2]|0;
$428 = $425 ^ $427;
$429 = ((($sa)) + 12|0);
HEAP32[$429>>2] = $428;
$430 = $r;
$431 = (($430) + 1)|0;
$r = $431;
$432 = HEAP32[$sa>>2]|0;
$433 = $432 >>> 0;
$434 = $433&255;
$435 = $434&255;
$436 = (4580 + ($435<<2)|0);
$437 = HEAP32[$436>>2]|0;
$438 = (_rol($437,0)|0);
HEAP32[$sb>>2] = $438;
$439 = HEAP32[$sa>>2]|0;
$440 = $439 >>> 8;
$441 = $440&255;
$442 = $441&255;
$443 = (4580 + ($442<<2)|0);
$444 = HEAP32[$443>>2]|0;
$445 = (_rol($444,8)|0);
$446 = ((($sb)) + 12|0);
HEAP32[$446>>2] = $445;
$447 = HEAP32[$sa>>2]|0;
$448 = $447 >>> 16;
$449 = $448&255;
$450 = $449&255;
$451 = (4580 + ($450<<2)|0);
$452 = HEAP32[$451>>2]|0;
$453 = (_rol($452,16)|0);
$454 = ((($sb)) + 8|0);
HEAP32[$454>>2] = $453;
$455 = HEAP32[$sa>>2]|0;
$456 = $455 >>> 24;
$457 = $456&255;
$458 = $457&255;
$459 = (4580 + ($458<<2)|0);
$460 = HEAP32[$459>>2]|0;
$461 = (_rol($460,24)|0);
$462 = ((($sb)) + 4|0);
HEAP32[$462>>2] = $461;
$463 = $r;
$464 = $0;
$465 = (($464) + ($463<<4)|0);
$466 = HEAP32[$465>>2]|0;
$467 = HEAP32[$sb>>2]|0;
$468 = $466 ^ $467;
HEAP32[$sa>>2] = $468;
$469 = ((($sa)) + 4|0);
$470 = HEAP32[$469>>2]|0;
$471 = $470 >>> 0;
$472 = $471&255;
$473 = $472&255;
$474 = (4580 + ($473<<2)|0);
$475 = HEAP32[$474>>2]|0;
$476 = (_rol($475,0)|0);
$477 = ((($sb)) + 4|0);
$478 = HEAP32[$477>>2]|0;
$479 = $478 ^ $476;
HEAP32[$477>>2] = $479;
$480 = ((($sa)) + 4|0);
$481 = HEAP32[$480>>2]|0;
$482 = $481 >>> 8;
$483 = $482&255;
$484 = $483&255;
$485 = (4580 + ($484<<2)|0);
$486 = HEAP32[$485>>2]|0;
$487 = (_rol($486,8)|0);
$488 = HEAP32[$sa>>2]|0;
$489 = $488 ^ $487;
HEAP32[$sa>>2] = $489;
$490 = ((($sa)) + 4|0);
$491 = HEAP32[$490>>2]|0;
$492 = $491 >>> 16;
$493 = $492&255;
$494 = $493&255;
$495 = (4580 + ($494<<2)|0);
$496 = HEAP32[$495>>2]|0;
$497 = (_rol($496,16)|0);
$498 = ((($sb)) + 12|0);
$499 = HEAP32[$498>>2]|0;
$500 = $499 ^ $497;
HEAP32[$498>>2] = $500;
$501 = ((($sa)) + 4|0);
$502 = HEAP32[$501>>2]|0;
$503 = $502 >>> 24;
$504 = $503&255;
$505 = $504&255;
$506 = (4580 + ($505<<2)|0);
$507 = HEAP32[$506>>2]|0;
$508 = (_rol($507,24)|0);
$509 = ((($sb)) + 8|0);
$510 = HEAP32[$509>>2]|0;
$511 = $510 ^ $508;
HEAP32[$509>>2] = $511;
$512 = $r;
$513 = $0;
$514 = (($513) + ($512<<4)|0);
$515 = ((($514)) + 4|0);
$516 = HEAP32[$515>>2]|0;
$517 = ((($sb)) + 4|0);
$518 = HEAP32[$517>>2]|0;
$519 = $516 ^ $518;
$520 = ((($sa)) + 4|0);
HEAP32[$520>>2] = $519;
$521 = ((($sa)) + 8|0);
$522 = HEAP32[$521>>2]|0;
$523 = $522 >>> 0;
$524 = $523&255;
$525 = $524&255;
$526 = (4580 + ($525<<2)|0);
$527 = HEAP32[$526>>2]|0;
$528 = (_rol($527,0)|0);
$529 = ((($sb)) + 8|0);
$530 = HEAP32[$529>>2]|0;
$531 = $530 ^ $528;
HEAP32[$529>>2] = $531;
$532 = ((($sa)) + 8|0);
$533 = HEAP32[$532>>2]|0;
$534 = $533 >>> 8;
$535 = $534&255;
$536 = $535&255;
$537 = (4580 + ($536<<2)|0);
$538 = HEAP32[$537>>2]|0;
$539 = (_rol($538,8)|0);
$540 = ((($sa)) + 4|0);
$541 = HEAP32[$540>>2]|0;
$542 = $541 ^ $539;
HEAP32[$540>>2] = $542;
$543 = ((($sa)) + 8|0);
$544 = HEAP32[$543>>2]|0;
$545 = $544 >>> 16;
$546 = $545&255;
$547 = $546&255;
$548 = (4580 + ($547<<2)|0);
$549 = HEAP32[$548>>2]|0;
$550 = (_rol($549,16)|0);
$551 = HEAP32[$sa>>2]|0;
$552 = $551 ^ $550;
HEAP32[$sa>>2] = $552;
$553 = ((($sa)) + 8|0);
$554 = HEAP32[$553>>2]|0;
$555 = $554 >>> 24;
$556 = $555&255;
$557 = $556&255;
$558 = (4580 + ($557<<2)|0);
$559 = HEAP32[$558>>2]|0;
$560 = (_rol($559,24)|0);
$561 = ((($sb)) + 12|0);
$562 = HEAP32[$561>>2]|0;
$563 = $562 ^ $560;
HEAP32[$561>>2] = $563;
$564 = $r;
$565 = $0;
$566 = (($565) + ($564<<4)|0);
$567 = ((($566)) + 8|0);
$568 = HEAP32[$567>>2]|0;
$569 = ((($sb)) + 8|0);
$570 = HEAP32[$569>>2]|0;
$571 = $568 ^ $570;
$572 = ((($sa)) + 8|0);
HEAP32[$572>>2] = $571;
$573 = ((($sa)) + 12|0);
$574 = HEAP32[$573>>2]|0;
$575 = $574 >>> 0;
$576 = $575&255;
$577 = $576&255;
$578 = (4580 + ($577<<2)|0);
$579 = HEAP32[$578>>2]|0;
$580 = (_rol($579,0)|0);
$581 = ((($sb)) + 12|0);
$582 = HEAP32[$581>>2]|0;
$583 = $582 ^ $580;
HEAP32[$581>>2] = $583;
$584 = ((($sa)) + 12|0);
$585 = HEAP32[$584>>2]|0;
$586 = $585 >>> 8;
$587 = $586&255;
$588 = $587&255;
$589 = (4580 + ($588<<2)|0);
$590 = HEAP32[$589>>2]|0;
$591 = (_rol($590,8)|0);
$592 = ((($sa)) + 8|0);
$593 = HEAP32[$592>>2]|0;
$594 = $593 ^ $591;
HEAP32[$592>>2] = $594;
$595 = ((($sa)) + 12|0);
$596 = HEAP32[$595>>2]|0;
$597 = $596 >>> 16;
$598 = $597&255;
$599 = $598&255;
$600 = (4580 + ($599<<2)|0);
$601 = HEAP32[$600>>2]|0;
$602 = (_rol($601,16)|0);
$603 = ((($sa)) + 4|0);
$604 = HEAP32[$603>>2]|0;
$605 = $604 ^ $602;
HEAP32[$603>>2] = $605;
$606 = ((($sa)) + 12|0);
$607 = HEAP32[$606>>2]|0;
$608 = $607 >>> 24;
$609 = $608&255;
$610 = $609&255;
$611 = (4580 + ($610<<2)|0);
$612 = HEAP32[$611>>2]|0;
$613 = (_rol($612,24)|0);
$614 = HEAP32[$sa>>2]|0;
$615 = $614 ^ $613;
HEAP32[$sa>>2] = $615;
$616 = $r;
$617 = $0;
$618 = (($617) + ($616<<4)|0);
$619 = ((($618)) + 12|0);
$620 = HEAP32[$619>>2]|0;
$621 = ((($sb)) + 12|0);
$622 = HEAP32[$621>>2]|0;
$623 = $620 ^ $622;
$624 = ((($sa)) + 12|0);
HEAP32[$624>>2] = $623;
$625 = $r;
$626 = (($625) + 1)|0;
$r = $626;
}
$627 = $240<<2;
$628 = $sbox;
$629 = (($628) + ($627)|0);
$630 = HEAP8[$629>>0]|0;
$631 = $630&255;
$632 = $631 << 0;
HEAP32[$sb>>2] = $632;
$633 = HEAP32[$sa>>2]|0;
$634 = $633 >>> 8;
$635 = $634&255;
$636 = $635&255;
$637 = $636<<2;
$638 = $sbox;
$639 = (($638) + ($637)|0);
$640 = HEAP8[$639>>0]|0;
$641 = $640&255;
$642 = $641 << 8;
$643 = ((($sb)) + 12|0);
HEAP32[$643>>2] = $642;
$644 = HEAP32[$sa>>2]|0;
$645 = $644 >>> 16;
$646 = $645&255;
$647 = $646&255;
$648 = $647<<2;
$649 = $sbox;
$650 = (($649) + ($648)|0);
$651 = HEAP8[$650>>0]|0;
$652 = $651&255;
$653 = $652 << 16;
$654 = ((($sb)) + 8|0);
HEAP32[$654>>2] = $653;
$655 = HEAP32[$sa>>2]|0;
$656 = $655 >>> 24;
$657 = $656&255;
$658 = $657&255;
$659 = $658<<2;
$660 = $sbox;
$661 = (($660) + ($659)|0);
$662 = HEAP8[$661>>0]|0;
$663 = $662&255;
$664 = $663 << 24;
$665 = ((($sb)) + 4|0);
HEAP32[$665>>2] = $664;
$666 = $r;
$667 = $0;
$668 = (($667) + ($666<<4)|0);
$669 = HEAP32[$668>>2]|0;
$670 = HEAP32[$sb>>2]|0;
$671 = $669 ^ $670;
HEAP32[$sa>>2] = $671;
$672 = ((($sa)) + 4|0);
$673 = HEAP32[$672>>2]|0;
$674 = $673 >>> 0;
$675 = $674&255;
$676 = $675&255;
$677 = $676<<2;
$678 = $sbox;
$679 = (($678) + ($677)|0);
$680 = HEAP8[$679>>0]|0;
$681 = $680&255;
$682 = $681 << 0;
$683 = ((($sb)) + 4|0);
$684 = HEAP32[$683>>2]|0;
$685 = $684 ^ $682;
HEAP32[$683>>2] = $685;
$686 = ((($sa)) + 4|0);
$687 = HEAP32[$686>>2]|0;
$688 = $687 >>> 8;
$689 = $688&255;
$690 = $689&255;
$691 = $690<<2;
$692 = $sbox;
$693 = (($692) + ($691)|0);
$694 = HEAP8[$693>>0]|0;
$695 = $694&255;
$696 = $695 << 8;
$697 = HEAP32[$sa>>2]|0;
$698 = $697 ^ $696;
HEAP32[$sa>>2] = $698;
$699 = ((($sa)) + 4|0);
$700 = HEAP32[$699>>2]|0;
$701 = $700 >>> 16;
$702 = $701&255;
$703 = $702&255;
$704 = $703<<2;
$705 = $sbox;
$706 = (($705) + ($704)|0);
$707 = HEAP8[$706>>0]|0;
$708 = $707&255;
$709 = $708 << 16;
$710 = ((($sb)) + 12|0);
$711 = HEAP32[$710>>2]|0;
$712 = $711 ^ $709;
HEAP32[$710>>2] = $712;
$713 = ((($sa)) + 4|0);
$714 = HEAP32[$713>>2]|0;
$715 = $714 >>> 24;
$716 = $715&255;
$717 = $716&255;
$718 = $717<<2;
$719 = $sbox;
$720 = (($719) + ($718)|0);
$721 = HEAP8[$720>>0]|0;
$722 = $721&255;
$723 = $722 << 24;
$724 = ((($sb)) + 8|0);
$725 = HEAP32[$724>>2]|0;
$726 = $725 ^ $723;
HEAP32[$724>>2] = $726;
$727 = $r;
$728 = $0;
$729 = (($728) + ($727<<4)|0);
$730 = ((($729)) + 4|0);
$731 = HEAP32[$730>>2]|0;
$732 = ((($sb)) + 4|0);
$733 = HEAP32[$732>>2]|0;
$734 = $731 ^ $733;
$735 = ((($sa)) + 4|0);
HEAP32[$735>>2] = $734;
$736 = ((($sa)) + 8|0);
$737 = HEAP32[$736>>2]|0;
$738 = $737 >>> 0;
$739 = $738&255;
$740 = $739&255;
$741 = $740<<2;
$742 = $sbox;
$743 = (($742) + ($741)|0);
$744 = HEAP8[$743>>0]|0;
$745 = $744&255;
$746 = $745 << 0;
$747 = ((($sb)) + 8|0);
$748 = HEAP32[$747>>2]|0;
$749 = $748 ^ $746;
HEAP32[$747>>2] = $749;
$750 = ((($sa)) + 8|0);
$751 = HEAP32[$750>>2]|0;
$752 = $751 >>> 8;
$753 = $752&255;
$754 = $753&255;
$755 = $754<<2;
$756 = $sbox;
$757 = (($756) + ($755)|0);
$758 = HEAP8[$757>>0]|0;
$759 = $758&255;
$760 = $759 << 8;
$761 = ((($sa)) + 4|0);
$762 = HEAP32[$761>>2]|0;
$763 = $762 ^ $760;
HEAP32[$761>>2] = $763;
$764 = ((($sa)) + 8|0);
$765 = HEAP32[$764>>2]|0;
$766 = $765 >>> 16;
$767 = $766&255;
$768 = $767&255;
$769 = $768<<2;
$770 = $sbox;
$771 = (($770) + ($769)|0);
$772 = HEAP8[$771>>0]|0;
$773 = $772&255;
$774 = $773 << 16;
$775 = HEAP32[$sa>>2]|0;
$776 = $775 ^ $774;
HEAP32[$sa>>2] = $776;
$777 = ((($sa)) + 8|0);
$778 = HEAP32[$777>>2]|0;
$779 = $778 >>> 24;
$780 = $779&255;
$781 = $780&255;
$782 = $781<<2;
$783 = $sbox;
$784 = (($783) + ($782)|0);
$785 = HEAP8[$784>>0]|0;
$786 = $785&255;
$787 = $786 << 24;
$788 = ((($sb)) + 12|0);
$789 = HEAP32[$788>>2]|0;
$790 = $789 ^ $787;
HEAP32[$788>>2] = $790;
$791 = $r;
$792 = $0;
$793 = (($792) + ($791<<4)|0);
$794 = ((($793)) + 8|0);
$795 = HEAP32[$794>>2]|0;
$796 = ((($sb)) + 8|0);
$797 = HEAP32[$796>>2]|0;
$798 = $795 ^ $797;
$799 = ((($sa)) + 8|0);
HEAP32[$799>>2] = $798;
$800 = ((($sa)) + 12|0);
$801 = HEAP32[$800>>2]|0;
$802 = $801 >>> 0;
$803 = $802&255;
$804 = $803&255;
$805 = $804<<2;
$806 = $sbox;
$807 = (($806) + ($805)|0);
$808 = HEAP8[$807>>0]|0;
$809 = $808&255;
$810 = $809 << 0;
$811 = ((($sb)) + 12|0);
$812 = HEAP32[$811>>2]|0;
$813 = $812 ^ $810;
HEAP32[$811>>2] = $813;
$814 = ((($sa)) + 12|0);
$815 = HEAP32[$814>>2]|0;
$816 = $815 >>> 8;
$817 = $816&255;
$818 = $817&255;
$819 = $818<<2;
$820 = $sbox;
$821 = (($820) + ($819)|0);
$822 = HEAP8[$821>>0]|0;
$823 = $822&255;
$824 = $823 << 8;
$825 = ((($sa)) + 8|0);
$826 = HEAP32[$825>>2]|0;
$827 = $826 ^ $824;
HEAP32[$825>>2] = $827;
$828 = ((($sa)) + 12|0);
$829 = HEAP32[$828>>2]|0;
$830 = $829 >>> 16;
$831 = $830&255;
$832 = $831&255;
$833 = $832<<2;
$834 = $sbox;
$835 = (($834) + ($833)|0);
$836 = HEAP8[$835>>0]|0;
$837 = $836&255;
$838 = $837 << 16;
$839 = ((($sa)) + 4|0);
$840 = HEAP32[$839>>2]|0;
$841 = $840 ^ $838;
HEAP32[$839>>2] = $841;
$842 = ((($sa)) + 12|0);
$843 = HEAP32[$842>>2]|0;
$844 = $843 >>> 24;
$845 = $844&255;
$846 = $845&255;
$847 = $846<<2;
$848 = $sbox;
$849 = (($848) + ($847)|0);
$850 = HEAP8[$849>>0]|0;
$851 = $850&255;
$852 = $851 << 24;
$853 = HEAP32[$sa>>2]|0;
$854 = $853 ^ $852;
HEAP32[$sa>>2] = $854;
$855 = $r;
$856 = $0;
$857 = (($856) + ($855<<4)|0);
$858 = ((($857)) + 12|0);
$859 = HEAP32[$858>>2]|0;
$860 = ((($sb)) + 12|0);
$861 = HEAP32[$860>>2]|0;
$862 = $859 ^ $861;
$863 = ((($sa)) + 12|0);
HEAP32[$863>>2] = $862;
$864 = $1;
$865 = HEAP32[$sa>>2]|0;
_buf_put_le32($864,$865);
$866 = $1;
$867 = ((($866)) + 4|0);
$868 = ((($sa)) + 4|0);
$869 = HEAP32[$868>>2]|0;
_buf_put_le32($867,$869);
$870 = $1;
$871 = ((($870)) + 8|0);
$872 = ((($sa)) + 8|0);
$873 = HEAP32[$872>>2]|0;
_buf_put_le32($871,$873);
$874 = $1;
$875 = ((($874)) + 12|0);
$876 = ((($sa)) + 12|0);
$877 = HEAP32[$876>>2]|0;
_buf_put_le32($875,$877);
STACKTOP = sp;return 64;
}
function _buf_get_le32($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = ((($2)) + 3|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = $5 << 24;
$7 = $in;
$8 = ((($7)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 << 16;
$12 = $6 | $11;
$13 = $in;
$14 = ((($13)) + 1|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $12 | $17;
$19 = $in;
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $18 | $21;
STACKTOP = sp;return ($22|0);
}
function _buf_put_le32($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
$7 = ((($6)) + 3|0);
HEAP8[$7>>0] = $5;
$8 = $1;
$9 = $8 >>> 16;
$10 = $9&255;
$11 = $out;
$12 = ((($11)) + 2|0);
HEAP8[$12>>0] = $10;
$13 = $1;
$14 = $13 >>> 8;
$15 = $14&255;
$16 = $out;
$17 = ((($16)) + 1|0);
HEAP8[$17>>0] = $15;
$18 = $1;
$19 = $18&255;
$20 = $out;
HEAP8[$20>>0] = $19;
STACKTOP = sp;return;
}
function _do_decrypt($ctx,$bx,$ax) {
$ctx = $ctx|0;
$bx = $bx|0;
$ax = $ax|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $bx;
$2 = $ax;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = (_do_decrypt_fn($3,$4,$5)|0);
STACKTOP = sp;return ($6|0);
}
function _do_decrypt_fn($ctx,$b,$a) {
$ctx = $ctx|0;
$b = $b|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0;
var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0;
var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0;
var $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0;
var $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0;
var $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0;
var $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0;
var $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0;
var $837 = 0, $838 = 0, $839 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $r = 0, $rounds = 0, $sa = 0, $sb = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$sa = sp + 16|0;
$sb = sp;
$0 = $ctx;
$1 = $b;
$2 = $a;
$3 = $0;
$4 = ((($3)) + 480|0);
$5 = HEAP32[$4>>2]|0;
$rounds = $5;
$6 = $2;
$7 = (_buf_get_le32($6)|0);
HEAP32[$sb>>2] = $7;
$8 = $2;
$9 = ((($8)) + 4|0);
$10 = (_buf_get_le32($9)|0);
$11 = ((($sb)) + 4|0);
HEAP32[$11>>2] = $10;
$12 = $2;
$13 = ((($12)) + 8|0);
$14 = (_buf_get_le32($13)|0);
$15 = ((($sb)) + 8|0);
HEAP32[$15>>2] = $14;
$16 = $2;
$17 = ((($16)) + 12|0);
$18 = (_buf_get_le32($17)|0);
$19 = ((($sb)) + 12|0);
HEAP32[$19>>2] = $18;
$20 = HEAP32[$sb>>2]|0;
$21 = $rounds;
$22 = $0;
$23 = ((($22)) + 240|0);
$24 = (($23) + ($21<<4)|0);
$25 = HEAP32[$24>>2]|0;
$26 = $20 ^ $25;
HEAP32[$sa>>2] = $26;
$27 = ((($sb)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$29 = $rounds;
$30 = $0;
$31 = ((($30)) + 240|0);
$32 = (($31) + ($29<<4)|0);
$33 = ((($32)) + 4|0);
$34 = HEAP32[$33>>2]|0;
$35 = $28 ^ $34;
$36 = ((($sa)) + 4|0);
HEAP32[$36>>2] = $35;
$37 = ((($sb)) + 8|0);
$38 = HEAP32[$37>>2]|0;
$39 = $rounds;
$40 = $0;
$41 = ((($40)) + 240|0);
$42 = (($41) + ($39<<4)|0);
$43 = ((($42)) + 8|0);
$44 = HEAP32[$43>>2]|0;
$45 = $38 ^ $44;
$46 = ((($sa)) + 8|0);
HEAP32[$46>>2] = $45;
$47 = ((($sb)) + 12|0);
$48 = HEAP32[$47>>2]|0;
$49 = $rounds;
$50 = $0;
$51 = ((($50)) + 240|0);
$52 = (($51) + ($49<<4)|0);
$53 = ((($52)) + 12|0);
$54 = HEAP32[$53>>2]|0;
$55 = $48 ^ $54;
$56 = ((($sa)) + 12|0);
HEAP32[$56>>2] = $55;
$57 = $rounds;
$58 = (($57) - 1)|0;
$r = $58;
while(1) {
$59 = $r;
$60 = ($59|0)>(1);
$61 = HEAP32[$sa>>2]|0;
$62 = $61 >>> 0;
$63 = $62&255;
$64 = $63&255;
$65 = (5604 + ($64<<2)|0);
$66 = HEAP32[$65>>2]|0;
$67 = (_rol($66,0)|0);
HEAP32[$sb>>2] = $67;
$68 = HEAP32[$sa>>2]|0;
$69 = $68 >>> 8;
$70 = $69&255;
$71 = $70&255;
$72 = (5604 + ($71<<2)|0);
$73 = HEAP32[$72>>2]|0;
$74 = (_rol($73,8)|0);
$75 = ((($sb)) + 4|0);
HEAP32[$75>>2] = $74;
$76 = HEAP32[$sa>>2]|0;
$77 = $76 >>> 16;
$78 = $77&255;
$79 = $78&255;
$80 = (5604 + ($79<<2)|0);
$81 = HEAP32[$80>>2]|0;
$82 = (_rol($81,16)|0);
$83 = ((($sb)) + 8|0);
HEAP32[$83>>2] = $82;
$84 = HEAP32[$sa>>2]|0;
$85 = $84 >>> 24;
$86 = $85&255;
$87 = $86&255;
$88 = (5604 + ($87<<2)|0);
$89 = HEAP32[$88>>2]|0;
$90 = (_rol($89,24)|0);
$91 = ((($sb)) + 12|0);
HEAP32[$91>>2] = $90;
if (!($60)) {
break;
}
$92 = $r;
$93 = $0;
$94 = ((($93)) + 240|0);
$95 = (($94) + ($92<<4)|0);
$96 = HEAP32[$95>>2]|0;
$97 = HEAP32[$sb>>2]|0;
$98 = $96 ^ $97;
HEAP32[$sa>>2] = $98;
$99 = ((($sa)) + 4|0);
$100 = HEAP32[$99>>2]|0;
$101 = $100 >>> 0;
$102 = $101&255;
$103 = $102&255;
$104 = (5604 + ($103<<2)|0);
$105 = HEAP32[$104>>2]|0;
$106 = (_rol($105,0)|0);
$107 = ((($sb)) + 4|0);
$108 = HEAP32[$107>>2]|0;
$109 = $108 ^ $106;
HEAP32[$107>>2] = $109;
$110 = ((($sa)) + 4|0);
$111 = HEAP32[$110>>2]|0;
$112 = $111 >>> 8;
$113 = $112&255;
$114 = $113&255;
$115 = (5604 + ($114<<2)|0);
$116 = HEAP32[$115>>2]|0;
$117 = (_rol($116,8)|0);
$118 = ((($sb)) + 8|0);
$119 = HEAP32[$118>>2]|0;
$120 = $119 ^ $117;
HEAP32[$118>>2] = $120;
$121 = ((($sa)) + 4|0);
$122 = HEAP32[$121>>2]|0;
$123 = $122 >>> 16;
$124 = $123&255;
$125 = $124&255;
$126 = (5604 + ($125<<2)|0);
$127 = HEAP32[$126>>2]|0;
$128 = (_rol($127,16)|0);
$129 = ((($sb)) + 12|0);
$130 = HEAP32[$129>>2]|0;
$131 = $130 ^ $128;
HEAP32[$129>>2] = $131;
$132 = ((($sa)) + 4|0);
$133 = HEAP32[$132>>2]|0;
$134 = $133 >>> 24;
$135 = $134&255;
$136 = $135&255;
$137 = (5604 + ($136<<2)|0);
$138 = HEAP32[$137>>2]|0;
$139 = (_rol($138,24)|0);
$140 = HEAP32[$sa>>2]|0;
$141 = $140 ^ $139;
HEAP32[$sa>>2] = $141;
$142 = $r;
$143 = $0;
$144 = ((($143)) + 240|0);
$145 = (($144) + ($142<<4)|0);
$146 = ((($145)) + 4|0);
$147 = HEAP32[$146>>2]|0;
$148 = ((($sb)) + 4|0);
$149 = HEAP32[$148>>2]|0;
$150 = $147 ^ $149;
$151 = ((($sa)) + 4|0);
HEAP32[$151>>2] = $150;
$152 = ((($sa)) + 8|0);
$153 = HEAP32[$152>>2]|0;
$154 = $153 >>> 0;
$155 = $154&255;
$156 = $155&255;
$157 = (5604 + ($156<<2)|0);
$158 = HEAP32[$157>>2]|0;
$159 = (_rol($158,0)|0);
$160 = ((($sb)) + 8|0);
$161 = HEAP32[$160>>2]|0;
$162 = $161 ^ $159;
HEAP32[$160>>2] = $162;
$163 = ((($sa)) + 8|0);
$164 = HEAP32[$163>>2]|0;
$165 = $164 >>> 8;
$166 = $165&255;
$167 = $166&255;
$168 = (5604 + ($167<<2)|0);
$169 = HEAP32[$168>>2]|0;
$170 = (_rol($169,8)|0);
$171 = ((($sb)) + 12|0);
$172 = HEAP32[$171>>2]|0;
$173 = $172 ^ $170;
HEAP32[$171>>2] = $173;
$174 = ((($sa)) + 8|0);
$175 = HEAP32[$174>>2]|0;
$176 = $175 >>> 16;
$177 = $176&255;
$178 = $177&255;
$179 = (5604 + ($178<<2)|0);
$180 = HEAP32[$179>>2]|0;
$181 = (_rol($180,16)|0);
$182 = HEAP32[$sa>>2]|0;
$183 = $182 ^ $181;
HEAP32[$sa>>2] = $183;
$184 = ((($sa)) + 8|0);
$185 = HEAP32[$184>>2]|0;
$186 = $185 >>> 24;
$187 = $186&255;
$188 = $187&255;
$189 = (5604 + ($188<<2)|0);
$190 = HEAP32[$189>>2]|0;
$191 = (_rol($190,24)|0);
$192 = ((($sa)) + 4|0);
$193 = HEAP32[$192>>2]|0;
$194 = $193 ^ $191;
HEAP32[$192>>2] = $194;
$195 = $r;
$196 = $0;
$197 = ((($196)) + 240|0);
$198 = (($197) + ($195<<4)|0);
$199 = ((($198)) + 8|0);
$200 = HEAP32[$199>>2]|0;
$201 = ((($sb)) + 8|0);
$202 = HEAP32[$201>>2]|0;
$203 = $200 ^ $202;
$204 = ((($sa)) + 8|0);
HEAP32[$204>>2] = $203;
$205 = ((($sa)) + 12|0);
$206 = HEAP32[$205>>2]|0;
$207 = $206 >>> 0;
$208 = $207&255;
$209 = $208&255;
$210 = (5604 + ($209<<2)|0);
$211 = HEAP32[$210>>2]|0;
$212 = (_rol($211,0)|0);
$213 = ((($sb)) + 12|0);
$214 = HEAP32[$213>>2]|0;
$215 = $214 ^ $212;
HEAP32[$213>>2] = $215;
$216 = ((($sa)) + 12|0);
$217 = HEAP32[$216>>2]|0;
$218 = $217 >>> 8;
$219 = $218&255;
$220 = $219&255;
$221 = (5604 + ($220<<2)|0);
$222 = HEAP32[$221>>2]|0;
$223 = (_rol($222,8)|0);
$224 = HEAP32[$sa>>2]|0;
$225 = $224 ^ $223;
HEAP32[$sa>>2] = $225;
$226 = ((($sa)) + 12|0);
$227 = HEAP32[$226>>2]|0;
$228 = $227 >>> 16;
$229 = $228&255;
$230 = $229&255;
$231 = (5604 + ($230<<2)|0);
$232 = HEAP32[$231>>2]|0;
$233 = (_rol($232,16)|0);
$234 = ((($sa)) + 4|0);
$235 = HEAP32[$234>>2]|0;
$236 = $235 ^ $233;
HEAP32[$234>>2] = $236;
$237 = ((($sa)) + 12|0);
$238 = HEAP32[$237>>2]|0;
$239 = $238 >>> 24;
$240 = $239&255;
$241 = $240&255;
$242 = (5604 + ($241<<2)|0);
$243 = HEAP32[$242>>2]|0;
$244 = (_rol($243,24)|0);
$245 = ((($sa)) + 8|0);
$246 = HEAP32[$245>>2]|0;
$247 = $246 ^ $244;
HEAP32[$245>>2] = $247;
$248 = $r;
$249 = $0;
$250 = ((($249)) + 240|0);
$251 = (($250) + ($248<<4)|0);
$252 = ((($251)) + 12|0);
$253 = HEAP32[$252>>2]|0;
$254 = ((($sb)) + 12|0);
$255 = HEAP32[$254>>2]|0;
$256 = $253 ^ $255;
$257 = ((($sa)) + 12|0);
HEAP32[$257>>2] = $256;
$258 = $r;
$259 = (($258) + -1)|0;
$r = $259;
$260 = HEAP32[$sa>>2]|0;
$261 = $260 >>> 0;
$262 = $261&255;
$263 = $262&255;
$264 = (5604 + ($263<<2)|0);
$265 = HEAP32[$264>>2]|0;
$266 = (_rol($265,0)|0);
HEAP32[$sb>>2] = $266;
$267 = HEAP32[$sa>>2]|0;
$268 = $267 >>> 8;
$269 = $268&255;
$270 = $269&255;
$271 = (5604 + ($270<<2)|0);
$272 = HEAP32[$271>>2]|0;
$273 = (_rol($272,8)|0);
$274 = ((($sb)) + 4|0);
HEAP32[$274>>2] = $273;
$275 = HEAP32[$sa>>2]|0;
$276 = $275 >>> 16;
$277 = $276&255;
$278 = $277&255;
$279 = (5604 + ($278<<2)|0);
$280 = HEAP32[$279>>2]|0;
$281 = (_rol($280,16)|0);
$282 = ((($sb)) + 8|0);
HEAP32[$282>>2] = $281;
$283 = HEAP32[$sa>>2]|0;
$284 = $283 >>> 24;
$285 = $284&255;
$286 = $285&255;
$287 = (5604 + ($286<<2)|0);
$288 = HEAP32[$287>>2]|0;
$289 = (_rol($288,24)|0);
$290 = ((($sb)) + 12|0);
HEAP32[$290>>2] = $289;
$291 = $r;
$292 = $0;
$293 = ((($292)) + 240|0);
$294 = (($293) + ($291<<4)|0);
$295 = HEAP32[$294>>2]|0;
$296 = HEAP32[$sb>>2]|0;
$297 = $295 ^ $296;
HEAP32[$sa>>2] = $297;
$298 = ((($sa)) + 4|0);
$299 = HEAP32[$298>>2]|0;
$300 = $299 >>> 0;
$301 = $300&255;
$302 = $301&255;
$303 = (5604 + ($302<<2)|0);
$304 = HEAP32[$303>>2]|0;
$305 = (_rol($304,0)|0);
$306 = ((($sb)) + 4|0);
$307 = HEAP32[$306>>2]|0;
$308 = $307 ^ $305;
HEAP32[$306>>2] = $308;
$309 = ((($sa)) + 4|0);
$310 = HEAP32[$309>>2]|0;
$311 = $310 >>> 8;
$312 = $311&255;
$313 = $312&255;
$314 = (5604 + ($313<<2)|0);
$315 = HEAP32[$314>>2]|0;
$316 = (_rol($315,8)|0);
$317 = ((($sb)) + 8|0);
$318 = HEAP32[$317>>2]|0;
$319 = $318 ^ $316;
HEAP32[$317>>2] = $319;
$320 = ((($sa)) + 4|0);
$321 = HEAP32[$320>>2]|0;
$322 = $321 >>> 16;
$323 = $322&255;
$324 = $323&255;
$325 = (5604 + ($324<<2)|0);
$326 = HEAP32[$325>>2]|0;
$327 = (_rol($326,16)|0);
$328 = ((($sb)) + 12|0);
$329 = HEAP32[$328>>2]|0;
$330 = $329 ^ $327;
HEAP32[$328>>2] = $330;
$331 = ((($sa)) + 4|0);
$332 = HEAP32[$331>>2]|0;
$333 = $332 >>> 24;
$334 = $333&255;
$335 = $334&255;
$336 = (5604 + ($335<<2)|0);
$337 = HEAP32[$336>>2]|0;
$338 = (_rol($337,24)|0);
$339 = HEAP32[$sa>>2]|0;
$340 = $339 ^ $338;
HEAP32[$sa>>2] = $340;
$341 = $r;
$342 = $0;
$343 = ((($342)) + 240|0);
$344 = (($343) + ($341<<4)|0);
$345 = ((($344)) + 4|0);
$346 = HEAP32[$345>>2]|0;
$347 = ((($sb)) + 4|0);
$348 = HEAP32[$347>>2]|0;
$349 = $346 ^ $348;
$350 = ((($sa)) + 4|0);
HEAP32[$350>>2] = $349;
$351 = ((($sa)) + 8|0);
$352 = HEAP32[$351>>2]|0;
$353 = $352 >>> 0;
$354 = $353&255;
$355 = $354&255;
$356 = (5604 + ($355<<2)|0);
$357 = HEAP32[$356>>2]|0;
$358 = (_rol($357,0)|0);
$359 = ((($sb)) + 8|0);
$360 = HEAP32[$359>>2]|0;
$361 = $360 ^ $358;
HEAP32[$359>>2] = $361;
$362 = ((($sa)) + 8|0);
$363 = HEAP32[$362>>2]|0;
$364 = $363 >>> 8;
$365 = $364&255;
$366 = $365&255;
$367 = (5604 + ($366<<2)|0);
$368 = HEAP32[$367>>2]|0;
$369 = (_rol($368,8)|0);
$370 = ((($sb)) + 12|0);
$371 = HEAP32[$370>>2]|0;
$372 = $371 ^ $369;
HEAP32[$370>>2] = $372;
$373 = ((($sa)) + 8|0);
$374 = HEAP32[$373>>2]|0;
$375 = $374 >>> 16;
$376 = $375&255;
$377 = $376&255;
$378 = (5604 + ($377<<2)|0);
$379 = HEAP32[$378>>2]|0;
$380 = (_rol($379,16)|0);
$381 = HEAP32[$sa>>2]|0;
$382 = $381 ^ $380;
HEAP32[$sa>>2] = $382;
$383 = ((($sa)) + 8|0);
$384 = HEAP32[$383>>2]|0;
$385 = $384 >>> 24;
$386 = $385&255;
$387 = $386&255;
$388 = (5604 + ($387<<2)|0);
$389 = HEAP32[$388>>2]|0;
$390 = (_rol($389,24)|0);
$391 = ((($sa)) + 4|0);
$392 = HEAP32[$391>>2]|0;
$393 = $392 ^ $390;
HEAP32[$391>>2] = $393;
$394 = $r;
$395 = $0;
$396 = ((($395)) + 240|0);
$397 = (($396) + ($394<<4)|0);
$398 = ((($397)) + 8|0);
$399 = HEAP32[$398>>2]|0;
$400 = ((($sb)) + 8|0);
$401 = HEAP32[$400>>2]|0;
$402 = $399 ^ $401;
$403 = ((($sa)) + 8|0);
HEAP32[$403>>2] = $402;
$404 = ((($sa)) + 12|0);
$405 = HEAP32[$404>>2]|0;
$406 = $405 >>> 0;
$407 = $406&255;
$408 = $407&255;
$409 = (5604 + ($408<<2)|0);
$410 = HEAP32[$409>>2]|0;
$411 = (_rol($410,0)|0);
$412 = ((($sb)) + 12|0);
$413 = HEAP32[$412>>2]|0;
$414 = $413 ^ $411;
HEAP32[$412>>2] = $414;
$415 = ((($sa)) + 12|0);
$416 = HEAP32[$415>>2]|0;
$417 = $416 >>> 8;
$418 = $417&255;
$419 = $418&255;
$420 = (5604 + ($419<<2)|0);
$421 = HEAP32[$420>>2]|0;
$422 = (_rol($421,8)|0);
$423 = HEAP32[$sa>>2]|0;
$424 = $423 ^ $422;
HEAP32[$sa>>2] = $424;
$425 = ((($sa)) + 12|0);
$426 = HEAP32[$425>>2]|0;
$427 = $426 >>> 16;
$428 = $427&255;
$429 = $428&255;
$430 = (5604 + ($429<<2)|0);
$431 = HEAP32[$430>>2]|0;
$432 = (_rol($431,16)|0);
$433 = ((($sa)) + 4|0);
$434 = HEAP32[$433>>2]|0;
$435 = $434 ^ $432;
HEAP32[$433>>2] = $435;
$436 = ((($sa)) + 12|0);
$437 = HEAP32[$436>>2]|0;
$438 = $437 >>> 24;
$439 = $438&255;
$440 = $439&255;
$441 = (5604 + ($440<<2)|0);
$442 = HEAP32[$441>>2]|0;
$443 = (_rol($442,24)|0);
$444 = ((($sa)) + 8|0);
$445 = HEAP32[$444>>2]|0;
$446 = $445 ^ $443;
HEAP32[$444>>2] = $446;
$447 = $r;
$448 = $0;
$449 = ((($448)) + 240|0);
$450 = (($449) + ($447<<4)|0);
$451 = ((($450)) + 12|0);
$452 = HEAP32[$451>>2]|0;
$453 = ((($sb)) + 12|0);
$454 = HEAP32[$453>>2]|0;
$455 = $452 ^ $454;
$456 = ((($sa)) + 12|0);
HEAP32[$456>>2] = $455;
$457 = $r;
$458 = (($457) + -1)|0;
$r = $458;
}
$459 = $0;
$460 = ((($459)) + 240|0);
$461 = ((($460)) + 16|0);
$462 = HEAP32[$461>>2]|0;
$463 = HEAP32[$sb>>2]|0;
$464 = $462 ^ $463;
HEAP32[$sa>>2] = $464;
$465 = ((($sa)) + 4|0);
$466 = HEAP32[$465>>2]|0;
$467 = $466 >>> 0;
$468 = $467&255;
$469 = $468&255;
$470 = (5604 + ($469<<2)|0);
$471 = HEAP32[$470>>2]|0;
$472 = (_rol($471,0)|0);
$473 = ((($sb)) + 4|0);
$474 = HEAP32[$473>>2]|0;
$475 = $474 ^ $472;
HEAP32[$473>>2] = $475;
$476 = ((($sa)) + 4|0);
$477 = HEAP32[$476>>2]|0;
$478 = $477 >>> 8;
$479 = $478&255;
$480 = $479&255;
$481 = (5604 + ($480<<2)|0);
$482 = HEAP32[$481>>2]|0;
$483 = (_rol($482,8)|0);
$484 = ((($sb)) + 8|0);
$485 = HEAP32[$484>>2]|0;
$486 = $485 ^ $483;
HEAP32[$484>>2] = $486;
$487 = ((($sa)) + 4|0);
$488 = HEAP32[$487>>2]|0;
$489 = $488 >>> 16;
$490 = $489&255;
$491 = $490&255;
$492 = (5604 + ($491<<2)|0);
$493 = HEAP32[$492>>2]|0;
$494 = (_rol($493,16)|0);
$495 = ((($sb)) + 12|0);
$496 = HEAP32[$495>>2]|0;
$497 = $496 ^ $494;
HEAP32[$495>>2] = $497;
$498 = ((($sa)) + 4|0);
$499 = HEAP32[$498>>2]|0;
$500 = $499 >>> 24;
$501 = $500&255;
$502 = $501&255;
$503 = (5604 + ($502<<2)|0);
$504 = HEAP32[$503>>2]|0;
$505 = (_rol($504,24)|0);
$506 = HEAP32[$sa>>2]|0;
$507 = $506 ^ $505;
HEAP32[$sa>>2] = $507;
$508 = $0;
$509 = ((($508)) + 240|0);
$510 = ((($509)) + 16|0);
$511 = ((($510)) + 4|0);
$512 = HEAP32[$511>>2]|0;
$513 = ((($sb)) + 4|0);
$514 = HEAP32[$513>>2]|0;
$515 = $512 ^ $514;
$516 = ((($sa)) + 4|0);
HEAP32[$516>>2] = $515;
$517 = ((($sa)) + 8|0);
$518 = HEAP32[$517>>2]|0;
$519 = $518 >>> 0;
$520 = $519&255;
$521 = $520&255;
$522 = (5604 + ($521<<2)|0);
$523 = HEAP32[$522>>2]|0;
$524 = (_rol($523,0)|0);
$525 = ((($sb)) + 8|0);
$526 = HEAP32[$525>>2]|0;
$527 = $526 ^ $524;
HEAP32[$525>>2] = $527;
$528 = ((($sa)) + 8|0);
$529 = HEAP32[$528>>2]|0;
$530 = $529 >>> 8;
$531 = $530&255;
$532 = $531&255;
$533 = (5604 + ($532<<2)|0);
$534 = HEAP32[$533>>2]|0;
$535 = (_rol($534,8)|0);
$536 = ((($sb)) + 12|0);
$537 = HEAP32[$536>>2]|0;
$538 = $537 ^ $535;
HEAP32[$536>>2] = $538;
$539 = ((($sa)) + 8|0);
$540 = HEAP32[$539>>2]|0;
$541 = $540 >>> 16;
$542 = $541&255;
$543 = $542&255;
$544 = (5604 + ($543<<2)|0);
$545 = HEAP32[$544>>2]|0;
$546 = (_rol($545,16)|0);
$547 = HEAP32[$sa>>2]|0;
$548 = $547 ^ $546;
HEAP32[$sa>>2] = $548;
$549 = ((($sa)) + 8|0);
$550 = HEAP32[$549>>2]|0;
$551 = $550 >>> 24;
$552 = $551&255;
$553 = $552&255;
$554 = (5604 + ($553<<2)|0);
$555 = HEAP32[$554>>2]|0;
$556 = (_rol($555,24)|0);
$557 = ((($sa)) + 4|0);
$558 = HEAP32[$557>>2]|0;
$559 = $558 ^ $556;
HEAP32[$557>>2] = $559;
$560 = $0;
$561 = ((($560)) + 240|0);
$562 = ((($561)) + 16|0);
$563 = ((($562)) + 8|0);
$564 = HEAP32[$563>>2]|0;
$565 = ((($sb)) + 8|0);
$566 = HEAP32[$565>>2]|0;
$567 = $564 ^ $566;
$568 = ((($sa)) + 8|0);
HEAP32[$568>>2] = $567;
$569 = ((($sa)) + 12|0);
$570 = HEAP32[$569>>2]|0;
$571 = $570 >>> 0;
$572 = $571&255;
$573 = $572&255;
$574 = (5604 + ($573<<2)|0);
$575 = HEAP32[$574>>2]|0;
$576 = (_rol($575,0)|0);
$577 = ((($sb)) + 12|0);
$578 = HEAP32[$577>>2]|0;
$579 = $578 ^ $576;
HEAP32[$577>>2] = $579;
$580 = ((($sa)) + 12|0);
$581 = HEAP32[$580>>2]|0;
$582 = $581 >>> 8;
$583 = $582&255;
$584 = $583&255;
$585 = (5604 + ($584<<2)|0);
$586 = HEAP32[$585>>2]|0;
$587 = (_rol($586,8)|0);
$588 = HEAP32[$sa>>2]|0;
$589 = $588 ^ $587;
HEAP32[$sa>>2] = $589;
$590 = ((($sa)) + 12|0);
$591 = HEAP32[$590>>2]|0;
$592 = $591 >>> 16;
$593 = $592&255;
$594 = $593&255;
$595 = (5604 + ($594<<2)|0);
$596 = HEAP32[$595>>2]|0;
$597 = (_rol($596,16)|0);
$598 = ((($sa)) + 4|0);
$599 = HEAP32[$598>>2]|0;
$600 = $599 ^ $597;
HEAP32[$598>>2] = $600;
$601 = ((($sa)) + 12|0);
$602 = HEAP32[$601>>2]|0;
$603 = $602 >>> 24;
$604 = $603&255;
$605 = $604&255;
$606 = (5604 + ($605<<2)|0);
$607 = HEAP32[$606>>2]|0;
$608 = (_rol($607,24)|0);
$609 = ((($sa)) + 8|0);
$610 = HEAP32[$609>>2]|0;
$611 = $610 ^ $608;
HEAP32[$609>>2] = $611;
$612 = $0;
$613 = ((($612)) + 240|0);
$614 = ((($613)) + 16|0);
$615 = ((($614)) + 12|0);
$616 = HEAP32[$615>>2]|0;
$617 = ((($sb)) + 12|0);
$618 = HEAP32[$617>>2]|0;
$619 = $616 ^ $618;
$620 = ((($sa)) + 12|0);
HEAP32[$620>>2] = $619;
$621 = HEAP32[$sa>>2]|0;
$622 = $621 >>> 0;
$623 = $622&255;
$624 = $623&255;
$625 = ((6628) + ($624)|0);
$626 = HEAP8[$625>>0]|0;
$627 = $626&255;
$628 = $627 << 0;
HEAP32[$sb>>2] = $628;
$629 = HEAP32[$sa>>2]|0;
$630 = $629 >>> 8;
$631 = $630&255;
$632 = $631&255;
$633 = ((6628) + ($632)|0);
$634 = HEAP8[$633>>0]|0;
$635 = $634&255;
$636 = $635 << 8;
$637 = ((($sb)) + 4|0);
HEAP32[$637>>2] = $636;
$638 = HEAP32[$sa>>2]|0;
$639 = $638 >>> 16;
$640 = $639&255;
$641 = $640&255;
$642 = ((6628) + ($641)|0);
$643 = HEAP8[$642>>0]|0;
$644 = $643&255;
$645 = $644 << 16;
$646 = ((($sb)) + 8|0);
HEAP32[$646>>2] = $645;
$647 = HEAP32[$sa>>2]|0;
$648 = $647 >>> 24;
$649 = $648&255;
$650 = $649&255;
$651 = ((6628) + ($650)|0);
$652 = HEAP8[$651>>0]|0;
$653 = $652&255;
$654 = $653 << 24;
$655 = ((($sb)) + 12|0);
HEAP32[$655>>2] = $654;
$656 = HEAP32[$sb>>2]|0;
$657 = $0;
$658 = ((($657)) + 240|0);
$659 = HEAP32[$658>>2]|0;
$660 = $656 ^ $659;
HEAP32[$sa>>2] = $660;
$661 = ((($sa)) + 4|0);
$662 = HEAP32[$661>>2]|0;
$663 = $662 >>> 0;
$664 = $663&255;
$665 = $664&255;
$666 = ((6628) + ($665)|0);
$667 = HEAP8[$666>>0]|0;
$668 = $667&255;
$669 = $668 << 0;
$670 = ((($sb)) + 4|0);
$671 = HEAP32[$670>>2]|0;
$672 = $671 ^ $669;
HEAP32[$670>>2] = $672;
$673 = ((($sa)) + 4|0);
$674 = HEAP32[$673>>2]|0;
$675 = $674 >>> 8;
$676 = $675&255;
$677 = $676&255;
$678 = ((6628) + ($677)|0);
$679 = HEAP8[$678>>0]|0;
$680 = $679&255;
$681 = $680 << 8;
$682 = ((($sb)) + 8|0);
$683 = HEAP32[$682>>2]|0;
$684 = $683 ^ $681;
HEAP32[$682>>2] = $684;
$685 = ((($sa)) + 4|0);
$686 = HEAP32[$685>>2]|0;
$687 = $686 >>> 16;
$688 = $687&255;
$689 = $688&255;
$690 = ((6628) + ($689)|0);
$691 = HEAP8[$690>>0]|0;
$692 = $691&255;
$693 = $692 << 16;
$694 = ((($sb)) + 12|0);
$695 = HEAP32[$694>>2]|0;
$696 = $695 ^ $693;
HEAP32[$694>>2] = $696;
$697 = ((($sa)) + 4|0);
$698 = HEAP32[$697>>2]|0;
$699 = $698 >>> 24;
$700 = $699&255;
$701 = $700&255;
$702 = ((6628) + ($701)|0);
$703 = HEAP8[$702>>0]|0;
$704 = $703&255;
$705 = $704 << 24;
$706 = HEAP32[$sa>>2]|0;
$707 = $706 ^ $705;
HEAP32[$sa>>2] = $707;
$708 = ((($sb)) + 4|0);
$709 = HEAP32[$708>>2]|0;
$710 = $0;
$711 = ((($710)) + 240|0);
$712 = ((($711)) + 4|0);
$713 = HEAP32[$712>>2]|0;
$714 = $709 ^ $713;
$715 = ((($sa)) + 4|0);
HEAP32[$715>>2] = $714;
$716 = ((($sa)) + 8|0);
$717 = HEAP32[$716>>2]|0;
$718 = $717 >>> 0;
$719 = $718&255;
$720 = $719&255;
$721 = ((6628) + ($720)|0);
$722 = HEAP8[$721>>0]|0;
$723 = $722&255;
$724 = $723 << 0;
$725 = ((($sb)) + 8|0);
$726 = HEAP32[$725>>2]|0;
$727 = $726 ^ $724;
HEAP32[$725>>2] = $727;
$728 = ((($sa)) + 8|0);
$729 = HEAP32[$728>>2]|0;
$730 = $729 >>> 8;
$731 = $730&255;
$732 = $731&255;
$733 = ((6628) + ($732)|0);
$734 = HEAP8[$733>>0]|0;
$735 = $734&255;
$736 = $735 << 8;
$737 = ((($sb)) + 12|0);
$738 = HEAP32[$737>>2]|0;
$739 = $738 ^ $736;
HEAP32[$737>>2] = $739;
$740 = ((($sa)) + 8|0);
$741 = HEAP32[$740>>2]|0;
$742 = $741 >>> 16;
$743 = $742&255;
$744 = $743&255;
$745 = ((6628) + ($744)|0);
$746 = HEAP8[$745>>0]|0;
$747 = $746&255;
$748 = $747 << 16;
$749 = HEAP32[$sa>>2]|0;
$750 = $749 ^ $748;
HEAP32[$sa>>2] = $750;
$751 = ((($sa)) + 8|0);
$752 = HEAP32[$751>>2]|0;
$753 = $752 >>> 24;
$754 = $753&255;
$755 = $754&255;
$756 = ((6628) + ($755)|0);
$757 = HEAP8[$756>>0]|0;
$758 = $757&255;
$759 = $758 << 24;
$760 = ((($sa)) + 4|0);
$761 = HEAP32[$760>>2]|0;
$762 = $761 ^ $759;
HEAP32[$760>>2] = $762;
$763 = ((($sb)) + 8|0);
$764 = HEAP32[$763>>2]|0;
$765 = $0;
$766 = ((($765)) + 240|0);
$767 = ((($766)) + 8|0);
$768 = HEAP32[$767>>2]|0;
$769 = $764 ^ $768;
$770 = ((($sa)) + 8|0);
HEAP32[$770>>2] = $769;
$771 = ((($sa)) + 12|0);
$772 = HEAP32[$771>>2]|0;
$773 = $772 >>> 0;
$774 = $773&255;
$775 = $774&255;
$776 = ((6628) + ($775)|0);
$777 = HEAP8[$776>>0]|0;
$778 = $777&255;
$779 = $778 << 0;
$780 = ((($sb)) + 12|0);
$781 = HEAP32[$780>>2]|0;
$782 = $781 ^ $779;
HEAP32[$780>>2] = $782;
$783 = ((($sa)) + 12|0);
$784 = HEAP32[$783>>2]|0;
$785 = $784 >>> 8;
$786 = $785&255;
$787 = $786&255;
$788 = ((6628) + ($787)|0);
$789 = HEAP8[$788>>0]|0;
$790 = $789&255;
$791 = $790 << 8;
$792 = HEAP32[$sa>>2]|0;
$793 = $792 ^ $791;
HEAP32[$sa>>2] = $793;
$794 = ((($sa)) + 12|0);
$795 = HEAP32[$794>>2]|0;
$796 = $795 >>> 16;
$797 = $796&255;
$798 = $797&255;
$799 = ((6628) + ($798)|0);
$800 = HEAP8[$799>>0]|0;
$801 = $800&255;
$802 = $801 << 16;
$803 = ((($sa)) + 4|0);
$804 = HEAP32[$803>>2]|0;
$805 = $804 ^ $802;
HEAP32[$803>>2] = $805;
$806 = ((($sa)) + 12|0);
$807 = HEAP32[$806>>2]|0;
$808 = $807 >>> 24;
$809 = $808&255;
$810 = $809&255;
$811 = ((6628) + ($810)|0);
$812 = HEAP8[$811>>0]|0;
$813 = $812&255;
$814 = $813 << 24;
$815 = ((($sa)) + 8|0);
$816 = HEAP32[$815>>2]|0;
$817 = $816 ^ $814;
HEAP32[$815>>2] = $817;
$818 = ((($sb)) + 12|0);
$819 = HEAP32[$818>>2]|0;
$820 = $0;
$821 = ((($820)) + 240|0);
$822 = ((($821)) + 12|0);
$823 = HEAP32[$822>>2]|0;
$824 = $819 ^ $823;
$825 = ((($sa)) + 12|0);
HEAP32[$825>>2] = $824;
$826 = $1;
$827 = HEAP32[$sa>>2]|0;
_buf_put_le32($826,$827);
$828 = $1;
$829 = ((($828)) + 4|0);
$830 = ((($sa)) + 4|0);
$831 = HEAP32[$830>>2]|0;
_buf_put_le32($829,$831);
$832 = $1;
$833 = ((($832)) + 8|0);
$834 = ((($sa)) + 8|0);
$835 = HEAP32[$834>>2]|0;
_buf_put_le32($833,$835);
$836 = $1;
$837 = ((($836)) + 12|0);
$838 = ((($sa)) + 12|0);
$839 = HEAP32[$838>>2]|0;
_buf_put_le32($837,$839);
STACKTOP = sp;return 64;
}
function _run_selftests_1176($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
switch ($3|0) {
case 7: {
$4 = $1;
$5 = $2;
$6 = (_selftest_fips_128($4,$5)|0);
$ec = $6;
break;
}
case 8: {
$7 = $1;
$8 = $2;
$9 = (_selftest_fips_192($7,$8)|0);
$ec = $9;
break;
}
case 9: {
$10 = $1;
$11 = $2;
$12 = (_selftest_fips_256($10,$11)|0);
$ec = $12;
break;
}
default: {
$ec = 12;
}
}
$13 = $ec;
STACKTOP = sp;return ($13|0);
}
function _selftest_fips_128($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 49849;
$3 = (_selftest_basic_128()|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
do {
if (!($5)) {
$6 = $1;
$7 = ($6|0)!=(0);
if ($7) {
$what = 38536;
$8 = (_selftest_fips_128_38a(2)|0);
$errtxt = $8;
$9 = $errtxt;
$10 = ($9|0)!=(0|0);
if ($10) {
break;
}
$what = 38653;
$11 = (_selftest_fips_128_38a(5)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
if ($13) {
break;
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
} while(0);
$14 = $2;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $2;
$17 = $what;
$18 = $errtxt;
FUNCTION_TABLE_viiii[$16 & 63](38657,7,$17,$18);
}
$0 = 50;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _selftest_fips_128_38a($requested_mode) {
$requested_mode = $requested_mode|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $err = 0, $hddec = 0, $hdenc = 0, $idx = 0, $scratch = 0, $tvi = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$scratch = sp + 32|0;
$hdenc = sp + 4|0;
$hddec = sp;
$1 = $requested_mode;
HEAP32[$hdenc>>2] = 0;
HEAP32[$hddec>>2] = 0;
$tvi = 0;
while(1) {
$2 = $tvi;
$3 = ($2>>>0)<(2);
if (!($3)) {
break;
}
$4 = $tvi;
$5 = (7004 + (($4*164)|0)|0);
$6 = HEAP32[$5>>2]|0;
$7 = $1;
$8 = ($6|0)==($7|0);
if ($8) {
break;
}
$9 = $tvi;
$10 = (($9) + 1)|0;
$tvi = $10;
}
$11 = $tvi;
$12 = ($11|0)==(2);
if ($12) {
$13 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($13);
$14 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($14);
$0 = 38540;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
$15 = $tvi;
$16 = (7004 + (($15*164)|0)|0);
$17 = HEAP32[$16>>2]|0;
$18 = (__gcry_cipher_open($hdenc,7,$17,0)|0);
$err = $18;
$19 = $err;
$20 = ($19|0)!=(0);
if ($20) {
$21 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($21);
$22 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($22);
$0 = 38567;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
$23 = $tvi;
$24 = (7004 + (($23*164)|0)|0);
$25 = HEAP32[$24>>2]|0;
$26 = (__gcry_cipher_open($hddec,7,$25,0)|0);
$err = $26;
$27 = $err;
$28 = ($27|0)!=(0);
$29 = HEAP32[$hdenc>>2]|0;
if ($28) {
__gcry_cipher_close($29);
$30 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($30);
$0 = 38567;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
$31 = $tvi;
$32 = (7004 + (($31*164)|0)|0);
$33 = ((($32)) + 4|0);
$34 = (__gcry_cipher_setkey($29,$33,16)|0);
$err = $34;
$35 = $err;
$36 = ($35|0)!=(0);
if (!($36)) {
$37 = HEAP32[$hddec>>2]|0;
$38 = $tvi;
$39 = (7004 + (($38*164)|0)|0);
$40 = ((($39)) + 4|0);
$41 = (__gcry_cipher_setkey($37,$40,16)|0);
$err = $41;
}
$42 = $err;
$43 = ($42|0)!=(0);
$44 = HEAP32[$hdenc>>2]|0;
if ($43) {
__gcry_cipher_close($44);
$45 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($45);
$0 = 38572;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
$46 = $tvi;
$47 = (7004 + (($46*164)|0)|0);
$48 = ((($47)) + 20|0);
$49 = (__gcry_cipher_setiv($44,$48,16)|0);
$err = $49;
$50 = $err;
$51 = ($50|0)!=(0);
if (!($51)) {
$52 = HEAP32[$hddec>>2]|0;
$53 = $tvi;
$54 = (7004 + (($53*164)|0)|0);
$55 = ((($54)) + 20|0);
$56 = (__gcry_cipher_setiv($52,$55,16)|0);
$err = $56;
}
$57 = $err;
$58 = ($57|0)!=(0);
if ($58) {
$59 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($59);
$60 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($60);
$0 = 38580;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
$idx = 0;
while(1) {
$61 = $idx;
$62 = ($61>>>0)<(4);
$63 = HEAP32[$hdenc>>2]|0;
if (!($62)) {
label = 30;
break;
}
$64 = $idx;
$65 = $tvi;
$66 = (7004 + (($65*164)|0)|0);
$67 = ((($66)) + 36|0);
$68 = (($67) + ($64<<5)|0);
$69 = (__gcry_cipher_encrypt($63,$scratch,16,$68,16)|0);
$err = $69;
$70 = $err;
$71 = ($70|0)!=(0);
if ($71) {
label = 22;
break;
}
$74 = $idx;
$75 = $tvi;
$76 = (7004 + (($75*164)|0)|0);
$77 = ((($76)) + 36|0);
$78 = (($77) + ($74<<5)|0);
$79 = ((($78)) + 16|0);
$80 = (_memcmp($scratch,$79,16)|0);
$81 = ($80|0)!=(0);
if ($81) {
label = 24;
break;
}
$84 = HEAP32[$hddec>>2]|0;
$85 = $idx;
$86 = $tvi;
$87 = (7004 + (($86*164)|0)|0);
$88 = ((($87)) + 36|0);
$89 = (($88) + ($85<<5)|0);
$90 = ((($89)) + 16|0);
$91 = (__gcry_cipher_decrypt($84,$scratch,16,$90,16)|0);
$err = $91;
$92 = $err;
$93 = ($92|0)!=(0);
if ($93) {
label = 26;
break;
}
$96 = $idx;
$97 = $tvi;
$98 = (7004 + (($97*164)|0)|0);
$99 = ((($98)) + 36|0);
$100 = (($99) + ($96<<5)|0);
$101 = (_memcmp($scratch,$100,16)|0);
$102 = ($101|0)!=(0);
if ($102) {
label = 28;
break;
}
$105 = $idx;
$106 = (($105) + 1)|0;
$idx = $106;
}
if ((label|0) == 22) {
$72 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($72);
$73 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($73);
$0 = 38587;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
else if ((label|0) == 24) {
$82 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($82);
$83 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($83);
$0 = 38603;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
else if ((label|0) == 26) {
$94 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($94);
$95 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($95);
$0 = 38620;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
else if ((label|0) == 28) {
$103 = HEAP32[$hdenc>>2]|0;
__gcry_cipher_close($103);
$104 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($104);
$0 = 38636;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
else if ((label|0) == 30) {
__gcry_cipher_close($63);
$107 = HEAP32[$hddec>>2]|0;
__gcry_cipher_close($107);
$0 = 0;
$108 = $0;
STACKTOP = sp;return ($108|0);
}
return (0)|0;
}
function _selftest_fips_192($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 49849;
$3 = (_selftest_basic_192()|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$0 = 0;
$11 = $0;
STACKTOP = sp;return ($11|0);
}
$6 = $2;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $2;
$9 = $what;
$10 = $errtxt;
FUNCTION_TABLE_viiii[$8 & 63](38657,8,$9,$10);
}
$0 = 50;
$11 = $0;
STACKTOP = sp;return ($11|0);
}
function _selftest_fips_256($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 49849;
$3 = (_selftest_basic_256()|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$0 = 0;
$11 = $0;
STACKTOP = sp;return ($11|0);
}
$6 = $2;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $2;
$9 = $what;
$10 = $errtxt;
FUNCTION_TABLE_viiii[$8 & 63](38657,9,$9,$10);
}
$0 = 50;
$11 = $0;
STACKTOP = sp;return ($11|0);
}
function __gcry_aes_cfb_enc($context,$iv,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$iv = $iv|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn_depth = 0, $ctx = 0;
var $encrypt_fn = 0, $inbuf = 0, $outbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $iv;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_depth = 0;
$8 = $ctx;
$9 = ((($8)) + 496|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $ctx;
$13 = ((($12)) + 496|0);
$14 = HEAP32[$13>>2]|0;
FUNCTION_TABLE_v[$14 & 127]();
}
$15 = $ctx;
$16 = ((($15)) + 488|0);
$17 = HEAP32[$16>>2]|0;
$encrypt_fn = $17;
while(1) {
$18 = $4;
$19 = ($18|0)!=(0);
if (!($19)) {
break;
}
$20 = $encrypt_fn;
$21 = $ctx;
$22 = $1;
$23 = $1;
$24 = (FUNCTION_TABLE_iiii[$20 & 127]($21,$22,$23)|0);
$burn_depth = $24;
$25 = $outbuf;
$26 = $1;
$27 = $inbuf;
_buf_xor_2dst($25,$26,$27,16);
$28 = $outbuf;
$29 = ((($28)) + 16|0);
$outbuf = $29;
$30 = $inbuf;
$31 = ((($30)) + 16|0);
$inbuf = $31;
$32 = $4;
$33 = (($32) + -1)|0;
$4 = $33;
}
$34 = $burn_depth;
$35 = ($34|0)!=(0);
if (!($35)) {
STACKTOP = sp;return;
}
$36 = $burn_depth;
$37 = (($36) + 16)|0;
___gcry_burn_stack($37);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor_2dst($_dst1,$_dst2,$_src,$len) {
$_dst1 = $_dst1|0;
$_dst2 = $_dst2|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst1 = 0, $dst2 = 0, $ldst1 = 0, $ldst2 = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst1;
$1 = $_dst2;
$2 = $_src;
$3 = $len;
$4 = $0;
$dst1 = $4;
$5 = $1;
$dst2 = $5;
$6 = $2;
$src = $6;
$longmask = 3;
$7 = $src;
$8 = $7;
$9 = $dst1;
$10 = $9;
$11 = $8 | $10;
$12 = $dst2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst1;
$ldst1 = $17;
$18 = $dst2;
$ldst2 = $18;
$19 = $src;
$lsrc = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc;
$23 = ((($22)) + 4|0);
$lsrc = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $ldst2;
$26 = ((($25)) + 4|0);
$ldst2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $27 ^ $24;
HEAP32[$25>>2] = $28;
$29 = $ldst1;
$30 = ((($29)) + 4|0);
$ldst1 = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst1;
$dst1 = $33;
$34 = $ldst2;
$dst2 = $34;
$35 = $lsrc;
$src = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src;
$39 = ((($38)) + 1|0);
$src = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $dst2;
$43 = ((($42)) + 1|0);
$dst2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $45 ^ $41;
$47 = $46&255;
HEAP8[$42>>0] = $47;
$48 = $dst1;
$49 = ((($48)) + 1|0);
$dst1 = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function __gcry_aes_cbc_enc($context,$iv,$outbuf_arg,$inbuf_arg,$nblocks,$cbc_mac) {
$context = $context|0;
$iv = $iv|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
$cbc_mac = $cbc_mac|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn_depth = 0, $ctx = 0, $encrypt_fn = 0, $inbuf = 0, $last_iv = 0, $outbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $iv;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $cbc_mac;
$6 = $0;
$ctx = $6;
$7 = $2;
$outbuf = $7;
$8 = $3;
$inbuf = $8;
$burn_depth = 0;
$9 = $ctx;
$10 = ((($9)) + 496|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)!=(0|0);
if ($12) {
$13 = $ctx;
$14 = ((($13)) + 496|0);
$15 = HEAP32[$14>>2]|0;
FUNCTION_TABLE_v[$15 & 127]();
}
$16 = $ctx;
$17 = ((($16)) + 488|0);
$18 = HEAP32[$17>>2]|0;
$encrypt_fn = $18;
$19 = $1;
$last_iv = $19;
while(1) {
$20 = $4;
$21 = ($20|0)!=(0);
if (!($21)) {
break;
}
$22 = $outbuf;
$23 = $inbuf;
$24 = $last_iv;
_buf_xor($22,$23,$24,16);
$25 = $encrypt_fn;
$26 = $ctx;
$27 = $outbuf;
$28 = $outbuf;
$29 = (FUNCTION_TABLE_iiii[$25 & 127]($26,$27,$28)|0);
$burn_depth = $29;
$30 = $outbuf;
$last_iv = $30;
$31 = $inbuf;
$32 = ((($31)) + 16|0);
$inbuf = $32;
$33 = $5;
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = $outbuf;
$36 = ((($35)) + 16|0);
$outbuf = $36;
}
$37 = $4;
$38 = (($37) + -1)|0;
$4 = $38;
}
$39 = $last_iv;
$40 = $1;
$41 = ($39|0)!=($40|0);
if ($41) {
$42 = $1;
$43 = $last_iv;
_buf_cpy($42,$43,16);
}
$44 = $burn_depth;
$45 = ($44|0)!=(0);
if (!($45)) {
STACKTOP = sp;return;
}
$46 = $burn_depth;
$47 = (($46) + 16)|0;
___gcry_burn_stack($47);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_cpy($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function __gcry_aes_ocb_crypt($c,$outbuf_arg,$inbuf_arg,$nblocks,$encrypt) {
$c = $c|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
$encrypt = $encrypt|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $burn_depth = 0, $ctx = 0, $decrypt_fn = 0, $encrypt_fn = 0, $i = 0, $i2 = 0, $inbuf = 0, $l = 0, $l4 = 0, $l_tmp = 0, $l_tmp1 = 0, $ntz = 0, $ntz3 = 0, $outbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$l_tmp = sp + 16|0;
$i = sp + 40|0;
$l_tmp1 = sp;
$i2 = sp + 32|0;
$0 = $c;
$1 = $outbuf_arg;
$2 = $inbuf_arg;
$3 = $nblocks;
$4 = $encrypt;
$5 = $0;
$6 = ((($5)) + 496|0);
$ctx = $6;
$7 = $1;
$outbuf = $7;
$8 = $2;
$inbuf = $8;
$burn_depth = 0;
$9 = $4;
$10 = ($9|0)!=(0);
$11 = $ctx;
if ($10) {
$12 = ((($11)) + 496|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(0|0);
if ($14) {
$15 = $ctx;
$16 = ((($15)) + 496|0);
$17 = HEAP32[$16>>2]|0;
FUNCTION_TABLE_v[$17 & 127]();
}
} else {
_check_decryption_preparation($11);
$18 = $ctx;
$19 = ((($18)) + 500|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)!=(0|0);
if ($21) {
$22 = $ctx;
$23 = ((($22)) + 500|0);
$24 = HEAP32[$23>>2]|0;
FUNCTION_TABLE_v[$24 & 127]();
}
}
$25 = $4;
$26 = ($25|0)!=(0);
$27 = $ctx;
L7: do {
if ($26) {
$28 = ((($27)) + 488|0);
$29 = HEAP32[$28>>2]|0;
$encrypt_fn = $29;
while(1) {
$30 = $3;
$31 = ($30|0)!=(0);
if (!($31)) {
break L7;
}
$32 = $0;
$33 = ((($32)) + 128|0);
$34 = ((($33)) + 336|0);
$35 = $34;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = (($35) + 4)|0;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (_i64Add(($37|0),($40|0),1,0)|0);
$42 = tempRet0;
$43 = $34;
$44 = $43;
HEAP32[$44>>2] = $41;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP32[$46>>2] = $42;
$47 = $i;
$48 = $47;
HEAP32[$48>>2] = $41;
$49 = (($47) + 4)|0;
$50 = $49;
HEAP32[$50>>2] = $42;
$51 = $i;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (($51) + 4)|0;
$55 = $54;
$56 = HEAP32[$55>>2]|0;
$57 = (__gcry_ctz64($53,$56)|0);
$ntz = $57;
$58 = $ntz;
$59 = ($58>>>0)<(16);
if ($59) {
$60 = $ntz;
$61 = $0;
$62 = ((($61)) + 128|0);
$63 = ((($62)) + 32|0);
$64 = (($63) + ($60<<4)|0);
$l = $64;
} else {
$65 = $0;
$66 = $i;
$67 = $66;
$68 = HEAP32[$67>>2]|0;
$69 = (($66) + 4)|0;
$70 = $69;
$71 = HEAP32[$70>>2]|0;
$72 = (__gcry_cipher_ocb_get_l($65,$l_tmp,$68,$71)|0);
$l = $72;
}
$73 = $0;
$74 = ((($73)) + 64|0);
$75 = $l;
_buf_xor_1($74,$75,16);
$76 = $inbuf;
_buf_cpy($l_tmp,$76,16);
$77 = $0;
$78 = ((($77)) + 80|0);
_buf_xor_1($78,$l_tmp,16);
$79 = $0;
$80 = ((($79)) + 64|0);
_buf_xor_1($l_tmp,$80,16);
$81 = $encrypt_fn;
$82 = $ctx;
$83 = (FUNCTION_TABLE_iiii[$81 & 127]($82,$l_tmp,$l_tmp)|0);
$burn_depth = $83;
$84 = $0;
$85 = ((($84)) + 64|0);
_buf_xor_1($l_tmp,$85,16);
$86 = $outbuf;
_buf_cpy($86,$l_tmp,16);
$87 = $inbuf;
$88 = ((($87)) + 16|0);
$inbuf = $88;
$89 = $outbuf;
$90 = ((($89)) + 16|0);
$outbuf = $90;
$91 = $3;
$92 = (($91) + -1)|0;
$3 = $92;
}
} else {
$93 = ((($27)) + 492|0);
$94 = HEAP32[$93>>2]|0;
$decrypt_fn = $94;
while(1) {
$95 = $3;
$96 = ($95|0)!=(0);
if (!($96)) {
break L7;
}
$97 = $0;
$98 = ((($97)) + 128|0);
$99 = ((($98)) + 336|0);
$100 = $99;
$101 = $100;
$102 = HEAP32[$101>>2]|0;
$103 = (($100) + 4)|0;
$104 = $103;
$105 = HEAP32[$104>>2]|0;
$106 = (_i64Add(($102|0),($105|0),1,0)|0);
$107 = tempRet0;
$108 = $99;
$109 = $108;
HEAP32[$109>>2] = $106;
$110 = (($108) + 4)|0;
$111 = $110;
HEAP32[$111>>2] = $107;
$112 = $i2;
$113 = $112;
HEAP32[$113>>2] = $106;
$114 = (($112) + 4)|0;
$115 = $114;
HEAP32[$115>>2] = $107;
$116 = $i2;
$117 = $116;
$118 = HEAP32[$117>>2]|0;
$119 = (($116) + 4)|0;
$120 = $119;
$121 = HEAP32[$120>>2]|0;
$122 = (__gcry_ctz64($118,$121)|0);
$ntz3 = $122;
$123 = $ntz3;
$124 = ($123>>>0)<(16);
if ($124) {
$125 = $ntz3;
$126 = $0;
$127 = ((($126)) + 128|0);
$128 = ((($127)) + 32|0);
$129 = (($128) + ($125<<4)|0);
$l4 = $129;
} else {
$130 = $0;
$131 = $i2;
$132 = $131;
$133 = HEAP32[$132>>2]|0;
$134 = (($131) + 4)|0;
$135 = $134;
$136 = HEAP32[$135>>2]|0;
$137 = (__gcry_cipher_ocb_get_l($130,$l_tmp1,$133,$136)|0);
$l4 = $137;
}
$138 = $0;
$139 = ((($138)) + 64|0);
$140 = $l4;
_buf_xor_1($139,$140,16);
$141 = $inbuf;
_buf_cpy($l_tmp1,$141,16);
$142 = $0;
$143 = ((($142)) + 64|0);
_buf_xor_1($l_tmp1,$143,16);
$144 = $decrypt_fn;
$145 = $ctx;
$146 = (FUNCTION_TABLE_iiii[$144 & 127]($145,$l_tmp1,$l_tmp1)|0);
$burn_depth = $146;
$147 = $0;
$148 = ((($147)) + 64|0);
_buf_xor_1($l_tmp1,$148,16);
$149 = $0;
$150 = ((($149)) + 80|0);
_buf_xor_1($150,$l_tmp1,16);
$151 = $outbuf;
_buf_cpy($151,$l_tmp1,16);
$152 = $inbuf;
$153 = ((($152)) + 16|0);
$inbuf = $153;
$154 = $outbuf;
$155 = ((($154)) + 16|0);
$outbuf = $155;
$156 = $3;
$157 = (($156) + -1)|0;
$3 = $157;
}
}
} while(0);
$158 = $burn_depth;
$159 = ($158|0)!=(0);
if (!($159)) {
STACKTOP = sp;return;
}
$160 = $burn_depth;
$161 = (($160) + 16)|0;
___gcry_burn_stack($161);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function __gcry_ctz64($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$3 = sp;
$4 = $3;
$5 = $4;
HEAP32[$5>>2] = $0;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $1;
$8 = $3;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = ($10|0)!=(0);
$15 = (0)!=(0);
$16 = $14 | $15;
$17 = $3;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (($17) + 4)|0;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
if ($16) {
$23 = (__gcry_ctz($19)|0);
$2 = $23;
$26 = $2;
STACKTOP = sp;return ($26|0);
} else {
$24 = (__gcry_ctz($22)|0);
$25 = (32 + ($24))|0;
$2 = $25;
$26 = $2;
STACKTOP = sp;return ($26|0);
}
return (0)|0;
}
function __gcry_ctz($x) {
$x = $x|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $0;
$2 = ($1|0)!=(0);
$3 = $0;
$4 = (_llvm_cttz_i32(($3|0))|0);
$5 = $2 ? $4 : 32;
STACKTOP = sp;return ($5|0);
}
function _buf_xor_1($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
$21 = HEAP32[$19>>2]|0;
$22 = $21 ^ $18;
HEAP32[$19>>2] = $22;
$23 = $2;
$24 = (($23) - 4)|0;
$2 = $24;
}
$25 = $ldst;
$dst = $25;
$26 = $lsrc;
$src = $26;
}
while(1) {
$27 = $2;
$28 = ($27|0)!=(0);
if (!($28)) {
break;
}
$29 = $src;
$30 = ((($29)) + 1|0);
$src = $30;
$31 = HEAP8[$29>>0]|0;
$32 = $31&255;
$33 = $dst;
$34 = ((($33)) + 1|0);
$dst = $34;
$35 = HEAP8[$33>>0]|0;
$36 = $35&255;
$37 = $36 ^ $32;
$38 = $37&255;
HEAP8[$33>>0] = $38;
$39 = $2;
$40 = (($39) + -1)|0;
$2 = $40;
}
STACKTOP = sp;return;
}
function __gcry_aes_ocb_auth($c,$abuf_arg,$nblocks) {
$c = $c|0;
$abuf_arg = $abuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $abuf = 0, $burn_depth = 0, $ctx = 0, $encrypt_fn = 0, $i = 0, $l = 0, $l_tmp = 0, $ntz = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$l_tmp = sp;
$i = sp + 24|0;
$_vset_long = sp + 16|0;
$0 = $c;
$1 = $abuf_arg;
$2 = $nblocks;
$3 = $0;
$4 = ((($3)) + 496|0);
$ctx = $4;
$5 = $1;
$abuf = $5;
$burn_depth = 0;
$6 = $ctx;
$7 = ((($6)) + 496|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $ctx;
$11 = ((($10)) + 496|0);
$12 = HEAP32[$11>>2]|0;
FUNCTION_TABLE_v[$12 & 127]();
}
$13 = $ctx;
$14 = ((($13)) + 488|0);
$15 = HEAP32[$14>>2]|0;
$encrypt_fn = $15;
while(1) {
$16 = $2;
$17 = ($16|0)!=(0);
if (!($17)) {
break;
}
$18 = $0;
$19 = ((($18)) + 128|0);
$20 = ((($19)) + 344|0);
$21 = $20;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = (_i64Add(($23|0),($26|0),1,0)|0);
$28 = tempRet0;
$29 = $20;
$30 = $29;
HEAP32[$30>>2] = $27;
$31 = (($29) + 4)|0;
$32 = $31;
HEAP32[$32>>2] = $28;
$33 = $i;
$34 = $33;
HEAP32[$34>>2] = $27;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $28;
$37 = $i;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (($37) + 4)|0;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = (__gcry_ctz64($39,$42)|0);
$ntz = $43;
$44 = $ntz;
$45 = ($44>>>0)<(16);
if ($45) {
$46 = $ntz;
$47 = $0;
$48 = ((($47)) + 128|0);
$49 = ((($48)) + 32|0);
$50 = (($49) + ($46<<4)|0);
$l = $50;
} else {
$51 = $0;
$52 = $i;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$55 = (($52) + 4)|0;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$58 = (__gcry_cipher_ocb_get_l($51,$l_tmp,$54,$57)|0);
$l = $58;
}
$59 = $0;
$60 = ((($59)) + 128|0);
$61 = ((($60)) + 304|0);
$62 = $l;
_buf_xor_1($61,$62,16);
$63 = $0;
$64 = ((($63)) + 128|0);
$65 = ((($64)) + 304|0);
$66 = $abuf;
_buf_xor($l_tmp,$65,$66,16);
$67 = $encrypt_fn;
$68 = $ctx;
$69 = (FUNCTION_TABLE_iiii[$67 & 127]($68,$l_tmp,$l_tmp)|0);
$burn_depth = $69;
$70 = $0;
$71 = ((($70)) + 128|0);
$72 = ((($71)) + 320|0);
_buf_xor_1($72,$l_tmp,16);
$73 = $abuf;
$74 = ((($73)) + 16|0);
$abuf = $74;
$75 = $2;
$76 = (($75) + -1)|0;
$2 = $76;
}
$_vptr = $l_tmp;
$_vlen = 16;
$_vset = 0;
$77 = $_vset;
$78 = $77&255;
$79 = $_vset_long;
$80 = $79;
HEAP32[$80>>2] = $78;
$81 = (($79) + 4)|0;
$82 = $81;
HEAP32[$82>>2] = 0;
while(1) {
$83 = $_vptr;
$84 = $83;
$85 = $84 & 7;
$86 = ($85|0)!=(0);
$87 = $_vlen;
$88 = ($87|0)!=(0);
$89 = $86 ? $88 : 0;
if (!($89)) {
break;
}
$90 = $_vset;
$91 = $_vptr;
HEAP8[$91>>0] = $90;
$92 = $_vptr;
$93 = ((($92)) + 1|0);
$_vptr = $93;
$94 = $_vlen;
$95 = (($94) + -1)|0;
$_vlen = $95;
}
$96 = $_vlen;
$97 = ($96>>>0)<(8);
if (!($97)) {
$98 = $_vset_long;
$99 = $98;
$100 = HEAP32[$99>>2]|0;
$101 = (($98) + 4)|0;
$102 = $101;
$103 = HEAP32[$102>>2]|0;
$104 = (___muldi3(($100|0),($103|0),16843009,16843009)|0);
$105 = tempRet0;
$106 = $_vset_long;
$107 = $106;
HEAP32[$107>>2] = $104;
$108 = (($106) + 4)|0;
$109 = $108;
HEAP32[$109>>2] = $105;
while(1) {
$110 = $_vptr;
$_vptr_long = $110;
$111 = $_vset_long;
$112 = $111;
$113 = HEAP32[$112>>2]|0;
$114 = (($111) + 4)|0;
$115 = $114;
$116 = HEAP32[$115>>2]|0;
$117 = $_vptr_long;
$118 = $117;
$119 = $118;
HEAP32[$119>>2] = $113;
$120 = (($118) + 4)|0;
$121 = $120;
HEAP32[$121>>2] = $116;
$122 = $_vlen;
$123 = (($122) - 8)|0;
$_vlen = $123;
$124 = $_vptr;
$125 = ((($124)) + 8|0);
$_vptr = $125;
$126 = $_vlen;
$127 = ($126>>>0)>=(8);
if (!($127)) {
break;
}
}
}
while(1) {
$128 = $_vlen;
$129 = ($128|0)!=(0);
if (!($129)) {
break;
}
$130 = $_vset;
$131 = $_vptr;
HEAP8[$131>>0] = $130;
$132 = $_vptr;
$133 = ((($132)) + 1|0);
$_vptr = $133;
$134 = $_vlen;
$135 = (($134) + -1)|0;
$_vlen = $135;
}
$136 = $burn_depth;
$137 = ($136|0)!=(0);
if (!($137)) {
STACKTOP = sp;return;
}
$138 = $burn_depth;
$139 = (($138) + 16)|0;
___gcry_burn_stack($139);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _rmd160_init($context,$flags) {
$context = $context|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $flags;
$2 = $0;
$hd = $2;
$3 = $hd;
$4 = ((($3)) + 160|0);
HEAP32[$4>>2] = 1732584193;
$5 = $hd;
$6 = ((($5)) + 164|0);
HEAP32[$6>>2] = -271733879;
$7 = $hd;
$8 = ((($7)) + 168|0);
HEAP32[$8>>2] = -1732584194;
$9 = $hd;
$10 = ((($9)) + 172|0);
HEAP32[$10>>2] = 271733878;
$11 = $hd;
$12 = ((($11)) + 176|0);
HEAP32[$12>>2] = -1009589776;
$13 = $hd;
$14 = ((($13)) + 128|0);
$15 = $14;
$16 = $15;
HEAP32[$16>>2] = 0;
$17 = (($15) + 4)|0;
$18 = $17;
HEAP32[$18>>2] = 0;
$19 = $hd;
$20 = ((($19)) + 136|0);
$21 = $20;
$22 = $21;
HEAP32[$22>>2] = 0;
$23 = (($21) + 4)|0;
$24 = $23;
HEAP32[$24>>2] = 0;
$25 = $hd;
$26 = ((($25)) + 144|0);
HEAP32[$26>>2] = 0;
$27 = $hd;
$28 = ((($27)) + 148|0);
HEAP32[$28>>2] = 64;
$29 = $hd;
$30 = ((($29)) + 152|0);
HEAP32[$30>>2] = 72;
STACKTOP = sp;return;
}
function _transform($c,$data,$nblks) {
$c = $c|0;
$data = $data|0;
$nblks = $nblks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $data;
$2 = $nblks;
while(1) {
$3 = $0;
$4 = $1;
$5 = (_transform_blk($3,$4)|0);
$burn = $5;
$6 = $1;
$7 = ((($6)) + 64|0);
$1 = $7;
$8 = $2;
$9 = (($8) + -1)|0;
$2 = $9;
$10 = ($9|0)!=(0);
if (!($10)) {
break;
}
}
$11 = $burn;
STACKTOP = sp;return ($11|0);
}
function _transform_blk($ctx,$data) {
$ctx = $ctx|0;
$data = $data|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0;
var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0;
var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0;
var $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0;
var $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0;
var $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0;
var $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0;
var $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0;
var $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0;
var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0;
var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0;
var $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0;
var $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0;
var $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0;
var $1718 = 0, $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, $1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0;
var $1736 = 0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0;
var $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0;
var $1772 = 0, $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0;
var $1790 = 0, $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0;
var $1808 = 0, $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0;
var $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, $1839 = 0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0;
var $1844 = 0, $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0;
var $1862 = 0, $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0;
var $1880 = 0, $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, $1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0;
var $1899 = 0, $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, $1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, $1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0;
var $1916 = 0, $1917 = 0, $1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0;
var $1934 = 0, $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0;
var $1952 = 0, $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0;
var $1970 = 0, $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0;
var $1989 = 0, $199 = 0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0;
var $2005 = 0, $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, $2019 = 0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0;
var $2023 = 0, $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0;
var $2041 = 0, $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0;
var $206 = 0, $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, $2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0;
var $2078 = 0, $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0;
var $2096 = 0, $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0;
var $2113 = 0, $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0;
var $2131 = 0, $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0;
var $215 = 0, $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0;
var $2168 = 0, $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0;
var $2186 = 0, $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0;
var $2203 = 0, $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0;
var $2221 = 0, $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $2226 = 0, $2227 = 0, $2228 = 0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0;
var $224 = 0, $2240 = 0, $2241 = 0, $2242 = 0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2253 = 0, $2254 = 0, $2255 = 0, $2256 = 0, $2257 = 0;
var $2258 = 0, $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2262 = 0, $2263 = 0, $2264 = 0, $2265 = 0, $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, $227 = 0, $2270 = 0, $2271 = 0, $2272 = 0, $2273 = 0, $2274 = 0, $2275 = 0;
var $2276 = 0, $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2281 = 0, $2282 = 0, $2283 = 0, $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, $2288 = 0, $2289 = 0, $229 = 0, $2290 = 0, $2291 = 0, $2292 = 0, $2293 = 0;
var $2294 = 0, $2295 = 0, $2296 = 0, $2297 = 0, $2298 = 0, $2299 = 0, $23 = 0, $230 = 0, $2300 = 0, $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, $2305 = 0, $2306 = 0, $2307 = 0, $2308 = 0, $2309 = 0, $231 = 0, $2310 = 0;
var $2311 = 0, $2312 = 0, $2313 = 0, $2314 = 0, $2315 = 0, $2316 = 0, $2317 = 0, $2318 = 0, $2319 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, $2323 = 0, $2324 = 0, $2325 = 0, $2326 = 0, $2327 = 0, $2328 = 0, $2329 = 0;
var $233 = 0, $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0, $2334 = 0, $2335 = 0, $2336 = 0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, $2341 = 0, $2342 = 0, $2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0, $2347 = 0;
var $2348 = 0, $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0, $2360 = 0, $2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0;
var $2366 = 0, $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, $238 = 0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0;
var $2384 = 0, $2385 = 0, $2386 = 0, $2387 = 0, $2388 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0, $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $24 = 0, $240 = 0, $2400 = 0;
var $2401 = 0, $2402 = 0, $2403 = 0, $2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2408 = 0, $2409 = 0, $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 0, $2416 = 0, $2417 = 0, $2418 = 0, $2419 = 0;
var $242 = 0, $2420 = 0, $2421 = 0, $2422 = 0, $2423 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, $2431 = 0, $2432 = 0, $2433 = 0, $2434 = 0, $2435 = 0, $2436 = 0, $2437 = 0;
var $2438 = 0, $2439 = 0, $244 = 0, $2440 = 0, $2441 = 0, $2442 = 0, $2443 = 0, $2444 = 0, $2445 = 0, $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2450 = 0, $2451 = 0, $2452 = 0, $2453 = 0, $2454 = 0, $2455 = 0;
var $2456 = 0, $2457 = 0, $2458 = 0, $2459 = 0, $246 = 0, $2460 = 0, $2461 = 0, $2462 = 0, $2463 = 0, $2464 = 0, $2465 = 0, $2466 = 0, $2467 = 0, $2468 = 0, $2469 = 0, $247 = 0, $2470 = 0, $2471 = 0, $2472 = 0, $2473 = 0;
var $2474 = 0, $2475 = 0, $2476 = 0, $2477 = 0, $2478 = 0, $2479 = 0, $248 = 0, $2480 = 0, $2481 = 0, $2482 = 0, $2483 = 0, $2484 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2489 = 0, $249 = 0, $2490 = 0, $2491 = 0;
var $2492 = 0, $2493 = 0, $2494 = 0, $2495 = 0, $2496 = 0, $2497 = 0, $2498 = 0, $2499 = 0, $25 = 0, $250 = 0, $2500 = 0, $2501 = 0, $2502 = 0, $2503 = 0, $2504 = 0, $2505 = 0, $2506 = 0, $2507 = 0, $2508 = 0, $2509 = 0;
var $251 = 0, $2510 = 0, $2511 = 0, $2512 = 0, $2513 = 0, $2514 = 0, $2515 = 0, $2516 = 0, $2517 = 0, $2518 = 0, $2519 = 0, $252 = 0, $2520 = 0, $2521 = 0, $2522 = 0, $2523 = 0, $2524 = 0, $2525 = 0, $2526 = 0, $2527 = 0;
var $2528 = 0, $2529 = 0, $253 = 0, $2530 = 0, $2531 = 0, $2532 = 0, $2533 = 0, $2534 = 0, $2535 = 0, $2536 = 0, $2537 = 0, $2538 = 0, $2539 = 0, $254 = 0, $2540 = 0, $2541 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0;
var $2546 = 0, $2547 = 0, $2548 = 0, $2549 = 0, $255 = 0, $2550 = 0, $2551 = 0, $2552 = 0, $2553 = 0, $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0, $2558 = 0, $2559 = 0, $256 = 0, $2560 = 0, $2561 = 0, $2562 = 0, $2563 = 0;
var $2564 = 0, $2565 = 0, $2566 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $257 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $2574 = 0, $2575 = 0, $2576 = 0, $2577 = 0, $2578 = 0, $2579 = 0, $258 = 0, $2580 = 0, $2581 = 0;
var $2582 = 0, $2583 = 0, $2584 = 0, $2585 = 0, $2586 = 0, $2587 = 0, $2588 = 0, $2589 = 0, $259 = 0, $2590 = 0, $2591 = 0, $2592 = 0, $2593 = 0, $2594 = 0, $2595 = 0, $2596 = 0, $2597 = 0, $2598 = 0, $2599 = 0, $26 = 0;
var $260 = 0, $2600 = 0, $2601 = 0, $2602 = 0, $2603 = 0, $2604 = 0, $2605 = 0, $2606 = 0, $2607 = 0, $2608 = 0, $2609 = 0, $261 = 0, $2610 = 0, $2611 = 0, $2612 = 0, $2613 = 0, $2614 = 0, $2615 = 0, $2616 = 0, $2617 = 0;
var $2618 = 0, $2619 = 0, $262 = 0, $2620 = 0, $2621 = 0, $2622 = 0, $2623 = 0, $2624 = 0, $2625 = 0, $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, $263 = 0, $2630 = 0, $2631 = 0, $2632 = 0, $2633 = 0, $2634 = 0, $2635 = 0;
var $2636 = 0, $2637 = 0, $2638 = 0, $2639 = 0, $264 = 0, $2640 = 0, $2641 = 0, $2642 = 0, $2643 = 0, $2644 = 0, $2645 = 0, $2646 = 0, $2647 = 0, $2648 = 0, $2649 = 0, $265 = 0, $2650 = 0, $2651 = 0, $2652 = 0, $2653 = 0;
var $2654 = 0, $2655 = 0, $2656 = 0, $2657 = 0, $2658 = 0, $2659 = 0, $266 = 0, $2660 = 0, $2661 = 0, $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, $2666 = 0, $2667 = 0, $2668 = 0, $2669 = 0, $267 = 0, $2670 = 0, $2671 = 0;
var $2672 = 0, $2673 = 0, $2674 = 0, $2675 = 0, $2676 = 0, $2677 = 0, $2678 = 0, $2679 = 0, $268 = 0, $2680 = 0, $2681 = 0, $2682 = 0, $2683 = 0, $2684 = 0, $2685 = 0, $2686 = 0, $2687 = 0, $2688 = 0, $2689 = 0, $269 = 0;
var $2690 = 0, $2691 = 0, $2692 = 0, $2693 = 0, $2694 = 0, $2695 = 0, $2696 = 0, $2697 = 0, $2698 = 0, $2699 = 0, $27 = 0, $270 = 0, $2700 = 0, $2701 = 0, $2702 = 0, $2703 = 0, $2704 = 0, $2705 = 0, $2706 = 0, $2707 = 0;
var $2708 = 0, $2709 = 0, $271 = 0, $2710 = 0, $2711 = 0, $2712 = 0, $2713 = 0, $2714 = 0, $2715 = 0, $2716 = 0, $2717 = 0, $2718 = 0, $2719 = 0, $272 = 0, $2720 = 0, $2721 = 0, $2722 = 0, $2723 = 0, $2724 = 0, $2725 = 0;
var $2726 = 0, $2727 = 0, $2728 = 0, $2729 = 0, $273 = 0, $2730 = 0, $2731 = 0, $2732 = 0, $2733 = 0, $2734 = 0, $2735 = 0, $2736 = 0, $2737 = 0, $2738 = 0, $2739 = 0, $274 = 0, $2740 = 0, $2741 = 0, $2742 = 0, $2743 = 0;
var $2744 = 0, $2745 = 0, $2746 = 0, $2747 = 0, $2748 = 0, $2749 = 0, $275 = 0, $2750 = 0, $2751 = 0, $2752 = 0, $2753 = 0, $2754 = 0, $2755 = 0, $2756 = 0, $2757 = 0, $2758 = 0, $2759 = 0, $276 = 0, $2760 = 0, $2761 = 0;
var $2762 = 0, $2763 = 0, $2764 = 0, $2765 = 0, $2766 = 0, $2767 = 0, $2768 = 0, $2769 = 0, $277 = 0, $2770 = 0, $2771 = 0, $2772 = 0, $2773 = 0, $2774 = 0, $2775 = 0, $2776 = 0, $2777 = 0, $2778 = 0, $2779 = 0, $278 = 0;
var $2780 = 0, $2781 = 0, $2782 = 0, $2783 = 0, $2784 = 0, $2785 = 0, $2786 = 0, $2787 = 0, $2788 = 0, $2789 = 0, $279 = 0, $2790 = 0, $2791 = 0, $2792 = 0, $2793 = 0, $2794 = 0, $2795 = 0, $2796 = 0, $2797 = 0, $2798 = 0;
var $2799 = 0, $28 = 0, $280 = 0, $2800 = 0, $2801 = 0, $2802 = 0, $2803 = 0, $2804 = 0, $2805 = 0, $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0, $281 = 0, $2810 = 0, $2811 = 0, $2812 = 0, $2813 = 0, $2814 = 0, $2815 = 0;
var $2816 = 0, $2817 = 0, $2818 = 0, $2819 = 0, $282 = 0, $2820 = 0, $2821 = 0, $2822 = 0, $2823 = 0, $2824 = 0, $2825 = 0, $2826 = 0, $2827 = 0, $2828 = 0, $2829 = 0, $283 = 0, $2830 = 0, $2831 = 0, $2832 = 0, $2833 = 0;
var $2834 = 0, $2835 = 0, $2836 = 0, $2837 = 0, $2838 = 0, $2839 = 0, $284 = 0, $2840 = 0, $2841 = 0, $2842 = 0, $2843 = 0, $2844 = 0, $2845 = 0, $2846 = 0, $2847 = 0, $2848 = 0, $2849 = 0, $285 = 0, $2850 = 0, $2851 = 0;
var $2852 = 0, $2853 = 0, $2854 = 0, $2855 = 0, $2856 = 0, $2857 = 0, $2858 = 0, $2859 = 0, $286 = 0, $2860 = 0, $2861 = 0, $2862 = 0, $2863 = 0, $2864 = 0, $2865 = 0, $2866 = 0, $2867 = 0, $2868 = 0, $2869 = 0, $287 = 0;
var $2870 = 0, $2871 = 0, $2872 = 0, $2873 = 0, $2874 = 0, $2875 = 0, $2876 = 0, $2877 = 0, $2878 = 0, $2879 = 0, $288 = 0, $2880 = 0, $2881 = 0, $2882 = 0, $2883 = 0, $2884 = 0, $2885 = 0, $2886 = 0, $2887 = 0, $2888 = 0;
var $2889 = 0, $289 = 0, $2890 = 0, $2891 = 0, $2892 = 0, $2893 = 0, $2894 = 0, $2895 = 0, $2896 = 0, $2897 = 0, $2898 = 0, $2899 = 0, $29 = 0, $290 = 0, $2900 = 0, $2901 = 0, $2902 = 0, $2903 = 0, $2904 = 0, $2905 = 0;
var $2906 = 0, $2907 = 0, $2908 = 0, $2909 = 0, $291 = 0, $2910 = 0, $2911 = 0, $2912 = 0, $2913 = 0, $2914 = 0, $2915 = 0, $2916 = 0, $2917 = 0, $2918 = 0, $2919 = 0, $292 = 0, $2920 = 0, $2921 = 0, $2922 = 0, $2923 = 0;
var $2924 = 0, $2925 = 0, $2926 = 0, $2927 = 0, $2928 = 0, $2929 = 0, $293 = 0, $2930 = 0, $2931 = 0, $2932 = 0, $2933 = 0, $2934 = 0, $2935 = 0, $2936 = 0, $2937 = 0, $2938 = 0, $2939 = 0, $294 = 0, $2940 = 0, $2941 = 0;
var $2942 = 0, $2943 = 0, $2944 = 0, $2945 = 0, $2946 = 0, $2947 = 0, $2948 = 0, $2949 = 0, $295 = 0, $2950 = 0, $2951 = 0, $2952 = 0, $2953 = 0, $2954 = 0, $2955 = 0, $2956 = 0, $2957 = 0, $2958 = 0, $2959 = 0, $296 = 0;
var $2960 = 0, $2961 = 0, $2962 = 0, $2963 = 0, $2964 = 0, $2965 = 0, $2966 = 0, $2967 = 0, $2968 = 0, $2969 = 0, $297 = 0, $2970 = 0, $2971 = 0, $2972 = 0, $2973 = 0, $2974 = 0, $2975 = 0, $2976 = 0, $2977 = 0, $2978 = 0;
var $2979 = 0, $298 = 0, $2980 = 0, $2981 = 0, $2982 = 0, $2983 = 0, $2984 = 0, $2985 = 0, $2986 = 0, $2987 = 0, $2988 = 0, $2989 = 0, $299 = 0, $2990 = 0, $2991 = 0, $2992 = 0, $2993 = 0, $2994 = 0, $2995 = 0, $2996 = 0;
var $2997 = 0, $2998 = 0, $2999 = 0, $3 = 0, $30 = 0, $300 = 0, $3000 = 0, $3001 = 0, $3002 = 0, $3003 = 0, $3004 = 0, $3005 = 0, $3006 = 0, $3007 = 0, $3008 = 0, $3009 = 0, $301 = 0, $3010 = 0, $3011 = 0, $3012 = 0;
var $3013 = 0, $3014 = 0, $3015 = 0, $3016 = 0, $3017 = 0, $3018 = 0, $3019 = 0, $302 = 0, $3020 = 0, $3021 = 0, $3022 = 0, $3023 = 0, $3024 = 0, $3025 = 0, $3026 = 0, $3027 = 0, $3028 = 0, $3029 = 0, $303 = 0, $3030 = 0;
var $3031 = 0, $3032 = 0, $3033 = 0, $3034 = 0, $3035 = 0, $3036 = 0, $3037 = 0, $3038 = 0, $3039 = 0, $304 = 0, $3040 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0;
var $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0;
var $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0;
var $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0;
var $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0;
var $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0;
var $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0;
var $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0;
var $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0;
var $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0;
var $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0;
var $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0;
var $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0;
var $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0;
var $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0;
var $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0;
var $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0;
var $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0;
var $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0;
var $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0;
var $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0;
var $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0;
var $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0;
var $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0;
var $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0;
var $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0;
var $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0;
var $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0;
var $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0;
var $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0;
var $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0;
var $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0;
var $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0;
var $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0;
var $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0;
var $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0;
var $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0;
var $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0;
var $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0;
var $999 = 0, $al = 0, $ar = 0, $bl = 0, $br = 0, $cl = 0, $cr = 0, $dl = 0, $dr = 0, $el = 0, $er = 0, $hd = 0, $i = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$x = sp + 8|0;
$0 = $ctx;
$1 = $data;
$2 = $0;
$hd = $2;
$i = 0;
while(1) {
$3 = $i;
$4 = ($3|0)<(16);
if (!($4)) {
break;
}
$5 = $1;
$6 = $i;
$7 = $6<<2;
$8 = (($5) + ($7)|0);
$9 = (_buf_get_le32_1220($8)|0);
$10 = $i;
$11 = (($x) + ($10<<2)|0);
HEAP32[$11>>2] = $9;
$12 = $i;
$13 = (($12) + 1)|0;
$i = $13;
}
$14 = $hd;
$15 = ((($14)) + 160|0);
$16 = HEAP32[$15>>2]|0;
$ar = $16;
$al = $16;
$17 = $hd;
$18 = ((($17)) + 164|0);
$19 = HEAP32[$18>>2]|0;
$br = $19;
$bl = $19;
$20 = $hd;
$21 = ((($20)) + 168|0);
$22 = HEAP32[$21>>2]|0;
$cr = $22;
$cl = $22;
$23 = $hd;
$24 = ((($23)) + 172|0);
$25 = HEAP32[$24>>2]|0;
$dr = $25;
$dl = $25;
$26 = $hd;
$27 = ((($26)) + 176|0);
$28 = HEAP32[$27>>2]|0;
$er = $28;
$el = $28;
$29 = $bl;
$30 = $cl;
$31 = $29 ^ $30;
$32 = $dl;
$33 = $31 ^ $32;
$34 = (($33) + 0)|0;
$35 = HEAP32[$x>>2]|0;
$36 = (($34) + ($35))|0;
$37 = $al;
$38 = (($37) + ($36))|0;
$al = $38;
$39 = $al;
$40 = (_rol_1221($39,11)|0);
$41 = $el;
$42 = (($40) + ($41))|0;
$al = $42;
$43 = $cl;
$44 = (_rol_1221($43,10)|0);
$cl = $44;
$45 = $br;
$46 = $cr;
$47 = $dr;
$48 = $47 ^ -1;
$49 = $46 | $48;
$50 = $45 ^ $49;
$51 = (($50) + 1352829926)|0;
$52 = ((($x)) + 20|0);
$53 = HEAP32[$52>>2]|0;
$54 = (($51) + ($53))|0;
$55 = $ar;
$56 = (($55) + ($54))|0;
$ar = $56;
$57 = $ar;
$58 = (_rol_1221($57,8)|0);
$59 = $er;
$60 = (($58) + ($59))|0;
$ar = $60;
$61 = $cr;
$62 = (_rol_1221($61,10)|0);
$cr = $62;
$63 = $al;
$64 = $bl;
$65 = $63 ^ $64;
$66 = $cl;
$67 = $65 ^ $66;
$68 = (($67) + 0)|0;
$69 = ((($x)) + 4|0);
$70 = HEAP32[$69>>2]|0;
$71 = (($68) + ($70))|0;
$72 = $el;
$73 = (($72) + ($71))|0;
$el = $73;
$74 = $el;
$75 = (_rol_1221($74,14)|0);
$76 = $dl;
$77 = (($75) + ($76))|0;
$el = $77;
$78 = $bl;
$79 = (_rol_1221($78,10)|0);
$bl = $79;
$80 = $ar;
$81 = $br;
$82 = $cr;
$83 = $82 ^ -1;
$84 = $81 | $83;
$85 = $80 ^ $84;
$86 = (($85) + 1352829926)|0;
$87 = ((($x)) + 56|0);
$88 = HEAP32[$87>>2]|0;
$89 = (($86) + ($88))|0;
$90 = $er;
$91 = (($90) + ($89))|0;
$er = $91;
$92 = $er;
$93 = (_rol_1221($92,9)|0);
$94 = $dr;
$95 = (($93) + ($94))|0;
$er = $95;
$96 = $br;
$97 = (_rol_1221($96,10)|0);
$br = $97;
$98 = $el;
$99 = $al;
$100 = $98 ^ $99;
$101 = $bl;
$102 = $100 ^ $101;
$103 = (($102) + 0)|0;
$104 = ((($x)) + 8|0);
$105 = HEAP32[$104>>2]|0;
$106 = (($103) + ($105))|0;
$107 = $dl;
$108 = (($107) + ($106))|0;
$dl = $108;
$109 = $dl;
$110 = (_rol_1221($109,15)|0);
$111 = $cl;
$112 = (($110) + ($111))|0;
$dl = $112;
$113 = $al;
$114 = (_rol_1221($113,10)|0);
$al = $114;
$115 = $er;
$116 = $ar;
$117 = $br;
$118 = $117 ^ -1;
$119 = $116 | $118;
$120 = $115 ^ $119;
$121 = (($120) + 1352829926)|0;
$122 = ((($x)) + 28|0);
$123 = HEAP32[$122>>2]|0;
$124 = (($121) + ($123))|0;
$125 = $dr;
$126 = (($125) + ($124))|0;
$dr = $126;
$127 = $dr;
$128 = (_rol_1221($127,9)|0);
$129 = $cr;
$130 = (($128) + ($129))|0;
$dr = $130;
$131 = $ar;
$132 = (_rol_1221($131,10)|0);
$ar = $132;
$133 = $dl;
$134 = $el;
$135 = $133 ^ $134;
$136 = $al;
$137 = $135 ^ $136;
$138 = (($137) + 0)|0;
$139 = ((($x)) + 12|0);
$140 = HEAP32[$139>>2]|0;
$141 = (($138) + ($140))|0;
$142 = $cl;
$143 = (($142) + ($141))|0;
$cl = $143;
$144 = $cl;
$145 = (_rol_1221($144,12)|0);
$146 = $bl;
$147 = (($145) + ($146))|0;
$cl = $147;
$148 = $el;
$149 = (_rol_1221($148,10)|0);
$el = $149;
$150 = $dr;
$151 = $er;
$152 = $ar;
$153 = $152 ^ -1;
$154 = $151 | $153;
$155 = $150 ^ $154;
$156 = (($155) + 1352829926)|0;
$157 = HEAP32[$x>>2]|0;
$158 = (($156) + ($157))|0;
$159 = $cr;
$160 = (($159) + ($158))|0;
$cr = $160;
$161 = $cr;
$162 = (_rol_1221($161,11)|0);
$163 = $br;
$164 = (($162) + ($163))|0;
$cr = $164;
$165 = $er;
$166 = (_rol_1221($165,10)|0);
$er = $166;
$167 = $cl;
$168 = $dl;
$169 = $167 ^ $168;
$170 = $el;
$171 = $169 ^ $170;
$172 = (($171) + 0)|0;
$173 = ((($x)) + 16|0);
$174 = HEAP32[$173>>2]|0;
$175 = (($172) + ($174))|0;
$176 = $bl;
$177 = (($176) + ($175))|0;
$bl = $177;
$178 = $bl;
$179 = (_rol_1221($178,5)|0);
$180 = $al;
$181 = (($179) + ($180))|0;
$bl = $181;
$182 = $dl;
$183 = (_rol_1221($182,10)|0);
$dl = $183;
$184 = $cr;
$185 = $dr;
$186 = $er;
$187 = $186 ^ -1;
$188 = $185 | $187;
$189 = $184 ^ $188;
$190 = (($189) + 1352829926)|0;
$191 = ((($x)) + 36|0);
$192 = HEAP32[$191>>2]|0;
$193 = (($190) + ($192))|0;
$194 = $br;
$195 = (($194) + ($193))|0;
$br = $195;
$196 = $br;
$197 = (_rol_1221($196,13)|0);
$198 = $ar;
$199 = (($197) + ($198))|0;
$br = $199;
$200 = $dr;
$201 = (_rol_1221($200,10)|0);
$dr = $201;
$202 = $bl;
$203 = $cl;
$204 = $202 ^ $203;
$205 = $dl;
$206 = $204 ^ $205;
$207 = (($206) + 0)|0;
$208 = ((($x)) + 20|0);
$209 = HEAP32[$208>>2]|0;
$210 = (($207) + ($209))|0;
$211 = $al;
$212 = (($211) + ($210))|0;
$al = $212;
$213 = $al;
$214 = (_rol_1221($213,8)|0);
$215 = $el;
$216 = (($214) + ($215))|0;
$al = $216;
$217 = $cl;
$218 = (_rol_1221($217,10)|0);
$cl = $218;
$219 = $br;
$220 = $cr;
$221 = $dr;
$222 = $221 ^ -1;
$223 = $220 | $222;
$224 = $219 ^ $223;
$225 = (($224) + 1352829926)|0;
$226 = ((($x)) + 8|0);
$227 = HEAP32[$226>>2]|0;
$228 = (($225) + ($227))|0;
$229 = $ar;
$230 = (($229) + ($228))|0;
$ar = $230;
$231 = $ar;
$232 = (_rol_1221($231,15)|0);
$233 = $er;
$234 = (($232) + ($233))|0;
$ar = $234;
$235 = $cr;
$236 = (_rol_1221($235,10)|0);
$cr = $236;
$237 = $al;
$238 = $bl;
$239 = $237 ^ $238;
$240 = $cl;
$241 = $239 ^ $240;
$242 = (($241) + 0)|0;
$243 = ((($x)) + 24|0);
$244 = HEAP32[$243>>2]|0;
$245 = (($242) + ($244))|0;
$246 = $el;
$247 = (($246) + ($245))|0;
$el = $247;
$248 = $el;
$249 = (_rol_1221($248,7)|0);
$250 = $dl;
$251 = (($249) + ($250))|0;
$el = $251;
$252 = $bl;
$253 = (_rol_1221($252,10)|0);
$bl = $253;
$254 = $ar;
$255 = $br;
$256 = $cr;
$257 = $256 ^ -1;
$258 = $255 | $257;
$259 = $254 ^ $258;
$260 = (($259) + 1352829926)|0;
$261 = ((($x)) + 44|0);
$262 = HEAP32[$261>>2]|0;
$263 = (($260) + ($262))|0;
$264 = $er;
$265 = (($264) + ($263))|0;
$er = $265;
$266 = $er;
$267 = (_rol_1221($266,15)|0);
$268 = $dr;
$269 = (($267) + ($268))|0;
$er = $269;
$270 = $br;
$271 = (_rol_1221($270,10)|0);
$br = $271;
$272 = $el;
$273 = $al;
$274 = $272 ^ $273;
$275 = $bl;
$276 = $274 ^ $275;
$277 = (($276) + 0)|0;
$278 = ((($x)) + 28|0);
$279 = HEAP32[$278>>2]|0;
$280 = (($277) + ($279))|0;
$281 = $dl;
$282 = (($281) + ($280))|0;
$dl = $282;
$283 = $dl;
$284 = (_rol_1221($283,9)|0);
$285 = $cl;
$286 = (($284) + ($285))|0;
$dl = $286;
$287 = $al;
$288 = (_rol_1221($287,10)|0);
$al = $288;
$289 = $er;
$290 = $ar;
$291 = $br;
$292 = $291 ^ -1;
$293 = $290 | $292;
$294 = $289 ^ $293;
$295 = (($294) + 1352829926)|0;
$296 = ((($x)) + 16|0);
$297 = HEAP32[$296>>2]|0;
$298 = (($295) + ($297))|0;
$299 = $dr;
$300 = (($299) + ($298))|0;
$dr = $300;
$301 = $dr;
$302 = (_rol_1221($301,5)|0);
$303 = $cr;
$304 = (($302) + ($303))|0;
$dr = $304;
$305 = $ar;
$306 = (_rol_1221($305,10)|0);
$ar = $306;
$307 = $dl;
$308 = $el;
$309 = $307 ^ $308;
$310 = $al;
$311 = $309 ^ $310;
$312 = (($311) + 0)|0;
$313 = ((($x)) + 32|0);
$314 = HEAP32[$313>>2]|0;
$315 = (($312) + ($314))|0;
$316 = $cl;
$317 = (($316) + ($315))|0;
$cl = $317;
$318 = $cl;
$319 = (_rol_1221($318,11)|0);
$320 = $bl;
$321 = (($319) + ($320))|0;
$cl = $321;
$322 = $el;
$323 = (_rol_1221($322,10)|0);
$el = $323;
$324 = $dr;
$325 = $er;
$326 = $ar;
$327 = $326 ^ -1;
$328 = $325 | $327;
$329 = $324 ^ $328;
$330 = (($329) + 1352829926)|0;
$331 = ((($x)) + 52|0);
$332 = HEAP32[$331>>2]|0;
$333 = (($330) + ($332))|0;
$334 = $cr;
$335 = (($334) + ($333))|0;
$cr = $335;
$336 = $cr;
$337 = (_rol_1221($336,7)|0);
$338 = $br;
$339 = (($337) + ($338))|0;
$cr = $339;
$340 = $er;
$341 = (_rol_1221($340,10)|0);
$er = $341;
$342 = $cl;
$343 = $dl;
$344 = $342 ^ $343;
$345 = $el;
$346 = $344 ^ $345;
$347 = (($346) + 0)|0;
$348 = ((($x)) + 36|0);
$349 = HEAP32[$348>>2]|0;
$350 = (($347) + ($349))|0;
$351 = $bl;
$352 = (($351) + ($350))|0;
$bl = $352;
$353 = $bl;
$354 = (_rol_1221($353,13)|0);
$355 = $al;
$356 = (($354) + ($355))|0;
$bl = $356;
$357 = $dl;
$358 = (_rol_1221($357,10)|0);
$dl = $358;
$359 = $cr;
$360 = $dr;
$361 = $er;
$362 = $361 ^ -1;
$363 = $360 | $362;
$364 = $359 ^ $363;
$365 = (($364) + 1352829926)|0;
$366 = ((($x)) + 24|0);
$367 = HEAP32[$366>>2]|0;
$368 = (($365) + ($367))|0;
$369 = $br;
$370 = (($369) + ($368))|0;
$br = $370;
$371 = $br;
$372 = (_rol_1221($371,7)|0);
$373 = $ar;
$374 = (($372) + ($373))|0;
$br = $374;
$375 = $dr;
$376 = (_rol_1221($375,10)|0);
$dr = $376;
$377 = $bl;
$378 = $cl;
$379 = $377 ^ $378;
$380 = $dl;
$381 = $379 ^ $380;
$382 = (($381) + 0)|0;
$383 = ((($x)) + 40|0);
$384 = HEAP32[$383>>2]|0;
$385 = (($382) + ($384))|0;
$386 = $al;
$387 = (($386) + ($385))|0;
$al = $387;
$388 = $al;
$389 = (_rol_1221($388,14)|0);
$390 = $el;
$391 = (($389) + ($390))|0;
$al = $391;
$392 = $cl;
$393 = (_rol_1221($392,10)|0);
$cl = $393;
$394 = $br;
$395 = $cr;
$396 = $dr;
$397 = $396 ^ -1;
$398 = $395 | $397;
$399 = $394 ^ $398;
$400 = (($399) + 1352829926)|0;
$401 = ((($x)) + 60|0);
$402 = HEAP32[$401>>2]|0;
$403 = (($400) + ($402))|0;
$404 = $ar;
$405 = (($404) + ($403))|0;
$ar = $405;
$406 = $ar;
$407 = (_rol_1221($406,8)|0);
$408 = $er;
$409 = (($407) + ($408))|0;
$ar = $409;
$410 = $cr;
$411 = (_rol_1221($410,10)|0);
$cr = $411;
$412 = $al;
$413 = $bl;
$414 = $412 ^ $413;
$415 = $cl;
$416 = $414 ^ $415;
$417 = (($416) + 0)|0;
$418 = ((($x)) + 44|0);
$419 = HEAP32[$418>>2]|0;
$420 = (($417) + ($419))|0;
$421 = $el;
$422 = (($421) + ($420))|0;
$el = $422;
$423 = $el;
$424 = (_rol_1221($423,15)|0);
$425 = $dl;
$426 = (($424) + ($425))|0;
$el = $426;
$427 = $bl;
$428 = (_rol_1221($427,10)|0);
$bl = $428;
$429 = $ar;
$430 = $br;
$431 = $cr;
$432 = $431 ^ -1;
$433 = $430 | $432;
$434 = $429 ^ $433;
$435 = (($434) + 1352829926)|0;
$436 = ((($x)) + 32|0);
$437 = HEAP32[$436>>2]|0;
$438 = (($435) + ($437))|0;
$439 = $er;
$440 = (($439) + ($438))|0;
$er = $440;
$441 = $er;
$442 = (_rol_1221($441,11)|0);
$443 = $dr;
$444 = (($442) + ($443))|0;
$er = $444;
$445 = $br;
$446 = (_rol_1221($445,10)|0);
$br = $446;
$447 = $el;
$448 = $al;
$449 = $447 ^ $448;
$450 = $bl;
$451 = $449 ^ $450;
$452 = (($451) + 0)|0;
$453 = ((($x)) + 48|0);
$454 = HEAP32[$453>>2]|0;
$455 = (($452) + ($454))|0;
$456 = $dl;
$457 = (($456) + ($455))|0;
$dl = $457;
$458 = $dl;
$459 = (_rol_1221($458,6)|0);
$460 = $cl;
$461 = (($459) + ($460))|0;
$dl = $461;
$462 = $al;
$463 = (_rol_1221($462,10)|0);
$al = $463;
$464 = $er;
$465 = $ar;
$466 = $br;
$467 = $466 ^ -1;
$468 = $465 | $467;
$469 = $464 ^ $468;
$470 = (($469) + 1352829926)|0;
$471 = ((($x)) + 4|0);
$472 = HEAP32[$471>>2]|0;
$473 = (($470) + ($472))|0;
$474 = $dr;
$475 = (($474) + ($473))|0;
$dr = $475;
$476 = $dr;
$477 = (_rol_1221($476,14)|0);
$478 = $cr;
$479 = (($477) + ($478))|0;
$dr = $479;
$480 = $ar;
$481 = (_rol_1221($480,10)|0);
$ar = $481;
$482 = $dl;
$483 = $el;
$484 = $482 ^ $483;
$485 = $al;
$486 = $484 ^ $485;
$487 = (($486) + 0)|0;
$488 = ((($x)) + 52|0);
$489 = HEAP32[$488>>2]|0;
$490 = (($487) + ($489))|0;
$491 = $cl;
$492 = (($491) + ($490))|0;
$cl = $492;
$493 = $cl;
$494 = (_rol_1221($493,7)|0);
$495 = $bl;
$496 = (($494) + ($495))|0;
$cl = $496;
$497 = $el;
$498 = (_rol_1221($497,10)|0);
$el = $498;
$499 = $dr;
$500 = $er;
$501 = $ar;
$502 = $501 ^ -1;
$503 = $500 | $502;
$504 = $499 ^ $503;
$505 = (($504) + 1352829926)|0;
$506 = ((($x)) + 40|0);
$507 = HEAP32[$506>>2]|0;
$508 = (($505) + ($507))|0;
$509 = $cr;
$510 = (($509) + ($508))|0;
$cr = $510;
$511 = $cr;
$512 = (_rol_1221($511,14)|0);
$513 = $br;
$514 = (($512) + ($513))|0;
$cr = $514;
$515 = $er;
$516 = (_rol_1221($515,10)|0);
$er = $516;
$517 = $cl;
$518 = $dl;
$519 = $517 ^ $518;
$520 = $el;
$521 = $519 ^ $520;
$522 = (($521) + 0)|0;
$523 = ((($x)) + 56|0);
$524 = HEAP32[$523>>2]|0;
$525 = (($522) + ($524))|0;
$526 = $bl;
$527 = (($526) + ($525))|0;
$bl = $527;
$528 = $bl;
$529 = (_rol_1221($528,9)|0);
$530 = $al;
$531 = (($529) + ($530))|0;
$bl = $531;
$532 = $dl;
$533 = (_rol_1221($532,10)|0);
$dl = $533;
$534 = $cr;
$535 = $dr;
$536 = $er;
$537 = $536 ^ -1;
$538 = $535 | $537;
$539 = $534 ^ $538;
$540 = (($539) + 1352829926)|0;
$541 = ((($x)) + 12|0);
$542 = HEAP32[$541>>2]|0;
$543 = (($540) + ($542))|0;
$544 = $br;
$545 = (($544) + ($543))|0;
$br = $545;
$546 = $br;
$547 = (_rol_1221($546,12)|0);
$548 = $ar;
$549 = (($547) + ($548))|0;
$br = $549;
$550 = $dr;
$551 = (_rol_1221($550,10)|0);
$dr = $551;
$552 = $bl;
$553 = $cl;
$554 = $552 ^ $553;
$555 = $dl;
$556 = $554 ^ $555;
$557 = (($556) + 0)|0;
$558 = ((($x)) + 60|0);
$559 = HEAP32[$558>>2]|0;
$560 = (($557) + ($559))|0;
$561 = $al;
$562 = (($561) + ($560))|0;
$al = $562;
$563 = $al;
$564 = (_rol_1221($563,8)|0);
$565 = $el;
$566 = (($564) + ($565))|0;
$al = $566;
$567 = $cl;
$568 = (_rol_1221($567,10)|0);
$cl = $568;
$569 = $br;
$570 = $cr;
$571 = $dr;
$572 = $571 ^ -1;
$573 = $570 | $572;
$574 = $569 ^ $573;
$575 = (($574) + 1352829926)|0;
$576 = ((($x)) + 48|0);
$577 = HEAP32[$576>>2]|0;
$578 = (($575) + ($577))|0;
$579 = $ar;
$580 = (($579) + ($578))|0;
$ar = $580;
$581 = $ar;
$582 = (_rol_1221($581,6)|0);
$583 = $er;
$584 = (($582) + ($583))|0;
$ar = $584;
$585 = $cr;
$586 = (_rol_1221($585,10)|0);
$cr = $586;
$587 = $al;
$588 = $bl;
$589 = $587 & $588;
$590 = $al;
$591 = $590 ^ -1;
$592 = $cl;
$593 = $591 & $592;
$594 = $589 | $593;
$595 = (($594) + 1518500249)|0;
$596 = ((($x)) + 28|0);
$597 = HEAP32[$596>>2]|0;
$598 = (($595) + ($597))|0;
$599 = $el;
$600 = (($599) + ($598))|0;
$el = $600;
$601 = $el;
$602 = (_rol_1221($601,7)|0);
$603 = $dl;
$604 = (($602) + ($603))|0;
$el = $604;
$605 = $bl;
$606 = (_rol_1221($605,10)|0);
$bl = $606;
$607 = $ar;
$608 = $cr;
$609 = $607 & $608;
$610 = $br;
$611 = $cr;
$612 = $611 ^ -1;
$613 = $610 & $612;
$614 = $609 | $613;
$615 = (($614) + 1548603684)|0;
$616 = ((($x)) + 24|0);
$617 = HEAP32[$616>>2]|0;
$618 = (($615) + ($617))|0;
$619 = $er;
$620 = (($619) + ($618))|0;
$er = $620;
$621 = $er;
$622 = (_rol_1221($621,9)|0);
$623 = $dr;
$624 = (($622) + ($623))|0;
$er = $624;
$625 = $br;
$626 = (_rol_1221($625,10)|0);
$br = $626;
$627 = $el;
$628 = $al;
$629 = $627 & $628;
$630 = $el;
$631 = $630 ^ -1;
$632 = $bl;
$633 = $631 & $632;
$634 = $629 | $633;
$635 = (($634) + 1518500249)|0;
$636 = ((($x)) + 16|0);
$637 = HEAP32[$636>>2]|0;
$638 = (($635) + ($637))|0;
$639 = $dl;
$640 = (($639) + ($638))|0;
$dl = $640;
$641 = $dl;
$642 = (_rol_1221($641,6)|0);
$643 = $cl;
$644 = (($642) + ($643))|0;
$dl = $644;
$645 = $al;
$646 = (_rol_1221($645,10)|0);
$al = $646;
$647 = $er;
$648 = $br;
$649 = $647 & $648;
$650 = $ar;
$651 = $br;
$652 = $651 ^ -1;
$653 = $650 & $652;
$654 = $649 | $653;
$655 = (($654) + 1548603684)|0;
$656 = ((($x)) + 44|0);
$657 = HEAP32[$656>>2]|0;
$658 = (($655) + ($657))|0;
$659 = $dr;
$660 = (($659) + ($658))|0;
$dr = $660;
$661 = $dr;
$662 = (_rol_1221($661,13)|0);
$663 = $cr;
$664 = (($662) + ($663))|0;
$dr = $664;
$665 = $ar;
$666 = (_rol_1221($665,10)|0);
$ar = $666;
$667 = $dl;
$668 = $el;
$669 = $667 & $668;
$670 = $dl;
$671 = $670 ^ -1;
$672 = $al;
$673 = $671 & $672;
$674 = $669 | $673;
$675 = (($674) + 1518500249)|0;
$676 = ((($x)) + 52|0);
$677 = HEAP32[$676>>2]|0;
$678 = (($675) + ($677))|0;
$679 = $cl;
$680 = (($679) + ($678))|0;
$cl = $680;
$681 = $cl;
$682 = (_rol_1221($681,8)|0);
$683 = $bl;
$684 = (($682) + ($683))|0;
$cl = $684;
$685 = $el;
$686 = (_rol_1221($685,10)|0);
$el = $686;
$687 = $dr;
$688 = $ar;
$689 = $687 & $688;
$690 = $er;
$691 = $ar;
$692 = $691 ^ -1;
$693 = $690 & $692;
$694 = $689 | $693;
$695 = (($694) + 1548603684)|0;
$696 = ((($x)) + 12|0);
$697 = HEAP32[$696>>2]|0;
$698 = (($695) + ($697))|0;
$699 = $cr;
$700 = (($699) + ($698))|0;
$cr = $700;
$701 = $cr;
$702 = (_rol_1221($701,15)|0);
$703 = $br;
$704 = (($702) + ($703))|0;
$cr = $704;
$705 = $er;
$706 = (_rol_1221($705,10)|0);
$er = $706;
$707 = $cl;
$708 = $dl;
$709 = $707 & $708;
$710 = $cl;
$711 = $710 ^ -1;
$712 = $el;
$713 = $711 & $712;
$714 = $709 | $713;
$715 = (($714) + 1518500249)|0;
$716 = ((($x)) + 4|0);
$717 = HEAP32[$716>>2]|0;
$718 = (($715) + ($717))|0;
$719 = $bl;
$720 = (($719) + ($718))|0;
$bl = $720;
$721 = $bl;
$722 = (_rol_1221($721,13)|0);
$723 = $al;
$724 = (($722) + ($723))|0;
$bl = $724;
$725 = $dl;
$726 = (_rol_1221($725,10)|0);
$dl = $726;
$727 = $cr;
$728 = $er;
$729 = $727 & $728;
$730 = $dr;
$731 = $er;
$732 = $731 ^ -1;
$733 = $730 & $732;
$734 = $729 | $733;
$735 = (($734) + 1548603684)|0;
$736 = ((($x)) + 28|0);
$737 = HEAP32[$736>>2]|0;
$738 = (($735) + ($737))|0;
$739 = $br;
$740 = (($739) + ($738))|0;
$br = $740;
$741 = $br;
$742 = (_rol_1221($741,7)|0);
$743 = $ar;
$744 = (($742) + ($743))|0;
$br = $744;
$745 = $dr;
$746 = (_rol_1221($745,10)|0);
$dr = $746;
$747 = $bl;
$748 = $cl;
$749 = $747 & $748;
$750 = $bl;
$751 = $750 ^ -1;
$752 = $dl;
$753 = $751 & $752;
$754 = $749 | $753;
$755 = (($754) + 1518500249)|0;
$756 = ((($x)) + 40|0);
$757 = HEAP32[$756>>2]|0;
$758 = (($755) + ($757))|0;
$759 = $al;
$760 = (($759) + ($758))|0;
$al = $760;
$761 = $al;
$762 = (_rol_1221($761,11)|0);
$763 = $el;
$764 = (($762) + ($763))|0;
$al = $764;
$765 = $cl;
$766 = (_rol_1221($765,10)|0);
$cl = $766;
$767 = $br;
$768 = $dr;
$769 = $767 & $768;
$770 = $cr;
$771 = $dr;
$772 = $771 ^ -1;
$773 = $770 & $772;
$774 = $769 | $773;
$775 = (($774) + 1548603684)|0;
$776 = HEAP32[$x>>2]|0;
$777 = (($775) + ($776))|0;
$778 = $ar;
$779 = (($778) + ($777))|0;
$ar = $779;
$780 = $ar;
$781 = (_rol_1221($780,12)|0);
$782 = $er;
$783 = (($781) + ($782))|0;
$ar = $783;
$784 = $cr;
$785 = (_rol_1221($784,10)|0);
$cr = $785;
$786 = $al;
$787 = $bl;
$788 = $786 & $787;
$789 = $al;
$790 = $789 ^ -1;
$791 = $cl;
$792 = $790 & $791;
$793 = $788 | $792;
$794 = (($793) + 1518500249)|0;
$795 = ((($x)) + 24|0);
$796 = HEAP32[$795>>2]|0;
$797 = (($794) + ($796))|0;
$798 = $el;
$799 = (($798) + ($797))|0;
$el = $799;
$800 = $el;
$801 = (_rol_1221($800,9)|0);
$802 = $dl;
$803 = (($801) + ($802))|0;
$el = $803;
$804 = $bl;
$805 = (_rol_1221($804,10)|0);
$bl = $805;
$806 = $ar;
$807 = $cr;
$808 = $806 & $807;
$809 = $br;
$810 = $cr;
$811 = $810 ^ -1;
$812 = $809 & $811;
$813 = $808 | $812;
$814 = (($813) + 1548603684)|0;
$815 = ((($x)) + 52|0);
$816 = HEAP32[$815>>2]|0;
$817 = (($814) + ($816))|0;
$818 = $er;
$819 = (($818) + ($817))|0;
$er = $819;
$820 = $er;
$821 = (_rol_1221($820,8)|0);
$822 = $dr;
$823 = (($821) + ($822))|0;
$er = $823;
$824 = $br;
$825 = (_rol_1221($824,10)|0);
$br = $825;
$826 = $el;
$827 = $al;
$828 = $826 & $827;
$829 = $el;
$830 = $829 ^ -1;
$831 = $bl;
$832 = $830 & $831;
$833 = $828 | $832;
$834 = (($833) + 1518500249)|0;
$835 = ((($x)) + 60|0);
$836 = HEAP32[$835>>2]|0;
$837 = (($834) + ($836))|0;
$838 = $dl;
$839 = (($838) + ($837))|0;
$dl = $839;
$840 = $dl;
$841 = (_rol_1221($840,7)|0);
$842 = $cl;
$843 = (($841) + ($842))|0;
$dl = $843;
$844 = $al;
$845 = (_rol_1221($844,10)|0);
$al = $845;
$846 = $er;
$847 = $br;
$848 = $846 & $847;
$849 = $ar;
$850 = $br;
$851 = $850 ^ -1;
$852 = $849 & $851;
$853 = $848 | $852;
$854 = (($853) + 1548603684)|0;
$855 = ((($x)) + 20|0);
$856 = HEAP32[$855>>2]|0;
$857 = (($854) + ($856))|0;
$858 = $dr;
$859 = (($858) + ($857))|0;
$dr = $859;
$860 = $dr;
$861 = (_rol_1221($860,9)|0);
$862 = $cr;
$863 = (($861) + ($862))|0;
$dr = $863;
$864 = $ar;
$865 = (_rol_1221($864,10)|0);
$ar = $865;
$866 = $dl;
$867 = $el;
$868 = $866 & $867;
$869 = $dl;
$870 = $869 ^ -1;
$871 = $al;
$872 = $870 & $871;
$873 = $868 | $872;
$874 = (($873) + 1518500249)|0;
$875 = ((($x)) + 12|0);
$876 = HEAP32[$875>>2]|0;
$877 = (($874) + ($876))|0;
$878 = $cl;
$879 = (($878) + ($877))|0;
$cl = $879;
$880 = $cl;
$881 = (_rol_1221($880,15)|0);
$882 = $bl;
$883 = (($881) + ($882))|0;
$cl = $883;
$884 = $el;
$885 = (_rol_1221($884,10)|0);
$el = $885;
$886 = $dr;
$887 = $ar;
$888 = $886 & $887;
$889 = $er;
$890 = $ar;
$891 = $890 ^ -1;
$892 = $889 & $891;
$893 = $888 | $892;
$894 = (($893) + 1548603684)|0;
$895 = ((($x)) + 40|0);
$896 = HEAP32[$895>>2]|0;
$897 = (($894) + ($896))|0;
$898 = $cr;
$899 = (($898) + ($897))|0;
$cr = $899;
$900 = $cr;
$901 = (_rol_1221($900,11)|0);
$902 = $br;
$903 = (($901) + ($902))|0;
$cr = $903;
$904 = $er;
$905 = (_rol_1221($904,10)|0);
$er = $905;
$906 = $cl;
$907 = $dl;
$908 = $906 & $907;
$909 = $cl;
$910 = $909 ^ -1;
$911 = $el;
$912 = $910 & $911;
$913 = $908 | $912;
$914 = (($913) + 1518500249)|0;
$915 = ((($x)) + 48|0);
$916 = HEAP32[$915>>2]|0;
$917 = (($914) + ($916))|0;
$918 = $bl;
$919 = (($918) + ($917))|0;
$bl = $919;
$920 = $bl;
$921 = (_rol_1221($920,7)|0);
$922 = $al;
$923 = (($921) + ($922))|0;
$bl = $923;
$924 = $dl;
$925 = (_rol_1221($924,10)|0);
$dl = $925;
$926 = $cr;
$927 = $er;
$928 = $926 & $927;
$929 = $dr;
$930 = $er;
$931 = $930 ^ -1;
$932 = $929 & $931;
$933 = $928 | $932;
$934 = (($933) + 1548603684)|0;
$935 = ((($x)) + 56|0);
$936 = HEAP32[$935>>2]|0;
$937 = (($934) + ($936))|0;
$938 = $br;
$939 = (($938) + ($937))|0;
$br = $939;
$940 = $br;
$941 = (_rol_1221($940,7)|0);
$942 = $ar;
$943 = (($941) + ($942))|0;
$br = $943;
$944 = $dr;
$945 = (_rol_1221($944,10)|0);
$dr = $945;
$946 = $bl;
$947 = $cl;
$948 = $946 & $947;
$949 = $bl;
$950 = $949 ^ -1;
$951 = $dl;
$952 = $950 & $951;
$953 = $948 | $952;
$954 = (($953) + 1518500249)|0;
$955 = HEAP32[$x>>2]|0;
$956 = (($954) + ($955))|0;
$957 = $al;
$958 = (($957) + ($956))|0;
$al = $958;
$959 = $al;
$960 = (_rol_1221($959,12)|0);
$961 = $el;
$962 = (($960) + ($961))|0;
$al = $962;
$963 = $cl;
$964 = (_rol_1221($963,10)|0);
$cl = $964;
$965 = $br;
$966 = $dr;
$967 = $965 & $966;
$968 = $cr;
$969 = $dr;
$970 = $969 ^ -1;
$971 = $968 & $970;
$972 = $967 | $971;
$973 = (($972) + 1548603684)|0;
$974 = ((($x)) + 60|0);
$975 = HEAP32[$974>>2]|0;
$976 = (($973) + ($975))|0;
$977 = $ar;
$978 = (($977) + ($976))|0;
$ar = $978;
$979 = $ar;
$980 = (_rol_1221($979,7)|0);
$981 = $er;
$982 = (($980) + ($981))|0;
$ar = $982;
$983 = $cr;
$984 = (_rol_1221($983,10)|0);
$cr = $984;
$985 = $al;
$986 = $bl;
$987 = $985 & $986;
$988 = $al;
$989 = $988 ^ -1;
$990 = $cl;
$991 = $989 & $990;
$992 = $987 | $991;
$993 = (($992) + 1518500249)|0;
$994 = ((($x)) + 36|0);
$995 = HEAP32[$994>>2]|0;
$996 = (($993) + ($995))|0;
$997 = $el;
$998 = (($997) + ($996))|0;
$el = $998;
$999 = $el;
$1000 = (_rol_1221($999,15)|0);
$1001 = $dl;
$1002 = (($1000) + ($1001))|0;
$el = $1002;
$1003 = $bl;
$1004 = (_rol_1221($1003,10)|0);
$bl = $1004;
$1005 = $ar;
$1006 = $cr;
$1007 = $1005 & $1006;
$1008 = $br;
$1009 = $cr;
$1010 = $1009 ^ -1;
$1011 = $1008 & $1010;
$1012 = $1007 | $1011;
$1013 = (($1012) + 1548603684)|0;
$1014 = ((($x)) + 32|0);
$1015 = HEAP32[$1014>>2]|0;
$1016 = (($1013) + ($1015))|0;
$1017 = $er;
$1018 = (($1017) + ($1016))|0;
$er = $1018;
$1019 = $er;
$1020 = (_rol_1221($1019,12)|0);
$1021 = $dr;
$1022 = (($1020) + ($1021))|0;
$er = $1022;
$1023 = $br;
$1024 = (_rol_1221($1023,10)|0);
$br = $1024;
$1025 = $el;
$1026 = $al;
$1027 = $1025 & $1026;
$1028 = $el;
$1029 = $1028 ^ -1;
$1030 = $bl;
$1031 = $1029 & $1030;
$1032 = $1027 | $1031;
$1033 = (($1032) + 1518500249)|0;
$1034 = ((($x)) + 20|0);
$1035 = HEAP32[$1034>>2]|0;
$1036 = (($1033) + ($1035))|0;
$1037 = $dl;
$1038 = (($1037) + ($1036))|0;
$dl = $1038;
$1039 = $dl;
$1040 = (_rol_1221($1039,9)|0);
$1041 = $cl;
$1042 = (($1040) + ($1041))|0;
$dl = $1042;
$1043 = $al;
$1044 = (_rol_1221($1043,10)|0);
$al = $1044;
$1045 = $er;
$1046 = $br;
$1047 = $1045 & $1046;
$1048 = $ar;
$1049 = $br;
$1050 = $1049 ^ -1;
$1051 = $1048 & $1050;
$1052 = $1047 | $1051;
$1053 = (($1052) + 1548603684)|0;
$1054 = ((($x)) + 48|0);
$1055 = HEAP32[$1054>>2]|0;
$1056 = (($1053) + ($1055))|0;
$1057 = $dr;
$1058 = (($1057) + ($1056))|0;
$dr = $1058;
$1059 = $dr;
$1060 = (_rol_1221($1059,7)|0);
$1061 = $cr;
$1062 = (($1060) + ($1061))|0;
$dr = $1062;
$1063 = $ar;
$1064 = (_rol_1221($1063,10)|0);
$ar = $1064;
$1065 = $dl;
$1066 = $el;
$1067 = $1065 & $1066;
$1068 = $dl;
$1069 = $1068 ^ -1;
$1070 = $al;
$1071 = $1069 & $1070;
$1072 = $1067 | $1071;
$1073 = (($1072) + 1518500249)|0;
$1074 = ((($x)) + 8|0);
$1075 = HEAP32[$1074>>2]|0;
$1076 = (($1073) + ($1075))|0;
$1077 = $cl;
$1078 = (($1077) + ($1076))|0;
$cl = $1078;
$1079 = $cl;
$1080 = (_rol_1221($1079,11)|0);
$1081 = $bl;
$1082 = (($1080) + ($1081))|0;
$cl = $1082;
$1083 = $el;
$1084 = (_rol_1221($1083,10)|0);
$el = $1084;
$1085 = $dr;
$1086 = $ar;
$1087 = $1085 & $1086;
$1088 = $er;
$1089 = $ar;
$1090 = $1089 ^ -1;
$1091 = $1088 & $1090;
$1092 = $1087 | $1091;
$1093 = (($1092) + 1548603684)|0;
$1094 = ((($x)) + 16|0);
$1095 = HEAP32[$1094>>2]|0;
$1096 = (($1093) + ($1095))|0;
$1097 = $cr;
$1098 = (($1097) + ($1096))|0;
$cr = $1098;
$1099 = $cr;
$1100 = (_rol_1221($1099,6)|0);
$1101 = $br;
$1102 = (($1100) + ($1101))|0;
$cr = $1102;
$1103 = $er;
$1104 = (_rol_1221($1103,10)|0);
$er = $1104;
$1105 = $cl;
$1106 = $dl;
$1107 = $1105 & $1106;
$1108 = $cl;
$1109 = $1108 ^ -1;
$1110 = $el;
$1111 = $1109 & $1110;
$1112 = $1107 | $1111;
$1113 = (($1112) + 1518500249)|0;
$1114 = ((($x)) + 56|0);
$1115 = HEAP32[$1114>>2]|0;
$1116 = (($1113) + ($1115))|0;
$1117 = $bl;
$1118 = (($1117) + ($1116))|0;
$bl = $1118;
$1119 = $bl;
$1120 = (_rol_1221($1119,7)|0);
$1121 = $al;
$1122 = (($1120) + ($1121))|0;
$bl = $1122;
$1123 = $dl;
$1124 = (_rol_1221($1123,10)|0);
$dl = $1124;
$1125 = $cr;
$1126 = $er;
$1127 = $1125 & $1126;
$1128 = $dr;
$1129 = $er;
$1130 = $1129 ^ -1;
$1131 = $1128 & $1130;
$1132 = $1127 | $1131;
$1133 = (($1132) + 1548603684)|0;
$1134 = ((($x)) + 36|0);
$1135 = HEAP32[$1134>>2]|0;
$1136 = (($1133) + ($1135))|0;
$1137 = $br;
$1138 = (($1137) + ($1136))|0;
$br = $1138;
$1139 = $br;
$1140 = (_rol_1221($1139,15)|0);
$1141 = $ar;
$1142 = (($1140) + ($1141))|0;
$br = $1142;
$1143 = $dr;
$1144 = (_rol_1221($1143,10)|0);
$dr = $1144;
$1145 = $bl;
$1146 = $cl;
$1147 = $1145 & $1146;
$1148 = $bl;
$1149 = $1148 ^ -1;
$1150 = $dl;
$1151 = $1149 & $1150;
$1152 = $1147 | $1151;
$1153 = (($1152) + 1518500249)|0;
$1154 = ((($x)) + 44|0);
$1155 = HEAP32[$1154>>2]|0;
$1156 = (($1153) + ($1155))|0;
$1157 = $al;
$1158 = (($1157) + ($1156))|0;
$al = $1158;
$1159 = $al;
$1160 = (_rol_1221($1159,13)|0);
$1161 = $el;
$1162 = (($1160) + ($1161))|0;
$al = $1162;
$1163 = $cl;
$1164 = (_rol_1221($1163,10)|0);
$cl = $1164;
$1165 = $br;
$1166 = $dr;
$1167 = $1165 & $1166;
$1168 = $cr;
$1169 = $dr;
$1170 = $1169 ^ -1;
$1171 = $1168 & $1170;
$1172 = $1167 | $1171;
$1173 = (($1172) + 1548603684)|0;
$1174 = ((($x)) + 4|0);
$1175 = HEAP32[$1174>>2]|0;
$1176 = (($1173) + ($1175))|0;
$1177 = $ar;
$1178 = (($1177) + ($1176))|0;
$ar = $1178;
$1179 = $ar;
$1180 = (_rol_1221($1179,13)|0);
$1181 = $er;
$1182 = (($1180) + ($1181))|0;
$ar = $1182;
$1183 = $cr;
$1184 = (_rol_1221($1183,10)|0);
$cr = $1184;
$1185 = $al;
$1186 = $bl;
$1187 = $1185 & $1186;
$1188 = $al;
$1189 = $1188 ^ -1;
$1190 = $cl;
$1191 = $1189 & $1190;
$1192 = $1187 | $1191;
$1193 = (($1192) + 1518500249)|0;
$1194 = ((($x)) + 32|0);
$1195 = HEAP32[$1194>>2]|0;
$1196 = (($1193) + ($1195))|0;
$1197 = $el;
$1198 = (($1197) + ($1196))|0;
$el = $1198;
$1199 = $el;
$1200 = (_rol_1221($1199,12)|0);
$1201 = $dl;
$1202 = (($1200) + ($1201))|0;
$el = $1202;
$1203 = $bl;
$1204 = (_rol_1221($1203,10)|0);
$bl = $1204;
$1205 = $ar;
$1206 = $cr;
$1207 = $1205 & $1206;
$1208 = $br;
$1209 = $cr;
$1210 = $1209 ^ -1;
$1211 = $1208 & $1210;
$1212 = $1207 | $1211;
$1213 = (($1212) + 1548603684)|0;
$1214 = ((($x)) + 8|0);
$1215 = HEAP32[$1214>>2]|0;
$1216 = (($1213) + ($1215))|0;
$1217 = $er;
$1218 = (($1217) + ($1216))|0;
$er = $1218;
$1219 = $er;
$1220 = (_rol_1221($1219,11)|0);
$1221 = $dr;
$1222 = (($1220) + ($1221))|0;
$er = $1222;
$1223 = $br;
$1224 = (_rol_1221($1223,10)|0);
$br = $1224;
$1225 = $el;
$1226 = $al;
$1227 = $1226 ^ -1;
$1228 = $1225 | $1227;
$1229 = $bl;
$1230 = $1228 ^ $1229;
$1231 = (($1230) + 1859775393)|0;
$1232 = ((($x)) + 12|0);
$1233 = HEAP32[$1232>>2]|0;
$1234 = (($1231) + ($1233))|0;
$1235 = $dl;
$1236 = (($1235) + ($1234))|0;
$dl = $1236;
$1237 = $dl;
$1238 = (_rol_1221($1237,11)|0);
$1239 = $cl;
$1240 = (($1238) + ($1239))|0;
$dl = $1240;
$1241 = $al;
$1242 = (_rol_1221($1241,10)|0);
$al = $1242;
$1243 = $er;
$1244 = $ar;
$1245 = $1244 ^ -1;
$1246 = $1243 | $1245;
$1247 = $br;
$1248 = $1246 ^ $1247;
$1249 = (($1248) + 1836072691)|0;
$1250 = ((($x)) + 60|0);
$1251 = HEAP32[$1250>>2]|0;
$1252 = (($1249) + ($1251))|0;
$1253 = $dr;
$1254 = (($1253) + ($1252))|0;
$dr = $1254;
$1255 = $dr;
$1256 = (_rol_1221($1255,9)|0);
$1257 = $cr;
$1258 = (($1256) + ($1257))|0;
$dr = $1258;
$1259 = $ar;
$1260 = (_rol_1221($1259,10)|0);
$ar = $1260;
$1261 = $dl;
$1262 = $el;
$1263 = $1262 ^ -1;
$1264 = $1261 | $1263;
$1265 = $al;
$1266 = $1264 ^ $1265;
$1267 = (($1266) + 1859775393)|0;
$1268 = ((($x)) + 40|0);
$1269 = HEAP32[$1268>>2]|0;
$1270 = (($1267) + ($1269))|0;
$1271 = $cl;
$1272 = (($1271) + ($1270))|0;
$cl = $1272;
$1273 = $cl;
$1274 = (_rol_1221($1273,13)|0);
$1275 = $bl;
$1276 = (($1274) + ($1275))|0;
$cl = $1276;
$1277 = $el;
$1278 = (_rol_1221($1277,10)|0);
$el = $1278;
$1279 = $dr;
$1280 = $er;
$1281 = $1280 ^ -1;
$1282 = $1279 | $1281;
$1283 = $ar;
$1284 = $1282 ^ $1283;
$1285 = (($1284) + 1836072691)|0;
$1286 = ((($x)) + 20|0);
$1287 = HEAP32[$1286>>2]|0;
$1288 = (($1285) + ($1287))|0;
$1289 = $cr;
$1290 = (($1289) + ($1288))|0;
$cr = $1290;
$1291 = $cr;
$1292 = (_rol_1221($1291,7)|0);
$1293 = $br;
$1294 = (($1292) + ($1293))|0;
$cr = $1294;
$1295 = $er;
$1296 = (_rol_1221($1295,10)|0);
$er = $1296;
$1297 = $cl;
$1298 = $dl;
$1299 = $1298 ^ -1;
$1300 = $1297 | $1299;
$1301 = $el;
$1302 = $1300 ^ $1301;
$1303 = (($1302) + 1859775393)|0;
$1304 = ((($x)) + 56|0);
$1305 = HEAP32[$1304>>2]|0;
$1306 = (($1303) + ($1305))|0;
$1307 = $bl;
$1308 = (($1307) + ($1306))|0;
$bl = $1308;
$1309 = $bl;
$1310 = (_rol_1221($1309,6)|0);
$1311 = $al;
$1312 = (($1310) + ($1311))|0;
$bl = $1312;
$1313 = $dl;
$1314 = (_rol_1221($1313,10)|0);
$dl = $1314;
$1315 = $cr;
$1316 = $dr;
$1317 = $1316 ^ -1;
$1318 = $1315 | $1317;
$1319 = $er;
$1320 = $1318 ^ $1319;
$1321 = (($1320) + 1836072691)|0;
$1322 = ((($x)) + 4|0);
$1323 = HEAP32[$1322>>2]|0;
$1324 = (($1321) + ($1323))|0;
$1325 = $br;
$1326 = (($1325) + ($1324))|0;
$br = $1326;
$1327 = $br;
$1328 = (_rol_1221($1327,15)|0);
$1329 = $ar;
$1330 = (($1328) + ($1329))|0;
$br = $1330;
$1331 = $dr;
$1332 = (_rol_1221($1331,10)|0);
$dr = $1332;
$1333 = $bl;
$1334 = $cl;
$1335 = $1334 ^ -1;
$1336 = $1333 | $1335;
$1337 = $dl;
$1338 = $1336 ^ $1337;
$1339 = (($1338) + 1859775393)|0;
$1340 = ((($x)) + 16|0);
$1341 = HEAP32[$1340>>2]|0;
$1342 = (($1339) + ($1341))|0;
$1343 = $al;
$1344 = (($1343) + ($1342))|0;
$al = $1344;
$1345 = $al;
$1346 = (_rol_1221($1345,7)|0);
$1347 = $el;
$1348 = (($1346) + ($1347))|0;
$al = $1348;
$1349 = $cl;
$1350 = (_rol_1221($1349,10)|0);
$cl = $1350;
$1351 = $br;
$1352 = $cr;
$1353 = $1352 ^ -1;
$1354 = $1351 | $1353;
$1355 = $dr;
$1356 = $1354 ^ $1355;
$1357 = (($1356) + 1836072691)|0;
$1358 = ((($x)) + 12|0);
$1359 = HEAP32[$1358>>2]|0;
$1360 = (($1357) + ($1359))|0;
$1361 = $ar;
$1362 = (($1361) + ($1360))|0;
$ar = $1362;
$1363 = $ar;
$1364 = (_rol_1221($1363,11)|0);
$1365 = $er;
$1366 = (($1364) + ($1365))|0;
$ar = $1366;
$1367 = $cr;
$1368 = (_rol_1221($1367,10)|0);
$cr = $1368;
$1369 = $al;
$1370 = $bl;
$1371 = $1370 ^ -1;
$1372 = $1369 | $1371;
$1373 = $cl;
$1374 = $1372 ^ $1373;
$1375 = (($1374) + 1859775393)|0;
$1376 = ((($x)) + 36|0);
$1377 = HEAP32[$1376>>2]|0;
$1378 = (($1375) + ($1377))|0;
$1379 = $el;
$1380 = (($1379) + ($1378))|0;
$el = $1380;
$1381 = $el;
$1382 = (_rol_1221($1381,14)|0);
$1383 = $dl;
$1384 = (($1382) + ($1383))|0;
$el = $1384;
$1385 = $bl;
$1386 = (_rol_1221($1385,10)|0);
$bl = $1386;
$1387 = $ar;
$1388 = $br;
$1389 = $1388 ^ -1;
$1390 = $1387 | $1389;
$1391 = $cr;
$1392 = $1390 ^ $1391;
$1393 = (($1392) + 1836072691)|0;
$1394 = ((($x)) + 28|0);
$1395 = HEAP32[$1394>>2]|0;
$1396 = (($1393) + ($1395))|0;
$1397 = $er;
$1398 = (($1397) + ($1396))|0;
$er = $1398;
$1399 = $er;
$1400 = (_rol_1221($1399,8)|0);
$1401 = $dr;
$1402 = (($1400) + ($1401))|0;
$er = $1402;
$1403 = $br;
$1404 = (_rol_1221($1403,10)|0);
$br = $1404;
$1405 = $el;
$1406 = $al;
$1407 = $1406 ^ -1;
$1408 = $1405 | $1407;
$1409 = $bl;
$1410 = $1408 ^ $1409;
$1411 = (($1410) + 1859775393)|0;
$1412 = ((($x)) + 60|0);
$1413 = HEAP32[$1412>>2]|0;
$1414 = (($1411) + ($1413))|0;
$1415 = $dl;
$1416 = (($1415) + ($1414))|0;
$dl = $1416;
$1417 = $dl;
$1418 = (_rol_1221($1417,9)|0);
$1419 = $cl;
$1420 = (($1418) + ($1419))|0;
$dl = $1420;
$1421 = $al;
$1422 = (_rol_1221($1421,10)|0);
$al = $1422;
$1423 = $er;
$1424 = $ar;
$1425 = $1424 ^ -1;
$1426 = $1423 | $1425;
$1427 = $br;
$1428 = $1426 ^ $1427;
$1429 = (($1428) + 1836072691)|0;
$1430 = ((($x)) + 56|0);
$1431 = HEAP32[$1430>>2]|0;
$1432 = (($1429) + ($1431))|0;
$1433 = $dr;
$1434 = (($1433) + ($1432))|0;
$dr = $1434;
$1435 = $dr;
$1436 = (_rol_1221($1435,6)|0);
$1437 = $cr;
$1438 = (($1436) + ($1437))|0;
$dr = $1438;
$1439 = $ar;
$1440 = (_rol_1221($1439,10)|0);
$ar = $1440;
$1441 = $dl;
$1442 = $el;
$1443 = $1442 ^ -1;
$1444 = $1441 | $1443;
$1445 = $al;
$1446 = $1444 ^ $1445;
$1447 = (($1446) + 1859775393)|0;
$1448 = ((($x)) + 32|0);
$1449 = HEAP32[$1448>>2]|0;
$1450 = (($1447) + ($1449))|0;
$1451 = $cl;
$1452 = (($1451) + ($1450))|0;
$cl = $1452;
$1453 = $cl;
$1454 = (_rol_1221($1453,13)|0);
$1455 = $bl;
$1456 = (($1454) + ($1455))|0;
$cl = $1456;
$1457 = $el;
$1458 = (_rol_1221($1457,10)|0);
$el = $1458;
$1459 = $dr;
$1460 = $er;
$1461 = $1460 ^ -1;
$1462 = $1459 | $1461;
$1463 = $ar;
$1464 = $1462 ^ $1463;
$1465 = (($1464) + 1836072691)|0;
$1466 = ((($x)) + 24|0);
$1467 = HEAP32[$1466>>2]|0;
$1468 = (($1465) + ($1467))|0;
$1469 = $cr;
$1470 = (($1469) + ($1468))|0;
$cr = $1470;
$1471 = $cr;
$1472 = (_rol_1221($1471,6)|0);
$1473 = $br;
$1474 = (($1472) + ($1473))|0;
$cr = $1474;
$1475 = $er;
$1476 = (_rol_1221($1475,10)|0);
$er = $1476;
$1477 = $cl;
$1478 = $dl;
$1479 = $1478 ^ -1;
$1480 = $1477 | $1479;
$1481 = $el;
$1482 = $1480 ^ $1481;
$1483 = (($1482) + 1859775393)|0;
$1484 = ((($x)) + 4|0);
$1485 = HEAP32[$1484>>2]|0;
$1486 = (($1483) + ($1485))|0;
$1487 = $bl;
$1488 = (($1487) + ($1486))|0;
$bl = $1488;
$1489 = $bl;
$1490 = (_rol_1221($1489,15)|0);
$1491 = $al;
$1492 = (($1490) + ($1491))|0;
$bl = $1492;
$1493 = $dl;
$1494 = (_rol_1221($1493,10)|0);
$dl = $1494;
$1495 = $cr;
$1496 = $dr;
$1497 = $1496 ^ -1;
$1498 = $1495 | $1497;
$1499 = $er;
$1500 = $1498 ^ $1499;
$1501 = (($1500) + 1836072691)|0;
$1502 = ((($x)) + 36|0);
$1503 = HEAP32[$1502>>2]|0;
$1504 = (($1501) + ($1503))|0;
$1505 = $br;
$1506 = (($1505) + ($1504))|0;
$br = $1506;
$1507 = $br;
$1508 = (_rol_1221($1507,14)|0);
$1509 = $ar;
$1510 = (($1508) + ($1509))|0;
$br = $1510;
$1511 = $dr;
$1512 = (_rol_1221($1511,10)|0);
$dr = $1512;
$1513 = $bl;
$1514 = $cl;
$1515 = $1514 ^ -1;
$1516 = $1513 | $1515;
$1517 = $dl;
$1518 = $1516 ^ $1517;
$1519 = (($1518) + 1859775393)|0;
$1520 = ((($x)) + 8|0);
$1521 = HEAP32[$1520>>2]|0;
$1522 = (($1519) + ($1521))|0;
$1523 = $al;
$1524 = (($1523) + ($1522))|0;
$al = $1524;
$1525 = $al;
$1526 = (_rol_1221($1525,14)|0);
$1527 = $el;
$1528 = (($1526) + ($1527))|0;
$al = $1528;
$1529 = $cl;
$1530 = (_rol_1221($1529,10)|0);
$cl = $1530;
$1531 = $br;
$1532 = $cr;
$1533 = $1532 ^ -1;
$1534 = $1531 | $1533;
$1535 = $dr;
$1536 = $1534 ^ $1535;
$1537 = (($1536) + 1836072691)|0;
$1538 = ((($x)) + 44|0);
$1539 = HEAP32[$1538>>2]|0;
$1540 = (($1537) + ($1539))|0;
$1541 = $ar;
$1542 = (($1541) + ($1540))|0;
$ar = $1542;
$1543 = $ar;
$1544 = (_rol_1221($1543,12)|0);
$1545 = $er;
$1546 = (($1544) + ($1545))|0;
$ar = $1546;
$1547 = $cr;
$1548 = (_rol_1221($1547,10)|0);
$cr = $1548;
$1549 = $al;
$1550 = $bl;
$1551 = $1550 ^ -1;
$1552 = $1549 | $1551;
$1553 = $cl;
$1554 = $1552 ^ $1553;
$1555 = (($1554) + 1859775393)|0;
$1556 = ((($x)) + 28|0);
$1557 = HEAP32[$1556>>2]|0;
$1558 = (($1555) + ($1557))|0;
$1559 = $el;
$1560 = (($1559) + ($1558))|0;
$el = $1560;
$1561 = $el;
$1562 = (_rol_1221($1561,8)|0);
$1563 = $dl;
$1564 = (($1562) + ($1563))|0;
$el = $1564;
$1565 = $bl;
$1566 = (_rol_1221($1565,10)|0);
$bl = $1566;
$1567 = $ar;
$1568 = $br;
$1569 = $1568 ^ -1;
$1570 = $1567 | $1569;
$1571 = $cr;
$1572 = $1570 ^ $1571;
$1573 = (($1572) + 1836072691)|0;
$1574 = ((($x)) + 32|0);
$1575 = HEAP32[$1574>>2]|0;
$1576 = (($1573) + ($1575))|0;
$1577 = $er;
$1578 = (($1577) + ($1576))|0;
$er = $1578;
$1579 = $er;
$1580 = (_rol_1221($1579,13)|0);
$1581 = $dr;
$1582 = (($1580) + ($1581))|0;
$er = $1582;
$1583 = $br;
$1584 = (_rol_1221($1583,10)|0);
$br = $1584;
$1585 = $el;
$1586 = $al;
$1587 = $1586 ^ -1;
$1588 = $1585 | $1587;
$1589 = $bl;
$1590 = $1588 ^ $1589;
$1591 = (($1590) + 1859775393)|0;
$1592 = HEAP32[$x>>2]|0;
$1593 = (($1591) + ($1592))|0;
$1594 = $dl;
$1595 = (($1594) + ($1593))|0;
$dl = $1595;
$1596 = $dl;
$1597 = (_rol_1221($1596,13)|0);
$1598 = $cl;
$1599 = (($1597) + ($1598))|0;
$dl = $1599;
$1600 = $al;
$1601 = (_rol_1221($1600,10)|0);
$al = $1601;
$1602 = $er;
$1603 = $ar;
$1604 = $1603 ^ -1;
$1605 = $1602 | $1604;
$1606 = $br;
$1607 = $1605 ^ $1606;
$1608 = (($1607) + 1836072691)|0;
$1609 = ((($x)) + 48|0);
$1610 = HEAP32[$1609>>2]|0;
$1611 = (($1608) + ($1610))|0;
$1612 = $dr;
$1613 = (($1612) + ($1611))|0;
$dr = $1613;
$1614 = $dr;
$1615 = (_rol_1221($1614,5)|0);
$1616 = $cr;
$1617 = (($1615) + ($1616))|0;
$dr = $1617;
$1618 = $ar;
$1619 = (_rol_1221($1618,10)|0);
$ar = $1619;
$1620 = $dl;
$1621 = $el;
$1622 = $1621 ^ -1;
$1623 = $1620 | $1622;
$1624 = $al;
$1625 = $1623 ^ $1624;
$1626 = (($1625) + 1859775393)|0;
$1627 = ((($x)) + 24|0);
$1628 = HEAP32[$1627>>2]|0;
$1629 = (($1626) + ($1628))|0;
$1630 = $cl;
$1631 = (($1630) + ($1629))|0;
$cl = $1631;
$1632 = $cl;
$1633 = (_rol_1221($1632,6)|0);
$1634 = $bl;
$1635 = (($1633) + ($1634))|0;
$cl = $1635;
$1636 = $el;
$1637 = (_rol_1221($1636,10)|0);
$el = $1637;
$1638 = $dr;
$1639 = $er;
$1640 = $1639 ^ -1;
$1641 = $1638 | $1640;
$1642 = $ar;
$1643 = $1641 ^ $1642;
$1644 = (($1643) + 1836072691)|0;
$1645 = ((($x)) + 8|0);
$1646 = HEAP32[$1645>>2]|0;
$1647 = (($1644) + ($1646))|0;
$1648 = $cr;
$1649 = (($1648) + ($1647))|0;
$cr = $1649;
$1650 = $cr;
$1651 = (_rol_1221($1650,14)|0);
$1652 = $br;
$1653 = (($1651) + ($1652))|0;
$cr = $1653;
$1654 = $er;
$1655 = (_rol_1221($1654,10)|0);
$er = $1655;
$1656 = $cl;
$1657 = $dl;
$1658 = $1657 ^ -1;
$1659 = $1656 | $1658;
$1660 = $el;
$1661 = $1659 ^ $1660;
$1662 = (($1661) + 1859775393)|0;
$1663 = ((($x)) + 52|0);
$1664 = HEAP32[$1663>>2]|0;
$1665 = (($1662) + ($1664))|0;
$1666 = $bl;
$1667 = (($1666) + ($1665))|0;
$bl = $1667;
$1668 = $bl;
$1669 = (_rol_1221($1668,5)|0);
$1670 = $al;
$1671 = (($1669) + ($1670))|0;
$bl = $1671;
$1672 = $dl;
$1673 = (_rol_1221($1672,10)|0);
$dl = $1673;
$1674 = $cr;
$1675 = $dr;
$1676 = $1675 ^ -1;
$1677 = $1674 | $1676;
$1678 = $er;
$1679 = $1677 ^ $1678;
$1680 = (($1679) + 1836072691)|0;
$1681 = ((($x)) + 40|0);
$1682 = HEAP32[$1681>>2]|0;
$1683 = (($1680) + ($1682))|0;
$1684 = $br;
$1685 = (($1684) + ($1683))|0;
$br = $1685;
$1686 = $br;
$1687 = (_rol_1221($1686,13)|0);
$1688 = $ar;
$1689 = (($1687) + ($1688))|0;
$br = $1689;
$1690 = $dr;
$1691 = (_rol_1221($1690,10)|0);
$dr = $1691;
$1692 = $bl;
$1693 = $cl;
$1694 = $1693 ^ -1;
$1695 = $1692 | $1694;
$1696 = $dl;
$1697 = $1695 ^ $1696;
$1698 = (($1697) + 1859775393)|0;
$1699 = ((($x)) + 44|0);
$1700 = HEAP32[$1699>>2]|0;
$1701 = (($1698) + ($1700))|0;
$1702 = $al;
$1703 = (($1702) + ($1701))|0;
$al = $1703;
$1704 = $al;
$1705 = (_rol_1221($1704,12)|0);
$1706 = $el;
$1707 = (($1705) + ($1706))|0;
$al = $1707;
$1708 = $cl;
$1709 = (_rol_1221($1708,10)|0);
$cl = $1709;
$1710 = $br;
$1711 = $cr;
$1712 = $1711 ^ -1;
$1713 = $1710 | $1712;
$1714 = $dr;
$1715 = $1713 ^ $1714;
$1716 = (($1715) + 1836072691)|0;
$1717 = HEAP32[$x>>2]|0;
$1718 = (($1716) + ($1717))|0;
$1719 = $ar;
$1720 = (($1719) + ($1718))|0;
$ar = $1720;
$1721 = $ar;
$1722 = (_rol_1221($1721,13)|0);
$1723 = $er;
$1724 = (($1722) + ($1723))|0;
$ar = $1724;
$1725 = $cr;
$1726 = (_rol_1221($1725,10)|0);
$cr = $1726;
$1727 = $al;
$1728 = $bl;
$1729 = $1728 ^ -1;
$1730 = $1727 | $1729;
$1731 = $cl;
$1732 = $1730 ^ $1731;
$1733 = (($1732) + 1859775393)|0;
$1734 = ((($x)) + 20|0);
$1735 = HEAP32[$1734>>2]|0;
$1736 = (($1733) + ($1735))|0;
$1737 = $el;
$1738 = (($1737) + ($1736))|0;
$el = $1738;
$1739 = $el;
$1740 = (_rol_1221($1739,7)|0);
$1741 = $dl;
$1742 = (($1740) + ($1741))|0;
$el = $1742;
$1743 = $bl;
$1744 = (_rol_1221($1743,10)|0);
$bl = $1744;
$1745 = $ar;
$1746 = $br;
$1747 = $1746 ^ -1;
$1748 = $1745 | $1747;
$1749 = $cr;
$1750 = $1748 ^ $1749;
$1751 = (($1750) + 1836072691)|0;
$1752 = ((($x)) + 16|0);
$1753 = HEAP32[$1752>>2]|0;
$1754 = (($1751) + ($1753))|0;
$1755 = $er;
$1756 = (($1755) + ($1754))|0;
$er = $1756;
$1757 = $er;
$1758 = (_rol_1221($1757,7)|0);
$1759 = $dr;
$1760 = (($1758) + ($1759))|0;
$er = $1760;
$1761 = $br;
$1762 = (_rol_1221($1761,10)|0);
$br = $1762;
$1763 = $el;
$1764 = $al;
$1765 = $1764 ^ -1;
$1766 = $1763 | $1765;
$1767 = $bl;
$1768 = $1766 ^ $1767;
$1769 = (($1768) + 1859775393)|0;
$1770 = ((($x)) + 48|0);
$1771 = HEAP32[$1770>>2]|0;
$1772 = (($1769) + ($1771))|0;
$1773 = $dl;
$1774 = (($1773) + ($1772))|0;
$dl = $1774;
$1775 = $dl;
$1776 = (_rol_1221($1775,5)|0);
$1777 = $cl;
$1778 = (($1776) + ($1777))|0;
$dl = $1778;
$1779 = $al;
$1780 = (_rol_1221($1779,10)|0);
$al = $1780;
$1781 = $er;
$1782 = $ar;
$1783 = $1782 ^ -1;
$1784 = $1781 | $1783;
$1785 = $br;
$1786 = $1784 ^ $1785;
$1787 = (($1786) + 1836072691)|0;
$1788 = ((($x)) + 52|0);
$1789 = HEAP32[$1788>>2]|0;
$1790 = (($1787) + ($1789))|0;
$1791 = $dr;
$1792 = (($1791) + ($1790))|0;
$dr = $1792;
$1793 = $dr;
$1794 = (_rol_1221($1793,5)|0);
$1795 = $cr;
$1796 = (($1794) + ($1795))|0;
$dr = $1796;
$1797 = $ar;
$1798 = (_rol_1221($1797,10)|0);
$ar = $1798;
$1799 = $dl;
$1800 = $al;
$1801 = $1799 & $1800;
$1802 = $el;
$1803 = $al;
$1804 = $1803 ^ -1;
$1805 = $1802 & $1804;
$1806 = $1801 | $1805;
$1807 = (($1806) + -1894007588)|0;
$1808 = ((($x)) + 4|0);
$1809 = HEAP32[$1808>>2]|0;
$1810 = (($1807) + ($1809))|0;
$1811 = $cl;
$1812 = (($1811) + ($1810))|0;
$cl = $1812;
$1813 = $cl;
$1814 = (_rol_1221($1813,11)|0);
$1815 = $bl;
$1816 = (($1814) + ($1815))|0;
$cl = $1816;
$1817 = $el;
$1818 = (_rol_1221($1817,10)|0);
$el = $1818;
$1819 = $dr;
$1820 = $er;
$1821 = $1819 & $1820;
$1822 = $dr;
$1823 = $1822 ^ -1;
$1824 = $ar;
$1825 = $1823 & $1824;
$1826 = $1821 | $1825;
$1827 = (($1826) + 2053994217)|0;
$1828 = ((($x)) + 32|0);
$1829 = HEAP32[$1828>>2]|0;
$1830 = (($1827) + ($1829))|0;
$1831 = $cr;
$1832 = (($1831) + ($1830))|0;
$cr = $1832;
$1833 = $cr;
$1834 = (_rol_1221($1833,15)|0);
$1835 = $br;
$1836 = (($1834) + ($1835))|0;
$cr = $1836;
$1837 = $er;
$1838 = (_rol_1221($1837,10)|0);
$er = $1838;
$1839 = $cl;
$1840 = $el;
$1841 = $1839 & $1840;
$1842 = $dl;
$1843 = $el;
$1844 = $1843 ^ -1;
$1845 = $1842 & $1844;
$1846 = $1841 | $1845;
$1847 = (($1846) + -1894007588)|0;
$1848 = ((($x)) + 36|0);
$1849 = HEAP32[$1848>>2]|0;
$1850 = (($1847) + ($1849))|0;
$1851 = $bl;
$1852 = (($1851) + ($1850))|0;
$bl = $1852;
$1853 = $bl;
$1854 = (_rol_1221($1853,12)|0);
$1855 = $al;
$1856 = (($1854) + ($1855))|0;
$bl = $1856;
$1857 = $dl;
$1858 = (_rol_1221($1857,10)|0);
$dl = $1858;
$1859 = $cr;
$1860 = $dr;
$1861 = $1859 & $1860;
$1862 = $cr;
$1863 = $1862 ^ -1;
$1864 = $er;
$1865 = $1863 & $1864;
$1866 = $1861 | $1865;
$1867 = (($1866) + 2053994217)|0;
$1868 = ((($x)) + 24|0);
$1869 = HEAP32[$1868>>2]|0;
$1870 = (($1867) + ($1869))|0;
$1871 = $br;
$1872 = (($1871) + ($1870))|0;
$br = $1872;
$1873 = $br;
$1874 = (_rol_1221($1873,5)|0);
$1875 = $ar;
$1876 = (($1874) + ($1875))|0;
$br = $1876;
$1877 = $dr;
$1878 = (_rol_1221($1877,10)|0);
$dr = $1878;
$1879 = $bl;
$1880 = $dl;
$1881 = $1879 & $1880;
$1882 = $cl;
$1883 = $dl;
$1884 = $1883 ^ -1;
$1885 = $1882 & $1884;
$1886 = $1881 | $1885;
$1887 = (($1886) + -1894007588)|0;
$1888 = ((($x)) + 44|0);
$1889 = HEAP32[$1888>>2]|0;
$1890 = (($1887) + ($1889))|0;
$1891 = $al;
$1892 = (($1891) + ($1890))|0;
$al = $1892;
$1893 = $al;
$1894 = (_rol_1221($1893,14)|0);
$1895 = $el;
$1896 = (($1894) + ($1895))|0;
$al = $1896;
$1897 = $cl;
$1898 = (_rol_1221($1897,10)|0);
$cl = $1898;
$1899 = $br;
$1900 = $cr;
$1901 = $1899 & $1900;
$1902 = $br;
$1903 = $1902 ^ -1;
$1904 = $dr;
$1905 = $1903 & $1904;
$1906 = $1901 | $1905;
$1907 = (($1906) + 2053994217)|0;
$1908 = ((($x)) + 16|0);
$1909 = HEAP32[$1908>>2]|0;
$1910 = (($1907) + ($1909))|0;
$1911 = $ar;
$1912 = (($1911) + ($1910))|0;
$ar = $1912;
$1913 = $ar;
$1914 = (_rol_1221($1913,8)|0);
$1915 = $er;
$1916 = (($1914) + ($1915))|0;
$ar = $1916;
$1917 = $cr;
$1918 = (_rol_1221($1917,10)|0);
$cr = $1918;
$1919 = $al;
$1920 = $cl;
$1921 = $1919 & $1920;
$1922 = $bl;
$1923 = $cl;
$1924 = $1923 ^ -1;
$1925 = $1922 & $1924;
$1926 = $1921 | $1925;
$1927 = (($1926) + -1894007588)|0;
$1928 = ((($x)) + 40|0);
$1929 = HEAP32[$1928>>2]|0;
$1930 = (($1927) + ($1929))|0;
$1931 = $el;
$1932 = (($1931) + ($1930))|0;
$el = $1932;
$1933 = $el;
$1934 = (_rol_1221($1933,15)|0);
$1935 = $dl;
$1936 = (($1934) + ($1935))|0;
$el = $1936;
$1937 = $bl;
$1938 = (_rol_1221($1937,10)|0);
$bl = $1938;
$1939 = $ar;
$1940 = $br;
$1941 = $1939 & $1940;
$1942 = $ar;
$1943 = $1942 ^ -1;
$1944 = $cr;
$1945 = $1943 & $1944;
$1946 = $1941 | $1945;
$1947 = (($1946) + 2053994217)|0;
$1948 = ((($x)) + 4|0);
$1949 = HEAP32[$1948>>2]|0;
$1950 = (($1947) + ($1949))|0;
$1951 = $er;
$1952 = (($1951) + ($1950))|0;
$er = $1952;
$1953 = $er;
$1954 = (_rol_1221($1953,11)|0);
$1955 = $dr;
$1956 = (($1954) + ($1955))|0;
$er = $1956;
$1957 = $br;
$1958 = (_rol_1221($1957,10)|0);
$br = $1958;
$1959 = $el;
$1960 = $bl;
$1961 = $1959 & $1960;
$1962 = $al;
$1963 = $bl;
$1964 = $1963 ^ -1;
$1965 = $1962 & $1964;
$1966 = $1961 | $1965;
$1967 = (($1966) + -1894007588)|0;
$1968 = HEAP32[$x>>2]|0;
$1969 = (($1967) + ($1968))|0;
$1970 = $dl;
$1971 = (($1970) + ($1969))|0;
$dl = $1971;
$1972 = $dl;
$1973 = (_rol_1221($1972,14)|0);
$1974 = $cl;
$1975 = (($1973) + ($1974))|0;
$dl = $1975;
$1976 = $al;
$1977 = (_rol_1221($1976,10)|0);
$al = $1977;
$1978 = $er;
$1979 = $ar;
$1980 = $1978 & $1979;
$1981 = $er;
$1982 = $1981 ^ -1;
$1983 = $br;
$1984 = $1982 & $1983;
$1985 = $1980 | $1984;
$1986 = (($1985) + 2053994217)|0;
$1987 = ((($x)) + 12|0);
$1988 = HEAP32[$1987>>2]|0;
$1989 = (($1986) + ($1988))|0;
$1990 = $dr;
$1991 = (($1990) + ($1989))|0;
$dr = $1991;
$1992 = $dr;
$1993 = (_rol_1221($1992,14)|0);
$1994 = $cr;
$1995 = (($1993) + ($1994))|0;
$dr = $1995;
$1996 = $ar;
$1997 = (_rol_1221($1996,10)|0);
$ar = $1997;
$1998 = $dl;
$1999 = $al;
$2000 = $1998 & $1999;
$2001 = $el;
$2002 = $al;
$2003 = $2002 ^ -1;
$2004 = $2001 & $2003;
$2005 = $2000 | $2004;
$2006 = (($2005) + -1894007588)|0;
$2007 = ((($x)) + 32|0);
$2008 = HEAP32[$2007>>2]|0;
$2009 = (($2006) + ($2008))|0;
$2010 = $cl;
$2011 = (($2010) + ($2009))|0;
$cl = $2011;
$2012 = $cl;
$2013 = (_rol_1221($2012,15)|0);
$2014 = $bl;
$2015 = (($2013) + ($2014))|0;
$cl = $2015;
$2016 = $el;
$2017 = (_rol_1221($2016,10)|0);
$el = $2017;
$2018 = $dr;
$2019 = $er;
$2020 = $2018 & $2019;
$2021 = $dr;
$2022 = $2021 ^ -1;
$2023 = $ar;
$2024 = $2022 & $2023;
$2025 = $2020 | $2024;
$2026 = (($2025) + 2053994217)|0;
$2027 = ((($x)) + 44|0);
$2028 = HEAP32[$2027>>2]|0;
$2029 = (($2026) + ($2028))|0;
$2030 = $cr;
$2031 = (($2030) + ($2029))|0;
$cr = $2031;
$2032 = $cr;
$2033 = (_rol_1221($2032,14)|0);
$2034 = $br;
$2035 = (($2033) + ($2034))|0;
$cr = $2035;
$2036 = $er;
$2037 = (_rol_1221($2036,10)|0);
$er = $2037;
$2038 = $cl;
$2039 = $el;
$2040 = $2038 & $2039;
$2041 = $dl;
$2042 = $el;
$2043 = $2042 ^ -1;
$2044 = $2041 & $2043;
$2045 = $2040 | $2044;
$2046 = (($2045) + -1894007588)|0;
$2047 = ((($x)) + 48|0);
$2048 = HEAP32[$2047>>2]|0;
$2049 = (($2046) + ($2048))|0;
$2050 = $bl;
$2051 = (($2050) + ($2049))|0;
$bl = $2051;
$2052 = $bl;
$2053 = (_rol_1221($2052,9)|0);
$2054 = $al;
$2055 = (($2053) + ($2054))|0;
$bl = $2055;
$2056 = $dl;
$2057 = (_rol_1221($2056,10)|0);
$dl = $2057;
$2058 = $cr;
$2059 = $dr;
$2060 = $2058 & $2059;
$2061 = $cr;
$2062 = $2061 ^ -1;
$2063 = $er;
$2064 = $2062 & $2063;
$2065 = $2060 | $2064;
$2066 = (($2065) + 2053994217)|0;
$2067 = ((($x)) + 60|0);
$2068 = HEAP32[$2067>>2]|0;
$2069 = (($2066) + ($2068))|0;
$2070 = $br;
$2071 = (($2070) + ($2069))|0;
$br = $2071;
$2072 = $br;
$2073 = (_rol_1221($2072,6)|0);
$2074 = $ar;
$2075 = (($2073) + ($2074))|0;
$br = $2075;
$2076 = $dr;
$2077 = (_rol_1221($2076,10)|0);
$dr = $2077;
$2078 = $bl;
$2079 = $dl;
$2080 = $2078 & $2079;
$2081 = $cl;
$2082 = $dl;
$2083 = $2082 ^ -1;
$2084 = $2081 & $2083;
$2085 = $2080 | $2084;
$2086 = (($2085) + -1894007588)|0;
$2087 = ((($x)) + 16|0);
$2088 = HEAP32[$2087>>2]|0;
$2089 = (($2086) + ($2088))|0;
$2090 = $al;
$2091 = (($2090) + ($2089))|0;
$al = $2091;
$2092 = $al;
$2093 = (_rol_1221($2092,8)|0);
$2094 = $el;
$2095 = (($2093) + ($2094))|0;
$al = $2095;
$2096 = $cl;
$2097 = (_rol_1221($2096,10)|0);
$cl = $2097;
$2098 = $br;
$2099 = $cr;
$2100 = $2098 & $2099;
$2101 = $br;
$2102 = $2101 ^ -1;
$2103 = $dr;
$2104 = $2102 & $2103;
$2105 = $2100 | $2104;
$2106 = (($2105) + 2053994217)|0;
$2107 = HEAP32[$x>>2]|0;
$2108 = (($2106) + ($2107))|0;
$2109 = $ar;
$2110 = (($2109) + ($2108))|0;
$ar = $2110;
$2111 = $ar;
$2112 = (_rol_1221($2111,14)|0);
$2113 = $er;
$2114 = (($2112) + ($2113))|0;
$ar = $2114;
$2115 = $cr;
$2116 = (_rol_1221($2115,10)|0);
$cr = $2116;
$2117 = $al;
$2118 = $cl;
$2119 = $2117 & $2118;
$2120 = $bl;
$2121 = $cl;
$2122 = $2121 ^ -1;
$2123 = $2120 & $2122;
$2124 = $2119 | $2123;
$2125 = (($2124) + -1894007588)|0;
$2126 = ((($x)) + 52|0);
$2127 = HEAP32[$2126>>2]|0;
$2128 = (($2125) + ($2127))|0;
$2129 = $el;
$2130 = (($2129) + ($2128))|0;
$el = $2130;
$2131 = $el;
$2132 = (_rol_1221($2131,9)|0);
$2133 = $dl;
$2134 = (($2132) + ($2133))|0;
$el = $2134;
$2135 = $bl;
$2136 = (_rol_1221($2135,10)|0);
$bl = $2136;
$2137 = $ar;
$2138 = $br;
$2139 = $2137 & $2138;
$2140 = $ar;
$2141 = $2140 ^ -1;
$2142 = $cr;
$2143 = $2141 & $2142;
$2144 = $2139 | $2143;
$2145 = (($2144) + 2053994217)|0;
$2146 = ((($x)) + 20|0);
$2147 = HEAP32[$2146>>2]|0;
$2148 = (($2145) + ($2147))|0;
$2149 = $er;
$2150 = (($2149) + ($2148))|0;
$er = $2150;
$2151 = $er;
$2152 = (_rol_1221($2151,6)|0);
$2153 = $dr;
$2154 = (($2152) + ($2153))|0;
$er = $2154;
$2155 = $br;
$2156 = (_rol_1221($2155,10)|0);
$br = $2156;
$2157 = $el;
$2158 = $bl;
$2159 = $2157 & $2158;
$2160 = $al;
$2161 = $bl;
$2162 = $2161 ^ -1;
$2163 = $2160 & $2162;
$2164 = $2159 | $2163;
$2165 = (($2164) + -1894007588)|0;
$2166 = ((($x)) + 12|0);
$2167 = HEAP32[$2166>>2]|0;
$2168 = (($2165) + ($2167))|0;
$2169 = $dl;
$2170 = (($2169) + ($2168))|0;
$dl = $2170;
$2171 = $dl;
$2172 = (_rol_1221($2171,14)|0);
$2173 = $cl;
$2174 = (($2172) + ($2173))|0;
$dl = $2174;
$2175 = $al;
$2176 = (_rol_1221($2175,10)|0);
$al = $2176;
$2177 = $er;
$2178 = $ar;
$2179 = $2177 & $2178;
$2180 = $er;
$2181 = $2180 ^ -1;
$2182 = $br;
$2183 = $2181 & $2182;
$2184 = $2179 | $2183;
$2185 = (($2184) + 2053994217)|0;
$2186 = ((($x)) + 48|0);
$2187 = HEAP32[$2186>>2]|0;
$2188 = (($2185) + ($2187))|0;
$2189 = $dr;
$2190 = (($2189) + ($2188))|0;
$dr = $2190;
$2191 = $dr;
$2192 = (_rol_1221($2191,9)|0);
$2193 = $cr;
$2194 = (($2192) + ($2193))|0;
$dr = $2194;
$2195 = $ar;
$2196 = (_rol_1221($2195,10)|0);
$ar = $2196;
$2197 = $dl;
$2198 = $al;
$2199 = $2197 & $2198;
$2200 = $el;
$2201 = $al;
$2202 = $2201 ^ -1;
$2203 = $2200 & $2202;
$2204 = $2199 | $2203;
$2205 = (($2204) + -1894007588)|0;
$2206 = ((($x)) + 28|0);
$2207 = HEAP32[$2206>>2]|0;
$2208 = (($2205) + ($2207))|0;
$2209 = $cl;
$2210 = (($2209) + ($2208))|0;
$cl = $2210;
$2211 = $cl;
$2212 = (_rol_1221($2211,5)|0);
$2213 = $bl;
$2214 = (($2212) + ($2213))|0;
$cl = $2214;
$2215 = $el;
$2216 = (_rol_1221($2215,10)|0);
$el = $2216;
$2217 = $dr;
$2218 = $er;
$2219 = $2217 & $2218;
$2220 = $dr;
$2221 = $2220 ^ -1;
$2222 = $ar;
$2223 = $2221 & $2222;
$2224 = $2219 | $2223;
$2225 = (($2224) + 2053994217)|0;
$2226 = ((($x)) + 8|0);
$2227 = HEAP32[$2226>>2]|0;
$2228 = (($2225) + ($2227))|0;
$2229 = $cr;
$2230 = (($2229) + ($2228))|0;
$cr = $2230;
$2231 = $cr;
$2232 = (_rol_1221($2231,12)|0);
$2233 = $br;
$2234 = (($2232) + ($2233))|0;
$cr = $2234;
$2235 = $er;
$2236 = (_rol_1221($2235,10)|0);
$er = $2236;
$2237 = $cl;
$2238 = $el;
$2239 = $2237 & $2238;
$2240 = $dl;
$2241 = $el;
$2242 = $2241 ^ -1;
$2243 = $2240 & $2242;
$2244 = $2239 | $2243;
$2245 = (($2244) + -1894007588)|0;
$2246 = ((($x)) + 60|0);
$2247 = HEAP32[$2246>>2]|0;
$2248 = (($2245) + ($2247))|0;
$2249 = $bl;
$2250 = (($2249) + ($2248))|0;
$bl = $2250;
$2251 = $bl;
$2252 = (_rol_1221($2251,6)|0);
$2253 = $al;
$2254 = (($2252) + ($2253))|0;
$bl = $2254;
$2255 = $dl;
$2256 = (_rol_1221($2255,10)|0);
$dl = $2256;
$2257 = $cr;
$2258 = $dr;
$2259 = $2257 & $2258;
$2260 = $cr;
$2261 = $2260 ^ -1;
$2262 = $er;
$2263 = $2261 & $2262;
$2264 = $2259 | $2263;
$2265 = (($2264) + 2053994217)|0;
$2266 = ((($x)) + 52|0);
$2267 = HEAP32[$2266>>2]|0;
$2268 = (($2265) + ($2267))|0;
$2269 = $br;
$2270 = (($2269) + ($2268))|0;
$br = $2270;
$2271 = $br;
$2272 = (_rol_1221($2271,9)|0);
$2273 = $ar;
$2274 = (($2272) + ($2273))|0;
$br = $2274;
$2275 = $dr;
$2276 = (_rol_1221($2275,10)|0);
$dr = $2276;
$2277 = $bl;
$2278 = $dl;
$2279 = $2277 & $2278;
$2280 = $cl;
$2281 = $dl;
$2282 = $2281 ^ -1;
$2283 = $2280 & $2282;
$2284 = $2279 | $2283;
$2285 = (($2284) + -1894007588)|0;
$2286 = ((($x)) + 56|0);
$2287 = HEAP32[$2286>>2]|0;
$2288 = (($2285) + ($2287))|0;
$2289 = $al;
$2290 = (($2289) + ($2288))|0;
$al = $2290;
$2291 = $al;
$2292 = (_rol_1221($2291,8)|0);
$2293 = $el;
$2294 = (($2292) + ($2293))|0;
$al = $2294;
$2295 = $cl;
$2296 = (_rol_1221($2295,10)|0);
$cl = $2296;
$2297 = $br;
$2298 = $cr;
$2299 = $2297 & $2298;
$2300 = $br;
$2301 = $2300 ^ -1;
$2302 = $dr;
$2303 = $2301 & $2302;
$2304 = $2299 | $2303;
$2305 = (($2304) + 2053994217)|0;
$2306 = ((($x)) + 36|0);
$2307 = HEAP32[$2306>>2]|0;
$2308 = (($2305) + ($2307))|0;
$2309 = $ar;
$2310 = (($2309) + ($2308))|0;
$ar = $2310;
$2311 = $ar;
$2312 = (_rol_1221($2311,12)|0);
$2313 = $er;
$2314 = (($2312) + ($2313))|0;
$ar = $2314;
$2315 = $cr;
$2316 = (_rol_1221($2315,10)|0);
$cr = $2316;
$2317 = $al;
$2318 = $cl;
$2319 = $2317 & $2318;
$2320 = $bl;
$2321 = $cl;
$2322 = $2321 ^ -1;
$2323 = $2320 & $2322;
$2324 = $2319 | $2323;
$2325 = (($2324) + -1894007588)|0;
$2326 = ((($x)) + 20|0);
$2327 = HEAP32[$2326>>2]|0;
$2328 = (($2325) + ($2327))|0;
$2329 = $el;
$2330 = (($2329) + ($2328))|0;
$el = $2330;
$2331 = $el;
$2332 = (_rol_1221($2331,6)|0);
$2333 = $dl;
$2334 = (($2332) + ($2333))|0;
$el = $2334;
$2335 = $bl;
$2336 = (_rol_1221($2335,10)|0);
$bl = $2336;
$2337 = $ar;
$2338 = $br;
$2339 = $2337 & $2338;
$2340 = $ar;
$2341 = $2340 ^ -1;
$2342 = $cr;
$2343 = $2341 & $2342;
$2344 = $2339 | $2343;
$2345 = (($2344) + 2053994217)|0;
$2346 = ((($x)) + 28|0);
$2347 = HEAP32[$2346>>2]|0;
$2348 = (($2345) + ($2347))|0;
$2349 = $er;
$2350 = (($2349) + ($2348))|0;
$er = $2350;
$2351 = $er;
$2352 = (_rol_1221($2351,5)|0);
$2353 = $dr;
$2354 = (($2352) + ($2353))|0;
$er = $2354;
$2355 = $br;
$2356 = (_rol_1221($2355,10)|0);
$br = $2356;
$2357 = $el;
$2358 = $bl;
$2359 = $2357 & $2358;
$2360 = $al;
$2361 = $bl;
$2362 = $2361 ^ -1;
$2363 = $2360 & $2362;
$2364 = $2359 | $2363;
$2365 = (($2364) + -1894007588)|0;
$2366 = ((($x)) + 24|0);
$2367 = HEAP32[$2366>>2]|0;
$2368 = (($2365) + ($2367))|0;
$2369 = $dl;
$2370 = (($2369) + ($2368))|0;
$dl = $2370;
$2371 = $dl;
$2372 = (_rol_1221($2371,5)|0);
$2373 = $cl;
$2374 = (($2372) + ($2373))|0;
$dl = $2374;
$2375 = $al;
$2376 = (_rol_1221($2375,10)|0);
$al = $2376;
$2377 = $er;
$2378 = $ar;
$2379 = $2377 & $2378;
$2380 = $er;
$2381 = $2380 ^ -1;
$2382 = $br;
$2383 = $2381 & $2382;
$2384 = $2379 | $2383;
$2385 = (($2384) + 2053994217)|0;
$2386 = ((($x)) + 40|0);
$2387 = HEAP32[$2386>>2]|0;
$2388 = (($2385) + ($2387))|0;
$2389 = $dr;
$2390 = (($2389) + ($2388))|0;
$dr = $2390;
$2391 = $dr;
$2392 = (_rol_1221($2391,15)|0);
$2393 = $cr;
$2394 = (($2392) + ($2393))|0;
$dr = $2394;
$2395 = $ar;
$2396 = (_rol_1221($2395,10)|0);
$ar = $2396;
$2397 = $dl;
$2398 = $al;
$2399 = $2397 & $2398;
$2400 = $el;
$2401 = $al;
$2402 = $2401 ^ -1;
$2403 = $2400 & $2402;
$2404 = $2399 | $2403;
$2405 = (($2404) + -1894007588)|0;
$2406 = ((($x)) + 8|0);
$2407 = HEAP32[$2406>>2]|0;
$2408 = (($2405) + ($2407))|0;
$2409 = $cl;
$2410 = (($2409) + ($2408))|0;
$cl = $2410;
$2411 = $cl;
$2412 = (_rol_1221($2411,12)|0);
$2413 = $bl;
$2414 = (($2412) + ($2413))|0;
$cl = $2414;
$2415 = $el;
$2416 = (_rol_1221($2415,10)|0);
$el = $2416;
$2417 = $dr;
$2418 = $er;
$2419 = $2417 & $2418;
$2420 = $dr;
$2421 = $2420 ^ -1;
$2422 = $ar;
$2423 = $2421 & $2422;
$2424 = $2419 | $2423;
$2425 = (($2424) + 2053994217)|0;
$2426 = ((($x)) + 56|0);
$2427 = HEAP32[$2426>>2]|0;
$2428 = (($2425) + ($2427))|0;
$2429 = $cr;
$2430 = (($2429) + ($2428))|0;
$cr = $2430;
$2431 = $cr;
$2432 = (_rol_1221($2431,8)|0);
$2433 = $br;
$2434 = (($2432) + ($2433))|0;
$cr = $2434;
$2435 = $er;
$2436 = (_rol_1221($2435,10)|0);
$er = $2436;
$2437 = $cl;
$2438 = $dl;
$2439 = $el;
$2440 = $2439 ^ -1;
$2441 = $2438 | $2440;
$2442 = $2437 ^ $2441;
$2443 = (($2442) + -1454113458)|0;
$2444 = ((($x)) + 16|0);
$2445 = HEAP32[$2444>>2]|0;
$2446 = (($2443) + ($2445))|0;
$2447 = $bl;
$2448 = (($2447) + ($2446))|0;
$bl = $2448;
$2449 = $bl;
$2450 = (_rol_1221($2449,9)|0);
$2451 = $al;
$2452 = (($2450) + ($2451))|0;
$bl = $2452;
$2453 = $dl;
$2454 = (_rol_1221($2453,10)|0);
$dl = $2454;
$2455 = $cr;
$2456 = $dr;
$2457 = $2455 ^ $2456;
$2458 = $er;
$2459 = $2457 ^ $2458;
$2460 = (($2459) + 0)|0;
$2461 = ((($x)) + 48|0);
$2462 = HEAP32[$2461>>2]|0;
$2463 = (($2460) + ($2462))|0;
$2464 = $br;
$2465 = (($2464) + ($2463))|0;
$br = $2465;
$2466 = $br;
$2467 = (_rol_1221($2466,8)|0);
$2468 = $ar;
$2469 = (($2467) + ($2468))|0;
$br = $2469;
$2470 = $dr;
$2471 = (_rol_1221($2470,10)|0);
$dr = $2471;
$2472 = $bl;
$2473 = $cl;
$2474 = $dl;
$2475 = $2474 ^ -1;
$2476 = $2473 | $2475;
$2477 = $2472 ^ $2476;
$2478 = (($2477) + -1454113458)|0;
$2479 = HEAP32[$x>>2]|0;
$2480 = (($2478) + ($2479))|0;
$2481 = $al;
$2482 = (($2481) + ($2480))|0;
$al = $2482;
$2483 = $al;
$2484 = (_rol_1221($2483,15)|0);
$2485 = $el;
$2486 = (($2484) + ($2485))|0;
$al = $2486;
$2487 = $cl;
$2488 = (_rol_1221($2487,10)|0);
$cl = $2488;
$2489 = $br;
$2490 = $cr;
$2491 = $2489 ^ $2490;
$2492 = $dr;
$2493 = $2491 ^ $2492;
$2494 = (($2493) + 0)|0;
$2495 = ((($x)) + 60|0);
$2496 = HEAP32[$2495>>2]|0;
$2497 = (($2494) + ($2496))|0;
$2498 = $ar;
$2499 = (($2498) + ($2497))|0;
$ar = $2499;
$2500 = $ar;
$2501 = (_rol_1221($2500,5)|0);
$2502 = $er;
$2503 = (($2501) + ($2502))|0;
$ar = $2503;
$2504 = $cr;
$2505 = (_rol_1221($2504,10)|0);
$cr = $2505;
$2506 = $al;
$2507 = $bl;
$2508 = $cl;
$2509 = $2508 ^ -1;
$2510 = $2507 | $2509;
$2511 = $2506 ^ $2510;
$2512 = (($2511) + -1454113458)|0;
$2513 = ((($x)) + 20|0);
$2514 = HEAP32[$2513>>2]|0;
$2515 = (($2512) + ($2514))|0;
$2516 = $el;
$2517 = (($2516) + ($2515))|0;
$el = $2517;
$2518 = $el;
$2519 = (_rol_1221($2518,5)|0);
$2520 = $dl;
$2521 = (($2519) + ($2520))|0;
$el = $2521;
$2522 = $bl;
$2523 = (_rol_1221($2522,10)|0);
$bl = $2523;
$2524 = $ar;
$2525 = $br;
$2526 = $2524 ^ $2525;
$2527 = $cr;
$2528 = $2526 ^ $2527;
$2529 = (($2528) + 0)|0;
$2530 = ((($x)) + 40|0);
$2531 = HEAP32[$2530>>2]|0;
$2532 = (($2529) + ($2531))|0;
$2533 = $er;
$2534 = (($2533) + ($2532))|0;
$er = $2534;
$2535 = $er;
$2536 = (_rol_1221($2535,12)|0);
$2537 = $dr;
$2538 = (($2536) + ($2537))|0;
$er = $2538;
$2539 = $br;
$2540 = (_rol_1221($2539,10)|0);
$br = $2540;
$2541 = $el;
$2542 = $al;
$2543 = $bl;
$2544 = $2543 ^ -1;
$2545 = $2542 | $2544;
$2546 = $2541 ^ $2545;
$2547 = (($2546) + -1454113458)|0;
$2548 = ((($x)) + 36|0);
$2549 = HEAP32[$2548>>2]|0;
$2550 = (($2547) + ($2549))|0;
$2551 = $dl;
$2552 = (($2551) + ($2550))|0;
$dl = $2552;
$2553 = $dl;
$2554 = (_rol_1221($2553,11)|0);
$2555 = $cl;
$2556 = (($2554) + ($2555))|0;
$dl = $2556;
$2557 = $al;
$2558 = (_rol_1221($2557,10)|0);
$al = $2558;
$2559 = $er;
$2560 = $ar;
$2561 = $2559 ^ $2560;
$2562 = $br;
$2563 = $2561 ^ $2562;
$2564 = (($2563) + 0)|0;
$2565 = ((($x)) + 16|0);
$2566 = HEAP32[$2565>>2]|0;
$2567 = (($2564) + ($2566))|0;
$2568 = $dr;
$2569 = (($2568) + ($2567))|0;
$dr = $2569;
$2570 = $dr;
$2571 = (_rol_1221($2570,9)|0);
$2572 = $cr;
$2573 = (($2571) + ($2572))|0;
$dr = $2573;
$2574 = $ar;
$2575 = (_rol_1221($2574,10)|0);
$ar = $2575;
$2576 = $dl;
$2577 = $el;
$2578 = $al;
$2579 = $2578 ^ -1;
$2580 = $2577 | $2579;
$2581 = $2576 ^ $2580;
$2582 = (($2581) + -1454113458)|0;
$2583 = ((($x)) + 28|0);
$2584 = HEAP32[$2583>>2]|0;
$2585 = (($2582) + ($2584))|0;
$2586 = $cl;
$2587 = (($2586) + ($2585))|0;
$cl = $2587;
$2588 = $cl;
$2589 = (_rol_1221($2588,6)|0);
$2590 = $bl;
$2591 = (($2589) + ($2590))|0;
$cl = $2591;
$2592 = $el;
$2593 = (_rol_1221($2592,10)|0);
$el = $2593;
$2594 = $dr;
$2595 = $er;
$2596 = $2594 ^ $2595;
$2597 = $ar;
$2598 = $2596 ^ $2597;
$2599 = (($2598) + 0)|0;
$2600 = ((($x)) + 4|0);
$2601 = HEAP32[$2600>>2]|0;
$2602 = (($2599) + ($2601))|0;
$2603 = $cr;
$2604 = (($2603) + ($2602))|0;
$cr = $2604;
$2605 = $cr;
$2606 = (_rol_1221($2605,12)|0);
$2607 = $br;
$2608 = (($2606) + ($2607))|0;
$cr = $2608;
$2609 = $er;
$2610 = (_rol_1221($2609,10)|0);
$er = $2610;
$2611 = $cl;
$2612 = $dl;
$2613 = $el;
$2614 = $2613 ^ -1;
$2615 = $2612 | $2614;
$2616 = $2611 ^ $2615;
$2617 = (($2616) + -1454113458)|0;
$2618 = ((($x)) + 48|0);
$2619 = HEAP32[$2618>>2]|0;
$2620 = (($2617) + ($2619))|0;
$2621 = $bl;
$2622 = (($2621) + ($2620))|0;
$bl = $2622;
$2623 = $bl;
$2624 = (_rol_1221($2623,8)|0);
$2625 = $al;
$2626 = (($2624) + ($2625))|0;
$bl = $2626;
$2627 = $dl;
$2628 = (_rol_1221($2627,10)|0);
$dl = $2628;
$2629 = $cr;
$2630 = $dr;
$2631 = $2629 ^ $2630;
$2632 = $er;
$2633 = $2631 ^ $2632;
$2634 = (($2633) + 0)|0;
$2635 = ((($x)) + 20|0);
$2636 = HEAP32[$2635>>2]|0;
$2637 = (($2634) + ($2636))|0;
$2638 = $br;
$2639 = (($2638) + ($2637))|0;
$br = $2639;
$2640 = $br;
$2641 = (_rol_1221($2640,5)|0);
$2642 = $ar;
$2643 = (($2641) + ($2642))|0;
$br = $2643;
$2644 = $dr;
$2645 = (_rol_1221($2644,10)|0);
$dr = $2645;
$2646 = $bl;
$2647 = $cl;
$2648 = $dl;
$2649 = $2648 ^ -1;
$2650 = $2647 | $2649;
$2651 = $2646 ^ $2650;
$2652 = (($2651) + -1454113458)|0;
$2653 = ((($x)) + 8|0);
$2654 = HEAP32[$2653>>2]|0;
$2655 = (($2652) + ($2654))|0;
$2656 = $al;
$2657 = (($2656) + ($2655))|0;
$al = $2657;
$2658 = $al;
$2659 = (_rol_1221($2658,13)|0);
$2660 = $el;
$2661 = (($2659) + ($2660))|0;
$al = $2661;
$2662 = $cl;
$2663 = (_rol_1221($2662,10)|0);
$cl = $2663;
$2664 = $br;
$2665 = $cr;
$2666 = $2664 ^ $2665;
$2667 = $dr;
$2668 = $2666 ^ $2667;
$2669 = (($2668) + 0)|0;
$2670 = ((($x)) + 32|0);
$2671 = HEAP32[$2670>>2]|0;
$2672 = (($2669) + ($2671))|0;
$2673 = $ar;
$2674 = (($2673) + ($2672))|0;
$ar = $2674;
$2675 = $ar;
$2676 = (_rol_1221($2675,14)|0);
$2677 = $er;
$2678 = (($2676) + ($2677))|0;
$ar = $2678;
$2679 = $cr;
$2680 = (_rol_1221($2679,10)|0);
$cr = $2680;
$2681 = $al;
$2682 = $bl;
$2683 = $cl;
$2684 = $2683 ^ -1;
$2685 = $2682 | $2684;
$2686 = $2681 ^ $2685;
$2687 = (($2686) + -1454113458)|0;
$2688 = ((($x)) + 40|0);
$2689 = HEAP32[$2688>>2]|0;
$2690 = (($2687) + ($2689))|0;
$2691 = $el;
$2692 = (($2691) + ($2690))|0;
$el = $2692;
$2693 = $el;
$2694 = (_rol_1221($2693,12)|0);
$2695 = $dl;
$2696 = (($2694) + ($2695))|0;
$el = $2696;
$2697 = $bl;
$2698 = (_rol_1221($2697,10)|0);
$bl = $2698;
$2699 = $ar;
$2700 = $br;
$2701 = $2699 ^ $2700;
$2702 = $cr;
$2703 = $2701 ^ $2702;
$2704 = (($2703) + 0)|0;
$2705 = ((($x)) + 28|0);
$2706 = HEAP32[$2705>>2]|0;
$2707 = (($2704) + ($2706))|0;
$2708 = $er;
$2709 = (($2708) + ($2707))|0;
$er = $2709;
$2710 = $er;
$2711 = (_rol_1221($2710,6)|0);
$2712 = $dr;
$2713 = (($2711) + ($2712))|0;
$er = $2713;
$2714 = $br;
$2715 = (_rol_1221($2714,10)|0);
$br = $2715;
$2716 = $el;
$2717 = $al;
$2718 = $bl;
$2719 = $2718 ^ -1;
$2720 = $2717 | $2719;
$2721 = $2716 ^ $2720;
$2722 = (($2721) + -1454113458)|0;
$2723 = ((($x)) + 56|0);
$2724 = HEAP32[$2723>>2]|0;
$2725 = (($2722) + ($2724))|0;
$2726 = $dl;
$2727 = (($2726) + ($2725))|0;
$dl = $2727;
$2728 = $dl;
$2729 = (_rol_1221($2728,5)|0);
$2730 = $cl;
$2731 = (($2729) + ($2730))|0;
$dl = $2731;
$2732 = $al;
$2733 = (_rol_1221($2732,10)|0);
$al = $2733;
$2734 = $er;
$2735 = $ar;
$2736 = $2734 ^ $2735;
$2737 = $br;
$2738 = $2736 ^ $2737;
$2739 = (($2738) + 0)|0;
$2740 = ((($x)) + 24|0);
$2741 = HEAP32[$2740>>2]|0;
$2742 = (($2739) + ($2741))|0;
$2743 = $dr;
$2744 = (($2743) + ($2742))|0;
$dr = $2744;
$2745 = $dr;
$2746 = (_rol_1221($2745,8)|0);
$2747 = $cr;
$2748 = (($2746) + ($2747))|0;
$dr = $2748;
$2749 = $ar;
$2750 = (_rol_1221($2749,10)|0);
$ar = $2750;
$2751 = $dl;
$2752 = $el;
$2753 = $al;
$2754 = $2753 ^ -1;
$2755 = $2752 | $2754;
$2756 = $2751 ^ $2755;
$2757 = (($2756) + -1454113458)|0;
$2758 = ((($x)) + 4|0);
$2759 = HEAP32[$2758>>2]|0;
$2760 = (($2757) + ($2759))|0;
$2761 = $cl;
$2762 = (($2761) + ($2760))|0;
$cl = $2762;
$2763 = $cl;
$2764 = (_rol_1221($2763,12)|0);
$2765 = $bl;
$2766 = (($2764) + ($2765))|0;
$cl = $2766;
$2767 = $el;
$2768 = (_rol_1221($2767,10)|0);
$el = $2768;
$2769 = $dr;
$2770 = $er;
$2771 = $2769 ^ $2770;
$2772 = $ar;
$2773 = $2771 ^ $2772;
$2774 = (($2773) + 0)|0;
$2775 = ((($x)) + 8|0);
$2776 = HEAP32[$2775>>2]|0;
$2777 = (($2774) + ($2776))|0;
$2778 = $cr;
$2779 = (($2778) + ($2777))|0;
$cr = $2779;
$2780 = $cr;
$2781 = (_rol_1221($2780,13)|0);
$2782 = $br;
$2783 = (($2781) + ($2782))|0;
$cr = $2783;
$2784 = $er;
$2785 = (_rol_1221($2784,10)|0);
$er = $2785;
$2786 = $cl;
$2787 = $dl;
$2788 = $el;
$2789 = $2788 ^ -1;
$2790 = $2787 | $2789;
$2791 = $2786 ^ $2790;
$2792 = (($2791) + -1454113458)|0;
$2793 = ((($x)) + 12|0);
$2794 = HEAP32[$2793>>2]|0;
$2795 = (($2792) + ($2794))|0;
$2796 = $bl;
$2797 = (($2796) + ($2795))|0;
$bl = $2797;
$2798 = $bl;
$2799 = (_rol_1221($2798,13)|0);
$2800 = $al;
$2801 = (($2799) + ($2800))|0;
$bl = $2801;
$2802 = $dl;
$2803 = (_rol_1221($2802,10)|0);
$dl = $2803;
$2804 = $cr;
$2805 = $dr;
$2806 = $2804 ^ $2805;
$2807 = $er;
$2808 = $2806 ^ $2807;
$2809 = (($2808) + 0)|0;
$2810 = ((($x)) + 52|0);
$2811 = HEAP32[$2810>>2]|0;
$2812 = (($2809) + ($2811))|0;
$2813 = $br;
$2814 = (($2813) + ($2812))|0;
$br = $2814;
$2815 = $br;
$2816 = (_rol_1221($2815,6)|0);
$2817 = $ar;
$2818 = (($2816) + ($2817))|0;
$br = $2818;
$2819 = $dr;
$2820 = (_rol_1221($2819,10)|0);
$dr = $2820;
$2821 = $bl;
$2822 = $cl;
$2823 = $dl;
$2824 = $2823 ^ -1;
$2825 = $2822 | $2824;
$2826 = $2821 ^ $2825;
$2827 = (($2826) + -1454113458)|0;
$2828 = ((($x)) + 32|0);
$2829 = HEAP32[$2828>>2]|0;
$2830 = (($2827) + ($2829))|0;
$2831 = $al;
$2832 = (($2831) + ($2830))|0;
$al = $2832;
$2833 = $al;
$2834 = (_rol_1221($2833,14)|0);
$2835 = $el;
$2836 = (($2834) + ($2835))|0;
$al = $2836;
$2837 = $cl;
$2838 = (_rol_1221($2837,10)|0);
$cl = $2838;
$2839 = $br;
$2840 = $cr;
$2841 = $2839 ^ $2840;
$2842 = $dr;
$2843 = $2841 ^ $2842;
$2844 = (($2843) + 0)|0;
$2845 = ((($x)) + 56|0);
$2846 = HEAP32[$2845>>2]|0;
$2847 = (($2844) + ($2846))|0;
$2848 = $ar;
$2849 = (($2848) + ($2847))|0;
$ar = $2849;
$2850 = $ar;
$2851 = (_rol_1221($2850,5)|0);
$2852 = $er;
$2853 = (($2851) + ($2852))|0;
$ar = $2853;
$2854 = $cr;
$2855 = (_rol_1221($2854,10)|0);
$cr = $2855;
$2856 = $al;
$2857 = $bl;
$2858 = $cl;
$2859 = $2858 ^ -1;
$2860 = $2857 | $2859;
$2861 = $2856 ^ $2860;
$2862 = (($2861) + -1454113458)|0;
$2863 = ((($x)) + 44|0);
$2864 = HEAP32[$2863>>2]|0;
$2865 = (($2862) + ($2864))|0;
$2866 = $el;
$2867 = (($2866) + ($2865))|0;
$el = $2867;
$2868 = $el;
$2869 = (_rol_1221($2868,11)|0);
$2870 = $dl;
$2871 = (($2869) + ($2870))|0;
$el = $2871;
$2872 = $bl;
$2873 = (_rol_1221($2872,10)|0);
$bl = $2873;
$2874 = $ar;
$2875 = $br;
$2876 = $2874 ^ $2875;
$2877 = $cr;
$2878 = $2876 ^ $2877;
$2879 = (($2878) + 0)|0;
$2880 = HEAP32[$x>>2]|0;
$2881 = (($2879) + ($2880))|0;
$2882 = $er;
$2883 = (($2882) + ($2881))|0;
$er = $2883;
$2884 = $er;
$2885 = (_rol_1221($2884,15)|0);
$2886 = $dr;
$2887 = (($2885) + ($2886))|0;
$er = $2887;
$2888 = $br;
$2889 = (_rol_1221($2888,10)|0);
$br = $2889;
$2890 = $el;
$2891 = $al;
$2892 = $bl;
$2893 = $2892 ^ -1;
$2894 = $2891 | $2893;
$2895 = $2890 ^ $2894;
$2896 = (($2895) + -1454113458)|0;
$2897 = ((($x)) + 24|0);
$2898 = HEAP32[$2897>>2]|0;
$2899 = (($2896) + ($2898))|0;
$2900 = $dl;
$2901 = (($2900) + ($2899))|0;
$dl = $2901;
$2902 = $dl;
$2903 = (_rol_1221($2902,8)|0);
$2904 = $cl;
$2905 = (($2903) + ($2904))|0;
$dl = $2905;
$2906 = $al;
$2907 = (_rol_1221($2906,10)|0);
$al = $2907;
$2908 = $er;
$2909 = $ar;
$2910 = $2908 ^ $2909;
$2911 = $br;
$2912 = $2910 ^ $2911;
$2913 = (($2912) + 0)|0;
$2914 = ((($x)) + 12|0);
$2915 = HEAP32[$2914>>2]|0;
$2916 = (($2913) + ($2915))|0;
$2917 = $dr;
$2918 = (($2917) + ($2916))|0;
$dr = $2918;
$2919 = $dr;
$2920 = (_rol_1221($2919,13)|0);
$2921 = $cr;
$2922 = (($2920) + ($2921))|0;
$dr = $2922;
$2923 = $ar;
$2924 = (_rol_1221($2923,10)|0);
$ar = $2924;
$2925 = $dl;
$2926 = $el;
$2927 = $al;
$2928 = $2927 ^ -1;
$2929 = $2926 | $2928;
$2930 = $2925 ^ $2929;
$2931 = (($2930) + -1454113458)|0;
$2932 = ((($x)) + 60|0);
$2933 = HEAP32[$2932>>2]|0;
$2934 = (($2931) + ($2933))|0;
$2935 = $cl;
$2936 = (($2935) + ($2934))|0;
$cl = $2936;
$2937 = $cl;
$2938 = (_rol_1221($2937,5)|0);
$2939 = $bl;
$2940 = (($2938) + ($2939))|0;
$cl = $2940;
$2941 = $el;
$2942 = (_rol_1221($2941,10)|0);
$el = $2942;
$2943 = $dr;
$2944 = $er;
$2945 = $2943 ^ $2944;
$2946 = $ar;
$2947 = $2945 ^ $2946;
$2948 = (($2947) + 0)|0;
$2949 = ((($x)) + 36|0);
$2950 = HEAP32[$2949>>2]|0;
$2951 = (($2948) + ($2950))|0;
$2952 = $cr;
$2953 = (($2952) + ($2951))|0;
$cr = $2953;
$2954 = $cr;
$2955 = (_rol_1221($2954,11)|0);
$2956 = $br;
$2957 = (($2955) + ($2956))|0;
$cr = $2957;
$2958 = $er;
$2959 = (_rol_1221($2958,10)|0);
$er = $2959;
$2960 = $cl;
$2961 = $dl;
$2962 = $el;
$2963 = $2962 ^ -1;
$2964 = $2961 | $2963;
$2965 = $2960 ^ $2964;
$2966 = (($2965) + -1454113458)|0;
$2967 = ((($x)) + 52|0);
$2968 = HEAP32[$2967>>2]|0;
$2969 = (($2966) + ($2968))|0;
$2970 = $bl;
$2971 = (($2970) + ($2969))|0;
$bl = $2971;
$2972 = $bl;
$2973 = (_rol_1221($2972,6)|0);
$2974 = $al;
$2975 = (($2973) + ($2974))|0;
$bl = $2975;
$2976 = $dl;
$2977 = (_rol_1221($2976,10)|0);
$dl = $2977;
$2978 = $cr;
$2979 = $dr;
$2980 = $2978 ^ $2979;
$2981 = $er;
$2982 = $2980 ^ $2981;
$2983 = (($2982) + 0)|0;
$2984 = ((($x)) + 44|0);
$2985 = HEAP32[$2984>>2]|0;
$2986 = (($2983) + ($2985))|0;
$2987 = $br;
$2988 = (($2987) + ($2986))|0;
$br = $2988;
$2989 = $br;
$2990 = (_rol_1221($2989,11)|0);
$2991 = $ar;
$2992 = (($2990) + ($2991))|0;
$br = $2992;
$2993 = $dr;
$2994 = (_rol_1221($2993,10)|0);
$dr = $2994;
$2995 = $cl;
$2996 = $hd;
$2997 = ((($2996)) + 164|0);
$2998 = HEAP32[$2997>>2]|0;
$2999 = (($2995) + ($2998))|0;
$3000 = $dr;
$3001 = (($3000) + ($2999))|0;
$dr = $3001;
$3002 = $hd;
$3003 = ((($3002)) + 168|0);
$3004 = HEAP32[$3003>>2]|0;
$3005 = $dl;
$3006 = (($3004) + ($3005))|0;
$3007 = $er;
$3008 = (($3006) + ($3007))|0;
$3009 = $hd;
$3010 = ((($3009)) + 164|0);
HEAP32[$3010>>2] = $3008;
$3011 = $hd;
$3012 = ((($3011)) + 172|0);
$3013 = HEAP32[$3012>>2]|0;
$3014 = $el;
$3015 = (($3013) + ($3014))|0;
$3016 = $ar;
$3017 = (($3015) + ($3016))|0;
$3018 = $hd;
$3019 = ((($3018)) + 168|0);
HEAP32[$3019>>2] = $3017;
$3020 = $hd;
$3021 = ((($3020)) + 176|0);
$3022 = HEAP32[$3021>>2]|0;
$3023 = $al;
$3024 = (($3022) + ($3023))|0;
$3025 = $br;
$3026 = (($3024) + ($3025))|0;
$3027 = $hd;
$3028 = ((($3027)) + 172|0);
HEAP32[$3028>>2] = $3026;
$3029 = $hd;
$3030 = ((($3029)) + 160|0);
$3031 = HEAP32[$3030>>2]|0;
$3032 = $bl;
$3033 = (($3031) + ($3032))|0;
$3034 = $cr;
$3035 = (($3033) + ($3034))|0;
$3036 = $hd;
$3037 = ((($3036)) + 176|0);
HEAP32[$3037>>2] = $3035;
$3038 = $dr;
$3039 = $hd;
$3040 = ((($3039)) + 160|0);
HEAP32[$3040>>2] = $3038;
STACKTOP = sp;return 124;
}
function _buf_get_le32_1220($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = ((($2)) + 3|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = $5 << 24;
$7 = $in;
$8 = ((($7)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 << 16;
$12 = $6 | $11;
$13 = $in;
$14 = ((($13)) + 1|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $12 | $17;
$19 = $in;
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $18 | $21;
STACKTOP = sp;return ($22|0);
}
function _rol_1221($x,$n) {
$x = $x|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $n;
$2 = $0;
$3 = $1;
$4 = $3 & 31;
$5 = $2 << $4;
$6 = $0;
$7 = $1;
$8 = (32 - ($7))|0;
$9 = $8 & 31;
$10 = $6 >>> $9;
$11 = $5 | $10;
STACKTOP = sp;return ($11|0);
}
function _rmd160_final($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0;
var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0;
var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $burn = 0, $hd = 0, $lsb = 0;
var $msb = 0, $p = 0, $t = 0, $th = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
__gcry_md_block_write($2,0,0);
$3 = $hd;
$4 = ((($3)) + 128|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$t = $7;
$11 = $hd;
$12 = ((($11)) + 128|0);
$13 = $12;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$th = $18;
$19 = $t;
$20 = $19 << 6;
$lsb = $20;
$21 = $th;
$22 = $21 << 6;
$23 = $t;
$24 = $23 >>> 26;
$25 = $22 | $24;
$msb = $25;
$26 = $lsb;
$t = $26;
$27 = $hd;
$28 = ((($27)) + 144|0);
$29 = HEAP32[$28>>2]|0;
$30 = $lsb;
$31 = (($30) + ($29))|0;
$lsb = $31;
$32 = $t;
$33 = ($31>>>0)<($32>>>0);
if ($33) {
$34 = $msb;
$35 = (($34) + 1)|0;
$msb = $35;
}
$36 = $lsb;
$t = $36;
$37 = $lsb;
$38 = $37 << 3;
$lsb = $38;
$39 = $msb;
$40 = $39 << 3;
$msb = $40;
$41 = $t;
$42 = $41 >>> 29;
$43 = $msb;
$44 = $43 | $42;
$msb = $44;
$45 = $hd;
$46 = ((($45)) + 144|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)<(56);
$49 = $hd;
$50 = ((($49)) + 144|0);
$51 = HEAP32[$50>>2]|0;
$52 = (($51) + 1)|0;
HEAP32[$50>>2] = $52;
$53 = $hd;
$54 = (($53) + ($51)|0);
HEAP8[$54>>0] = -128;
L4: do {
if ($48) {
while(1) {
$55 = $hd;
$56 = ((($55)) + 144|0);
$57 = HEAP32[$56>>2]|0;
$58 = ($57|0)<(56);
if (!($58)) {
break L4;
}
$59 = $hd;
$60 = ((($59)) + 144|0);
$61 = HEAP32[$60>>2]|0;
$62 = (($61) + 1)|0;
HEAP32[$60>>2] = $62;
$63 = $hd;
$64 = (($63) + ($61)|0);
HEAP8[$64>>0] = 0;
}
} else {
while(1) {
$65 = $hd;
$66 = ((($65)) + 144|0);
$67 = HEAP32[$66>>2]|0;
$68 = ($67|0)<(64);
$69 = $hd;
if (!($68)) {
break;
}
$70 = ((($69)) + 144|0);
$71 = HEAP32[$70>>2]|0;
$72 = (($71) + 1)|0;
HEAP32[$70>>2] = $72;
$73 = $hd;
$74 = (($73) + ($71)|0);
HEAP8[$74>>0] = 0;
}
__gcry_md_block_write($69,0,0);
$75 = $hd;
dest=$75; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
}
} while(0);
$76 = $hd;
$77 = ((($76)) + 56|0);
$78 = $lsb;
_buf_put_le32_1222($77,$78);
$79 = $hd;
$80 = ((($79)) + 60|0);
$81 = $msb;
_buf_put_le32_1222($80,$81);
$82 = $hd;
$83 = $hd;
$84 = (_transform($82,$83,1)|0);
$burn = $84;
$85 = $burn;
___gcry_burn_stack($85);
___gcry_burn_stack_dummy();
$86 = $hd;
$p = $86;
$87 = $p;
$88 = $hd;
$89 = ((($88)) + 160|0);
$90 = HEAP32[$89>>2]|0;
_buf_put_le32_1222($87,$90);
$91 = $p;
$92 = ((($91)) + 4|0);
$p = $92;
$93 = $p;
$94 = $hd;
$95 = ((($94)) + 164|0);
$96 = HEAP32[$95>>2]|0;
_buf_put_le32_1222($93,$96);
$97 = $p;
$98 = ((($97)) + 4|0);
$p = $98;
$99 = $p;
$100 = $hd;
$101 = ((($100)) + 168|0);
$102 = HEAP32[$101>>2]|0;
_buf_put_le32_1222($99,$102);
$103 = $p;
$104 = ((($103)) + 4|0);
$p = $104;
$105 = $p;
$106 = $hd;
$107 = ((($106)) + 172|0);
$108 = HEAP32[$107>>2]|0;
_buf_put_le32_1222($105,$108);
$109 = $p;
$110 = ((($109)) + 4|0);
$p = $110;
$111 = $p;
$112 = $hd;
$113 = ((($112)) + 176|0);
$114 = HEAP32[$113>>2]|0;
_buf_put_le32_1222($111,$114);
$115 = $p;
$116 = ((($115)) + 4|0);
$p = $116;
STACKTOP = sp;return;
}
function _buf_put_le32_1222($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
$7 = ((($6)) + 3|0);
HEAP8[$7>>0] = $5;
$8 = $1;
$9 = $8 >>> 16;
$10 = $9&255;
$11 = $out;
$12 = ((($11)) + 2|0);
HEAP8[$12>>0] = $10;
$13 = $1;
$14 = $13 >>> 8;
$15 = $14&255;
$16 = $out;
$17 = ((($16)) + 1|0);
HEAP8[$17>>0] = $15;
$18 = $1;
$19 = $18&255;
$20 = $out;
HEAP8[$20>>0] = $19;
STACKTOP = sp;return;
}
function _rmd160_read($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $2 = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
STACKTOP = sp;return ($2|0);
}
function __gcry_rmd160_init($context) {
$context = $context|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
_rmd160_init($1,0);
STACKTOP = sp;return;
}
function __gcry_rmd160_mixblock($hd,$blockof64byte) {
$hd = $hd|0;
$blockof64byte = $blockof64byte|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $blockof64byte;
$2 = $1;
$p = $2;
$3 = $0;
$4 = $1;
(_transform($3,$4,1)|0);
$5 = $0;
$6 = ((($5)) + 160|0);
$7 = HEAP32[$6>>2]|0;
$8 = $p;
HEAP32[$8>>2] = $7;
$9 = $0;
$10 = ((($9)) + 164|0);
$11 = HEAP32[$10>>2]|0;
$12 = $p;
$13 = ((($12)) + 4|0);
HEAP32[$13>>2] = $11;
$14 = $0;
$15 = ((($14)) + 168|0);
$16 = HEAP32[$15>>2]|0;
$17 = $p;
$18 = ((($17)) + 8|0);
HEAP32[$18>>2] = $16;
$19 = $0;
$20 = ((($19)) + 172|0);
$21 = HEAP32[$20>>2]|0;
$22 = $p;
$23 = ((($22)) + 12|0);
HEAP32[$23>>2] = $21;
$24 = $0;
$25 = ((($24)) + 176|0);
$26 = HEAP32[$25>>2]|0;
$27 = $p;
$28 = ((($27)) + 16|0);
HEAP32[$28>>2] = $26;
STACKTOP = sp;return;
}
function __gcry_rmd160_hash_buffer($outbuf,$buffer,$length) {
$outbuf = $outbuf|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $hd = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp;
$0 = $outbuf;
$1 = $buffer;
$2 = $length;
__gcry_rmd160_init($hd);
$3 = $1;
$4 = $2;
__gcry_md_block_write($hd,$3,$4);
_rmd160_final($hd);
$5 = $0;
dest=$5; src=$hd; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function __gcry_rsa_pkcs1_encode_for_enc($r_result,$nbits,$value,$valuelen,$random_override,$random_override_len) {
$r_result = $r_result|0;
$nbits = $nbits|0;
$value = $value|0;
$valuelen = $valuelen|0;
$random_override = $random_override|0;
$random_override_len = $random_override_len|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $frame = 0, $i = 0, $j = 0, $j1 = 0, $k = 0, $n = 0, $nframe = 0, $or$cond = 0, $p = 0, $pp = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nframe = sp + 28|0;
$1 = $r_result;
$2 = $nbits;
$3 = $value;
$4 = $valuelen;
$5 = $random_override;
$6 = $random_override_len;
$rc = 0;
$frame = 0;
$7 = $2;
$8 = (($7) + 7)|0;
$9 = (($8>>>0) / 8)&-1;
HEAP32[$nframe>>2] = $9;
$10 = $4;
$11 = (($10) + 7)|0;
$12 = HEAP32[$nframe>>2]|0;
$13 = ($11>>>0)<=($12>>>0);
$14 = HEAP32[$nframe>>2]|0;
$15 = ($14|0)!=(0);
$or$cond = $13 & $15;
if (!($or$cond)) {
$0 = 66;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$16 = HEAP32[$nframe>>2]|0;
$17 = (__gcry_malloc_secure($16)|0);
$frame = $17;
$18 = ($17|0)!=(0|0);
if (!($18)) {
$19 = (_gpg_err_code_from_syserror()|0);
$0 = $19;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$n = 0;
$20 = $n;
$21 = (($20) + 1)|0;
$n = $21;
$22 = $frame;
$23 = (($22) + ($20)|0);
HEAP8[$23>>0] = 0;
$24 = $n;
$25 = (($24) + 1)|0;
$n = $25;
$26 = $frame;
$27 = (($26) + ($24)|0);
HEAP8[$27>>0] = 2;
$28 = HEAP32[$nframe>>2]|0;
$29 = (($28) - 3)|0;
$30 = $4;
$31 = (($29) - ($30))|0;
$i = $31;
$32 = $i;
$33 = ($32|0)>(0);
if (!($33)) {
__gcry_assert_failed(38963,38969,95,38982);
// unreachable;
}
$34 = $5;
$35 = ($34|0)!=(0|0);
do {
if ($35) {
$36 = $6;
$37 = $i;
$38 = ($36|0)!=($37|0);
if ($38) {
$39 = $frame;
__gcry_free($39);
$0 = 45;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$j = 0;
while(1) {
$40 = $j;
$41 = $6;
$42 = ($40>>>0)<($41>>>0);
if (!($42)) {
label = 15;
break;
}
$43 = $j;
$44 = $5;
$45 = (($44) + ($43)|0);
$46 = HEAP8[$45>>0]|0;
$47 = ($46<<24>>24)!=(0);
if (!($47)) {
break;
}
$49 = $j;
$50 = (($49) + 1)|0;
$j = $50;
}
if ((label|0) == 15) {
$51 = $frame;
$52 = $n;
$53 = (($51) + ($52)|0);
$54 = $5;
$55 = $6;
_memcpy(($53|0),($54|0),($55|0))|0;
$56 = $6;
$57 = $n;
$58 = (($57) + ($56))|0;
$n = $58;
break;
}
$48 = $frame;
__gcry_free($48);
$0 = 45;
$145 = $0;
STACKTOP = sp;return ($145|0);
} else {
$59 = $i;
$60 = (__gcry_random_bytes_secure($59,1)|0);
$p = $60;
while(1) {
$k = 0;
$j1 = 0;
while(1) {
$61 = $j1;
$62 = $i;
$63 = ($61|0)<($62|0);
if (!($63)) {
break;
}
$64 = $j1;
$65 = $p;
$66 = (($65) + ($64)|0);
$67 = HEAP8[$66>>0]|0;
$68 = ($67<<24>>24)!=(0);
if (!($68)) {
$69 = $k;
$70 = (($69) + 1)|0;
$k = $70;
}
$71 = $j1;
$72 = (($71) + 1)|0;
$j1 = $72;
}
$73 = $k;
$74 = ($73|0)!=(0);
if (!($74)) {
break;
}
$75 = $k;
$76 = (($75|0) / 128)&-1;
$77 = (($76) + 3)|0;
$78 = $k;
$79 = (($78) + ($77))|0;
$k = $79;
$80 = $k;
$81 = (__gcry_random_bytes_secure($80,1)|0);
$pp = $81;
$j1 = 0;
while(1) {
$82 = $j1;
$83 = $i;
$84 = ($82|0)<($83|0);
$85 = $k;
$86 = ($85|0)!=(0);
$87 = $84 ? $86 : 0;
if (!($87)) {
break;
}
$88 = $j1;
$89 = $p;
$90 = (($89) + ($88)|0);
$91 = HEAP8[$90>>0]|0;
$92 = ($91<<24>>24)!=(0);
if (!($92)) {
$93 = $k;
$94 = (($93) + -1)|0;
$k = $94;
$95 = $pp;
$96 = (($95) + ($94)|0);
$97 = HEAP8[$96>>0]|0;
$98 = $j1;
$99 = $p;
$100 = (($99) + ($98)|0);
HEAP8[$100>>0] = $97;
}
$101 = $j1;
$102 = $p;
$103 = (($102) + ($101)|0);
$104 = HEAP8[$103>>0]|0;
$105 = ($104<<24>>24)!=(0);
if (!($105)) {
continue;
}
$106 = $j1;
$107 = (($106) + 1)|0;
$j1 = $107;
}
$108 = $pp;
__gcry_free($108);
}
$109 = $frame;
$110 = $n;
$111 = (($109) + ($110)|0);
$112 = $p;
$113 = $i;
_memcpy(($111|0),($112|0),($113|0))|0;
$114 = $i;
$115 = $n;
$116 = (($115) + ($114))|0;
$n = $116;
$117 = $p;
__gcry_free($117);
}
} while(0);
$118 = $n;
$119 = (($118) + 1)|0;
$n = $119;
$120 = $frame;
$121 = (($120) + ($118)|0);
HEAP8[$121>>0] = 0;
$122 = $frame;
$123 = $n;
$124 = (($122) + ($123)|0);
$125 = $3;
$126 = $4;
_memcpy(($124|0),($125|0),($126|0))|0;
$127 = $4;
$128 = $n;
$129 = (($128) + ($127))|0;
$n = $129;
$130 = $n;
$131 = HEAP32[$nframe>>2]|0;
$132 = ($130|0)==($131|0);
if (!($132)) {
__gcry_assert_failed(39013,38969,153,38982);
// unreachable;
}
$133 = $1;
$134 = $frame;
$135 = $n;
$136 = (__gcry_mpi_scan($133,5,$134,$135,$nframe)|0);
$rc = $136;
$137 = $rc;
$138 = ($137|0)!=(0);
if (!($138)) {
$139 = (__gcry_get_debug_flag(1)|0);
$140 = ($139|0)!=(0);
if ($140) {
$141 = $1;
$142 = HEAP32[$141>>2]|0;
__gcry_log_printmpi(39025,$142);
}
}
$143 = $frame;
__gcry_free($143);
$144 = $rc;
$0 = $144;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
function __gcry_rsa_pkcs1_decode_for_enc($r_result,$r_resultlen,$nbits,$value) {
$r_result = $r_result|0;
$r_resultlen = $r_resultlen|0;
$nbits = $nbits|0;
$value = $value|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $8 = 0, $9 = 0, $err = 0, $frame = 0, $n = 0;
var $nframe = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$n = sp;
$1 = $r_result;
$2 = $r_resultlen;
$3 = $nbits;
$4 = $value;
$frame = 0;
$5 = $3;
$6 = (($5) + 7)|0;
$7 = (($6>>>0) / 8)&-1;
$nframe = $7;
$8 = $1;
HEAP32[$8>>2] = 0;
$9 = $nframe;
$10 = (__gcry_malloc_secure($9)|0);
$frame = $10;
$11 = ($10|0)!=(0|0);
if (!($11)) {
$12 = (_gpg_err_code_from_syserror()|0);
$0 = $12;
$76 = $0;
STACKTOP = sp;return ($76|0);
}
$13 = $frame;
$14 = $nframe;
$15 = $4;
$16 = (__gcry_mpi_print(5,$13,$14,$n,$15)|0);
$err = $16;
$17 = $err;
$18 = ($17|0)!=(0);
if ($18) {
$19 = $frame;
__gcry_free($19);
$20 = $err;
$21 = (_gcry_err_code($20)|0);
$0 = $21;
$76 = $0;
STACKTOP = sp;return ($76|0);
}
$22 = HEAP32[$n>>2]|0;
$nframe = $22;
$23 = $nframe;
$24 = ($23>>>0)<(4);
if ($24) {
$25 = $frame;
__gcry_free($25);
$0 = 155;
$76 = $0;
STACKTOP = sp;return ($76|0);
}
HEAP32[$n>>2] = 0;
$26 = $frame;
$27 = HEAP8[$26>>0]|0;
$28 = ($27<<24>>24)!=(0);
if (!($28)) {
$29 = HEAP32[$n>>2]|0;
$30 = (($29) + 1)|0;
HEAP32[$n>>2] = $30;
}
$31 = HEAP32[$n>>2]|0;
$32 = (($31) + 1)|0;
HEAP32[$n>>2] = $32;
$33 = $frame;
$34 = (($33) + ($31)|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35&255;
$37 = ($36|0)!=(2);
if ($37) {
$38 = $frame;
__gcry_free($38);
$0 = 155;
$76 = $0;
STACKTOP = sp;return ($76|0);
}
while(1) {
$39 = HEAP32[$n>>2]|0;
$40 = $nframe;
$41 = ($39>>>0)<($40>>>0);
if (!($41)) {
break;
}
$42 = HEAP32[$n>>2]|0;
$43 = $frame;
$44 = (($43) + ($42)|0);
$45 = HEAP8[$44>>0]|0;
$46 = $45&255;
$47 = ($46|0)!=(0);
if (!($47)) {
break;
}
$48 = HEAP32[$n>>2]|0;
$49 = (($48) + 1)|0;
HEAP32[$n>>2] = $49;
}
$50 = HEAP32[$n>>2]|0;
$51 = (($50) + 1)|0;
$52 = $nframe;
$53 = ($51>>>0)>=($52>>>0);
if ($53) {
$54 = $frame;
__gcry_free($54);
$0 = 155;
$76 = $0;
STACKTOP = sp;return ($76|0);
}
$55 = HEAP32[$n>>2]|0;
$56 = (($55) + 1)|0;
HEAP32[$n>>2] = $56;
$57 = $frame;
$58 = $frame;
$59 = HEAP32[$n>>2]|0;
$60 = (($58) + ($59)|0);
$61 = $nframe;
$62 = HEAP32[$n>>2]|0;
$63 = (($61) - ($62))|0;
_memmove(($57|0),($60|0),($63|0))|0;
$64 = $frame;
$65 = $1;
HEAP32[$65>>2] = $64;
$66 = $nframe;
$67 = HEAP32[$n>>2]|0;
$68 = (($66) - ($67))|0;
$69 = $2;
HEAP32[$69>>2] = $68;
$70 = (__gcry_get_debug_flag(1)|0);
$71 = ($70|0)!=(0);
if ($71) {
$72 = $1;
$73 = HEAP32[$72>>2]|0;
$74 = $2;
$75 = HEAP32[$74>>2]|0;
__gcry_log_printhex(39058,$73,$75);
}
$0 = 0;
$76 = $0;
STACKTOP = sp;return ($76|0);
}
function _gcry_err_code($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (_gpg_err_code_1231($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_code_1231($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = $1 & 65535;
STACKTOP = sp;return ($2|0);
}
function __gcry_rsa_pkcs1_encode_for_sig($r_result,$nbits,$value,$valuelen,$algo) {
$r_result = $r_result|0;
$nbits = $nbits|0;
$value = $value|0;
$valuelen = $valuelen|0;
$algo = $algo|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $asn = 0, $asnlen = 0, $dlen = 0, $frame = 0, $i = 0, $n = 0, $nframe = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$asn = sp + 52|0;
$nframe = sp + 16|0;
$asnlen = sp + 4|0;
$1 = $r_result;
$2 = $nbits;
$3 = $value;
$4 = $valuelen;
$5 = $algo;
$rc = 0;
$frame = 0;
$6 = $2;
$7 = (($6) + 7)|0;
$8 = (($7>>>0) / 8)&-1;
HEAP32[$nframe>>2] = $8;
HEAP32[$asnlen>>2] = 100;
$9 = $5;
$10 = (__gcry_md_get_algo_dlen($9)|0);
$dlen = $10;
$11 = $5;
$12 = (__gcry_md_algo_info($11,10,$asn,$asnlen)|0);
$13 = ($12|0)!=(0);
if ($13) {
$0 = 69;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
$14 = $4;
$15 = $dlen;
$16 = ($14|0)!=($15|0);
if ($16) {
$0 = 70;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
$17 = $dlen;
$18 = ($17|0)!=(0);
if ($18) {
$19 = $dlen;
$20 = HEAP32[$asnlen>>2]|0;
$21 = (($19) + ($20))|0;
$22 = (($21) + 4)|0;
$23 = HEAP32[$nframe>>2]|0;
$24 = ($22>>>0)>($23>>>0);
if (!($24)) {
$25 = HEAP32[$nframe>>2]|0;
$26 = (__gcry_malloc($25)|0);
$frame = $26;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$28 = (_gpg_err_code_from_syserror()|0);
$0 = $28;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
$n = 0;
$29 = $n;
$30 = (($29) + 1)|0;
$n = $30;
$31 = $frame;
$32 = (($31) + ($29)|0);
HEAP8[$32>>0] = 0;
$33 = $n;
$34 = (($33) + 1)|0;
$n = $34;
$35 = $frame;
$36 = (($35) + ($33)|0);
HEAP8[$36>>0] = 1;
$37 = HEAP32[$nframe>>2]|0;
$38 = $4;
$39 = (($37) - ($38))|0;
$40 = HEAP32[$asnlen>>2]|0;
$41 = (($39) - ($40))|0;
$42 = (($41) - 3)|0;
$i = $42;
$43 = $i;
$44 = ($43|0)>(1);
if (!($44)) {
__gcry_assert_failed(39112,38969,303,39118);
// unreachable;
}
$45 = $frame;
$46 = $n;
$47 = (($45) + ($46)|0);
$48 = $i;
_memset(($47|0),-1,($48|0))|0;
$49 = $i;
$50 = $n;
$51 = (($50) + ($49))|0;
$n = $51;
$52 = $n;
$53 = (($52) + 1)|0;
$n = $53;
$54 = $frame;
$55 = (($54) + ($52)|0);
HEAP8[$55>>0] = 0;
$56 = $frame;
$57 = $n;
$58 = (($56) + ($57)|0);
$59 = HEAP32[$asnlen>>2]|0;
_memcpy(($58|0),($asn|0),($59|0))|0;
$60 = HEAP32[$asnlen>>2]|0;
$61 = $n;
$62 = (($61) + ($60))|0;
$n = $62;
$63 = $frame;
$64 = $n;
$65 = (($63) + ($64)|0);
$66 = $3;
$67 = $4;
_memcpy(($65|0),($66|0),($67|0))|0;
$68 = $4;
$69 = $n;
$70 = (($69) + ($68))|0;
$n = $70;
$71 = $n;
$72 = HEAP32[$nframe>>2]|0;
$73 = ($71|0)==($72|0);
if (!($73)) {
__gcry_assert_failed(39013,38969,311,39118);
// unreachable;
}
$74 = $1;
$75 = $frame;
$76 = $n;
$77 = (__gcry_mpi_scan($74,5,$75,$76,$nframe)|0);
$rc = $77;
$78 = $rc;
$79 = ($78|0)!=(0);
if (!($79)) {
$80 = (__gcry_get_debug_flag(1)|0);
$81 = ($80|0)!=(0);
if ($81) {
$82 = $1;
$83 = HEAP32[$82>>2]|0;
__gcry_log_printmpi(39149,$83);
}
}
$84 = $frame;
__gcry_free($84);
$85 = $rc;
$0 = $85;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
}
$0 = 66;
$86 = $0;
STACKTOP = sp;return ($86|0);
}
function __gcry_rsa_pkcs1_encode_raw_for_sig($r_result,$nbits,$value,$valuelen) {
$r_result = $r_result|0;
$nbits = $nbits|0;
$value = $value|0;
$valuelen = $valuelen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $frame = 0, $i = 0, $n = 0, $nframe = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nframe = sp + 8|0;
$1 = $r_result;
$2 = $nbits;
$3 = $value;
$4 = $valuelen;
$rc = 0;
$frame = 0;
$5 = $2;
$6 = (($5) + 7)|0;
$7 = (($6>>>0) / 8)&-1;
HEAP32[$nframe>>2] = $7;
$8 = $4;
$9 = ($8|0)!=(0);
if ($9) {
$10 = $4;
$11 = (($10) + 4)|0;
$12 = HEAP32[$nframe>>2]|0;
$13 = ($11>>>0)>($12>>>0);
if (!($13)) {
$14 = HEAP32[$nframe>>2]|0;
$15 = (__gcry_malloc($14)|0);
$frame = $15;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$17 = (_gpg_err_code_from_syserror()|0);
$0 = $17;
$68 = $0;
STACKTOP = sp;return ($68|0);
}
$n = 0;
$18 = $n;
$19 = (($18) + 1)|0;
$n = $19;
$20 = $frame;
$21 = (($20) + ($18)|0);
HEAP8[$21>>0] = 0;
$22 = $n;
$23 = (($22) + 1)|0;
$n = $23;
$24 = $frame;
$25 = (($24) + ($22)|0);
HEAP8[$25>>0] = 1;
$26 = HEAP32[$nframe>>2]|0;
$27 = $4;
$28 = (($26) - ($27))|0;
$29 = (($28) - 3)|0;
$i = $29;
$30 = $i;
$31 = ($30|0)>(1);
if (!($31)) {
__gcry_assert_failed(39112,38969,368,39182);
// unreachable;
}
$32 = $frame;
$33 = $n;
$34 = (($32) + ($33)|0);
$35 = $i;
_memset(($34|0),-1,($35|0))|0;
$36 = $i;
$37 = $n;
$38 = (($37) + ($36))|0;
$n = $38;
$39 = $n;
$40 = (($39) + 1)|0;
$n = $40;
$41 = $frame;
$42 = (($41) + ($39)|0);
HEAP8[$42>>0] = 0;
$43 = $frame;
$44 = $n;
$45 = (($43) + ($44)|0);
$46 = $3;
$47 = $4;
_memcpy(($45|0),($46|0),($47|0))|0;
$48 = $4;
$49 = $n;
$50 = (($49) + ($48))|0;
$n = $50;
$51 = $n;
$52 = HEAP32[$nframe>>2]|0;
$53 = ($51|0)==($52|0);
if (!($53)) {
__gcry_assert_failed(39013,38969,374,39182);
// unreachable;
}
$54 = $1;
$55 = $frame;
$56 = $n;
$57 = (__gcry_mpi_scan($54,5,$55,$56,$nframe)|0);
$err = $57;
$58 = $err;
$59 = ($58|0)!=(0);
if ($59) {
$60 = $err;
$61 = (_gcry_err_code($60)|0);
$rc = $61;
} else {
$62 = (__gcry_get_debug_flag(1)|0);
$63 = ($62|0)!=(0);
if ($63) {
$64 = $1;
$65 = HEAP32[$64>>2]|0;
__gcry_log_printmpi(39149,$65);
}
}
$66 = $frame;
__gcry_free($66);
$67 = $rc;
$0 = $67;
$68 = $0;
STACKTOP = sp;return ($68|0);
}
}
$0 = 66;
$68 = $0;
STACKTOP = sp;return ($68|0);
}
function __gcry_rsa_oaep_encode($r_result,$nbits,$algo,$value,$valuelen,$label,$labellen,$random_override,$random_override_len) {
$r_result = $r_result|0;
$nbits = $nbits|0;
$algo = $algo|0;
$value = $value|0;
$valuelen = $valuelen|0;
$label = $label|0;
$labellen = $labellen|0;
$random_override = $random_override|0;
$random_override_len = $random_override_len|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dmask = 0, $frame = 0, $hlen = 0, $n = 0, $nframe = 0, $or$cond = 0, $or$cond3 = 0, $p = 0, $rc = 0, $smask = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $r_result;
$2 = $nbits;
$3 = $algo;
$4 = $value;
$5 = $valuelen;
$6 = $label;
$7 = $labellen;
$8 = $random_override;
$9 = $random_override_len;
$rc = 0;
$frame = 0;
$10 = $2;
$11 = (($10) + 7)|0;
$12 = (($11>>>0) / 8)&-1;
$nframe = $12;
$13 = $1;
HEAP32[$13>>2] = 0;
$14 = $6;
$15 = ($14|0)!=(0|0);
$16 = $7;
$17 = ($16|0)!=(0);
$or$cond = $15 & $17;
if (!($or$cond)) {
$6 = 76543;
$7 = 0;
}
$18 = $3;
$19 = (__gcry_md_get_algo_dlen($18)|0);
$hlen = $19;
$20 = $5;
$21 = $nframe;
$22 = $hlen;
$23 = $22<<1;
$24 = (($21) - ($23))|0;
$25 = (($24) - 2)|0;
$26 = ($20>>>0)<=($25>>>0);
$27 = $nframe;
$28 = ($27|0)!=(0);
$or$cond3 = $26 & $28;
if (!($or$cond3)) {
$0 = 66;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
$29 = $nframe;
$30 = (__gcry_calloc_secure(1,$29)|0);
$frame = $30;
$31 = $frame;
$32 = ($31|0)!=(0|0);
if (!($32)) {
$33 = (_gpg_err_code_from_syserror()|0);
$0 = $33;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
$34 = $3;
$35 = $frame;
$36 = ((($35)) + 1|0);
$37 = $hlen;
$38 = (($36) + ($37)|0);
$39 = $6;
$40 = $7;
__gcry_md_hash_buffer($34,$38,$39,$40);
$41 = $nframe;
$42 = $5;
$43 = (($41) - ($42))|0;
$44 = (($43) - 1)|0;
$n = $44;
$45 = $n;
$46 = $frame;
$47 = (($46) + ($45)|0);
HEAP8[$47>>0] = 1;
$48 = $frame;
$49 = $n;
$50 = (($48) + ($49)|0);
$51 = ((($50)) + 1|0);
$52 = $4;
$53 = $5;
_memcpy(($51|0),($52|0),($53|0))|0;
$54 = $8;
$55 = ($54|0)!=(0|0);
do {
if ($55) {
$56 = $9;
$57 = $hlen;
$58 = ($56|0)!=($57|0);
$59 = $frame;
if (!($58)) {
$60 = ((($59)) + 1|0);
$61 = $8;
$62 = $hlen;
_memcpy(($60|0),($61|0),($62|0))|0;
break;
}
__gcry_free($59);
$0 = 45;
$166 = $0;
STACKTOP = sp;return ($166|0);
} else {
$63 = $frame;
$64 = ((($63)) + 1|0);
$65 = $hlen;
__gcry_randomize($64,$65,1);
}
} while(0);
$66 = $nframe;
$67 = $hlen;
$68 = (($66) - ($67))|0;
$69 = (($68) - 1)|0;
$70 = (__gcry_malloc_secure($69)|0);
$dmask = $70;
$71 = $dmask;
$72 = ($71|0)!=(0|0);
if (!($72)) {
$73 = (_gpg_err_code_from_syserror()|0);
$rc = $73;
$74 = $frame;
__gcry_free($74);
$75 = $rc;
$0 = $75;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
$76 = $dmask;
$77 = $nframe;
$78 = $hlen;
$79 = (($77) - ($78))|0;
$80 = (($79) - 1)|0;
$81 = $frame;
$82 = ((($81)) + 1|0);
$83 = $hlen;
$84 = $3;
$85 = (_mgf1($76,$80,$82,$83,$84)|0);
$rc = $85;
$86 = $rc;
$87 = ($86|0)!=(0);
if ($87) {
$88 = $dmask;
__gcry_free($88);
$89 = $frame;
__gcry_free($89);
$90 = $rc;
$0 = $90;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
$91 = $hlen;
$92 = (1 + ($91))|0;
$n = $92;
$93 = $dmask;
$p = $93;
while(1) {
$94 = $n;
$95 = $nframe;
$96 = ($94>>>0)<($95>>>0);
if (!($96)) {
break;
}
$97 = $p;
$98 = ((($97)) + 1|0);
$p = $98;
$99 = HEAP8[$97>>0]|0;
$100 = $99&255;
$101 = $n;
$102 = $frame;
$103 = (($102) + ($101)|0);
$104 = HEAP8[$103>>0]|0;
$105 = $104&255;
$106 = $105 ^ $100;
$107 = $106&255;
HEAP8[$103>>0] = $107;
$108 = $n;
$109 = (($108) + 1)|0;
$n = $109;
}
$110 = $dmask;
__gcry_free($110);
$111 = $hlen;
$112 = (__gcry_malloc_secure($111)|0);
$smask = $112;
$113 = $smask;
$114 = ($113|0)!=(0|0);
if (!($114)) {
$115 = (_gpg_err_code_from_syserror()|0);
$rc = $115;
$116 = $frame;
__gcry_free($116);
$117 = $rc;
$0 = $117;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
$118 = $smask;
$119 = $hlen;
$120 = $frame;
$121 = ((($120)) + 1|0);
$122 = $hlen;
$123 = (($121) + ($122)|0);
$124 = $nframe;
$125 = $hlen;
$126 = (($124) - ($125))|0;
$127 = (($126) - 1)|0;
$128 = $3;
$129 = (_mgf1($118,$119,$123,$127,$128)|0);
$rc = $129;
$130 = $rc;
$131 = ($130|0)!=(0);
if ($131) {
$132 = $smask;
__gcry_free($132);
$133 = $frame;
__gcry_free($133);
$134 = $rc;
$0 = $134;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
$n = 1;
$135 = $smask;
$p = $135;
while(1) {
$136 = $n;
$137 = $hlen;
$138 = (1 + ($137))|0;
$139 = ($136>>>0)<($138>>>0);
if (!($139)) {
break;
}
$140 = $p;
$141 = ((($140)) + 1|0);
$p = $141;
$142 = HEAP8[$140>>0]|0;
$143 = $142&255;
$144 = $n;
$145 = $frame;
$146 = (($145) + ($144)|0);
$147 = HEAP8[$146>>0]|0;
$148 = $147&255;
$149 = $148 ^ $143;
$150 = $149&255;
HEAP8[$146>>0] = $150;
$151 = $n;
$152 = (($151) + 1)|0;
$n = $152;
}
$153 = $smask;
__gcry_free($153);
$154 = $1;
$155 = $frame;
$156 = $nframe;
$157 = (__gcry_mpi_scan($154,5,$155,$156,0)|0);
$rc = $157;
$158 = $rc;
$159 = ($158|0)!=(0);
if (!($159)) {
$160 = (__gcry_get_debug_flag(1)|0);
$161 = ($160|0)!=(0);
if ($161) {
$162 = $1;
$163 = HEAP32[$162>>2]|0;
__gcry_log_printmpi(39217,$163);
}
}
$164 = $frame;
__gcry_free($164);
$165 = $rc;
$0 = $165;
$166 = $0;
STACKTOP = sp;return ($166|0);
}
function _mgf1($output,$outlen,$seed,$seedlen,$algo) {
$output = $output|0;
$outlen = $outlen|0;
$seed = $seed|0;
$seedlen = $seedlen|0;
$algo = $algo|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $c = 0, $digest = 0, $dlen = 0, $err = 0, $hd = 0, $idx = 0, $n = 0, $nbytes = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp + 8|0;
$c = sp + 52|0;
$1 = $output;
$2 = $outlen;
$3 = $seed;
$4 = $seedlen;
$5 = $algo;
$6 = $5;
$7 = (__gcry_md_open($hd,$6,0)|0);
$err = $7;
$8 = $err;
$9 = ($8|0)!=(0);
if ($9) {
$10 = $err;
$0 = $10;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
$11 = $5;
$12 = (__gcry_md_get_algo_dlen($11)|0);
$dlen = $12;
$nbytes = 0;
$idx = 0;
while(1) {
$13 = $nbytes;
$14 = $2;
$15 = ($13>>>0)<($14>>>0);
if (!($15)) {
break;
}
$16 = $idx;
$17 = ($16|0)!=(0);
if ($17) {
$18 = HEAP32[$hd>>2]|0;
__gcry_md_reset($18);
}
$19 = $idx;
$20 = $19 >> 24;
$21 = $20 & 255;
$22 = $21&255;
HEAP8[$c>>0] = $22;
$23 = $idx;
$24 = $23 >> 16;
$25 = $24 & 255;
$26 = $25&255;
$27 = ((($c)) + 1|0);
HEAP8[$27>>0] = $26;
$28 = $idx;
$29 = $28 >> 8;
$30 = $29 & 255;
$31 = $30&255;
$32 = ((($c)) + 2|0);
HEAP8[$32>>0] = $31;
$33 = $idx;
$34 = $33 & 255;
$35 = $34&255;
$36 = ((($c)) + 3|0);
HEAP8[$36>>0] = $35;
$37 = $idx;
$38 = (($37) + 1)|0;
$idx = $38;
$39 = HEAP32[$hd>>2]|0;
$40 = $3;
$41 = $4;
__gcry_md_write($39,$40,$41);
$42 = HEAP32[$hd>>2]|0;
__gcry_md_write($42,$c,4);
$43 = HEAP32[$hd>>2]|0;
$44 = (__gcry_md_read($43,0)|0);
$digest = $44;
$45 = $2;
$46 = $nbytes;
$47 = (($45) - ($46))|0;
$48 = $dlen;
$49 = ($47>>>0)<($48>>>0);
if ($49) {
$50 = $2;
$51 = $nbytes;
$52 = (($50) - ($51))|0;
$54 = $52;
} else {
$53 = $dlen;
$54 = $53;
}
$n = $54;
$55 = $1;
$56 = $nbytes;
$57 = (($55) + ($56)|0);
$58 = $digest;
$59 = $n;
_memcpy(($57|0),($58|0),($59|0))|0;
$60 = $n;
$61 = $nbytes;
$62 = (($61) + ($60))|0;
$nbytes = $62;
}
$63 = HEAP32[$hd>>2]|0;
__gcry_md_close($63);
$0 = 0;
$64 = $0;
STACKTOP = sp;return ($64|0);
}
function __gcry_rsa_oaep_decode($r_result,$r_resultlen,$nbits,$algo,$value,$label,$labellen) {
$r_result = $r_result|0;
$r_resultlen = $r_resultlen|0;
$nbits = $nbits|0;
$algo = $algo|0;
$value = $value|0;
$label = $label|0;
$labellen = $labellen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $db = 0, $db_len = 0, $failed = 0, $frame = 0, $hlen = 0, $lhash = 0, $masked_db = 0, $masked_seed = 0, $n = 0, $nframe = 0, $nkey = 0, $or$cond = 0, $rc = 0, $seed = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$frame = sp + 44|0;
$1 = $r_result;
$2 = $r_resultlen;
$3 = $nbits;
$4 = $algo;
$5 = $value;
$6 = $label;
$7 = $labellen;
HEAP32[$frame>>2] = 0;
$seed = 0;
$lhash = 0;
$8 = $3;
$9 = (($8) + 7)|0;
$10 = (($9>>>0) / 8)&-1;
$nkey = $10;
$failed = 0;
$11 = $1;
HEAP32[$11>>2] = 0;
$12 = $6;
$13 = ($12|0)!=(0|0);
$14 = $7;
$15 = ($14|0)!=(0);
$or$cond = $13 & $15;
if (!($or$cond)) {
$6 = 76543;
$7 = 0;
}
$16 = $4;
$17 = (__gcry_md_get_algo_dlen($16)|0);
$hlen = $17;
$18 = $hlen;
$19 = (__gcry_malloc($18)|0);
$lhash = $19;
$20 = $lhash;
$21 = ($20|0)!=(0|0);
if (!($21)) {
$22 = (_gpg_err_code_from_syserror()|0);
$0 = $22;
$160 = $0;
STACKTOP = sp;return ($160|0);
}
$23 = $4;
$24 = $lhash;
$25 = $6;
$26 = $7;
__gcry_md_hash_buffer($23,$24,$25,$26);
$27 = $5;
$28 = $nkey;
$29 = (_octet_string_from_mpi($frame,0,$27,$28)|0);
$rc = $29;
$30 = $rc;
$31 = ($30|0)!=(0);
if ($31) {
$32 = $lhash;
__gcry_free($32);
$0 = 155;
$160 = $0;
STACKTOP = sp;return ($160|0);
}
$33 = $nkey;
$nframe = $33;
$34 = $nframe;
$35 = $hlen;
$36 = $35<<1;
$37 = (($36) + 2)|0;
$38 = ($34>>>0)<($37>>>0);
if ($38) {
$39 = HEAP32[$frame>>2]|0;
__gcry_free($39);
$40 = $lhash;
__gcry_free($40);
$0 = 155;
$160 = $0;
STACKTOP = sp;return ($160|0);
}
$41 = $nframe;
$42 = (($41) - 1)|0;
$43 = (__gcry_malloc_secure($42)|0);
$seed = $43;
$44 = $seed;
$45 = ($44|0)!=(0|0);
if (!($45)) {
$46 = (_gpg_err_code_from_syserror()|0);
$rc = $46;
$47 = HEAP32[$frame>>2]|0;
__gcry_free($47);
$48 = $lhash;
__gcry_free($48);
$49 = $rc;
$0 = $49;
$160 = $0;
STACKTOP = sp;return ($160|0);
}
$50 = $seed;
$51 = $hlen;
$52 = (($50) + ($51)|0);
$db = $52;
$53 = HEAP32[$frame>>2]|0;
$54 = ((($53)) + 1|0);
$masked_seed = $54;
$55 = HEAP32[$frame>>2]|0;
$56 = ((($55)) + 1|0);
$57 = $hlen;
$58 = (($56) + ($57)|0);
$masked_db = $58;
$59 = $nframe;
$60 = (($59) - 1)|0;
$61 = $hlen;
$62 = (($60) - ($61))|0;
$db_len = $62;
$63 = $seed;
$64 = $hlen;
$65 = $masked_db;
$66 = $db_len;
$67 = $4;
$68 = (_mgf1($63,$64,$65,$66,$67)|0);
$69 = ($68|0)!=(0);
if ($69) {
$failed = 1;
}
$n = 0;
while(1) {
$70 = $n;
$71 = $hlen;
$72 = ($70>>>0)<($71>>>0);
if (!($72)) {
break;
}
$73 = $n;
$74 = $masked_seed;
$75 = (($74) + ($73)|0);
$76 = HEAP8[$75>>0]|0;
$77 = $76&255;
$78 = $n;
$79 = $seed;
$80 = (($79) + ($78)|0);
$81 = HEAP8[$80>>0]|0;
$82 = $81&255;
$83 = $82 ^ $77;
$84 = $83&255;
HEAP8[$80>>0] = $84;
$85 = $n;
$86 = (($85) + 1)|0;
$n = $86;
}
$87 = $db;
$88 = $db_len;
$89 = $seed;
$90 = $hlen;
$91 = $4;
$92 = (_mgf1($87,$88,$89,$90,$91)|0);
$93 = ($92|0)!=(0);
if ($93) {
$failed = 1;
}
$n = 0;
while(1) {
$94 = $n;
$95 = $db_len;
$96 = ($94>>>0)<($95>>>0);
if (!($96)) {
break;
}
$97 = $n;
$98 = $masked_db;
$99 = (($98) + ($97)|0);
$100 = HEAP8[$99>>0]|0;
$101 = $100&255;
$102 = $n;
$103 = $db;
$104 = (($103) + ($102)|0);
$105 = HEAP8[$104>>0]|0;
$106 = $105&255;
$107 = $106 ^ $101;
$108 = $107&255;
HEAP8[$104>>0] = $108;
$109 = $n;
$110 = (($109) + 1)|0;
$n = $110;
}
$111 = $lhash;
$112 = $db;
$113 = $hlen;
$114 = (_memcmp($111,$112,$113)|0);
$115 = ($114|0)!=(0);
if ($115) {
$failed = 1;
}
$116 = $hlen;
$n = $116;
while(1) {
$117 = $n;
$118 = $db_len;
$119 = ($117>>>0)<($118>>>0);
if (!($119)) {
break;
}
$120 = $n;
$121 = $db;
$122 = (($121) + ($120)|0);
$123 = HEAP8[$122>>0]|0;
$124 = $123&255;
$125 = ($124|0)==(1);
if ($125) {
break;
}
$126 = $n;
$127 = (($126) + 1)|0;
$n = $127;
}
$128 = $n;
$129 = $db_len;
$130 = ($128|0)==($129|0);
if ($130) {
$failed = 1;
}
$131 = HEAP32[$frame>>2]|0;
$132 = HEAP8[$131>>0]|0;
$133 = ($132<<24>>24)!=(0);
if ($133) {
$failed = 1;
}
$134 = $lhash;
__gcry_free($134);
$135 = HEAP32[$frame>>2]|0;
__gcry_free($135);
$136 = $failed;
$137 = ($136|0)!=(0);
if ($137) {
$138 = $seed;
__gcry_free($138);
$0 = 155;
$160 = $0;
STACKTOP = sp;return ($160|0);
}
$139 = $n;
$140 = (($139) + 1)|0;
$n = $140;
$141 = $seed;
$142 = $db;
$143 = $n;
$144 = (($142) + ($143)|0);
$145 = $db_len;
$146 = $n;
$147 = (($145) - ($146))|0;
_memmove(($141|0),($144|0),($147|0))|0;
$148 = $seed;
$149 = $1;
HEAP32[$149>>2] = $148;
$150 = $db_len;
$151 = $n;
$152 = (($150) - ($151))|0;
$153 = $2;
HEAP32[$153>>2] = $152;
$seed = 0;
$154 = (__gcry_get_debug_flag(1)|0);
$155 = ($154|0)!=(0);
if ($155) {
$156 = $1;
$157 = HEAP32[$156>>2]|0;
$158 = $2;
$159 = HEAP32[$158>>2]|0;
__gcry_log_printhex(39235,$157,$159);
}
$0 = 0;
$160 = $0;
STACKTOP = sp;return ($160|0);
}
function _octet_string_from_mpi($r_frame,$space,$value,$nbytes) {
$r_frame = $r_frame|0;
$space = $space|0;
$value = $value|0;
$nbytes = $nbytes|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $r_frame;
$1 = $space;
$2 = $value;
$3 = $nbytes;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (__gcry_mpi_to_octet_string($4,$5,$6,$7)|0);
STACKTOP = sp;return ($8|0);
}
function __gcry_rsa_pss_encode($r_result,$nbits,$algo,$value,$valuelen,$saltlen,$random_override,$random_override_len) {
$r_result = $r_result|0;
$nbits = $nbits|0;
$algo = $algo|0;
$value = $value|0;
$valuelen = $valuelen|0;
$saltlen = $saltlen|0;
$random_override = $random_override|0;
$random_override_len = $random_override_len|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vlen2 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr_long = 0, $_vptr_long5 = 0, $_vset = 0, $_vset3 = 0, $_vset_long = 0, $_vset_long4 = 0, $buf = 0, $buflen = 0, $dbmask = 0, $em = 0, $emlen = 0;
var $h = 0, $hlen = 0, $mhash = 0, $n = 0, $p = 0, $rc = 0, $salt = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp + 8|0;
$_vset_long4 = sp;
$0 = $r_result;
$1 = $nbits;
$2 = $algo;
$3 = $value;
$4 = $valuelen;
$5 = $saltlen;
$6 = $random_override;
$7 = $random_override_len;
$rc = 0;
$em = 0;
$8 = $1;
$9 = (($8) + 7)|0;
$10 = (($9>>>0) / 8)&-1;
$emlen = $10;
$buf = 0;
$11 = $2;
$12 = (__gcry_md_get_algo_dlen($11)|0);
$hlen = $12;
$13 = $hlen;
$14 = ($13|0)!=(0);
if (!($14)) {
__gcry_assert_failed(39274,38969,800,39279);
// unreachable;
}
$15 = $hlen;
$16 = (8 + ($15))|0;
$17 = $5;
$18 = (($16) + ($17))|0;
$19 = $emlen;
$20 = $hlen;
$21 = (($19) - ($20))|0;
$22 = (($21) - 1)|0;
$23 = (($18) + ($22))|0;
$buflen = $23;
$24 = $buflen;
$25 = (__gcry_malloc($24)|0);
$buf = $25;
$26 = $buf;
$27 = ($26|0)!=(0|0);
L4: do {
if ($27) {
$29 = $buf;
$30 = ((($29)) + 8|0);
$mhash = $30;
$31 = $mhash;
$32 = $hlen;
$33 = (($31) + ($32)|0);
$salt = $33;
$34 = $salt;
$35 = $5;
$36 = (($34) + ($35)|0);
$dbmask = $36;
$37 = $4;
$38 = $hlen;
$39 = ($37|0)!=($38|0);
if ($39) {
$rc = 139;
break;
}
$40 = $mhash;
$41 = $3;
$42 = $hlen;
_memcpy(($40|0),($41|0),($42|0))|0;
$43 = $emlen;
$44 = $hlen;
$45 = $5;
$46 = (($44) + ($45))|0;
$47 = (($46) + 2)|0;
$48 = ($43>>>0)<($47>>>0);
if ($48) {
$rc = 66;
break;
}
$49 = $emlen;
$50 = (__gcry_malloc($49)|0);
$em = $50;
$51 = $em;
$52 = ($51|0)!=(0|0);
if (!($52)) {
$53 = (_gpg_err_code_from_syserror()|0);
$rc = $53;
break;
}
$54 = $em;
$55 = $emlen;
$56 = (($54) + ($55)|0);
$57 = ((($56)) + -1|0);
$58 = $hlen;
$59 = (0 - ($58))|0;
$60 = (($57) + ($59)|0);
$h = $60;
$61 = $5;
$62 = ($61|0)!=(0);
do {
if ($62) {
$63 = $6;
$64 = ($63|0)!=(0|0);
if (!($64)) {
$71 = $salt;
$72 = $5;
__gcry_randomize($71,$72,1);
break;
}
$65 = $7;
$66 = $5;
$67 = ($65|0)!=($66|0);
if ($67) {
$rc = 45;
break L4;
} else {
$68 = $salt;
$69 = $6;
$70 = $5;
_memcpy(($68|0),($69|0),($70|0))|0;
break;
}
}
} while(0);
$73 = $buf;
;HEAP8[$73>>0]=0|0;HEAP8[$73+1>>0]=0|0;HEAP8[$73+2>>0]=0|0;HEAP8[$73+3>>0]=0|0;HEAP8[$73+4>>0]=0|0;HEAP8[$73+5>>0]=0|0;HEAP8[$73+6>>0]=0|0;HEAP8[$73+7>>0]=0|0;
$74 = $2;
$75 = $h;
$76 = $buf;
$77 = $hlen;
$78 = (8 + ($77))|0;
$79 = $5;
$80 = (($78) + ($79))|0;
__gcry_md_hash_buffer($74,$75,$76,$80);
$81 = $em;
$82 = $emlen;
$83 = (($81) + ($82)|0);
$84 = ((($83)) + -1|0);
$85 = $hlen;
$86 = (0 - ($85))|0;
$87 = (($84) + ($86)|0);
$88 = $5;
$89 = (0 - ($88))|0;
$90 = (($87) + ($89)|0);
$91 = ((($90)) + -1|0);
$p = $91;
$92 = $em;
$93 = $p;
$94 = $em;
$95 = $93;
$96 = $94;
$97 = (($95) - ($96))|0;
_memset(($92|0),0,($97|0))|0;
$98 = $p;
$99 = ((($98)) + 1|0);
$p = $99;
HEAP8[$98>>0] = 1;
$100 = $p;
$101 = $salt;
$102 = $5;
_memcpy(($100|0),($101|0),($102|0))|0;
$103 = $dbmask;
$104 = $emlen;
$105 = $hlen;
$106 = (($104) - ($105))|0;
$107 = (($106) - 1)|0;
$108 = $h;
$109 = $hlen;
$110 = $2;
(_mgf1($103,$107,$108,$109,$110)|0);
$n = 0;
$111 = $dbmask;
$p = $111;
while(1) {
$112 = $n;
$113 = $emlen;
$114 = $hlen;
$115 = (($113) - ($114))|0;
$116 = (($115) - 1)|0;
$117 = ($112>>>0)<($116>>>0);
if (!($117)) {
break;
}
$118 = $p;
$119 = HEAP8[$118>>0]|0;
$120 = $119&255;
$121 = $n;
$122 = $em;
$123 = (($122) + ($121)|0);
$124 = HEAP8[$123>>0]|0;
$125 = $124&255;
$126 = $125 ^ $120;
$127 = $126&255;
HEAP8[$123>>0] = $127;
$128 = $n;
$129 = (($128) + 1)|0;
$n = $129;
$130 = $p;
$131 = ((($130)) + 1|0);
$p = $131;
}
$132 = $emlen;
$133 = $132<<3;
$134 = $1;
$135 = (($133) - ($134))|0;
$136 = 255 >> $135;
$137 = $em;
$138 = HEAP8[$137>>0]|0;
$139 = $138&255;
$140 = $139 & $136;
$141 = $140&255;
HEAP8[$137>>0] = $141;
$142 = $emlen;
$143 = (($142) - 1)|0;
$144 = $em;
$145 = (($144) + ($143)|0);
HEAP8[$145>>0] = -68;
$146 = $0;
$147 = $em;
$148 = $emlen;
$149 = (__gcry_mpi_scan($146,5,$147,$148,0)|0);
$rc = $149;
$150 = $rc;
$151 = ($150|0)!=(0);
if (!($151)) {
$152 = (__gcry_get_debug_flag(1)|0);
$153 = ($152|0)!=(0);
if ($153) {
$154 = $0;
$155 = HEAP32[$154>>2]|0;
__gcry_log_printmpi(39300,$155);
}
}
} else {
$28 = (_gpg_err_code_from_syserror()|0);
$rc = $28;
}
} while(0);
$156 = $em;
$157 = ($156|0)!=(0|0);
if ($157) {
$158 = $em;
$_vptr = $158;
$159 = $emlen;
$_vlen = $159;
$_vset = 0;
$160 = $_vset;
$161 = $160&255;
$162 = $_vset_long;
$163 = $162;
HEAP32[$163>>2] = $161;
$164 = (($162) + 4)|0;
$165 = $164;
HEAP32[$165>>2] = 0;
while(1) {
$166 = $_vptr;
$167 = $166;
$168 = $167 & 7;
$169 = ($168|0)!=(0);
$170 = $_vlen;
$171 = ($170|0)!=(0);
$172 = $169 ? $171 : 0;
if (!($172)) {
break;
}
$173 = $_vset;
$174 = $_vptr;
HEAP8[$174>>0] = $173;
$175 = $_vptr;
$176 = ((($175)) + 1|0);
$_vptr = $176;
$177 = $_vlen;
$178 = (($177) + -1)|0;
$_vlen = $178;
}
$179 = $_vlen;
$180 = ($179>>>0)<(8);
if (!($180)) {
$181 = $_vset_long;
$182 = $181;
$183 = HEAP32[$182>>2]|0;
$184 = (($181) + 4)|0;
$185 = $184;
$186 = HEAP32[$185>>2]|0;
$187 = (___muldi3(($183|0),($186|0),16843009,16843009)|0);
$188 = tempRet0;
$189 = $_vset_long;
$190 = $189;
HEAP32[$190>>2] = $187;
$191 = (($189) + 4)|0;
$192 = $191;
HEAP32[$192>>2] = $188;
while(1) {
$193 = $_vptr;
$_vptr_long = $193;
$194 = $_vset_long;
$195 = $194;
$196 = HEAP32[$195>>2]|0;
$197 = (($194) + 4)|0;
$198 = $197;
$199 = HEAP32[$198>>2]|0;
$200 = $_vptr_long;
$201 = $200;
$202 = $201;
HEAP32[$202>>2] = $196;
$203 = (($201) + 4)|0;
$204 = $203;
HEAP32[$204>>2] = $199;
$205 = $_vlen;
$206 = (($205) - 8)|0;
$_vlen = $206;
$207 = $_vptr;
$208 = ((($207)) + 8|0);
$_vptr = $208;
$209 = $_vlen;
$210 = ($209>>>0)>=(8);
if (!($210)) {
break;
}
}
}
while(1) {
$211 = $_vlen;
$212 = ($211|0)!=(0);
if (!($212)) {
break;
}
$213 = $_vset;
$214 = $_vptr;
HEAP8[$214>>0] = $213;
$215 = $_vptr;
$216 = ((($215)) + 1|0);
$_vptr = $216;
$217 = $_vlen;
$218 = (($217) + -1)|0;
$_vlen = $218;
}
$219 = $em;
__gcry_free($219);
}
$220 = $buf;
$221 = ($220|0)!=(0|0);
if (!($221)) {
$284 = $rc;
STACKTOP = sp;return ($284|0);
}
$222 = $buf;
$_vptr1 = $222;
$223 = $buflen;
$_vlen2 = $223;
$_vset3 = 0;
$224 = $_vset3;
$225 = $224&255;
$226 = $_vset_long4;
$227 = $226;
HEAP32[$227>>2] = $225;
$228 = (($226) + 4)|0;
$229 = $228;
HEAP32[$229>>2] = 0;
while(1) {
$230 = $_vptr1;
$231 = $230;
$232 = $231 & 7;
$233 = ($232|0)!=(0);
$234 = $_vlen2;
$235 = ($234|0)!=(0);
$236 = $233 ? $235 : 0;
if (!($236)) {
break;
}
$237 = $_vset3;
$238 = $_vptr1;
HEAP8[$238>>0] = $237;
$239 = $_vptr1;
$240 = ((($239)) + 1|0);
$_vptr1 = $240;
$241 = $_vlen2;
$242 = (($241) + -1)|0;
$_vlen2 = $242;
}
$243 = $_vlen2;
$244 = ($243>>>0)<(8);
if (!($244)) {
$245 = $_vset_long4;
$246 = $245;
$247 = HEAP32[$246>>2]|0;
$248 = (($245) + 4)|0;
$249 = $248;
$250 = HEAP32[$249>>2]|0;
$251 = (___muldi3(($247|0),($250|0),16843009,16843009)|0);
$252 = tempRet0;
$253 = $_vset_long4;
$254 = $253;
HEAP32[$254>>2] = $251;
$255 = (($253) + 4)|0;
$256 = $255;
HEAP32[$256>>2] = $252;
while(1) {
$257 = $_vptr1;
$_vptr_long5 = $257;
$258 = $_vset_long4;
$259 = $258;
$260 = HEAP32[$259>>2]|0;
$261 = (($258) + 4)|0;
$262 = $261;
$263 = HEAP32[$262>>2]|0;
$264 = $_vptr_long5;
$265 = $264;
$266 = $265;
HEAP32[$266>>2] = $260;
$267 = (($265) + 4)|0;
$268 = $267;
HEAP32[$268>>2] = $263;
$269 = $_vlen2;
$270 = (($269) - 8)|0;
$_vlen2 = $270;
$271 = $_vptr1;
$272 = ((($271)) + 8|0);
$_vptr1 = $272;
$273 = $_vlen2;
$274 = ($273>>>0)>=(8);
if (!($274)) {
break;
}
}
}
while(1) {
$275 = $_vlen2;
$276 = ($275|0)!=(0);
if (!($276)) {
break;
}
$277 = $_vset3;
$278 = $_vptr1;
HEAP8[$278>>0] = $277;
$279 = $_vptr1;
$280 = ((($279)) + 1|0);
$_vptr1 = $280;
$281 = $_vlen2;
$282 = (($281) + -1)|0;
$_vlen2 = $282;
}
$283 = $buf;
__gcry_free($283);
$284 = $rc;
STACKTOP = sp;return ($284|0);
}
function __gcry_rsa_pss_verify($value,$encoded,$nbits,$algo,$saltlen) {
$value = $value|0;
$encoded = $encoded|0;
$nbits = $nbits|0;
$algo = $algo|0;
$saltlen = $saltlen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vlen2 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr_long = 0, $_vptr_long5 = 0, $_vset = 0, $_vset3 = 0, $_vset_long = 0, $_vset_long4 = 0, $buf = 0;
var $buflen = 0, $dbmask = 0, $em = 0, $emlen = 0, $h = 0, $hlen = 0, $mhash = 0, $n = 0, $p = 0, $rc = 0, $salt = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$em = sp + 76|0;
$_vset_long = sp + 8|0;
$_vset_long4 = sp;
$0 = $value;
$1 = $encoded;
$2 = $nbits;
$3 = $algo;
$4 = $saltlen;
$rc = 0;
HEAP32[$em>>2] = 0;
$5 = $2;
$6 = (($5) + 7)|0;
$7 = (($6>>>0) / 8)&-1;
$emlen = $7;
$buf = 0;
$8 = $3;
$9 = (__gcry_md_get_algo_dlen($8)|0);
$hlen = $9;
$10 = $hlen;
$11 = ($10|0)!=(0);
if (!($11)) {
__gcry_assert_failed(39274,38969,926,39317);
// unreachable;
}
$12 = $hlen;
$13 = (8 + ($12))|0;
$14 = $4;
$15 = (($13) + ($14))|0;
$buflen = $15;
$16 = $buflen;
$17 = $emlen;
$18 = $hlen;
$19 = (($17) - ($18))|0;
$20 = (($19) - 1)|0;
$21 = ($16>>>0)<($20>>>0);
if ($21) {
$22 = $emlen;
$23 = $hlen;
$24 = (($22) - ($23))|0;
$25 = (($24) - 1)|0;
$buflen = $25;
}
$26 = $hlen;
$27 = $buflen;
$28 = (($27) + ($26))|0;
$buflen = $28;
$29 = $buflen;
$30 = (__gcry_malloc($29)|0);
$buf = $30;
$31 = $buf;
$32 = ($31|0)!=(0|0);
do {
if ($32) {
$34 = $buf;
$dbmask = $34;
$35 = $buf;
$36 = $buflen;
$37 = (($35) + ($36)|0);
$38 = $hlen;
$39 = (0 - ($38))|0;
$40 = (($37) + ($39)|0);
$mhash = $40;
$41 = $mhash;
$42 = $0;
$43 = $hlen;
$44 = (_octet_string_from_mpi(0,$41,$42,$43)|0);
$rc = $44;
$45 = $rc;
$46 = ($45|0)!=(0);
if (!($46)) {
$47 = $1;
$48 = $emlen;
$49 = (_octet_string_from_mpi($em,0,$47,$48)|0);
$rc = $49;
$50 = $rc;
$51 = ($50|0)!=(0);
if (!($51)) {
$52 = $emlen;
$53 = $hlen;
$54 = $4;
$55 = (($53) + ($54))|0;
$56 = (($55) + 2)|0;
$57 = ($52>>>0)<($56>>>0);
if ($57) {
$rc = 66;
break;
}
$58 = $emlen;
$59 = (($58) - 1)|0;
$60 = HEAP32[$em>>2]|0;
$61 = (($60) + ($59)|0);
$62 = HEAP8[$61>>0]|0;
$63 = $62&255;
$64 = ($63|0)!=(188);
if ($64) {
$rc = 8;
break;
}
$65 = HEAP32[$em>>2]|0;
$66 = $emlen;
$67 = (($65) + ($66)|0);
$68 = ((($67)) + -1|0);
$69 = $hlen;
$70 = (0 - ($69))|0;
$71 = (($68) + ($70)|0);
$h = $71;
$72 = HEAP32[$em>>2]|0;
$73 = HEAP8[$72>>0]|0;
$74 = $73&255;
$75 = $emlen;
$76 = $75<<3;
$77 = $2;
$78 = (($76) - ($77))|0;
$79 = 255 >> $78;
$80 = $79 ^ -1;
$81 = $74 & $80;
$82 = ($81|0)!=(0);
if ($82) {
$rc = 8;
break;
}
$83 = $dbmask;
$84 = $emlen;
$85 = $hlen;
$86 = (($84) - ($85))|0;
$87 = (($86) - 1)|0;
$88 = $h;
$89 = $hlen;
$90 = $3;
(_mgf1($83,$87,$88,$89,$90)|0);
$n = 0;
$91 = $dbmask;
$p = $91;
while(1) {
$92 = $n;
$93 = $emlen;
$94 = $hlen;
$95 = (($93) - ($94))|0;
$96 = (($95) - 1)|0;
$97 = ($92>>>0)<($96>>>0);
if (!($97)) {
break;
}
$98 = $p;
$99 = HEAP8[$98>>0]|0;
$100 = $99&255;
$101 = $n;
$102 = HEAP32[$em>>2]|0;
$103 = (($102) + ($101)|0);
$104 = HEAP8[$103>>0]|0;
$105 = $104&255;
$106 = $105 ^ $100;
$107 = $106&255;
HEAP8[$103>>0] = $107;
$108 = $n;
$109 = (($108) + 1)|0;
$n = $109;
$110 = $p;
$111 = ((($110)) + 1|0);
$p = $111;
}
$112 = $emlen;
$113 = $112<<3;
$114 = $2;
$115 = (($113) - ($114))|0;
$116 = 255 >> $115;
$117 = HEAP32[$em>>2]|0;
$118 = HEAP8[$117>>0]|0;
$119 = $118&255;
$120 = $119 & $116;
$121 = $120&255;
HEAP8[$117>>0] = $121;
$n = 0;
while(1) {
$122 = $n;
$123 = $emlen;
$124 = $hlen;
$125 = (($123) - ($124))|0;
$126 = $4;
$127 = (($125) - ($126))|0;
$128 = (($127) - 2)|0;
$129 = ($122>>>0)<($128>>>0);
if (!($129)) {
break;
}
$130 = $n;
$131 = HEAP32[$em>>2]|0;
$132 = (($131) + ($130)|0);
$133 = HEAP8[$132>>0]|0;
$134 = ($133<<24>>24)!=(0);
$135 = $134 ^ 1;
if (!($135)) {
break;
}
$136 = $n;
$137 = (($136) + 1)|0;
$n = $137;
}
$138 = $n;
$139 = $emlen;
$140 = $hlen;
$141 = (($139) - ($140))|0;
$142 = $4;
$143 = (($141) - ($142))|0;
$144 = (($143) - 2)|0;
$145 = ($138|0)!=($144|0);
if (!($145)) {
$146 = $n;
$147 = (($146) + 1)|0;
$n = $147;
$148 = HEAP32[$em>>2]|0;
$149 = (($148) + ($146)|0);
$150 = HEAP8[$149>>0]|0;
$151 = $150&255;
$152 = ($151|0)!=(1);
if (!($152)) {
$153 = HEAP32[$em>>2]|0;
$154 = $n;
$155 = (($153) + ($154)|0);
$salt = $155;
$156 = $buf;
;HEAP8[$156>>0]=0|0;HEAP8[$156+1>>0]=0|0;HEAP8[$156+2>>0]=0|0;HEAP8[$156+3>>0]=0|0;HEAP8[$156+4>>0]=0|0;HEAP8[$156+5>>0]=0|0;HEAP8[$156+6>>0]=0|0;HEAP8[$156+7>>0]=0|0;
$157 = $buf;
$158 = ((($157)) + 8|0);
$159 = $mhash;
$160 = $hlen;
_memcpy(($158|0),($159|0),($160|0))|0;
$161 = $buf;
$162 = ((($161)) + 8|0);
$163 = $hlen;
$164 = (($162) + ($163)|0);
$165 = $salt;
$166 = $4;
_memcpy(($164|0),($165|0),($166|0))|0;
$167 = $3;
$168 = $buf;
$169 = $buf;
$170 = $hlen;
$171 = (8 + ($170))|0;
$172 = $4;
$173 = (($171) + ($172))|0;
__gcry_md_hash_buffer($167,$168,$169,$173);
$174 = $h;
$175 = $buf;
$176 = $hlen;
$177 = (_memcmp($174,$175,$176)|0);
$178 = ($177|0)!=(0);
$179 = $178 ? 8 : 0;
$rc = $179;
break;
}
}
$rc = 8;
}
}
} else {
$33 = (_gpg_err_code_from_syserror()|0);
$rc = $33;
}
} while(0);
$180 = HEAP32[$em>>2]|0;
$181 = ($180|0)!=(0|0);
if ($181) {
$182 = HEAP32[$em>>2]|0;
$_vptr = $182;
$183 = $emlen;
$_vlen = $183;
$_vset = 0;
$184 = $_vset;
$185 = $184&255;
$186 = $_vset_long;
$187 = $186;
HEAP32[$187>>2] = $185;
$188 = (($186) + 4)|0;
$189 = $188;
HEAP32[$189>>2] = 0;
while(1) {
$190 = $_vptr;
$191 = $190;
$192 = $191 & 7;
$193 = ($192|0)!=(0);
$194 = $_vlen;
$195 = ($194|0)!=(0);
$196 = $193 ? $195 : 0;
if (!($196)) {
break;
}
$197 = $_vset;
$198 = $_vptr;
HEAP8[$198>>0] = $197;
$199 = $_vptr;
$200 = ((($199)) + 1|0);
$_vptr = $200;
$201 = $_vlen;
$202 = (($201) + -1)|0;
$_vlen = $202;
}
$203 = $_vlen;
$204 = ($203>>>0)<(8);
if (!($204)) {
$205 = $_vset_long;
$206 = $205;
$207 = HEAP32[$206>>2]|0;
$208 = (($205) + 4)|0;
$209 = $208;
$210 = HEAP32[$209>>2]|0;
$211 = (___muldi3(($207|0),($210|0),16843009,16843009)|0);
$212 = tempRet0;
$213 = $_vset_long;
$214 = $213;
HEAP32[$214>>2] = $211;
$215 = (($213) + 4)|0;
$216 = $215;
HEAP32[$216>>2] = $212;
while(1) {
$217 = $_vptr;
$_vptr_long = $217;
$218 = $_vset_long;
$219 = $218;
$220 = HEAP32[$219>>2]|0;
$221 = (($218) + 4)|0;
$222 = $221;
$223 = HEAP32[$222>>2]|0;
$224 = $_vptr_long;
$225 = $224;
$226 = $225;
HEAP32[$226>>2] = $220;
$227 = (($225) + 4)|0;
$228 = $227;
HEAP32[$228>>2] = $223;
$229 = $_vlen;
$230 = (($229) - 8)|0;
$_vlen = $230;
$231 = $_vptr;
$232 = ((($231)) + 8|0);
$_vptr = $232;
$233 = $_vlen;
$234 = ($233>>>0)>=(8);
if (!($234)) {
break;
}
}
}
while(1) {
$235 = $_vlen;
$236 = ($235|0)!=(0);
if (!($236)) {
break;
}
$237 = $_vset;
$238 = $_vptr;
HEAP8[$238>>0] = $237;
$239 = $_vptr;
$240 = ((($239)) + 1|0);
$_vptr = $240;
$241 = $_vlen;
$242 = (($241) + -1)|0;
$_vlen = $242;
}
$243 = HEAP32[$em>>2]|0;
__gcry_free($243);
}
$244 = $buf;
$245 = ($244|0)!=(0|0);
if (!($245)) {
$308 = $rc;
STACKTOP = sp;return ($308|0);
}
$246 = $buf;
$_vptr1 = $246;
$247 = $buflen;
$_vlen2 = $247;
$_vset3 = 0;
$248 = $_vset3;
$249 = $248&255;
$250 = $_vset_long4;
$251 = $250;
HEAP32[$251>>2] = $249;
$252 = (($250) + 4)|0;
$253 = $252;
HEAP32[$253>>2] = 0;
while(1) {
$254 = $_vptr1;
$255 = $254;
$256 = $255 & 7;
$257 = ($256|0)!=(0);
$258 = $_vlen2;
$259 = ($258|0)!=(0);
$260 = $257 ? $259 : 0;
if (!($260)) {
break;
}
$261 = $_vset3;
$262 = $_vptr1;
HEAP8[$262>>0] = $261;
$263 = $_vptr1;
$264 = ((($263)) + 1|0);
$_vptr1 = $264;
$265 = $_vlen2;
$266 = (($265) + -1)|0;
$_vlen2 = $266;
}
$267 = $_vlen2;
$268 = ($267>>>0)<(8);
if (!($268)) {
$269 = $_vset_long4;
$270 = $269;
$271 = HEAP32[$270>>2]|0;
$272 = (($269) + 4)|0;
$273 = $272;
$274 = HEAP32[$273>>2]|0;
$275 = (___muldi3(($271|0),($274|0),16843009,16843009)|0);
$276 = tempRet0;
$277 = $_vset_long4;
$278 = $277;
HEAP32[$278>>2] = $275;
$279 = (($277) + 4)|0;
$280 = $279;
HEAP32[$280>>2] = $276;
while(1) {
$281 = $_vptr1;
$_vptr_long5 = $281;
$282 = $_vset_long4;
$283 = $282;
$284 = HEAP32[$283>>2]|0;
$285 = (($282) + 4)|0;
$286 = $285;
$287 = HEAP32[$286>>2]|0;
$288 = $_vptr_long5;
$289 = $288;
$290 = $289;
HEAP32[$290>>2] = $284;
$291 = (($289) + 4)|0;
$292 = $291;
HEAP32[$292>>2] = $287;
$293 = $_vlen2;
$294 = (($293) - 8)|0;
$_vlen2 = $294;
$295 = $_vptr1;
$296 = ((($295)) + 8|0);
$_vptr1 = $296;
$297 = $_vlen2;
$298 = ($297>>>0)>=(8);
if (!($298)) {
break;
}
}
}
while(1) {
$299 = $_vlen2;
$300 = ($299|0)!=(0);
if (!($300)) {
break;
}
$301 = $_vset3;
$302 = $_vptr1;
HEAP8[$302>>0] = $301;
$303 = $_vptr1;
$304 = ((($303)) + 1|0);
$_vptr1 = $304;
$305 = $_vlen2;
$306 = (($305) + -1)|0;
$_vlen2 = $306;
}
$307 = $buf;
__gcry_free($307);
$308 = $rc;
STACKTOP = sp;return ($308|0);
}
function _rsa_generate($genparms,$r_skey) {
$genparms = $genparms|0;
$r_skey = $r_skey|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $deriveparms = 0, $ec = 0, $evalue = 0, $flags = 0, $l1 = 0, $nbits = 0, $or$cond = 0, $sk = 0, $swap_info = 0, $swapped = 0, $vararg_buffer = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0;
var $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$nbits = sp + 84|0;
$evalue = sp + 80|0;
$sk = sp + 56|0;
$flags = sp + 48|0;
$swap_info = sp + 40|0;
$swapped = sp + 36|0;
$1 = $genparms;
$2 = $r_skey;
HEAP32[$flags>>2] = 0;
HEAP32[$swap_info>>2] = 0;
;HEAP32[$sk>>2]=0|0;HEAP32[$sk+4>>2]=0|0;HEAP32[$sk+8>>2]=0|0;HEAP32[$sk+12>>2]=0|0;HEAP32[$sk+16>>2]=0|0;HEAP32[$sk+20>>2]=0|0;
$3 = $1;
$4 = (__gcry_pk_util_get_nbits($3,$nbits)|0);
$ec = $4;
$5 = $ec;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $ec;
$0 = $7;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
$8 = $1;
$9 = (__gcry_pk_util_get_rsa_use_e($8,$evalue)|0);
$ec = $9;
$10 = $ec;
$11 = ($10|0)!=(0);
if ($11) {
$12 = $ec;
$0 = $12;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
$13 = $1;
$14 = (__gcry_sexp_find_token($13,47190,0)|0);
$l1 = $14;
$15 = $l1;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $l1;
$18 = (__gcry_pk_util_parse_flaglist($17,$flags,0)|0);
$ec = $18;
$19 = $l1;
__gcry_sexp_release($19);
$20 = $ec;
$21 = ($20|0)!=(0);
if ($21) {
$22 = $ec;
$0 = $22;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
}
$23 = $1;
$24 = ($23|0)!=(0|0);
if ($24) {
$25 = $1;
$26 = (__gcry_sexp_find_token($25,39399,0)|0);
$27 = $26;
} else {
$27 = 0;
}
$deriveparms = $27;
$28 = $deriveparms;
$29 = ($28|0)!=(0|0);
if (!($29)) {
$30 = $1;
$31 = (__gcry_sexp_find_token($30,39412,0)|0);
$l1 = $31;
$32 = $l1;
$33 = ($32|0)!=(0|0);
if ($33) {
$34 = HEAP32[$flags>>2]|0;
$35 = $34 | 64;
HEAP32[$flags>>2] = $35;
$36 = $l1;
__gcry_sexp_release($36);
}
}
$37 = $deriveparms;
$38 = ($37|0)!=(0|0);
if ($38) {
label = 16;
} else {
$39 = HEAP32[$flags>>2]|0;
$40 = $39 & 64;
$41 = ($40|0)!=(0);
if ($41) {
label = 16;
} else {
$42 = (__gcry_fips_mode()|0);
$43 = ($42|0)!=(0);
if ($43) {
label = 16;
} else {
$54 = HEAP32[$flags>>2]|0;
$55 = $54 & 32;
$56 = ($55|0)!=(0);
if (!($56)) {
$57 = $1;
$58 = (__gcry_sexp_find_token($57,47196,0)|0);
$l1 = $58;
$59 = $l1;
$60 = ($59|0)!=(0|0);
if ($60) {
$61 = HEAP32[$flags>>2]|0;
$62 = $61 | 32;
HEAP32[$flags>>2] = $62;
$63 = $l1;
__gcry_sexp_release($63);
}
}
$64 = HEAP32[$nbits>>2]|0;
$65 = HEAP32[$evalue>>2]|0;
$66 = HEAP32[$flags>>2]|0;
$67 = $66 & 32;
$68 = ($67|0)!=(0);
$69 = $68 ^ 1;
$70 = $69 ^ 1;
$71 = $70&1;
$72 = (_generate_std($sk,$64,$65,$71)|0);
$ec = $72;
}
}
}
if ((label|0) == 16) {
$44 = HEAP32[$nbits>>2]|0;
$45 = HEAP32[$evalue>>2]|0;
$46 = $deriveparms;
$47 = (_generate_x931($sk,$44,$45,$46,$swapped)|0);
$ec = $47;
$48 = $deriveparms;
__gcry_sexp_release($48);
$49 = $ec;
$50 = ($49|0)==(0);
$51 = HEAP32[$swapped>>2]|0;
$52 = ($51|0)!=(0);
$or$cond = $50 & $52;
if ($or$cond) {
$53 = (__gcry_sexp_new($swap_info,39680,0,1)|0);
$ec = $53;
}
}
$73 = $ec;
$74 = ($73|0)!=(0);
if (!($74)) {
$75 = $2;
$76 = HEAP32[$sk>>2]|0;
$77 = ((($sk)) + 4|0);
$78 = HEAP32[$77>>2]|0;
$79 = HEAP32[$sk>>2]|0;
$80 = ((($sk)) + 4|0);
$81 = HEAP32[$80>>2]|0;
$82 = ((($sk)) + 8|0);
$83 = HEAP32[$82>>2]|0;
$84 = ((($sk)) + 12|0);
$85 = HEAP32[$84>>2]|0;
$86 = ((($sk)) + 16|0);
$87 = HEAP32[$86>>2]|0;
$88 = ((($sk)) + 20|0);
$89 = HEAP32[$88>>2]|0;
$90 = HEAP32[$swap_info>>2]|0;
HEAP32[$vararg_buffer>>2] = $76;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $78;
$vararg_ptr3 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr3>>2] = $79;
$vararg_ptr4 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr4>>2] = $81;
$vararg_ptr5 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr5>>2] = $83;
$vararg_ptr6 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr6>>2] = $85;
$vararg_ptr7 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr7>>2] = $87;
$vararg_ptr8 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr8>>2] = $89;
$vararg_ptr9 = ((($vararg_buffer)) + 32|0);
HEAP32[$vararg_ptr9>>2] = $90;
$91 = (__gcry_sexp_build($75,0,39776,$vararg_buffer)|0);
$ec = $91;
}
$92 = HEAP32[$sk>>2]|0;
__gcry_mpi_free($92);
$93 = ((($sk)) + 4|0);
$94 = HEAP32[$93>>2]|0;
__gcry_mpi_free($94);
$95 = ((($sk)) + 12|0);
$96 = HEAP32[$95>>2]|0;
__gcry_mpi_free($96);
$97 = ((($sk)) + 16|0);
$98 = HEAP32[$97>>2]|0;
__gcry_mpi_free($98);
$99 = ((($sk)) + 8|0);
$100 = HEAP32[$99>>2]|0;
__gcry_mpi_free($100);
$101 = ((($sk)) + 20|0);
$102 = HEAP32[$101>>2]|0;
__gcry_mpi_free($102);
$103 = HEAP32[$swap_info>>2]|0;
__gcry_sexp_release($103);
$104 = $ec;
$0 = $104;
$105 = $0;
STACKTOP = sp;return ($105|0);
}
function _generate_x931($sk,$nbits,$e_value,$deriveparms,$swapped) {
$sk = $sk|0;
$nbits = $nbits|0;
$e_value = $e_value|0;
$deriveparms = $deriveparms|0;
$swapped = $swapped|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $d = 0, $e = 0, $f = 0, $g = 0, $idx = 0, $n = 0, $oneparm = 0, $or$cond = 0, $p = 0, $phi = 0, $pm1 = 0, $q = 0, $qm1 = 0, $tbl = 0, $tmpval = 0;
var $u = 0, $vararg_buffer = 0, $xp = 0, $xp1 = 0, $xp2 = 0, $xq = 0, $xq1 = 0, $xq2 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$xp1 = sp + 96|0;
$xp2 = sp + 92|0;
$xp = sp + 88|0;
$xq1 = sp + 84|0;
$xq2 = sp + 80|0;
$xq = sp + 76|0;
$tbl = sp + 16|0;
$1 = $sk;
$2 = $nbits;
$3 = $e_value;
$4 = $deriveparms;
$5 = $swapped;
$6 = $5;
HEAP32[$6>>2] = 0;
$7 = $3;
$8 = ($7|0)==(1);
if ($8) {
$3 = 65537;
}
$9 = $2;
$10 = ($9>>>0)<(1024);
if (!($10)) {
$11 = $2;
$12 = (($11>>>0) % 256)&-1;
$13 = ($12|0)!=(0);
if (!($13)) {
$14 = $3;
$15 = ($14>>>0)<(3);
if ($15) {
$0 = 55;
$244 = $0;
STACKTOP = sp;return ($244|0);
}
$16 = $3;
$17 = $16 & 1;
$18 = ($17|0)!=(0);
if (!($18)) {
$0 = 55;
$244 = $0;
STACKTOP = sp;return ($244|0);
}
HEAP32[$xp1>>2] = 0;
HEAP32[$xp2>>2] = 0;
HEAP32[$xp>>2] = 0;
HEAP32[$xq1>>2] = 0;
HEAP32[$xq2>>2] = 0;
HEAP32[$xq>>2] = 0;
$19 = $4;
$20 = ($19|0)!=(0|0);
if ($20) {
dest=$tbl; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
HEAP32[$tbl>>2] = 39531;
$45 = ((($tbl)) + 8|0);
HEAP32[$45>>2] = 39535;
$46 = ((($tbl)) + 16|0);
HEAP32[$46>>2] = 39539;
$47 = ((($tbl)) + 24|0);
HEAP32[$47>>2] = 39542;
$48 = ((($tbl)) + 32|0);
HEAP32[$48>>2] = 39546;
$49 = ((($tbl)) + 40|0);
HEAP32[$49>>2] = 39550;
$50 = ((($tbl)) + 4|0);
HEAP32[$50>>2] = $xp1;
$51 = ((($tbl)) + 8|0);
$52 = ((($51)) + 4|0);
HEAP32[$52>>2] = $xp2;
$53 = ((($tbl)) + 16|0);
$54 = ((($53)) + 4|0);
HEAP32[$54>>2] = $xp;
$55 = ((($tbl)) + 24|0);
$56 = ((($55)) + 4|0);
HEAP32[$56>>2] = $xq1;
$57 = ((($tbl)) + 32|0);
$58 = ((($57)) + 4|0);
HEAP32[$58>>2] = $xq2;
$59 = ((($tbl)) + 40|0);
$60 = ((($59)) + 4|0);
HEAP32[$60>>2] = $xq;
$idx = 0;
while(1) {
$61 = $idx;
$62 = (($tbl) + ($61<<3)|0);
$63 = HEAP32[$62>>2]|0;
$64 = ($63|0)!=(0|0);
if (!($64)) {
break;
}
$65 = $4;
$66 = $idx;
$67 = (($tbl) + ($66<<3)|0);
$68 = HEAP32[$67>>2]|0;
$69 = (__gcry_sexp_find_token($65,$68,0)|0);
$oneparm = $69;
$70 = $oneparm;
$71 = ($70|0)!=(0|0);
if ($71) {
$72 = $oneparm;
$73 = (__gcry_sexp_nth_mpi($72,1,5)|0);
$74 = $idx;
$75 = (($tbl) + ($74<<3)|0);
$76 = ((($75)) + 4|0);
$77 = HEAP32[$76>>2]|0;
HEAP32[$77>>2] = $73;
$78 = $oneparm;
__gcry_sexp_release($78);
}
$79 = $idx;
$80 = (($79) + 1)|0;
$idx = $80;
}
$idx = 0;
while(1) {
$81 = $idx;
$82 = (($tbl) + ($81<<3)|0);
$83 = HEAP32[$82>>2]|0;
$84 = ($83|0)!=(0|0);
if (!($84)) {
break;
}
$85 = $idx;
$86 = (($tbl) + ($85<<3)|0);
$87 = ((($86)) + 4|0);
$88 = HEAP32[$87>>2]|0;
$89 = HEAP32[$88>>2]|0;
$90 = ($89|0)!=(0|0);
if (!($90)) {
break;
}
$91 = $idx;
$92 = (($91) + 1)|0;
$idx = $92;
}
$93 = $idx;
$94 = (($tbl) + ($93<<3)|0);
$95 = HEAP32[$94>>2]|0;
$96 = ($95|0)!=(0|0);
if ($96) {
$idx = 0;
while(1) {
$97 = $idx;
$98 = (($tbl) + ($97<<3)|0);
$99 = HEAP32[$98>>2]|0;
$100 = ($99|0)!=(0|0);
if (!($100)) {
break;
}
$101 = $idx;
$102 = (($tbl) + ($101<<3)|0);
$103 = ((($102)) + 4|0);
$104 = HEAP32[$103>>2]|0;
$105 = HEAP32[$104>>2]|0;
__gcry_mpi_release($105);
$106 = $idx;
$107 = (($106) + 1)|0;
$idx = $107;
}
$0 = 128;
$244 = $0;
STACKTOP = sp;return ($244|0);
}
} else {
$21 = $2;
$22 = (($21>>>0) / 2)&-1;
$23 = (_gen_x931_parm_xp($22)|0);
HEAP32[$xp>>2] = $23;
$24 = $2;
$25 = (($24>>>0) / 2)&-1;
$26 = (__gcry_mpi_snew($25)|0);
$tmpval = $26;
while(1) {
$27 = HEAP32[$xq>>2]|0;
__gcry_mpi_release($27);
$28 = $2;
$29 = (($28>>>0) / 2)&-1;
$30 = (_gen_x931_parm_xp($29)|0);
HEAP32[$xq>>2] = $30;
$31 = $tmpval;
$32 = HEAP32[$xp>>2]|0;
$33 = HEAP32[$xq>>2]|0;
__gcry_mpi_sub($31,$32,$33);
$34 = $tmpval;
$35 = (__gcry_mpi_get_nbits($34)|0);
$36 = $2;
$37 = (($36>>>0) / 2)&-1;
$38 = (($37) - 100)|0;
$39 = ($35>>>0)<=($38>>>0);
if (!($39)) {
break;
}
}
$40 = $tmpval;
__gcry_mpi_release($40);
$41 = (_gen_x931_parm_xi()|0);
HEAP32[$xp1>>2] = $41;
$42 = (_gen_x931_parm_xi()|0);
HEAP32[$xp2>>2] = $42;
$43 = (_gen_x931_parm_xi()|0);
HEAP32[$xq1>>2] = $43;
$44 = (_gen_x931_parm_xi()|0);
HEAP32[$xq2>>2] = $44;
}
$108 = $3;
$109 = (__gcry_mpi_alloc_set_ui($108)|0);
$e = $109;
$110 = HEAP32[$xp>>2]|0;
$111 = HEAP32[$xp1>>2]|0;
$112 = HEAP32[$xp2>>2]|0;
$113 = $e;
$114 = (__gcry_derive_x931_prime($110,$111,$112,$113,0,0)|0);
$p = $114;
$115 = HEAP32[$xq>>2]|0;
$116 = HEAP32[$xq1>>2]|0;
$117 = HEAP32[$xq2>>2]|0;
$118 = $e;
$119 = (__gcry_derive_x931_prime($115,$116,$117,$118,0,0)|0);
$q = $119;
$120 = HEAP32[$xp>>2]|0;
__gcry_mpi_release($120);
HEAP32[$xp>>2] = 0;
$121 = HEAP32[$xp1>>2]|0;
__gcry_mpi_release($121);
HEAP32[$xp1>>2] = 0;
$122 = HEAP32[$xp2>>2]|0;
__gcry_mpi_release($122);
HEAP32[$xp2>>2] = 0;
$123 = HEAP32[$xq>>2]|0;
__gcry_mpi_release($123);
HEAP32[$xq>>2] = 0;
$124 = HEAP32[$xq1>>2]|0;
__gcry_mpi_release($124);
HEAP32[$xq1>>2] = 0;
$125 = HEAP32[$xq2>>2]|0;
__gcry_mpi_release($125);
HEAP32[$xq2>>2] = 0;
$126 = $p;
$127 = ($126|0)!=(0|0);
$128 = $q;
$129 = ($128|0)!=(0|0);
$or$cond = $127 & $129;
$130 = $p;
if (!($or$cond)) {
__gcry_mpi_release($130);
$131 = $q;
__gcry_mpi_release($131);
$132 = $e;
__gcry_mpi_release($132);
$0 = 21;
$244 = $0;
STACKTOP = sp;return ($244|0);
}
$133 = $q;
$134 = (__gcry_mpi_cmp($130,$133)|0);
$135 = ($134|0)>(0);
if ($135) {
$136 = $p;
$137 = $q;
__gcry_mpi_swap($136,$137);
$138 = $5;
HEAP32[$138>>2] = 1;
}
$139 = $2;
$140 = (__gcry_mpi_new($139)|0);
$n = $140;
$141 = $n;
$142 = $p;
$143 = $q;
__gcry_mpi_mul($141,$142,$143);
$144 = $2;
$145 = (($144>>>0) / 2)&-1;
$146 = (__gcry_mpi_snew($145)|0);
$pm1 = $146;
$147 = $2;
$148 = (($147>>>0) / 2)&-1;
$149 = (__gcry_mpi_snew($148)|0);
$qm1 = $149;
$150 = $2;
$151 = (__gcry_mpi_snew($150)|0);
$phi = $151;
$152 = $pm1;
$153 = $p;
__gcry_mpi_sub_ui($152,$153,1);
$154 = $qm1;
$155 = $q;
__gcry_mpi_sub_ui($154,$155,1);
$156 = $phi;
$157 = $pm1;
$158 = $qm1;
__gcry_mpi_mul($156,$157,$158);
$159 = $2;
$160 = (__gcry_mpi_snew($159)|0);
$g = $160;
$161 = $g;
$162 = $e;
$163 = $phi;
$164 = (__gcry_mpi_gcd($161,$162,$163)|0);
$165 = ($164|0)!=(0);
if (!($165)) {
__gcry_assert_failed(39553,39457,541,39587);
// unreachable;
}
$166 = $g;
$167 = $pm1;
$168 = $qm1;
(__gcry_mpi_gcd($166,$167,$168)|0);
$169 = $pm1;
$f = $169;
$pm1 = 0;
$170 = $qm1;
__gcry_mpi_release($170);
$qm1 = 0;
$171 = $f;
$172 = $phi;
$173 = $g;
__gcry_mpi_fdiv_q($171,$172,$173);
$174 = $phi;
__gcry_mpi_release($174);
$phi = 0;
$175 = $g;
$d = $175;
$g = 0;
$176 = $d;
$177 = $e;
$178 = $f;
(__gcry_mpi_invm($176,$177,$178)|0);
$179 = $f;
$u = $179;
$f = 0;
$180 = $u;
$181 = $p;
$182 = $q;
(__gcry_mpi_invm($180,$181,$182)|0);
$183 = (__gcry_get_debug_flag(1)|0);
$184 = ($183|0)!=(0);
if ($184) {
$185 = $5;
$186 = HEAP32[$185>>2]|0;
$187 = ($186|0)!=(0);
if ($187) {
__gcry_log_debug(39601,$vararg_buffer);
}
$188 = $p;
__gcry_log_printmpi(45653,$188);
$189 = $q;
__gcry_log_printmpi(39622,$189);
$190 = $n;
__gcry_log_printmpi(39626,$190);
$191 = $e;
__gcry_log_printmpi(39630,$191);
$192 = $d;
__gcry_log_printmpi(39634,$192);
$193 = $u;
__gcry_log_printmpi(39638,$193);
}
$194 = $n;
$195 = $1;
HEAP32[$195>>2] = $194;
$196 = $e;
$197 = $1;
$198 = ((($197)) + 4|0);
HEAP32[$198>>2] = $196;
$199 = $p;
$200 = $1;
$201 = ((($200)) + 12|0);
HEAP32[$201>>2] = $199;
$202 = $q;
$203 = $1;
$204 = ((($203)) + 16|0);
HEAP32[$204>>2] = $202;
$205 = $d;
$206 = $1;
$207 = ((($206)) + 8|0);
HEAP32[$207>>2] = $205;
$208 = $u;
$209 = $1;
$210 = ((($209)) + 20|0);
HEAP32[$210>>2] = $208;
$211 = $1;
$212 = $2;
$213 = (($212) - 64)|0;
$214 = (_test_keys($211,$213)|0);
$215 = ($214|0)!=(0);
if ($215) {
$216 = $1;
$217 = HEAP32[$216>>2]|0;
__gcry_mpi_release($217);
$218 = $1;
HEAP32[$218>>2] = 0;
$219 = $1;
$220 = ((($219)) + 4|0);
$221 = HEAP32[$220>>2]|0;
__gcry_mpi_release($221);
$222 = $1;
$223 = ((($222)) + 4|0);
HEAP32[$223>>2] = 0;
$224 = $1;
$225 = ((($224)) + 12|0);
$226 = HEAP32[$225>>2]|0;
__gcry_mpi_release($226);
$227 = $1;
$228 = ((($227)) + 12|0);
HEAP32[$228>>2] = 0;
$229 = $1;
$230 = ((($229)) + 16|0);
$231 = HEAP32[$230>>2]|0;
__gcry_mpi_release($231);
$232 = $1;
$233 = ((($232)) + 16|0);
HEAP32[$233>>2] = 0;
$234 = $1;
$235 = ((($234)) + 8|0);
$236 = HEAP32[$235>>2]|0;
__gcry_mpi_release($236);
$237 = $1;
$238 = ((($237)) + 8|0);
HEAP32[$238>>2] = 0;
$239 = $1;
$240 = ((($239)) + 20|0);
$241 = HEAP32[$240>>2]|0;
__gcry_mpi_release($241);
$242 = $1;
$243 = ((($242)) + 20|0);
HEAP32[$243>>2] = 0;
__gcry_fips_signal_error(39457,586,39587,0,39642);
$0 = 50;
$244 = $0;
STACKTOP = sp;return ($244|0);
} else {
$0 = 0;
$244 = $0;
STACKTOP = sp;return ($244|0);
}
}
}
$0 = 55;
$244 = $0;
STACKTOP = sp;return ($244|0);
}
function _gen_x931_parm_xp($nbits) {
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $xp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = $0;
$2 = (__gcry_mpi_snew($1)|0);
$xp = $2;
$3 = $xp;
$4 = $0;
__gcry_mpi_randomize($3,$4,2);
$5 = $xp;
$6 = $0;
$7 = (($6) - 1)|0;
__gcry_mpi_set_highbit($5,$7);
$8 = $xp;
$9 = $0;
$10 = (($9) - 2)|0;
__gcry_mpi_set_bit($8,$10);
$11 = $xp;
$12 = (__gcry_mpi_get_nbits($11)|0);
$13 = $0;
$14 = ($12|0)==($13|0);
if ($14) {
$15 = $xp;
STACKTOP = sp;return ($15|0);
} else {
__gcry_assert_failed(39421,39457,360,39463);
// unreachable;
}
return (0)|0;
}
function _gen_x931_parm_xi() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $xi = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = (__gcry_mpi_snew(101)|0);
$xi = $0;
$1 = $xi;
__gcry_mpi_randomize($1,101,2);
$2 = $xi;
__gcry_mpi_set_highbit($2,100);
$3 = $xi;
$4 = (__gcry_mpi_get_nbits($3)|0);
$5 = ($4|0)==(101);
if ($5) {
$6 = $xi;
STACKTOP = sp;return ($6|0);
} else {
__gcry_assert_failed(39480,39457,375,39514);
// unreachable;
}
return (0)|0;
}
function _test_keys($sk,$nbits) {
$sk = $sk|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ciphertext = 0, $decr_plaintext = 0, $pk = 0, $plaintext = 0, $result = 0;
var $signature = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$pk = sp + 16|0;
$0 = $sk;
$1 = $nbits;
$result = -1;
$2 = $1;
$3 = (__gcry_mpi_new($2)|0);
$plaintext = $3;
$4 = $1;
$5 = (__gcry_mpi_new($4)|0);
$ciphertext = $5;
$6 = $1;
$7 = (__gcry_mpi_new($6)|0);
$decr_plaintext = $7;
$8 = $1;
$9 = (__gcry_mpi_new($8)|0);
$signature = $9;
$10 = $0;
$11 = HEAP32[$10>>2]|0;
HEAP32[$pk>>2] = $11;
$12 = $0;
$13 = ((($12)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$15 = ((($pk)) + 4|0);
HEAP32[$15>>2] = $14;
$16 = $plaintext;
$17 = $1;
__gcry_mpi_randomize($16,$17,0);
$18 = $ciphertext;
$19 = $plaintext;
_public($18,$19,$pk);
$20 = $ciphertext;
$21 = $plaintext;
$22 = (__gcry_mpi_cmp($20,$21)|0);
$23 = ($22|0)!=(0);
if ($23) {
$24 = $decr_plaintext;
$25 = $ciphertext;
$26 = $0;
_secret($24,$25,$26);
$27 = $decr_plaintext;
$28 = $plaintext;
$29 = (__gcry_mpi_cmp($27,$28)|0);
$30 = ($29|0)!=(0);
if (!($30)) {
$31 = $plaintext;
$32 = $1;
__gcry_mpi_randomize($31,$32,0);
$33 = $signature;
$34 = $plaintext;
$35 = $0;
_secret($33,$34,$35);
$36 = $decr_plaintext;
$37 = $signature;
_public($36,$37,$pk);
$38 = $decr_plaintext;
$39 = $plaintext;
$40 = (__gcry_mpi_cmp($38,$39)|0);
$41 = ($40|0)!=(0);
if (!($41)) {
$42 = $signature;
$43 = $signature;
__gcry_mpi_add_ui($42,$43,1);
$44 = $decr_plaintext;
$45 = $signature;
_public($44,$45,$pk);
$46 = $decr_plaintext;
$47 = $plaintext;
$48 = (__gcry_mpi_cmp($46,$47)|0);
$49 = ($48|0)!=(0);
if ($49) {
$result = 0;
}
}
}
}
$50 = $signature;
__gcry_mpi_release($50);
$51 = $decr_plaintext;
__gcry_mpi_release($51);
$52 = $ciphertext;
__gcry_mpi_release($52);
$53 = $plaintext;
__gcry_mpi_release($53);
$54 = $result;
STACKTOP = sp;return ($54|0);
}
function _public($output,$input,$pkey) {
$output = $output|0;
$input = $input|0;
$pkey = $pkey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $output;
$1 = $input;
$2 = $pkey;
$3 = $0;
$4 = $1;
$5 = ($3|0)==($4|0);
if ($5) {
$6 = $1;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8<<1;
$10 = (__gcry_mpi_alloc($9)|0);
$x = $10;
$11 = $x;
$12 = $1;
$13 = $2;
$14 = ((($13)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = $2;
$17 = HEAP32[$16>>2]|0;
__gcry_mpi_powm($11,$12,$15,$17);
$18 = $0;
$19 = $x;
(__gcry_mpi_set($18,$19)|0);
$20 = $x;
__gcry_mpi_free($20);
STACKTOP = sp;return;
} else {
$21 = $0;
$22 = $1;
$23 = $2;
$24 = ((($23)) + 4|0);
$25 = HEAP32[$24>>2]|0;
$26 = $2;
$27 = HEAP32[$26>>2]|0;
__gcry_mpi_powm($21,$22,$25,$27);
STACKTOP = sp;return;
}
}
function _secret($output,$input,$skey) {
$output = $output|0;
$input = $input|0;
$skey = $skey|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $h = 0, $m1 = 0, $m2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $output;
$1 = $input;
$2 = $skey;
$3 = $1;
__gcry_mpi_normalize($3);
$4 = $2;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $2;
$9 = ((($8)) + 16|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $2;
$13 = ((($12)) + 20|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)!=(0|0);
if ($15) {
$23 = $2;
$24 = HEAP32[$23>>2]|0;
$25 = ((($24)) + 4|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + 1)|0;
$28 = (__gcry_mpi_alloc_secure($27)|0);
$m1 = $28;
$29 = $2;
$30 = HEAP32[$29>>2]|0;
$31 = ((($30)) + 4|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($32) + 1)|0;
$34 = (__gcry_mpi_alloc_secure($33)|0);
$m2 = $34;
$35 = $2;
$36 = HEAP32[$35>>2]|0;
$37 = ((($36)) + 4|0);
$38 = HEAP32[$37>>2]|0;
$39 = (($38) + 1)|0;
$40 = (__gcry_mpi_alloc_secure($39)|0);
$h = $40;
$41 = $h;
$42 = $2;
$43 = ((($42)) + 12|0);
$44 = HEAP32[$43>>2]|0;
__gcry_mpi_sub_ui($41,$44,1);
$45 = $h;
$46 = $2;
$47 = ((($46)) + 8|0);
$48 = HEAP32[$47>>2]|0;
$49 = $h;
__gcry_mpi_fdiv_r($45,$48,$49);
$50 = $m1;
$51 = $1;
$52 = $h;
$53 = $2;
$54 = ((($53)) + 12|0);
$55 = HEAP32[$54>>2]|0;
__gcry_mpi_powm($50,$51,$52,$55);
$56 = $h;
$57 = $2;
$58 = ((($57)) + 16|0);
$59 = HEAP32[$58>>2]|0;
__gcry_mpi_sub_ui($56,$59,1);
$60 = $h;
$61 = $2;
$62 = ((($61)) + 8|0);
$63 = HEAP32[$62>>2]|0;
$64 = $h;
__gcry_mpi_fdiv_r($60,$63,$64);
$65 = $m2;
$66 = $1;
$67 = $h;
$68 = $2;
$69 = ((($68)) + 16|0);
$70 = HEAP32[$69>>2]|0;
__gcry_mpi_powm($65,$66,$67,$70);
$71 = $h;
$72 = $m2;
$73 = $m1;
__gcry_mpi_sub($71,$72,$73);
$74 = $h;
$75 = ((($74)) + 8|0);
$76 = HEAP32[$75>>2]|0;
$77 = ($76|0)!=(0);
if ($77) {
$78 = $h;
$79 = $h;
$80 = $2;
$81 = ((($80)) + 16|0);
$82 = HEAP32[$81>>2]|0;
__gcry_mpi_add($78,$79,$82);
}
$83 = $h;
$84 = $2;
$85 = ((($84)) + 20|0);
$86 = HEAP32[$85>>2]|0;
$87 = $h;
$88 = $2;
$89 = ((($88)) + 16|0);
$90 = HEAP32[$89>>2]|0;
__gcry_mpi_mulm($83,$86,$87,$90);
$91 = $h;
$92 = $h;
$93 = $2;
$94 = ((($93)) + 12|0);
$95 = HEAP32[$94>>2]|0;
__gcry_mpi_mul($91,$92,$95);
$96 = $0;
$97 = $m1;
$98 = $h;
__gcry_mpi_add($96,$97,$98);
$99 = $h;
__gcry_mpi_free($99);
$100 = $m1;
__gcry_mpi_free($100);
$101 = $m2;
__gcry_mpi_free($101);
STACKTOP = sp;return;
}
}
}
$16 = $0;
$17 = $1;
$18 = $2;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = $2;
$22 = HEAP32[$21>>2]|0;
__gcry_mpi_powm($16,$17,$20,$22);
STACKTOP = sp;return;
}
function _generate_std($sk,$nbits,$use_e,$transient_key) {
$sk = $sk|0;
$nbits = $nbits|0;
$use_e = $use_e|0;
$transient_key = $transient_key|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $d = 0, $e = 0, $f = 0, $g = 0, $n = 0, $p = 0, $phi = 0, $q = 0, $random_level = 0, $t1 = 0, $t2 = 0, $u = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $sk;
$2 = $nbits;
$3 = $use_e;
$4 = $transient_key;
$5 = (__gcry_fips_mode()|0);
$6 = ($5|0)!=(0);
if ($6) {
$7 = $2;
$8 = ($7>>>0)<(1024);
if ($8) {
$0 = 55;
$180 = $0;
STACKTOP = sp;return ($180|0);
}
$9 = $4;
$10 = ($9|0)!=(0);
if ($10) {
$0 = 55;
$180 = $0;
STACKTOP = sp;return ($180|0);
}
}
$11 = $4;
$12 = ($11|0)!=(0);
$13 = $12 ? 1 : 2;
$random_level = $13;
$14 = $2;
$15 = $14 & 1;
$16 = ($15|0)!=(0);
if ($16) {
$17 = $2;
$18 = (($17) + 1)|0;
$2 = $18;
}
$19 = $3;
$20 = ($19|0)==(1);
if ($20) {
$3 = 65537;
}
$21 = (__gcry_mpi_alloc(1)|0);
$e = $21;
$22 = $3;
$23 = ($22|0)!=(0);
if ($23) {
$25 = $3;
$26 = $25 | 1;
$3 = $26;
$27 = $e;
$28 = $3;
(__gcry_mpi_set_ui($27,$28)|0);
} else {
$24 = $e;
(__gcry_mpi_set_ui($24,41)|0);
}
$29 = $2;
$30 = (__gcry_mpi_new($29)|0);
$n = $30;
$q = 0;
$p = 0;
while(1) {
$31 = $p;
$32 = ($31|0)!=(0|0);
if ($32) {
$33 = $p;
__gcry_mpi_release($33);
}
$34 = $q;
$35 = ($34|0)!=(0|0);
if ($35) {
$36 = $q;
__gcry_mpi_release($36);
}
$37 = $3;
$38 = ($37|0)!=(0);
$39 = $2;
$40 = (($39>>>0) / 2)&-1;
$41 = $random_level;
if ($38) {
$42 = $e;
$43 = (__gcry_generate_secret_prime($40,$41,73,$42)|0);
$p = $43;
$44 = $2;
$45 = (($44>>>0) / 2)&-1;
$46 = $random_level;
$47 = $e;
$48 = (__gcry_generate_secret_prime($45,$46,73,$47)|0);
$q = $48;
} else {
$49 = (__gcry_generate_secret_prime($40,$41,0,0)|0);
$p = $49;
$50 = $2;
$51 = (($50>>>0) / 2)&-1;
$52 = $random_level;
$53 = (__gcry_generate_secret_prime($51,$52,0,0)|0);
$q = $53;
}
$54 = $p;
$55 = $q;
$56 = (__gcry_mpi_cmp($54,$55)|0);
$57 = ($56|0)>(0);
if ($57) {
$58 = $p;
$59 = $q;
__gcry_mpi_swap($58,$59);
}
$60 = $n;
$61 = $p;
$62 = $q;
__gcry_mpi_mul($60,$61,$62);
$63 = $n;
$64 = (__gcry_mpi_get_nbits($63)|0);
$65 = $2;
$66 = ($64|0)!=($65|0);
if (!($66)) {
break;
}
}
$67 = $p;
$68 = ((($67)) + 4|0);
$69 = HEAP32[$68>>2]|0;
$70 = (__gcry_mpi_alloc_secure($69)|0);
$t1 = $70;
$71 = $p;
$72 = ((($71)) + 4|0);
$73 = HEAP32[$72>>2]|0;
$74 = (__gcry_mpi_alloc_secure($73)|0);
$t2 = $74;
$75 = $2;
$76 = (__gcry_mpi_snew($75)|0);
$phi = $76;
$77 = $2;
$78 = (__gcry_mpi_snew($77)|0);
$g = $78;
$79 = $2;
$80 = (__gcry_mpi_snew($79)|0);
$f = $80;
$81 = $t1;
$82 = $p;
__gcry_mpi_sub_ui($81,$82,1);
$83 = $t2;
$84 = $q;
__gcry_mpi_sub_ui($83,$84,1);
$85 = $phi;
$86 = $t1;
$87 = $t2;
__gcry_mpi_mul($85,$86,$87);
$88 = $g;
$89 = $t1;
$90 = $t2;
(__gcry_mpi_gcd($88,$89,$90)|0);
$91 = $f;
$92 = $phi;
$93 = $g;
__gcry_mpi_fdiv_q($91,$92,$93);
while(1) {
$94 = $t1;
$95 = $e;
$96 = $phi;
$97 = (__gcry_mpi_gcd($94,$95,$96)|0);
$98 = ($97|0)!=(0);
$99 = $98 ^ 1;
if (!($99)) {
break;
}
$100 = $3;
$101 = ($100|0)!=(0);
if ($101) {
label = 27;
break;
}
$102 = $e;
$103 = $e;
__gcry_mpi_add_ui($102,$103,2);
}
if ((label|0) == 27) {
__gcry_bug(39457,287,39709);
// unreachable;
}
$104 = $2;
$105 = (__gcry_mpi_snew($104)|0);
$d = $105;
$106 = $d;
$107 = $e;
$108 = $f;
(__gcry_mpi_invm($106,$107,$108)|0);
$109 = $2;
$110 = (__gcry_mpi_snew($109)|0);
$u = $110;
$111 = $u;
$112 = $p;
$113 = $q;
(__gcry_mpi_invm($111,$112,$113)|0);
$114 = (__gcry_get_debug_flag(1)|0);
$115 = ($114|0)!=(0);
if ($115) {
$116 = $p;
__gcry_log_printmpi(39722,$116);
$117 = $q;
__gcry_log_printmpi(39728,$117);
$118 = $phi;
__gcry_log_printmpi(39734,$118);
$119 = $g;
__gcry_log_printmpi(39740,$119);
$120 = $f;
__gcry_log_printmpi(39746,$120);
$121 = $n;
__gcry_log_printmpi(39752,$121);
$122 = $e;
__gcry_log_printmpi(39758,$122);
$123 = $d;
__gcry_log_printmpi(39764,$123);
$124 = $u;
__gcry_log_printmpi(39770,$124);
}
$125 = $t1;
__gcry_mpi_release($125);
$126 = $t2;
__gcry_mpi_release($126);
$127 = $phi;
__gcry_mpi_release($127);
$128 = $f;
__gcry_mpi_release($128);
$129 = $g;
__gcry_mpi_release($129);
$130 = $n;
$131 = $1;
HEAP32[$131>>2] = $130;
$132 = $e;
$133 = $1;
$134 = ((($133)) + 4|0);
HEAP32[$134>>2] = $132;
$135 = $p;
$136 = $1;
$137 = ((($136)) + 12|0);
HEAP32[$137>>2] = $135;
$138 = $q;
$139 = $1;
$140 = ((($139)) + 16|0);
HEAP32[$140>>2] = $138;
$141 = $d;
$142 = $1;
$143 = ((($142)) + 8|0);
HEAP32[$143>>2] = $141;
$144 = $u;
$145 = $1;
$146 = ((($145)) + 20|0);
HEAP32[$146>>2] = $144;
$147 = $1;
$148 = $2;
$149 = (($148) - 64)|0;
$150 = (_test_keys($147,$149)|0);
$151 = ($150|0)!=(0);
if ($151) {
$152 = $1;
$153 = HEAP32[$152>>2]|0;
__gcry_mpi_release($153);
$154 = $1;
HEAP32[$154>>2] = 0;
$155 = $1;
$156 = ((($155)) + 4|0);
$157 = HEAP32[$156>>2]|0;
__gcry_mpi_release($157);
$158 = $1;
$159 = ((($158)) + 4|0);
HEAP32[$159>>2] = 0;
$160 = $1;
$161 = ((($160)) + 12|0);
$162 = HEAP32[$161>>2]|0;
__gcry_mpi_release($162);
$163 = $1;
$164 = ((($163)) + 12|0);
HEAP32[$164>>2] = 0;
$165 = $1;
$166 = ((($165)) + 16|0);
$167 = HEAP32[$166>>2]|0;
__gcry_mpi_release($167);
$168 = $1;
$169 = ((($168)) + 16|0);
HEAP32[$169>>2] = 0;
$170 = $1;
$171 = ((($170)) + 8|0);
$172 = HEAP32[$171>>2]|0;
__gcry_mpi_release($172);
$173 = $1;
$174 = ((($173)) + 8|0);
HEAP32[$174>>2] = 0;
$175 = $1;
$176 = ((($175)) + 20|0);
$177 = HEAP32[$176>>2]|0;
__gcry_mpi_release($177);
$178 = $1;
$179 = ((($178)) + 20|0);
HEAP32[$179>>2] = 0;
__gcry_fips_signal_error(39457,334,39709,0,39642);
$0 = 50;
$180 = $0;
STACKTOP = sp;return ($180|0);
} else {
$0 = 0;
$180 = $0;
STACKTOP = sp;return ($180|0);
}
return (0)|0;
}
function _check_exponent($arg,$a) {
$arg = $arg|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $e = 0, $result = 0;
var $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $arg;
$1 = $a;
$2 = $0;
$e = $2;
$3 = $1;
$4 = $1;
__gcry_mpi_sub_ui($3,$4,1);
$5 = $1;
$6 = (__gcry_mpi_alloc_like($5)|0);
$tmp = $6;
$7 = $tmp;
$8 = $e;
$9 = $1;
$10 = (__gcry_mpi_gcd($7,$8,$9)|0);
$11 = ($10|0)!=(0);
$12 = $11 ^ 1;
$13 = $12&1;
$result = $13;
$14 = $tmp;
__gcry_mpi_release($14);
$15 = $1;
$16 = $1;
__gcry_mpi_add_ui($15,$16,1);
$17 = $result;
STACKTOP = sp;return ($17|0);
}
function _rsa_check_secret_key($keyparms) {
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer7 = sp + 32|0;
$vararg_buffer = sp;
$sk = sp + 40|0;
$0 = $keyparms;
;HEAP32[$sk>>2]=0|0;HEAP32[$sk+4>>2]=0|0;HEAP32[$sk+8>>2]=0|0;HEAP32[$sk+12>>2]=0|0;HEAP32[$sk+16>>2]=0|0;HEAP32[$sk+20>>2]=0|0;
$1 = $0;
$2 = ((($sk)) + 4|0);
$3 = ((($sk)) + 8|0);
$4 = ((($sk)) + 12|0);
$5 = ((($sk)) + 16|0);
$6 = ((($sk)) + 20|0);
HEAP32[$vararg_buffer>>2] = $sk;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $2;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $3;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $4;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $5;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $6;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = 0;
$7 = (__gcry_sexp_extract_param($1,0,39386,$vararg_buffer)|0);
$rc = $7;
$8 = $rc;
$9 = ($8|0)!=(0);
if (!($9)) {
$10 = (_check_secret_key($sk)|0);
$11 = ($10|0)!=(0);
if (!($11)) {
$rc = 7;
}
}
$12 = HEAP32[$sk>>2]|0;
__gcry_mpi_release($12);
$13 = ((($sk)) + 4|0);
$14 = HEAP32[$13>>2]|0;
__gcry_mpi_release($14);
$15 = ((($sk)) + 8|0);
$16 = HEAP32[$15>>2]|0;
__gcry_mpi_release($16);
$17 = ((($sk)) + 12|0);
$18 = HEAP32[$17>>2]|0;
__gcry_mpi_release($18);
$19 = ((($sk)) + 16|0);
$20 = HEAP32[$19>>2]|0;
__gcry_mpi_release($20);
$21 = ((($sk)) + 20|0);
$22 = HEAP32[$21>>2]|0;
__gcry_mpi_release($22);
$23 = (__gcry_get_debug_flag(1)|0);
$24 = ($23|0)!=(0);
if (!($24)) {
$27 = $rc;
STACKTOP = sp;return ($27|0);
}
$25 = $rc;
$26 = (_gpg_strerror($25)|0);
HEAP32[$vararg_buffer7>>2] = $26;
__gcry_log_debug(39871,$vararg_buffer7);
$27 = $rc;
STACKTOP = sp;return ($27|0);
}
function _check_secret_key($sk) {
$sk = $sk|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, $temp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $sk;
$1 = $0;
$2 = ((($1)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5<<1;
$7 = (__gcry_mpi_alloc($6)|0);
$temp = $7;
$8 = $temp;
$9 = $0;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = $0;
$13 = ((($12)) + 16|0);
$14 = HEAP32[$13>>2]|0;
__gcry_mpi_mul($8,$11,$14);
$15 = $temp;
$16 = $0;
$17 = HEAP32[$16>>2]|0;
$18 = (__gcry_mpi_cmp($15,$17)|0);
$rc = $18;
$19 = $temp;
__gcry_mpi_free($19);
$20 = $rc;
$21 = ($20|0)!=(0);
$22 = $21 ^ 1;
$23 = $22&1;
STACKTOP = sp;return ($23|0);
}
function _rsa_encrypt($r_ciph,$s_data,$keyparms) {
$r_ciph = $r_ciph|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $7 = 0, $8 = 0, $9 = 0, $ciph = 0, $ctx = 0, $data = 0, $em = 0, $emlen = 0, $pk = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer10 = sp + 32|0;
$vararg_buffer7 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$ctx = sp + 64|0;
$data = sp + 56|0;
$pk = sp + 48|0;
$em = sp + 40|0;
$0 = $r_ciph;
$1 = $s_data;
$2 = $keyparms;
HEAP32[$data>>2] = 0;
;HEAP32[$pk>>2]=0|0;HEAP32[$pk+4>>2]=0|0;
$ciph = 0;
$3 = $2;
$4 = (_rsa_get_nbits($3)|0);
__gcry_pk_util_init_encoding_ctx($ctx,0,$4);
$5 = $1;
$6 = (__gcry_pk_util_data_to_mpi($5,$data,$ctx)|0);
$rc = $6;
$7 = $rc;
$8 = ($7|0)!=(0);
do {
if (!($8)) {
$9 = (__gcry_get_debug_flag(1)|0);
$10 = ($9|0)!=(0);
if ($10) {
$11 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(39893,$11);
}
$12 = HEAP32[$data>>2]|0;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = HEAP32[$data>>2]|0;
$15 = ((($14)) + 12|0);
$16 = HEAP32[$15>>2]|0;
$17 = $16 & 4;
$18 = ($17|0)!=(0);
if ($18) {
$rc = 79;
break;
}
}
$19 = $2;
$20 = ((($pk)) + 4|0);
HEAP32[$vararg_buffer>>2] = $pk;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $20;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 0;
$21 = (__gcry_sexp_extract_param($19,0,39383,$vararg_buffer)|0);
$rc = $21;
$22 = $rc;
$23 = ($22|0)!=(0);
if (!($23)) {
$24 = (__gcry_get_debug_flag(1)|0);
$25 = ($24|0)!=(0);
if ($25) {
$26 = HEAP32[$pk>>2]|0;
__gcry_log_printmpi(39910,$26);
$27 = ((($pk)) + 4|0);
$28 = HEAP32[$27>>2]|0;
__gcry_log_printmpi(39927,$28);
}
$29 = (__gcry_mpi_new(0)|0);
$ciph = $29;
$30 = $ciph;
$31 = HEAP32[$data>>2]|0;
_public($30,$31,$pk);
$32 = (__gcry_get_debug_flag(1)|0);
$33 = ($32|0)!=(0);
if ($33) {
$34 = $ciph;
__gcry_log_printmpi(39944,$34);
}
$35 = ((($ctx)) + 12|0);
$36 = HEAP32[$35>>2]|0;
$37 = $36 & 4;
$38 = ($37|0)!=(0);
if (!($38)) {
$53 = $0;
$54 = $ciph;
HEAP32[$vararg_buffer7>>2] = $54;
$55 = (__gcry_sexp_build($53,0,39981,$vararg_buffer7)|0);
$rc = $55;
break;
}
$39 = HEAP32[$pk>>2]|0;
$40 = (__gcry_mpi_get_nbits($39)|0);
$41 = (($40) + 7)|0;
$42 = (($41>>>0) / 8)&-1;
$emlen = $42;
$43 = $ciph;
$44 = $emlen;
$45 = (__gcry_mpi_to_octet_string($em,0,$43,$44)|0);
$rc = $45;
$46 = $rc;
$47 = ($46|0)!=(0);
if (!($47)) {
$48 = $0;
$49 = $emlen;
$50 = HEAP32[$em>>2]|0;
HEAP32[$vararg_buffer3>>2] = $49;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = $50;
$51 = (__gcry_sexp_build($48,0,39961,$vararg_buffer3)|0);
$rc = $51;
$52 = HEAP32[$em>>2]|0;
__gcry_free($52);
}
}
}
} while(0);
$56 = $ciph;
__gcry_mpi_release($56);
$57 = HEAP32[$pk>>2]|0;
__gcry_mpi_release($57);
$58 = ((($pk)) + 4|0);
$59 = HEAP32[$58>>2]|0;
__gcry_mpi_release($59);
$60 = HEAP32[$data>>2]|0;
__gcry_mpi_release($60);
__gcry_pk_util_free_encoding_ctx($ctx);
$61 = (__gcry_get_debug_flag(1)|0);
$62 = ($61|0)!=(0);
if (!($62)) {
$65 = $rc;
STACKTOP = sp;return ($65|0);
}
$63 = $rc;
$64 = (_gpg_strerror($63)|0);
HEAP32[$vararg_buffer10>>2] = $64;
__gcry_log_debug(40001,$vararg_buffer10);
$65 = $rc;
STACKTOP = sp;return ($65|0);
}
function _rsa_get_nbits($parms) {
$parms = $parms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l1 = 0, $n = 0, $nbits = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $parms;
$2 = $1;
$3 = (__gcry_sexp_find_token($2,39397,1)|0);
$l1 = $3;
$4 = $l1;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$0 = 0;
$16 = $0;
STACKTOP = sp;return ($16|0);
}
$6 = $l1;
$7 = (__gcry_sexp_nth_mpi($6,1,5)|0);
$n = $7;
$8 = $l1;
__gcry_sexp_release($8);
$9 = $n;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = $n;
$12 = (__gcry_mpi_get_nbits($11)|0);
$13 = $12;
} else {
$13 = 0;
}
$nbits = $13;
$14 = $n;
__gcry_mpi_release($14);
$15 = $nbits;
$0 = $15;
$16 = $0;
STACKTOP = sp;return ($16|0);
}
function _rsa_decrypt($r_plain,$s_data,$keyparms) {
$r_plain = $r_plain|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $bldata = 0, $ctx = 0, $data = 0, $l1 = 0, $plain = 0, $r = 0, $rc = 0, $ri = 0, $sk = 0, $unpad = 0, $unpadlen = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer15 = 0, $vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer22 = 0;
var $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0, $vararg_ptr18 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer22 = sp + 64|0;
$vararg_buffer19 = sp + 56|0;
$vararg_buffer15 = sp + 48|0;
$vararg_buffer11 = sp + 40|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ctx = sp + 128|0;
$l1 = sp + 124|0;
$data = sp + 120|0;
$sk = sp + 96|0;
$unpad = sp + 72|0;
$unpadlen = sp + 68|0;
$0 = $r_plain;
$1 = $s_data;
$2 = $keyparms;
HEAP32[$l1>>2] = 0;
HEAP32[$data>>2] = 0;
;HEAP32[$sk>>2]=0|0;HEAP32[$sk+4>>2]=0|0;HEAP32[$sk+8>>2]=0|0;HEAP32[$sk+12>>2]=0|0;HEAP32[$sk+16>>2]=0|0;HEAP32[$sk+20>>2]=0|0;
$plain = 0;
$r = 0;
$ri = 0;
$bldata = 0;
HEAP32[$unpad>>2] = 0;
HEAP32[$unpadlen>>2] = 0;
$3 = $2;
$4 = (_rsa_get_nbits($3)|0);
__gcry_pk_util_init_encoding_ctx($ctx,1,$4);
$5 = $1;
$6 = (__gcry_pk_util_preparse_encval($5,7712,$l1,$ctx)|0);
$rc = $6;
$7 = $rc;
$8 = ($7|0)!=(0);
L1: do {
if (!($8)) {
$9 = HEAP32[$l1>>2]|0;
HEAP32[$vararg_buffer>>2] = $data;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$10 = (__gcry_sexp_extract_param($9,0,39393,$vararg_buffer)|0);
$rc = $10;
$11 = $rc;
$12 = ($11|0)!=(0);
if (!($12)) {
$13 = (__gcry_get_debug_flag(1)|0);
$14 = ($13|0)!=(0);
if ($14) {
$15 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(40023,$15);
}
$16 = HEAP32[$data>>2]|0;
$17 = ($16|0)!=(0|0);
if ($17) {
$18 = HEAP32[$data>>2]|0;
$19 = ((($18)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = $20 & 4;
$22 = ($21|0)!=(0);
if ($22) {
$rc = 79;
break;
}
}
$23 = $2;
$24 = ((($sk)) + 4|0);
$25 = ((($sk)) + 8|0);
$26 = ((($sk)) + 12|0);
$27 = ((($sk)) + 16|0);
$28 = ((($sk)) + 20|0);
HEAP32[$vararg_buffer2>>2] = $sk;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $24;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = $25;
$vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
HEAP32[$vararg_ptr7>>2] = $26;
$vararg_ptr8 = ((($vararg_buffer2)) + 16|0);
HEAP32[$vararg_ptr8>>2] = $27;
$vararg_ptr9 = ((($vararg_buffer2)) + 20|0);
HEAP32[$vararg_ptr9>>2] = $28;
$vararg_ptr10 = ((($vararg_buffer2)) + 24|0);
HEAP32[$vararg_ptr10>>2] = 0;
$29 = (__gcry_sexp_extract_param($23,0,40040,$vararg_buffer2)|0);
$rc = $29;
$30 = $rc;
$31 = ($30|0)!=(0);
if (!($31)) {
$32 = (__gcry_get_debug_flag(1)|0);
$33 = ($32|0)!=(0);
if ($33) {
$34 = HEAP32[$sk>>2]|0;
__gcry_log_printmpi(40050,$34);
$35 = ((($sk)) + 4|0);
$36 = HEAP32[$35>>2]|0;
__gcry_log_printmpi(40067,$36);
$37 = (__gcry_fips_mode()|0);
$38 = ($37|0)!=(0);
if (!($38)) {
$39 = ((($sk)) + 8|0);
$40 = HEAP32[$39>>2]|0;
__gcry_log_printmpi(40084,$40);
$41 = ((($sk)) + 12|0);
$42 = HEAP32[$41>>2]|0;
__gcry_log_printmpi(40101,$42);
$43 = ((($sk)) + 16|0);
$44 = HEAP32[$43>>2]|0;
__gcry_log_printmpi(40118,$44);
$45 = ((($sk)) + 20|0);
$46 = HEAP32[$45>>2]|0;
__gcry_log_printmpi(40135,$46);
}
}
$47 = HEAP32[$data>>2]|0;
__gcry_mpi_normalize($47);
$48 = HEAP32[$data>>2]|0;
$49 = HEAP32[$data>>2]|0;
$50 = HEAP32[$sk>>2]|0;
__gcry_mpi_fdiv_r($48,$49,$50);
$51 = ((($ctx)) + 4|0);
$52 = HEAP32[$51>>2]|0;
$53 = (__gcry_mpi_snew($52)|0);
$plain = $53;
$54 = ((($ctx)) + 12|0);
$55 = HEAP32[$54>>2]|0;
$56 = $55 & 1;
$57 = ($56|0)!=(0);
if ($57) {
$97 = $plain;
$98 = HEAP32[$data>>2]|0;
_secret($97,$98,$sk);
} else {
$58 = ((($ctx)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = (__gcry_mpi_snew($59)|0);
$r = $60;
$61 = ((($ctx)) + 4|0);
$62 = HEAP32[$61>>2]|0;
$63 = (__gcry_mpi_snew($62)|0);
$ri = $63;
$64 = ((($ctx)) + 4|0);
$65 = HEAP32[$64>>2]|0;
$66 = (__gcry_mpi_snew($65)|0);
$bldata = $66;
while(1) {
$67 = $r;
$68 = ((($ctx)) + 4|0);
$69 = HEAP32[$68>>2]|0;
__gcry_mpi_randomize($67,$69,0);
$70 = $r;
$71 = $r;
$72 = HEAP32[$sk>>2]|0;
__gcry_mpi_mod($70,$71,$72);
$73 = $ri;
$74 = $r;
$75 = HEAP32[$sk>>2]|0;
$76 = (__gcry_mpi_invm($73,$74,$75)|0);
$77 = ($76|0)!=(0);
$78 = $77 ^ 1;
if (!($78)) {
break;
}
}
$79 = $bldata;
$80 = $r;
$81 = ((($sk)) + 4|0);
$82 = HEAP32[$81>>2]|0;
$83 = HEAP32[$sk>>2]|0;
__gcry_mpi_powm($79,$80,$82,$83);
$84 = $bldata;
$85 = $bldata;
$86 = HEAP32[$data>>2]|0;
$87 = HEAP32[$sk>>2]|0;
__gcry_mpi_mulm($84,$85,$86,$87);
$88 = $plain;
$89 = $bldata;
_secret($88,$89,$sk);
$90 = $bldata;
__gcry_mpi_release($90);
$bldata = 0;
$91 = $plain;
$92 = $plain;
$93 = $ri;
$94 = HEAP32[$sk>>2]|0;
__gcry_mpi_mulm($91,$92,$93,$94);
$95 = $r;
__gcry_mpi_release($95);
$r = 0;
$96 = $ri;
__gcry_mpi_release($96);
$ri = 0;
}
$99 = (__gcry_get_debug_flag(1)|0);
$100 = ($99|0)!=(0);
if ($100) {
$101 = $plain;
__gcry_log_printmpi(40152,$101);
}
$102 = ((($ctx)) + 8|0);
$103 = HEAP32[$102>>2]|0;
switch ($103|0) {
case 1: {
$104 = ((($ctx)) + 4|0);
$105 = HEAP32[$104>>2]|0;
$106 = $plain;
$107 = (__gcry_rsa_pkcs1_decode_for_enc($unpad,$unpadlen,$105,$106)|0);
$rc = $107;
$108 = $plain;
__gcry_mpi_free($108);
$plain = 0;
$109 = $rc;
$110 = ($109|0)!=(0);
if ($110) {
break L1;
}
$111 = $0;
$112 = HEAP32[$unpadlen>>2]|0;
$113 = HEAP32[$unpad>>2]|0;
HEAP32[$vararg_buffer11>>2] = $112;
$vararg_ptr14 = ((($vararg_buffer11)) + 4|0);
HEAP32[$vararg_ptr14>>2] = $113;
$114 = (__gcry_sexp_build($111,0,40169,$vararg_buffer11)|0);
$rc = $114;
break L1;
break;
}
case 3: {
$115 = ((($ctx)) + 4|0);
$116 = HEAP32[$115>>2]|0;
$117 = ((($ctx)) + 16|0);
$118 = HEAP32[$117>>2]|0;
$119 = $plain;
$120 = ((($ctx)) + 20|0);
$121 = HEAP32[$120>>2]|0;
$122 = ((($ctx)) + 24|0);
$123 = HEAP32[$122>>2]|0;
$124 = (__gcry_rsa_oaep_decode($unpad,$unpadlen,$116,$118,$119,$121,$123)|0);
$rc = $124;
$125 = $plain;
__gcry_mpi_free($125);
$plain = 0;
$126 = $rc;
$127 = ($126|0)!=(0);
if ($127) {
break L1;
}
$128 = $0;
$129 = HEAP32[$unpadlen>>2]|0;
$130 = HEAP32[$unpad>>2]|0;
HEAP32[$vararg_buffer15>>2] = $129;
$vararg_ptr18 = ((($vararg_buffer15)) + 4|0);
HEAP32[$vararg_ptr18>>2] = $130;
$131 = (__gcry_sexp_build($128,0,40169,$vararg_buffer15)|0);
$rc = $131;
break L1;
break;
}
default: {
$132 = $0;
$133 = ((($ctx)) + 12|0);
$134 = HEAP32[$133>>2]|0;
$135 = $134 & 8;
$136 = ($135|0)!=(0);
$137 = $136 ? 40180 : 49265;
$138 = $plain;
HEAP32[$vararg_buffer19>>2] = $138;
$139 = (__gcry_sexp_build($132,0,$137,$vararg_buffer19)|0);
$rc = $139;
break L1;
}
}
}
}
}
} while(0);
$140 = HEAP32[$unpad>>2]|0;
__gcry_free($140);
$141 = $plain;
__gcry_mpi_release($141);
$142 = HEAP32[$sk>>2]|0;
__gcry_mpi_release($142);
$143 = ((($sk)) + 4|0);
$144 = HEAP32[$143>>2]|0;
__gcry_mpi_release($144);
$145 = ((($sk)) + 8|0);
$146 = HEAP32[$145>>2]|0;
__gcry_mpi_release($146);
$147 = ((($sk)) + 12|0);
$148 = HEAP32[$147>>2]|0;
__gcry_mpi_release($148);
$149 = ((($sk)) + 16|0);
$150 = HEAP32[$149>>2]|0;
__gcry_mpi_release($150);
$151 = ((($sk)) + 20|0);
$152 = HEAP32[$151>>2]|0;
__gcry_mpi_release($152);
$153 = HEAP32[$data>>2]|0;
__gcry_mpi_release($153);
$154 = $r;
__gcry_mpi_release($154);
$155 = $ri;
__gcry_mpi_release($155);
$156 = $bldata;
__gcry_mpi_release($156);
$157 = HEAP32[$l1>>2]|0;
__gcry_sexp_release($157);
__gcry_pk_util_free_encoding_ctx($ctx);
$158 = (__gcry_get_debug_flag(1)|0);
$159 = ($158|0)!=(0);
if (!($159)) {
$162 = $rc;
STACKTOP = sp;return ($162|0);
}
$160 = $rc;
$161 = (_gpg_strerror($160)|0);
HEAP32[$vararg_buffer22>>2] = $161;
__gcry_log_debug(40183,$vararg_buffer22);
$162 = $rc;
STACKTOP = sp;return ($162|0);
}
function _rsa_sign($r_sig,$s_data,$keyparms) {
$r_sig = $r_sig|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $ctx = 0, $data = 0, $em = 0, $emlen = 0, $rc = 0, $sig = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0;
var $vararg_ptr10 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer14 = sp + 48|0;
$vararg_buffer11 = sp + 40|0;
$vararg_buffer7 = sp + 32|0;
$vararg_buffer = sp;
$ctx = sp + 96|0;
$data = sp + 88|0;
$sk = sp + 64|0;
$em = sp + 56|0;
$0 = $r_sig;
$1 = $s_data;
$2 = $keyparms;
HEAP32[$data>>2] = 0;
;HEAP32[$sk>>2]=0|0;HEAP32[$sk+4>>2]=0|0;HEAP32[$sk+8>>2]=0|0;HEAP32[$sk+12>>2]=0|0;HEAP32[$sk+16>>2]=0|0;HEAP32[$sk+20>>2]=0|0;
$sig = 0;
$3 = $2;
$4 = (_rsa_get_nbits($3)|0);
__gcry_pk_util_init_encoding_ctx($ctx,2,$4);
$5 = $1;
$6 = (__gcry_pk_util_data_to_mpi($5,$data,$ctx)|0);
$rc = $6;
$7 = $rc;
$8 = ($7|0)!=(0);
do {
if (!($8)) {
$9 = (__gcry_get_debug_flag(1)|0);
$10 = ($9|0)!=(0);
if ($10) {
$11 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(40205,$11);
}
$12 = HEAP32[$data>>2]|0;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = HEAP32[$data>>2]|0;
$15 = ((($14)) + 12|0);
$16 = HEAP32[$15>>2]|0;
$17 = $16 & 4;
$18 = ($17|0)!=(0);
if ($18) {
$rc = 79;
break;
}
}
$19 = $2;
$20 = ((($sk)) + 4|0);
$21 = ((($sk)) + 8|0);
$22 = ((($sk)) + 12|0);
$23 = ((($sk)) + 16|0);
$24 = ((($sk)) + 20|0);
HEAP32[$vararg_buffer>>2] = $sk;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $20;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $21;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $22;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $23;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $24;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = 0;
$25 = (__gcry_sexp_extract_param($19,0,40040,$vararg_buffer)|0);
$rc = $25;
$26 = $rc;
$27 = ($26|0)!=(0);
if (!($27)) {
$28 = (__gcry_get_debug_flag(1)|0);
$29 = ($28|0)!=(0);
if ($29) {
$30 = HEAP32[$sk>>2]|0;
__gcry_log_printmpi(40221,$30);
$31 = ((($sk)) + 4|0);
$32 = HEAP32[$31>>2]|0;
__gcry_log_printmpi(40237,$32);
$33 = (__gcry_fips_mode()|0);
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = ((($sk)) + 8|0);
$36 = HEAP32[$35>>2]|0;
__gcry_log_printmpi(40253,$36);
$37 = ((($sk)) + 12|0);
$38 = HEAP32[$37>>2]|0;
__gcry_log_printmpi(40269,$38);
$39 = ((($sk)) + 16|0);
$40 = HEAP32[$39>>2]|0;
__gcry_log_printmpi(40285,$40);
$41 = ((($sk)) + 20|0);
$42 = HEAP32[$41>>2]|0;
__gcry_log_printmpi(40301,$42);
}
}
$43 = (__gcry_mpi_new(0)|0);
$sig = $43;
$44 = $sig;
$45 = HEAP32[$data>>2]|0;
_secret($44,$45,$sk);
$46 = (__gcry_get_debug_flag(1)|0);
$47 = ($46|0)!=(0);
if ($47) {
$48 = $sig;
__gcry_log_printmpi(40317,$48);
}
$49 = ((($ctx)) + 12|0);
$50 = HEAP32[$49>>2]|0;
$51 = $50 & 4;
$52 = ($51|0)!=(0);
if (!($52)) {
$67 = $0;
$68 = $sig;
HEAP32[$vararg_buffer11>>2] = $68;
$69 = (__gcry_sexp_build($67,0,40353,$vararg_buffer11)|0);
$rc = $69;
break;
}
$53 = HEAP32[$sk>>2]|0;
$54 = (__gcry_mpi_get_nbits($53)|0);
$55 = (($54) + 7)|0;
$56 = (($55>>>0) / 8)&-1;
$emlen = $56;
$57 = $sig;
$58 = $emlen;
$59 = (__gcry_mpi_to_octet_string($em,0,$57,$58)|0);
$rc = $59;
$60 = $rc;
$61 = ($60|0)!=(0);
if (!($61)) {
$62 = $0;
$63 = $emlen;
$64 = HEAP32[$em>>2]|0;
HEAP32[$vararg_buffer7>>2] = $63;
$vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
HEAP32[$vararg_ptr10>>2] = $64;
$65 = (__gcry_sexp_build($62,0,40333,$vararg_buffer7)|0);
$rc = $65;
$66 = HEAP32[$em>>2]|0;
__gcry_free($66);
}
}
}
} while(0);
$70 = $sig;
__gcry_mpi_release($70);
$71 = HEAP32[$sk>>2]|0;
__gcry_mpi_release($71);
$72 = ((($sk)) + 4|0);
$73 = HEAP32[$72>>2]|0;
__gcry_mpi_release($73);
$74 = ((($sk)) + 8|0);
$75 = HEAP32[$74>>2]|0;
__gcry_mpi_release($75);
$76 = ((($sk)) + 12|0);
$77 = HEAP32[$76>>2]|0;
__gcry_mpi_release($77);
$78 = ((($sk)) + 16|0);
$79 = HEAP32[$78>>2]|0;
__gcry_mpi_release($79);
$80 = ((($sk)) + 20|0);
$81 = HEAP32[$80>>2]|0;
__gcry_mpi_release($81);
$82 = HEAP32[$data>>2]|0;
__gcry_mpi_release($82);
__gcry_pk_util_free_encoding_ctx($ctx);
$83 = (__gcry_get_debug_flag(1)|0);
$84 = ($83|0)!=(0);
if (!($84)) {
$87 = $rc;
STACKTOP = sp;return ($87|0);
}
$85 = $rc;
$86 = (_gpg_strerror($85)|0);
HEAP32[$vararg_buffer14>>2] = $86;
__gcry_log_debug(40373,$vararg_buffer14);
$87 = $rc;
STACKTOP = sp;return ($87|0);
}
function _rsa_verify($s_sig,$s_data,$keyparms) {
$s_sig = $s_sig|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, $ctx = 0, $data = 0, $l1 = 0, $pk = 0, $rc = 0, $result = 0, $sig = 0;
var $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer7 = sp + 24|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ctx = sp + 56|0;
$l1 = sp + 48|0;
$sig = sp + 44|0;
$data = sp + 40|0;
$pk = sp + 32|0;
$0 = $s_sig;
$1 = $s_data;
$2 = $keyparms;
HEAP32[$l1>>2] = 0;
HEAP32[$sig>>2] = 0;
HEAP32[$data>>2] = 0;
;HEAP32[$pk>>2]=0|0;HEAP32[$pk+4>>2]=0|0;
$result = 0;
$3 = $2;
$4 = (_rsa_get_nbits($3)|0);
__gcry_pk_util_init_encoding_ctx($ctx,3,$4);
$5 = $1;
$6 = (__gcry_pk_util_data_to_mpi($5,$data,$ctx)|0);
$rc = $6;
$7 = $rc;
$8 = ($7|0)!=(0);
do {
if (!($8)) {
$9 = (__gcry_get_debug_flag(1)|0);
$10 = ($9|0)!=(0);
if ($10) {
$11 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(40394,$11);
}
$12 = HEAP32[$data>>2]|0;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = HEAP32[$data>>2]|0;
$15 = ((($14)) + 12|0);
$16 = HEAP32[$15>>2]|0;
$17 = $16 & 4;
$18 = ($17|0)!=(0);
if ($18) {
$rc = 79;
break;
}
}
$19 = $0;
$20 = (__gcry_pk_util_preparse_sigval($19,7712,$l1,0)|0);
$rc = $20;
$21 = $rc;
$22 = ($21|0)!=(0);
if (!($22)) {
$23 = HEAP32[$l1>>2]|0;
HEAP32[$vararg_buffer>>2] = $sig;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$24 = (__gcry_sexp_extract_param($23,0,39395,$vararg_buffer)|0);
$rc = $24;
$25 = $rc;
$26 = ($25|0)!=(0);
if (!($26)) {
$27 = (__gcry_get_debug_flag(1)|0);
$28 = ($27|0)!=(0);
if ($28) {
$29 = HEAP32[$sig>>2]|0;
__gcry_log_printmpi(40410,$29);
}
$30 = $2;
$31 = ((($pk)) + 4|0);
HEAP32[$vararg_buffer2>>2] = $pk;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $31;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = 0;
$32 = (__gcry_sexp_extract_param($30,0,39383,$vararg_buffer2)|0);
$rc = $32;
$33 = $rc;
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = (__gcry_get_debug_flag(1)|0);
$36 = ($35|0)!=(0);
if ($36) {
$37 = HEAP32[$pk>>2]|0;
__gcry_log_printmpi(40426,$37);
$38 = ((($pk)) + 4|0);
$39 = HEAP32[$38>>2]|0;
__gcry_log_printmpi(40442,$39);
}
$40 = (__gcry_mpi_new(0)|0);
$result = $40;
$41 = $result;
$42 = HEAP32[$sig>>2]|0;
_public($41,$42,$pk);
$43 = (__gcry_get_debug_flag(1)|0);
$44 = ($43|0)!=(0);
if ($44) {
$45 = $result;
__gcry_log_printmpi(40458,$45);
}
$46 = ((($ctx)) + 32|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)!=(0|0);
if ($48) {
$49 = ((($ctx)) + 32|0);
$50 = HEAP32[$49>>2]|0;
$51 = $result;
$52 = (FUNCTION_TABLE_iii[$50 & 127]($ctx,$51)|0);
$rc = $52;
break;
} else {
$53 = $result;
$54 = HEAP32[$data>>2]|0;
$55 = (__gcry_mpi_cmp($53,$54)|0);
$56 = ($55|0)!=(0);
$57 = $56 ? 8 : 0;
$rc = $57;
break;
}
}
}
}
}
} while(0);
$58 = $result;
__gcry_mpi_release($58);
$59 = HEAP32[$pk>>2]|0;
__gcry_mpi_release($59);
$60 = ((($pk)) + 4|0);
$61 = HEAP32[$60>>2]|0;
__gcry_mpi_release($61);
$62 = HEAP32[$data>>2]|0;
__gcry_mpi_release($62);
$63 = HEAP32[$sig>>2]|0;
__gcry_mpi_release($63);
$64 = HEAP32[$l1>>2]|0;
__gcry_sexp_release($64);
__gcry_pk_util_free_encoding_ctx($ctx);
$65 = (__gcry_get_debug_flag(1)|0);
$66 = ($65|0)!=(0);
if (!($66)) {
$72 = $rc;
STACKTOP = sp;return ($72|0);
}
$67 = $rc;
$68 = ($67|0)!=(0);
if ($68) {
$69 = $rc;
$70 = (_gpg_strerror($69)|0);
$71 = $70;
} else {
$71 = 49823;
}
HEAP32[$vararg_buffer7>>2] = $71;
__gcry_log_debug(40474,$vararg_buffer7);
$72 = $rc;
STACKTOP = sp;return ($72|0);
}
function _run_selftests_1333($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $cond = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
$cond = ($3|0)==(1);
if ($cond) {
$4 = $2;
$5 = (_selftests_rsa($4)|0);
$ec = $5;
} else {
$ec = 4;
}
$6 = $ec;
STACKTOP = sp;return ($6|0);
}
function _selftests_rsa($report) {
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $errtxt = 0;
var $pkey = 0, $skey = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$skey = sp + 4|0;
$pkey = sp;
$1 = $report;
HEAP32[$skey>>2] = 0;
HEAP32[$pkey>>2] = 0;
$what = 40495;
$2 = (_strlen(40503)|0);
$3 = (__gcry_sexp_sscan($skey,0,40503,$2)|0);
$err = $3;
$4 = $err;
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = (_strlen(41533)|0);
$7 = (__gcry_sexp_sscan($pkey,0,41533,$6)|0);
$err = $7;
}
$8 = $err;
$9 = ($8|0)!=(0);
do {
if ($9) {
$10 = $err;
$11 = (__gcry_strerror_1335($10)|0);
$errtxt = $11;
} else {
$what = 41850;
$12 = HEAP32[$skey>>2]|0;
$13 = (__gcry_pk_testkey($12)|0);
$err = $13;
$14 = $err;
$15 = ($14|0)!=(0);
if ($15) {
$16 = $err;
$17 = (__gcry_strerror_1335($16)|0);
$errtxt = $17;
break;
}
$what = 41866;
$18 = HEAP32[$pkey>>2]|0;
$19 = HEAP32[$skey>>2]|0;
$20 = (_selftest_sign_1024($18,$19)|0);
$errtxt = $20;
$21 = $errtxt;
$22 = ($21|0)!=(0|0);
if (!($22)) {
$what = 42102;
$23 = HEAP32[$pkey>>2]|0;
$24 = HEAP32[$skey>>2]|0;
$25 = (_selftest_encr_1024($23,$24)|0);
$errtxt = $25;
$26 = $errtxt;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$28 = HEAP32[$pkey>>2]|0;
__gcry_sexp_release($28);
$29 = HEAP32[$skey>>2]|0;
__gcry_sexp_release($29);
$0 = 0;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
}
}
} while(0);
$30 = HEAP32[$pkey>>2]|0;
__gcry_sexp_release($30);
$31 = HEAP32[$skey>>2]|0;
__gcry_sexp_release($31);
$32 = $1;
$33 = ($32|0)!=(0|0);
if ($33) {
$34 = $1;
$35 = $what;
$36 = $errtxt;
FUNCTION_TABLE_viiii[$34 & 63](49859,1,$35,$36);
}
$0 = 50;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
function __gcry_strerror_1335($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (_gpg_strerror($1)|0);
STACKTOP = sp;return ($2|0);
}
function _selftest_sign_1024($pkey,$skey) {
$pkey = $pkey|0;
$skey = $skey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $data_bad = 0, $err = 0, $errtxt = 0, $sig = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$data = sp + 8|0;
$data_bad = sp + 4|0;
$sig = sp;
$0 = $pkey;
$1 = $skey;
$errtxt = 0;
HEAP32[$data>>2] = 0;
HEAP32[$data_bad>>2] = 0;
HEAP32[$sig>>2] = 0;
$2 = (_strlen(41871)|0);
$3 = (__gcry_sexp_sscan($data,0,41871,$2)|0);
$err = $3;
$4 = $err;
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = (_strlen(41947)|0);
$7 = (__gcry_sexp_sscan($data_bad,0,41947,$6)|0);
$err = $7;
}
$8 = $err;
$9 = ($8|0)!=(0);
do {
if ($9) {
$errtxt = 42023;
} else {
$10 = HEAP32[$data>>2]|0;
$11 = $1;
$12 = (__gcry_pk_sign($sig,$10,$11)|0);
$err = $12;
$13 = $err;
$14 = ($13|0)!=(0);
if ($14) {
$errtxt = 42046;
break;
}
$15 = HEAP32[$sig>>2]|0;
$16 = HEAP32[$data>>2]|0;
$17 = $0;
$18 = (__gcry_pk_verify($15,$16,$17)|0);
$err = $18;
$19 = $err;
$20 = ($19|0)!=(0);
if ($20) {
$errtxt = 42061;
break;
}
$21 = HEAP32[$sig>>2]|0;
$22 = HEAP32[$data_bad>>2]|0;
$23 = $0;
$24 = (__gcry_pk_verify($21,$22,$23)|0);
$err = $24;
$25 = $err;
$26 = (_gcry_err_code_1341($25)|0);
$27 = ($26|0)!=(8);
if ($27) {
$errtxt = 42075;
}
}
} while(0);
$28 = HEAP32[$sig>>2]|0;
__gcry_sexp_release($28);
$29 = HEAP32[$data_bad>>2]|0;
__gcry_sexp_release($29);
$30 = HEAP32[$data>>2]|0;
__gcry_sexp_release($30);
$31 = $errtxt;
STACKTOP = sp;return ($31|0);
}
function _gcry_err_code_1341($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (_gpg_err_code_1342($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_code_1342($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = $1 & 65535;
STACKTOP = sp;return ($2|0);
}
function _selftest_encr_1024($pkey,$skey) {
$pkey = $pkey|0;
$skey = $skey|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ciphertext = 0, $decr = 0, $decr_plaintext = 0, $encr = 0, $err = 0, $errtxt = 0, $nbits = 0, $plain = 0, $plaintext = 0, $tmplist = 0, $vararg_buffer = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$plain = sp + 24|0;
$encr = sp + 20|0;
$decr = sp + 12|0;
$0 = $pkey;
$1 = $skey;
$errtxt = 0;
$nbits = 1000;
$plaintext = 0;
HEAP32[$plain>>2] = 0;
HEAP32[$encr>>2] = 0;
$ciphertext = 0;
HEAP32[$decr>>2] = 0;
$decr_plaintext = 0;
$tmplist = 0;
$2 = (__gcry_mpi_new(1000)|0);
$plaintext = $2;
$3 = $plaintext;
__gcry_mpi_randomize($3,1000,0);
$4 = $plaintext;
HEAP32[$vararg_buffer>>2] = $4;
$5 = (__gcry_sexp_build($plain,0,42110,$vararg_buffer)|0);
$err = $5;
$6 = $err;
$7 = ($6|0)!=(0);
do {
if ($7) {
$errtxt = 42023;
} else {
$8 = HEAP32[$plain>>2]|0;
$9 = $0;
$10 = (__gcry_pk_encrypt($encr,$8,$9)|0);
$err = $10;
$11 = $err;
$12 = ($11|0)!=(0);
if ($12) {
$errtxt = 42140;
break;
}
$13 = HEAP32[$encr>>2]|0;
$14 = (_extract_a_from_sexp($13)|0);
$ciphertext = $14;
$15 = $ciphertext;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$errtxt = 42163;
break;
}
$17 = $plaintext;
$18 = $ciphertext;
$19 = (__gcry_mpi_cmp($17,$18)|0);
$20 = ($19|0)!=(0);
if (!($20)) {
$errtxt = 42196;
break;
}
$21 = HEAP32[$encr>>2]|0;
$22 = $1;
$23 = (__gcry_pk_decrypt($decr,$21,$22)|0);
$err = $23;
$24 = $err;
$25 = ($24|0)!=(0);
if ($25) {
$errtxt = 42225;
break;
}
$26 = HEAP32[$decr>>2]|0;
$27 = (__gcry_sexp_find_token($26,42240,0)|0);
$tmplist = $27;
$28 = $tmplist;
$29 = ($28|0)!=(0|0);
if ($29) {
$30 = $tmplist;
$31 = (__gcry_sexp_nth_mpi($30,1,5)|0);
$decr_plaintext = $31;
} else {
$32 = HEAP32[$decr>>2]|0;
$33 = (__gcry_sexp_nth_mpi($32,0,5)|0);
$decr_plaintext = $33;
}
$34 = $decr_plaintext;
$35 = ($34|0)!=(0|0);
if (!($35)) {
$errtxt = 42246;
break;
}
$36 = $plaintext;
$37 = $decr_plaintext;
$38 = (__gcry_mpi_cmp($36,$37)|0);
$39 = ($38|0)!=(0);
if ($39) {
$errtxt = 42276;
}
}
} while(0);
$40 = $tmplist;
__gcry_sexp_release($40);
$41 = $decr_plaintext;
__gcry_mpi_release($41);
$42 = HEAP32[$decr>>2]|0;
__gcry_sexp_release($42);
$43 = $ciphertext;
__gcry_mpi_release($43);
$44 = HEAP32[$encr>>2]|0;
__gcry_sexp_release($44);
$45 = HEAP32[$plain>>2]|0;
__gcry_sexp_release($45);
$46 = $plaintext;
__gcry_mpi_release($46);
$47 = $errtxt;
STACKTOP = sp;return ($47|0);
}
function _extract_a_from_sexp($encr_data) {
$encr_data = $encr_data|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $a_value = 0, $l1 = 0, $l2 = 0, $l3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $encr_data;
$2 = $1;
$3 = (__gcry_sexp_find_token($2,42155,0)|0);
$l1 = $3;
$4 = $l1;
$5 = ($4|0)!=(0|0);
do {
if ($5) {
$6 = $l1;
$7 = (__gcry_sexp_find_token($6,39342,0)|0);
$l2 = $7;
$8 = $l1;
__gcry_sexp_release($8);
$9 = $l2;
$10 = ($9|0)!=(0|0);
if (!($10)) {
$0 = 0;
break;
}
$11 = $l2;
$12 = (__gcry_sexp_find_token($11,39393,0)|0);
$l3 = $12;
$13 = $l2;
__gcry_sexp_release($13);
$14 = $l3;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $l3;
$17 = (__gcry_sexp_nth_mpi($16,1,0)|0);
$a_value = $17;
$18 = $l3;
__gcry_sexp_release($18);
$19 = $a_value;
$0 = $19;
break;
} else {
$0 = 0;
break;
}
} else {
$0 = 0;
}
} while(0);
$20 = $0;
STACKTOP = sp;return ($20|0);
}
function _compute_keygrip($md,$keyparam) {
$md = $md|0;
$keyparam = $keyparam|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $data = 0, $datalen = 0, $l1 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$datalen = sp;
$1 = $md;
$2 = $keyparam;
$3 = $2;
$4 = (__gcry_sexp_find_token($3,39397,1)|0);
$l1 = $4;
$5 = $l1;
$6 = ($5|0)!=(0|0);
if (!($6)) {
$0 = 68;
$16 = $0;
STACKTOP = sp;return ($16|0);
}
$7 = $l1;
$8 = (__gcry_sexp_nth_data($7,1,$datalen)|0);
$data = $8;
$9 = $data;
$10 = ($9|0)!=(0|0);
if ($10) {
$12 = $1;
$13 = $data;
$14 = HEAP32[$datalen>>2]|0;
__gcry_md_write($12,$13,$14);
$15 = $l1;
__gcry_sexp_release($15);
$0 = 0;
$16 = $0;
STACKTOP = sp;return ($16|0);
} else {
$11 = $l1;
__gcry_sexp_release($11);
$0 = 68;
$16 = $0;
STACKTOP = sp;return ($16|0);
}
return (0)|0;
}
function _sha1_init($context,$flags) {
$context = $context|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $features = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $flags;
$2 = $0;
$hd = $2;
$3 = (__gcry_get_hw_features()|0);
$features = $3;
$4 = $hd;
$5 = ((($4)) + 160|0);
HEAP32[$5>>2] = 1732584193;
$6 = $hd;
$7 = ((($6)) + 164|0);
HEAP32[$7>>2] = -271733879;
$8 = $hd;
$9 = ((($8)) + 168|0);
HEAP32[$9>>2] = -1732584194;
$10 = $hd;
$11 = ((($10)) + 172|0);
HEAP32[$11>>2] = 271733878;
$12 = $hd;
$13 = ((($12)) + 176|0);
HEAP32[$13>>2] = -1009589776;
$14 = $hd;
$15 = ((($14)) + 128|0);
$16 = $15;
$17 = $16;
HEAP32[$17>>2] = 0;
$18 = (($16) + 4)|0;
$19 = $18;
HEAP32[$19>>2] = 0;
$20 = $hd;
$21 = ((($20)) + 136|0);
$22 = $21;
$23 = $22;
HEAP32[$23>>2] = 0;
$24 = (($22) + 4)|0;
$25 = $24;
HEAP32[$25>>2] = 0;
$26 = $hd;
$27 = ((($26)) + 144|0);
HEAP32[$27>>2] = 0;
$28 = $hd;
$29 = ((($28)) + 148|0);
HEAP32[$29>>2] = 64;
$30 = $hd;
$31 = ((($30)) + 152|0);
HEAP32[$31>>2] = 74;
STACKTOP = sp;return;
}
function _transform_1369($ctx,$data,$nblks) {
$ctx = $ctx|0;
$data = $data|0;
$nblks = $nblks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $data;
$2 = $nblks;
$3 = $0;
$hd = $3;
while(1) {
$4 = $hd;
$5 = $1;
$6 = (_transform_blk_1370($4,$5)|0);
$burn = $6;
$7 = $1;
$8 = ((($7)) + 64|0);
$1 = $8;
$9 = $2;
$10 = (($9) + -1)|0;
$2 = $10;
$11 = ($10|0)!=(0);
if (!($11)) {
break;
}
}
$12 = $burn;
STACKTOP = sp;return ($12|0);
}
function _transform_blk_1370($ctx,$data) {
$ctx = $ctx|0;
$data = $data|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0;
var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0;
var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0;
var $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0;
var $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0;
var $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0;
var $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0;
var $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0;
var $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0;
var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0;
var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0;
var $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0;
var $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0;
var $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0;
var $1718 = 0, $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, $1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0;
var $1736 = 0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0;
var $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0;
var $1772 = 0, $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0;
var $1790 = 0, $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0;
var $1808 = 0, $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0;
var $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, $1839 = 0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0;
var $1844 = 0, $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0;
var $1862 = 0, $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0;
var $1880 = 0, $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, $1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0;
var $1899 = 0, $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, $1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, $1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0;
var $1916 = 0, $1917 = 0, $1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0;
var $1934 = 0, $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0;
var $1952 = 0, $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0;
var $1970 = 0, $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0;
var $1989 = 0, $199 = 0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0;
var $2005 = 0, $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, $2019 = 0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0;
var $2023 = 0, $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0;
var $2041 = 0, $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0;
var $206 = 0, $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, $2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0;
var $2078 = 0, $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0;
var $2096 = 0, $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0;
var $2113 = 0, $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0;
var $2131 = 0, $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0;
var $215 = 0, $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0;
var $2168 = 0, $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0;
var $2186 = 0, $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0;
var $2203 = 0, $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0;
var $2221 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0;
var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0;
var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0;
var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0;
var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0;
var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0;
var $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0;
var $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0;
var $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0;
var $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0;
var $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0;
var $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0;
var $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0;
var $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0;
var $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0;
var $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0;
var $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0;
var $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0;
var $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0;
var $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0;
var $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0;
var $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0;
var $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0;
var $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0;
var $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0;
var $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0;
var $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0;
var $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0;
var $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0;
var $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0;
var $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0;
var $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0;
var $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0;
var $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0;
var $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0;
var $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0;
var $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0;
var $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0;
var $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0;
var $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0;
var $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0;
var $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0;
var $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0;
var $998 = 0, $999 = 0, $a = 0, $b = 0, $c = 0, $d = 0, $e = 0, $hd = 0, $idata = 0, $tm = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$x = sp;
$0 = $ctx;
$1 = $data;
$2 = $0;
$hd = $2;
$3 = $1;
$idata = $3;
$4 = $hd;
$5 = ((($4)) + 160|0);
$6 = HEAP32[$5>>2]|0;
$a = $6;
$7 = $hd;
$8 = ((($7)) + 164|0);
$9 = HEAP32[$8>>2]|0;
$b = $9;
$10 = $hd;
$11 = ((($10)) + 168|0);
$12 = HEAP32[$11>>2]|0;
$c = $12;
$13 = $hd;
$14 = ((($13)) + 172|0);
$15 = HEAP32[$14>>2]|0;
$d = $15;
$16 = $hd;
$17 = ((($16)) + 176|0);
$18 = HEAP32[$17>>2]|0;
$e = $18;
$19 = $a;
$20 = (_rol_1371($19,5)|0);
$21 = $d;
$22 = $b;
$23 = $c;
$24 = $d;
$25 = $23 ^ $24;
$26 = $22 & $25;
$27 = $21 ^ $26;
$28 = (($20) + ($27))|0;
$29 = (($28) + 1518500249)|0;
$30 = $idata;
$31 = (_buf_get_be32($30)|0);
HEAP32[$x>>2] = $31;
$32 = (($29) + ($31))|0;
$33 = $e;
$34 = (($33) + ($32))|0;
$e = $34;
$35 = $b;
$36 = (_rol_1371($35,30)|0);
$b = $36;
$37 = $e;
$38 = (_rol_1371($37,5)|0);
$39 = $c;
$40 = $a;
$41 = $b;
$42 = $c;
$43 = $41 ^ $42;
$44 = $40 & $43;
$45 = $39 ^ $44;
$46 = (($38) + ($45))|0;
$47 = (($46) + 1518500249)|0;
$48 = $idata;
$49 = ((($48)) + 4|0);
$50 = (_buf_get_be32($49)|0);
$51 = ((($x)) + 4|0);
HEAP32[$51>>2] = $50;
$52 = (($47) + ($50))|0;
$53 = $d;
$54 = (($53) + ($52))|0;
$d = $54;
$55 = $a;
$56 = (_rol_1371($55,30)|0);
$a = $56;
$57 = $d;
$58 = (_rol_1371($57,5)|0);
$59 = $b;
$60 = $e;
$61 = $a;
$62 = $b;
$63 = $61 ^ $62;
$64 = $60 & $63;
$65 = $59 ^ $64;
$66 = (($58) + ($65))|0;
$67 = (($66) + 1518500249)|0;
$68 = $idata;
$69 = ((($68)) + 8|0);
$70 = (_buf_get_be32($69)|0);
$71 = ((($x)) + 8|0);
HEAP32[$71>>2] = $70;
$72 = (($67) + ($70))|0;
$73 = $c;
$74 = (($73) + ($72))|0;
$c = $74;
$75 = $e;
$76 = (_rol_1371($75,30)|0);
$e = $76;
$77 = $c;
$78 = (_rol_1371($77,5)|0);
$79 = $a;
$80 = $d;
$81 = $e;
$82 = $a;
$83 = $81 ^ $82;
$84 = $80 & $83;
$85 = $79 ^ $84;
$86 = (($78) + ($85))|0;
$87 = (($86) + 1518500249)|0;
$88 = $idata;
$89 = ((($88)) + 12|0);
$90 = (_buf_get_be32($89)|0);
$91 = ((($x)) + 12|0);
HEAP32[$91>>2] = $90;
$92 = (($87) + ($90))|0;
$93 = $b;
$94 = (($93) + ($92))|0;
$b = $94;
$95 = $d;
$96 = (_rol_1371($95,30)|0);
$d = $96;
$97 = $b;
$98 = (_rol_1371($97,5)|0);
$99 = $e;
$100 = $c;
$101 = $d;
$102 = $e;
$103 = $101 ^ $102;
$104 = $100 & $103;
$105 = $99 ^ $104;
$106 = (($98) + ($105))|0;
$107 = (($106) + 1518500249)|0;
$108 = $idata;
$109 = ((($108)) + 16|0);
$110 = (_buf_get_be32($109)|0);
$111 = ((($x)) + 16|0);
HEAP32[$111>>2] = $110;
$112 = (($107) + ($110))|0;
$113 = $a;
$114 = (($113) + ($112))|0;
$a = $114;
$115 = $c;
$116 = (_rol_1371($115,30)|0);
$c = $116;
$117 = $a;
$118 = (_rol_1371($117,5)|0);
$119 = $d;
$120 = $b;
$121 = $c;
$122 = $d;
$123 = $121 ^ $122;
$124 = $120 & $123;
$125 = $119 ^ $124;
$126 = (($118) + ($125))|0;
$127 = (($126) + 1518500249)|0;
$128 = $idata;
$129 = ((($128)) + 20|0);
$130 = (_buf_get_be32($129)|0);
$131 = ((($x)) + 20|0);
HEAP32[$131>>2] = $130;
$132 = (($127) + ($130))|0;
$133 = $e;
$134 = (($133) + ($132))|0;
$e = $134;
$135 = $b;
$136 = (_rol_1371($135,30)|0);
$b = $136;
$137 = $e;
$138 = (_rol_1371($137,5)|0);
$139 = $c;
$140 = $a;
$141 = $b;
$142 = $c;
$143 = $141 ^ $142;
$144 = $140 & $143;
$145 = $139 ^ $144;
$146 = (($138) + ($145))|0;
$147 = (($146) + 1518500249)|0;
$148 = $idata;
$149 = ((($148)) + 24|0);
$150 = (_buf_get_be32($149)|0);
$151 = ((($x)) + 24|0);
HEAP32[$151>>2] = $150;
$152 = (($147) + ($150))|0;
$153 = $d;
$154 = (($153) + ($152))|0;
$d = $154;
$155 = $a;
$156 = (_rol_1371($155,30)|0);
$a = $156;
$157 = $d;
$158 = (_rol_1371($157,5)|0);
$159 = $b;
$160 = $e;
$161 = $a;
$162 = $b;
$163 = $161 ^ $162;
$164 = $160 & $163;
$165 = $159 ^ $164;
$166 = (($158) + ($165))|0;
$167 = (($166) + 1518500249)|0;
$168 = $idata;
$169 = ((($168)) + 28|0);
$170 = (_buf_get_be32($169)|0);
$171 = ((($x)) + 28|0);
HEAP32[$171>>2] = $170;
$172 = (($167) + ($170))|0;
$173 = $c;
$174 = (($173) + ($172))|0;
$c = $174;
$175 = $e;
$176 = (_rol_1371($175,30)|0);
$e = $176;
$177 = $c;
$178 = (_rol_1371($177,5)|0);
$179 = $a;
$180 = $d;
$181 = $e;
$182 = $a;
$183 = $181 ^ $182;
$184 = $180 & $183;
$185 = $179 ^ $184;
$186 = (($178) + ($185))|0;
$187 = (($186) + 1518500249)|0;
$188 = $idata;
$189 = ((($188)) + 32|0);
$190 = (_buf_get_be32($189)|0);
$191 = ((($x)) + 32|0);
HEAP32[$191>>2] = $190;
$192 = (($187) + ($190))|0;
$193 = $b;
$194 = (($193) + ($192))|0;
$b = $194;
$195 = $d;
$196 = (_rol_1371($195,30)|0);
$d = $196;
$197 = $b;
$198 = (_rol_1371($197,5)|0);
$199 = $e;
$200 = $c;
$201 = $d;
$202 = $e;
$203 = $201 ^ $202;
$204 = $200 & $203;
$205 = $199 ^ $204;
$206 = (($198) + ($205))|0;
$207 = (($206) + 1518500249)|0;
$208 = $idata;
$209 = ((($208)) + 36|0);
$210 = (_buf_get_be32($209)|0);
$211 = ((($x)) + 36|0);
HEAP32[$211>>2] = $210;
$212 = (($207) + ($210))|0;
$213 = $a;
$214 = (($213) + ($212))|0;
$a = $214;
$215 = $c;
$216 = (_rol_1371($215,30)|0);
$c = $216;
$217 = $a;
$218 = (_rol_1371($217,5)|0);
$219 = $d;
$220 = $b;
$221 = $c;
$222 = $d;
$223 = $221 ^ $222;
$224 = $220 & $223;
$225 = $219 ^ $224;
$226 = (($218) + ($225))|0;
$227 = (($226) + 1518500249)|0;
$228 = $idata;
$229 = ((($228)) + 40|0);
$230 = (_buf_get_be32($229)|0);
$231 = ((($x)) + 40|0);
HEAP32[$231>>2] = $230;
$232 = (($227) + ($230))|0;
$233 = $e;
$234 = (($233) + ($232))|0;
$e = $234;
$235 = $b;
$236 = (_rol_1371($235,30)|0);
$b = $236;
$237 = $e;
$238 = (_rol_1371($237,5)|0);
$239 = $c;
$240 = $a;
$241 = $b;
$242 = $c;
$243 = $241 ^ $242;
$244 = $240 & $243;
$245 = $239 ^ $244;
$246 = (($238) + ($245))|0;
$247 = (($246) + 1518500249)|0;
$248 = $idata;
$249 = ((($248)) + 44|0);
$250 = (_buf_get_be32($249)|0);
$251 = ((($x)) + 44|0);
HEAP32[$251>>2] = $250;
$252 = (($247) + ($250))|0;
$253 = $d;
$254 = (($253) + ($252))|0;
$d = $254;
$255 = $a;
$256 = (_rol_1371($255,30)|0);
$a = $256;
$257 = $d;
$258 = (_rol_1371($257,5)|0);
$259 = $b;
$260 = $e;
$261 = $a;
$262 = $b;
$263 = $261 ^ $262;
$264 = $260 & $263;
$265 = $259 ^ $264;
$266 = (($258) + ($265))|0;
$267 = (($266) + 1518500249)|0;
$268 = $idata;
$269 = ((($268)) + 48|0);
$270 = (_buf_get_be32($269)|0);
$271 = ((($x)) + 48|0);
HEAP32[$271>>2] = $270;
$272 = (($267) + ($270))|0;
$273 = $c;
$274 = (($273) + ($272))|0;
$c = $274;
$275 = $e;
$276 = (_rol_1371($275,30)|0);
$e = $276;
$277 = $c;
$278 = (_rol_1371($277,5)|0);
$279 = $a;
$280 = $d;
$281 = $e;
$282 = $a;
$283 = $281 ^ $282;
$284 = $280 & $283;
$285 = $279 ^ $284;
$286 = (($278) + ($285))|0;
$287 = (($286) + 1518500249)|0;
$288 = $idata;
$289 = ((($288)) + 52|0);
$290 = (_buf_get_be32($289)|0);
$291 = ((($x)) + 52|0);
HEAP32[$291>>2] = $290;
$292 = (($287) + ($290))|0;
$293 = $b;
$294 = (($293) + ($292))|0;
$b = $294;
$295 = $d;
$296 = (_rol_1371($295,30)|0);
$d = $296;
$297 = $b;
$298 = (_rol_1371($297,5)|0);
$299 = $e;
$300 = $c;
$301 = $d;
$302 = $e;
$303 = $301 ^ $302;
$304 = $300 & $303;
$305 = $299 ^ $304;
$306 = (($298) + ($305))|0;
$307 = (($306) + 1518500249)|0;
$308 = $idata;
$309 = ((($308)) + 56|0);
$310 = (_buf_get_be32($309)|0);
$311 = ((($x)) + 56|0);
HEAP32[$311>>2] = $310;
$312 = (($307) + ($310))|0;
$313 = $a;
$314 = (($313) + ($312))|0;
$a = $314;
$315 = $c;
$316 = (_rol_1371($315,30)|0);
$c = $316;
$317 = $a;
$318 = (_rol_1371($317,5)|0);
$319 = $d;
$320 = $b;
$321 = $c;
$322 = $d;
$323 = $321 ^ $322;
$324 = $320 & $323;
$325 = $319 ^ $324;
$326 = (($318) + ($325))|0;
$327 = (($326) + 1518500249)|0;
$328 = $idata;
$329 = ((($328)) + 60|0);
$330 = (_buf_get_be32($329)|0);
$331 = ((($x)) + 60|0);
HEAP32[$331>>2] = $330;
$332 = (($327) + ($330))|0;
$333 = $e;
$334 = (($333) + ($332))|0;
$e = $334;
$335 = $b;
$336 = (_rol_1371($335,30)|0);
$b = $336;
$337 = $e;
$338 = (_rol_1371($337,5)|0);
$339 = $c;
$340 = $a;
$341 = $b;
$342 = $c;
$343 = $341 ^ $342;
$344 = $340 & $343;
$345 = $339 ^ $344;
$346 = (($338) + ($345))|0;
$347 = (($346) + 1518500249)|0;
$348 = HEAP32[$x>>2]|0;
$349 = ((($x)) + 8|0);
$350 = HEAP32[$349>>2]|0;
$351 = $348 ^ $350;
$352 = ((($x)) + 32|0);
$353 = HEAP32[$352>>2]|0;
$354 = $351 ^ $353;
$355 = ((($x)) + 52|0);
$356 = HEAP32[$355>>2]|0;
$357 = $354 ^ $356;
$tm = $357;
$358 = $tm;
$359 = (_rol_1371($358,1)|0);
HEAP32[$x>>2] = $359;
$360 = (($347) + ($359))|0;
$361 = $d;
$362 = (($361) + ($360))|0;
$d = $362;
$363 = $a;
$364 = (_rol_1371($363,30)|0);
$a = $364;
$365 = $d;
$366 = (_rol_1371($365,5)|0);
$367 = $b;
$368 = $e;
$369 = $a;
$370 = $b;
$371 = $369 ^ $370;
$372 = $368 & $371;
$373 = $367 ^ $372;
$374 = (($366) + ($373))|0;
$375 = (($374) + 1518500249)|0;
$376 = ((($x)) + 4|0);
$377 = HEAP32[$376>>2]|0;
$378 = ((($x)) + 12|0);
$379 = HEAP32[$378>>2]|0;
$380 = $377 ^ $379;
$381 = ((($x)) + 36|0);
$382 = HEAP32[$381>>2]|0;
$383 = $380 ^ $382;
$384 = ((($x)) + 56|0);
$385 = HEAP32[$384>>2]|0;
$386 = $383 ^ $385;
$tm = $386;
$387 = $tm;
$388 = (_rol_1371($387,1)|0);
$389 = ((($x)) + 4|0);
HEAP32[$389>>2] = $388;
$390 = (($375) + ($388))|0;
$391 = $c;
$392 = (($391) + ($390))|0;
$c = $392;
$393 = $e;
$394 = (_rol_1371($393,30)|0);
$e = $394;
$395 = $c;
$396 = (_rol_1371($395,5)|0);
$397 = $a;
$398 = $d;
$399 = $e;
$400 = $a;
$401 = $399 ^ $400;
$402 = $398 & $401;
$403 = $397 ^ $402;
$404 = (($396) + ($403))|0;
$405 = (($404) + 1518500249)|0;
$406 = ((($x)) + 8|0);
$407 = HEAP32[$406>>2]|0;
$408 = ((($x)) + 16|0);
$409 = HEAP32[$408>>2]|0;
$410 = $407 ^ $409;
$411 = ((($x)) + 40|0);
$412 = HEAP32[$411>>2]|0;
$413 = $410 ^ $412;
$414 = ((($x)) + 60|0);
$415 = HEAP32[$414>>2]|0;
$416 = $413 ^ $415;
$tm = $416;
$417 = $tm;
$418 = (_rol_1371($417,1)|0);
$419 = ((($x)) + 8|0);
HEAP32[$419>>2] = $418;
$420 = (($405) + ($418))|0;
$421 = $b;
$422 = (($421) + ($420))|0;
$b = $422;
$423 = $d;
$424 = (_rol_1371($423,30)|0);
$d = $424;
$425 = $b;
$426 = (_rol_1371($425,5)|0);
$427 = $e;
$428 = $c;
$429 = $d;
$430 = $e;
$431 = $429 ^ $430;
$432 = $428 & $431;
$433 = $427 ^ $432;
$434 = (($426) + ($433))|0;
$435 = (($434) + 1518500249)|0;
$436 = ((($x)) + 12|0);
$437 = HEAP32[$436>>2]|0;
$438 = ((($x)) + 20|0);
$439 = HEAP32[$438>>2]|0;
$440 = $437 ^ $439;
$441 = ((($x)) + 44|0);
$442 = HEAP32[$441>>2]|0;
$443 = $440 ^ $442;
$444 = HEAP32[$x>>2]|0;
$445 = $443 ^ $444;
$tm = $445;
$446 = $tm;
$447 = (_rol_1371($446,1)|0);
$448 = ((($x)) + 12|0);
HEAP32[$448>>2] = $447;
$449 = (($435) + ($447))|0;
$450 = $a;
$451 = (($450) + ($449))|0;
$a = $451;
$452 = $c;
$453 = (_rol_1371($452,30)|0);
$c = $453;
$454 = $a;
$455 = (_rol_1371($454,5)|0);
$456 = $b;
$457 = $c;
$458 = $456 ^ $457;
$459 = $d;
$460 = $458 ^ $459;
$461 = (($455) + ($460))|0;
$462 = (($461) + 1859775393)|0;
$463 = ((($x)) + 16|0);
$464 = HEAP32[$463>>2]|0;
$465 = ((($x)) + 24|0);
$466 = HEAP32[$465>>2]|0;
$467 = $464 ^ $466;
$468 = ((($x)) + 48|0);
$469 = HEAP32[$468>>2]|0;
$470 = $467 ^ $469;
$471 = ((($x)) + 4|0);
$472 = HEAP32[$471>>2]|0;
$473 = $470 ^ $472;
$tm = $473;
$474 = $tm;
$475 = (_rol_1371($474,1)|0);
$476 = ((($x)) + 16|0);
HEAP32[$476>>2] = $475;
$477 = (($462) + ($475))|0;
$478 = $e;
$479 = (($478) + ($477))|0;
$e = $479;
$480 = $b;
$481 = (_rol_1371($480,30)|0);
$b = $481;
$482 = $e;
$483 = (_rol_1371($482,5)|0);
$484 = $a;
$485 = $b;
$486 = $484 ^ $485;
$487 = $c;
$488 = $486 ^ $487;
$489 = (($483) + ($488))|0;
$490 = (($489) + 1859775393)|0;
$491 = ((($x)) + 20|0);
$492 = HEAP32[$491>>2]|0;
$493 = ((($x)) + 28|0);
$494 = HEAP32[$493>>2]|0;
$495 = $492 ^ $494;
$496 = ((($x)) + 52|0);
$497 = HEAP32[$496>>2]|0;
$498 = $495 ^ $497;
$499 = ((($x)) + 8|0);
$500 = HEAP32[$499>>2]|0;
$501 = $498 ^ $500;
$tm = $501;
$502 = $tm;
$503 = (_rol_1371($502,1)|0);
$504 = ((($x)) + 20|0);
HEAP32[$504>>2] = $503;
$505 = (($490) + ($503))|0;
$506 = $d;
$507 = (($506) + ($505))|0;
$d = $507;
$508 = $a;
$509 = (_rol_1371($508,30)|0);
$a = $509;
$510 = $d;
$511 = (_rol_1371($510,5)|0);
$512 = $e;
$513 = $a;
$514 = $512 ^ $513;
$515 = $b;
$516 = $514 ^ $515;
$517 = (($511) + ($516))|0;
$518 = (($517) + 1859775393)|0;
$519 = ((($x)) + 24|0);
$520 = HEAP32[$519>>2]|0;
$521 = ((($x)) + 32|0);
$522 = HEAP32[$521>>2]|0;
$523 = $520 ^ $522;
$524 = ((($x)) + 56|0);
$525 = HEAP32[$524>>2]|0;
$526 = $523 ^ $525;
$527 = ((($x)) + 12|0);
$528 = HEAP32[$527>>2]|0;
$529 = $526 ^ $528;
$tm = $529;
$530 = $tm;
$531 = (_rol_1371($530,1)|0);
$532 = ((($x)) + 24|0);
HEAP32[$532>>2] = $531;
$533 = (($518) + ($531))|0;
$534 = $c;
$535 = (($534) + ($533))|0;
$c = $535;
$536 = $e;
$537 = (_rol_1371($536,30)|0);
$e = $537;
$538 = $c;
$539 = (_rol_1371($538,5)|0);
$540 = $d;
$541 = $e;
$542 = $540 ^ $541;
$543 = $a;
$544 = $542 ^ $543;
$545 = (($539) + ($544))|0;
$546 = (($545) + 1859775393)|0;
$547 = ((($x)) + 28|0);
$548 = HEAP32[$547>>2]|0;
$549 = ((($x)) + 36|0);
$550 = HEAP32[$549>>2]|0;
$551 = $548 ^ $550;
$552 = ((($x)) + 60|0);
$553 = HEAP32[$552>>2]|0;
$554 = $551 ^ $553;
$555 = ((($x)) + 16|0);
$556 = HEAP32[$555>>2]|0;
$557 = $554 ^ $556;
$tm = $557;
$558 = $tm;
$559 = (_rol_1371($558,1)|0);
$560 = ((($x)) + 28|0);
HEAP32[$560>>2] = $559;
$561 = (($546) + ($559))|0;
$562 = $b;
$563 = (($562) + ($561))|0;
$b = $563;
$564 = $d;
$565 = (_rol_1371($564,30)|0);
$d = $565;
$566 = $b;
$567 = (_rol_1371($566,5)|0);
$568 = $c;
$569 = $d;
$570 = $568 ^ $569;
$571 = $e;
$572 = $570 ^ $571;
$573 = (($567) + ($572))|0;
$574 = (($573) + 1859775393)|0;
$575 = ((($x)) + 32|0);
$576 = HEAP32[$575>>2]|0;
$577 = ((($x)) + 40|0);
$578 = HEAP32[$577>>2]|0;
$579 = $576 ^ $578;
$580 = HEAP32[$x>>2]|0;
$581 = $579 ^ $580;
$582 = ((($x)) + 20|0);
$583 = HEAP32[$582>>2]|0;
$584 = $581 ^ $583;
$tm = $584;
$585 = $tm;
$586 = (_rol_1371($585,1)|0);
$587 = ((($x)) + 32|0);
HEAP32[$587>>2] = $586;
$588 = (($574) + ($586))|0;
$589 = $a;
$590 = (($589) + ($588))|0;
$a = $590;
$591 = $c;
$592 = (_rol_1371($591,30)|0);
$c = $592;
$593 = $a;
$594 = (_rol_1371($593,5)|0);
$595 = $b;
$596 = $c;
$597 = $595 ^ $596;
$598 = $d;
$599 = $597 ^ $598;
$600 = (($594) + ($599))|0;
$601 = (($600) + 1859775393)|0;
$602 = ((($x)) + 36|0);
$603 = HEAP32[$602>>2]|0;
$604 = ((($x)) + 44|0);
$605 = HEAP32[$604>>2]|0;
$606 = $603 ^ $605;
$607 = ((($x)) + 4|0);
$608 = HEAP32[$607>>2]|0;
$609 = $606 ^ $608;
$610 = ((($x)) + 24|0);
$611 = HEAP32[$610>>2]|0;
$612 = $609 ^ $611;
$tm = $612;
$613 = $tm;
$614 = (_rol_1371($613,1)|0);
$615 = ((($x)) + 36|0);
HEAP32[$615>>2] = $614;
$616 = (($601) + ($614))|0;
$617 = $e;
$618 = (($617) + ($616))|0;
$e = $618;
$619 = $b;
$620 = (_rol_1371($619,30)|0);
$b = $620;
$621 = $e;
$622 = (_rol_1371($621,5)|0);
$623 = $a;
$624 = $b;
$625 = $623 ^ $624;
$626 = $c;
$627 = $625 ^ $626;
$628 = (($622) + ($627))|0;
$629 = (($628) + 1859775393)|0;
$630 = ((($x)) + 40|0);
$631 = HEAP32[$630>>2]|0;
$632 = ((($x)) + 48|0);
$633 = HEAP32[$632>>2]|0;
$634 = $631 ^ $633;
$635 = ((($x)) + 8|0);
$636 = HEAP32[$635>>2]|0;
$637 = $634 ^ $636;
$638 = ((($x)) + 28|0);
$639 = HEAP32[$638>>2]|0;
$640 = $637 ^ $639;
$tm = $640;
$641 = $tm;
$642 = (_rol_1371($641,1)|0);
$643 = ((($x)) + 40|0);
HEAP32[$643>>2] = $642;
$644 = (($629) + ($642))|0;
$645 = $d;
$646 = (($645) + ($644))|0;
$d = $646;
$647 = $a;
$648 = (_rol_1371($647,30)|0);
$a = $648;
$649 = $d;
$650 = (_rol_1371($649,5)|0);
$651 = $e;
$652 = $a;
$653 = $651 ^ $652;
$654 = $b;
$655 = $653 ^ $654;
$656 = (($650) + ($655))|0;
$657 = (($656) + 1859775393)|0;
$658 = ((($x)) + 44|0);
$659 = HEAP32[$658>>2]|0;
$660 = ((($x)) + 52|0);
$661 = HEAP32[$660>>2]|0;
$662 = $659 ^ $661;
$663 = ((($x)) + 12|0);
$664 = HEAP32[$663>>2]|0;
$665 = $662 ^ $664;
$666 = ((($x)) + 32|0);
$667 = HEAP32[$666>>2]|0;
$668 = $665 ^ $667;
$tm = $668;
$669 = $tm;
$670 = (_rol_1371($669,1)|0);
$671 = ((($x)) + 44|0);
HEAP32[$671>>2] = $670;
$672 = (($657) + ($670))|0;
$673 = $c;
$674 = (($673) + ($672))|0;
$c = $674;
$675 = $e;
$676 = (_rol_1371($675,30)|0);
$e = $676;
$677 = $c;
$678 = (_rol_1371($677,5)|0);
$679 = $d;
$680 = $e;
$681 = $679 ^ $680;
$682 = $a;
$683 = $681 ^ $682;
$684 = (($678) + ($683))|0;
$685 = (($684) + 1859775393)|0;
$686 = ((($x)) + 48|0);
$687 = HEAP32[$686>>2]|0;
$688 = ((($x)) + 56|0);
$689 = HEAP32[$688>>2]|0;
$690 = $687 ^ $689;
$691 = ((($x)) + 16|0);
$692 = HEAP32[$691>>2]|0;
$693 = $690 ^ $692;
$694 = ((($x)) + 36|0);
$695 = HEAP32[$694>>2]|0;
$696 = $693 ^ $695;
$tm = $696;
$697 = $tm;
$698 = (_rol_1371($697,1)|0);
$699 = ((($x)) + 48|0);
HEAP32[$699>>2] = $698;
$700 = (($685) + ($698))|0;
$701 = $b;
$702 = (($701) + ($700))|0;
$b = $702;
$703 = $d;
$704 = (_rol_1371($703,30)|0);
$d = $704;
$705 = $b;
$706 = (_rol_1371($705,5)|0);
$707 = $c;
$708 = $d;
$709 = $707 ^ $708;
$710 = $e;
$711 = $709 ^ $710;
$712 = (($706) + ($711))|0;
$713 = (($712) + 1859775393)|0;
$714 = ((($x)) + 52|0);
$715 = HEAP32[$714>>2]|0;
$716 = ((($x)) + 60|0);
$717 = HEAP32[$716>>2]|0;
$718 = $715 ^ $717;
$719 = ((($x)) + 20|0);
$720 = HEAP32[$719>>2]|0;
$721 = $718 ^ $720;
$722 = ((($x)) + 40|0);
$723 = HEAP32[$722>>2]|0;
$724 = $721 ^ $723;
$tm = $724;
$725 = $tm;
$726 = (_rol_1371($725,1)|0);
$727 = ((($x)) + 52|0);
HEAP32[$727>>2] = $726;
$728 = (($713) + ($726))|0;
$729 = $a;
$730 = (($729) + ($728))|0;
$a = $730;
$731 = $c;
$732 = (_rol_1371($731,30)|0);
$c = $732;
$733 = $a;
$734 = (_rol_1371($733,5)|0);
$735 = $b;
$736 = $c;
$737 = $735 ^ $736;
$738 = $d;
$739 = $737 ^ $738;
$740 = (($734) + ($739))|0;
$741 = (($740) + 1859775393)|0;
$742 = ((($x)) + 56|0);
$743 = HEAP32[$742>>2]|0;
$744 = HEAP32[$x>>2]|0;
$745 = $743 ^ $744;
$746 = ((($x)) + 24|0);
$747 = HEAP32[$746>>2]|0;
$748 = $745 ^ $747;
$749 = ((($x)) + 44|0);
$750 = HEAP32[$749>>2]|0;
$751 = $748 ^ $750;
$tm = $751;
$752 = $tm;
$753 = (_rol_1371($752,1)|0);
$754 = ((($x)) + 56|0);
HEAP32[$754>>2] = $753;
$755 = (($741) + ($753))|0;
$756 = $e;
$757 = (($756) + ($755))|0;
$e = $757;
$758 = $b;
$759 = (_rol_1371($758,30)|0);
$b = $759;
$760 = $e;
$761 = (_rol_1371($760,5)|0);
$762 = $a;
$763 = $b;
$764 = $762 ^ $763;
$765 = $c;
$766 = $764 ^ $765;
$767 = (($761) + ($766))|0;
$768 = (($767) + 1859775393)|0;
$769 = ((($x)) + 60|0);
$770 = HEAP32[$769>>2]|0;
$771 = ((($x)) + 4|0);
$772 = HEAP32[$771>>2]|0;
$773 = $770 ^ $772;
$774 = ((($x)) + 28|0);
$775 = HEAP32[$774>>2]|0;
$776 = $773 ^ $775;
$777 = ((($x)) + 48|0);
$778 = HEAP32[$777>>2]|0;
$779 = $776 ^ $778;
$tm = $779;
$780 = $tm;
$781 = (_rol_1371($780,1)|0);
$782 = ((($x)) + 60|0);
HEAP32[$782>>2] = $781;
$783 = (($768) + ($781))|0;
$784 = $d;
$785 = (($784) + ($783))|0;
$d = $785;
$786 = $a;
$787 = (_rol_1371($786,30)|0);
$a = $787;
$788 = $d;
$789 = (_rol_1371($788,5)|0);
$790 = $e;
$791 = $a;
$792 = $790 ^ $791;
$793 = $b;
$794 = $792 ^ $793;
$795 = (($789) + ($794))|0;
$796 = (($795) + 1859775393)|0;
$797 = HEAP32[$x>>2]|0;
$798 = ((($x)) + 8|0);
$799 = HEAP32[$798>>2]|0;
$800 = $797 ^ $799;
$801 = ((($x)) + 32|0);
$802 = HEAP32[$801>>2]|0;
$803 = $800 ^ $802;
$804 = ((($x)) + 52|0);
$805 = HEAP32[$804>>2]|0;
$806 = $803 ^ $805;
$tm = $806;
$807 = $tm;
$808 = (_rol_1371($807,1)|0);
HEAP32[$x>>2] = $808;
$809 = (($796) + ($808))|0;
$810 = $c;
$811 = (($810) + ($809))|0;
$c = $811;
$812 = $e;
$813 = (_rol_1371($812,30)|0);
$e = $813;
$814 = $c;
$815 = (_rol_1371($814,5)|0);
$816 = $d;
$817 = $e;
$818 = $816 ^ $817;
$819 = $a;
$820 = $818 ^ $819;
$821 = (($815) + ($820))|0;
$822 = (($821) + 1859775393)|0;
$823 = ((($x)) + 4|0);
$824 = HEAP32[$823>>2]|0;
$825 = ((($x)) + 12|0);
$826 = HEAP32[$825>>2]|0;
$827 = $824 ^ $826;
$828 = ((($x)) + 36|0);
$829 = HEAP32[$828>>2]|0;
$830 = $827 ^ $829;
$831 = ((($x)) + 56|0);
$832 = HEAP32[$831>>2]|0;
$833 = $830 ^ $832;
$tm = $833;
$834 = $tm;
$835 = (_rol_1371($834,1)|0);
$836 = ((($x)) + 4|0);
HEAP32[$836>>2] = $835;
$837 = (($822) + ($835))|0;
$838 = $b;
$839 = (($838) + ($837))|0;
$b = $839;
$840 = $d;
$841 = (_rol_1371($840,30)|0);
$d = $841;
$842 = $b;
$843 = (_rol_1371($842,5)|0);
$844 = $c;
$845 = $d;
$846 = $844 ^ $845;
$847 = $e;
$848 = $846 ^ $847;
$849 = (($843) + ($848))|0;
$850 = (($849) + 1859775393)|0;
$851 = ((($x)) + 8|0);
$852 = HEAP32[$851>>2]|0;
$853 = ((($x)) + 16|0);
$854 = HEAP32[$853>>2]|0;
$855 = $852 ^ $854;
$856 = ((($x)) + 40|0);
$857 = HEAP32[$856>>2]|0;
$858 = $855 ^ $857;
$859 = ((($x)) + 60|0);
$860 = HEAP32[$859>>2]|0;
$861 = $858 ^ $860;
$tm = $861;
$862 = $tm;
$863 = (_rol_1371($862,1)|0);
$864 = ((($x)) + 8|0);
HEAP32[$864>>2] = $863;
$865 = (($850) + ($863))|0;
$866 = $a;
$867 = (($866) + ($865))|0;
$a = $867;
$868 = $c;
$869 = (_rol_1371($868,30)|0);
$c = $869;
$870 = $a;
$871 = (_rol_1371($870,5)|0);
$872 = $b;
$873 = $c;
$874 = $872 ^ $873;
$875 = $d;
$876 = $874 ^ $875;
$877 = (($871) + ($876))|0;
$878 = (($877) + 1859775393)|0;
$879 = ((($x)) + 12|0);
$880 = HEAP32[$879>>2]|0;
$881 = ((($x)) + 20|0);
$882 = HEAP32[$881>>2]|0;
$883 = $880 ^ $882;
$884 = ((($x)) + 44|0);
$885 = HEAP32[$884>>2]|0;
$886 = $883 ^ $885;
$887 = HEAP32[$x>>2]|0;
$888 = $886 ^ $887;
$tm = $888;
$889 = $tm;
$890 = (_rol_1371($889,1)|0);
$891 = ((($x)) + 12|0);
HEAP32[$891>>2] = $890;
$892 = (($878) + ($890))|0;
$893 = $e;
$894 = (($893) + ($892))|0;
$e = $894;
$895 = $b;
$896 = (_rol_1371($895,30)|0);
$b = $896;
$897 = $e;
$898 = (_rol_1371($897,5)|0);
$899 = $a;
$900 = $b;
$901 = $899 ^ $900;
$902 = $c;
$903 = $901 ^ $902;
$904 = (($898) + ($903))|0;
$905 = (($904) + 1859775393)|0;
$906 = ((($x)) + 16|0);
$907 = HEAP32[$906>>2]|0;
$908 = ((($x)) + 24|0);
$909 = HEAP32[$908>>2]|0;
$910 = $907 ^ $909;
$911 = ((($x)) + 48|0);
$912 = HEAP32[$911>>2]|0;
$913 = $910 ^ $912;
$914 = ((($x)) + 4|0);
$915 = HEAP32[$914>>2]|0;
$916 = $913 ^ $915;
$tm = $916;
$917 = $tm;
$918 = (_rol_1371($917,1)|0);
$919 = ((($x)) + 16|0);
HEAP32[$919>>2] = $918;
$920 = (($905) + ($918))|0;
$921 = $d;
$922 = (($921) + ($920))|0;
$d = $922;
$923 = $a;
$924 = (_rol_1371($923,30)|0);
$a = $924;
$925 = $d;
$926 = (_rol_1371($925,5)|0);
$927 = $e;
$928 = $a;
$929 = $927 ^ $928;
$930 = $b;
$931 = $929 ^ $930;
$932 = (($926) + ($931))|0;
$933 = (($932) + 1859775393)|0;
$934 = ((($x)) + 20|0);
$935 = HEAP32[$934>>2]|0;
$936 = ((($x)) + 28|0);
$937 = HEAP32[$936>>2]|0;
$938 = $935 ^ $937;
$939 = ((($x)) + 52|0);
$940 = HEAP32[$939>>2]|0;
$941 = $938 ^ $940;
$942 = ((($x)) + 8|0);
$943 = HEAP32[$942>>2]|0;
$944 = $941 ^ $943;
$tm = $944;
$945 = $tm;
$946 = (_rol_1371($945,1)|0);
$947 = ((($x)) + 20|0);
HEAP32[$947>>2] = $946;
$948 = (($933) + ($946))|0;
$949 = $c;
$950 = (($949) + ($948))|0;
$c = $950;
$951 = $e;
$952 = (_rol_1371($951,30)|0);
$e = $952;
$953 = $c;
$954 = (_rol_1371($953,5)|0);
$955 = $d;
$956 = $e;
$957 = $955 ^ $956;
$958 = $a;
$959 = $957 ^ $958;
$960 = (($954) + ($959))|0;
$961 = (($960) + 1859775393)|0;
$962 = ((($x)) + 24|0);
$963 = HEAP32[$962>>2]|0;
$964 = ((($x)) + 32|0);
$965 = HEAP32[$964>>2]|0;
$966 = $963 ^ $965;
$967 = ((($x)) + 56|0);
$968 = HEAP32[$967>>2]|0;
$969 = $966 ^ $968;
$970 = ((($x)) + 12|0);
$971 = HEAP32[$970>>2]|0;
$972 = $969 ^ $971;
$tm = $972;
$973 = $tm;
$974 = (_rol_1371($973,1)|0);
$975 = ((($x)) + 24|0);
HEAP32[$975>>2] = $974;
$976 = (($961) + ($974))|0;
$977 = $b;
$978 = (($977) + ($976))|0;
$b = $978;
$979 = $d;
$980 = (_rol_1371($979,30)|0);
$d = $980;
$981 = $b;
$982 = (_rol_1371($981,5)|0);
$983 = $c;
$984 = $d;
$985 = $983 ^ $984;
$986 = $e;
$987 = $985 ^ $986;
$988 = (($982) + ($987))|0;
$989 = (($988) + 1859775393)|0;
$990 = ((($x)) + 28|0);
$991 = HEAP32[$990>>2]|0;
$992 = ((($x)) + 36|0);
$993 = HEAP32[$992>>2]|0;
$994 = $991 ^ $993;
$995 = ((($x)) + 60|0);
$996 = HEAP32[$995>>2]|0;
$997 = $994 ^ $996;
$998 = ((($x)) + 16|0);
$999 = HEAP32[$998>>2]|0;
$1000 = $997 ^ $999;
$tm = $1000;
$1001 = $tm;
$1002 = (_rol_1371($1001,1)|0);
$1003 = ((($x)) + 28|0);
HEAP32[$1003>>2] = $1002;
$1004 = (($989) + ($1002))|0;
$1005 = $a;
$1006 = (($1005) + ($1004))|0;
$a = $1006;
$1007 = $c;
$1008 = (_rol_1371($1007,30)|0);
$c = $1008;
$1009 = $a;
$1010 = (_rol_1371($1009,5)|0);
$1011 = $b;
$1012 = $c;
$1013 = $1011 & $1012;
$1014 = $d;
$1015 = $b;
$1016 = $c;
$1017 = $1015 | $1016;
$1018 = $1014 & $1017;
$1019 = $1013 | $1018;
$1020 = (($1010) + ($1019))|0;
$1021 = (($1020) + -1894007588)|0;
$1022 = ((($x)) + 32|0);
$1023 = HEAP32[$1022>>2]|0;
$1024 = ((($x)) + 40|0);
$1025 = HEAP32[$1024>>2]|0;
$1026 = $1023 ^ $1025;
$1027 = HEAP32[$x>>2]|0;
$1028 = $1026 ^ $1027;
$1029 = ((($x)) + 20|0);
$1030 = HEAP32[$1029>>2]|0;
$1031 = $1028 ^ $1030;
$tm = $1031;
$1032 = $tm;
$1033 = (_rol_1371($1032,1)|0);
$1034 = ((($x)) + 32|0);
HEAP32[$1034>>2] = $1033;
$1035 = (($1021) + ($1033))|0;
$1036 = $e;
$1037 = (($1036) + ($1035))|0;
$e = $1037;
$1038 = $b;
$1039 = (_rol_1371($1038,30)|0);
$b = $1039;
$1040 = $e;
$1041 = (_rol_1371($1040,5)|0);
$1042 = $a;
$1043 = $b;
$1044 = $1042 & $1043;
$1045 = $c;
$1046 = $a;
$1047 = $b;
$1048 = $1046 | $1047;
$1049 = $1045 & $1048;
$1050 = $1044 | $1049;
$1051 = (($1041) + ($1050))|0;
$1052 = (($1051) + -1894007588)|0;
$1053 = ((($x)) + 36|0);
$1054 = HEAP32[$1053>>2]|0;
$1055 = ((($x)) + 44|0);
$1056 = HEAP32[$1055>>2]|0;
$1057 = $1054 ^ $1056;
$1058 = ((($x)) + 4|0);
$1059 = HEAP32[$1058>>2]|0;
$1060 = $1057 ^ $1059;
$1061 = ((($x)) + 24|0);
$1062 = HEAP32[$1061>>2]|0;
$1063 = $1060 ^ $1062;
$tm = $1063;
$1064 = $tm;
$1065 = (_rol_1371($1064,1)|0);
$1066 = ((($x)) + 36|0);
HEAP32[$1066>>2] = $1065;
$1067 = (($1052) + ($1065))|0;
$1068 = $d;
$1069 = (($1068) + ($1067))|0;
$d = $1069;
$1070 = $a;
$1071 = (_rol_1371($1070,30)|0);
$a = $1071;
$1072 = $d;
$1073 = (_rol_1371($1072,5)|0);
$1074 = $e;
$1075 = $a;
$1076 = $1074 & $1075;
$1077 = $b;
$1078 = $e;
$1079 = $a;
$1080 = $1078 | $1079;
$1081 = $1077 & $1080;
$1082 = $1076 | $1081;
$1083 = (($1073) + ($1082))|0;
$1084 = (($1083) + -1894007588)|0;
$1085 = ((($x)) + 40|0);
$1086 = HEAP32[$1085>>2]|0;
$1087 = ((($x)) + 48|0);
$1088 = HEAP32[$1087>>2]|0;
$1089 = $1086 ^ $1088;
$1090 = ((($x)) + 8|0);
$1091 = HEAP32[$1090>>2]|0;
$1092 = $1089 ^ $1091;
$1093 = ((($x)) + 28|0);
$1094 = HEAP32[$1093>>2]|0;
$1095 = $1092 ^ $1094;
$tm = $1095;
$1096 = $tm;
$1097 = (_rol_1371($1096,1)|0);
$1098 = ((($x)) + 40|0);
HEAP32[$1098>>2] = $1097;
$1099 = (($1084) + ($1097))|0;
$1100 = $c;
$1101 = (($1100) + ($1099))|0;
$c = $1101;
$1102 = $e;
$1103 = (_rol_1371($1102,30)|0);
$e = $1103;
$1104 = $c;
$1105 = (_rol_1371($1104,5)|0);
$1106 = $d;
$1107 = $e;
$1108 = $1106 & $1107;
$1109 = $a;
$1110 = $d;
$1111 = $e;
$1112 = $1110 | $1111;
$1113 = $1109 & $1112;
$1114 = $1108 | $1113;
$1115 = (($1105) + ($1114))|0;
$1116 = (($1115) + -1894007588)|0;
$1117 = ((($x)) + 44|0);
$1118 = HEAP32[$1117>>2]|0;
$1119 = ((($x)) + 52|0);
$1120 = HEAP32[$1119>>2]|0;
$1121 = $1118 ^ $1120;
$1122 = ((($x)) + 12|0);
$1123 = HEAP32[$1122>>2]|0;
$1124 = $1121 ^ $1123;
$1125 = ((($x)) + 32|0);
$1126 = HEAP32[$1125>>2]|0;
$1127 = $1124 ^ $1126;
$tm = $1127;
$1128 = $tm;
$1129 = (_rol_1371($1128,1)|0);
$1130 = ((($x)) + 44|0);
HEAP32[$1130>>2] = $1129;
$1131 = (($1116) + ($1129))|0;
$1132 = $b;
$1133 = (($1132) + ($1131))|0;
$b = $1133;
$1134 = $d;
$1135 = (_rol_1371($1134,30)|0);
$d = $1135;
$1136 = $b;
$1137 = (_rol_1371($1136,5)|0);
$1138 = $c;
$1139 = $d;
$1140 = $1138 & $1139;
$1141 = $e;
$1142 = $c;
$1143 = $d;
$1144 = $1142 | $1143;
$1145 = $1141 & $1144;
$1146 = $1140 | $1145;
$1147 = (($1137) + ($1146))|0;
$1148 = (($1147) + -1894007588)|0;
$1149 = ((($x)) + 48|0);
$1150 = HEAP32[$1149>>2]|0;
$1151 = ((($x)) + 56|0);
$1152 = HEAP32[$1151>>2]|0;
$1153 = $1150 ^ $1152;
$1154 = ((($x)) + 16|0);
$1155 = HEAP32[$1154>>2]|0;
$1156 = $1153 ^ $1155;
$1157 = ((($x)) + 36|0);
$1158 = HEAP32[$1157>>2]|0;
$1159 = $1156 ^ $1158;
$tm = $1159;
$1160 = $tm;
$1161 = (_rol_1371($1160,1)|0);
$1162 = ((($x)) + 48|0);
HEAP32[$1162>>2] = $1161;
$1163 = (($1148) + ($1161))|0;
$1164 = $a;
$1165 = (($1164) + ($1163))|0;
$a = $1165;
$1166 = $c;
$1167 = (_rol_1371($1166,30)|0);
$c = $1167;
$1168 = $a;
$1169 = (_rol_1371($1168,5)|0);
$1170 = $b;
$1171 = $c;
$1172 = $1170 & $1171;
$1173 = $d;
$1174 = $b;
$1175 = $c;
$1176 = $1174 | $1175;
$1177 = $1173 & $1176;
$1178 = $1172 | $1177;
$1179 = (($1169) + ($1178))|0;
$1180 = (($1179) + -1894007588)|0;
$1181 = ((($x)) + 52|0);
$1182 = HEAP32[$1181>>2]|0;
$1183 = ((($x)) + 60|0);
$1184 = HEAP32[$1183>>2]|0;
$1185 = $1182 ^ $1184;
$1186 = ((($x)) + 20|0);
$1187 = HEAP32[$1186>>2]|0;
$1188 = $1185 ^ $1187;
$1189 = ((($x)) + 40|0);
$1190 = HEAP32[$1189>>2]|0;
$1191 = $1188 ^ $1190;
$tm = $1191;
$1192 = $tm;
$1193 = (_rol_1371($1192,1)|0);
$1194 = ((($x)) + 52|0);
HEAP32[$1194>>2] = $1193;
$1195 = (($1180) + ($1193))|0;
$1196 = $e;
$1197 = (($1196) + ($1195))|0;
$e = $1197;
$1198 = $b;
$1199 = (_rol_1371($1198,30)|0);
$b = $1199;
$1200 = $e;
$1201 = (_rol_1371($1200,5)|0);
$1202 = $a;
$1203 = $b;
$1204 = $1202 & $1203;
$1205 = $c;
$1206 = $a;
$1207 = $b;
$1208 = $1206 | $1207;
$1209 = $1205 & $1208;
$1210 = $1204 | $1209;
$1211 = (($1201) + ($1210))|0;
$1212 = (($1211) + -1894007588)|0;
$1213 = ((($x)) + 56|0);
$1214 = HEAP32[$1213>>2]|0;
$1215 = HEAP32[$x>>2]|0;
$1216 = $1214 ^ $1215;
$1217 = ((($x)) + 24|0);
$1218 = HEAP32[$1217>>2]|0;
$1219 = $1216 ^ $1218;
$1220 = ((($x)) + 44|0);
$1221 = HEAP32[$1220>>2]|0;
$1222 = $1219 ^ $1221;
$tm = $1222;
$1223 = $tm;
$1224 = (_rol_1371($1223,1)|0);
$1225 = ((($x)) + 56|0);
HEAP32[$1225>>2] = $1224;
$1226 = (($1212) + ($1224))|0;
$1227 = $d;
$1228 = (($1227) + ($1226))|0;
$d = $1228;
$1229 = $a;
$1230 = (_rol_1371($1229,30)|0);
$a = $1230;
$1231 = $d;
$1232 = (_rol_1371($1231,5)|0);
$1233 = $e;
$1234 = $a;
$1235 = $1233 & $1234;
$1236 = $b;
$1237 = $e;
$1238 = $a;
$1239 = $1237 | $1238;
$1240 = $1236 & $1239;
$1241 = $1235 | $1240;
$1242 = (($1232) + ($1241))|0;
$1243 = (($1242) + -1894007588)|0;
$1244 = ((($x)) + 60|0);
$1245 = HEAP32[$1244>>2]|0;
$1246 = ((($x)) + 4|0);
$1247 = HEAP32[$1246>>2]|0;
$1248 = $1245 ^ $1247;
$1249 = ((($x)) + 28|0);
$1250 = HEAP32[$1249>>2]|0;
$1251 = $1248 ^ $1250;
$1252 = ((($x)) + 48|0);
$1253 = HEAP32[$1252>>2]|0;
$1254 = $1251 ^ $1253;
$tm = $1254;
$1255 = $tm;
$1256 = (_rol_1371($1255,1)|0);
$1257 = ((($x)) + 60|0);
HEAP32[$1257>>2] = $1256;
$1258 = (($1243) + ($1256))|0;
$1259 = $c;
$1260 = (($1259) + ($1258))|0;
$c = $1260;
$1261 = $e;
$1262 = (_rol_1371($1261,30)|0);
$e = $1262;
$1263 = $c;
$1264 = (_rol_1371($1263,5)|0);
$1265 = $d;
$1266 = $e;
$1267 = $1265 & $1266;
$1268 = $a;
$1269 = $d;
$1270 = $e;
$1271 = $1269 | $1270;
$1272 = $1268 & $1271;
$1273 = $1267 | $1272;
$1274 = (($1264) + ($1273))|0;
$1275 = (($1274) + -1894007588)|0;
$1276 = HEAP32[$x>>2]|0;
$1277 = ((($x)) + 8|0);
$1278 = HEAP32[$1277>>2]|0;
$1279 = $1276 ^ $1278;
$1280 = ((($x)) + 32|0);
$1281 = HEAP32[$1280>>2]|0;
$1282 = $1279 ^ $1281;
$1283 = ((($x)) + 52|0);
$1284 = HEAP32[$1283>>2]|0;
$1285 = $1282 ^ $1284;
$tm = $1285;
$1286 = $tm;
$1287 = (_rol_1371($1286,1)|0);
HEAP32[$x>>2] = $1287;
$1288 = (($1275) + ($1287))|0;
$1289 = $b;
$1290 = (($1289) + ($1288))|0;
$b = $1290;
$1291 = $d;
$1292 = (_rol_1371($1291,30)|0);
$d = $1292;
$1293 = $b;
$1294 = (_rol_1371($1293,5)|0);
$1295 = $c;
$1296 = $d;
$1297 = $1295 & $1296;
$1298 = $e;
$1299 = $c;
$1300 = $d;
$1301 = $1299 | $1300;
$1302 = $1298 & $1301;
$1303 = $1297 | $1302;
$1304 = (($1294) + ($1303))|0;
$1305 = (($1304) + -1894007588)|0;
$1306 = ((($x)) + 4|0);
$1307 = HEAP32[$1306>>2]|0;
$1308 = ((($x)) + 12|0);
$1309 = HEAP32[$1308>>2]|0;
$1310 = $1307 ^ $1309;
$1311 = ((($x)) + 36|0);
$1312 = HEAP32[$1311>>2]|0;
$1313 = $1310 ^ $1312;
$1314 = ((($x)) + 56|0);
$1315 = HEAP32[$1314>>2]|0;
$1316 = $1313 ^ $1315;
$tm = $1316;
$1317 = $tm;
$1318 = (_rol_1371($1317,1)|0);
$1319 = ((($x)) + 4|0);
HEAP32[$1319>>2] = $1318;
$1320 = (($1305) + ($1318))|0;
$1321 = $a;
$1322 = (($1321) + ($1320))|0;
$a = $1322;
$1323 = $c;
$1324 = (_rol_1371($1323,30)|0);
$c = $1324;
$1325 = $a;
$1326 = (_rol_1371($1325,5)|0);
$1327 = $b;
$1328 = $c;
$1329 = $1327 & $1328;
$1330 = $d;
$1331 = $b;
$1332 = $c;
$1333 = $1331 | $1332;
$1334 = $1330 & $1333;
$1335 = $1329 | $1334;
$1336 = (($1326) + ($1335))|0;
$1337 = (($1336) + -1894007588)|0;
$1338 = ((($x)) + 8|0);
$1339 = HEAP32[$1338>>2]|0;
$1340 = ((($x)) + 16|0);
$1341 = HEAP32[$1340>>2]|0;
$1342 = $1339 ^ $1341;
$1343 = ((($x)) + 40|0);
$1344 = HEAP32[$1343>>2]|0;
$1345 = $1342 ^ $1344;
$1346 = ((($x)) + 60|0);
$1347 = HEAP32[$1346>>2]|0;
$1348 = $1345 ^ $1347;
$tm = $1348;
$1349 = $tm;
$1350 = (_rol_1371($1349,1)|0);
$1351 = ((($x)) + 8|0);
HEAP32[$1351>>2] = $1350;
$1352 = (($1337) + ($1350))|0;
$1353 = $e;
$1354 = (($1353) + ($1352))|0;
$e = $1354;
$1355 = $b;
$1356 = (_rol_1371($1355,30)|0);
$b = $1356;
$1357 = $e;
$1358 = (_rol_1371($1357,5)|0);
$1359 = $a;
$1360 = $b;
$1361 = $1359 & $1360;
$1362 = $c;
$1363 = $a;
$1364 = $b;
$1365 = $1363 | $1364;
$1366 = $1362 & $1365;
$1367 = $1361 | $1366;
$1368 = (($1358) + ($1367))|0;
$1369 = (($1368) + -1894007588)|0;
$1370 = ((($x)) + 12|0);
$1371 = HEAP32[$1370>>2]|0;
$1372 = ((($x)) + 20|0);
$1373 = HEAP32[$1372>>2]|0;
$1374 = $1371 ^ $1373;
$1375 = ((($x)) + 44|0);
$1376 = HEAP32[$1375>>2]|0;
$1377 = $1374 ^ $1376;
$1378 = HEAP32[$x>>2]|0;
$1379 = $1377 ^ $1378;
$tm = $1379;
$1380 = $tm;
$1381 = (_rol_1371($1380,1)|0);
$1382 = ((($x)) + 12|0);
HEAP32[$1382>>2] = $1381;
$1383 = (($1369) + ($1381))|0;
$1384 = $d;
$1385 = (($1384) + ($1383))|0;
$d = $1385;
$1386 = $a;
$1387 = (_rol_1371($1386,30)|0);
$a = $1387;
$1388 = $d;
$1389 = (_rol_1371($1388,5)|0);
$1390 = $e;
$1391 = $a;
$1392 = $1390 & $1391;
$1393 = $b;
$1394 = $e;
$1395 = $a;
$1396 = $1394 | $1395;
$1397 = $1393 & $1396;
$1398 = $1392 | $1397;
$1399 = (($1389) + ($1398))|0;
$1400 = (($1399) + -1894007588)|0;
$1401 = ((($x)) + 16|0);
$1402 = HEAP32[$1401>>2]|0;
$1403 = ((($x)) + 24|0);
$1404 = HEAP32[$1403>>2]|0;
$1405 = $1402 ^ $1404;
$1406 = ((($x)) + 48|0);
$1407 = HEAP32[$1406>>2]|0;
$1408 = $1405 ^ $1407;
$1409 = ((($x)) + 4|0);
$1410 = HEAP32[$1409>>2]|0;
$1411 = $1408 ^ $1410;
$tm = $1411;
$1412 = $tm;
$1413 = (_rol_1371($1412,1)|0);
$1414 = ((($x)) + 16|0);
HEAP32[$1414>>2] = $1413;
$1415 = (($1400) + ($1413))|0;
$1416 = $c;
$1417 = (($1416) + ($1415))|0;
$c = $1417;
$1418 = $e;
$1419 = (_rol_1371($1418,30)|0);
$e = $1419;
$1420 = $c;
$1421 = (_rol_1371($1420,5)|0);
$1422 = $d;
$1423 = $e;
$1424 = $1422 & $1423;
$1425 = $a;
$1426 = $d;
$1427 = $e;
$1428 = $1426 | $1427;
$1429 = $1425 & $1428;
$1430 = $1424 | $1429;
$1431 = (($1421) + ($1430))|0;
$1432 = (($1431) + -1894007588)|0;
$1433 = ((($x)) + 20|0);
$1434 = HEAP32[$1433>>2]|0;
$1435 = ((($x)) + 28|0);
$1436 = HEAP32[$1435>>2]|0;
$1437 = $1434 ^ $1436;
$1438 = ((($x)) + 52|0);
$1439 = HEAP32[$1438>>2]|0;
$1440 = $1437 ^ $1439;
$1441 = ((($x)) + 8|0);
$1442 = HEAP32[$1441>>2]|0;
$1443 = $1440 ^ $1442;
$tm = $1443;
$1444 = $tm;
$1445 = (_rol_1371($1444,1)|0);
$1446 = ((($x)) + 20|0);
HEAP32[$1446>>2] = $1445;
$1447 = (($1432) + ($1445))|0;
$1448 = $b;
$1449 = (($1448) + ($1447))|0;
$b = $1449;
$1450 = $d;
$1451 = (_rol_1371($1450,30)|0);
$d = $1451;
$1452 = $b;
$1453 = (_rol_1371($1452,5)|0);
$1454 = $c;
$1455 = $d;
$1456 = $1454 & $1455;
$1457 = $e;
$1458 = $c;
$1459 = $d;
$1460 = $1458 | $1459;
$1461 = $1457 & $1460;
$1462 = $1456 | $1461;
$1463 = (($1453) + ($1462))|0;
$1464 = (($1463) + -1894007588)|0;
$1465 = ((($x)) + 24|0);
$1466 = HEAP32[$1465>>2]|0;
$1467 = ((($x)) + 32|0);
$1468 = HEAP32[$1467>>2]|0;
$1469 = $1466 ^ $1468;
$1470 = ((($x)) + 56|0);
$1471 = HEAP32[$1470>>2]|0;
$1472 = $1469 ^ $1471;
$1473 = ((($x)) + 12|0);
$1474 = HEAP32[$1473>>2]|0;
$1475 = $1472 ^ $1474;
$tm = $1475;
$1476 = $tm;
$1477 = (_rol_1371($1476,1)|0);
$1478 = ((($x)) + 24|0);
HEAP32[$1478>>2] = $1477;
$1479 = (($1464) + ($1477))|0;
$1480 = $a;
$1481 = (($1480) + ($1479))|0;
$a = $1481;
$1482 = $c;
$1483 = (_rol_1371($1482,30)|0);
$c = $1483;
$1484 = $a;
$1485 = (_rol_1371($1484,5)|0);
$1486 = $b;
$1487 = $c;
$1488 = $1486 & $1487;
$1489 = $d;
$1490 = $b;
$1491 = $c;
$1492 = $1490 | $1491;
$1493 = $1489 & $1492;
$1494 = $1488 | $1493;
$1495 = (($1485) + ($1494))|0;
$1496 = (($1495) + -1894007588)|0;
$1497 = ((($x)) + 28|0);
$1498 = HEAP32[$1497>>2]|0;
$1499 = ((($x)) + 36|0);
$1500 = HEAP32[$1499>>2]|0;
$1501 = $1498 ^ $1500;
$1502 = ((($x)) + 60|0);
$1503 = HEAP32[$1502>>2]|0;
$1504 = $1501 ^ $1503;
$1505 = ((($x)) + 16|0);
$1506 = HEAP32[$1505>>2]|0;
$1507 = $1504 ^ $1506;
$tm = $1507;
$1508 = $tm;
$1509 = (_rol_1371($1508,1)|0);
$1510 = ((($x)) + 28|0);
HEAP32[$1510>>2] = $1509;
$1511 = (($1496) + ($1509))|0;
$1512 = $e;
$1513 = (($1512) + ($1511))|0;
$e = $1513;
$1514 = $b;
$1515 = (_rol_1371($1514,30)|0);
$b = $1515;
$1516 = $e;
$1517 = (_rol_1371($1516,5)|0);
$1518 = $a;
$1519 = $b;
$1520 = $1518 & $1519;
$1521 = $c;
$1522 = $a;
$1523 = $b;
$1524 = $1522 | $1523;
$1525 = $1521 & $1524;
$1526 = $1520 | $1525;
$1527 = (($1517) + ($1526))|0;
$1528 = (($1527) + -1894007588)|0;
$1529 = ((($x)) + 32|0);
$1530 = HEAP32[$1529>>2]|0;
$1531 = ((($x)) + 40|0);
$1532 = HEAP32[$1531>>2]|0;
$1533 = $1530 ^ $1532;
$1534 = HEAP32[$x>>2]|0;
$1535 = $1533 ^ $1534;
$1536 = ((($x)) + 20|0);
$1537 = HEAP32[$1536>>2]|0;
$1538 = $1535 ^ $1537;
$tm = $1538;
$1539 = $tm;
$1540 = (_rol_1371($1539,1)|0);
$1541 = ((($x)) + 32|0);
HEAP32[$1541>>2] = $1540;
$1542 = (($1528) + ($1540))|0;
$1543 = $d;
$1544 = (($1543) + ($1542))|0;
$d = $1544;
$1545 = $a;
$1546 = (_rol_1371($1545,30)|0);
$a = $1546;
$1547 = $d;
$1548 = (_rol_1371($1547,5)|0);
$1549 = $e;
$1550 = $a;
$1551 = $1549 & $1550;
$1552 = $b;
$1553 = $e;
$1554 = $a;
$1555 = $1553 | $1554;
$1556 = $1552 & $1555;
$1557 = $1551 | $1556;
$1558 = (($1548) + ($1557))|0;
$1559 = (($1558) + -1894007588)|0;
$1560 = ((($x)) + 36|0);
$1561 = HEAP32[$1560>>2]|0;
$1562 = ((($x)) + 44|0);
$1563 = HEAP32[$1562>>2]|0;
$1564 = $1561 ^ $1563;
$1565 = ((($x)) + 4|0);
$1566 = HEAP32[$1565>>2]|0;
$1567 = $1564 ^ $1566;
$1568 = ((($x)) + 24|0);
$1569 = HEAP32[$1568>>2]|0;
$1570 = $1567 ^ $1569;
$tm = $1570;
$1571 = $tm;
$1572 = (_rol_1371($1571,1)|0);
$1573 = ((($x)) + 36|0);
HEAP32[$1573>>2] = $1572;
$1574 = (($1559) + ($1572))|0;
$1575 = $c;
$1576 = (($1575) + ($1574))|0;
$c = $1576;
$1577 = $e;
$1578 = (_rol_1371($1577,30)|0);
$e = $1578;
$1579 = $c;
$1580 = (_rol_1371($1579,5)|0);
$1581 = $d;
$1582 = $e;
$1583 = $1581 & $1582;
$1584 = $a;
$1585 = $d;
$1586 = $e;
$1587 = $1585 | $1586;
$1588 = $1584 & $1587;
$1589 = $1583 | $1588;
$1590 = (($1580) + ($1589))|0;
$1591 = (($1590) + -1894007588)|0;
$1592 = ((($x)) + 40|0);
$1593 = HEAP32[$1592>>2]|0;
$1594 = ((($x)) + 48|0);
$1595 = HEAP32[$1594>>2]|0;
$1596 = $1593 ^ $1595;
$1597 = ((($x)) + 8|0);
$1598 = HEAP32[$1597>>2]|0;
$1599 = $1596 ^ $1598;
$1600 = ((($x)) + 28|0);
$1601 = HEAP32[$1600>>2]|0;
$1602 = $1599 ^ $1601;
$tm = $1602;
$1603 = $tm;
$1604 = (_rol_1371($1603,1)|0);
$1605 = ((($x)) + 40|0);
HEAP32[$1605>>2] = $1604;
$1606 = (($1591) + ($1604))|0;
$1607 = $b;
$1608 = (($1607) + ($1606))|0;
$b = $1608;
$1609 = $d;
$1610 = (_rol_1371($1609,30)|0);
$d = $1610;
$1611 = $b;
$1612 = (_rol_1371($1611,5)|0);
$1613 = $c;
$1614 = $d;
$1615 = $1613 & $1614;
$1616 = $e;
$1617 = $c;
$1618 = $d;
$1619 = $1617 | $1618;
$1620 = $1616 & $1619;
$1621 = $1615 | $1620;
$1622 = (($1612) + ($1621))|0;
$1623 = (($1622) + -1894007588)|0;
$1624 = ((($x)) + 44|0);
$1625 = HEAP32[$1624>>2]|0;
$1626 = ((($x)) + 52|0);
$1627 = HEAP32[$1626>>2]|0;
$1628 = $1625 ^ $1627;
$1629 = ((($x)) + 12|0);
$1630 = HEAP32[$1629>>2]|0;
$1631 = $1628 ^ $1630;
$1632 = ((($x)) + 32|0);
$1633 = HEAP32[$1632>>2]|0;
$1634 = $1631 ^ $1633;
$tm = $1634;
$1635 = $tm;
$1636 = (_rol_1371($1635,1)|0);
$1637 = ((($x)) + 44|0);
HEAP32[$1637>>2] = $1636;
$1638 = (($1623) + ($1636))|0;
$1639 = $a;
$1640 = (($1639) + ($1638))|0;
$a = $1640;
$1641 = $c;
$1642 = (_rol_1371($1641,30)|0);
$c = $1642;
$1643 = $a;
$1644 = (_rol_1371($1643,5)|0);
$1645 = $b;
$1646 = $c;
$1647 = $1645 ^ $1646;
$1648 = $d;
$1649 = $1647 ^ $1648;
$1650 = (($1644) + ($1649))|0;
$1651 = (($1650) + -899497514)|0;
$1652 = ((($x)) + 48|0);
$1653 = HEAP32[$1652>>2]|0;
$1654 = ((($x)) + 56|0);
$1655 = HEAP32[$1654>>2]|0;
$1656 = $1653 ^ $1655;
$1657 = ((($x)) + 16|0);
$1658 = HEAP32[$1657>>2]|0;
$1659 = $1656 ^ $1658;
$1660 = ((($x)) + 36|0);
$1661 = HEAP32[$1660>>2]|0;
$1662 = $1659 ^ $1661;
$tm = $1662;
$1663 = $tm;
$1664 = (_rol_1371($1663,1)|0);
$1665 = ((($x)) + 48|0);
HEAP32[$1665>>2] = $1664;
$1666 = (($1651) + ($1664))|0;
$1667 = $e;
$1668 = (($1667) + ($1666))|0;
$e = $1668;
$1669 = $b;
$1670 = (_rol_1371($1669,30)|0);
$b = $1670;
$1671 = $e;
$1672 = (_rol_1371($1671,5)|0);
$1673 = $a;
$1674 = $b;
$1675 = $1673 ^ $1674;
$1676 = $c;
$1677 = $1675 ^ $1676;
$1678 = (($1672) + ($1677))|0;
$1679 = (($1678) + -899497514)|0;
$1680 = ((($x)) + 52|0);
$1681 = HEAP32[$1680>>2]|0;
$1682 = ((($x)) + 60|0);
$1683 = HEAP32[$1682>>2]|0;
$1684 = $1681 ^ $1683;
$1685 = ((($x)) + 20|0);
$1686 = HEAP32[$1685>>2]|0;
$1687 = $1684 ^ $1686;
$1688 = ((($x)) + 40|0);
$1689 = HEAP32[$1688>>2]|0;
$1690 = $1687 ^ $1689;
$tm = $1690;
$1691 = $tm;
$1692 = (_rol_1371($1691,1)|0);
$1693 = ((($x)) + 52|0);
HEAP32[$1693>>2] = $1692;
$1694 = (($1679) + ($1692))|0;
$1695 = $d;
$1696 = (($1695) + ($1694))|0;
$d = $1696;
$1697 = $a;
$1698 = (_rol_1371($1697,30)|0);
$a = $1698;
$1699 = $d;
$1700 = (_rol_1371($1699,5)|0);
$1701 = $e;
$1702 = $a;
$1703 = $1701 ^ $1702;
$1704 = $b;
$1705 = $1703 ^ $1704;
$1706 = (($1700) + ($1705))|0;
$1707 = (($1706) + -899497514)|0;
$1708 = ((($x)) + 56|0);
$1709 = HEAP32[$1708>>2]|0;
$1710 = HEAP32[$x>>2]|0;
$1711 = $1709 ^ $1710;
$1712 = ((($x)) + 24|0);
$1713 = HEAP32[$1712>>2]|0;
$1714 = $1711 ^ $1713;
$1715 = ((($x)) + 44|0);
$1716 = HEAP32[$1715>>2]|0;
$1717 = $1714 ^ $1716;
$tm = $1717;
$1718 = $tm;
$1719 = (_rol_1371($1718,1)|0);
$1720 = ((($x)) + 56|0);
HEAP32[$1720>>2] = $1719;
$1721 = (($1707) + ($1719))|0;
$1722 = $c;
$1723 = (($1722) + ($1721))|0;
$c = $1723;
$1724 = $e;
$1725 = (_rol_1371($1724,30)|0);
$e = $1725;
$1726 = $c;
$1727 = (_rol_1371($1726,5)|0);
$1728 = $d;
$1729 = $e;
$1730 = $1728 ^ $1729;
$1731 = $a;
$1732 = $1730 ^ $1731;
$1733 = (($1727) + ($1732))|0;
$1734 = (($1733) + -899497514)|0;
$1735 = ((($x)) + 60|0);
$1736 = HEAP32[$1735>>2]|0;
$1737 = ((($x)) + 4|0);
$1738 = HEAP32[$1737>>2]|0;
$1739 = $1736 ^ $1738;
$1740 = ((($x)) + 28|0);
$1741 = HEAP32[$1740>>2]|0;
$1742 = $1739 ^ $1741;
$1743 = ((($x)) + 48|0);
$1744 = HEAP32[$1743>>2]|0;
$1745 = $1742 ^ $1744;
$tm = $1745;
$1746 = $tm;
$1747 = (_rol_1371($1746,1)|0);
$1748 = ((($x)) + 60|0);
HEAP32[$1748>>2] = $1747;
$1749 = (($1734) + ($1747))|0;
$1750 = $b;
$1751 = (($1750) + ($1749))|0;
$b = $1751;
$1752 = $d;
$1753 = (_rol_1371($1752,30)|0);
$d = $1753;
$1754 = $b;
$1755 = (_rol_1371($1754,5)|0);
$1756 = $c;
$1757 = $d;
$1758 = $1756 ^ $1757;
$1759 = $e;
$1760 = $1758 ^ $1759;
$1761 = (($1755) + ($1760))|0;
$1762 = (($1761) + -899497514)|0;
$1763 = HEAP32[$x>>2]|0;
$1764 = ((($x)) + 8|0);
$1765 = HEAP32[$1764>>2]|0;
$1766 = $1763 ^ $1765;
$1767 = ((($x)) + 32|0);
$1768 = HEAP32[$1767>>2]|0;
$1769 = $1766 ^ $1768;
$1770 = ((($x)) + 52|0);
$1771 = HEAP32[$1770>>2]|0;
$1772 = $1769 ^ $1771;
$tm = $1772;
$1773 = $tm;
$1774 = (_rol_1371($1773,1)|0);
HEAP32[$x>>2] = $1774;
$1775 = (($1762) + ($1774))|0;
$1776 = $a;
$1777 = (($1776) + ($1775))|0;
$a = $1777;
$1778 = $c;
$1779 = (_rol_1371($1778,30)|0);
$c = $1779;
$1780 = $a;
$1781 = (_rol_1371($1780,5)|0);
$1782 = $b;
$1783 = $c;
$1784 = $1782 ^ $1783;
$1785 = $d;
$1786 = $1784 ^ $1785;
$1787 = (($1781) + ($1786))|0;
$1788 = (($1787) + -899497514)|0;
$1789 = ((($x)) + 4|0);
$1790 = HEAP32[$1789>>2]|0;
$1791 = ((($x)) + 12|0);
$1792 = HEAP32[$1791>>2]|0;
$1793 = $1790 ^ $1792;
$1794 = ((($x)) + 36|0);
$1795 = HEAP32[$1794>>2]|0;
$1796 = $1793 ^ $1795;
$1797 = ((($x)) + 56|0);
$1798 = HEAP32[$1797>>2]|0;
$1799 = $1796 ^ $1798;
$tm = $1799;
$1800 = $tm;
$1801 = (_rol_1371($1800,1)|0);
$1802 = ((($x)) + 4|0);
HEAP32[$1802>>2] = $1801;
$1803 = (($1788) + ($1801))|0;
$1804 = $e;
$1805 = (($1804) + ($1803))|0;
$e = $1805;
$1806 = $b;
$1807 = (_rol_1371($1806,30)|0);
$b = $1807;
$1808 = $e;
$1809 = (_rol_1371($1808,5)|0);
$1810 = $a;
$1811 = $b;
$1812 = $1810 ^ $1811;
$1813 = $c;
$1814 = $1812 ^ $1813;
$1815 = (($1809) + ($1814))|0;
$1816 = (($1815) + -899497514)|0;
$1817 = ((($x)) + 8|0);
$1818 = HEAP32[$1817>>2]|0;
$1819 = ((($x)) + 16|0);
$1820 = HEAP32[$1819>>2]|0;
$1821 = $1818 ^ $1820;
$1822 = ((($x)) + 40|0);
$1823 = HEAP32[$1822>>2]|0;
$1824 = $1821 ^ $1823;
$1825 = ((($x)) + 60|0);
$1826 = HEAP32[$1825>>2]|0;
$1827 = $1824 ^ $1826;
$tm = $1827;
$1828 = $tm;
$1829 = (_rol_1371($1828,1)|0);
$1830 = ((($x)) + 8|0);
HEAP32[$1830>>2] = $1829;
$1831 = (($1816) + ($1829))|0;
$1832 = $d;
$1833 = (($1832) + ($1831))|0;
$d = $1833;
$1834 = $a;
$1835 = (_rol_1371($1834,30)|0);
$a = $1835;
$1836 = $d;
$1837 = (_rol_1371($1836,5)|0);
$1838 = $e;
$1839 = $a;
$1840 = $1838 ^ $1839;
$1841 = $b;
$1842 = $1840 ^ $1841;
$1843 = (($1837) + ($1842))|0;
$1844 = (($1843) + -899497514)|0;
$1845 = ((($x)) + 12|0);
$1846 = HEAP32[$1845>>2]|0;
$1847 = ((($x)) + 20|0);
$1848 = HEAP32[$1847>>2]|0;
$1849 = $1846 ^ $1848;
$1850 = ((($x)) + 44|0);
$1851 = HEAP32[$1850>>2]|0;
$1852 = $1849 ^ $1851;
$1853 = HEAP32[$x>>2]|0;
$1854 = $1852 ^ $1853;
$tm = $1854;
$1855 = $tm;
$1856 = (_rol_1371($1855,1)|0);
$1857 = ((($x)) + 12|0);
HEAP32[$1857>>2] = $1856;
$1858 = (($1844) + ($1856))|0;
$1859 = $c;
$1860 = (($1859) + ($1858))|0;
$c = $1860;
$1861 = $e;
$1862 = (_rol_1371($1861,30)|0);
$e = $1862;
$1863 = $c;
$1864 = (_rol_1371($1863,5)|0);
$1865 = $d;
$1866 = $e;
$1867 = $1865 ^ $1866;
$1868 = $a;
$1869 = $1867 ^ $1868;
$1870 = (($1864) + ($1869))|0;
$1871 = (($1870) + -899497514)|0;
$1872 = ((($x)) + 16|0);
$1873 = HEAP32[$1872>>2]|0;
$1874 = ((($x)) + 24|0);
$1875 = HEAP32[$1874>>2]|0;
$1876 = $1873 ^ $1875;
$1877 = ((($x)) + 48|0);
$1878 = HEAP32[$1877>>2]|0;
$1879 = $1876 ^ $1878;
$1880 = ((($x)) + 4|0);
$1881 = HEAP32[$1880>>2]|0;
$1882 = $1879 ^ $1881;
$tm = $1882;
$1883 = $tm;
$1884 = (_rol_1371($1883,1)|0);
$1885 = ((($x)) + 16|0);
HEAP32[$1885>>2] = $1884;
$1886 = (($1871) + ($1884))|0;
$1887 = $b;
$1888 = (($1887) + ($1886))|0;
$b = $1888;
$1889 = $d;
$1890 = (_rol_1371($1889,30)|0);
$d = $1890;
$1891 = $b;
$1892 = (_rol_1371($1891,5)|0);
$1893 = $c;
$1894 = $d;
$1895 = $1893 ^ $1894;
$1896 = $e;
$1897 = $1895 ^ $1896;
$1898 = (($1892) + ($1897))|0;
$1899 = (($1898) + -899497514)|0;
$1900 = ((($x)) + 20|0);
$1901 = HEAP32[$1900>>2]|0;
$1902 = ((($x)) + 28|0);
$1903 = HEAP32[$1902>>2]|0;
$1904 = $1901 ^ $1903;
$1905 = ((($x)) + 52|0);
$1906 = HEAP32[$1905>>2]|0;
$1907 = $1904 ^ $1906;
$1908 = ((($x)) + 8|0);
$1909 = HEAP32[$1908>>2]|0;
$1910 = $1907 ^ $1909;
$tm = $1910;
$1911 = $tm;
$1912 = (_rol_1371($1911,1)|0);
$1913 = ((($x)) + 20|0);
HEAP32[$1913>>2] = $1912;
$1914 = (($1899) + ($1912))|0;
$1915 = $a;
$1916 = (($1915) + ($1914))|0;
$a = $1916;
$1917 = $c;
$1918 = (_rol_1371($1917,30)|0);
$c = $1918;
$1919 = $a;
$1920 = (_rol_1371($1919,5)|0);
$1921 = $b;
$1922 = $c;
$1923 = $1921 ^ $1922;
$1924 = $d;
$1925 = $1923 ^ $1924;
$1926 = (($1920) + ($1925))|0;
$1927 = (($1926) + -899497514)|0;
$1928 = ((($x)) + 24|0);
$1929 = HEAP32[$1928>>2]|0;
$1930 = ((($x)) + 32|0);
$1931 = HEAP32[$1930>>2]|0;
$1932 = $1929 ^ $1931;
$1933 = ((($x)) + 56|0);
$1934 = HEAP32[$1933>>2]|0;
$1935 = $1932 ^ $1934;
$1936 = ((($x)) + 12|0);
$1937 = HEAP32[$1936>>2]|0;
$1938 = $1935 ^ $1937;
$tm = $1938;
$1939 = $tm;
$1940 = (_rol_1371($1939,1)|0);
$1941 = ((($x)) + 24|0);
HEAP32[$1941>>2] = $1940;
$1942 = (($1927) + ($1940))|0;
$1943 = $e;
$1944 = (($1943) + ($1942))|0;
$e = $1944;
$1945 = $b;
$1946 = (_rol_1371($1945,30)|0);
$b = $1946;
$1947 = $e;
$1948 = (_rol_1371($1947,5)|0);
$1949 = $a;
$1950 = $b;
$1951 = $1949 ^ $1950;
$1952 = $c;
$1953 = $1951 ^ $1952;
$1954 = (($1948) + ($1953))|0;
$1955 = (($1954) + -899497514)|0;
$1956 = ((($x)) + 28|0);
$1957 = HEAP32[$1956>>2]|0;
$1958 = ((($x)) + 36|0);
$1959 = HEAP32[$1958>>2]|0;
$1960 = $1957 ^ $1959;
$1961 = ((($x)) + 60|0);
$1962 = HEAP32[$1961>>2]|0;
$1963 = $1960 ^ $1962;
$1964 = ((($x)) + 16|0);
$1965 = HEAP32[$1964>>2]|0;
$1966 = $1963 ^ $1965;
$tm = $1966;
$1967 = $tm;
$1968 = (_rol_1371($1967,1)|0);
$1969 = ((($x)) + 28|0);
HEAP32[$1969>>2] = $1968;
$1970 = (($1955) + ($1968))|0;
$1971 = $d;
$1972 = (($1971) + ($1970))|0;
$d = $1972;
$1973 = $a;
$1974 = (_rol_1371($1973,30)|0);
$a = $1974;
$1975 = $d;
$1976 = (_rol_1371($1975,5)|0);
$1977 = $e;
$1978 = $a;
$1979 = $1977 ^ $1978;
$1980 = $b;
$1981 = $1979 ^ $1980;
$1982 = (($1976) + ($1981))|0;
$1983 = (($1982) + -899497514)|0;
$1984 = ((($x)) + 32|0);
$1985 = HEAP32[$1984>>2]|0;
$1986 = ((($x)) + 40|0);
$1987 = HEAP32[$1986>>2]|0;
$1988 = $1985 ^ $1987;
$1989 = HEAP32[$x>>2]|0;
$1990 = $1988 ^ $1989;
$1991 = ((($x)) + 20|0);
$1992 = HEAP32[$1991>>2]|0;
$1993 = $1990 ^ $1992;
$tm = $1993;
$1994 = $tm;
$1995 = (_rol_1371($1994,1)|0);
$1996 = ((($x)) + 32|0);
HEAP32[$1996>>2] = $1995;
$1997 = (($1983) + ($1995))|0;
$1998 = $c;
$1999 = (($1998) + ($1997))|0;
$c = $1999;
$2000 = $e;
$2001 = (_rol_1371($2000,30)|0);
$e = $2001;
$2002 = $c;
$2003 = (_rol_1371($2002,5)|0);
$2004 = $d;
$2005 = $e;
$2006 = $2004 ^ $2005;
$2007 = $a;
$2008 = $2006 ^ $2007;
$2009 = (($2003) + ($2008))|0;
$2010 = (($2009) + -899497514)|0;
$2011 = ((($x)) + 36|0);
$2012 = HEAP32[$2011>>2]|0;
$2013 = ((($x)) + 44|0);
$2014 = HEAP32[$2013>>2]|0;
$2015 = $2012 ^ $2014;
$2016 = ((($x)) + 4|0);
$2017 = HEAP32[$2016>>2]|0;
$2018 = $2015 ^ $2017;
$2019 = ((($x)) + 24|0);
$2020 = HEAP32[$2019>>2]|0;
$2021 = $2018 ^ $2020;
$tm = $2021;
$2022 = $tm;
$2023 = (_rol_1371($2022,1)|0);
$2024 = ((($x)) + 36|0);
HEAP32[$2024>>2] = $2023;
$2025 = (($2010) + ($2023))|0;
$2026 = $b;
$2027 = (($2026) + ($2025))|0;
$b = $2027;
$2028 = $d;
$2029 = (_rol_1371($2028,30)|0);
$d = $2029;
$2030 = $b;
$2031 = (_rol_1371($2030,5)|0);
$2032 = $c;
$2033 = $d;
$2034 = $2032 ^ $2033;
$2035 = $e;
$2036 = $2034 ^ $2035;
$2037 = (($2031) + ($2036))|0;
$2038 = (($2037) + -899497514)|0;
$2039 = ((($x)) + 40|0);
$2040 = HEAP32[$2039>>2]|0;
$2041 = ((($x)) + 48|0);
$2042 = HEAP32[$2041>>2]|0;
$2043 = $2040 ^ $2042;
$2044 = ((($x)) + 8|0);
$2045 = HEAP32[$2044>>2]|0;
$2046 = $2043 ^ $2045;
$2047 = ((($x)) + 28|0);
$2048 = HEAP32[$2047>>2]|0;
$2049 = $2046 ^ $2048;
$tm = $2049;
$2050 = $tm;
$2051 = (_rol_1371($2050,1)|0);
$2052 = ((($x)) + 40|0);
HEAP32[$2052>>2] = $2051;
$2053 = (($2038) + ($2051))|0;
$2054 = $a;
$2055 = (($2054) + ($2053))|0;
$a = $2055;
$2056 = $c;
$2057 = (_rol_1371($2056,30)|0);
$c = $2057;
$2058 = $a;
$2059 = (_rol_1371($2058,5)|0);
$2060 = $b;
$2061 = $c;
$2062 = $2060 ^ $2061;
$2063 = $d;
$2064 = $2062 ^ $2063;
$2065 = (($2059) + ($2064))|0;
$2066 = (($2065) + -899497514)|0;
$2067 = ((($x)) + 44|0);
$2068 = HEAP32[$2067>>2]|0;
$2069 = ((($x)) + 52|0);
$2070 = HEAP32[$2069>>2]|0;
$2071 = $2068 ^ $2070;
$2072 = ((($x)) + 12|0);
$2073 = HEAP32[$2072>>2]|0;
$2074 = $2071 ^ $2073;
$2075 = ((($x)) + 32|0);
$2076 = HEAP32[$2075>>2]|0;
$2077 = $2074 ^ $2076;
$tm = $2077;
$2078 = $tm;
$2079 = (_rol_1371($2078,1)|0);
$2080 = ((($x)) + 44|0);
HEAP32[$2080>>2] = $2079;
$2081 = (($2066) + ($2079))|0;
$2082 = $e;
$2083 = (($2082) + ($2081))|0;
$e = $2083;
$2084 = $b;
$2085 = (_rol_1371($2084,30)|0);
$b = $2085;
$2086 = $e;
$2087 = (_rol_1371($2086,5)|0);
$2088 = $a;
$2089 = $b;
$2090 = $2088 ^ $2089;
$2091 = $c;
$2092 = $2090 ^ $2091;
$2093 = (($2087) + ($2092))|0;
$2094 = (($2093) + -899497514)|0;
$2095 = ((($x)) + 48|0);
$2096 = HEAP32[$2095>>2]|0;
$2097 = ((($x)) + 56|0);
$2098 = HEAP32[$2097>>2]|0;
$2099 = $2096 ^ $2098;
$2100 = ((($x)) + 16|0);
$2101 = HEAP32[$2100>>2]|0;
$2102 = $2099 ^ $2101;
$2103 = ((($x)) + 36|0);
$2104 = HEAP32[$2103>>2]|0;
$2105 = $2102 ^ $2104;
$tm = $2105;
$2106 = $tm;
$2107 = (_rol_1371($2106,1)|0);
$2108 = ((($x)) + 48|0);
HEAP32[$2108>>2] = $2107;
$2109 = (($2094) + ($2107))|0;
$2110 = $d;
$2111 = (($2110) + ($2109))|0;
$d = $2111;
$2112 = $a;
$2113 = (_rol_1371($2112,30)|0);
$a = $2113;
$2114 = $d;
$2115 = (_rol_1371($2114,5)|0);
$2116 = $e;
$2117 = $a;
$2118 = $2116 ^ $2117;
$2119 = $b;
$2120 = $2118 ^ $2119;
$2121 = (($2115) + ($2120))|0;
$2122 = (($2121) + -899497514)|0;
$2123 = ((($x)) + 52|0);
$2124 = HEAP32[$2123>>2]|0;
$2125 = ((($x)) + 60|0);
$2126 = HEAP32[$2125>>2]|0;
$2127 = $2124 ^ $2126;
$2128 = ((($x)) + 20|0);
$2129 = HEAP32[$2128>>2]|0;
$2130 = $2127 ^ $2129;
$2131 = ((($x)) + 40|0);
$2132 = HEAP32[$2131>>2]|0;
$2133 = $2130 ^ $2132;
$tm = $2133;
$2134 = $tm;
$2135 = (_rol_1371($2134,1)|0);
$2136 = ((($x)) + 52|0);
HEAP32[$2136>>2] = $2135;
$2137 = (($2122) + ($2135))|0;
$2138 = $c;
$2139 = (($2138) + ($2137))|0;
$c = $2139;
$2140 = $e;
$2141 = (_rol_1371($2140,30)|0);
$e = $2141;
$2142 = $c;
$2143 = (_rol_1371($2142,5)|0);
$2144 = $d;
$2145 = $e;
$2146 = $2144 ^ $2145;
$2147 = $a;
$2148 = $2146 ^ $2147;
$2149 = (($2143) + ($2148))|0;
$2150 = (($2149) + -899497514)|0;
$2151 = ((($x)) + 56|0);
$2152 = HEAP32[$2151>>2]|0;
$2153 = HEAP32[$x>>2]|0;
$2154 = $2152 ^ $2153;
$2155 = ((($x)) + 24|0);
$2156 = HEAP32[$2155>>2]|0;
$2157 = $2154 ^ $2156;
$2158 = ((($x)) + 44|0);
$2159 = HEAP32[$2158>>2]|0;
$2160 = $2157 ^ $2159;
$tm = $2160;
$2161 = $tm;
$2162 = (_rol_1371($2161,1)|0);
$2163 = ((($x)) + 56|0);
HEAP32[$2163>>2] = $2162;
$2164 = (($2150) + ($2162))|0;
$2165 = $b;
$2166 = (($2165) + ($2164))|0;
$b = $2166;
$2167 = $d;
$2168 = (_rol_1371($2167,30)|0);
$d = $2168;
$2169 = $b;
$2170 = (_rol_1371($2169,5)|0);
$2171 = $c;
$2172 = $d;
$2173 = $2171 ^ $2172;
$2174 = $e;
$2175 = $2173 ^ $2174;
$2176 = (($2170) + ($2175))|0;
$2177 = (($2176) + -899497514)|0;
$2178 = ((($x)) + 60|0);
$2179 = HEAP32[$2178>>2]|0;
$2180 = ((($x)) + 4|0);
$2181 = HEAP32[$2180>>2]|0;
$2182 = $2179 ^ $2181;
$2183 = ((($x)) + 28|0);
$2184 = HEAP32[$2183>>2]|0;
$2185 = $2182 ^ $2184;
$2186 = ((($x)) + 48|0);
$2187 = HEAP32[$2186>>2]|0;
$2188 = $2185 ^ $2187;
$tm = $2188;
$2189 = $tm;
$2190 = (_rol_1371($2189,1)|0);
$2191 = ((($x)) + 60|0);
HEAP32[$2191>>2] = $2190;
$2192 = (($2177) + ($2190))|0;
$2193 = $a;
$2194 = (($2193) + ($2192))|0;
$a = $2194;
$2195 = $c;
$2196 = (_rol_1371($2195,30)|0);
$c = $2196;
$2197 = $a;
$2198 = $hd;
$2199 = ((($2198)) + 160|0);
$2200 = HEAP32[$2199>>2]|0;
$2201 = (($2200) + ($2197))|0;
HEAP32[$2199>>2] = $2201;
$2202 = $b;
$2203 = $hd;
$2204 = ((($2203)) + 164|0);
$2205 = HEAP32[$2204>>2]|0;
$2206 = (($2205) + ($2202))|0;
HEAP32[$2204>>2] = $2206;
$2207 = $c;
$2208 = $hd;
$2209 = ((($2208)) + 168|0);
$2210 = HEAP32[$2209>>2]|0;
$2211 = (($2210) + ($2207))|0;
HEAP32[$2209>>2] = $2211;
$2212 = $d;
$2213 = $hd;
$2214 = ((($2213)) + 172|0);
$2215 = HEAP32[$2214>>2]|0;
$2216 = (($2215) + ($2212))|0;
HEAP32[$2214>>2] = $2216;
$2217 = $e;
$2218 = $hd;
$2219 = ((($2218)) + 176|0);
$2220 = HEAP32[$2219>>2]|0;
$2221 = (($2220) + ($2217))|0;
HEAP32[$2219>>2] = $2221;
STACKTOP = sp;return 104;
}
function _rol_1371($x,$n) {
$x = $x|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $n;
$2 = $0;
$3 = $1;
$4 = $3 & 31;
$5 = $2 << $4;
$6 = $0;
$7 = $1;
$8 = (32 - ($7))|0;
$9 = $8 & 31;
$10 = $6 >>> $9;
$11 = $5 | $10;
STACKTOP = sp;return ($11|0);
}
function _buf_get_be32($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = $4 << 24;
$6 = $in;
$7 = ((($6)) + 1|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = $9 << 16;
$11 = $5 | $10;
$12 = $in;
$13 = ((($12)) + 2|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = $15 << 8;
$17 = $11 | $16;
$18 = $in;
$19 = ((($18)) + 3|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $17 | $21;
STACKTOP = sp;return ($22|0);
}
function _sha1_final($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0;
var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0;
var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0;
var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $burn = 0, $hd = 0, $lsb = 0;
var $msb = 0, $p = 0, $t = 0, $th = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
__gcry_md_block_write($2,0,0);
$3 = $hd;
$4 = ((($3)) + 128|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$t = $7;
$11 = $hd;
$12 = ((($11)) + 128|0);
$13 = $12;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$th = $18;
$19 = $t;
$20 = $19 << 6;
$lsb = $20;
$21 = $th;
$22 = $21 << 6;
$23 = $t;
$24 = $23 >>> 26;
$25 = $22 | $24;
$msb = $25;
$26 = $lsb;
$t = $26;
$27 = $hd;
$28 = ((($27)) + 144|0);
$29 = HEAP32[$28>>2]|0;
$30 = $lsb;
$31 = (($30) + ($29))|0;
$lsb = $31;
$32 = $t;
$33 = ($31>>>0)<($32>>>0);
if ($33) {
$34 = $msb;
$35 = (($34) + 1)|0;
$msb = $35;
}
$36 = $lsb;
$t = $36;
$37 = $lsb;
$38 = $37 << 3;
$lsb = $38;
$39 = $msb;
$40 = $39 << 3;
$msb = $40;
$41 = $t;
$42 = $41 >>> 29;
$43 = $msb;
$44 = $43 | $42;
$msb = $44;
$45 = $hd;
$46 = ((($45)) + 144|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)<(56);
$49 = $hd;
$50 = ((($49)) + 144|0);
$51 = HEAP32[$50>>2]|0;
$52 = (($51) + 1)|0;
HEAP32[$50>>2] = $52;
$53 = $hd;
$54 = (($53) + ($51)|0);
HEAP8[$54>>0] = -128;
L4: do {
if ($48) {
while(1) {
$55 = $hd;
$56 = ((($55)) + 144|0);
$57 = HEAP32[$56>>2]|0;
$58 = ($57|0)<(56);
if (!($58)) {
break L4;
}
$59 = $hd;
$60 = ((($59)) + 144|0);
$61 = HEAP32[$60>>2]|0;
$62 = (($61) + 1)|0;
HEAP32[$60>>2] = $62;
$63 = $hd;
$64 = (($63) + ($61)|0);
HEAP8[$64>>0] = 0;
}
} else {
while(1) {
$65 = $hd;
$66 = ((($65)) + 144|0);
$67 = HEAP32[$66>>2]|0;
$68 = ($67|0)<(64);
$69 = $hd;
if (!($68)) {
break;
}
$70 = ((($69)) + 144|0);
$71 = HEAP32[$70>>2]|0;
$72 = (($71) + 1)|0;
HEAP32[$70>>2] = $72;
$73 = $hd;
$74 = (($73) + ($71)|0);
HEAP8[$74>>0] = 0;
}
__gcry_md_block_write($69,0,0);
$75 = $hd;
dest=$75; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
}
} while(0);
$76 = $hd;
$77 = ((($76)) + 56|0);
$78 = $msb;
_buf_put_be32($77,$78);
$79 = $hd;
$80 = ((($79)) + 60|0);
$81 = $lsb;
_buf_put_be32($80,$81);
$82 = $hd;
$83 = $hd;
$84 = (_transform_1369($82,$83,1)|0);
$burn = $84;
$85 = $burn;
___gcry_burn_stack($85);
___gcry_burn_stack_dummy();
$86 = $hd;
$p = $86;
$87 = $p;
$88 = $hd;
$89 = ((($88)) + 160|0);
$90 = HEAP32[$89>>2]|0;
_buf_put_be32($87,$90);
$91 = $p;
$92 = ((($91)) + 4|0);
$p = $92;
$93 = $p;
$94 = $hd;
$95 = ((($94)) + 164|0);
$96 = HEAP32[$95>>2]|0;
_buf_put_be32($93,$96);
$97 = $p;
$98 = ((($97)) + 4|0);
$p = $98;
$99 = $p;
$100 = $hd;
$101 = ((($100)) + 168|0);
$102 = HEAP32[$101>>2]|0;
_buf_put_be32($99,$102);
$103 = $p;
$104 = ((($103)) + 4|0);
$p = $104;
$105 = $p;
$106 = $hd;
$107 = ((($106)) + 172|0);
$108 = HEAP32[$107>>2]|0;
_buf_put_be32($105,$108);
$109 = $p;
$110 = ((($109)) + 4|0);
$p = $110;
$111 = $p;
$112 = $hd;
$113 = ((($112)) + 176|0);
$114 = HEAP32[$113>>2]|0;
_buf_put_be32($111,$114);
$115 = $p;
$116 = ((($115)) + 4|0);
$p = $116;
STACKTOP = sp;return;
}
function _buf_put_be32($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
HEAP8[$6>>0] = $5;
$7 = $1;
$8 = $7 >>> 16;
$9 = $8&255;
$10 = $out;
$11 = ((($10)) + 1|0);
HEAP8[$11>>0] = $9;
$12 = $1;
$13 = $12 >>> 8;
$14 = $13&255;
$15 = $out;
$16 = ((($15)) + 2|0);
HEAP8[$16>>0] = $14;
$17 = $1;
$18 = $17&255;
$19 = $out;
$20 = ((($19)) + 3|0);
HEAP8[$20>>0] = $18;
STACKTOP = sp;return;
}
function _sha1_read($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $2 = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
STACKTOP = sp;return ($2|0);
}
function _run_selftests_1372($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $cond = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
$cond = ($3|0)==(2);
if ($cond) {
$4 = $1;
$5 = $2;
$6 = (_selftests_sha1_1373($4,$5)|0);
$ec = $6;
} else {
$ec = 5;
}
$7 = $ec;
STACKTOP = sp;return ($7|0);
}
function _selftests_sha1_1373($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 42887;
$3 = (__gcry_hash_selftest_check_one(2,0,42900,3,42390,20)|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
do {
if (!($5)) {
$6 = $1;
$7 = ($6|0)!=(0);
if ($7) {
$what = 42953;
$8 = (__gcry_hash_selftest_check_one(2,0,42531,56,42411,20)|0);
$errtxt = $8;
$9 = $errtxt;
$10 = ($9|0)!=(0|0);
if ($10) {
break;
}
$what = 43127;
$11 = (__gcry_hash_selftest_check_one(2,1,0,0,42432,20)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
if ($13) {
break;
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
} while(0);
$14 = $2;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $2;
$17 = $what;
$18 = $errtxt;
FUNCTION_TABLE_viiii[$16 & 63](43192,2,$17,$18);
}
$0 = 50;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function __gcry_sha1_hash_buffer($outbuf,$buffer,$length) {
$outbuf = $outbuf|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $hd = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp;
$0 = $outbuf;
$1 = $buffer;
$2 = $length;
_sha1_init($hd,0);
$3 = $1;
$4 = $2;
__gcry_md_block_write($hd,$3,$4);
_sha1_final($hd);
$5 = $0;
dest=$5; src=$hd; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function __gcry_sha1_hash_buffers($outbuf,$iov,$iovcnt) {
$outbuf = $outbuf|0;
$iov = $iov|0;
$iovcnt = $iovcnt|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $hd = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp;
$0 = $outbuf;
$1 = $iov;
$2 = $iovcnt;
_sha1_init($hd,0);
while(1) {
$3 = $2;
$4 = ($3|0)>(0);
if (!($4)) {
break;
}
$5 = $1;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = $1;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($7) + ($10)|0);
$12 = $1;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
__gcry_md_block_write($hd,$11,$14);
$15 = $1;
$16 = ((($15)) + 16|0);
$1 = $16;
$17 = $2;
$18 = (($17) + -1)|0;
$2 = $18;
}
_sha1_final($hd);
$19 = $0;
dest=$19; src=$hd; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function _sha224_init($context,$flags) {
$context = $context|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $features = 0, $hd = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $flags;
$2 = $0;
$hd = $2;
$3 = (__gcry_get_hw_features()|0);
$features = $3;
$4 = $hd;
$5 = ((($4)) + 160|0);
HEAP32[$5>>2] = -1056596264;
$6 = $hd;
$7 = ((($6)) + 164|0);
HEAP32[$7>>2] = 914150663;
$8 = $hd;
$9 = ((($8)) + 168|0);
HEAP32[$9>>2] = 812702999;
$10 = $hd;
$11 = ((($10)) + 172|0);
HEAP32[$11>>2] = -150054599;
$12 = $hd;
$13 = ((($12)) + 176|0);
HEAP32[$13>>2] = -4191439;
$14 = $hd;
$15 = ((($14)) + 180|0);
HEAP32[$15>>2] = 1750603025;
$16 = $hd;
$17 = ((($16)) + 184|0);
HEAP32[$17>>2] = 1694076839;
$18 = $hd;
$19 = ((($18)) + 188|0);
HEAP32[$19>>2] = -1090891868;
$20 = $hd;
$21 = ((($20)) + 128|0);
$22 = $21;
$23 = $22;
HEAP32[$23>>2] = 0;
$24 = (($22) + 4)|0;
$25 = $24;
HEAP32[$25>>2] = 0;
$26 = $hd;
$27 = ((($26)) + 136|0);
$28 = $27;
$29 = $28;
HEAP32[$29>>2] = 0;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = 0;
$32 = $hd;
$33 = ((($32)) + 144|0);
HEAP32[$33>>2] = 0;
$34 = $hd;
$35 = ((($34)) + 148|0);
HEAP32[$35>>2] = 64;
$36 = $hd;
$37 = ((($36)) + 152|0);
HEAP32[$37>>2] = 75;
STACKTOP = sp;return;
}
function _transform_1391($ctx,$data,$nblks) {
$ctx = $ctx|0;
$data = $data|0;
$nblks = $nblks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $data;
$2 = $nblks;
$3 = $0;
$hd = $3;
while(1) {
$4 = $hd;
$5 = $1;
$6 = (_transform_blk_1392($4,$5)|0);
$burn = $6;
$7 = $1;
$8 = ((($7)) + 64|0);
$1 = $8;
$9 = $2;
$10 = (($9) + -1)|0;
$2 = $10;
$11 = ($10|0)!=(0);
if (!($11)) {
break;
}
}
$12 = $burn;
STACKTOP = sp;return ($12|0);
}
function _transform_blk_1392($ctx,$data) {
$ctx = $ctx|0;
$data = $data|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a = 0, $b = 0, $c = 0, $d = 0, $e = 0, $f = 0, $g = 0, $h = 0, $hd = 0, $i = 0, $t1 = 0, $t2 = 0, $w = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$w = sp + 8|0;
$0 = $ctx;
$1 = $data;
$2 = $0;
$hd = $2;
$3 = $hd;
$4 = ((($3)) + 160|0);
$5 = HEAP32[$4>>2]|0;
$a = $5;
$6 = $hd;
$7 = ((($6)) + 164|0);
$8 = HEAP32[$7>>2]|0;
$b = $8;
$9 = $hd;
$10 = ((($9)) + 168|0);
$11 = HEAP32[$10>>2]|0;
$c = $11;
$12 = $hd;
$13 = ((($12)) + 172|0);
$14 = HEAP32[$13>>2]|0;
$d = $14;
$15 = $hd;
$16 = ((($15)) + 176|0);
$17 = HEAP32[$16>>2]|0;
$e = $17;
$18 = $hd;
$19 = ((($18)) + 180|0);
$20 = HEAP32[$19>>2]|0;
$f = $20;
$21 = $hd;
$22 = ((($21)) + 184|0);
$23 = HEAP32[$22>>2]|0;
$g = $23;
$24 = $hd;
$25 = ((($24)) + 188|0);
$26 = HEAP32[$25>>2]|0;
$h = $26;
$i = 0;
while(1) {
$27 = $i;
$28 = ($27|0)<(16);
if (!($28)) {
break;
}
$29 = $1;
$30 = $i;
$31 = $30<<2;
$32 = (($29) + ($31)|0);
$33 = (_buf_get_be32_1393($32)|0);
$34 = $i;
$35 = (($w) + ($34<<2)|0);
HEAP32[$35>>2] = $33;
$36 = $i;
$37 = (($36) + 1)|0;
$i = $37;
}
while(1) {
$38 = $i;
$39 = ($38|0)<(64);
if (!($39)) {
break;
}
$40 = $i;
$41 = (($40) - 2)|0;
$42 = (($w) + ($41<<2)|0);
$43 = HEAP32[$42>>2]|0;
$44 = (_ror($43,17)|0);
$45 = $i;
$46 = (($45) - 2)|0;
$47 = (($w) + ($46<<2)|0);
$48 = HEAP32[$47>>2]|0;
$49 = (_ror($48,19)|0);
$50 = $44 ^ $49;
$51 = $i;
$52 = (($51) - 2)|0;
$53 = (($w) + ($52<<2)|0);
$54 = HEAP32[$53>>2]|0;
$55 = $54 >>> 10;
$56 = $50 ^ $55;
$57 = $i;
$58 = (($57) - 7)|0;
$59 = (($w) + ($58<<2)|0);
$60 = HEAP32[$59>>2]|0;
$61 = (($56) + ($60))|0;
$62 = $i;
$63 = (($62) - 15)|0;
$64 = (($w) + ($63<<2)|0);
$65 = HEAP32[$64>>2]|0;
$66 = (_ror($65,7)|0);
$67 = $i;
$68 = (($67) - 15)|0;
$69 = (($w) + ($68<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = (_ror($70,18)|0);
$72 = $66 ^ $71;
$73 = $i;
$74 = (($73) - 15)|0;
$75 = (($w) + ($74<<2)|0);
$76 = HEAP32[$75>>2]|0;
$77 = $76 >>> 3;
$78 = $72 ^ $77;
$79 = (($61) + ($78))|0;
$80 = $i;
$81 = (($80) - 16)|0;
$82 = (($w) + ($81<<2)|0);
$83 = HEAP32[$82>>2]|0;
$84 = (($79) + ($83))|0;
$85 = $i;
$86 = (($w) + ($85<<2)|0);
HEAP32[$86>>2] = $84;
$87 = $i;
$88 = (($87) + 1)|0;
$i = $88;
}
$i = 0;
while(1) {
$89 = $i;
$90 = ($89|0)<(64);
if (!($90)) {
break;
}
$91 = $h;
$92 = $e;
$93 = (_Sum1($92)|0);
$94 = (($91) + ($93))|0;
$95 = $e;
$96 = $f;
$97 = $g;
$98 = (_Cho($95,$96,$97)|0);
$99 = (($94) + ($98))|0;
$100 = $i;
$101 = (7864 + ($100<<2)|0);
$102 = HEAP32[$101>>2]|0;
$103 = (($99) + ($102))|0;
$104 = $i;
$105 = (($w) + ($104<<2)|0);
$106 = HEAP32[$105>>2]|0;
$107 = (($103) + ($106))|0;
$t1 = $107;
$108 = $a;
$109 = (_Sum0($108)|0);
$110 = $a;
$111 = $b;
$112 = $c;
$113 = (_Maj($110,$111,$112)|0);
$114 = (($109) + ($113))|0;
$t2 = $114;
$115 = $t1;
$116 = $d;
$117 = (($116) + ($115))|0;
$d = $117;
$118 = $t1;
$119 = $t2;
$120 = (($118) + ($119))|0;
$h = $120;
$121 = $g;
$122 = $d;
$123 = (_Sum1($122)|0);
$124 = (($121) + ($123))|0;
$125 = $d;
$126 = $e;
$127 = $f;
$128 = (_Cho($125,$126,$127)|0);
$129 = (($124) + ($128))|0;
$130 = $i;
$131 = (($130) + 1)|0;
$132 = (7864 + ($131<<2)|0);
$133 = HEAP32[$132>>2]|0;
$134 = (($129) + ($133))|0;
$135 = $i;
$136 = (($135) + 1)|0;
$137 = (($w) + ($136<<2)|0);
$138 = HEAP32[$137>>2]|0;
$139 = (($134) + ($138))|0;
$t1 = $139;
$140 = $h;
$141 = (_Sum0($140)|0);
$142 = $h;
$143 = $a;
$144 = $b;
$145 = (_Maj($142,$143,$144)|0);
$146 = (($141) + ($145))|0;
$t2 = $146;
$147 = $t1;
$148 = $c;
$149 = (($148) + ($147))|0;
$c = $149;
$150 = $t1;
$151 = $t2;
$152 = (($150) + ($151))|0;
$g = $152;
$153 = $f;
$154 = $c;
$155 = (_Sum1($154)|0);
$156 = (($153) + ($155))|0;
$157 = $c;
$158 = $d;
$159 = $e;
$160 = (_Cho($157,$158,$159)|0);
$161 = (($156) + ($160))|0;
$162 = $i;
$163 = (($162) + 2)|0;
$164 = (7864 + ($163<<2)|0);
$165 = HEAP32[$164>>2]|0;
$166 = (($161) + ($165))|0;
$167 = $i;
$168 = (($167) + 2)|0;
$169 = (($w) + ($168<<2)|0);
$170 = HEAP32[$169>>2]|0;
$171 = (($166) + ($170))|0;
$t1 = $171;
$172 = $g;
$173 = (_Sum0($172)|0);
$174 = $g;
$175 = $h;
$176 = $a;
$177 = (_Maj($174,$175,$176)|0);
$178 = (($173) + ($177))|0;
$t2 = $178;
$179 = $t1;
$180 = $b;
$181 = (($180) + ($179))|0;
$b = $181;
$182 = $t1;
$183 = $t2;
$184 = (($182) + ($183))|0;
$f = $184;
$185 = $e;
$186 = $b;
$187 = (_Sum1($186)|0);
$188 = (($185) + ($187))|0;
$189 = $b;
$190 = $c;
$191 = $d;
$192 = (_Cho($189,$190,$191)|0);
$193 = (($188) + ($192))|0;
$194 = $i;
$195 = (($194) + 3)|0;
$196 = (7864 + ($195<<2)|0);
$197 = HEAP32[$196>>2]|0;
$198 = (($193) + ($197))|0;
$199 = $i;
$200 = (($199) + 3)|0;
$201 = (($w) + ($200<<2)|0);
$202 = HEAP32[$201>>2]|0;
$203 = (($198) + ($202))|0;
$t1 = $203;
$204 = $f;
$205 = (_Sum0($204)|0);
$206 = $f;
$207 = $g;
$208 = $h;
$209 = (_Maj($206,$207,$208)|0);
$210 = (($205) + ($209))|0;
$t2 = $210;
$211 = $t1;
$212 = $a;
$213 = (($212) + ($211))|0;
$a = $213;
$214 = $t1;
$215 = $t2;
$216 = (($214) + ($215))|0;
$e = $216;
$217 = $d;
$218 = $a;
$219 = (_Sum1($218)|0);
$220 = (($217) + ($219))|0;
$221 = $a;
$222 = $b;
$223 = $c;
$224 = (_Cho($221,$222,$223)|0);
$225 = (($220) + ($224))|0;
$226 = $i;
$227 = (($226) + 4)|0;
$228 = (7864 + ($227<<2)|0);
$229 = HEAP32[$228>>2]|0;
$230 = (($225) + ($229))|0;
$231 = $i;
$232 = (($231) + 4)|0;
$233 = (($w) + ($232<<2)|0);
$234 = HEAP32[$233>>2]|0;
$235 = (($230) + ($234))|0;
$t1 = $235;
$236 = $e;
$237 = (_Sum0($236)|0);
$238 = $e;
$239 = $f;
$240 = $g;
$241 = (_Maj($238,$239,$240)|0);
$242 = (($237) + ($241))|0;
$t2 = $242;
$243 = $t1;
$244 = $h;
$245 = (($244) + ($243))|0;
$h = $245;
$246 = $t1;
$247 = $t2;
$248 = (($246) + ($247))|0;
$d = $248;
$249 = $c;
$250 = $h;
$251 = (_Sum1($250)|0);
$252 = (($249) + ($251))|0;
$253 = $h;
$254 = $a;
$255 = $b;
$256 = (_Cho($253,$254,$255)|0);
$257 = (($252) + ($256))|0;
$258 = $i;
$259 = (($258) + 5)|0;
$260 = (7864 + ($259<<2)|0);
$261 = HEAP32[$260>>2]|0;
$262 = (($257) + ($261))|0;
$263 = $i;
$264 = (($263) + 5)|0;
$265 = (($w) + ($264<<2)|0);
$266 = HEAP32[$265>>2]|0;
$267 = (($262) + ($266))|0;
$t1 = $267;
$268 = $d;
$269 = (_Sum0($268)|0);
$270 = $d;
$271 = $e;
$272 = $f;
$273 = (_Maj($270,$271,$272)|0);
$274 = (($269) + ($273))|0;
$t2 = $274;
$275 = $t1;
$276 = $g;
$277 = (($276) + ($275))|0;
$g = $277;
$278 = $t1;
$279 = $t2;
$280 = (($278) + ($279))|0;
$c = $280;
$281 = $b;
$282 = $g;
$283 = (_Sum1($282)|0);
$284 = (($281) + ($283))|0;
$285 = $g;
$286 = $h;
$287 = $a;
$288 = (_Cho($285,$286,$287)|0);
$289 = (($284) + ($288))|0;
$290 = $i;
$291 = (($290) + 6)|0;
$292 = (7864 + ($291<<2)|0);
$293 = HEAP32[$292>>2]|0;
$294 = (($289) + ($293))|0;
$295 = $i;
$296 = (($295) + 6)|0;
$297 = (($w) + ($296<<2)|0);
$298 = HEAP32[$297>>2]|0;
$299 = (($294) + ($298))|0;
$t1 = $299;
$300 = $c;
$301 = (_Sum0($300)|0);
$302 = $c;
$303 = $d;
$304 = $e;
$305 = (_Maj($302,$303,$304)|0);
$306 = (($301) + ($305))|0;
$t2 = $306;
$307 = $t1;
$308 = $f;
$309 = (($308) + ($307))|0;
$f = $309;
$310 = $t1;
$311 = $t2;
$312 = (($310) + ($311))|0;
$b = $312;
$313 = $a;
$314 = $f;
$315 = (_Sum1($314)|0);
$316 = (($313) + ($315))|0;
$317 = $f;
$318 = $g;
$319 = $h;
$320 = (_Cho($317,$318,$319)|0);
$321 = (($316) + ($320))|0;
$322 = $i;
$323 = (($322) + 7)|0;
$324 = (7864 + ($323<<2)|0);
$325 = HEAP32[$324>>2]|0;
$326 = (($321) + ($325))|0;
$327 = $i;
$328 = (($327) + 7)|0;
$329 = (($w) + ($328<<2)|0);
$330 = HEAP32[$329>>2]|0;
$331 = (($326) + ($330))|0;
$t1 = $331;
$332 = $b;
$333 = (_Sum0($332)|0);
$334 = $b;
$335 = $c;
$336 = $d;
$337 = (_Maj($334,$335,$336)|0);
$338 = (($333) + ($337))|0;
$t2 = $338;
$339 = $t1;
$340 = $e;
$341 = (($340) + ($339))|0;
$e = $341;
$342 = $t1;
$343 = $t2;
$344 = (($342) + ($343))|0;
$a = $344;
$345 = $i;
$346 = (($345) + 8)|0;
$i = $346;
}
$347 = $a;
$348 = $hd;
$349 = ((($348)) + 160|0);
$350 = HEAP32[$349>>2]|0;
$351 = (($350) + ($347))|0;
HEAP32[$349>>2] = $351;
$352 = $b;
$353 = $hd;
$354 = ((($353)) + 164|0);
$355 = HEAP32[$354>>2]|0;
$356 = (($355) + ($352))|0;
HEAP32[$354>>2] = $356;
$357 = $c;
$358 = $hd;
$359 = ((($358)) + 168|0);
$360 = HEAP32[$359>>2]|0;
$361 = (($360) + ($357))|0;
HEAP32[$359>>2] = $361;
$362 = $d;
$363 = $hd;
$364 = ((($363)) + 172|0);
$365 = HEAP32[$364>>2]|0;
$366 = (($365) + ($362))|0;
HEAP32[$364>>2] = $366;
$367 = $e;
$368 = $hd;
$369 = ((($368)) + 176|0);
$370 = HEAP32[$369>>2]|0;
$371 = (($370) + ($367))|0;
HEAP32[$369>>2] = $371;
$372 = $f;
$373 = $hd;
$374 = ((($373)) + 180|0);
$375 = HEAP32[$374>>2]|0;
$376 = (($375) + ($372))|0;
HEAP32[$374>>2] = $376;
$377 = $g;
$378 = $hd;
$379 = ((($378)) + 184|0);
$380 = HEAP32[$379>>2]|0;
$381 = (($380) + ($377))|0;
HEAP32[$379>>2] = $381;
$382 = $h;
$383 = $hd;
$384 = ((($383)) + 188|0);
$385 = HEAP32[$384>>2]|0;
$386 = (($385) + ($382))|0;
HEAP32[$384>>2] = $386;
STACKTOP = sp;return 328;
}
function _buf_get_be32_1393($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = $4 << 24;
$6 = $in;
$7 = ((($6)) + 1|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = $9 << 16;
$11 = $5 | $10;
$12 = $in;
$13 = ((($12)) + 2|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = $15 << 8;
$17 = $11 | $16;
$18 = $in;
$19 = ((($18)) + 3|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $17 | $21;
STACKTOP = sp;return ($22|0);
}
function _ror($x,$n) {
$x = $x|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $n;
$2 = $0;
$3 = $1;
$4 = $3 & 31;
$5 = $2 >>> $4;
$6 = $0;
$7 = $1;
$8 = (32 - ($7))|0;
$9 = $8 & 31;
$10 = $6 << $9;
$11 = $5 | $10;
STACKTOP = sp;return ($11|0);
}
function _Sum1($x) {
$x = $x|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $0;
$2 = (_ror($1,6)|0);
$3 = $0;
$4 = (_ror($3,11)|0);
$5 = $2 ^ $4;
$6 = $0;
$7 = (_ror($6,25)|0);
$8 = $5 ^ $7;
STACKTOP = sp;return ($8|0);
}
function _Cho($x,$y,$z) {
$x = $x|0;
$y = $y|0;
$z = $z|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $y;
$2 = $z;
$3 = $2;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $5 ^ $6;
$8 = $4 & $7;
$9 = $3 ^ $8;
STACKTOP = sp;return ($9|0);
}
function _Sum0($x) {
$x = $x|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $0;
$2 = (_ror($1,2)|0);
$3 = $0;
$4 = (_ror($3,13)|0);
$5 = $2 ^ $4;
$6 = $0;
$7 = (_ror($6,22)|0);
$8 = $5 ^ $7;
STACKTOP = sp;return ($8|0);
}
function _Maj($x,$y,$z) {
$x = $x|0;
$y = $y|0;
$z = $z|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $y;
$2 = $z;
$3 = $0;
$4 = $1;
$5 = $3 & $4;
$6 = $2;
$7 = $0;
$8 = $1;
$9 = $7 | $8;
$10 = $6 & $9;
$11 = $5 | $10;
STACKTOP = sp;return ($11|0);
}
function _sha256_final($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $burn = 0, $hd = 0, $lsb = 0, $msb = 0, $p = 0;
var $t = 0, $th = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
__gcry_md_block_write($2,0,0);
$3 = $hd;
$4 = ((($3)) + 128|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$t = $7;
$11 = $hd;
$12 = ((($11)) + 128|0);
$13 = $12;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (($13) + 4)|0;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$th = $18;
$19 = $t;
$20 = $19 << 6;
$lsb = $20;
$21 = $th;
$22 = $21 << 6;
$23 = $t;
$24 = $23 >>> 26;
$25 = $22 | $24;
$msb = $25;
$26 = $lsb;
$t = $26;
$27 = $hd;
$28 = ((($27)) + 144|0);
$29 = HEAP32[$28>>2]|0;
$30 = $lsb;
$31 = (($30) + ($29))|0;
$lsb = $31;
$32 = $t;
$33 = ($31>>>0)<($32>>>0);
if ($33) {
$34 = $msb;
$35 = (($34) + 1)|0;
$msb = $35;
}
$36 = $lsb;
$t = $36;
$37 = $lsb;
$38 = $37 << 3;
$lsb = $38;
$39 = $msb;
$40 = $39 << 3;
$msb = $40;
$41 = $t;
$42 = $41 >>> 29;
$43 = $msb;
$44 = $43 | $42;
$msb = $44;
$45 = $hd;
$46 = ((($45)) + 144|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)<(56);
$49 = $hd;
$50 = ((($49)) + 144|0);
$51 = HEAP32[$50>>2]|0;
$52 = (($51) + 1)|0;
HEAP32[$50>>2] = $52;
$53 = $hd;
$54 = (($53) + ($51)|0);
HEAP8[$54>>0] = -128;
L4: do {
if ($48) {
while(1) {
$55 = $hd;
$56 = ((($55)) + 144|0);
$57 = HEAP32[$56>>2]|0;
$58 = ($57|0)<(56);
if (!($58)) {
break L4;
}
$59 = $hd;
$60 = ((($59)) + 144|0);
$61 = HEAP32[$60>>2]|0;
$62 = (($61) + 1)|0;
HEAP32[$60>>2] = $62;
$63 = $hd;
$64 = (($63) + ($61)|0);
HEAP8[$64>>0] = 0;
}
} else {
while(1) {
$65 = $hd;
$66 = ((($65)) + 144|0);
$67 = HEAP32[$66>>2]|0;
$68 = ($67|0)<(64);
$69 = $hd;
if (!($68)) {
break;
}
$70 = ((($69)) + 144|0);
$71 = HEAP32[$70>>2]|0;
$72 = (($71) + 1)|0;
HEAP32[$70>>2] = $72;
$73 = $hd;
$74 = (($73) + ($71)|0);
HEAP8[$74>>0] = 0;
}
__gcry_md_block_write($69,0,0);
$75 = $hd;
dest=$75; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
}
} while(0);
$76 = $hd;
$77 = ((($76)) + 56|0);
$78 = $msb;
_buf_put_be32_1394($77,$78);
$79 = $hd;
$80 = ((($79)) + 60|0);
$81 = $lsb;
_buf_put_be32_1394($80,$81);
$82 = $hd;
$83 = $hd;
$84 = (_transform_1391($82,$83,1)|0);
$burn = $84;
$85 = $burn;
___gcry_burn_stack($85);
___gcry_burn_stack_dummy();
$86 = $hd;
$p = $86;
$87 = $p;
$88 = $hd;
$89 = ((($88)) + 160|0);
$90 = HEAP32[$89>>2]|0;
_buf_put_be32_1394($87,$90);
$91 = $p;
$92 = ((($91)) + 4|0);
$p = $92;
$93 = $p;
$94 = $hd;
$95 = ((($94)) + 164|0);
$96 = HEAP32[$95>>2]|0;
_buf_put_be32_1394($93,$96);
$97 = $p;
$98 = ((($97)) + 4|0);
$p = $98;
$99 = $p;
$100 = $hd;
$101 = ((($100)) + 168|0);
$102 = HEAP32[$101>>2]|0;
_buf_put_be32_1394($99,$102);
$103 = $p;
$104 = ((($103)) + 4|0);
$p = $104;
$105 = $p;
$106 = $hd;
$107 = ((($106)) + 172|0);
$108 = HEAP32[$107>>2]|0;
_buf_put_be32_1394($105,$108);
$109 = $p;
$110 = ((($109)) + 4|0);
$p = $110;
$111 = $p;
$112 = $hd;
$113 = ((($112)) + 176|0);
$114 = HEAP32[$113>>2]|0;
_buf_put_be32_1394($111,$114);
$115 = $p;
$116 = ((($115)) + 4|0);
$p = $116;
$117 = $p;
$118 = $hd;
$119 = ((($118)) + 180|0);
$120 = HEAP32[$119>>2]|0;
_buf_put_be32_1394($117,$120);
$121 = $p;
$122 = ((($121)) + 4|0);
$p = $122;
$123 = $p;
$124 = $hd;
$125 = ((($124)) + 184|0);
$126 = HEAP32[$125>>2]|0;
_buf_put_be32_1394($123,$126);
$127 = $p;
$128 = ((($127)) + 4|0);
$p = $128;
$129 = $p;
$130 = $hd;
$131 = ((($130)) + 188|0);
$132 = HEAP32[$131>>2]|0;
_buf_put_be32_1394($129,$132);
$133 = $p;
$134 = ((($133)) + 4|0);
$p = $134;
STACKTOP = sp;return;
}
function _buf_put_be32_1394($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
HEAP8[$6>>0] = $5;
$7 = $1;
$8 = $7 >>> 16;
$9 = $8&255;
$10 = $out;
$11 = ((($10)) + 1|0);
HEAP8[$11>>0] = $9;
$12 = $1;
$13 = $12 >>> 8;
$14 = $13&255;
$15 = $out;
$16 = ((($15)) + 2|0);
HEAP8[$16>>0] = $14;
$17 = $1;
$18 = $17&255;
$19 = $out;
$20 = ((($19)) + 3|0);
HEAP8[$20>>0] = $18;
STACKTOP = sp;return;
}
function _sha256_read($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $2 = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
STACKTOP = sp;return ($2|0);
}
function _run_selftests_1395($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
switch ($3|0) {
case 11: {
$4 = $1;
$5 = $2;
$6 = (_selftests_sha224_1396($4,$5)|0);
$ec = $6;
break;
}
case 8: {
$7 = $1;
$8 = $2;
$9 = (_selftests_sha256_1406($7,$8)|0);
$ec = $9;
break;
}
default: {
$ec = 5;
}
}
$10 = $ec;
STACKTOP = sp;return ($10|0);
}
function _selftests_sha224_1396($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 42887;
$3 = (__gcry_hash_selftest_check_one(11,0,42900,3,42502,28)|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
do {
if (!($5)) {
$6 = $1;
$7 = ($6|0)!=(0);
if ($7) {
$what = 42953;
$8 = (__gcry_hash_selftest_check_one(11,0,42531,56,42588,28)|0);
$errtxt = $8;
$9 = $errtxt;
$10 = ($9|0)!=(0|0);
if ($10) {
break;
}
$what = 43127;
$11 = (__gcry_hash_selftest_check_one(11,1,0,0,42617,28)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
if ($13) {
break;
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
} while(0);
$14 = $2;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $2;
$17 = $what;
$18 = $errtxt;
FUNCTION_TABLE_viiii[$16 & 63](43192,11,$17,$18);
}
$0 = 50;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _selftests_sha256_1406($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 42887;
$3 = (__gcry_hash_selftest_check_one(8,0,42900,3,42646,32)|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
do {
if (!($5)) {
$6 = $1;
$7 = ($6|0)!=(0);
if ($7) {
$what = 42953;
$8 = (__gcry_hash_selftest_check_one(8,0,42531,56,42679,32)|0);
$errtxt = $8;
$9 = $errtxt;
$10 = ($9|0)!=(0|0);
if ($10) {
break;
}
$what = 43127;
$11 = (__gcry_hash_selftest_check_one(8,1,0,0,42712,32)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
if ($13) {
break;
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
} while(0);
$14 = $2;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $2;
$17 = $what;
$18 = $errtxt;
FUNCTION_TABLE_viiii[$16 & 63](43192,8,$17,$18);
}
$0 = 50;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _sha256_init($context,$flags) {
$context = $context|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $features = 0, $hd = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $flags;
$2 = $0;
$hd = $2;
$3 = (__gcry_get_hw_features()|0);
$features = $3;
$4 = $hd;
$5 = ((($4)) + 160|0);
HEAP32[$5>>2] = 1779033703;
$6 = $hd;
$7 = ((($6)) + 164|0);
HEAP32[$7>>2] = -1150833019;
$8 = $hd;
$9 = ((($8)) + 168|0);
HEAP32[$9>>2] = 1013904242;
$10 = $hd;
$11 = ((($10)) + 172|0);
HEAP32[$11>>2] = -1521486534;
$12 = $hd;
$13 = ((($12)) + 176|0);
HEAP32[$13>>2] = 1359893119;
$14 = $hd;
$15 = ((($14)) + 180|0);
HEAP32[$15>>2] = -1694144372;
$16 = $hd;
$17 = ((($16)) + 184|0);
HEAP32[$17>>2] = 528734635;
$18 = $hd;
$19 = ((($18)) + 188|0);
HEAP32[$19>>2] = 1541459225;
$20 = $hd;
$21 = ((($20)) + 128|0);
$22 = $21;
$23 = $22;
HEAP32[$23>>2] = 0;
$24 = (($22) + 4)|0;
$25 = $24;
HEAP32[$25>>2] = 0;
$26 = $hd;
$27 = ((($26)) + 136|0);
$28 = $27;
$29 = $28;
HEAP32[$29>>2] = 0;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = 0;
$32 = $hd;
$33 = ((($32)) + 144|0);
HEAP32[$33>>2] = 0;
$34 = $hd;
$35 = ((($34)) + 148|0);
HEAP32[$35>>2] = 64;
$36 = $hd;
$37 = ((($36)) + 152|0);
HEAP32[$37>>2] = 75;
STACKTOP = sp;return;
}
function _sha512_init($context,$flags) {
$context = $context|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0, $9 = 0, $ctx = 0, $features = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $flags;
$2 = $0;
$ctx = $2;
$3 = $ctx;
$4 = ((($3)) + 160|0);
$hd = $4;
$5 = (__gcry_get_hw_features()|0);
$features = $5;
$6 = $hd;
$7 = $6;
$8 = $7;
HEAP32[$8>>2] = -205731576;
$9 = (($7) + 4)|0;
$10 = $9;
HEAP32[$10>>2] = 1779033703;
$11 = $hd;
$12 = ((($11)) + 8|0);
$13 = $12;
$14 = $13;
HEAP32[$14>>2] = -2067093701;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = -1150833019;
$17 = $hd;
$18 = ((($17)) + 16|0);
$19 = $18;
$20 = $19;
HEAP32[$20>>2] = -23791573;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = 1013904242;
$23 = $hd;
$24 = ((($23)) + 24|0);
$25 = $24;
$26 = $25;
HEAP32[$26>>2] = 1595750129;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP32[$28>>2] = -1521486534;
$29 = $hd;
$30 = ((($29)) + 32|0);
$31 = $30;
$32 = $31;
HEAP32[$32>>2] = -1377402159;
$33 = (($31) + 4)|0;
$34 = $33;
HEAP32[$34>>2] = 1359893119;
$35 = $hd;
$36 = ((($35)) + 40|0);
$37 = $36;
$38 = $37;
HEAP32[$38>>2] = 725511199;
$39 = (($37) + 4)|0;
$40 = $39;
HEAP32[$40>>2] = -1694144372;
$41 = $hd;
$42 = ((($41)) + 48|0);
$43 = $42;
$44 = $43;
HEAP32[$44>>2] = -79577749;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP32[$46>>2] = 528734635;
$47 = $hd;
$48 = ((($47)) + 56|0);
$49 = $48;
$50 = $49;
HEAP32[$50>>2] = 327033209;
$51 = (($49) + 4)|0;
$52 = $51;
HEAP32[$52>>2] = 1541459225;
$53 = $ctx;
$54 = ((($53)) + 128|0);
$55 = $54;
$56 = $55;
HEAP32[$56>>2] = 0;
$57 = (($55) + 4)|0;
$58 = $57;
HEAP32[$58>>2] = 0;
$59 = $ctx;
$60 = ((($59)) + 136|0);
$61 = $60;
$62 = $61;
HEAP32[$62>>2] = 0;
$63 = (($61) + 4)|0;
$64 = $63;
HEAP32[$64>>2] = 0;
$65 = $ctx;
$66 = ((($65)) + 144|0);
HEAP32[$66>>2] = 0;
$67 = $ctx;
$68 = ((($67)) + 148|0);
HEAP32[$68>>2] = 128;
$69 = $ctx;
$70 = ((($69)) + 152|0);
HEAP32[$70>>2] = 76;
STACKTOP = sp;return;
}
function _transform_1420($context,$data,$nblks) {
$context = $context|0;
$data = $data|0;
$nblks = $nblks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn = 0, $ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $data;
$2 = $nblks;
$3 = $0;
$ctx = $3;
while(1) {
$4 = $ctx;
$5 = ((($4)) + 160|0);
$6 = $1;
$7 = (_transform_blk_1421($5,$6)|0);
$8 = (($7) + 12)|0;
$burn = $8;
$9 = $1;
$10 = ((($9)) + 128|0);
$1 = $10;
$11 = $2;
$12 = (($11) + -1)|0;
$2 = $12;
$13 = ($12|0)!=(0);
if (!($13)) {
break;
}
}
$14 = $burn;
STACKTOP = sp;return ($14|0);
}
function _transform_blk_1421($hd,$data) {
$hd = $hd|0;
$data = $data|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0;
var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0;
var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0;
var $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0;
var $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0;
var $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0;
var $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0;
var $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0;
var $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0;
var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0;
var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0;
var $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0;
var $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0;
var $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0;
var $1718 = 0, $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, $1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0;
var $1736 = 0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0;
var $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0;
var $1772 = 0, $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0;
var $1790 = 0, $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0;
var $1808 = 0, $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0;
var $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, $1839 = 0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0;
var $1844 = 0, $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0;
var $1862 = 0, $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0;
var $1880 = 0, $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, $1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0;
var $1899 = 0, $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, $1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, $1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0;
var $1916 = 0, $1917 = 0, $1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0;
var $1934 = 0, $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0;
var $1952 = 0, $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0;
var $1970 = 0, $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0;
var $1989 = 0, $199 = 0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0;
var $2005 = 0, $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, $2019 = 0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0;
var $2023 = 0, $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0;
var $2041 = 0, $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0;
var $206 = 0, $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, $2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0;
var $2078 = 0, $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0;
var $2096 = 0, $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0;
var $2113 = 0, $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0;
var $2131 = 0, $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0;
var $215 = 0, $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0;
var $2168 = 0, $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0;
var $2186 = 0, $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0;
var $2203 = 0, $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0;
var $2221 = 0, $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $2226 = 0, $2227 = 0, $2228 = 0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0;
var $224 = 0, $2240 = 0, $2241 = 0, $2242 = 0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2253 = 0, $2254 = 0, $2255 = 0, $2256 = 0, $2257 = 0;
var $2258 = 0, $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2262 = 0, $2263 = 0, $2264 = 0, $2265 = 0, $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, $227 = 0, $2270 = 0, $2271 = 0, $2272 = 0, $2273 = 0, $2274 = 0, $2275 = 0;
var $2276 = 0, $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2281 = 0, $2282 = 0, $2283 = 0, $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, $2288 = 0, $2289 = 0, $229 = 0, $2290 = 0, $2291 = 0, $2292 = 0, $2293 = 0;
var $2294 = 0, $2295 = 0, $2296 = 0, $2297 = 0, $2298 = 0, $2299 = 0, $23 = 0, $230 = 0, $2300 = 0, $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, $2305 = 0, $2306 = 0, $2307 = 0, $2308 = 0, $2309 = 0, $231 = 0, $2310 = 0;
var $2311 = 0, $2312 = 0, $2313 = 0, $2314 = 0, $2315 = 0, $2316 = 0, $2317 = 0, $2318 = 0, $2319 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, $2323 = 0, $2324 = 0, $2325 = 0, $2326 = 0, $2327 = 0, $2328 = 0, $2329 = 0;
var $233 = 0, $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0, $2334 = 0, $2335 = 0, $2336 = 0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, $2341 = 0, $2342 = 0, $2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0, $2347 = 0;
var $2348 = 0, $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0, $2360 = 0, $2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0;
var $2366 = 0, $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, $238 = 0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0;
var $2384 = 0, $2385 = 0, $2386 = 0, $2387 = 0, $2388 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0, $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $24 = 0, $240 = 0, $2400 = 0;
var $2401 = 0, $2402 = 0, $2403 = 0, $2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2408 = 0, $2409 = 0, $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 0, $2416 = 0, $2417 = 0, $2418 = 0, $2419 = 0;
var $242 = 0, $2420 = 0, $2421 = 0, $2422 = 0, $2423 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, $2431 = 0, $2432 = 0, $2433 = 0, $2434 = 0, $2435 = 0, $2436 = 0, $2437 = 0;
var $2438 = 0, $2439 = 0, $244 = 0, $2440 = 0, $2441 = 0, $2442 = 0, $2443 = 0, $2444 = 0, $2445 = 0, $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2450 = 0, $2451 = 0, $2452 = 0, $2453 = 0, $2454 = 0, $2455 = 0;
var $2456 = 0, $2457 = 0, $2458 = 0, $2459 = 0, $246 = 0, $2460 = 0, $2461 = 0, $2462 = 0, $2463 = 0, $2464 = 0, $2465 = 0, $2466 = 0, $2467 = 0, $2468 = 0, $2469 = 0, $247 = 0, $2470 = 0, $2471 = 0, $2472 = 0, $2473 = 0;
var $2474 = 0, $2475 = 0, $2476 = 0, $2477 = 0, $2478 = 0, $2479 = 0, $248 = 0, $2480 = 0, $2481 = 0, $2482 = 0, $2483 = 0, $2484 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2489 = 0, $249 = 0, $2490 = 0, $2491 = 0;
var $2492 = 0, $2493 = 0, $2494 = 0, $2495 = 0, $2496 = 0, $2497 = 0, $2498 = 0, $2499 = 0, $25 = 0, $250 = 0, $2500 = 0, $2501 = 0, $2502 = 0, $2503 = 0, $2504 = 0, $2505 = 0, $2506 = 0, $2507 = 0, $2508 = 0, $2509 = 0;
var $251 = 0, $2510 = 0, $2511 = 0, $2512 = 0, $2513 = 0, $2514 = 0, $2515 = 0, $2516 = 0, $2517 = 0, $2518 = 0, $2519 = 0, $252 = 0, $2520 = 0, $2521 = 0, $2522 = 0, $2523 = 0, $2524 = 0, $2525 = 0, $2526 = 0, $2527 = 0;
var $2528 = 0, $2529 = 0, $253 = 0, $2530 = 0, $2531 = 0, $2532 = 0, $2533 = 0, $2534 = 0, $2535 = 0, $2536 = 0, $2537 = 0, $2538 = 0, $2539 = 0, $254 = 0, $2540 = 0, $2541 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0;
var $2546 = 0, $2547 = 0, $2548 = 0, $2549 = 0, $255 = 0, $2550 = 0, $2551 = 0, $2552 = 0, $2553 = 0, $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0, $2558 = 0, $2559 = 0, $256 = 0, $2560 = 0, $2561 = 0, $2562 = 0, $2563 = 0;
var $2564 = 0, $2565 = 0, $2566 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $257 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $2574 = 0, $2575 = 0, $2576 = 0, $2577 = 0, $2578 = 0, $2579 = 0, $258 = 0, $2580 = 0, $2581 = 0;
var $2582 = 0, $2583 = 0, $2584 = 0, $2585 = 0, $2586 = 0, $2587 = 0, $2588 = 0, $2589 = 0, $259 = 0, $2590 = 0, $2591 = 0, $2592 = 0, $2593 = 0, $2594 = 0, $2595 = 0, $2596 = 0, $2597 = 0, $2598 = 0, $2599 = 0, $26 = 0;
var $260 = 0, $2600 = 0, $2601 = 0, $2602 = 0, $2603 = 0, $2604 = 0, $2605 = 0, $2606 = 0, $2607 = 0, $2608 = 0, $2609 = 0, $261 = 0, $2610 = 0, $2611 = 0, $2612 = 0, $2613 = 0, $2614 = 0, $2615 = 0, $2616 = 0, $2617 = 0;
var $2618 = 0, $2619 = 0, $262 = 0, $2620 = 0, $2621 = 0, $2622 = 0, $2623 = 0, $2624 = 0, $2625 = 0, $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, $263 = 0, $2630 = 0, $2631 = 0, $2632 = 0, $2633 = 0, $2634 = 0, $2635 = 0;
var $2636 = 0, $2637 = 0, $2638 = 0, $2639 = 0, $264 = 0, $2640 = 0, $2641 = 0, $2642 = 0, $2643 = 0, $2644 = 0, $2645 = 0, $2646 = 0, $2647 = 0, $2648 = 0, $2649 = 0, $265 = 0, $2650 = 0, $2651 = 0, $2652 = 0, $2653 = 0;
var $2654 = 0, $2655 = 0, $2656 = 0, $2657 = 0, $2658 = 0, $2659 = 0, $266 = 0, $2660 = 0, $2661 = 0, $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, $2666 = 0, $2667 = 0, $2668 = 0, $2669 = 0, $267 = 0, $2670 = 0, $2671 = 0;
var $2672 = 0, $2673 = 0, $2674 = 0, $2675 = 0, $2676 = 0, $2677 = 0, $2678 = 0, $2679 = 0, $268 = 0, $2680 = 0, $2681 = 0, $2682 = 0, $2683 = 0, $2684 = 0, $2685 = 0, $2686 = 0, $2687 = 0, $2688 = 0, $2689 = 0, $269 = 0;
var $2690 = 0, $2691 = 0, $2692 = 0, $2693 = 0, $2694 = 0, $2695 = 0, $2696 = 0, $2697 = 0, $2698 = 0, $2699 = 0, $27 = 0, $270 = 0, $2700 = 0, $2701 = 0, $2702 = 0, $2703 = 0, $2704 = 0, $2705 = 0, $2706 = 0, $2707 = 0;
var $2708 = 0, $2709 = 0, $271 = 0, $2710 = 0, $2711 = 0, $2712 = 0, $2713 = 0, $2714 = 0, $2715 = 0, $2716 = 0, $2717 = 0, $2718 = 0, $2719 = 0, $272 = 0, $2720 = 0, $2721 = 0, $2722 = 0, $2723 = 0, $2724 = 0, $2725 = 0;
var $2726 = 0, $2727 = 0, $2728 = 0, $2729 = 0, $273 = 0, $2730 = 0, $2731 = 0, $2732 = 0, $2733 = 0, $2734 = 0, $2735 = 0, $2736 = 0, $2737 = 0, $2738 = 0, $2739 = 0, $274 = 0, $2740 = 0, $2741 = 0, $2742 = 0, $2743 = 0;
var $2744 = 0, $2745 = 0, $2746 = 0, $2747 = 0, $2748 = 0, $2749 = 0, $275 = 0, $2750 = 0, $2751 = 0, $2752 = 0, $2753 = 0, $2754 = 0, $2755 = 0, $2756 = 0, $2757 = 0, $2758 = 0, $2759 = 0, $276 = 0, $2760 = 0, $2761 = 0;
var $2762 = 0, $2763 = 0, $2764 = 0, $2765 = 0, $2766 = 0, $2767 = 0, $2768 = 0, $2769 = 0, $277 = 0, $2770 = 0, $2771 = 0, $2772 = 0, $2773 = 0, $2774 = 0, $2775 = 0, $2776 = 0, $2777 = 0, $2778 = 0, $2779 = 0, $278 = 0;
var $2780 = 0, $2781 = 0, $2782 = 0, $2783 = 0, $2784 = 0, $2785 = 0, $2786 = 0, $2787 = 0, $2788 = 0, $2789 = 0, $279 = 0, $2790 = 0, $2791 = 0, $2792 = 0, $2793 = 0, $2794 = 0, $2795 = 0, $2796 = 0, $2797 = 0, $2798 = 0;
var $2799 = 0, $28 = 0, $280 = 0, $2800 = 0, $2801 = 0, $2802 = 0, $2803 = 0, $2804 = 0, $2805 = 0, $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0, $281 = 0, $2810 = 0, $2811 = 0, $2812 = 0, $2813 = 0, $2814 = 0, $2815 = 0;
var $2816 = 0, $2817 = 0, $2818 = 0, $2819 = 0, $282 = 0, $2820 = 0, $2821 = 0, $2822 = 0, $2823 = 0, $2824 = 0, $2825 = 0, $2826 = 0, $2827 = 0, $2828 = 0, $2829 = 0, $283 = 0, $2830 = 0, $2831 = 0, $2832 = 0, $2833 = 0;
var $2834 = 0, $2835 = 0, $2836 = 0, $2837 = 0, $2838 = 0, $2839 = 0, $284 = 0, $2840 = 0, $2841 = 0, $2842 = 0, $2843 = 0, $2844 = 0, $2845 = 0, $2846 = 0, $2847 = 0, $2848 = 0, $2849 = 0, $285 = 0, $2850 = 0, $2851 = 0;
var $2852 = 0, $2853 = 0, $2854 = 0, $2855 = 0, $2856 = 0, $2857 = 0, $2858 = 0, $2859 = 0, $286 = 0, $2860 = 0, $2861 = 0, $2862 = 0, $2863 = 0, $2864 = 0, $2865 = 0, $2866 = 0, $2867 = 0, $2868 = 0, $2869 = 0, $287 = 0;
var $2870 = 0, $2871 = 0, $2872 = 0, $2873 = 0, $2874 = 0, $2875 = 0, $2876 = 0, $2877 = 0, $2878 = 0, $2879 = 0, $288 = 0, $2880 = 0, $2881 = 0, $2882 = 0, $2883 = 0, $2884 = 0, $2885 = 0, $2886 = 0, $2887 = 0, $2888 = 0;
var $2889 = 0, $289 = 0, $2890 = 0, $2891 = 0, $2892 = 0, $2893 = 0, $2894 = 0, $2895 = 0, $2896 = 0, $2897 = 0, $2898 = 0, $2899 = 0, $29 = 0, $290 = 0, $2900 = 0, $2901 = 0, $2902 = 0, $2903 = 0, $2904 = 0, $2905 = 0;
var $2906 = 0, $2907 = 0, $2908 = 0, $2909 = 0, $291 = 0, $2910 = 0, $2911 = 0, $2912 = 0, $2913 = 0, $2914 = 0, $2915 = 0, $2916 = 0, $2917 = 0, $2918 = 0, $2919 = 0, $292 = 0, $2920 = 0, $2921 = 0, $2922 = 0, $2923 = 0;
var $2924 = 0, $2925 = 0, $2926 = 0, $2927 = 0, $2928 = 0, $2929 = 0, $293 = 0, $2930 = 0, $2931 = 0, $2932 = 0, $2933 = 0, $2934 = 0, $2935 = 0, $2936 = 0, $2937 = 0, $2938 = 0, $2939 = 0, $294 = 0, $2940 = 0, $2941 = 0;
var $2942 = 0, $2943 = 0, $2944 = 0, $2945 = 0, $2946 = 0, $2947 = 0, $2948 = 0, $2949 = 0, $295 = 0, $2950 = 0, $2951 = 0, $2952 = 0, $2953 = 0, $2954 = 0, $2955 = 0, $2956 = 0, $2957 = 0, $2958 = 0, $2959 = 0, $296 = 0;
var $2960 = 0, $2961 = 0, $2962 = 0, $2963 = 0, $2964 = 0, $2965 = 0, $2966 = 0, $2967 = 0, $2968 = 0, $2969 = 0, $297 = 0, $2970 = 0, $2971 = 0, $2972 = 0, $2973 = 0, $2974 = 0, $2975 = 0, $2976 = 0, $2977 = 0, $2978 = 0;
var $2979 = 0, $298 = 0, $2980 = 0, $2981 = 0, $2982 = 0, $2983 = 0, $2984 = 0, $2985 = 0, $2986 = 0, $2987 = 0, $2988 = 0, $2989 = 0, $299 = 0, $2990 = 0, $2991 = 0, $2992 = 0, $2993 = 0, $2994 = 0, $2995 = 0, $2996 = 0;
var $2997 = 0, $2998 = 0, $2999 = 0, $3 = 0, $30 = 0, $300 = 0, $3000 = 0, $3001 = 0, $3002 = 0, $3003 = 0, $3004 = 0, $3005 = 0, $3006 = 0, $3007 = 0, $3008 = 0, $3009 = 0, $301 = 0, $3010 = 0, $3011 = 0, $3012 = 0;
var $3013 = 0, $3014 = 0, $3015 = 0, $3016 = 0, $3017 = 0, $3018 = 0, $3019 = 0, $302 = 0, $3020 = 0, $3021 = 0, $3022 = 0, $3023 = 0, $3024 = 0, $3025 = 0, $3026 = 0, $3027 = 0, $3028 = 0, $3029 = 0, $303 = 0, $3030 = 0;
var $3031 = 0, $3032 = 0, $3033 = 0, $3034 = 0, $3035 = 0, $3036 = 0, $3037 = 0, $3038 = 0, $3039 = 0, $304 = 0, $3040 = 0, $3041 = 0, $3042 = 0, $3043 = 0, $3044 = 0, $3045 = 0, $3046 = 0, $3047 = 0, $3048 = 0, $3049 = 0;
var $305 = 0, $3050 = 0, $3051 = 0, $3052 = 0, $3053 = 0, $3054 = 0, $3055 = 0, $3056 = 0, $3057 = 0, $3058 = 0, $3059 = 0, $306 = 0, $3060 = 0, $3061 = 0, $3062 = 0, $3063 = 0, $3064 = 0, $3065 = 0, $3066 = 0, $3067 = 0;
var $3068 = 0, $3069 = 0, $307 = 0, $3070 = 0, $3071 = 0, $3072 = 0, $3073 = 0, $3074 = 0, $3075 = 0, $3076 = 0, $3077 = 0, $3078 = 0, $3079 = 0, $308 = 0, $3080 = 0, $3081 = 0, $3082 = 0, $3083 = 0, $3084 = 0, $3085 = 0;
var $3086 = 0, $3087 = 0, $3088 = 0, $3089 = 0, $309 = 0, $3090 = 0, $3091 = 0, $3092 = 0, $3093 = 0, $3094 = 0, $3095 = 0, $3096 = 0, $3097 = 0, $3098 = 0, $3099 = 0, $31 = 0, $310 = 0, $3100 = 0, $3101 = 0, $3102 = 0;
var $3103 = 0, $3104 = 0, $3105 = 0, $3106 = 0, $3107 = 0, $3108 = 0, $3109 = 0, $311 = 0, $3110 = 0, $3111 = 0, $3112 = 0, $3113 = 0, $3114 = 0, $3115 = 0, $3116 = 0, $3117 = 0, $3118 = 0, $3119 = 0, $312 = 0, $3120 = 0;
var $3121 = 0, $3122 = 0, $3123 = 0, $3124 = 0, $3125 = 0, $3126 = 0, $3127 = 0, $3128 = 0, $3129 = 0, $313 = 0, $3130 = 0, $3131 = 0, $3132 = 0, $3133 = 0, $3134 = 0, $3135 = 0, $3136 = 0, $3137 = 0, $3138 = 0, $3139 = 0;
var $314 = 0, $3140 = 0, $3141 = 0, $3142 = 0, $3143 = 0, $3144 = 0, $3145 = 0, $3146 = 0, $3147 = 0, $3148 = 0, $3149 = 0, $315 = 0, $3150 = 0, $3151 = 0, $3152 = 0, $3153 = 0, $3154 = 0, $3155 = 0, $3156 = 0, $3157 = 0;
var $3158 = 0, $3159 = 0, $316 = 0, $3160 = 0, $3161 = 0, $3162 = 0, $3163 = 0, $3164 = 0, $3165 = 0, $3166 = 0, $3167 = 0, $3168 = 0, $3169 = 0, $317 = 0, $3170 = 0, $3171 = 0, $3172 = 0, $3173 = 0, $3174 = 0, $3175 = 0;
var $3176 = 0, $3177 = 0, $3178 = 0, $3179 = 0, $318 = 0, $3180 = 0, $3181 = 0, $3182 = 0, $3183 = 0, $3184 = 0, $3185 = 0, $3186 = 0, $3187 = 0, $3188 = 0, $3189 = 0, $319 = 0, $3190 = 0, $3191 = 0, $3192 = 0, $3193 = 0;
var $3194 = 0, $3195 = 0, $3196 = 0, $3197 = 0, $3198 = 0, $3199 = 0, $32 = 0, $320 = 0, $3200 = 0, $3201 = 0, $3202 = 0, $3203 = 0, $3204 = 0, $3205 = 0, $3206 = 0, $3207 = 0, $3208 = 0, $3209 = 0, $321 = 0, $3210 = 0;
var $3211 = 0, $3212 = 0, $3213 = 0, $3214 = 0, $3215 = 0, $3216 = 0, $3217 = 0, $3218 = 0, $3219 = 0, $322 = 0, $3220 = 0, $3221 = 0, $3222 = 0, $3223 = 0, $3224 = 0, $3225 = 0, $3226 = 0, $3227 = 0, $3228 = 0, $3229 = 0;
var $323 = 0, $3230 = 0, $3231 = 0, $3232 = 0, $3233 = 0, $3234 = 0, $3235 = 0, $3236 = 0, $3237 = 0, $3238 = 0, $3239 = 0, $324 = 0, $3240 = 0, $3241 = 0, $3242 = 0, $3243 = 0, $3244 = 0, $3245 = 0, $3246 = 0, $3247 = 0;
var $3248 = 0, $3249 = 0, $325 = 0, $3250 = 0, $3251 = 0, $3252 = 0, $3253 = 0, $3254 = 0, $3255 = 0, $3256 = 0, $3257 = 0, $3258 = 0, $3259 = 0, $326 = 0, $3260 = 0, $3261 = 0, $3262 = 0, $3263 = 0, $3264 = 0, $3265 = 0;
var $3266 = 0, $3267 = 0, $3268 = 0, $3269 = 0, $327 = 0, $3270 = 0, $3271 = 0, $3272 = 0, $3273 = 0, $3274 = 0, $3275 = 0, $3276 = 0, $3277 = 0, $3278 = 0, $3279 = 0, $328 = 0, $3280 = 0, $3281 = 0, $3282 = 0, $3283 = 0;
var $3284 = 0, $3285 = 0, $3286 = 0, $3287 = 0, $3288 = 0, $3289 = 0, $329 = 0, $3290 = 0, $3291 = 0, $3292 = 0, $3293 = 0, $3294 = 0, $3295 = 0, $3296 = 0, $3297 = 0, $3298 = 0, $3299 = 0, $33 = 0, $330 = 0, $3300 = 0;
var $3301 = 0, $3302 = 0, $3303 = 0, $3304 = 0, $3305 = 0, $3306 = 0, $3307 = 0, $3308 = 0, $3309 = 0, $331 = 0, $3310 = 0, $3311 = 0, $3312 = 0, $3313 = 0, $3314 = 0, $3315 = 0, $3316 = 0, $3317 = 0, $3318 = 0, $3319 = 0;
var $332 = 0, $3320 = 0, $3321 = 0, $3322 = 0, $3323 = 0, $3324 = 0, $3325 = 0, $3326 = 0, $3327 = 0, $3328 = 0, $3329 = 0, $333 = 0, $3330 = 0, $3331 = 0, $3332 = 0, $3333 = 0, $3334 = 0, $3335 = 0, $3336 = 0, $3337 = 0;
var $3338 = 0, $3339 = 0, $334 = 0, $3340 = 0, $3341 = 0, $3342 = 0, $3343 = 0, $3344 = 0, $3345 = 0, $3346 = 0, $3347 = 0, $3348 = 0, $3349 = 0, $335 = 0, $3350 = 0, $3351 = 0, $3352 = 0, $3353 = 0, $3354 = 0, $3355 = 0;
var $3356 = 0, $3357 = 0, $3358 = 0, $3359 = 0, $336 = 0, $3360 = 0, $3361 = 0, $3362 = 0, $3363 = 0, $3364 = 0, $3365 = 0, $3366 = 0, $3367 = 0, $3368 = 0, $3369 = 0, $337 = 0, $3370 = 0, $3371 = 0, $3372 = 0, $3373 = 0;
var $3374 = 0, $3375 = 0, $3376 = 0, $3377 = 0, $3378 = 0, $3379 = 0, $338 = 0, $3380 = 0, $3381 = 0, $3382 = 0, $3383 = 0, $3384 = 0, $3385 = 0, $3386 = 0, $3387 = 0, $3388 = 0, $3389 = 0, $339 = 0, $3390 = 0, $3391 = 0;
var $3392 = 0, $3393 = 0, $3394 = 0, $3395 = 0, $3396 = 0, $3397 = 0, $3398 = 0, $3399 = 0, $34 = 0, $340 = 0, $3400 = 0, $3401 = 0, $3402 = 0, $3403 = 0, $3404 = 0, $3405 = 0, $3406 = 0, $3407 = 0, $3408 = 0, $3409 = 0;
var $341 = 0, $3410 = 0, $3411 = 0, $3412 = 0, $3413 = 0, $3414 = 0, $3415 = 0, $3416 = 0, $3417 = 0, $3418 = 0, $3419 = 0, $342 = 0, $3420 = 0, $3421 = 0, $3422 = 0, $3423 = 0, $3424 = 0, $3425 = 0, $3426 = 0, $3427 = 0;
var $3428 = 0, $3429 = 0, $343 = 0, $3430 = 0, $3431 = 0, $3432 = 0, $3433 = 0, $3434 = 0, $3435 = 0, $3436 = 0, $3437 = 0, $3438 = 0, $3439 = 0, $344 = 0, $3440 = 0, $3441 = 0, $3442 = 0, $3443 = 0, $3444 = 0, $3445 = 0;
var $3446 = 0, $3447 = 0, $3448 = 0, $3449 = 0, $345 = 0, $3450 = 0, $3451 = 0, $3452 = 0, $3453 = 0, $3454 = 0, $3455 = 0, $3456 = 0, $3457 = 0, $3458 = 0, $3459 = 0, $346 = 0, $3460 = 0, $3461 = 0, $3462 = 0, $3463 = 0;
var $3464 = 0, $3465 = 0, $3466 = 0, $3467 = 0, $3468 = 0, $3469 = 0, $347 = 0, $3470 = 0, $3471 = 0, $3472 = 0, $3473 = 0, $3474 = 0, $3475 = 0, $3476 = 0, $3477 = 0, $3478 = 0, $3479 = 0, $348 = 0, $3480 = 0, $3481 = 0;
var $3482 = 0, $3483 = 0, $3484 = 0, $3485 = 0, $3486 = 0, $3487 = 0, $3488 = 0, $3489 = 0, $349 = 0, $3490 = 0, $3491 = 0, $3492 = 0, $3493 = 0, $3494 = 0, $3495 = 0, $3496 = 0, $3497 = 0, $3498 = 0, $3499 = 0, $35 = 0;
var $350 = 0, $3500 = 0, $3501 = 0, $3502 = 0, $3503 = 0, $3504 = 0, $3505 = 0, $3506 = 0, $3507 = 0, $3508 = 0, $3509 = 0, $351 = 0, $3510 = 0, $3511 = 0, $3512 = 0, $3513 = 0, $3514 = 0, $3515 = 0, $3516 = 0, $3517 = 0;
var $3518 = 0, $3519 = 0, $352 = 0, $3520 = 0, $3521 = 0, $3522 = 0, $3523 = 0, $3524 = 0, $3525 = 0, $3526 = 0, $3527 = 0, $3528 = 0, $3529 = 0, $353 = 0, $3530 = 0, $3531 = 0, $3532 = 0, $3533 = 0, $3534 = 0, $3535 = 0;
var $3536 = 0, $3537 = 0, $3538 = 0, $3539 = 0, $354 = 0, $3540 = 0, $3541 = 0, $3542 = 0, $3543 = 0, $3544 = 0, $3545 = 0, $3546 = 0, $3547 = 0, $3548 = 0, $3549 = 0, $355 = 0, $3550 = 0, $3551 = 0, $3552 = 0, $3553 = 0;
var $3554 = 0, $3555 = 0, $3556 = 0, $3557 = 0, $3558 = 0, $3559 = 0, $356 = 0, $3560 = 0, $3561 = 0, $3562 = 0, $3563 = 0, $3564 = 0, $3565 = 0, $3566 = 0, $3567 = 0, $3568 = 0, $3569 = 0, $357 = 0, $3570 = 0, $3571 = 0;
var $3572 = 0, $3573 = 0, $3574 = 0, $3575 = 0, $3576 = 0, $3577 = 0, $3578 = 0, $3579 = 0, $358 = 0, $3580 = 0, $3581 = 0, $3582 = 0, $3583 = 0, $3584 = 0, $3585 = 0, $3586 = 0, $3587 = 0, $3588 = 0, $3589 = 0, $359 = 0;
var $3590 = 0, $3591 = 0, $3592 = 0, $3593 = 0, $3594 = 0, $3595 = 0, $3596 = 0, $3597 = 0, $3598 = 0, $3599 = 0, $36 = 0, $360 = 0, $3600 = 0, $3601 = 0, $3602 = 0, $3603 = 0, $3604 = 0, $3605 = 0, $3606 = 0, $3607 = 0;
var $3608 = 0, $3609 = 0, $361 = 0, $3610 = 0, $3611 = 0, $3612 = 0, $3613 = 0, $3614 = 0, $3615 = 0, $3616 = 0, $3617 = 0, $3618 = 0, $3619 = 0, $362 = 0, $3620 = 0, $3621 = 0, $3622 = 0, $3623 = 0, $3624 = 0, $3625 = 0;
var $3626 = 0, $3627 = 0, $3628 = 0, $3629 = 0, $363 = 0, $3630 = 0, $3631 = 0, $3632 = 0, $3633 = 0, $3634 = 0, $3635 = 0, $3636 = 0, $3637 = 0, $3638 = 0, $3639 = 0, $364 = 0, $3640 = 0, $3641 = 0, $3642 = 0, $3643 = 0;
var $3644 = 0, $3645 = 0, $3646 = 0, $3647 = 0, $3648 = 0, $3649 = 0, $365 = 0, $3650 = 0, $3651 = 0, $3652 = 0, $3653 = 0, $3654 = 0, $3655 = 0, $3656 = 0, $3657 = 0, $3658 = 0, $3659 = 0, $366 = 0, $3660 = 0, $3661 = 0;
var $3662 = 0, $3663 = 0, $3664 = 0, $3665 = 0, $3666 = 0, $3667 = 0, $3668 = 0, $3669 = 0, $367 = 0, $3670 = 0, $3671 = 0, $3672 = 0, $3673 = 0, $3674 = 0, $3675 = 0, $3676 = 0, $3677 = 0, $3678 = 0, $3679 = 0, $368 = 0;
var $3680 = 0, $3681 = 0, $3682 = 0, $3683 = 0, $3684 = 0, $3685 = 0, $3686 = 0, $3687 = 0, $3688 = 0, $3689 = 0, $369 = 0, $3690 = 0, $3691 = 0, $3692 = 0, $3693 = 0, $3694 = 0, $3695 = 0, $3696 = 0, $3697 = 0, $3698 = 0;
var $3699 = 0, $37 = 0, $370 = 0, $3700 = 0, $3701 = 0, $3702 = 0, $3703 = 0, $3704 = 0, $3705 = 0, $3706 = 0, $3707 = 0, $3708 = 0, $3709 = 0, $371 = 0, $3710 = 0, $3711 = 0, $3712 = 0, $3713 = 0, $3714 = 0, $3715 = 0;
var $3716 = 0, $3717 = 0, $3718 = 0, $3719 = 0, $372 = 0, $3720 = 0, $3721 = 0, $3722 = 0, $3723 = 0, $3724 = 0, $3725 = 0, $3726 = 0, $3727 = 0, $3728 = 0, $3729 = 0, $373 = 0, $3730 = 0, $3731 = 0, $3732 = 0, $3733 = 0;
var $3734 = 0, $3735 = 0, $3736 = 0, $3737 = 0, $3738 = 0, $3739 = 0, $374 = 0, $3740 = 0, $3741 = 0, $3742 = 0, $3743 = 0, $3744 = 0, $3745 = 0, $3746 = 0, $3747 = 0, $3748 = 0, $3749 = 0, $375 = 0, $3750 = 0, $3751 = 0;
var $3752 = 0, $3753 = 0, $3754 = 0, $3755 = 0, $3756 = 0, $3757 = 0, $3758 = 0, $3759 = 0, $376 = 0, $3760 = 0, $3761 = 0, $3762 = 0, $3763 = 0, $3764 = 0, $3765 = 0, $3766 = 0, $3767 = 0, $3768 = 0, $3769 = 0, $377 = 0;
var $3770 = 0, $3771 = 0, $3772 = 0, $3773 = 0, $3774 = 0, $3775 = 0, $3776 = 0, $3777 = 0, $3778 = 0, $3779 = 0, $378 = 0, $3780 = 0, $3781 = 0, $3782 = 0, $3783 = 0, $3784 = 0, $3785 = 0, $3786 = 0, $3787 = 0, $3788 = 0;
var $3789 = 0, $379 = 0, $3790 = 0, $3791 = 0, $3792 = 0, $3793 = 0, $3794 = 0, $3795 = 0, $3796 = 0, $3797 = 0, $3798 = 0, $3799 = 0, $38 = 0, $380 = 0, $3800 = 0, $3801 = 0, $3802 = 0, $3803 = 0, $3804 = 0, $3805 = 0;
var $3806 = 0, $3807 = 0, $3808 = 0, $3809 = 0, $381 = 0, $3810 = 0, $3811 = 0, $3812 = 0, $3813 = 0, $3814 = 0, $3815 = 0, $3816 = 0, $3817 = 0, $3818 = 0, $3819 = 0, $382 = 0, $3820 = 0, $3821 = 0, $3822 = 0, $3823 = 0;
var $3824 = 0, $3825 = 0, $3826 = 0, $3827 = 0, $3828 = 0, $3829 = 0, $383 = 0, $3830 = 0, $3831 = 0, $3832 = 0, $3833 = 0, $3834 = 0, $3835 = 0, $3836 = 0, $3837 = 0, $3838 = 0, $3839 = 0, $384 = 0, $3840 = 0, $3841 = 0;
var $3842 = 0, $3843 = 0, $3844 = 0, $3845 = 0, $3846 = 0, $3847 = 0, $3848 = 0, $3849 = 0, $385 = 0, $3850 = 0, $3851 = 0, $3852 = 0, $3853 = 0, $3854 = 0, $3855 = 0, $3856 = 0, $3857 = 0, $3858 = 0, $3859 = 0, $386 = 0;
var $3860 = 0, $3861 = 0, $3862 = 0, $3863 = 0, $3864 = 0, $3865 = 0, $3866 = 0, $3867 = 0, $3868 = 0, $3869 = 0, $387 = 0, $3870 = 0, $3871 = 0, $3872 = 0, $3873 = 0, $3874 = 0, $3875 = 0, $3876 = 0, $3877 = 0, $3878 = 0;
var $3879 = 0, $388 = 0, $3880 = 0, $3881 = 0, $3882 = 0, $3883 = 0, $3884 = 0, $3885 = 0, $3886 = 0, $3887 = 0, $3888 = 0, $3889 = 0, $389 = 0, $3890 = 0, $3891 = 0, $3892 = 0, $3893 = 0, $3894 = 0, $3895 = 0, $3896 = 0;
var $3897 = 0, $3898 = 0, $3899 = 0, $39 = 0, $390 = 0, $3900 = 0, $3901 = 0, $3902 = 0, $3903 = 0, $3904 = 0, $3905 = 0, $3906 = 0, $3907 = 0, $3908 = 0, $3909 = 0, $391 = 0, $3910 = 0, $3911 = 0, $3912 = 0, $3913 = 0;
var $3914 = 0, $3915 = 0, $3916 = 0, $3917 = 0, $3918 = 0, $3919 = 0, $392 = 0, $3920 = 0, $3921 = 0, $3922 = 0, $3923 = 0, $3924 = 0, $3925 = 0, $3926 = 0, $3927 = 0, $3928 = 0, $3929 = 0, $393 = 0, $3930 = 0, $3931 = 0;
var $3932 = 0, $3933 = 0, $3934 = 0, $3935 = 0, $3936 = 0, $3937 = 0, $3938 = 0, $3939 = 0, $394 = 0, $3940 = 0, $3941 = 0, $3942 = 0, $3943 = 0, $3944 = 0, $3945 = 0, $3946 = 0, $3947 = 0, $3948 = 0, $3949 = 0, $395 = 0;
var $3950 = 0, $3951 = 0, $3952 = 0, $3953 = 0, $3954 = 0, $3955 = 0, $3956 = 0, $3957 = 0, $3958 = 0, $3959 = 0, $396 = 0, $3960 = 0, $3961 = 0, $3962 = 0, $3963 = 0, $3964 = 0, $3965 = 0, $3966 = 0, $3967 = 0, $3968 = 0;
var $3969 = 0, $397 = 0, $3970 = 0, $3971 = 0, $3972 = 0, $3973 = 0, $3974 = 0, $3975 = 0, $3976 = 0, $3977 = 0, $3978 = 0, $3979 = 0, $398 = 0, $3980 = 0, $3981 = 0, $3982 = 0, $3983 = 0, $3984 = 0, $3985 = 0, $3986 = 0;
var $3987 = 0, $3988 = 0, $3989 = 0, $399 = 0, $3990 = 0, $3991 = 0, $3992 = 0, $3993 = 0, $3994 = 0, $3995 = 0, $3996 = 0, $3997 = 0, $3998 = 0, $3999 = 0, $4 = 0, $40 = 0, $400 = 0, $4000 = 0, $4001 = 0, $4002 = 0;
var $4003 = 0, $4004 = 0, $4005 = 0, $4006 = 0, $4007 = 0, $4008 = 0, $4009 = 0, $401 = 0, $4010 = 0, $4011 = 0, $4012 = 0, $4013 = 0, $4014 = 0, $4015 = 0, $4016 = 0, $4017 = 0, $4018 = 0, $4019 = 0, $402 = 0, $4020 = 0;
var $4021 = 0, $4022 = 0, $4023 = 0, $4024 = 0, $4025 = 0, $4026 = 0, $4027 = 0, $4028 = 0, $4029 = 0, $403 = 0, $4030 = 0, $4031 = 0, $4032 = 0, $4033 = 0, $4034 = 0, $4035 = 0, $4036 = 0, $4037 = 0, $4038 = 0, $4039 = 0;
var $404 = 0, $4040 = 0, $4041 = 0, $4042 = 0, $4043 = 0, $4044 = 0, $4045 = 0, $4046 = 0, $4047 = 0, $4048 = 0, $4049 = 0, $405 = 0, $4050 = 0, $4051 = 0, $4052 = 0, $4053 = 0, $4054 = 0, $4055 = 0, $4056 = 0, $4057 = 0;
var $4058 = 0, $4059 = 0, $406 = 0, $4060 = 0, $4061 = 0, $4062 = 0, $4063 = 0, $4064 = 0, $4065 = 0, $4066 = 0, $4067 = 0, $4068 = 0, $4069 = 0, $407 = 0, $4070 = 0, $4071 = 0, $4072 = 0, $4073 = 0, $4074 = 0, $4075 = 0;
var $4076 = 0, $4077 = 0, $4078 = 0, $4079 = 0, $408 = 0, $4080 = 0, $4081 = 0, $4082 = 0, $4083 = 0, $4084 = 0, $4085 = 0, $4086 = 0, $4087 = 0, $4088 = 0, $4089 = 0, $409 = 0, $4090 = 0, $4091 = 0, $4092 = 0, $4093 = 0;
var $4094 = 0, $4095 = 0, $4096 = 0, $4097 = 0, $4098 = 0, $4099 = 0, $41 = 0, $410 = 0, $4100 = 0, $4101 = 0, $4102 = 0, $4103 = 0, $4104 = 0, $4105 = 0, $4106 = 0, $4107 = 0, $4108 = 0, $4109 = 0, $411 = 0, $4110 = 0;
var $4111 = 0, $4112 = 0, $4113 = 0, $4114 = 0, $4115 = 0, $4116 = 0, $4117 = 0, $4118 = 0, $4119 = 0, $412 = 0, $4120 = 0, $4121 = 0, $4122 = 0, $4123 = 0, $4124 = 0, $4125 = 0, $4126 = 0, $4127 = 0, $4128 = 0, $4129 = 0;
var $413 = 0, $4130 = 0, $4131 = 0, $4132 = 0, $4133 = 0, $4134 = 0, $4135 = 0, $4136 = 0, $4137 = 0, $4138 = 0, $4139 = 0, $414 = 0, $4140 = 0, $4141 = 0, $4142 = 0, $4143 = 0, $4144 = 0, $4145 = 0, $4146 = 0, $4147 = 0;
var $4148 = 0, $4149 = 0, $415 = 0, $4150 = 0, $4151 = 0, $4152 = 0, $4153 = 0, $4154 = 0, $4155 = 0, $4156 = 0, $4157 = 0, $4158 = 0, $4159 = 0, $416 = 0, $4160 = 0, $4161 = 0, $4162 = 0, $4163 = 0, $4164 = 0, $4165 = 0;
var $4166 = 0, $4167 = 0, $4168 = 0, $4169 = 0, $417 = 0, $4170 = 0, $4171 = 0, $4172 = 0, $4173 = 0, $4174 = 0, $4175 = 0, $4176 = 0, $4177 = 0, $4178 = 0, $4179 = 0, $418 = 0, $4180 = 0, $4181 = 0, $4182 = 0, $4183 = 0;
var $4184 = 0, $4185 = 0, $4186 = 0, $4187 = 0, $4188 = 0, $4189 = 0, $419 = 0, $4190 = 0, $4191 = 0, $4192 = 0, $4193 = 0, $4194 = 0, $4195 = 0, $4196 = 0, $4197 = 0, $4198 = 0, $4199 = 0, $42 = 0, $420 = 0, $4200 = 0;
var $4201 = 0, $4202 = 0, $4203 = 0, $4204 = 0, $4205 = 0, $4206 = 0, $4207 = 0, $4208 = 0, $4209 = 0, $421 = 0, $4210 = 0, $4211 = 0, $4212 = 0, $4213 = 0, $4214 = 0, $4215 = 0, $4216 = 0, $4217 = 0, $4218 = 0, $4219 = 0;
var $422 = 0, $4220 = 0, $4221 = 0, $4222 = 0, $4223 = 0, $4224 = 0, $4225 = 0, $4226 = 0, $4227 = 0, $4228 = 0, $4229 = 0, $423 = 0, $4230 = 0, $4231 = 0, $4232 = 0, $4233 = 0, $4234 = 0, $4235 = 0, $4236 = 0, $4237 = 0;
var $4238 = 0, $4239 = 0, $424 = 0, $4240 = 0, $4241 = 0, $4242 = 0, $4243 = 0, $4244 = 0, $4245 = 0, $4246 = 0, $4247 = 0, $4248 = 0, $4249 = 0, $425 = 0, $4250 = 0, $4251 = 0, $4252 = 0, $4253 = 0, $4254 = 0, $4255 = 0;
var $4256 = 0, $4257 = 0, $4258 = 0, $4259 = 0, $426 = 0, $4260 = 0, $4261 = 0, $4262 = 0, $4263 = 0, $4264 = 0, $4265 = 0, $4266 = 0, $4267 = 0, $4268 = 0, $4269 = 0, $427 = 0, $4270 = 0, $4271 = 0, $4272 = 0, $4273 = 0;
var $4274 = 0, $4275 = 0, $4276 = 0, $4277 = 0, $4278 = 0, $4279 = 0, $428 = 0, $4280 = 0, $4281 = 0, $4282 = 0, $4283 = 0, $4284 = 0, $4285 = 0, $4286 = 0, $4287 = 0, $4288 = 0, $4289 = 0, $429 = 0, $4290 = 0, $4291 = 0;
var $4292 = 0, $4293 = 0, $4294 = 0, $4295 = 0, $4296 = 0, $4297 = 0, $4298 = 0, $4299 = 0, $43 = 0, $430 = 0, $4300 = 0, $4301 = 0, $4302 = 0, $4303 = 0, $4304 = 0, $4305 = 0, $4306 = 0, $4307 = 0, $4308 = 0, $4309 = 0;
var $431 = 0, $4310 = 0, $4311 = 0, $4312 = 0, $4313 = 0, $4314 = 0, $4315 = 0, $4316 = 0, $4317 = 0, $4318 = 0, $4319 = 0, $432 = 0, $4320 = 0, $4321 = 0, $4322 = 0, $4323 = 0, $4324 = 0, $4325 = 0, $4326 = 0, $4327 = 0;
var $4328 = 0, $4329 = 0, $433 = 0, $4330 = 0, $4331 = 0, $4332 = 0, $4333 = 0, $4334 = 0, $4335 = 0, $4336 = 0, $4337 = 0, $4338 = 0, $4339 = 0, $434 = 0, $4340 = 0, $4341 = 0, $4342 = 0, $4343 = 0, $4344 = 0, $4345 = 0;
var $4346 = 0, $4347 = 0, $4348 = 0, $4349 = 0, $435 = 0, $4350 = 0, $4351 = 0, $4352 = 0, $4353 = 0, $4354 = 0, $4355 = 0, $4356 = 0, $4357 = 0, $4358 = 0, $4359 = 0, $436 = 0, $4360 = 0, $4361 = 0, $4362 = 0, $4363 = 0;
var $4364 = 0, $4365 = 0, $4366 = 0, $4367 = 0, $4368 = 0, $4369 = 0, $437 = 0, $4370 = 0, $4371 = 0, $4372 = 0, $4373 = 0, $4374 = 0, $4375 = 0, $4376 = 0, $4377 = 0, $4378 = 0, $4379 = 0, $438 = 0, $4380 = 0, $4381 = 0;
var $4382 = 0, $4383 = 0, $4384 = 0, $4385 = 0, $4386 = 0, $4387 = 0, $4388 = 0, $4389 = 0, $439 = 0, $4390 = 0, $4391 = 0, $4392 = 0, $4393 = 0, $4394 = 0, $4395 = 0, $4396 = 0, $4397 = 0, $4398 = 0, $4399 = 0, $44 = 0;
var $440 = 0, $4400 = 0, $4401 = 0, $4402 = 0, $4403 = 0, $4404 = 0, $4405 = 0, $4406 = 0, $4407 = 0, $4408 = 0, $4409 = 0, $441 = 0, $4410 = 0, $4411 = 0, $4412 = 0, $4413 = 0, $4414 = 0, $4415 = 0, $4416 = 0, $4417 = 0;
var $4418 = 0, $4419 = 0, $442 = 0, $4420 = 0, $4421 = 0, $4422 = 0, $4423 = 0, $4424 = 0, $4425 = 0, $4426 = 0, $4427 = 0, $4428 = 0, $4429 = 0, $443 = 0, $4430 = 0, $4431 = 0, $4432 = 0, $4433 = 0, $4434 = 0, $4435 = 0;
var $4436 = 0, $4437 = 0, $4438 = 0, $4439 = 0, $444 = 0, $4440 = 0, $4441 = 0, $4442 = 0, $4443 = 0, $4444 = 0, $4445 = 0, $4446 = 0, $4447 = 0, $4448 = 0, $4449 = 0, $445 = 0, $4450 = 0, $4451 = 0, $4452 = 0, $4453 = 0;
var $4454 = 0, $4455 = 0, $4456 = 0, $4457 = 0, $4458 = 0, $4459 = 0, $446 = 0, $4460 = 0, $4461 = 0, $4462 = 0, $4463 = 0, $4464 = 0, $4465 = 0, $4466 = 0, $4467 = 0, $4468 = 0, $4469 = 0, $447 = 0, $4470 = 0, $4471 = 0;
var $4472 = 0, $4473 = 0, $4474 = 0, $4475 = 0, $4476 = 0, $4477 = 0, $4478 = 0, $4479 = 0, $448 = 0, $4480 = 0, $4481 = 0, $4482 = 0, $4483 = 0, $4484 = 0, $4485 = 0, $4486 = 0, $4487 = 0, $4488 = 0, $4489 = 0, $449 = 0;
var $4490 = 0, $4491 = 0, $4492 = 0, $4493 = 0, $4494 = 0, $4495 = 0, $4496 = 0, $4497 = 0, $4498 = 0, $4499 = 0, $45 = 0, $450 = 0, $4500 = 0, $4501 = 0, $4502 = 0, $4503 = 0, $4504 = 0, $4505 = 0, $4506 = 0, $4507 = 0;
var $4508 = 0, $4509 = 0, $451 = 0, $4510 = 0, $4511 = 0, $4512 = 0, $4513 = 0, $4514 = 0, $4515 = 0, $4516 = 0, $4517 = 0, $4518 = 0, $4519 = 0, $452 = 0, $4520 = 0, $4521 = 0, $4522 = 0, $4523 = 0, $4524 = 0, $4525 = 0;
var $4526 = 0, $4527 = 0, $4528 = 0, $4529 = 0, $453 = 0, $4530 = 0, $4531 = 0, $4532 = 0, $4533 = 0, $4534 = 0, $4535 = 0, $4536 = 0, $4537 = 0, $4538 = 0, $4539 = 0, $454 = 0, $4540 = 0, $4541 = 0, $4542 = 0, $4543 = 0;
var $4544 = 0, $4545 = 0, $4546 = 0, $4547 = 0, $4548 = 0, $4549 = 0, $455 = 0, $4550 = 0, $4551 = 0, $4552 = 0, $4553 = 0, $4554 = 0, $4555 = 0, $4556 = 0, $4557 = 0, $4558 = 0, $4559 = 0, $456 = 0, $4560 = 0, $4561 = 0;
var $4562 = 0, $4563 = 0, $4564 = 0, $4565 = 0, $4566 = 0, $4567 = 0, $4568 = 0, $4569 = 0, $457 = 0, $4570 = 0, $4571 = 0, $4572 = 0, $4573 = 0, $4574 = 0, $4575 = 0, $4576 = 0, $4577 = 0, $4578 = 0, $4579 = 0, $458 = 0;
var $4580 = 0, $4581 = 0, $4582 = 0, $4583 = 0, $4584 = 0, $4585 = 0, $4586 = 0, $4587 = 0, $4588 = 0, $4589 = 0, $459 = 0, $4590 = 0, $4591 = 0, $4592 = 0, $4593 = 0, $4594 = 0, $4595 = 0, $4596 = 0, $4597 = 0, $4598 = 0;
var $4599 = 0, $46 = 0, $460 = 0, $4600 = 0, $4601 = 0, $4602 = 0, $4603 = 0, $4604 = 0, $4605 = 0, $4606 = 0, $4607 = 0, $4608 = 0, $4609 = 0, $461 = 0, $4610 = 0, $4611 = 0, $4612 = 0, $4613 = 0, $4614 = 0, $4615 = 0;
var $4616 = 0, $4617 = 0, $4618 = 0, $4619 = 0, $462 = 0, $4620 = 0, $4621 = 0, $4622 = 0, $4623 = 0, $4624 = 0, $4625 = 0, $4626 = 0, $4627 = 0, $4628 = 0, $4629 = 0, $463 = 0, $4630 = 0, $4631 = 0, $4632 = 0, $4633 = 0;
var $4634 = 0, $4635 = 0, $4636 = 0, $4637 = 0, $4638 = 0, $4639 = 0, $464 = 0, $4640 = 0, $4641 = 0, $4642 = 0, $4643 = 0, $4644 = 0, $4645 = 0, $4646 = 0, $4647 = 0, $4648 = 0, $4649 = 0, $465 = 0, $4650 = 0, $4651 = 0;
var $4652 = 0, $4653 = 0, $4654 = 0, $4655 = 0, $4656 = 0, $4657 = 0, $4658 = 0, $4659 = 0, $466 = 0, $4660 = 0, $4661 = 0, $4662 = 0, $4663 = 0, $4664 = 0, $4665 = 0, $4666 = 0, $4667 = 0, $4668 = 0, $4669 = 0, $467 = 0;
var $4670 = 0, $4671 = 0, $4672 = 0, $4673 = 0, $4674 = 0, $4675 = 0, $4676 = 0, $4677 = 0, $4678 = 0, $4679 = 0, $468 = 0, $4680 = 0, $4681 = 0, $4682 = 0, $4683 = 0, $4684 = 0, $4685 = 0, $4686 = 0, $4687 = 0, $4688 = 0;
var $4689 = 0, $469 = 0, $4690 = 0, $4691 = 0, $4692 = 0, $4693 = 0, $4694 = 0, $4695 = 0, $4696 = 0, $4697 = 0, $4698 = 0, $4699 = 0, $47 = 0, $470 = 0, $4700 = 0, $4701 = 0, $4702 = 0, $4703 = 0, $4704 = 0, $4705 = 0;
var $4706 = 0, $4707 = 0, $4708 = 0, $4709 = 0, $471 = 0, $4710 = 0, $4711 = 0, $4712 = 0, $4713 = 0, $4714 = 0, $4715 = 0, $4716 = 0, $4717 = 0, $4718 = 0, $4719 = 0, $472 = 0, $4720 = 0, $4721 = 0, $4722 = 0, $4723 = 0;
var $4724 = 0, $4725 = 0, $4726 = 0, $4727 = 0, $4728 = 0, $4729 = 0, $473 = 0, $4730 = 0, $4731 = 0, $4732 = 0, $4733 = 0, $4734 = 0, $4735 = 0, $4736 = 0, $4737 = 0, $4738 = 0, $4739 = 0, $474 = 0, $4740 = 0, $4741 = 0;
var $4742 = 0, $4743 = 0, $4744 = 0, $4745 = 0, $4746 = 0, $4747 = 0, $4748 = 0, $4749 = 0, $475 = 0, $4750 = 0, $4751 = 0, $4752 = 0, $4753 = 0, $4754 = 0, $4755 = 0, $4756 = 0, $4757 = 0, $4758 = 0, $4759 = 0, $476 = 0;
var $4760 = 0, $4761 = 0, $4762 = 0, $4763 = 0, $4764 = 0, $4765 = 0, $4766 = 0, $4767 = 0, $4768 = 0, $4769 = 0, $477 = 0, $4770 = 0, $4771 = 0, $4772 = 0, $4773 = 0, $4774 = 0, $4775 = 0, $4776 = 0, $4777 = 0, $4778 = 0;
var $4779 = 0, $478 = 0, $4780 = 0, $4781 = 0, $4782 = 0, $4783 = 0, $4784 = 0, $4785 = 0, $4786 = 0, $4787 = 0, $4788 = 0, $4789 = 0, $479 = 0, $4790 = 0, $4791 = 0, $4792 = 0, $4793 = 0, $4794 = 0, $4795 = 0, $4796 = 0;
var $4797 = 0, $4798 = 0, $4799 = 0, $48 = 0, $480 = 0, $4800 = 0, $4801 = 0, $4802 = 0, $4803 = 0, $4804 = 0, $4805 = 0, $4806 = 0, $4807 = 0, $4808 = 0, $4809 = 0, $481 = 0, $4810 = 0, $4811 = 0, $4812 = 0, $4813 = 0;
var $4814 = 0, $4815 = 0, $4816 = 0, $4817 = 0, $4818 = 0, $4819 = 0, $482 = 0, $4820 = 0, $4821 = 0, $4822 = 0, $4823 = 0, $4824 = 0, $4825 = 0, $4826 = 0, $4827 = 0, $4828 = 0, $4829 = 0, $483 = 0, $4830 = 0, $4831 = 0;
var $4832 = 0, $4833 = 0, $4834 = 0, $4835 = 0, $4836 = 0, $4837 = 0, $4838 = 0, $4839 = 0, $484 = 0, $4840 = 0, $4841 = 0, $4842 = 0, $4843 = 0, $4844 = 0, $4845 = 0, $4846 = 0, $4847 = 0, $4848 = 0, $4849 = 0, $485 = 0;
var $4850 = 0, $4851 = 0, $4852 = 0, $4853 = 0, $4854 = 0, $4855 = 0, $4856 = 0, $4857 = 0, $4858 = 0, $4859 = 0, $486 = 0, $4860 = 0, $4861 = 0, $4862 = 0, $4863 = 0, $4864 = 0, $4865 = 0, $4866 = 0, $4867 = 0, $4868 = 0;
var $4869 = 0, $487 = 0, $4870 = 0, $4871 = 0, $4872 = 0, $4873 = 0, $4874 = 0, $4875 = 0, $4876 = 0, $4877 = 0, $4878 = 0, $4879 = 0, $488 = 0, $4880 = 0, $4881 = 0, $4882 = 0, $4883 = 0, $4884 = 0, $4885 = 0, $4886 = 0;
var $4887 = 0, $4888 = 0, $4889 = 0, $489 = 0, $4890 = 0, $4891 = 0, $4892 = 0, $4893 = 0, $4894 = 0, $4895 = 0, $4896 = 0, $4897 = 0, $4898 = 0, $4899 = 0, $49 = 0, $490 = 0, $4900 = 0, $4901 = 0, $4902 = 0, $4903 = 0;
var $4904 = 0, $4905 = 0, $4906 = 0, $4907 = 0, $4908 = 0, $4909 = 0, $491 = 0, $4910 = 0, $4911 = 0, $4912 = 0, $4913 = 0, $4914 = 0, $4915 = 0, $4916 = 0, $4917 = 0, $4918 = 0, $4919 = 0, $492 = 0, $4920 = 0, $4921 = 0;
var $4922 = 0, $4923 = 0, $4924 = 0, $4925 = 0, $4926 = 0, $4927 = 0, $4928 = 0, $4929 = 0, $493 = 0, $4930 = 0, $4931 = 0, $4932 = 0, $4933 = 0, $4934 = 0, $4935 = 0, $4936 = 0, $4937 = 0, $4938 = 0, $4939 = 0, $494 = 0;
var $4940 = 0, $4941 = 0, $4942 = 0, $4943 = 0, $4944 = 0, $4945 = 0, $4946 = 0, $4947 = 0, $4948 = 0, $4949 = 0, $495 = 0, $4950 = 0, $4951 = 0, $4952 = 0, $4953 = 0, $4954 = 0, $4955 = 0, $4956 = 0, $4957 = 0, $4958 = 0;
var $4959 = 0, $496 = 0, $4960 = 0, $4961 = 0, $4962 = 0, $4963 = 0, $4964 = 0, $4965 = 0, $4966 = 0, $4967 = 0, $4968 = 0, $4969 = 0, $497 = 0, $4970 = 0, $4971 = 0, $4972 = 0, $4973 = 0, $4974 = 0, $4975 = 0, $4976 = 0;
var $4977 = 0, $4978 = 0, $4979 = 0, $498 = 0, $4980 = 0, $4981 = 0, $4982 = 0, $4983 = 0, $4984 = 0, $4985 = 0, $4986 = 0, $4987 = 0, $4988 = 0, $4989 = 0, $499 = 0, $4990 = 0, $4991 = 0, $4992 = 0, $4993 = 0, $4994 = 0;
var $4995 = 0, $4996 = 0, $4997 = 0, $4998 = 0, $4999 = 0, $5 = 0, $50 = 0, $500 = 0, $5000 = 0, $5001 = 0, $5002 = 0, $5003 = 0, $5004 = 0, $5005 = 0, $5006 = 0, $5007 = 0, $5008 = 0, $5009 = 0, $501 = 0, $5010 = 0;
var $5011 = 0, $5012 = 0, $5013 = 0, $5014 = 0, $5015 = 0, $5016 = 0, $5017 = 0, $5018 = 0, $5019 = 0, $502 = 0, $5020 = 0, $5021 = 0, $5022 = 0, $5023 = 0, $5024 = 0, $5025 = 0, $5026 = 0, $5027 = 0, $5028 = 0, $5029 = 0;
var $503 = 0, $5030 = 0, $5031 = 0, $5032 = 0, $5033 = 0, $5034 = 0, $5035 = 0, $5036 = 0, $5037 = 0, $5038 = 0, $5039 = 0, $504 = 0, $5040 = 0, $5041 = 0, $5042 = 0, $5043 = 0, $5044 = 0, $5045 = 0, $5046 = 0, $5047 = 0;
var $5048 = 0, $5049 = 0, $505 = 0, $5050 = 0, $5051 = 0, $5052 = 0, $5053 = 0, $5054 = 0, $5055 = 0, $5056 = 0, $5057 = 0, $5058 = 0, $5059 = 0, $506 = 0, $5060 = 0, $5061 = 0, $5062 = 0, $5063 = 0, $5064 = 0, $5065 = 0;
var $5066 = 0, $5067 = 0, $5068 = 0, $5069 = 0, $507 = 0, $5070 = 0, $5071 = 0, $5072 = 0, $5073 = 0, $5074 = 0, $5075 = 0, $5076 = 0, $5077 = 0, $5078 = 0, $5079 = 0, $508 = 0, $5080 = 0, $5081 = 0, $5082 = 0, $5083 = 0;
var $5084 = 0, $5085 = 0, $5086 = 0, $5087 = 0, $5088 = 0, $5089 = 0, $509 = 0, $5090 = 0, $5091 = 0, $5092 = 0, $5093 = 0, $5094 = 0, $5095 = 0, $5096 = 0, $5097 = 0, $5098 = 0, $5099 = 0, $51 = 0, $510 = 0, $5100 = 0;
var $5101 = 0, $5102 = 0, $5103 = 0, $5104 = 0, $5105 = 0, $5106 = 0, $5107 = 0, $5108 = 0, $5109 = 0, $511 = 0, $5110 = 0, $5111 = 0, $5112 = 0, $5113 = 0, $5114 = 0, $5115 = 0, $5116 = 0, $5117 = 0, $5118 = 0, $5119 = 0;
var $512 = 0, $5120 = 0, $5121 = 0, $5122 = 0, $5123 = 0, $5124 = 0, $5125 = 0, $5126 = 0, $5127 = 0, $5128 = 0, $5129 = 0, $513 = 0, $5130 = 0, $5131 = 0, $5132 = 0, $5133 = 0, $5134 = 0, $5135 = 0, $5136 = 0, $5137 = 0;
var $5138 = 0, $5139 = 0, $514 = 0, $5140 = 0, $5141 = 0, $5142 = 0, $5143 = 0, $5144 = 0, $5145 = 0, $5146 = 0, $5147 = 0, $5148 = 0, $5149 = 0, $515 = 0, $5150 = 0, $5151 = 0, $5152 = 0, $5153 = 0, $5154 = 0, $5155 = 0;
var $5156 = 0, $5157 = 0, $5158 = 0, $5159 = 0, $516 = 0, $5160 = 0, $5161 = 0, $5162 = 0, $5163 = 0, $5164 = 0, $5165 = 0, $5166 = 0, $5167 = 0, $5168 = 0, $5169 = 0, $517 = 0, $5170 = 0, $5171 = 0, $5172 = 0, $5173 = 0;
var $5174 = 0, $5175 = 0, $5176 = 0, $5177 = 0, $5178 = 0, $5179 = 0, $518 = 0, $5180 = 0, $5181 = 0, $5182 = 0, $5183 = 0, $5184 = 0, $5185 = 0, $5186 = 0, $5187 = 0, $5188 = 0, $5189 = 0, $519 = 0, $5190 = 0, $5191 = 0;
var $5192 = 0, $5193 = 0, $5194 = 0, $5195 = 0, $5196 = 0, $5197 = 0, $5198 = 0, $5199 = 0, $52 = 0, $520 = 0, $5200 = 0, $5201 = 0, $5202 = 0, $5203 = 0, $5204 = 0, $5205 = 0, $5206 = 0, $5207 = 0, $5208 = 0, $5209 = 0;
var $521 = 0, $5210 = 0, $5211 = 0, $5212 = 0, $5213 = 0, $5214 = 0, $5215 = 0, $5216 = 0, $5217 = 0, $5218 = 0, $5219 = 0, $522 = 0, $5220 = 0, $5221 = 0, $5222 = 0, $5223 = 0, $5224 = 0, $5225 = 0, $5226 = 0, $5227 = 0;
var $5228 = 0, $5229 = 0, $523 = 0, $5230 = 0, $5231 = 0, $5232 = 0, $5233 = 0, $5234 = 0, $5235 = 0, $5236 = 0, $5237 = 0, $5238 = 0, $5239 = 0, $524 = 0, $5240 = 0, $5241 = 0, $5242 = 0, $5243 = 0, $5244 = 0, $5245 = 0;
var $5246 = 0, $5247 = 0, $5248 = 0, $5249 = 0, $525 = 0, $5250 = 0, $5251 = 0, $5252 = 0, $5253 = 0, $5254 = 0, $5255 = 0, $5256 = 0, $5257 = 0, $5258 = 0, $5259 = 0, $526 = 0, $5260 = 0, $5261 = 0, $5262 = 0, $5263 = 0;
var $5264 = 0, $5265 = 0, $5266 = 0, $5267 = 0, $5268 = 0, $5269 = 0, $527 = 0, $5270 = 0, $5271 = 0, $5272 = 0, $5273 = 0, $5274 = 0, $5275 = 0, $5276 = 0, $5277 = 0, $5278 = 0, $5279 = 0, $528 = 0, $5280 = 0, $5281 = 0;
var $5282 = 0, $5283 = 0, $5284 = 0, $5285 = 0, $5286 = 0, $5287 = 0, $5288 = 0, $5289 = 0, $529 = 0, $5290 = 0, $5291 = 0, $5292 = 0, $5293 = 0, $5294 = 0, $5295 = 0, $5296 = 0, $5297 = 0, $5298 = 0, $5299 = 0, $53 = 0;
var $530 = 0, $5300 = 0, $5301 = 0, $5302 = 0, $5303 = 0, $5304 = 0, $5305 = 0, $5306 = 0, $5307 = 0, $5308 = 0, $5309 = 0, $531 = 0, $5310 = 0, $5311 = 0, $5312 = 0, $5313 = 0, $5314 = 0, $5315 = 0, $5316 = 0, $5317 = 0;
var $5318 = 0, $5319 = 0, $532 = 0, $5320 = 0, $5321 = 0, $5322 = 0, $5323 = 0, $5324 = 0, $5325 = 0, $5326 = 0, $5327 = 0, $5328 = 0, $5329 = 0, $533 = 0, $5330 = 0, $5331 = 0, $5332 = 0, $5333 = 0, $5334 = 0, $5335 = 0;
var $5336 = 0, $5337 = 0, $5338 = 0, $5339 = 0, $534 = 0, $5340 = 0, $5341 = 0, $5342 = 0, $5343 = 0, $5344 = 0, $5345 = 0, $5346 = 0, $5347 = 0, $5348 = 0, $5349 = 0, $535 = 0, $5350 = 0, $5351 = 0, $5352 = 0, $5353 = 0;
var $5354 = 0, $5355 = 0, $5356 = 0, $5357 = 0, $5358 = 0, $5359 = 0, $536 = 0, $5360 = 0, $5361 = 0, $5362 = 0, $5363 = 0, $5364 = 0, $5365 = 0, $5366 = 0, $5367 = 0, $5368 = 0, $5369 = 0, $537 = 0, $5370 = 0, $5371 = 0;
var $5372 = 0, $5373 = 0, $5374 = 0, $5375 = 0, $5376 = 0, $5377 = 0, $5378 = 0, $5379 = 0, $538 = 0, $5380 = 0, $5381 = 0, $5382 = 0, $5383 = 0, $5384 = 0, $5385 = 0, $5386 = 0, $5387 = 0, $5388 = 0, $5389 = 0, $539 = 0;
var $5390 = 0, $5391 = 0, $5392 = 0, $5393 = 0, $5394 = 0, $5395 = 0, $5396 = 0, $5397 = 0, $5398 = 0, $5399 = 0, $54 = 0, $540 = 0, $5400 = 0, $5401 = 0, $5402 = 0, $5403 = 0, $5404 = 0, $5405 = 0, $5406 = 0, $5407 = 0;
var $5408 = 0, $5409 = 0, $541 = 0, $5410 = 0, $5411 = 0, $5412 = 0, $5413 = 0, $5414 = 0, $5415 = 0, $5416 = 0, $5417 = 0, $5418 = 0, $5419 = 0, $542 = 0, $5420 = 0, $5421 = 0, $5422 = 0, $5423 = 0, $5424 = 0, $5425 = 0;
var $5426 = 0, $5427 = 0, $5428 = 0, $5429 = 0, $543 = 0, $5430 = 0, $5431 = 0, $5432 = 0, $5433 = 0, $5434 = 0, $5435 = 0, $5436 = 0, $5437 = 0, $5438 = 0, $5439 = 0, $544 = 0, $5440 = 0, $5441 = 0, $5442 = 0, $5443 = 0;
var $5444 = 0, $5445 = 0, $5446 = 0, $5447 = 0, $5448 = 0, $5449 = 0, $545 = 0, $5450 = 0, $5451 = 0, $5452 = 0, $5453 = 0, $5454 = 0, $5455 = 0, $5456 = 0, $5457 = 0, $5458 = 0, $5459 = 0, $546 = 0, $5460 = 0, $5461 = 0;
var $5462 = 0, $5463 = 0, $5464 = 0, $5465 = 0, $5466 = 0, $5467 = 0, $5468 = 0, $5469 = 0, $547 = 0, $5470 = 0, $5471 = 0, $5472 = 0, $5473 = 0, $5474 = 0, $5475 = 0, $5476 = 0, $5477 = 0, $5478 = 0, $5479 = 0, $548 = 0;
var $5480 = 0, $5481 = 0, $5482 = 0, $5483 = 0, $5484 = 0, $5485 = 0, $5486 = 0, $5487 = 0, $5488 = 0, $5489 = 0, $549 = 0, $5490 = 0, $5491 = 0, $5492 = 0, $5493 = 0, $5494 = 0, $5495 = 0, $5496 = 0, $5497 = 0, $5498 = 0;
var $5499 = 0, $55 = 0, $550 = 0, $5500 = 0, $5501 = 0, $5502 = 0, $5503 = 0, $5504 = 0, $5505 = 0, $5506 = 0, $5507 = 0, $5508 = 0, $5509 = 0, $551 = 0, $5510 = 0, $5511 = 0, $5512 = 0, $5513 = 0, $5514 = 0, $5515 = 0;
var $5516 = 0, $5517 = 0, $5518 = 0, $5519 = 0, $552 = 0, $5520 = 0, $5521 = 0, $5522 = 0, $5523 = 0, $5524 = 0, $5525 = 0, $5526 = 0, $5527 = 0, $5528 = 0, $5529 = 0, $553 = 0, $5530 = 0, $5531 = 0, $5532 = 0, $5533 = 0;
var $5534 = 0, $5535 = 0, $5536 = 0, $5537 = 0, $5538 = 0, $5539 = 0, $554 = 0, $5540 = 0, $5541 = 0, $5542 = 0, $5543 = 0, $5544 = 0, $5545 = 0, $5546 = 0, $5547 = 0, $5548 = 0, $5549 = 0, $555 = 0, $5550 = 0, $5551 = 0;
var $5552 = 0, $5553 = 0, $5554 = 0, $5555 = 0, $5556 = 0, $5557 = 0, $5558 = 0, $5559 = 0, $556 = 0, $5560 = 0, $5561 = 0, $5562 = 0, $5563 = 0, $5564 = 0, $5565 = 0, $5566 = 0, $5567 = 0, $5568 = 0, $5569 = 0, $557 = 0;
var $5570 = 0, $5571 = 0, $5572 = 0, $5573 = 0, $5574 = 0, $5575 = 0, $5576 = 0, $5577 = 0, $5578 = 0, $5579 = 0, $558 = 0, $5580 = 0, $5581 = 0, $5582 = 0, $5583 = 0, $5584 = 0, $5585 = 0, $5586 = 0, $5587 = 0, $5588 = 0;
var $5589 = 0, $559 = 0, $5590 = 0, $5591 = 0, $5592 = 0, $5593 = 0, $5594 = 0, $5595 = 0, $5596 = 0, $5597 = 0, $5598 = 0, $5599 = 0, $56 = 0, $560 = 0, $5600 = 0, $5601 = 0, $5602 = 0, $5603 = 0, $5604 = 0, $5605 = 0;
var $5606 = 0, $5607 = 0, $5608 = 0, $5609 = 0, $561 = 0, $5610 = 0, $5611 = 0, $5612 = 0, $5613 = 0, $5614 = 0, $5615 = 0, $5616 = 0, $5617 = 0, $5618 = 0, $5619 = 0, $562 = 0, $5620 = 0, $5621 = 0, $5622 = 0, $5623 = 0;
var $5624 = 0, $5625 = 0, $5626 = 0, $5627 = 0, $5628 = 0, $5629 = 0, $563 = 0, $5630 = 0, $5631 = 0, $5632 = 0, $5633 = 0, $5634 = 0, $5635 = 0, $5636 = 0, $5637 = 0, $5638 = 0, $5639 = 0, $564 = 0, $5640 = 0, $5641 = 0;
var $5642 = 0, $5643 = 0, $5644 = 0, $5645 = 0, $5646 = 0, $5647 = 0, $5648 = 0, $5649 = 0, $565 = 0, $5650 = 0, $5651 = 0, $5652 = 0, $5653 = 0, $5654 = 0, $5655 = 0, $5656 = 0, $5657 = 0, $5658 = 0, $5659 = 0, $566 = 0;
var $5660 = 0, $5661 = 0, $5662 = 0, $5663 = 0, $5664 = 0, $5665 = 0, $5666 = 0, $5667 = 0, $5668 = 0, $5669 = 0, $567 = 0, $5670 = 0, $5671 = 0, $5672 = 0, $5673 = 0, $5674 = 0, $5675 = 0, $5676 = 0, $5677 = 0, $5678 = 0;
var $5679 = 0, $568 = 0, $5680 = 0, $5681 = 0, $5682 = 0, $5683 = 0, $5684 = 0, $5685 = 0, $5686 = 0, $5687 = 0, $5688 = 0, $5689 = 0, $569 = 0, $5690 = 0, $5691 = 0, $5692 = 0, $5693 = 0, $5694 = 0, $5695 = 0, $5696 = 0;
var $5697 = 0, $5698 = 0, $5699 = 0, $57 = 0, $570 = 0, $5700 = 0, $5701 = 0, $5702 = 0, $5703 = 0, $5704 = 0, $5705 = 0, $5706 = 0, $5707 = 0, $5708 = 0, $5709 = 0, $571 = 0, $5710 = 0, $5711 = 0, $5712 = 0, $5713 = 0;
var $5714 = 0, $5715 = 0, $5716 = 0, $5717 = 0, $5718 = 0, $5719 = 0, $572 = 0, $5720 = 0, $5721 = 0, $5722 = 0, $5723 = 0, $5724 = 0, $5725 = 0, $5726 = 0, $5727 = 0, $5728 = 0, $5729 = 0, $573 = 0, $5730 = 0, $5731 = 0;
var $5732 = 0, $5733 = 0, $5734 = 0, $5735 = 0, $5736 = 0, $5737 = 0, $5738 = 0, $5739 = 0, $574 = 0, $5740 = 0, $5741 = 0, $5742 = 0, $5743 = 0, $5744 = 0, $5745 = 0, $5746 = 0, $5747 = 0, $5748 = 0, $5749 = 0, $575 = 0;
var $5750 = 0, $5751 = 0, $5752 = 0, $5753 = 0, $5754 = 0, $5755 = 0, $5756 = 0, $5757 = 0, $5758 = 0, $5759 = 0, $576 = 0, $5760 = 0, $5761 = 0, $5762 = 0, $5763 = 0, $5764 = 0, $5765 = 0, $5766 = 0, $5767 = 0, $5768 = 0;
var $5769 = 0, $577 = 0, $5770 = 0, $5771 = 0, $5772 = 0, $5773 = 0, $5774 = 0, $5775 = 0, $5776 = 0, $5777 = 0, $5778 = 0, $5779 = 0, $578 = 0, $5780 = 0, $5781 = 0, $5782 = 0, $5783 = 0, $5784 = 0, $5785 = 0, $5786 = 0;
var $5787 = 0, $5788 = 0, $5789 = 0, $579 = 0, $5790 = 0, $5791 = 0, $5792 = 0, $5793 = 0, $5794 = 0, $5795 = 0, $5796 = 0, $5797 = 0, $5798 = 0, $5799 = 0, $58 = 0, $580 = 0, $5800 = 0, $5801 = 0, $5802 = 0, $5803 = 0;
var $5804 = 0, $5805 = 0, $5806 = 0, $5807 = 0, $5808 = 0, $5809 = 0, $581 = 0, $5810 = 0, $5811 = 0, $5812 = 0, $5813 = 0, $5814 = 0, $5815 = 0, $5816 = 0, $5817 = 0, $5818 = 0, $5819 = 0, $582 = 0, $5820 = 0, $5821 = 0;
var $5822 = 0, $5823 = 0, $5824 = 0, $5825 = 0, $5826 = 0, $5827 = 0, $5828 = 0, $5829 = 0, $583 = 0, $5830 = 0, $5831 = 0, $5832 = 0, $5833 = 0, $5834 = 0, $5835 = 0, $5836 = 0, $5837 = 0, $5838 = 0, $5839 = 0, $584 = 0;
var $5840 = 0, $5841 = 0, $5842 = 0, $5843 = 0, $5844 = 0, $5845 = 0, $5846 = 0, $5847 = 0, $5848 = 0, $5849 = 0, $585 = 0, $5850 = 0, $5851 = 0, $5852 = 0, $5853 = 0, $5854 = 0, $5855 = 0, $5856 = 0, $5857 = 0, $5858 = 0;
var $5859 = 0, $586 = 0, $5860 = 0, $5861 = 0, $5862 = 0, $5863 = 0, $5864 = 0, $5865 = 0, $5866 = 0, $5867 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0;
var $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0;
var $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0;
var $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0;
var $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0;
var $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0;
var $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0;
var $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0;
var $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0;
var $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0;
var $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0;
var $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0;
var $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0;
var $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0;
var $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0;
var $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0;
var $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0;
var $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0;
var $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0;
var $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0;
var $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0;
var $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0;
var $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0;
var $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $a = 0, $b = 0, $c = 0, $d = 0, $e = 0, $f = 0, $g = 0, $h = 0, $t = 0, $t1 = 0, $t11 = 0, $t2 = 0;
var $t22 = 0, $w = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$a = sp + 216|0;
$b = sp + 208|0;
$c = sp + 200|0;
$d = sp + 192|0;
$e = sp + 184|0;
$f = sp + 176|0;
$g = sp + 168|0;
$h = sp + 160|0;
$w = sp + 32|0;
$t1 = sp + 24|0;
$t2 = sp + 16|0;
$t11 = sp + 8|0;
$t22 = sp;
$0 = $hd;
$1 = $data;
$2 = $0;
$3 = $2;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = $a;
$10 = $9;
HEAP32[$10>>2] = $5;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $8;
$13 = $0;
$14 = ((($13)) + 8|0);
$15 = $14;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = $b;
$22 = $21;
HEAP32[$22>>2] = $17;
$23 = (($21) + 4)|0;
$24 = $23;
HEAP32[$24>>2] = $20;
$25 = $0;
$26 = ((($25)) + 16|0);
$27 = $26;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $c;
$34 = $33;
HEAP32[$34>>2] = $29;
$35 = (($33) + 4)|0;
$36 = $35;
HEAP32[$36>>2] = $32;
$37 = $0;
$38 = ((($37)) + 24|0);
$39 = $38;
$40 = $39;
$41 = HEAP32[$40>>2]|0;
$42 = (($39) + 4)|0;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = $d;
$46 = $45;
HEAP32[$46>>2] = $41;
$47 = (($45) + 4)|0;
$48 = $47;
HEAP32[$48>>2] = $44;
$49 = $0;
$50 = ((($49)) + 32|0);
$51 = $50;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (($51) + 4)|0;
$55 = $54;
$56 = HEAP32[$55>>2]|0;
$57 = $e;
$58 = $57;
HEAP32[$58>>2] = $53;
$59 = (($57) + 4)|0;
$60 = $59;
HEAP32[$60>>2] = $56;
$61 = $0;
$62 = ((($61)) + 40|0);
$63 = $62;
$64 = $63;
$65 = HEAP32[$64>>2]|0;
$66 = (($63) + 4)|0;
$67 = $66;
$68 = HEAP32[$67>>2]|0;
$69 = $f;
$70 = $69;
HEAP32[$70>>2] = $65;
$71 = (($69) + 4)|0;
$72 = $71;
HEAP32[$72>>2] = $68;
$73 = $0;
$74 = ((($73)) + 48|0);
$75 = $74;
$76 = $75;
$77 = HEAP32[$76>>2]|0;
$78 = (($75) + 4)|0;
$79 = $78;
$80 = HEAP32[$79>>2]|0;
$81 = $g;
$82 = $81;
HEAP32[$82>>2] = $77;
$83 = (($81) + 4)|0;
$84 = $83;
HEAP32[$84>>2] = $80;
$85 = $0;
$86 = ((($85)) + 56|0);
$87 = $86;
$88 = $87;
$89 = HEAP32[$88>>2]|0;
$90 = (($87) + 4)|0;
$91 = $90;
$92 = HEAP32[$91>>2]|0;
$93 = $h;
$94 = $93;
HEAP32[$94>>2] = $89;
$95 = (($93) + 4)|0;
$96 = $95;
HEAP32[$96>>2] = $92;
$t = 0;
while(1) {
$97 = $t;
$98 = ($97|0)<(16);
if (!($98)) {
break;
}
$99 = $1;
$100 = $t;
$101 = $100<<3;
$102 = (($99) + ($101)|0);
$103 = (_buf_get_be64($102)|0);
$104 = tempRet0;
$105 = $t;
$106 = (($w) + ($105<<3)|0);
$107 = $106;
$108 = $107;
HEAP32[$108>>2] = $103;
$109 = (($107) + 4)|0;
$110 = $109;
HEAP32[$110>>2] = $104;
$111 = $t;
$112 = (($111) + 1)|0;
$t = $112;
}
$t = 0;
while(1) {
$113 = $t;
$114 = ($113|0)<(64);
if (!($114)) {
break;
}
$115 = $h;
$116 = $115;
$117 = HEAP32[$116>>2]|0;
$118 = (($115) + 4)|0;
$119 = $118;
$120 = HEAP32[$119>>2]|0;
$121 = $e;
$122 = $121;
$123 = HEAP32[$122>>2]|0;
$124 = (($121) + 4)|0;
$125 = $124;
$126 = HEAP32[$125>>2]|0;
$127 = (_Sum1_1422($123,$126)|0);
$128 = tempRet0;
$129 = (_i64Add(($117|0),($120|0),($127|0),($128|0))|0);
$130 = tempRet0;
$131 = $e;
$132 = $131;
$133 = HEAP32[$132>>2]|0;
$134 = (($131) + 4)|0;
$135 = $134;
$136 = HEAP32[$135>>2]|0;
$137 = $f;
$138 = $137;
$139 = HEAP32[$138>>2]|0;
$140 = (($137) + 4)|0;
$141 = $140;
$142 = HEAP32[$141>>2]|0;
$143 = $g;
$144 = $143;
$145 = HEAP32[$144>>2]|0;
$146 = (($143) + 4)|0;
$147 = $146;
$148 = HEAP32[$147>>2]|0;
$149 = (_Ch($133,$136,$139,$142,$145,$148)|0);
$150 = tempRet0;
$151 = (_i64Add(($129|0),($130|0),($149|0),($150|0))|0);
$152 = tempRet0;
$153 = $t;
$154 = (80 + ($153<<3)|0);
$155 = $154;
$156 = $155;
$157 = HEAP32[$156>>2]|0;
$158 = (($155) + 4)|0;
$159 = $158;
$160 = HEAP32[$159>>2]|0;
$161 = (_i64Add(($151|0),($152|0),($157|0),($160|0))|0);
$162 = tempRet0;
$163 = $w;
$164 = $163;
$165 = HEAP32[$164>>2]|0;
$166 = (($163) + 4)|0;
$167 = $166;
$168 = HEAP32[$167>>2]|0;
$169 = (_i64Add(($161|0),($162|0),($165|0),($168|0))|0);
$170 = tempRet0;
$171 = $t1;
$172 = $171;
HEAP32[$172>>2] = $169;
$173 = (($171) + 4)|0;
$174 = $173;
HEAP32[$174>>2] = $170;
$175 = ((($w)) + 112|0);
$176 = $175;
$177 = $176;
$178 = HEAP32[$177>>2]|0;
$179 = (($176) + 4)|0;
$180 = $179;
$181 = HEAP32[$180>>2]|0;
$182 = (_ROTR($178,$181,19,0)|0);
$183 = tempRet0;
$184 = ((($w)) + 112|0);
$185 = $184;
$186 = $185;
$187 = HEAP32[$186>>2]|0;
$188 = (($185) + 4)|0;
$189 = $188;
$190 = HEAP32[$189>>2]|0;
$191 = (_ROTR($187,$190,61,0)|0);
$192 = tempRet0;
$193 = $182 ^ $191;
$194 = $183 ^ $192;
$195 = ((($w)) + 112|0);
$196 = $195;
$197 = $196;
$198 = HEAP32[$197>>2]|0;
$199 = (($196) + 4)|0;
$200 = $199;
$201 = HEAP32[$200>>2]|0;
$202 = (_bitshift64Lshr(($198|0),($201|0),6)|0);
$203 = tempRet0;
$204 = $193 ^ $202;
$205 = $194 ^ $203;
$206 = ((($w)) + 72|0);
$207 = $206;
$208 = $207;
$209 = HEAP32[$208>>2]|0;
$210 = (($207) + 4)|0;
$211 = $210;
$212 = HEAP32[$211>>2]|0;
$213 = (_i64Add(($204|0),($205|0),($209|0),($212|0))|0);
$214 = tempRet0;
$215 = ((($w)) + 8|0);
$216 = $215;
$217 = $216;
$218 = HEAP32[$217>>2]|0;
$219 = (($216) + 4)|0;
$220 = $219;
$221 = HEAP32[$220>>2]|0;
$222 = (_ROTR($218,$221,1,0)|0);
$223 = tempRet0;
$224 = ((($w)) + 8|0);
$225 = $224;
$226 = $225;
$227 = HEAP32[$226>>2]|0;
$228 = (($225) + 4)|0;
$229 = $228;
$230 = HEAP32[$229>>2]|0;
$231 = (_ROTR($227,$230,8,0)|0);
$232 = tempRet0;
$233 = $222 ^ $231;
$234 = $223 ^ $232;
$235 = ((($w)) + 8|0);
$236 = $235;
$237 = $236;
$238 = HEAP32[$237>>2]|0;
$239 = (($236) + 4)|0;
$240 = $239;
$241 = HEAP32[$240>>2]|0;
$242 = (_bitshift64Lshr(($238|0),($241|0),7)|0);
$243 = tempRet0;
$244 = $233 ^ $242;
$245 = $234 ^ $243;
$246 = (_i64Add(($213|0),($214|0),($244|0),($245|0))|0);
$247 = tempRet0;
$248 = $w;
$249 = $248;
$250 = HEAP32[$249>>2]|0;
$251 = (($248) + 4)|0;
$252 = $251;
$253 = HEAP32[$252>>2]|0;
$254 = (_i64Add(($250|0),($253|0),($246|0),($247|0))|0);
$255 = tempRet0;
$256 = $w;
$257 = $256;
HEAP32[$257>>2] = $254;
$258 = (($256) + 4)|0;
$259 = $258;
HEAP32[$259>>2] = $255;
$260 = $a;
$261 = $260;
$262 = HEAP32[$261>>2]|0;
$263 = (($260) + 4)|0;
$264 = $263;
$265 = HEAP32[$264>>2]|0;
$266 = (_Sum0_1423($262,$265)|0);
$267 = tempRet0;
$268 = $a;
$269 = $268;
$270 = HEAP32[$269>>2]|0;
$271 = (($268) + 4)|0;
$272 = $271;
$273 = HEAP32[$272>>2]|0;
$274 = $b;
$275 = $274;
$276 = HEAP32[$275>>2]|0;
$277 = (($274) + 4)|0;
$278 = $277;
$279 = HEAP32[$278>>2]|0;
$280 = $c;
$281 = $280;
$282 = HEAP32[$281>>2]|0;
$283 = (($280) + 4)|0;
$284 = $283;
$285 = HEAP32[$284>>2]|0;
$286 = (_Maj_1424($270,$273,$276,$279,$282,$285)|0);
$287 = tempRet0;
$288 = (_i64Add(($266|0),($267|0),($286|0),($287|0))|0);
$289 = tempRet0;
$290 = $t2;
$291 = $290;
HEAP32[$291>>2] = $288;
$292 = (($290) + 4)|0;
$293 = $292;
HEAP32[$293>>2] = $289;
$294 = $t1;
$295 = $294;
$296 = HEAP32[$295>>2]|0;
$297 = (($294) + 4)|0;
$298 = $297;
$299 = HEAP32[$298>>2]|0;
$300 = $d;
$301 = $300;
$302 = HEAP32[$301>>2]|0;
$303 = (($300) + 4)|0;
$304 = $303;
$305 = HEAP32[$304>>2]|0;
$306 = (_i64Add(($302|0),($305|0),($296|0),($299|0))|0);
$307 = tempRet0;
$308 = $d;
$309 = $308;
HEAP32[$309>>2] = $306;
$310 = (($308) + 4)|0;
$311 = $310;
HEAP32[$311>>2] = $307;
$312 = $t1;
$313 = $312;
$314 = HEAP32[$313>>2]|0;
$315 = (($312) + 4)|0;
$316 = $315;
$317 = HEAP32[$316>>2]|0;
$318 = $t2;
$319 = $318;
$320 = HEAP32[$319>>2]|0;
$321 = (($318) + 4)|0;
$322 = $321;
$323 = HEAP32[$322>>2]|0;
$324 = (_i64Add(($314|0),($317|0),($320|0),($323|0))|0);
$325 = tempRet0;
$326 = $h;
$327 = $326;
HEAP32[$327>>2] = $324;
$328 = (($326) + 4)|0;
$329 = $328;
HEAP32[$329>>2] = $325;
$330 = $g;
$331 = $330;
$332 = HEAP32[$331>>2]|0;
$333 = (($330) + 4)|0;
$334 = $333;
$335 = HEAP32[$334>>2]|0;
$336 = $d;
$337 = $336;
$338 = HEAP32[$337>>2]|0;
$339 = (($336) + 4)|0;
$340 = $339;
$341 = HEAP32[$340>>2]|0;
$342 = (_Sum1_1422($338,$341)|0);
$343 = tempRet0;
$344 = (_i64Add(($332|0),($335|0),($342|0),($343|0))|0);
$345 = tempRet0;
$346 = $d;
$347 = $346;
$348 = HEAP32[$347>>2]|0;
$349 = (($346) + 4)|0;
$350 = $349;
$351 = HEAP32[$350>>2]|0;
$352 = $e;
$353 = $352;
$354 = HEAP32[$353>>2]|0;
$355 = (($352) + 4)|0;
$356 = $355;
$357 = HEAP32[$356>>2]|0;
$358 = $f;
$359 = $358;
$360 = HEAP32[$359>>2]|0;
$361 = (($358) + 4)|0;
$362 = $361;
$363 = HEAP32[$362>>2]|0;
$364 = (_Ch($348,$351,$354,$357,$360,$363)|0);
$365 = tempRet0;
$366 = (_i64Add(($344|0),($345|0),($364|0),($365|0))|0);
$367 = tempRet0;
$368 = $t;
$369 = (($368) + 1)|0;
$370 = (80 + ($369<<3)|0);
$371 = $370;
$372 = $371;
$373 = HEAP32[$372>>2]|0;
$374 = (($371) + 4)|0;
$375 = $374;
$376 = HEAP32[$375>>2]|0;
$377 = (_i64Add(($366|0),($367|0),($373|0),($376|0))|0);
$378 = tempRet0;
$379 = ((($w)) + 8|0);
$380 = $379;
$381 = $380;
$382 = HEAP32[$381>>2]|0;
$383 = (($380) + 4)|0;
$384 = $383;
$385 = HEAP32[$384>>2]|0;
$386 = (_i64Add(($377|0),($378|0),($382|0),($385|0))|0);
$387 = tempRet0;
$388 = $t1;
$389 = $388;
HEAP32[$389>>2] = $386;
$390 = (($388) + 4)|0;
$391 = $390;
HEAP32[$391>>2] = $387;
$392 = ((($w)) + 120|0);
$393 = $392;
$394 = $393;
$395 = HEAP32[$394>>2]|0;
$396 = (($393) + 4)|0;
$397 = $396;
$398 = HEAP32[$397>>2]|0;
$399 = (_ROTR($395,$398,19,0)|0);
$400 = tempRet0;
$401 = ((($w)) + 120|0);
$402 = $401;
$403 = $402;
$404 = HEAP32[$403>>2]|0;
$405 = (($402) + 4)|0;
$406 = $405;
$407 = HEAP32[$406>>2]|0;
$408 = (_ROTR($404,$407,61,0)|0);
$409 = tempRet0;
$410 = $399 ^ $408;
$411 = $400 ^ $409;
$412 = ((($w)) + 120|0);
$413 = $412;
$414 = $413;
$415 = HEAP32[$414>>2]|0;
$416 = (($413) + 4)|0;
$417 = $416;
$418 = HEAP32[$417>>2]|0;
$419 = (_bitshift64Lshr(($415|0),($418|0),6)|0);
$420 = tempRet0;
$421 = $410 ^ $419;
$422 = $411 ^ $420;
$423 = ((($w)) + 80|0);
$424 = $423;
$425 = $424;
$426 = HEAP32[$425>>2]|0;
$427 = (($424) + 4)|0;
$428 = $427;
$429 = HEAP32[$428>>2]|0;
$430 = (_i64Add(($421|0),($422|0),($426|0),($429|0))|0);
$431 = tempRet0;
$432 = ((($w)) + 16|0);
$433 = $432;
$434 = $433;
$435 = HEAP32[$434>>2]|0;
$436 = (($433) + 4)|0;
$437 = $436;
$438 = HEAP32[$437>>2]|0;
$439 = (_ROTR($435,$438,1,0)|0);
$440 = tempRet0;
$441 = ((($w)) + 16|0);
$442 = $441;
$443 = $442;
$444 = HEAP32[$443>>2]|0;
$445 = (($442) + 4)|0;
$446 = $445;
$447 = HEAP32[$446>>2]|0;
$448 = (_ROTR($444,$447,8,0)|0);
$449 = tempRet0;
$450 = $439 ^ $448;
$451 = $440 ^ $449;
$452 = ((($w)) + 16|0);
$453 = $452;
$454 = $453;
$455 = HEAP32[$454>>2]|0;
$456 = (($453) + 4)|0;
$457 = $456;
$458 = HEAP32[$457>>2]|0;
$459 = (_bitshift64Lshr(($455|0),($458|0),7)|0);
$460 = tempRet0;
$461 = $450 ^ $459;
$462 = $451 ^ $460;
$463 = (_i64Add(($430|0),($431|0),($461|0),($462|0))|0);
$464 = tempRet0;
$465 = ((($w)) + 8|0);
$466 = $465;
$467 = $466;
$468 = HEAP32[$467>>2]|0;
$469 = (($466) + 4)|0;
$470 = $469;
$471 = HEAP32[$470>>2]|0;
$472 = (_i64Add(($468|0),($471|0),($463|0),($464|0))|0);
$473 = tempRet0;
$474 = $465;
$475 = $474;
HEAP32[$475>>2] = $472;
$476 = (($474) + 4)|0;
$477 = $476;
HEAP32[$477>>2] = $473;
$478 = $h;
$479 = $478;
$480 = HEAP32[$479>>2]|0;
$481 = (($478) + 4)|0;
$482 = $481;
$483 = HEAP32[$482>>2]|0;
$484 = (_Sum0_1423($480,$483)|0);
$485 = tempRet0;
$486 = $h;
$487 = $486;
$488 = HEAP32[$487>>2]|0;
$489 = (($486) + 4)|0;
$490 = $489;
$491 = HEAP32[$490>>2]|0;
$492 = $a;
$493 = $492;
$494 = HEAP32[$493>>2]|0;
$495 = (($492) + 4)|0;
$496 = $495;
$497 = HEAP32[$496>>2]|0;
$498 = $b;
$499 = $498;
$500 = HEAP32[$499>>2]|0;
$501 = (($498) + 4)|0;
$502 = $501;
$503 = HEAP32[$502>>2]|0;
$504 = (_Maj_1424($488,$491,$494,$497,$500,$503)|0);
$505 = tempRet0;
$506 = (_i64Add(($484|0),($485|0),($504|0),($505|0))|0);
$507 = tempRet0;
$508 = $t2;
$509 = $508;
HEAP32[$509>>2] = $506;
$510 = (($508) + 4)|0;
$511 = $510;
HEAP32[$511>>2] = $507;
$512 = $t1;
$513 = $512;
$514 = HEAP32[$513>>2]|0;
$515 = (($512) + 4)|0;
$516 = $515;
$517 = HEAP32[$516>>2]|0;
$518 = $c;
$519 = $518;
$520 = HEAP32[$519>>2]|0;
$521 = (($518) + 4)|0;
$522 = $521;
$523 = HEAP32[$522>>2]|0;
$524 = (_i64Add(($520|0),($523|0),($514|0),($517|0))|0);
$525 = tempRet0;
$526 = $c;
$527 = $526;
HEAP32[$527>>2] = $524;
$528 = (($526) + 4)|0;
$529 = $528;
HEAP32[$529>>2] = $525;
$530 = $t1;
$531 = $530;
$532 = HEAP32[$531>>2]|0;
$533 = (($530) + 4)|0;
$534 = $533;
$535 = HEAP32[$534>>2]|0;
$536 = $t2;
$537 = $536;
$538 = HEAP32[$537>>2]|0;
$539 = (($536) + 4)|0;
$540 = $539;
$541 = HEAP32[$540>>2]|0;
$542 = (_i64Add(($532|0),($535|0),($538|0),($541|0))|0);
$543 = tempRet0;
$544 = $g;
$545 = $544;
HEAP32[$545>>2] = $542;
$546 = (($544) + 4)|0;
$547 = $546;
HEAP32[$547>>2] = $543;
$548 = $f;
$549 = $548;
$550 = HEAP32[$549>>2]|0;
$551 = (($548) + 4)|0;
$552 = $551;
$553 = HEAP32[$552>>2]|0;
$554 = $c;
$555 = $554;
$556 = HEAP32[$555>>2]|0;
$557 = (($554) + 4)|0;
$558 = $557;
$559 = HEAP32[$558>>2]|0;
$560 = (_Sum1_1422($556,$559)|0);
$561 = tempRet0;
$562 = (_i64Add(($550|0),($553|0),($560|0),($561|0))|0);
$563 = tempRet0;
$564 = $c;
$565 = $564;
$566 = HEAP32[$565>>2]|0;
$567 = (($564) + 4)|0;
$568 = $567;
$569 = HEAP32[$568>>2]|0;
$570 = $d;
$571 = $570;
$572 = HEAP32[$571>>2]|0;
$573 = (($570) + 4)|0;
$574 = $573;
$575 = HEAP32[$574>>2]|0;
$576 = $e;
$577 = $576;
$578 = HEAP32[$577>>2]|0;
$579 = (($576) + 4)|0;
$580 = $579;
$581 = HEAP32[$580>>2]|0;
$582 = (_Ch($566,$569,$572,$575,$578,$581)|0);
$583 = tempRet0;
$584 = (_i64Add(($562|0),($563|0),($582|0),($583|0))|0);
$585 = tempRet0;
$586 = $t;
$587 = (($586) + 2)|0;
$588 = (80 + ($587<<3)|0);
$589 = $588;
$590 = $589;
$591 = HEAP32[$590>>2]|0;
$592 = (($589) + 4)|0;
$593 = $592;
$594 = HEAP32[$593>>2]|0;
$595 = (_i64Add(($584|0),($585|0),($591|0),($594|0))|0);
$596 = tempRet0;
$597 = ((($w)) + 16|0);
$598 = $597;
$599 = $598;
$600 = HEAP32[$599>>2]|0;
$601 = (($598) + 4)|0;
$602 = $601;
$603 = HEAP32[$602>>2]|0;
$604 = (_i64Add(($595|0),($596|0),($600|0),($603|0))|0);
$605 = tempRet0;
$606 = $t1;
$607 = $606;
HEAP32[$607>>2] = $604;
$608 = (($606) + 4)|0;
$609 = $608;
HEAP32[$609>>2] = $605;
$610 = $w;
$611 = $610;
$612 = HEAP32[$611>>2]|0;
$613 = (($610) + 4)|0;
$614 = $613;
$615 = HEAP32[$614>>2]|0;
$616 = (_ROTR($612,$615,19,0)|0);
$617 = tempRet0;
$618 = $w;
$619 = $618;
$620 = HEAP32[$619>>2]|0;
$621 = (($618) + 4)|0;
$622 = $621;
$623 = HEAP32[$622>>2]|0;
$624 = (_ROTR($620,$623,61,0)|0);
$625 = tempRet0;
$626 = $616 ^ $624;
$627 = $617 ^ $625;
$628 = $w;
$629 = $628;
$630 = HEAP32[$629>>2]|0;
$631 = (($628) + 4)|0;
$632 = $631;
$633 = HEAP32[$632>>2]|0;
$634 = (_bitshift64Lshr(($630|0),($633|0),6)|0);
$635 = tempRet0;
$636 = $626 ^ $634;
$637 = $627 ^ $635;
$638 = ((($w)) + 88|0);
$639 = $638;
$640 = $639;
$641 = HEAP32[$640>>2]|0;
$642 = (($639) + 4)|0;
$643 = $642;
$644 = HEAP32[$643>>2]|0;
$645 = (_i64Add(($636|0),($637|0),($641|0),($644|0))|0);
$646 = tempRet0;
$647 = ((($w)) + 24|0);
$648 = $647;
$649 = $648;
$650 = HEAP32[$649>>2]|0;
$651 = (($648) + 4)|0;
$652 = $651;
$653 = HEAP32[$652>>2]|0;
$654 = (_ROTR($650,$653,1,0)|0);
$655 = tempRet0;
$656 = ((($w)) + 24|0);
$657 = $656;
$658 = $657;
$659 = HEAP32[$658>>2]|0;
$660 = (($657) + 4)|0;
$661 = $660;
$662 = HEAP32[$661>>2]|0;
$663 = (_ROTR($659,$662,8,0)|0);
$664 = tempRet0;
$665 = $654 ^ $663;
$666 = $655 ^ $664;
$667 = ((($w)) + 24|0);
$668 = $667;
$669 = $668;
$670 = HEAP32[$669>>2]|0;
$671 = (($668) + 4)|0;
$672 = $671;
$673 = HEAP32[$672>>2]|0;
$674 = (_bitshift64Lshr(($670|0),($673|0),7)|0);
$675 = tempRet0;
$676 = $665 ^ $674;
$677 = $666 ^ $675;
$678 = (_i64Add(($645|0),($646|0),($676|0),($677|0))|0);
$679 = tempRet0;
$680 = ((($w)) + 16|0);
$681 = $680;
$682 = $681;
$683 = HEAP32[$682>>2]|0;
$684 = (($681) + 4)|0;
$685 = $684;
$686 = HEAP32[$685>>2]|0;
$687 = (_i64Add(($683|0),($686|0),($678|0),($679|0))|0);
$688 = tempRet0;
$689 = $680;
$690 = $689;
HEAP32[$690>>2] = $687;
$691 = (($689) + 4)|0;
$692 = $691;
HEAP32[$692>>2] = $688;
$693 = $g;
$694 = $693;
$695 = HEAP32[$694>>2]|0;
$696 = (($693) + 4)|0;
$697 = $696;
$698 = HEAP32[$697>>2]|0;
$699 = (_Sum0_1423($695,$698)|0);
$700 = tempRet0;
$701 = $g;
$702 = $701;
$703 = HEAP32[$702>>2]|0;
$704 = (($701) + 4)|0;
$705 = $704;
$706 = HEAP32[$705>>2]|0;
$707 = $h;
$708 = $707;
$709 = HEAP32[$708>>2]|0;
$710 = (($707) + 4)|0;
$711 = $710;
$712 = HEAP32[$711>>2]|0;
$713 = $a;
$714 = $713;
$715 = HEAP32[$714>>2]|0;
$716 = (($713) + 4)|0;
$717 = $716;
$718 = HEAP32[$717>>2]|0;
$719 = (_Maj_1424($703,$706,$709,$712,$715,$718)|0);
$720 = tempRet0;
$721 = (_i64Add(($699|0),($700|0),($719|0),($720|0))|0);
$722 = tempRet0;
$723 = $t2;
$724 = $723;
HEAP32[$724>>2] = $721;
$725 = (($723) + 4)|0;
$726 = $725;
HEAP32[$726>>2] = $722;
$727 = $t1;
$728 = $727;
$729 = HEAP32[$728>>2]|0;
$730 = (($727) + 4)|0;
$731 = $730;
$732 = HEAP32[$731>>2]|0;
$733 = $b;
$734 = $733;
$735 = HEAP32[$734>>2]|0;
$736 = (($733) + 4)|0;
$737 = $736;
$738 = HEAP32[$737>>2]|0;
$739 = (_i64Add(($735|0),($738|0),($729|0),($732|0))|0);
$740 = tempRet0;
$741 = $b;
$742 = $741;
HEAP32[$742>>2] = $739;
$743 = (($741) + 4)|0;
$744 = $743;
HEAP32[$744>>2] = $740;
$745 = $t1;
$746 = $745;
$747 = HEAP32[$746>>2]|0;
$748 = (($745) + 4)|0;
$749 = $748;
$750 = HEAP32[$749>>2]|0;
$751 = $t2;
$752 = $751;
$753 = HEAP32[$752>>2]|0;
$754 = (($751) + 4)|0;
$755 = $754;
$756 = HEAP32[$755>>2]|0;
$757 = (_i64Add(($747|0),($750|0),($753|0),($756|0))|0);
$758 = tempRet0;
$759 = $f;
$760 = $759;
HEAP32[$760>>2] = $757;
$761 = (($759) + 4)|0;
$762 = $761;
HEAP32[$762>>2] = $758;
$763 = $e;
$764 = $763;
$765 = HEAP32[$764>>2]|0;
$766 = (($763) + 4)|0;
$767 = $766;
$768 = HEAP32[$767>>2]|0;
$769 = $b;
$770 = $769;
$771 = HEAP32[$770>>2]|0;
$772 = (($769) + 4)|0;
$773 = $772;
$774 = HEAP32[$773>>2]|0;
$775 = (_Sum1_1422($771,$774)|0);
$776 = tempRet0;
$777 = (_i64Add(($765|0),($768|0),($775|0),($776|0))|0);
$778 = tempRet0;
$779 = $b;
$780 = $779;
$781 = HEAP32[$780>>2]|0;
$782 = (($779) + 4)|0;
$783 = $782;
$784 = HEAP32[$783>>2]|0;
$785 = $c;
$786 = $785;
$787 = HEAP32[$786>>2]|0;
$788 = (($785) + 4)|0;
$789 = $788;
$790 = HEAP32[$789>>2]|0;
$791 = $d;
$792 = $791;
$793 = HEAP32[$792>>2]|0;
$794 = (($791) + 4)|0;
$795 = $794;
$796 = HEAP32[$795>>2]|0;
$797 = (_Ch($781,$784,$787,$790,$793,$796)|0);
$798 = tempRet0;
$799 = (_i64Add(($777|0),($778|0),($797|0),($798|0))|0);
$800 = tempRet0;
$801 = $t;
$802 = (($801) + 3)|0;
$803 = (80 + ($802<<3)|0);
$804 = $803;
$805 = $804;
$806 = HEAP32[$805>>2]|0;
$807 = (($804) + 4)|0;
$808 = $807;
$809 = HEAP32[$808>>2]|0;
$810 = (_i64Add(($799|0),($800|0),($806|0),($809|0))|0);
$811 = tempRet0;
$812 = ((($w)) + 24|0);
$813 = $812;
$814 = $813;
$815 = HEAP32[$814>>2]|0;
$816 = (($813) + 4)|0;
$817 = $816;
$818 = HEAP32[$817>>2]|0;
$819 = (_i64Add(($810|0),($811|0),($815|0),($818|0))|0);
$820 = tempRet0;
$821 = $t1;
$822 = $821;
HEAP32[$822>>2] = $819;
$823 = (($821) + 4)|0;
$824 = $823;
HEAP32[$824>>2] = $820;
$825 = ((($w)) + 8|0);
$826 = $825;
$827 = $826;
$828 = HEAP32[$827>>2]|0;
$829 = (($826) + 4)|0;
$830 = $829;
$831 = HEAP32[$830>>2]|0;
$832 = (_ROTR($828,$831,19,0)|0);
$833 = tempRet0;
$834 = ((($w)) + 8|0);
$835 = $834;
$836 = $835;
$837 = HEAP32[$836>>2]|0;
$838 = (($835) + 4)|0;
$839 = $838;
$840 = HEAP32[$839>>2]|0;
$841 = (_ROTR($837,$840,61,0)|0);
$842 = tempRet0;
$843 = $832 ^ $841;
$844 = $833 ^ $842;
$845 = ((($w)) + 8|0);
$846 = $845;
$847 = $846;
$848 = HEAP32[$847>>2]|0;
$849 = (($846) + 4)|0;
$850 = $849;
$851 = HEAP32[$850>>2]|0;
$852 = (_bitshift64Lshr(($848|0),($851|0),6)|0);
$853 = tempRet0;
$854 = $843 ^ $852;
$855 = $844 ^ $853;
$856 = ((($w)) + 96|0);
$857 = $856;
$858 = $857;
$859 = HEAP32[$858>>2]|0;
$860 = (($857) + 4)|0;
$861 = $860;
$862 = HEAP32[$861>>2]|0;
$863 = (_i64Add(($854|0),($855|0),($859|0),($862|0))|0);
$864 = tempRet0;
$865 = ((($w)) + 32|0);
$866 = $865;
$867 = $866;
$868 = HEAP32[$867>>2]|0;
$869 = (($866) + 4)|0;
$870 = $869;
$871 = HEAP32[$870>>2]|0;
$872 = (_ROTR($868,$871,1,0)|0);
$873 = tempRet0;
$874 = ((($w)) + 32|0);
$875 = $874;
$876 = $875;
$877 = HEAP32[$876>>2]|0;
$878 = (($875) + 4)|0;
$879 = $878;
$880 = HEAP32[$879>>2]|0;
$881 = (_ROTR($877,$880,8,0)|0);
$882 = tempRet0;
$883 = $872 ^ $881;
$884 = $873 ^ $882;
$885 = ((($w)) + 32|0);
$886 = $885;
$887 = $886;
$888 = HEAP32[$887>>2]|0;
$889 = (($886) + 4)|0;
$890 = $889;
$891 = HEAP32[$890>>2]|0;
$892 = (_bitshift64Lshr(($888|0),($891|0),7)|0);
$893 = tempRet0;
$894 = $883 ^ $892;
$895 = $884 ^ $893;
$896 = (_i64Add(($863|0),($864|0),($894|0),($895|0))|0);
$897 = tempRet0;
$898 = ((($w)) + 24|0);
$899 = $898;
$900 = $899;
$901 = HEAP32[$900>>2]|0;
$902 = (($899) + 4)|0;
$903 = $902;
$904 = HEAP32[$903>>2]|0;
$905 = (_i64Add(($901|0),($904|0),($896|0),($897|0))|0);
$906 = tempRet0;
$907 = $898;
$908 = $907;
HEAP32[$908>>2] = $905;
$909 = (($907) + 4)|0;
$910 = $909;
HEAP32[$910>>2] = $906;
$911 = $f;
$912 = $911;
$913 = HEAP32[$912>>2]|0;
$914 = (($911) + 4)|0;
$915 = $914;
$916 = HEAP32[$915>>2]|0;
$917 = (_Sum0_1423($913,$916)|0);
$918 = tempRet0;
$919 = $f;
$920 = $919;
$921 = HEAP32[$920>>2]|0;
$922 = (($919) + 4)|0;
$923 = $922;
$924 = HEAP32[$923>>2]|0;
$925 = $g;
$926 = $925;
$927 = HEAP32[$926>>2]|0;
$928 = (($925) + 4)|0;
$929 = $928;
$930 = HEAP32[$929>>2]|0;
$931 = $h;
$932 = $931;
$933 = HEAP32[$932>>2]|0;
$934 = (($931) + 4)|0;
$935 = $934;
$936 = HEAP32[$935>>2]|0;
$937 = (_Maj_1424($921,$924,$927,$930,$933,$936)|0);
$938 = tempRet0;
$939 = (_i64Add(($917|0),($918|0),($937|0),($938|0))|0);
$940 = tempRet0;
$941 = $t2;
$942 = $941;
HEAP32[$942>>2] = $939;
$943 = (($941) + 4)|0;
$944 = $943;
HEAP32[$944>>2] = $940;
$945 = $t1;
$946 = $945;
$947 = HEAP32[$946>>2]|0;
$948 = (($945) + 4)|0;
$949 = $948;
$950 = HEAP32[$949>>2]|0;
$951 = $a;
$952 = $951;
$953 = HEAP32[$952>>2]|0;
$954 = (($951) + 4)|0;
$955 = $954;
$956 = HEAP32[$955>>2]|0;
$957 = (_i64Add(($953|0),($956|0),($947|0),($950|0))|0);
$958 = tempRet0;
$959 = $a;
$960 = $959;
HEAP32[$960>>2] = $957;
$961 = (($959) + 4)|0;
$962 = $961;
HEAP32[$962>>2] = $958;
$963 = $t1;
$964 = $963;
$965 = HEAP32[$964>>2]|0;
$966 = (($963) + 4)|0;
$967 = $966;
$968 = HEAP32[$967>>2]|0;
$969 = $t2;
$970 = $969;
$971 = HEAP32[$970>>2]|0;
$972 = (($969) + 4)|0;
$973 = $972;
$974 = HEAP32[$973>>2]|0;
$975 = (_i64Add(($965|0),($968|0),($971|0),($974|0))|0);
$976 = tempRet0;
$977 = $e;
$978 = $977;
HEAP32[$978>>2] = $975;
$979 = (($977) + 4)|0;
$980 = $979;
HEAP32[$980>>2] = $976;
$981 = $d;
$982 = $981;
$983 = HEAP32[$982>>2]|0;
$984 = (($981) + 4)|0;
$985 = $984;
$986 = HEAP32[$985>>2]|0;
$987 = $a;
$988 = $987;
$989 = HEAP32[$988>>2]|0;
$990 = (($987) + 4)|0;
$991 = $990;
$992 = HEAP32[$991>>2]|0;
$993 = (_Sum1_1422($989,$992)|0);
$994 = tempRet0;
$995 = (_i64Add(($983|0),($986|0),($993|0),($994|0))|0);
$996 = tempRet0;
$997 = $a;
$998 = $997;
$999 = HEAP32[$998>>2]|0;
$1000 = (($997) + 4)|0;
$1001 = $1000;
$1002 = HEAP32[$1001>>2]|0;
$1003 = $b;
$1004 = $1003;
$1005 = HEAP32[$1004>>2]|0;
$1006 = (($1003) + 4)|0;
$1007 = $1006;
$1008 = HEAP32[$1007>>2]|0;
$1009 = $c;
$1010 = $1009;
$1011 = HEAP32[$1010>>2]|0;
$1012 = (($1009) + 4)|0;
$1013 = $1012;
$1014 = HEAP32[$1013>>2]|0;
$1015 = (_Ch($999,$1002,$1005,$1008,$1011,$1014)|0);
$1016 = tempRet0;
$1017 = (_i64Add(($995|0),($996|0),($1015|0),($1016|0))|0);
$1018 = tempRet0;
$1019 = $t;
$1020 = (($1019) + 4)|0;
$1021 = (80 + ($1020<<3)|0);
$1022 = $1021;
$1023 = $1022;
$1024 = HEAP32[$1023>>2]|0;
$1025 = (($1022) + 4)|0;
$1026 = $1025;
$1027 = HEAP32[$1026>>2]|0;
$1028 = (_i64Add(($1017|0),($1018|0),($1024|0),($1027|0))|0);
$1029 = tempRet0;
$1030 = ((($w)) + 32|0);
$1031 = $1030;
$1032 = $1031;
$1033 = HEAP32[$1032>>2]|0;
$1034 = (($1031) + 4)|0;
$1035 = $1034;
$1036 = HEAP32[$1035>>2]|0;
$1037 = (_i64Add(($1028|0),($1029|0),($1033|0),($1036|0))|0);
$1038 = tempRet0;
$1039 = $t1;
$1040 = $1039;
HEAP32[$1040>>2] = $1037;
$1041 = (($1039) + 4)|0;
$1042 = $1041;
HEAP32[$1042>>2] = $1038;
$1043 = ((($w)) + 16|0);
$1044 = $1043;
$1045 = $1044;
$1046 = HEAP32[$1045>>2]|0;
$1047 = (($1044) + 4)|0;
$1048 = $1047;
$1049 = HEAP32[$1048>>2]|0;
$1050 = (_ROTR($1046,$1049,19,0)|0);
$1051 = tempRet0;
$1052 = ((($w)) + 16|0);
$1053 = $1052;
$1054 = $1053;
$1055 = HEAP32[$1054>>2]|0;
$1056 = (($1053) + 4)|0;
$1057 = $1056;
$1058 = HEAP32[$1057>>2]|0;
$1059 = (_ROTR($1055,$1058,61,0)|0);
$1060 = tempRet0;
$1061 = $1050 ^ $1059;
$1062 = $1051 ^ $1060;
$1063 = ((($w)) + 16|0);
$1064 = $1063;
$1065 = $1064;
$1066 = HEAP32[$1065>>2]|0;
$1067 = (($1064) + 4)|0;
$1068 = $1067;
$1069 = HEAP32[$1068>>2]|0;
$1070 = (_bitshift64Lshr(($1066|0),($1069|0),6)|0);
$1071 = tempRet0;
$1072 = $1061 ^ $1070;
$1073 = $1062 ^ $1071;
$1074 = ((($w)) + 104|0);
$1075 = $1074;
$1076 = $1075;
$1077 = HEAP32[$1076>>2]|0;
$1078 = (($1075) + 4)|0;
$1079 = $1078;
$1080 = HEAP32[$1079>>2]|0;
$1081 = (_i64Add(($1072|0),($1073|0),($1077|0),($1080|0))|0);
$1082 = tempRet0;
$1083 = ((($w)) + 40|0);
$1084 = $1083;
$1085 = $1084;
$1086 = HEAP32[$1085>>2]|0;
$1087 = (($1084) + 4)|0;
$1088 = $1087;
$1089 = HEAP32[$1088>>2]|0;
$1090 = (_ROTR($1086,$1089,1,0)|0);
$1091 = tempRet0;
$1092 = ((($w)) + 40|0);
$1093 = $1092;
$1094 = $1093;
$1095 = HEAP32[$1094>>2]|0;
$1096 = (($1093) + 4)|0;
$1097 = $1096;
$1098 = HEAP32[$1097>>2]|0;
$1099 = (_ROTR($1095,$1098,8,0)|0);
$1100 = tempRet0;
$1101 = $1090 ^ $1099;
$1102 = $1091 ^ $1100;
$1103 = ((($w)) + 40|0);
$1104 = $1103;
$1105 = $1104;
$1106 = HEAP32[$1105>>2]|0;
$1107 = (($1104) + 4)|0;
$1108 = $1107;
$1109 = HEAP32[$1108>>2]|0;
$1110 = (_bitshift64Lshr(($1106|0),($1109|0),7)|0);
$1111 = tempRet0;
$1112 = $1101 ^ $1110;
$1113 = $1102 ^ $1111;
$1114 = (_i64Add(($1081|0),($1082|0),($1112|0),($1113|0))|0);
$1115 = tempRet0;
$1116 = ((($w)) + 32|0);
$1117 = $1116;
$1118 = $1117;
$1119 = HEAP32[$1118>>2]|0;
$1120 = (($1117) + 4)|0;
$1121 = $1120;
$1122 = HEAP32[$1121>>2]|0;
$1123 = (_i64Add(($1119|0),($1122|0),($1114|0),($1115|0))|0);
$1124 = tempRet0;
$1125 = $1116;
$1126 = $1125;
HEAP32[$1126>>2] = $1123;
$1127 = (($1125) + 4)|0;
$1128 = $1127;
HEAP32[$1128>>2] = $1124;
$1129 = $e;
$1130 = $1129;
$1131 = HEAP32[$1130>>2]|0;
$1132 = (($1129) + 4)|0;
$1133 = $1132;
$1134 = HEAP32[$1133>>2]|0;
$1135 = (_Sum0_1423($1131,$1134)|0);
$1136 = tempRet0;
$1137 = $e;
$1138 = $1137;
$1139 = HEAP32[$1138>>2]|0;
$1140 = (($1137) + 4)|0;
$1141 = $1140;
$1142 = HEAP32[$1141>>2]|0;
$1143 = $f;
$1144 = $1143;
$1145 = HEAP32[$1144>>2]|0;
$1146 = (($1143) + 4)|0;
$1147 = $1146;
$1148 = HEAP32[$1147>>2]|0;
$1149 = $g;
$1150 = $1149;
$1151 = HEAP32[$1150>>2]|0;
$1152 = (($1149) + 4)|0;
$1153 = $1152;
$1154 = HEAP32[$1153>>2]|0;
$1155 = (_Maj_1424($1139,$1142,$1145,$1148,$1151,$1154)|0);
$1156 = tempRet0;
$1157 = (_i64Add(($1135|0),($1136|0),($1155|0),($1156|0))|0);
$1158 = tempRet0;
$1159 = $t2;
$1160 = $1159;
HEAP32[$1160>>2] = $1157;
$1161 = (($1159) + 4)|0;
$1162 = $1161;
HEAP32[$1162>>2] = $1158;
$1163 = $t1;
$1164 = $1163;
$1165 = HEAP32[$1164>>2]|0;
$1166 = (($1163) + 4)|0;
$1167 = $1166;
$1168 = HEAP32[$1167>>2]|0;
$1169 = $h;
$1170 = $1169;
$1171 = HEAP32[$1170>>2]|0;
$1172 = (($1169) + 4)|0;
$1173 = $1172;
$1174 = HEAP32[$1173>>2]|0;
$1175 = (_i64Add(($1171|0),($1174|0),($1165|0),($1168|0))|0);
$1176 = tempRet0;
$1177 = $h;
$1178 = $1177;
HEAP32[$1178>>2] = $1175;
$1179 = (($1177) + 4)|0;
$1180 = $1179;
HEAP32[$1180>>2] = $1176;
$1181 = $t1;
$1182 = $1181;
$1183 = HEAP32[$1182>>2]|0;
$1184 = (($1181) + 4)|0;
$1185 = $1184;
$1186 = HEAP32[$1185>>2]|0;
$1187 = $t2;
$1188 = $1187;
$1189 = HEAP32[$1188>>2]|0;
$1190 = (($1187) + 4)|0;
$1191 = $1190;
$1192 = HEAP32[$1191>>2]|0;
$1193 = (_i64Add(($1183|0),($1186|0),($1189|0),($1192|0))|0);
$1194 = tempRet0;
$1195 = $d;
$1196 = $1195;
HEAP32[$1196>>2] = $1193;
$1197 = (($1195) + 4)|0;
$1198 = $1197;
HEAP32[$1198>>2] = $1194;
$1199 = $c;
$1200 = $1199;
$1201 = HEAP32[$1200>>2]|0;
$1202 = (($1199) + 4)|0;
$1203 = $1202;
$1204 = HEAP32[$1203>>2]|0;
$1205 = $h;
$1206 = $1205;
$1207 = HEAP32[$1206>>2]|0;
$1208 = (($1205) + 4)|0;
$1209 = $1208;
$1210 = HEAP32[$1209>>2]|0;
$1211 = (_Sum1_1422($1207,$1210)|0);
$1212 = tempRet0;
$1213 = (_i64Add(($1201|0),($1204|0),($1211|0),($1212|0))|0);
$1214 = tempRet0;
$1215 = $h;
$1216 = $1215;
$1217 = HEAP32[$1216>>2]|0;
$1218 = (($1215) + 4)|0;
$1219 = $1218;
$1220 = HEAP32[$1219>>2]|0;
$1221 = $a;
$1222 = $1221;
$1223 = HEAP32[$1222>>2]|0;
$1224 = (($1221) + 4)|0;
$1225 = $1224;
$1226 = HEAP32[$1225>>2]|0;
$1227 = $b;
$1228 = $1227;
$1229 = HEAP32[$1228>>2]|0;
$1230 = (($1227) + 4)|0;
$1231 = $1230;
$1232 = HEAP32[$1231>>2]|0;
$1233 = (_Ch($1217,$1220,$1223,$1226,$1229,$1232)|0);
$1234 = tempRet0;
$1235 = (_i64Add(($1213|0),($1214|0),($1233|0),($1234|0))|0);
$1236 = tempRet0;
$1237 = $t;
$1238 = (($1237) + 5)|0;
$1239 = (80 + ($1238<<3)|0);
$1240 = $1239;
$1241 = $1240;
$1242 = HEAP32[$1241>>2]|0;
$1243 = (($1240) + 4)|0;
$1244 = $1243;
$1245 = HEAP32[$1244>>2]|0;
$1246 = (_i64Add(($1235|0),($1236|0),($1242|0),($1245|0))|0);
$1247 = tempRet0;
$1248 = ((($w)) + 40|0);
$1249 = $1248;
$1250 = $1249;
$1251 = HEAP32[$1250>>2]|0;
$1252 = (($1249) + 4)|0;
$1253 = $1252;
$1254 = HEAP32[$1253>>2]|0;
$1255 = (_i64Add(($1246|0),($1247|0),($1251|0),($1254|0))|0);
$1256 = tempRet0;
$1257 = $t1;
$1258 = $1257;
HEAP32[$1258>>2] = $1255;
$1259 = (($1257) + 4)|0;
$1260 = $1259;
HEAP32[$1260>>2] = $1256;
$1261 = ((($w)) + 24|0);
$1262 = $1261;
$1263 = $1262;
$1264 = HEAP32[$1263>>2]|0;
$1265 = (($1262) + 4)|0;
$1266 = $1265;
$1267 = HEAP32[$1266>>2]|0;
$1268 = (_ROTR($1264,$1267,19,0)|0);
$1269 = tempRet0;
$1270 = ((($w)) + 24|0);
$1271 = $1270;
$1272 = $1271;
$1273 = HEAP32[$1272>>2]|0;
$1274 = (($1271) + 4)|0;
$1275 = $1274;
$1276 = HEAP32[$1275>>2]|0;
$1277 = (_ROTR($1273,$1276,61,0)|0);
$1278 = tempRet0;
$1279 = $1268 ^ $1277;
$1280 = $1269 ^ $1278;
$1281 = ((($w)) + 24|0);
$1282 = $1281;
$1283 = $1282;
$1284 = HEAP32[$1283>>2]|0;
$1285 = (($1282) + 4)|0;
$1286 = $1285;
$1287 = HEAP32[$1286>>2]|0;
$1288 = (_bitshift64Lshr(($1284|0),($1287|0),6)|0);
$1289 = tempRet0;
$1290 = $1279 ^ $1288;
$1291 = $1280 ^ $1289;
$1292 = ((($w)) + 112|0);
$1293 = $1292;
$1294 = $1293;
$1295 = HEAP32[$1294>>2]|0;
$1296 = (($1293) + 4)|0;
$1297 = $1296;
$1298 = HEAP32[$1297>>2]|0;
$1299 = (_i64Add(($1290|0),($1291|0),($1295|0),($1298|0))|0);
$1300 = tempRet0;
$1301 = ((($w)) + 48|0);
$1302 = $1301;
$1303 = $1302;
$1304 = HEAP32[$1303>>2]|0;
$1305 = (($1302) + 4)|0;
$1306 = $1305;
$1307 = HEAP32[$1306>>2]|0;
$1308 = (_ROTR($1304,$1307,1,0)|0);
$1309 = tempRet0;
$1310 = ((($w)) + 48|0);
$1311 = $1310;
$1312 = $1311;
$1313 = HEAP32[$1312>>2]|0;
$1314 = (($1311) + 4)|0;
$1315 = $1314;
$1316 = HEAP32[$1315>>2]|0;
$1317 = (_ROTR($1313,$1316,8,0)|0);
$1318 = tempRet0;
$1319 = $1308 ^ $1317;
$1320 = $1309 ^ $1318;
$1321 = ((($w)) + 48|0);
$1322 = $1321;
$1323 = $1322;
$1324 = HEAP32[$1323>>2]|0;
$1325 = (($1322) + 4)|0;
$1326 = $1325;
$1327 = HEAP32[$1326>>2]|0;
$1328 = (_bitshift64Lshr(($1324|0),($1327|0),7)|0);
$1329 = tempRet0;
$1330 = $1319 ^ $1328;
$1331 = $1320 ^ $1329;
$1332 = (_i64Add(($1299|0),($1300|0),($1330|0),($1331|0))|0);
$1333 = tempRet0;
$1334 = ((($w)) + 40|0);
$1335 = $1334;
$1336 = $1335;
$1337 = HEAP32[$1336>>2]|0;
$1338 = (($1335) + 4)|0;
$1339 = $1338;
$1340 = HEAP32[$1339>>2]|0;
$1341 = (_i64Add(($1337|0),($1340|0),($1332|0),($1333|0))|0);
$1342 = tempRet0;
$1343 = $1334;
$1344 = $1343;
HEAP32[$1344>>2] = $1341;
$1345 = (($1343) + 4)|0;
$1346 = $1345;
HEAP32[$1346>>2] = $1342;
$1347 = $d;
$1348 = $1347;
$1349 = HEAP32[$1348>>2]|0;
$1350 = (($1347) + 4)|0;
$1351 = $1350;
$1352 = HEAP32[$1351>>2]|0;
$1353 = (_Sum0_1423($1349,$1352)|0);
$1354 = tempRet0;
$1355 = $d;
$1356 = $1355;
$1357 = HEAP32[$1356>>2]|0;
$1358 = (($1355) + 4)|0;
$1359 = $1358;
$1360 = HEAP32[$1359>>2]|0;
$1361 = $e;
$1362 = $1361;
$1363 = HEAP32[$1362>>2]|0;
$1364 = (($1361) + 4)|0;
$1365 = $1364;
$1366 = HEAP32[$1365>>2]|0;
$1367 = $f;
$1368 = $1367;
$1369 = HEAP32[$1368>>2]|0;
$1370 = (($1367) + 4)|0;
$1371 = $1370;
$1372 = HEAP32[$1371>>2]|0;
$1373 = (_Maj_1424($1357,$1360,$1363,$1366,$1369,$1372)|0);
$1374 = tempRet0;
$1375 = (_i64Add(($1353|0),($1354|0),($1373|0),($1374|0))|0);
$1376 = tempRet0;
$1377 = $t2;
$1378 = $1377;
HEAP32[$1378>>2] = $1375;
$1379 = (($1377) + 4)|0;
$1380 = $1379;
HEAP32[$1380>>2] = $1376;
$1381 = $t1;
$1382 = $1381;
$1383 = HEAP32[$1382>>2]|0;
$1384 = (($1381) + 4)|0;
$1385 = $1384;
$1386 = HEAP32[$1385>>2]|0;
$1387 = $g;
$1388 = $1387;
$1389 = HEAP32[$1388>>2]|0;
$1390 = (($1387) + 4)|0;
$1391 = $1390;
$1392 = HEAP32[$1391>>2]|0;
$1393 = (_i64Add(($1389|0),($1392|0),($1383|0),($1386|0))|0);
$1394 = tempRet0;
$1395 = $g;
$1396 = $1395;
HEAP32[$1396>>2] = $1393;
$1397 = (($1395) + 4)|0;
$1398 = $1397;
HEAP32[$1398>>2] = $1394;
$1399 = $t1;
$1400 = $1399;
$1401 = HEAP32[$1400>>2]|0;
$1402 = (($1399) + 4)|0;
$1403 = $1402;
$1404 = HEAP32[$1403>>2]|0;
$1405 = $t2;
$1406 = $1405;
$1407 = HEAP32[$1406>>2]|0;
$1408 = (($1405) + 4)|0;
$1409 = $1408;
$1410 = HEAP32[$1409>>2]|0;
$1411 = (_i64Add(($1401|0),($1404|0),($1407|0),($1410|0))|0);
$1412 = tempRet0;
$1413 = $c;
$1414 = $1413;
HEAP32[$1414>>2] = $1411;
$1415 = (($1413) + 4)|0;
$1416 = $1415;
HEAP32[$1416>>2] = $1412;
$1417 = $b;
$1418 = $1417;
$1419 = HEAP32[$1418>>2]|0;
$1420 = (($1417) + 4)|0;
$1421 = $1420;
$1422 = HEAP32[$1421>>2]|0;
$1423 = $g;
$1424 = $1423;
$1425 = HEAP32[$1424>>2]|0;
$1426 = (($1423) + 4)|0;
$1427 = $1426;
$1428 = HEAP32[$1427>>2]|0;
$1429 = (_Sum1_1422($1425,$1428)|0);
$1430 = tempRet0;
$1431 = (_i64Add(($1419|0),($1422|0),($1429|0),($1430|0))|0);
$1432 = tempRet0;
$1433 = $g;
$1434 = $1433;
$1435 = HEAP32[$1434>>2]|0;
$1436 = (($1433) + 4)|0;
$1437 = $1436;
$1438 = HEAP32[$1437>>2]|0;
$1439 = $h;
$1440 = $1439;
$1441 = HEAP32[$1440>>2]|0;
$1442 = (($1439) + 4)|0;
$1443 = $1442;
$1444 = HEAP32[$1443>>2]|0;
$1445 = $a;
$1446 = $1445;
$1447 = HEAP32[$1446>>2]|0;
$1448 = (($1445) + 4)|0;
$1449 = $1448;
$1450 = HEAP32[$1449>>2]|0;
$1451 = (_Ch($1435,$1438,$1441,$1444,$1447,$1450)|0);
$1452 = tempRet0;
$1453 = (_i64Add(($1431|0),($1432|0),($1451|0),($1452|0))|0);
$1454 = tempRet0;
$1455 = $t;
$1456 = (($1455) + 6)|0;
$1457 = (80 + ($1456<<3)|0);
$1458 = $1457;
$1459 = $1458;
$1460 = HEAP32[$1459>>2]|0;
$1461 = (($1458) + 4)|0;
$1462 = $1461;
$1463 = HEAP32[$1462>>2]|0;
$1464 = (_i64Add(($1453|0),($1454|0),($1460|0),($1463|0))|0);
$1465 = tempRet0;
$1466 = ((($w)) + 48|0);
$1467 = $1466;
$1468 = $1467;
$1469 = HEAP32[$1468>>2]|0;
$1470 = (($1467) + 4)|0;
$1471 = $1470;
$1472 = HEAP32[$1471>>2]|0;
$1473 = (_i64Add(($1464|0),($1465|0),($1469|0),($1472|0))|0);
$1474 = tempRet0;
$1475 = $t1;
$1476 = $1475;
HEAP32[$1476>>2] = $1473;
$1477 = (($1475) + 4)|0;
$1478 = $1477;
HEAP32[$1478>>2] = $1474;
$1479 = ((($w)) + 32|0);
$1480 = $1479;
$1481 = $1480;
$1482 = HEAP32[$1481>>2]|0;
$1483 = (($1480) + 4)|0;
$1484 = $1483;
$1485 = HEAP32[$1484>>2]|0;
$1486 = (_ROTR($1482,$1485,19,0)|0);
$1487 = tempRet0;
$1488 = ((($w)) + 32|0);
$1489 = $1488;
$1490 = $1489;
$1491 = HEAP32[$1490>>2]|0;
$1492 = (($1489) + 4)|0;
$1493 = $1492;
$1494 = HEAP32[$1493>>2]|0;
$1495 = (_ROTR($1491,$1494,61,0)|0);
$1496 = tempRet0;
$1497 = $1486 ^ $1495;
$1498 = $1487 ^ $1496;
$1499 = ((($w)) + 32|0);
$1500 = $1499;
$1501 = $1500;
$1502 = HEAP32[$1501>>2]|0;
$1503 = (($1500) + 4)|0;
$1504 = $1503;
$1505 = HEAP32[$1504>>2]|0;
$1506 = (_bitshift64Lshr(($1502|0),($1505|0),6)|0);
$1507 = tempRet0;
$1508 = $1497 ^ $1506;
$1509 = $1498 ^ $1507;
$1510 = ((($w)) + 120|0);
$1511 = $1510;
$1512 = $1511;
$1513 = HEAP32[$1512>>2]|0;
$1514 = (($1511) + 4)|0;
$1515 = $1514;
$1516 = HEAP32[$1515>>2]|0;
$1517 = (_i64Add(($1508|0),($1509|0),($1513|0),($1516|0))|0);
$1518 = tempRet0;
$1519 = ((($w)) + 56|0);
$1520 = $1519;
$1521 = $1520;
$1522 = HEAP32[$1521>>2]|0;
$1523 = (($1520) + 4)|0;
$1524 = $1523;
$1525 = HEAP32[$1524>>2]|0;
$1526 = (_ROTR($1522,$1525,1,0)|0);
$1527 = tempRet0;
$1528 = ((($w)) + 56|0);
$1529 = $1528;
$1530 = $1529;
$1531 = HEAP32[$1530>>2]|0;
$1532 = (($1529) + 4)|0;
$1533 = $1532;
$1534 = HEAP32[$1533>>2]|0;
$1535 = (_ROTR($1531,$1534,8,0)|0);
$1536 = tempRet0;
$1537 = $1526 ^ $1535;
$1538 = $1527 ^ $1536;
$1539 = ((($w)) + 56|0);
$1540 = $1539;
$1541 = $1540;
$1542 = HEAP32[$1541>>2]|0;
$1543 = (($1540) + 4)|0;
$1544 = $1543;
$1545 = HEAP32[$1544>>2]|0;
$1546 = (_bitshift64Lshr(($1542|0),($1545|0),7)|0);
$1547 = tempRet0;
$1548 = $1537 ^ $1546;
$1549 = $1538 ^ $1547;
$1550 = (_i64Add(($1517|0),($1518|0),($1548|0),($1549|0))|0);
$1551 = tempRet0;
$1552 = ((($w)) + 48|0);
$1553 = $1552;
$1554 = $1553;
$1555 = HEAP32[$1554>>2]|0;
$1556 = (($1553) + 4)|0;
$1557 = $1556;
$1558 = HEAP32[$1557>>2]|0;
$1559 = (_i64Add(($1555|0),($1558|0),($1550|0),($1551|0))|0);
$1560 = tempRet0;
$1561 = $1552;
$1562 = $1561;
HEAP32[$1562>>2] = $1559;
$1563 = (($1561) + 4)|0;
$1564 = $1563;
HEAP32[$1564>>2] = $1560;
$1565 = $c;
$1566 = $1565;
$1567 = HEAP32[$1566>>2]|0;
$1568 = (($1565) + 4)|0;
$1569 = $1568;
$1570 = HEAP32[$1569>>2]|0;
$1571 = (_Sum0_1423($1567,$1570)|0);
$1572 = tempRet0;
$1573 = $c;
$1574 = $1573;
$1575 = HEAP32[$1574>>2]|0;
$1576 = (($1573) + 4)|0;
$1577 = $1576;
$1578 = HEAP32[$1577>>2]|0;
$1579 = $d;
$1580 = $1579;
$1581 = HEAP32[$1580>>2]|0;
$1582 = (($1579) + 4)|0;
$1583 = $1582;
$1584 = HEAP32[$1583>>2]|0;
$1585 = $e;
$1586 = $1585;
$1587 = HEAP32[$1586>>2]|0;
$1588 = (($1585) + 4)|0;
$1589 = $1588;
$1590 = HEAP32[$1589>>2]|0;
$1591 = (_Maj_1424($1575,$1578,$1581,$1584,$1587,$1590)|0);
$1592 = tempRet0;
$1593 = (_i64Add(($1571|0),($1572|0),($1591|0),($1592|0))|0);
$1594 = tempRet0;
$1595 = $t2;
$1596 = $1595;
HEAP32[$1596>>2] = $1593;
$1597 = (($1595) + 4)|0;
$1598 = $1597;
HEAP32[$1598>>2] = $1594;
$1599 = $t1;
$1600 = $1599;
$1601 = HEAP32[$1600>>2]|0;
$1602 = (($1599) + 4)|0;
$1603 = $1602;
$1604 = HEAP32[$1603>>2]|0;
$1605 = $f;
$1606 = $1605;
$1607 = HEAP32[$1606>>2]|0;
$1608 = (($1605) + 4)|0;
$1609 = $1608;
$1610 = HEAP32[$1609>>2]|0;
$1611 = (_i64Add(($1607|0),($1610|0),($1601|0),($1604|0))|0);
$1612 = tempRet0;
$1613 = $f;
$1614 = $1613;
HEAP32[$1614>>2] = $1611;
$1615 = (($1613) + 4)|0;
$1616 = $1615;
HEAP32[$1616>>2] = $1612;
$1617 = $t1;
$1618 = $1617;
$1619 = HEAP32[$1618>>2]|0;
$1620 = (($1617) + 4)|0;
$1621 = $1620;
$1622 = HEAP32[$1621>>2]|0;
$1623 = $t2;
$1624 = $1623;
$1625 = HEAP32[$1624>>2]|0;
$1626 = (($1623) + 4)|0;
$1627 = $1626;
$1628 = HEAP32[$1627>>2]|0;
$1629 = (_i64Add(($1619|0),($1622|0),($1625|0),($1628|0))|0);
$1630 = tempRet0;
$1631 = $b;
$1632 = $1631;
HEAP32[$1632>>2] = $1629;
$1633 = (($1631) + 4)|0;
$1634 = $1633;
HEAP32[$1634>>2] = $1630;
$1635 = $a;
$1636 = $1635;
$1637 = HEAP32[$1636>>2]|0;
$1638 = (($1635) + 4)|0;
$1639 = $1638;
$1640 = HEAP32[$1639>>2]|0;
$1641 = $f;
$1642 = $1641;
$1643 = HEAP32[$1642>>2]|0;
$1644 = (($1641) + 4)|0;
$1645 = $1644;
$1646 = HEAP32[$1645>>2]|0;
$1647 = (_Sum1_1422($1643,$1646)|0);
$1648 = tempRet0;
$1649 = (_i64Add(($1637|0),($1640|0),($1647|0),($1648|0))|0);
$1650 = tempRet0;
$1651 = $f;
$1652 = $1651;
$1653 = HEAP32[$1652>>2]|0;
$1654 = (($1651) + 4)|0;
$1655 = $1654;
$1656 = HEAP32[$1655>>2]|0;
$1657 = $g;
$1658 = $1657;
$1659 = HEAP32[$1658>>2]|0;
$1660 = (($1657) + 4)|0;
$1661 = $1660;
$1662 = HEAP32[$1661>>2]|0;
$1663 = $h;
$1664 = $1663;
$1665 = HEAP32[$1664>>2]|0;
$1666 = (($1663) + 4)|0;
$1667 = $1666;
$1668 = HEAP32[$1667>>2]|0;
$1669 = (_Ch($1653,$1656,$1659,$1662,$1665,$1668)|0);
$1670 = tempRet0;
$1671 = (_i64Add(($1649|0),($1650|0),($1669|0),($1670|0))|0);
$1672 = tempRet0;
$1673 = $t;
$1674 = (($1673) + 7)|0;
$1675 = (80 + ($1674<<3)|0);
$1676 = $1675;
$1677 = $1676;
$1678 = HEAP32[$1677>>2]|0;
$1679 = (($1676) + 4)|0;
$1680 = $1679;
$1681 = HEAP32[$1680>>2]|0;
$1682 = (_i64Add(($1671|0),($1672|0),($1678|0),($1681|0))|0);
$1683 = tempRet0;
$1684 = ((($w)) + 56|0);
$1685 = $1684;
$1686 = $1685;
$1687 = HEAP32[$1686>>2]|0;
$1688 = (($1685) + 4)|0;
$1689 = $1688;
$1690 = HEAP32[$1689>>2]|0;
$1691 = (_i64Add(($1682|0),($1683|0),($1687|0),($1690|0))|0);
$1692 = tempRet0;
$1693 = $t1;
$1694 = $1693;
HEAP32[$1694>>2] = $1691;
$1695 = (($1693) + 4)|0;
$1696 = $1695;
HEAP32[$1696>>2] = $1692;
$1697 = ((($w)) + 40|0);
$1698 = $1697;
$1699 = $1698;
$1700 = HEAP32[$1699>>2]|0;
$1701 = (($1698) + 4)|0;
$1702 = $1701;
$1703 = HEAP32[$1702>>2]|0;
$1704 = (_ROTR($1700,$1703,19,0)|0);
$1705 = tempRet0;
$1706 = ((($w)) + 40|0);
$1707 = $1706;
$1708 = $1707;
$1709 = HEAP32[$1708>>2]|0;
$1710 = (($1707) + 4)|0;
$1711 = $1710;
$1712 = HEAP32[$1711>>2]|0;
$1713 = (_ROTR($1709,$1712,61,0)|0);
$1714 = tempRet0;
$1715 = $1704 ^ $1713;
$1716 = $1705 ^ $1714;
$1717 = ((($w)) + 40|0);
$1718 = $1717;
$1719 = $1718;
$1720 = HEAP32[$1719>>2]|0;
$1721 = (($1718) + 4)|0;
$1722 = $1721;
$1723 = HEAP32[$1722>>2]|0;
$1724 = (_bitshift64Lshr(($1720|0),($1723|0),6)|0);
$1725 = tempRet0;
$1726 = $1715 ^ $1724;
$1727 = $1716 ^ $1725;
$1728 = $w;
$1729 = $1728;
$1730 = HEAP32[$1729>>2]|0;
$1731 = (($1728) + 4)|0;
$1732 = $1731;
$1733 = HEAP32[$1732>>2]|0;
$1734 = (_i64Add(($1726|0),($1727|0),($1730|0),($1733|0))|0);
$1735 = tempRet0;
$1736 = ((($w)) + 64|0);
$1737 = $1736;
$1738 = $1737;
$1739 = HEAP32[$1738>>2]|0;
$1740 = (($1737) + 4)|0;
$1741 = $1740;
$1742 = HEAP32[$1741>>2]|0;
$1743 = (_ROTR($1739,$1742,1,0)|0);
$1744 = tempRet0;
$1745 = ((($w)) + 64|0);
$1746 = $1745;
$1747 = $1746;
$1748 = HEAP32[$1747>>2]|0;
$1749 = (($1746) + 4)|0;
$1750 = $1749;
$1751 = HEAP32[$1750>>2]|0;
$1752 = (_ROTR($1748,$1751,8,0)|0);
$1753 = tempRet0;
$1754 = $1743 ^ $1752;
$1755 = $1744 ^ $1753;
$1756 = ((($w)) + 64|0);
$1757 = $1756;
$1758 = $1757;
$1759 = HEAP32[$1758>>2]|0;
$1760 = (($1757) + 4)|0;
$1761 = $1760;
$1762 = HEAP32[$1761>>2]|0;
$1763 = (_bitshift64Lshr(($1759|0),($1762|0),7)|0);
$1764 = tempRet0;
$1765 = $1754 ^ $1763;
$1766 = $1755 ^ $1764;
$1767 = (_i64Add(($1734|0),($1735|0),($1765|0),($1766|0))|0);
$1768 = tempRet0;
$1769 = ((($w)) + 56|0);
$1770 = $1769;
$1771 = $1770;
$1772 = HEAP32[$1771>>2]|0;
$1773 = (($1770) + 4)|0;
$1774 = $1773;
$1775 = HEAP32[$1774>>2]|0;
$1776 = (_i64Add(($1772|0),($1775|0),($1767|0),($1768|0))|0);
$1777 = tempRet0;
$1778 = $1769;
$1779 = $1778;
HEAP32[$1779>>2] = $1776;
$1780 = (($1778) + 4)|0;
$1781 = $1780;
HEAP32[$1781>>2] = $1777;
$1782 = $b;
$1783 = $1782;
$1784 = HEAP32[$1783>>2]|0;
$1785 = (($1782) + 4)|0;
$1786 = $1785;
$1787 = HEAP32[$1786>>2]|0;
$1788 = (_Sum0_1423($1784,$1787)|0);
$1789 = tempRet0;
$1790 = $b;
$1791 = $1790;
$1792 = HEAP32[$1791>>2]|0;
$1793 = (($1790) + 4)|0;
$1794 = $1793;
$1795 = HEAP32[$1794>>2]|0;
$1796 = $c;
$1797 = $1796;
$1798 = HEAP32[$1797>>2]|0;
$1799 = (($1796) + 4)|0;
$1800 = $1799;
$1801 = HEAP32[$1800>>2]|0;
$1802 = $d;
$1803 = $1802;
$1804 = HEAP32[$1803>>2]|0;
$1805 = (($1802) + 4)|0;
$1806 = $1805;
$1807 = HEAP32[$1806>>2]|0;
$1808 = (_Maj_1424($1792,$1795,$1798,$1801,$1804,$1807)|0);
$1809 = tempRet0;
$1810 = (_i64Add(($1788|0),($1789|0),($1808|0),($1809|0))|0);
$1811 = tempRet0;
$1812 = $t2;
$1813 = $1812;
HEAP32[$1813>>2] = $1810;
$1814 = (($1812) + 4)|0;
$1815 = $1814;
HEAP32[$1815>>2] = $1811;
$1816 = $t1;
$1817 = $1816;
$1818 = HEAP32[$1817>>2]|0;
$1819 = (($1816) + 4)|0;
$1820 = $1819;
$1821 = HEAP32[$1820>>2]|0;
$1822 = $e;
$1823 = $1822;
$1824 = HEAP32[$1823>>2]|0;
$1825 = (($1822) + 4)|0;
$1826 = $1825;
$1827 = HEAP32[$1826>>2]|0;
$1828 = (_i64Add(($1824|0),($1827|0),($1818|0),($1821|0))|0);
$1829 = tempRet0;
$1830 = $e;
$1831 = $1830;
HEAP32[$1831>>2] = $1828;
$1832 = (($1830) + 4)|0;
$1833 = $1832;
HEAP32[$1833>>2] = $1829;
$1834 = $t1;
$1835 = $1834;
$1836 = HEAP32[$1835>>2]|0;
$1837 = (($1834) + 4)|0;
$1838 = $1837;
$1839 = HEAP32[$1838>>2]|0;
$1840 = $t2;
$1841 = $1840;
$1842 = HEAP32[$1841>>2]|0;
$1843 = (($1840) + 4)|0;
$1844 = $1843;
$1845 = HEAP32[$1844>>2]|0;
$1846 = (_i64Add(($1836|0),($1839|0),($1842|0),($1845|0))|0);
$1847 = tempRet0;
$1848 = $a;
$1849 = $1848;
HEAP32[$1849>>2] = $1846;
$1850 = (($1848) + 4)|0;
$1851 = $1850;
HEAP32[$1851>>2] = $1847;
$1852 = $h;
$1853 = $1852;
$1854 = HEAP32[$1853>>2]|0;
$1855 = (($1852) + 4)|0;
$1856 = $1855;
$1857 = HEAP32[$1856>>2]|0;
$1858 = $e;
$1859 = $1858;
$1860 = HEAP32[$1859>>2]|0;
$1861 = (($1858) + 4)|0;
$1862 = $1861;
$1863 = HEAP32[$1862>>2]|0;
$1864 = (_Sum1_1422($1860,$1863)|0);
$1865 = tempRet0;
$1866 = (_i64Add(($1854|0),($1857|0),($1864|0),($1865|0))|0);
$1867 = tempRet0;
$1868 = $e;
$1869 = $1868;
$1870 = HEAP32[$1869>>2]|0;
$1871 = (($1868) + 4)|0;
$1872 = $1871;
$1873 = HEAP32[$1872>>2]|0;
$1874 = $f;
$1875 = $1874;
$1876 = HEAP32[$1875>>2]|0;
$1877 = (($1874) + 4)|0;
$1878 = $1877;
$1879 = HEAP32[$1878>>2]|0;
$1880 = $g;
$1881 = $1880;
$1882 = HEAP32[$1881>>2]|0;
$1883 = (($1880) + 4)|0;
$1884 = $1883;
$1885 = HEAP32[$1884>>2]|0;
$1886 = (_Ch($1870,$1873,$1876,$1879,$1882,$1885)|0);
$1887 = tempRet0;
$1888 = (_i64Add(($1866|0),($1867|0),($1886|0),($1887|0))|0);
$1889 = tempRet0;
$1890 = $t;
$1891 = (($1890) + 8)|0;
$1892 = (80 + ($1891<<3)|0);
$1893 = $1892;
$1894 = $1893;
$1895 = HEAP32[$1894>>2]|0;
$1896 = (($1893) + 4)|0;
$1897 = $1896;
$1898 = HEAP32[$1897>>2]|0;
$1899 = (_i64Add(($1888|0),($1889|0),($1895|0),($1898|0))|0);
$1900 = tempRet0;
$1901 = ((($w)) + 64|0);
$1902 = $1901;
$1903 = $1902;
$1904 = HEAP32[$1903>>2]|0;
$1905 = (($1902) + 4)|0;
$1906 = $1905;
$1907 = HEAP32[$1906>>2]|0;
$1908 = (_i64Add(($1899|0),($1900|0),($1904|0),($1907|0))|0);
$1909 = tempRet0;
$1910 = $t1;
$1911 = $1910;
HEAP32[$1911>>2] = $1908;
$1912 = (($1910) + 4)|0;
$1913 = $1912;
HEAP32[$1913>>2] = $1909;
$1914 = ((($w)) + 48|0);
$1915 = $1914;
$1916 = $1915;
$1917 = HEAP32[$1916>>2]|0;
$1918 = (($1915) + 4)|0;
$1919 = $1918;
$1920 = HEAP32[$1919>>2]|0;
$1921 = (_ROTR($1917,$1920,19,0)|0);
$1922 = tempRet0;
$1923 = ((($w)) + 48|0);
$1924 = $1923;
$1925 = $1924;
$1926 = HEAP32[$1925>>2]|0;
$1927 = (($1924) + 4)|0;
$1928 = $1927;
$1929 = HEAP32[$1928>>2]|0;
$1930 = (_ROTR($1926,$1929,61,0)|0);
$1931 = tempRet0;
$1932 = $1921 ^ $1930;
$1933 = $1922 ^ $1931;
$1934 = ((($w)) + 48|0);
$1935 = $1934;
$1936 = $1935;
$1937 = HEAP32[$1936>>2]|0;
$1938 = (($1935) + 4)|0;
$1939 = $1938;
$1940 = HEAP32[$1939>>2]|0;
$1941 = (_bitshift64Lshr(($1937|0),($1940|0),6)|0);
$1942 = tempRet0;
$1943 = $1932 ^ $1941;
$1944 = $1933 ^ $1942;
$1945 = ((($w)) + 8|0);
$1946 = $1945;
$1947 = $1946;
$1948 = HEAP32[$1947>>2]|0;
$1949 = (($1946) + 4)|0;
$1950 = $1949;
$1951 = HEAP32[$1950>>2]|0;
$1952 = (_i64Add(($1943|0),($1944|0),($1948|0),($1951|0))|0);
$1953 = tempRet0;
$1954 = ((($w)) + 72|0);
$1955 = $1954;
$1956 = $1955;
$1957 = HEAP32[$1956>>2]|0;
$1958 = (($1955) + 4)|0;
$1959 = $1958;
$1960 = HEAP32[$1959>>2]|0;
$1961 = (_ROTR($1957,$1960,1,0)|0);
$1962 = tempRet0;
$1963 = ((($w)) + 72|0);
$1964 = $1963;
$1965 = $1964;
$1966 = HEAP32[$1965>>2]|0;
$1967 = (($1964) + 4)|0;
$1968 = $1967;
$1969 = HEAP32[$1968>>2]|0;
$1970 = (_ROTR($1966,$1969,8,0)|0);
$1971 = tempRet0;
$1972 = $1961 ^ $1970;
$1973 = $1962 ^ $1971;
$1974 = ((($w)) + 72|0);
$1975 = $1974;
$1976 = $1975;
$1977 = HEAP32[$1976>>2]|0;
$1978 = (($1975) + 4)|0;
$1979 = $1978;
$1980 = HEAP32[$1979>>2]|0;
$1981 = (_bitshift64Lshr(($1977|0),($1980|0),7)|0);
$1982 = tempRet0;
$1983 = $1972 ^ $1981;
$1984 = $1973 ^ $1982;
$1985 = (_i64Add(($1952|0),($1953|0),($1983|0),($1984|0))|0);
$1986 = tempRet0;
$1987 = ((($w)) + 64|0);
$1988 = $1987;
$1989 = $1988;
$1990 = HEAP32[$1989>>2]|0;
$1991 = (($1988) + 4)|0;
$1992 = $1991;
$1993 = HEAP32[$1992>>2]|0;
$1994 = (_i64Add(($1990|0),($1993|0),($1985|0),($1986|0))|0);
$1995 = tempRet0;
$1996 = $1987;
$1997 = $1996;
HEAP32[$1997>>2] = $1994;
$1998 = (($1996) + 4)|0;
$1999 = $1998;
HEAP32[$1999>>2] = $1995;
$2000 = $a;
$2001 = $2000;
$2002 = HEAP32[$2001>>2]|0;
$2003 = (($2000) + 4)|0;
$2004 = $2003;
$2005 = HEAP32[$2004>>2]|0;
$2006 = (_Sum0_1423($2002,$2005)|0);
$2007 = tempRet0;
$2008 = $a;
$2009 = $2008;
$2010 = HEAP32[$2009>>2]|0;
$2011 = (($2008) + 4)|0;
$2012 = $2011;
$2013 = HEAP32[$2012>>2]|0;
$2014 = $b;
$2015 = $2014;
$2016 = HEAP32[$2015>>2]|0;
$2017 = (($2014) + 4)|0;
$2018 = $2017;
$2019 = HEAP32[$2018>>2]|0;
$2020 = $c;
$2021 = $2020;
$2022 = HEAP32[$2021>>2]|0;
$2023 = (($2020) + 4)|0;
$2024 = $2023;
$2025 = HEAP32[$2024>>2]|0;
$2026 = (_Maj_1424($2010,$2013,$2016,$2019,$2022,$2025)|0);
$2027 = tempRet0;
$2028 = (_i64Add(($2006|0),($2007|0),($2026|0),($2027|0))|0);
$2029 = tempRet0;
$2030 = $t2;
$2031 = $2030;
HEAP32[$2031>>2] = $2028;
$2032 = (($2030) + 4)|0;
$2033 = $2032;
HEAP32[$2033>>2] = $2029;
$2034 = $t1;
$2035 = $2034;
$2036 = HEAP32[$2035>>2]|0;
$2037 = (($2034) + 4)|0;
$2038 = $2037;
$2039 = HEAP32[$2038>>2]|0;
$2040 = $d;
$2041 = $2040;
$2042 = HEAP32[$2041>>2]|0;
$2043 = (($2040) + 4)|0;
$2044 = $2043;
$2045 = HEAP32[$2044>>2]|0;
$2046 = (_i64Add(($2042|0),($2045|0),($2036|0),($2039|0))|0);
$2047 = tempRet0;
$2048 = $d;
$2049 = $2048;
HEAP32[$2049>>2] = $2046;
$2050 = (($2048) + 4)|0;
$2051 = $2050;
HEAP32[$2051>>2] = $2047;
$2052 = $t1;
$2053 = $2052;
$2054 = HEAP32[$2053>>2]|0;
$2055 = (($2052) + 4)|0;
$2056 = $2055;
$2057 = HEAP32[$2056>>2]|0;
$2058 = $t2;
$2059 = $2058;
$2060 = HEAP32[$2059>>2]|0;
$2061 = (($2058) + 4)|0;
$2062 = $2061;
$2063 = HEAP32[$2062>>2]|0;
$2064 = (_i64Add(($2054|0),($2057|0),($2060|0),($2063|0))|0);
$2065 = tempRet0;
$2066 = $h;
$2067 = $2066;
HEAP32[$2067>>2] = $2064;
$2068 = (($2066) + 4)|0;
$2069 = $2068;
HEAP32[$2069>>2] = $2065;
$2070 = $g;
$2071 = $2070;
$2072 = HEAP32[$2071>>2]|0;
$2073 = (($2070) + 4)|0;
$2074 = $2073;
$2075 = HEAP32[$2074>>2]|0;
$2076 = $d;
$2077 = $2076;
$2078 = HEAP32[$2077>>2]|0;
$2079 = (($2076) + 4)|0;
$2080 = $2079;
$2081 = HEAP32[$2080>>2]|0;
$2082 = (_Sum1_1422($2078,$2081)|0);
$2083 = tempRet0;
$2084 = (_i64Add(($2072|0),($2075|0),($2082|0),($2083|0))|0);
$2085 = tempRet0;
$2086 = $d;
$2087 = $2086;
$2088 = HEAP32[$2087>>2]|0;
$2089 = (($2086) + 4)|0;
$2090 = $2089;
$2091 = HEAP32[$2090>>2]|0;
$2092 = $e;
$2093 = $2092;
$2094 = HEAP32[$2093>>2]|0;
$2095 = (($2092) + 4)|0;
$2096 = $2095;
$2097 = HEAP32[$2096>>2]|0;
$2098 = $f;
$2099 = $2098;
$2100 = HEAP32[$2099>>2]|0;
$2101 = (($2098) + 4)|0;
$2102 = $2101;
$2103 = HEAP32[$2102>>2]|0;
$2104 = (_Ch($2088,$2091,$2094,$2097,$2100,$2103)|0);
$2105 = tempRet0;
$2106 = (_i64Add(($2084|0),($2085|0),($2104|0),($2105|0))|0);
$2107 = tempRet0;
$2108 = $t;
$2109 = (($2108) + 9)|0;
$2110 = (80 + ($2109<<3)|0);
$2111 = $2110;
$2112 = $2111;
$2113 = HEAP32[$2112>>2]|0;
$2114 = (($2111) + 4)|0;
$2115 = $2114;
$2116 = HEAP32[$2115>>2]|0;
$2117 = (_i64Add(($2106|0),($2107|0),($2113|0),($2116|0))|0);
$2118 = tempRet0;
$2119 = ((($w)) + 72|0);
$2120 = $2119;
$2121 = $2120;
$2122 = HEAP32[$2121>>2]|0;
$2123 = (($2120) + 4)|0;
$2124 = $2123;
$2125 = HEAP32[$2124>>2]|0;
$2126 = (_i64Add(($2117|0),($2118|0),($2122|0),($2125|0))|0);
$2127 = tempRet0;
$2128 = $t1;
$2129 = $2128;
HEAP32[$2129>>2] = $2126;
$2130 = (($2128) + 4)|0;
$2131 = $2130;
HEAP32[$2131>>2] = $2127;
$2132 = ((($w)) + 56|0);
$2133 = $2132;
$2134 = $2133;
$2135 = HEAP32[$2134>>2]|0;
$2136 = (($2133) + 4)|0;
$2137 = $2136;
$2138 = HEAP32[$2137>>2]|0;
$2139 = (_ROTR($2135,$2138,19,0)|0);
$2140 = tempRet0;
$2141 = ((($w)) + 56|0);
$2142 = $2141;
$2143 = $2142;
$2144 = HEAP32[$2143>>2]|0;
$2145 = (($2142) + 4)|0;
$2146 = $2145;
$2147 = HEAP32[$2146>>2]|0;
$2148 = (_ROTR($2144,$2147,61,0)|0);
$2149 = tempRet0;
$2150 = $2139 ^ $2148;
$2151 = $2140 ^ $2149;
$2152 = ((($w)) + 56|0);
$2153 = $2152;
$2154 = $2153;
$2155 = HEAP32[$2154>>2]|0;
$2156 = (($2153) + 4)|0;
$2157 = $2156;
$2158 = HEAP32[$2157>>2]|0;
$2159 = (_bitshift64Lshr(($2155|0),($2158|0),6)|0);
$2160 = tempRet0;
$2161 = $2150 ^ $2159;
$2162 = $2151 ^ $2160;
$2163 = ((($w)) + 16|0);
$2164 = $2163;
$2165 = $2164;
$2166 = HEAP32[$2165>>2]|0;
$2167 = (($2164) + 4)|0;
$2168 = $2167;
$2169 = HEAP32[$2168>>2]|0;
$2170 = (_i64Add(($2161|0),($2162|0),($2166|0),($2169|0))|0);
$2171 = tempRet0;
$2172 = ((($w)) + 80|0);
$2173 = $2172;
$2174 = $2173;
$2175 = HEAP32[$2174>>2]|0;
$2176 = (($2173) + 4)|0;
$2177 = $2176;
$2178 = HEAP32[$2177>>2]|0;
$2179 = (_ROTR($2175,$2178,1,0)|0);
$2180 = tempRet0;
$2181 = ((($w)) + 80|0);
$2182 = $2181;
$2183 = $2182;
$2184 = HEAP32[$2183>>2]|0;
$2185 = (($2182) + 4)|0;
$2186 = $2185;
$2187 = HEAP32[$2186>>2]|0;
$2188 = (_ROTR($2184,$2187,8,0)|0);
$2189 = tempRet0;
$2190 = $2179 ^ $2188;
$2191 = $2180 ^ $2189;
$2192 = ((($w)) + 80|0);
$2193 = $2192;
$2194 = $2193;
$2195 = HEAP32[$2194>>2]|0;
$2196 = (($2193) + 4)|0;
$2197 = $2196;
$2198 = HEAP32[$2197>>2]|0;
$2199 = (_bitshift64Lshr(($2195|0),($2198|0),7)|0);
$2200 = tempRet0;
$2201 = $2190 ^ $2199;
$2202 = $2191 ^ $2200;
$2203 = (_i64Add(($2170|0),($2171|0),($2201|0),($2202|0))|0);
$2204 = tempRet0;
$2205 = ((($w)) + 72|0);
$2206 = $2205;
$2207 = $2206;
$2208 = HEAP32[$2207>>2]|0;
$2209 = (($2206) + 4)|0;
$2210 = $2209;
$2211 = HEAP32[$2210>>2]|0;
$2212 = (_i64Add(($2208|0),($2211|0),($2203|0),($2204|0))|0);
$2213 = tempRet0;
$2214 = $2205;
$2215 = $2214;
HEAP32[$2215>>2] = $2212;
$2216 = (($2214) + 4)|0;
$2217 = $2216;
HEAP32[$2217>>2] = $2213;
$2218 = $h;
$2219 = $2218;
$2220 = HEAP32[$2219>>2]|0;
$2221 = (($2218) + 4)|0;
$2222 = $2221;
$2223 = HEAP32[$2222>>2]|0;
$2224 = (_Sum0_1423($2220,$2223)|0);
$2225 = tempRet0;
$2226 = $h;
$2227 = $2226;
$2228 = HEAP32[$2227>>2]|0;
$2229 = (($2226) + 4)|0;
$2230 = $2229;
$2231 = HEAP32[$2230>>2]|0;
$2232 = $a;
$2233 = $2232;
$2234 = HEAP32[$2233>>2]|0;
$2235 = (($2232) + 4)|0;
$2236 = $2235;
$2237 = HEAP32[$2236>>2]|0;
$2238 = $b;
$2239 = $2238;
$2240 = HEAP32[$2239>>2]|0;
$2241 = (($2238) + 4)|0;
$2242 = $2241;
$2243 = HEAP32[$2242>>2]|0;
$2244 = (_Maj_1424($2228,$2231,$2234,$2237,$2240,$2243)|0);
$2245 = tempRet0;
$2246 = (_i64Add(($2224|0),($2225|0),($2244|0),($2245|0))|0);
$2247 = tempRet0;
$2248 = $t2;
$2249 = $2248;
HEAP32[$2249>>2] = $2246;
$2250 = (($2248) + 4)|0;
$2251 = $2250;
HEAP32[$2251>>2] = $2247;
$2252 = $t1;
$2253 = $2252;
$2254 = HEAP32[$2253>>2]|0;
$2255 = (($2252) + 4)|0;
$2256 = $2255;
$2257 = HEAP32[$2256>>2]|0;
$2258 = $c;
$2259 = $2258;
$2260 = HEAP32[$2259>>2]|0;
$2261 = (($2258) + 4)|0;
$2262 = $2261;
$2263 = HEAP32[$2262>>2]|0;
$2264 = (_i64Add(($2260|0),($2263|0),($2254|0),($2257|0))|0);
$2265 = tempRet0;
$2266 = $c;
$2267 = $2266;
HEAP32[$2267>>2] = $2264;
$2268 = (($2266) + 4)|0;
$2269 = $2268;
HEAP32[$2269>>2] = $2265;
$2270 = $t1;
$2271 = $2270;
$2272 = HEAP32[$2271>>2]|0;
$2273 = (($2270) + 4)|0;
$2274 = $2273;
$2275 = HEAP32[$2274>>2]|0;
$2276 = $t2;
$2277 = $2276;
$2278 = HEAP32[$2277>>2]|0;
$2279 = (($2276) + 4)|0;
$2280 = $2279;
$2281 = HEAP32[$2280>>2]|0;
$2282 = (_i64Add(($2272|0),($2275|0),($2278|0),($2281|0))|0);
$2283 = tempRet0;
$2284 = $g;
$2285 = $2284;
HEAP32[$2285>>2] = $2282;
$2286 = (($2284) + 4)|0;
$2287 = $2286;
HEAP32[$2287>>2] = $2283;
$2288 = $f;
$2289 = $2288;
$2290 = HEAP32[$2289>>2]|0;
$2291 = (($2288) + 4)|0;
$2292 = $2291;
$2293 = HEAP32[$2292>>2]|0;
$2294 = $c;
$2295 = $2294;
$2296 = HEAP32[$2295>>2]|0;
$2297 = (($2294) + 4)|0;
$2298 = $2297;
$2299 = HEAP32[$2298>>2]|0;
$2300 = (_Sum1_1422($2296,$2299)|0);
$2301 = tempRet0;
$2302 = (_i64Add(($2290|0),($2293|0),($2300|0),($2301|0))|0);
$2303 = tempRet0;
$2304 = $c;
$2305 = $2304;
$2306 = HEAP32[$2305>>2]|0;
$2307 = (($2304) + 4)|0;
$2308 = $2307;
$2309 = HEAP32[$2308>>2]|0;
$2310 = $d;
$2311 = $2310;
$2312 = HEAP32[$2311>>2]|0;
$2313 = (($2310) + 4)|0;
$2314 = $2313;
$2315 = HEAP32[$2314>>2]|0;
$2316 = $e;
$2317 = $2316;
$2318 = HEAP32[$2317>>2]|0;
$2319 = (($2316) + 4)|0;
$2320 = $2319;
$2321 = HEAP32[$2320>>2]|0;
$2322 = (_Ch($2306,$2309,$2312,$2315,$2318,$2321)|0);
$2323 = tempRet0;
$2324 = (_i64Add(($2302|0),($2303|0),($2322|0),($2323|0))|0);
$2325 = tempRet0;
$2326 = $t;
$2327 = (($2326) + 10)|0;
$2328 = (80 + ($2327<<3)|0);
$2329 = $2328;
$2330 = $2329;
$2331 = HEAP32[$2330>>2]|0;
$2332 = (($2329) + 4)|0;
$2333 = $2332;
$2334 = HEAP32[$2333>>2]|0;
$2335 = (_i64Add(($2324|0),($2325|0),($2331|0),($2334|0))|0);
$2336 = tempRet0;
$2337 = ((($w)) + 80|0);
$2338 = $2337;
$2339 = $2338;
$2340 = HEAP32[$2339>>2]|0;
$2341 = (($2338) + 4)|0;
$2342 = $2341;
$2343 = HEAP32[$2342>>2]|0;
$2344 = (_i64Add(($2335|0),($2336|0),($2340|0),($2343|0))|0);
$2345 = tempRet0;
$2346 = $t1;
$2347 = $2346;
HEAP32[$2347>>2] = $2344;
$2348 = (($2346) + 4)|0;
$2349 = $2348;
HEAP32[$2349>>2] = $2345;
$2350 = ((($w)) + 64|0);
$2351 = $2350;
$2352 = $2351;
$2353 = HEAP32[$2352>>2]|0;
$2354 = (($2351) + 4)|0;
$2355 = $2354;
$2356 = HEAP32[$2355>>2]|0;
$2357 = (_ROTR($2353,$2356,19,0)|0);
$2358 = tempRet0;
$2359 = ((($w)) + 64|0);
$2360 = $2359;
$2361 = $2360;
$2362 = HEAP32[$2361>>2]|0;
$2363 = (($2360) + 4)|0;
$2364 = $2363;
$2365 = HEAP32[$2364>>2]|0;
$2366 = (_ROTR($2362,$2365,61,0)|0);
$2367 = tempRet0;
$2368 = $2357 ^ $2366;
$2369 = $2358 ^ $2367;
$2370 = ((($w)) + 64|0);
$2371 = $2370;
$2372 = $2371;
$2373 = HEAP32[$2372>>2]|0;
$2374 = (($2371) + 4)|0;
$2375 = $2374;
$2376 = HEAP32[$2375>>2]|0;
$2377 = (_bitshift64Lshr(($2373|0),($2376|0),6)|0);
$2378 = tempRet0;
$2379 = $2368 ^ $2377;
$2380 = $2369 ^ $2378;
$2381 = ((($w)) + 24|0);
$2382 = $2381;
$2383 = $2382;
$2384 = HEAP32[$2383>>2]|0;
$2385 = (($2382) + 4)|0;
$2386 = $2385;
$2387 = HEAP32[$2386>>2]|0;
$2388 = (_i64Add(($2379|0),($2380|0),($2384|0),($2387|0))|0);
$2389 = tempRet0;
$2390 = ((($w)) + 88|0);
$2391 = $2390;
$2392 = $2391;
$2393 = HEAP32[$2392>>2]|0;
$2394 = (($2391) + 4)|0;
$2395 = $2394;
$2396 = HEAP32[$2395>>2]|0;
$2397 = (_ROTR($2393,$2396,1,0)|0);
$2398 = tempRet0;
$2399 = ((($w)) + 88|0);
$2400 = $2399;
$2401 = $2400;
$2402 = HEAP32[$2401>>2]|0;
$2403 = (($2400) + 4)|0;
$2404 = $2403;
$2405 = HEAP32[$2404>>2]|0;
$2406 = (_ROTR($2402,$2405,8,0)|0);
$2407 = tempRet0;
$2408 = $2397 ^ $2406;
$2409 = $2398 ^ $2407;
$2410 = ((($w)) + 88|0);
$2411 = $2410;
$2412 = $2411;
$2413 = HEAP32[$2412>>2]|0;
$2414 = (($2411) + 4)|0;
$2415 = $2414;
$2416 = HEAP32[$2415>>2]|0;
$2417 = (_bitshift64Lshr(($2413|0),($2416|0),7)|0);
$2418 = tempRet0;
$2419 = $2408 ^ $2417;
$2420 = $2409 ^ $2418;
$2421 = (_i64Add(($2388|0),($2389|0),($2419|0),($2420|0))|0);
$2422 = tempRet0;
$2423 = ((($w)) + 80|0);
$2424 = $2423;
$2425 = $2424;
$2426 = HEAP32[$2425>>2]|0;
$2427 = (($2424) + 4)|0;
$2428 = $2427;
$2429 = HEAP32[$2428>>2]|0;
$2430 = (_i64Add(($2426|0),($2429|0),($2421|0),($2422|0))|0);
$2431 = tempRet0;
$2432 = $2423;
$2433 = $2432;
HEAP32[$2433>>2] = $2430;
$2434 = (($2432) + 4)|0;
$2435 = $2434;
HEAP32[$2435>>2] = $2431;
$2436 = $g;
$2437 = $2436;
$2438 = HEAP32[$2437>>2]|0;
$2439 = (($2436) + 4)|0;
$2440 = $2439;
$2441 = HEAP32[$2440>>2]|0;
$2442 = (_Sum0_1423($2438,$2441)|0);
$2443 = tempRet0;
$2444 = $g;
$2445 = $2444;
$2446 = HEAP32[$2445>>2]|0;
$2447 = (($2444) + 4)|0;
$2448 = $2447;
$2449 = HEAP32[$2448>>2]|0;
$2450 = $h;
$2451 = $2450;
$2452 = HEAP32[$2451>>2]|0;
$2453 = (($2450) + 4)|0;
$2454 = $2453;
$2455 = HEAP32[$2454>>2]|0;
$2456 = $a;
$2457 = $2456;
$2458 = HEAP32[$2457>>2]|0;
$2459 = (($2456) + 4)|0;
$2460 = $2459;
$2461 = HEAP32[$2460>>2]|0;
$2462 = (_Maj_1424($2446,$2449,$2452,$2455,$2458,$2461)|0);
$2463 = tempRet0;
$2464 = (_i64Add(($2442|0),($2443|0),($2462|0),($2463|0))|0);
$2465 = tempRet0;
$2466 = $t2;
$2467 = $2466;
HEAP32[$2467>>2] = $2464;
$2468 = (($2466) + 4)|0;
$2469 = $2468;
HEAP32[$2469>>2] = $2465;
$2470 = $t1;
$2471 = $2470;
$2472 = HEAP32[$2471>>2]|0;
$2473 = (($2470) + 4)|0;
$2474 = $2473;
$2475 = HEAP32[$2474>>2]|0;
$2476 = $b;
$2477 = $2476;
$2478 = HEAP32[$2477>>2]|0;
$2479 = (($2476) + 4)|0;
$2480 = $2479;
$2481 = HEAP32[$2480>>2]|0;
$2482 = (_i64Add(($2478|0),($2481|0),($2472|0),($2475|0))|0);
$2483 = tempRet0;
$2484 = $b;
$2485 = $2484;
HEAP32[$2485>>2] = $2482;
$2486 = (($2484) + 4)|0;
$2487 = $2486;
HEAP32[$2487>>2] = $2483;
$2488 = $t1;
$2489 = $2488;
$2490 = HEAP32[$2489>>2]|0;
$2491 = (($2488) + 4)|0;
$2492 = $2491;
$2493 = HEAP32[$2492>>2]|0;
$2494 = $t2;
$2495 = $2494;
$2496 = HEAP32[$2495>>2]|0;
$2497 = (($2494) + 4)|0;
$2498 = $2497;
$2499 = HEAP32[$2498>>2]|0;
$2500 = (_i64Add(($2490|0),($2493|0),($2496|0),($2499|0))|0);
$2501 = tempRet0;
$2502 = $f;
$2503 = $2502;
HEAP32[$2503>>2] = $2500;
$2504 = (($2502) + 4)|0;
$2505 = $2504;
HEAP32[$2505>>2] = $2501;
$2506 = $e;
$2507 = $2506;
$2508 = HEAP32[$2507>>2]|0;
$2509 = (($2506) + 4)|0;
$2510 = $2509;
$2511 = HEAP32[$2510>>2]|0;
$2512 = $b;
$2513 = $2512;
$2514 = HEAP32[$2513>>2]|0;
$2515 = (($2512) + 4)|0;
$2516 = $2515;
$2517 = HEAP32[$2516>>2]|0;
$2518 = (_Sum1_1422($2514,$2517)|0);
$2519 = tempRet0;
$2520 = (_i64Add(($2508|0),($2511|0),($2518|0),($2519|0))|0);
$2521 = tempRet0;
$2522 = $b;
$2523 = $2522;
$2524 = HEAP32[$2523>>2]|0;
$2525 = (($2522) + 4)|0;
$2526 = $2525;
$2527 = HEAP32[$2526>>2]|0;
$2528 = $c;
$2529 = $2528;
$2530 = HEAP32[$2529>>2]|0;
$2531 = (($2528) + 4)|0;
$2532 = $2531;
$2533 = HEAP32[$2532>>2]|0;
$2534 = $d;
$2535 = $2534;
$2536 = HEAP32[$2535>>2]|0;
$2537 = (($2534) + 4)|0;
$2538 = $2537;
$2539 = HEAP32[$2538>>2]|0;
$2540 = (_Ch($2524,$2527,$2530,$2533,$2536,$2539)|0);
$2541 = tempRet0;
$2542 = (_i64Add(($2520|0),($2521|0),($2540|0),($2541|0))|0);
$2543 = tempRet0;
$2544 = $t;
$2545 = (($2544) + 11)|0;
$2546 = (80 + ($2545<<3)|0);
$2547 = $2546;
$2548 = $2547;
$2549 = HEAP32[$2548>>2]|0;
$2550 = (($2547) + 4)|0;
$2551 = $2550;
$2552 = HEAP32[$2551>>2]|0;
$2553 = (_i64Add(($2542|0),($2543|0),($2549|0),($2552|0))|0);
$2554 = tempRet0;
$2555 = ((($w)) + 88|0);
$2556 = $2555;
$2557 = $2556;
$2558 = HEAP32[$2557>>2]|0;
$2559 = (($2556) + 4)|0;
$2560 = $2559;
$2561 = HEAP32[$2560>>2]|0;
$2562 = (_i64Add(($2553|0),($2554|0),($2558|0),($2561|0))|0);
$2563 = tempRet0;
$2564 = $t1;
$2565 = $2564;
HEAP32[$2565>>2] = $2562;
$2566 = (($2564) + 4)|0;
$2567 = $2566;
HEAP32[$2567>>2] = $2563;
$2568 = ((($w)) + 72|0);
$2569 = $2568;
$2570 = $2569;
$2571 = HEAP32[$2570>>2]|0;
$2572 = (($2569) + 4)|0;
$2573 = $2572;
$2574 = HEAP32[$2573>>2]|0;
$2575 = (_ROTR($2571,$2574,19,0)|0);
$2576 = tempRet0;
$2577 = ((($w)) + 72|0);
$2578 = $2577;
$2579 = $2578;
$2580 = HEAP32[$2579>>2]|0;
$2581 = (($2578) + 4)|0;
$2582 = $2581;
$2583 = HEAP32[$2582>>2]|0;
$2584 = (_ROTR($2580,$2583,61,0)|0);
$2585 = tempRet0;
$2586 = $2575 ^ $2584;
$2587 = $2576 ^ $2585;
$2588 = ((($w)) + 72|0);
$2589 = $2588;
$2590 = $2589;
$2591 = HEAP32[$2590>>2]|0;
$2592 = (($2589) + 4)|0;
$2593 = $2592;
$2594 = HEAP32[$2593>>2]|0;
$2595 = (_bitshift64Lshr(($2591|0),($2594|0),6)|0);
$2596 = tempRet0;
$2597 = $2586 ^ $2595;
$2598 = $2587 ^ $2596;
$2599 = ((($w)) + 32|0);
$2600 = $2599;
$2601 = $2600;
$2602 = HEAP32[$2601>>2]|0;
$2603 = (($2600) + 4)|0;
$2604 = $2603;
$2605 = HEAP32[$2604>>2]|0;
$2606 = (_i64Add(($2597|0),($2598|0),($2602|0),($2605|0))|0);
$2607 = tempRet0;
$2608 = ((($w)) + 96|0);
$2609 = $2608;
$2610 = $2609;
$2611 = HEAP32[$2610>>2]|0;
$2612 = (($2609) + 4)|0;
$2613 = $2612;
$2614 = HEAP32[$2613>>2]|0;
$2615 = (_ROTR($2611,$2614,1,0)|0);
$2616 = tempRet0;
$2617 = ((($w)) + 96|0);
$2618 = $2617;
$2619 = $2618;
$2620 = HEAP32[$2619>>2]|0;
$2621 = (($2618) + 4)|0;
$2622 = $2621;
$2623 = HEAP32[$2622>>2]|0;
$2624 = (_ROTR($2620,$2623,8,0)|0);
$2625 = tempRet0;
$2626 = $2615 ^ $2624;
$2627 = $2616 ^ $2625;
$2628 = ((($w)) + 96|0);
$2629 = $2628;
$2630 = $2629;
$2631 = HEAP32[$2630>>2]|0;
$2632 = (($2629) + 4)|0;
$2633 = $2632;
$2634 = HEAP32[$2633>>2]|0;
$2635 = (_bitshift64Lshr(($2631|0),($2634|0),7)|0);
$2636 = tempRet0;
$2637 = $2626 ^ $2635;
$2638 = $2627 ^ $2636;
$2639 = (_i64Add(($2606|0),($2607|0),($2637|0),($2638|0))|0);
$2640 = tempRet0;
$2641 = ((($w)) + 88|0);
$2642 = $2641;
$2643 = $2642;
$2644 = HEAP32[$2643>>2]|0;
$2645 = (($2642) + 4)|0;
$2646 = $2645;
$2647 = HEAP32[$2646>>2]|0;
$2648 = (_i64Add(($2644|0),($2647|0),($2639|0),($2640|0))|0);
$2649 = tempRet0;
$2650 = $2641;
$2651 = $2650;
HEAP32[$2651>>2] = $2648;
$2652 = (($2650) + 4)|0;
$2653 = $2652;
HEAP32[$2653>>2] = $2649;
$2654 = $f;
$2655 = $2654;
$2656 = HEAP32[$2655>>2]|0;
$2657 = (($2654) + 4)|0;
$2658 = $2657;
$2659 = HEAP32[$2658>>2]|0;
$2660 = (_Sum0_1423($2656,$2659)|0);
$2661 = tempRet0;
$2662 = $f;
$2663 = $2662;
$2664 = HEAP32[$2663>>2]|0;
$2665 = (($2662) + 4)|0;
$2666 = $2665;
$2667 = HEAP32[$2666>>2]|0;
$2668 = $g;
$2669 = $2668;
$2670 = HEAP32[$2669>>2]|0;
$2671 = (($2668) + 4)|0;
$2672 = $2671;
$2673 = HEAP32[$2672>>2]|0;
$2674 = $h;
$2675 = $2674;
$2676 = HEAP32[$2675>>2]|0;
$2677 = (($2674) + 4)|0;
$2678 = $2677;
$2679 = HEAP32[$2678>>2]|0;
$2680 = (_Maj_1424($2664,$2667,$2670,$2673,$2676,$2679)|0);
$2681 = tempRet0;
$2682 = (_i64Add(($2660|0),($2661|0),($2680|0),($2681|0))|0);
$2683 = tempRet0;
$2684 = $t2;
$2685 = $2684;
HEAP32[$2685>>2] = $2682;
$2686 = (($2684) + 4)|0;
$2687 = $2686;
HEAP32[$2687>>2] = $2683;
$2688 = $t1;
$2689 = $2688;
$2690 = HEAP32[$2689>>2]|0;
$2691 = (($2688) + 4)|0;
$2692 = $2691;
$2693 = HEAP32[$2692>>2]|0;
$2694 = $a;
$2695 = $2694;
$2696 = HEAP32[$2695>>2]|0;
$2697 = (($2694) + 4)|0;
$2698 = $2697;
$2699 = HEAP32[$2698>>2]|0;
$2700 = (_i64Add(($2696|0),($2699|0),($2690|0),($2693|0))|0);
$2701 = tempRet0;
$2702 = $a;
$2703 = $2702;
HEAP32[$2703>>2] = $2700;
$2704 = (($2702) + 4)|0;
$2705 = $2704;
HEAP32[$2705>>2] = $2701;
$2706 = $t1;
$2707 = $2706;
$2708 = HEAP32[$2707>>2]|0;
$2709 = (($2706) + 4)|0;
$2710 = $2709;
$2711 = HEAP32[$2710>>2]|0;
$2712 = $t2;
$2713 = $2712;
$2714 = HEAP32[$2713>>2]|0;
$2715 = (($2712) + 4)|0;
$2716 = $2715;
$2717 = HEAP32[$2716>>2]|0;
$2718 = (_i64Add(($2708|0),($2711|0),($2714|0),($2717|0))|0);
$2719 = tempRet0;
$2720 = $e;
$2721 = $2720;
HEAP32[$2721>>2] = $2718;
$2722 = (($2720) + 4)|0;
$2723 = $2722;
HEAP32[$2723>>2] = $2719;
$2724 = $d;
$2725 = $2724;
$2726 = HEAP32[$2725>>2]|0;
$2727 = (($2724) + 4)|0;
$2728 = $2727;
$2729 = HEAP32[$2728>>2]|0;
$2730 = $a;
$2731 = $2730;
$2732 = HEAP32[$2731>>2]|0;
$2733 = (($2730) + 4)|0;
$2734 = $2733;
$2735 = HEAP32[$2734>>2]|0;
$2736 = (_Sum1_1422($2732,$2735)|0);
$2737 = tempRet0;
$2738 = (_i64Add(($2726|0),($2729|0),($2736|0),($2737|0))|0);
$2739 = tempRet0;
$2740 = $a;
$2741 = $2740;
$2742 = HEAP32[$2741>>2]|0;
$2743 = (($2740) + 4)|0;
$2744 = $2743;
$2745 = HEAP32[$2744>>2]|0;
$2746 = $b;
$2747 = $2746;
$2748 = HEAP32[$2747>>2]|0;
$2749 = (($2746) + 4)|0;
$2750 = $2749;
$2751 = HEAP32[$2750>>2]|0;
$2752 = $c;
$2753 = $2752;
$2754 = HEAP32[$2753>>2]|0;
$2755 = (($2752) + 4)|0;
$2756 = $2755;
$2757 = HEAP32[$2756>>2]|0;
$2758 = (_Ch($2742,$2745,$2748,$2751,$2754,$2757)|0);
$2759 = tempRet0;
$2760 = (_i64Add(($2738|0),($2739|0),($2758|0),($2759|0))|0);
$2761 = tempRet0;
$2762 = $t;
$2763 = (($2762) + 12)|0;
$2764 = (80 + ($2763<<3)|0);
$2765 = $2764;
$2766 = $2765;
$2767 = HEAP32[$2766>>2]|0;
$2768 = (($2765) + 4)|0;
$2769 = $2768;
$2770 = HEAP32[$2769>>2]|0;
$2771 = (_i64Add(($2760|0),($2761|0),($2767|0),($2770|0))|0);
$2772 = tempRet0;
$2773 = ((($w)) + 96|0);
$2774 = $2773;
$2775 = $2774;
$2776 = HEAP32[$2775>>2]|0;
$2777 = (($2774) + 4)|0;
$2778 = $2777;
$2779 = HEAP32[$2778>>2]|0;
$2780 = (_i64Add(($2771|0),($2772|0),($2776|0),($2779|0))|0);
$2781 = tempRet0;
$2782 = $t1;
$2783 = $2782;
HEAP32[$2783>>2] = $2780;
$2784 = (($2782) + 4)|0;
$2785 = $2784;
HEAP32[$2785>>2] = $2781;
$2786 = ((($w)) + 80|0);
$2787 = $2786;
$2788 = $2787;
$2789 = HEAP32[$2788>>2]|0;
$2790 = (($2787) + 4)|0;
$2791 = $2790;
$2792 = HEAP32[$2791>>2]|0;
$2793 = (_ROTR($2789,$2792,19,0)|0);
$2794 = tempRet0;
$2795 = ((($w)) + 80|0);
$2796 = $2795;
$2797 = $2796;
$2798 = HEAP32[$2797>>2]|0;
$2799 = (($2796) + 4)|0;
$2800 = $2799;
$2801 = HEAP32[$2800>>2]|0;
$2802 = (_ROTR($2798,$2801,61,0)|0);
$2803 = tempRet0;
$2804 = $2793 ^ $2802;
$2805 = $2794 ^ $2803;
$2806 = ((($w)) + 80|0);
$2807 = $2806;
$2808 = $2807;
$2809 = HEAP32[$2808>>2]|0;
$2810 = (($2807) + 4)|0;
$2811 = $2810;
$2812 = HEAP32[$2811>>2]|0;
$2813 = (_bitshift64Lshr(($2809|0),($2812|0),6)|0);
$2814 = tempRet0;
$2815 = $2804 ^ $2813;
$2816 = $2805 ^ $2814;
$2817 = ((($w)) + 40|0);
$2818 = $2817;
$2819 = $2818;
$2820 = HEAP32[$2819>>2]|0;
$2821 = (($2818) + 4)|0;
$2822 = $2821;
$2823 = HEAP32[$2822>>2]|0;
$2824 = (_i64Add(($2815|0),($2816|0),($2820|0),($2823|0))|0);
$2825 = tempRet0;
$2826 = ((($w)) + 104|0);
$2827 = $2826;
$2828 = $2827;
$2829 = HEAP32[$2828>>2]|0;
$2830 = (($2827) + 4)|0;
$2831 = $2830;
$2832 = HEAP32[$2831>>2]|0;
$2833 = (_ROTR($2829,$2832,1,0)|0);
$2834 = tempRet0;
$2835 = ((($w)) + 104|0);
$2836 = $2835;
$2837 = $2836;
$2838 = HEAP32[$2837>>2]|0;
$2839 = (($2836) + 4)|0;
$2840 = $2839;
$2841 = HEAP32[$2840>>2]|0;
$2842 = (_ROTR($2838,$2841,8,0)|0);
$2843 = tempRet0;
$2844 = $2833 ^ $2842;
$2845 = $2834 ^ $2843;
$2846 = ((($w)) + 104|0);
$2847 = $2846;
$2848 = $2847;
$2849 = HEAP32[$2848>>2]|0;
$2850 = (($2847) + 4)|0;
$2851 = $2850;
$2852 = HEAP32[$2851>>2]|0;
$2853 = (_bitshift64Lshr(($2849|0),($2852|0),7)|0);
$2854 = tempRet0;
$2855 = $2844 ^ $2853;
$2856 = $2845 ^ $2854;
$2857 = (_i64Add(($2824|0),($2825|0),($2855|0),($2856|0))|0);
$2858 = tempRet0;
$2859 = ((($w)) + 96|0);
$2860 = $2859;
$2861 = $2860;
$2862 = HEAP32[$2861>>2]|0;
$2863 = (($2860) + 4)|0;
$2864 = $2863;
$2865 = HEAP32[$2864>>2]|0;
$2866 = (_i64Add(($2862|0),($2865|0),($2857|0),($2858|0))|0);
$2867 = tempRet0;
$2868 = $2859;
$2869 = $2868;
HEAP32[$2869>>2] = $2866;
$2870 = (($2868) + 4)|0;
$2871 = $2870;
HEAP32[$2871>>2] = $2867;
$2872 = $e;
$2873 = $2872;
$2874 = HEAP32[$2873>>2]|0;
$2875 = (($2872) + 4)|0;
$2876 = $2875;
$2877 = HEAP32[$2876>>2]|0;
$2878 = (_Sum0_1423($2874,$2877)|0);
$2879 = tempRet0;
$2880 = $e;
$2881 = $2880;
$2882 = HEAP32[$2881>>2]|0;
$2883 = (($2880) + 4)|0;
$2884 = $2883;
$2885 = HEAP32[$2884>>2]|0;
$2886 = $f;
$2887 = $2886;
$2888 = HEAP32[$2887>>2]|0;
$2889 = (($2886) + 4)|0;
$2890 = $2889;
$2891 = HEAP32[$2890>>2]|0;
$2892 = $g;
$2893 = $2892;
$2894 = HEAP32[$2893>>2]|0;
$2895 = (($2892) + 4)|0;
$2896 = $2895;
$2897 = HEAP32[$2896>>2]|0;
$2898 = (_Maj_1424($2882,$2885,$2888,$2891,$2894,$2897)|0);
$2899 = tempRet0;
$2900 = (_i64Add(($2878|0),($2879|0),($2898|0),($2899|0))|0);
$2901 = tempRet0;
$2902 = $t2;
$2903 = $2902;
HEAP32[$2903>>2] = $2900;
$2904 = (($2902) + 4)|0;
$2905 = $2904;
HEAP32[$2905>>2] = $2901;
$2906 = $t1;
$2907 = $2906;
$2908 = HEAP32[$2907>>2]|0;
$2909 = (($2906) + 4)|0;
$2910 = $2909;
$2911 = HEAP32[$2910>>2]|0;
$2912 = $h;
$2913 = $2912;
$2914 = HEAP32[$2913>>2]|0;
$2915 = (($2912) + 4)|0;
$2916 = $2915;
$2917 = HEAP32[$2916>>2]|0;
$2918 = (_i64Add(($2914|0),($2917|0),($2908|0),($2911|0))|0);
$2919 = tempRet0;
$2920 = $h;
$2921 = $2920;
HEAP32[$2921>>2] = $2918;
$2922 = (($2920) + 4)|0;
$2923 = $2922;
HEAP32[$2923>>2] = $2919;
$2924 = $t1;
$2925 = $2924;
$2926 = HEAP32[$2925>>2]|0;
$2927 = (($2924) + 4)|0;
$2928 = $2927;
$2929 = HEAP32[$2928>>2]|0;
$2930 = $t2;
$2931 = $2930;
$2932 = HEAP32[$2931>>2]|0;
$2933 = (($2930) + 4)|0;
$2934 = $2933;
$2935 = HEAP32[$2934>>2]|0;
$2936 = (_i64Add(($2926|0),($2929|0),($2932|0),($2935|0))|0);
$2937 = tempRet0;
$2938 = $d;
$2939 = $2938;
HEAP32[$2939>>2] = $2936;
$2940 = (($2938) + 4)|0;
$2941 = $2940;
HEAP32[$2941>>2] = $2937;
$2942 = $c;
$2943 = $2942;
$2944 = HEAP32[$2943>>2]|0;
$2945 = (($2942) + 4)|0;
$2946 = $2945;
$2947 = HEAP32[$2946>>2]|0;
$2948 = $h;
$2949 = $2948;
$2950 = HEAP32[$2949>>2]|0;
$2951 = (($2948) + 4)|0;
$2952 = $2951;
$2953 = HEAP32[$2952>>2]|0;
$2954 = (_Sum1_1422($2950,$2953)|0);
$2955 = tempRet0;
$2956 = (_i64Add(($2944|0),($2947|0),($2954|0),($2955|0))|0);
$2957 = tempRet0;
$2958 = $h;
$2959 = $2958;
$2960 = HEAP32[$2959>>2]|0;
$2961 = (($2958) + 4)|0;
$2962 = $2961;
$2963 = HEAP32[$2962>>2]|0;
$2964 = $a;
$2965 = $2964;
$2966 = HEAP32[$2965>>2]|0;
$2967 = (($2964) + 4)|0;
$2968 = $2967;
$2969 = HEAP32[$2968>>2]|0;
$2970 = $b;
$2971 = $2970;
$2972 = HEAP32[$2971>>2]|0;
$2973 = (($2970) + 4)|0;
$2974 = $2973;
$2975 = HEAP32[$2974>>2]|0;
$2976 = (_Ch($2960,$2963,$2966,$2969,$2972,$2975)|0);
$2977 = tempRet0;
$2978 = (_i64Add(($2956|0),($2957|0),($2976|0),($2977|0))|0);
$2979 = tempRet0;
$2980 = $t;
$2981 = (($2980) + 13)|0;
$2982 = (80 + ($2981<<3)|0);
$2983 = $2982;
$2984 = $2983;
$2985 = HEAP32[$2984>>2]|0;
$2986 = (($2983) + 4)|0;
$2987 = $2986;
$2988 = HEAP32[$2987>>2]|0;
$2989 = (_i64Add(($2978|0),($2979|0),($2985|0),($2988|0))|0);
$2990 = tempRet0;
$2991 = ((($w)) + 104|0);
$2992 = $2991;
$2993 = $2992;
$2994 = HEAP32[$2993>>2]|0;
$2995 = (($2992) + 4)|0;
$2996 = $2995;
$2997 = HEAP32[$2996>>2]|0;
$2998 = (_i64Add(($2989|0),($2990|0),($2994|0),($2997|0))|0);
$2999 = tempRet0;
$3000 = $t1;
$3001 = $3000;
HEAP32[$3001>>2] = $2998;
$3002 = (($3000) + 4)|0;
$3003 = $3002;
HEAP32[$3003>>2] = $2999;
$3004 = ((($w)) + 88|0);
$3005 = $3004;
$3006 = $3005;
$3007 = HEAP32[$3006>>2]|0;
$3008 = (($3005) + 4)|0;
$3009 = $3008;
$3010 = HEAP32[$3009>>2]|0;
$3011 = (_ROTR($3007,$3010,19,0)|0);
$3012 = tempRet0;
$3013 = ((($w)) + 88|0);
$3014 = $3013;
$3015 = $3014;
$3016 = HEAP32[$3015>>2]|0;
$3017 = (($3014) + 4)|0;
$3018 = $3017;
$3019 = HEAP32[$3018>>2]|0;
$3020 = (_ROTR($3016,$3019,61,0)|0);
$3021 = tempRet0;
$3022 = $3011 ^ $3020;
$3023 = $3012 ^ $3021;
$3024 = ((($w)) + 88|0);
$3025 = $3024;
$3026 = $3025;
$3027 = HEAP32[$3026>>2]|0;
$3028 = (($3025) + 4)|0;
$3029 = $3028;
$3030 = HEAP32[$3029>>2]|0;
$3031 = (_bitshift64Lshr(($3027|0),($3030|0),6)|0);
$3032 = tempRet0;
$3033 = $3022 ^ $3031;
$3034 = $3023 ^ $3032;
$3035 = ((($w)) + 48|0);
$3036 = $3035;
$3037 = $3036;
$3038 = HEAP32[$3037>>2]|0;
$3039 = (($3036) + 4)|0;
$3040 = $3039;
$3041 = HEAP32[$3040>>2]|0;
$3042 = (_i64Add(($3033|0),($3034|0),($3038|0),($3041|0))|0);
$3043 = tempRet0;
$3044 = ((($w)) + 112|0);
$3045 = $3044;
$3046 = $3045;
$3047 = HEAP32[$3046>>2]|0;
$3048 = (($3045) + 4)|0;
$3049 = $3048;
$3050 = HEAP32[$3049>>2]|0;
$3051 = (_ROTR($3047,$3050,1,0)|0);
$3052 = tempRet0;
$3053 = ((($w)) + 112|0);
$3054 = $3053;
$3055 = $3054;
$3056 = HEAP32[$3055>>2]|0;
$3057 = (($3054) + 4)|0;
$3058 = $3057;
$3059 = HEAP32[$3058>>2]|0;
$3060 = (_ROTR($3056,$3059,8,0)|0);
$3061 = tempRet0;
$3062 = $3051 ^ $3060;
$3063 = $3052 ^ $3061;
$3064 = ((($w)) + 112|0);
$3065 = $3064;
$3066 = $3065;
$3067 = HEAP32[$3066>>2]|0;
$3068 = (($3065) + 4)|0;
$3069 = $3068;
$3070 = HEAP32[$3069>>2]|0;
$3071 = (_bitshift64Lshr(($3067|0),($3070|0),7)|0);
$3072 = tempRet0;
$3073 = $3062 ^ $3071;
$3074 = $3063 ^ $3072;
$3075 = (_i64Add(($3042|0),($3043|0),($3073|0),($3074|0))|0);
$3076 = tempRet0;
$3077 = ((($w)) + 104|0);
$3078 = $3077;
$3079 = $3078;
$3080 = HEAP32[$3079>>2]|0;
$3081 = (($3078) + 4)|0;
$3082 = $3081;
$3083 = HEAP32[$3082>>2]|0;
$3084 = (_i64Add(($3080|0),($3083|0),($3075|0),($3076|0))|0);
$3085 = tempRet0;
$3086 = $3077;
$3087 = $3086;
HEAP32[$3087>>2] = $3084;
$3088 = (($3086) + 4)|0;
$3089 = $3088;
HEAP32[$3089>>2] = $3085;
$3090 = $d;
$3091 = $3090;
$3092 = HEAP32[$3091>>2]|0;
$3093 = (($3090) + 4)|0;
$3094 = $3093;
$3095 = HEAP32[$3094>>2]|0;
$3096 = (_Sum0_1423($3092,$3095)|0);
$3097 = tempRet0;
$3098 = $d;
$3099 = $3098;
$3100 = HEAP32[$3099>>2]|0;
$3101 = (($3098) + 4)|0;
$3102 = $3101;
$3103 = HEAP32[$3102>>2]|0;
$3104 = $e;
$3105 = $3104;
$3106 = HEAP32[$3105>>2]|0;
$3107 = (($3104) + 4)|0;
$3108 = $3107;
$3109 = HEAP32[$3108>>2]|0;
$3110 = $f;
$3111 = $3110;
$3112 = HEAP32[$3111>>2]|0;
$3113 = (($3110) + 4)|0;
$3114 = $3113;
$3115 = HEAP32[$3114>>2]|0;
$3116 = (_Maj_1424($3100,$3103,$3106,$3109,$3112,$3115)|0);
$3117 = tempRet0;
$3118 = (_i64Add(($3096|0),($3097|0),($3116|0),($3117|0))|0);
$3119 = tempRet0;
$3120 = $t2;
$3121 = $3120;
HEAP32[$3121>>2] = $3118;
$3122 = (($3120) + 4)|0;
$3123 = $3122;
HEAP32[$3123>>2] = $3119;
$3124 = $t1;
$3125 = $3124;
$3126 = HEAP32[$3125>>2]|0;
$3127 = (($3124) + 4)|0;
$3128 = $3127;
$3129 = HEAP32[$3128>>2]|0;
$3130 = $g;
$3131 = $3130;
$3132 = HEAP32[$3131>>2]|0;
$3133 = (($3130) + 4)|0;
$3134 = $3133;
$3135 = HEAP32[$3134>>2]|0;
$3136 = (_i64Add(($3132|0),($3135|0),($3126|0),($3129|0))|0);
$3137 = tempRet0;
$3138 = $g;
$3139 = $3138;
HEAP32[$3139>>2] = $3136;
$3140 = (($3138) + 4)|0;
$3141 = $3140;
HEAP32[$3141>>2] = $3137;
$3142 = $t1;
$3143 = $3142;
$3144 = HEAP32[$3143>>2]|0;
$3145 = (($3142) + 4)|0;
$3146 = $3145;
$3147 = HEAP32[$3146>>2]|0;
$3148 = $t2;
$3149 = $3148;
$3150 = HEAP32[$3149>>2]|0;
$3151 = (($3148) + 4)|0;
$3152 = $3151;
$3153 = HEAP32[$3152>>2]|0;
$3154 = (_i64Add(($3144|0),($3147|0),($3150|0),($3153|0))|0);
$3155 = tempRet0;
$3156 = $c;
$3157 = $3156;
HEAP32[$3157>>2] = $3154;
$3158 = (($3156) + 4)|0;
$3159 = $3158;
HEAP32[$3159>>2] = $3155;
$3160 = $b;
$3161 = $3160;
$3162 = HEAP32[$3161>>2]|0;
$3163 = (($3160) + 4)|0;
$3164 = $3163;
$3165 = HEAP32[$3164>>2]|0;
$3166 = $g;
$3167 = $3166;
$3168 = HEAP32[$3167>>2]|0;
$3169 = (($3166) + 4)|0;
$3170 = $3169;
$3171 = HEAP32[$3170>>2]|0;
$3172 = (_Sum1_1422($3168,$3171)|0);
$3173 = tempRet0;
$3174 = (_i64Add(($3162|0),($3165|0),($3172|0),($3173|0))|0);
$3175 = tempRet0;
$3176 = $g;
$3177 = $3176;
$3178 = HEAP32[$3177>>2]|0;
$3179 = (($3176) + 4)|0;
$3180 = $3179;
$3181 = HEAP32[$3180>>2]|0;
$3182 = $h;
$3183 = $3182;
$3184 = HEAP32[$3183>>2]|0;
$3185 = (($3182) + 4)|0;
$3186 = $3185;
$3187 = HEAP32[$3186>>2]|0;
$3188 = $a;
$3189 = $3188;
$3190 = HEAP32[$3189>>2]|0;
$3191 = (($3188) + 4)|0;
$3192 = $3191;
$3193 = HEAP32[$3192>>2]|0;
$3194 = (_Ch($3178,$3181,$3184,$3187,$3190,$3193)|0);
$3195 = tempRet0;
$3196 = (_i64Add(($3174|0),($3175|0),($3194|0),($3195|0))|0);
$3197 = tempRet0;
$3198 = $t;
$3199 = (($3198) + 14)|0;
$3200 = (80 + ($3199<<3)|0);
$3201 = $3200;
$3202 = $3201;
$3203 = HEAP32[$3202>>2]|0;
$3204 = (($3201) + 4)|0;
$3205 = $3204;
$3206 = HEAP32[$3205>>2]|0;
$3207 = (_i64Add(($3196|0),($3197|0),($3203|0),($3206|0))|0);
$3208 = tempRet0;
$3209 = ((($w)) + 112|0);
$3210 = $3209;
$3211 = $3210;
$3212 = HEAP32[$3211>>2]|0;
$3213 = (($3210) + 4)|0;
$3214 = $3213;
$3215 = HEAP32[$3214>>2]|0;
$3216 = (_i64Add(($3207|0),($3208|0),($3212|0),($3215|0))|0);
$3217 = tempRet0;
$3218 = $t1;
$3219 = $3218;
HEAP32[$3219>>2] = $3216;
$3220 = (($3218) + 4)|0;
$3221 = $3220;
HEAP32[$3221>>2] = $3217;
$3222 = ((($w)) + 96|0);
$3223 = $3222;
$3224 = $3223;
$3225 = HEAP32[$3224>>2]|0;
$3226 = (($3223) + 4)|0;
$3227 = $3226;
$3228 = HEAP32[$3227>>2]|0;
$3229 = (_ROTR($3225,$3228,19,0)|0);
$3230 = tempRet0;
$3231 = ((($w)) + 96|0);
$3232 = $3231;
$3233 = $3232;
$3234 = HEAP32[$3233>>2]|0;
$3235 = (($3232) + 4)|0;
$3236 = $3235;
$3237 = HEAP32[$3236>>2]|0;
$3238 = (_ROTR($3234,$3237,61,0)|0);
$3239 = tempRet0;
$3240 = $3229 ^ $3238;
$3241 = $3230 ^ $3239;
$3242 = ((($w)) + 96|0);
$3243 = $3242;
$3244 = $3243;
$3245 = HEAP32[$3244>>2]|0;
$3246 = (($3243) + 4)|0;
$3247 = $3246;
$3248 = HEAP32[$3247>>2]|0;
$3249 = (_bitshift64Lshr(($3245|0),($3248|0),6)|0);
$3250 = tempRet0;
$3251 = $3240 ^ $3249;
$3252 = $3241 ^ $3250;
$3253 = ((($w)) + 56|0);
$3254 = $3253;
$3255 = $3254;
$3256 = HEAP32[$3255>>2]|0;
$3257 = (($3254) + 4)|0;
$3258 = $3257;
$3259 = HEAP32[$3258>>2]|0;
$3260 = (_i64Add(($3251|0),($3252|0),($3256|0),($3259|0))|0);
$3261 = tempRet0;
$3262 = ((($w)) + 120|0);
$3263 = $3262;
$3264 = $3263;
$3265 = HEAP32[$3264>>2]|0;
$3266 = (($3263) + 4)|0;
$3267 = $3266;
$3268 = HEAP32[$3267>>2]|0;
$3269 = (_ROTR($3265,$3268,1,0)|0);
$3270 = tempRet0;
$3271 = ((($w)) + 120|0);
$3272 = $3271;
$3273 = $3272;
$3274 = HEAP32[$3273>>2]|0;
$3275 = (($3272) + 4)|0;
$3276 = $3275;
$3277 = HEAP32[$3276>>2]|0;
$3278 = (_ROTR($3274,$3277,8,0)|0);
$3279 = tempRet0;
$3280 = $3269 ^ $3278;
$3281 = $3270 ^ $3279;
$3282 = ((($w)) + 120|0);
$3283 = $3282;
$3284 = $3283;
$3285 = HEAP32[$3284>>2]|0;
$3286 = (($3283) + 4)|0;
$3287 = $3286;
$3288 = HEAP32[$3287>>2]|0;
$3289 = (_bitshift64Lshr(($3285|0),($3288|0),7)|0);
$3290 = tempRet0;
$3291 = $3280 ^ $3289;
$3292 = $3281 ^ $3290;
$3293 = (_i64Add(($3260|0),($3261|0),($3291|0),($3292|0))|0);
$3294 = tempRet0;
$3295 = ((($w)) + 112|0);
$3296 = $3295;
$3297 = $3296;
$3298 = HEAP32[$3297>>2]|0;
$3299 = (($3296) + 4)|0;
$3300 = $3299;
$3301 = HEAP32[$3300>>2]|0;
$3302 = (_i64Add(($3298|0),($3301|0),($3293|0),($3294|0))|0);
$3303 = tempRet0;
$3304 = $3295;
$3305 = $3304;
HEAP32[$3305>>2] = $3302;
$3306 = (($3304) + 4)|0;
$3307 = $3306;
HEAP32[$3307>>2] = $3303;
$3308 = $c;
$3309 = $3308;
$3310 = HEAP32[$3309>>2]|0;
$3311 = (($3308) + 4)|0;
$3312 = $3311;
$3313 = HEAP32[$3312>>2]|0;
$3314 = (_Sum0_1423($3310,$3313)|0);
$3315 = tempRet0;
$3316 = $c;
$3317 = $3316;
$3318 = HEAP32[$3317>>2]|0;
$3319 = (($3316) + 4)|0;
$3320 = $3319;
$3321 = HEAP32[$3320>>2]|0;
$3322 = $d;
$3323 = $3322;
$3324 = HEAP32[$3323>>2]|0;
$3325 = (($3322) + 4)|0;
$3326 = $3325;
$3327 = HEAP32[$3326>>2]|0;
$3328 = $e;
$3329 = $3328;
$3330 = HEAP32[$3329>>2]|0;
$3331 = (($3328) + 4)|0;
$3332 = $3331;
$3333 = HEAP32[$3332>>2]|0;
$3334 = (_Maj_1424($3318,$3321,$3324,$3327,$3330,$3333)|0);
$3335 = tempRet0;
$3336 = (_i64Add(($3314|0),($3315|0),($3334|0),($3335|0))|0);
$3337 = tempRet0;
$3338 = $t2;
$3339 = $3338;
HEAP32[$3339>>2] = $3336;
$3340 = (($3338) + 4)|0;
$3341 = $3340;
HEAP32[$3341>>2] = $3337;
$3342 = $t1;
$3343 = $3342;
$3344 = HEAP32[$3343>>2]|0;
$3345 = (($3342) + 4)|0;
$3346 = $3345;
$3347 = HEAP32[$3346>>2]|0;
$3348 = $f;
$3349 = $3348;
$3350 = HEAP32[$3349>>2]|0;
$3351 = (($3348) + 4)|0;
$3352 = $3351;
$3353 = HEAP32[$3352>>2]|0;
$3354 = (_i64Add(($3350|0),($3353|0),($3344|0),($3347|0))|0);
$3355 = tempRet0;
$3356 = $f;
$3357 = $3356;
HEAP32[$3357>>2] = $3354;
$3358 = (($3356) + 4)|0;
$3359 = $3358;
HEAP32[$3359>>2] = $3355;
$3360 = $t1;
$3361 = $3360;
$3362 = HEAP32[$3361>>2]|0;
$3363 = (($3360) + 4)|0;
$3364 = $3363;
$3365 = HEAP32[$3364>>2]|0;
$3366 = $t2;
$3367 = $3366;
$3368 = HEAP32[$3367>>2]|0;
$3369 = (($3366) + 4)|0;
$3370 = $3369;
$3371 = HEAP32[$3370>>2]|0;
$3372 = (_i64Add(($3362|0),($3365|0),($3368|0),($3371|0))|0);
$3373 = tempRet0;
$3374 = $b;
$3375 = $3374;
HEAP32[$3375>>2] = $3372;
$3376 = (($3374) + 4)|0;
$3377 = $3376;
HEAP32[$3377>>2] = $3373;
$3378 = $a;
$3379 = $3378;
$3380 = HEAP32[$3379>>2]|0;
$3381 = (($3378) + 4)|0;
$3382 = $3381;
$3383 = HEAP32[$3382>>2]|0;
$3384 = $f;
$3385 = $3384;
$3386 = HEAP32[$3385>>2]|0;
$3387 = (($3384) + 4)|0;
$3388 = $3387;
$3389 = HEAP32[$3388>>2]|0;
$3390 = (_Sum1_1422($3386,$3389)|0);
$3391 = tempRet0;
$3392 = (_i64Add(($3380|0),($3383|0),($3390|0),($3391|0))|0);
$3393 = tempRet0;
$3394 = $f;
$3395 = $3394;
$3396 = HEAP32[$3395>>2]|0;
$3397 = (($3394) + 4)|0;
$3398 = $3397;
$3399 = HEAP32[$3398>>2]|0;
$3400 = $g;
$3401 = $3400;
$3402 = HEAP32[$3401>>2]|0;
$3403 = (($3400) + 4)|0;
$3404 = $3403;
$3405 = HEAP32[$3404>>2]|0;
$3406 = $h;
$3407 = $3406;
$3408 = HEAP32[$3407>>2]|0;
$3409 = (($3406) + 4)|0;
$3410 = $3409;
$3411 = HEAP32[$3410>>2]|0;
$3412 = (_Ch($3396,$3399,$3402,$3405,$3408,$3411)|0);
$3413 = tempRet0;
$3414 = (_i64Add(($3392|0),($3393|0),($3412|0),($3413|0))|0);
$3415 = tempRet0;
$3416 = $t;
$3417 = (($3416) + 15)|0;
$3418 = (80 + ($3417<<3)|0);
$3419 = $3418;
$3420 = $3419;
$3421 = HEAP32[$3420>>2]|0;
$3422 = (($3419) + 4)|0;
$3423 = $3422;
$3424 = HEAP32[$3423>>2]|0;
$3425 = (_i64Add(($3414|0),($3415|0),($3421|0),($3424|0))|0);
$3426 = tempRet0;
$3427 = ((($w)) + 120|0);
$3428 = $3427;
$3429 = $3428;
$3430 = HEAP32[$3429>>2]|0;
$3431 = (($3428) + 4)|0;
$3432 = $3431;
$3433 = HEAP32[$3432>>2]|0;
$3434 = (_i64Add(($3425|0),($3426|0),($3430|0),($3433|0))|0);
$3435 = tempRet0;
$3436 = $t1;
$3437 = $3436;
HEAP32[$3437>>2] = $3434;
$3438 = (($3436) + 4)|0;
$3439 = $3438;
HEAP32[$3439>>2] = $3435;
$3440 = ((($w)) + 104|0);
$3441 = $3440;
$3442 = $3441;
$3443 = HEAP32[$3442>>2]|0;
$3444 = (($3441) + 4)|0;
$3445 = $3444;
$3446 = HEAP32[$3445>>2]|0;
$3447 = (_ROTR($3443,$3446,19,0)|0);
$3448 = tempRet0;
$3449 = ((($w)) + 104|0);
$3450 = $3449;
$3451 = $3450;
$3452 = HEAP32[$3451>>2]|0;
$3453 = (($3450) + 4)|0;
$3454 = $3453;
$3455 = HEAP32[$3454>>2]|0;
$3456 = (_ROTR($3452,$3455,61,0)|0);
$3457 = tempRet0;
$3458 = $3447 ^ $3456;
$3459 = $3448 ^ $3457;
$3460 = ((($w)) + 104|0);
$3461 = $3460;
$3462 = $3461;
$3463 = HEAP32[$3462>>2]|0;
$3464 = (($3461) + 4)|0;
$3465 = $3464;
$3466 = HEAP32[$3465>>2]|0;
$3467 = (_bitshift64Lshr(($3463|0),($3466|0),6)|0);
$3468 = tempRet0;
$3469 = $3458 ^ $3467;
$3470 = $3459 ^ $3468;
$3471 = ((($w)) + 64|0);
$3472 = $3471;
$3473 = $3472;
$3474 = HEAP32[$3473>>2]|0;
$3475 = (($3472) + 4)|0;
$3476 = $3475;
$3477 = HEAP32[$3476>>2]|0;
$3478 = (_i64Add(($3469|0),($3470|0),($3474|0),($3477|0))|0);
$3479 = tempRet0;
$3480 = $w;
$3481 = $3480;
$3482 = HEAP32[$3481>>2]|0;
$3483 = (($3480) + 4)|0;
$3484 = $3483;
$3485 = HEAP32[$3484>>2]|0;
$3486 = (_ROTR($3482,$3485,1,0)|0);
$3487 = tempRet0;
$3488 = $w;
$3489 = $3488;
$3490 = HEAP32[$3489>>2]|0;
$3491 = (($3488) + 4)|0;
$3492 = $3491;
$3493 = HEAP32[$3492>>2]|0;
$3494 = (_ROTR($3490,$3493,8,0)|0);
$3495 = tempRet0;
$3496 = $3486 ^ $3494;
$3497 = $3487 ^ $3495;
$3498 = $w;
$3499 = $3498;
$3500 = HEAP32[$3499>>2]|0;
$3501 = (($3498) + 4)|0;
$3502 = $3501;
$3503 = HEAP32[$3502>>2]|0;
$3504 = (_bitshift64Lshr(($3500|0),($3503|0),7)|0);
$3505 = tempRet0;
$3506 = $3496 ^ $3504;
$3507 = $3497 ^ $3505;
$3508 = (_i64Add(($3478|0),($3479|0),($3506|0),($3507|0))|0);
$3509 = tempRet0;
$3510 = ((($w)) + 120|0);
$3511 = $3510;
$3512 = $3511;
$3513 = HEAP32[$3512>>2]|0;
$3514 = (($3511) + 4)|0;
$3515 = $3514;
$3516 = HEAP32[$3515>>2]|0;
$3517 = (_i64Add(($3513|0),($3516|0),($3508|0),($3509|0))|0);
$3518 = tempRet0;
$3519 = $3510;
$3520 = $3519;
HEAP32[$3520>>2] = $3517;
$3521 = (($3519) + 4)|0;
$3522 = $3521;
HEAP32[$3522>>2] = $3518;
$3523 = $b;
$3524 = $3523;
$3525 = HEAP32[$3524>>2]|0;
$3526 = (($3523) + 4)|0;
$3527 = $3526;
$3528 = HEAP32[$3527>>2]|0;
$3529 = (_Sum0_1423($3525,$3528)|0);
$3530 = tempRet0;
$3531 = $b;
$3532 = $3531;
$3533 = HEAP32[$3532>>2]|0;
$3534 = (($3531) + 4)|0;
$3535 = $3534;
$3536 = HEAP32[$3535>>2]|0;
$3537 = $c;
$3538 = $3537;
$3539 = HEAP32[$3538>>2]|0;
$3540 = (($3537) + 4)|0;
$3541 = $3540;
$3542 = HEAP32[$3541>>2]|0;
$3543 = $d;
$3544 = $3543;
$3545 = HEAP32[$3544>>2]|0;
$3546 = (($3543) + 4)|0;
$3547 = $3546;
$3548 = HEAP32[$3547>>2]|0;
$3549 = (_Maj_1424($3533,$3536,$3539,$3542,$3545,$3548)|0);
$3550 = tempRet0;
$3551 = (_i64Add(($3529|0),($3530|0),($3549|0),($3550|0))|0);
$3552 = tempRet0;
$3553 = $t2;
$3554 = $3553;
HEAP32[$3554>>2] = $3551;
$3555 = (($3553) + 4)|0;
$3556 = $3555;
HEAP32[$3556>>2] = $3552;
$3557 = $t1;
$3558 = $3557;
$3559 = HEAP32[$3558>>2]|0;
$3560 = (($3557) + 4)|0;
$3561 = $3560;
$3562 = HEAP32[$3561>>2]|0;
$3563 = $e;
$3564 = $3563;
$3565 = HEAP32[$3564>>2]|0;
$3566 = (($3563) + 4)|0;
$3567 = $3566;
$3568 = HEAP32[$3567>>2]|0;
$3569 = (_i64Add(($3565|0),($3568|0),($3559|0),($3562|0))|0);
$3570 = tempRet0;
$3571 = $e;
$3572 = $3571;
HEAP32[$3572>>2] = $3569;
$3573 = (($3571) + 4)|0;
$3574 = $3573;
HEAP32[$3574>>2] = $3570;
$3575 = $t1;
$3576 = $3575;
$3577 = HEAP32[$3576>>2]|0;
$3578 = (($3575) + 4)|0;
$3579 = $3578;
$3580 = HEAP32[$3579>>2]|0;
$3581 = $t2;
$3582 = $3581;
$3583 = HEAP32[$3582>>2]|0;
$3584 = (($3581) + 4)|0;
$3585 = $3584;
$3586 = HEAP32[$3585>>2]|0;
$3587 = (_i64Add(($3577|0),($3580|0),($3583|0),($3586|0))|0);
$3588 = tempRet0;
$3589 = $a;
$3590 = $3589;
HEAP32[$3590>>2] = $3587;
$3591 = (($3589) + 4)|0;
$3592 = $3591;
HEAP32[$3592>>2] = $3588;
$3593 = $t;
$3594 = (($3593) + 16)|0;
$t = $3594;
}
while(1) {
$3595 = $t;
$3596 = ($3595|0)<(80);
if (!($3596)) {
break;
}
$3597 = $h;
$3598 = $3597;
$3599 = HEAP32[$3598>>2]|0;
$3600 = (($3597) + 4)|0;
$3601 = $3600;
$3602 = HEAP32[$3601>>2]|0;
$3603 = $e;
$3604 = $3603;
$3605 = HEAP32[$3604>>2]|0;
$3606 = (($3603) + 4)|0;
$3607 = $3606;
$3608 = HEAP32[$3607>>2]|0;
$3609 = (_Sum1_1422($3605,$3608)|0);
$3610 = tempRet0;
$3611 = (_i64Add(($3599|0),($3602|0),($3609|0),($3610|0))|0);
$3612 = tempRet0;
$3613 = $e;
$3614 = $3613;
$3615 = HEAP32[$3614>>2]|0;
$3616 = (($3613) + 4)|0;
$3617 = $3616;
$3618 = HEAP32[$3617>>2]|0;
$3619 = $f;
$3620 = $3619;
$3621 = HEAP32[$3620>>2]|0;
$3622 = (($3619) + 4)|0;
$3623 = $3622;
$3624 = HEAP32[$3623>>2]|0;
$3625 = $g;
$3626 = $3625;
$3627 = HEAP32[$3626>>2]|0;
$3628 = (($3625) + 4)|0;
$3629 = $3628;
$3630 = HEAP32[$3629>>2]|0;
$3631 = (_Ch($3615,$3618,$3621,$3624,$3627,$3630)|0);
$3632 = tempRet0;
$3633 = (_i64Add(($3611|0),($3612|0),($3631|0),($3632|0))|0);
$3634 = tempRet0;
$3635 = $t;
$3636 = (80 + ($3635<<3)|0);
$3637 = $3636;
$3638 = $3637;
$3639 = HEAP32[$3638>>2]|0;
$3640 = (($3637) + 4)|0;
$3641 = $3640;
$3642 = HEAP32[$3641>>2]|0;
$3643 = (_i64Add(($3633|0),($3634|0),($3639|0),($3642|0))|0);
$3644 = tempRet0;
$3645 = $w;
$3646 = $3645;
$3647 = HEAP32[$3646>>2]|0;
$3648 = (($3645) + 4)|0;
$3649 = $3648;
$3650 = HEAP32[$3649>>2]|0;
$3651 = (_i64Add(($3643|0),($3644|0),($3647|0),($3650|0))|0);
$3652 = tempRet0;
$3653 = $t11;
$3654 = $3653;
HEAP32[$3654>>2] = $3651;
$3655 = (($3653) + 4)|0;
$3656 = $3655;
HEAP32[$3656>>2] = $3652;
$3657 = $a;
$3658 = $3657;
$3659 = HEAP32[$3658>>2]|0;
$3660 = (($3657) + 4)|0;
$3661 = $3660;
$3662 = HEAP32[$3661>>2]|0;
$3663 = (_Sum0_1423($3659,$3662)|0);
$3664 = tempRet0;
$3665 = $a;
$3666 = $3665;
$3667 = HEAP32[$3666>>2]|0;
$3668 = (($3665) + 4)|0;
$3669 = $3668;
$3670 = HEAP32[$3669>>2]|0;
$3671 = $b;
$3672 = $3671;
$3673 = HEAP32[$3672>>2]|0;
$3674 = (($3671) + 4)|0;
$3675 = $3674;
$3676 = HEAP32[$3675>>2]|0;
$3677 = $c;
$3678 = $3677;
$3679 = HEAP32[$3678>>2]|0;
$3680 = (($3677) + 4)|0;
$3681 = $3680;
$3682 = HEAP32[$3681>>2]|0;
$3683 = (_Maj_1424($3667,$3670,$3673,$3676,$3679,$3682)|0);
$3684 = tempRet0;
$3685 = (_i64Add(($3663|0),($3664|0),($3683|0),($3684|0))|0);
$3686 = tempRet0;
$3687 = $t22;
$3688 = $3687;
HEAP32[$3688>>2] = $3685;
$3689 = (($3687) + 4)|0;
$3690 = $3689;
HEAP32[$3690>>2] = $3686;
$3691 = $t11;
$3692 = $3691;
$3693 = HEAP32[$3692>>2]|0;
$3694 = (($3691) + 4)|0;
$3695 = $3694;
$3696 = HEAP32[$3695>>2]|0;
$3697 = $d;
$3698 = $3697;
$3699 = HEAP32[$3698>>2]|0;
$3700 = (($3697) + 4)|0;
$3701 = $3700;
$3702 = HEAP32[$3701>>2]|0;
$3703 = (_i64Add(($3699|0),($3702|0),($3693|0),($3696|0))|0);
$3704 = tempRet0;
$3705 = $d;
$3706 = $3705;
HEAP32[$3706>>2] = $3703;
$3707 = (($3705) + 4)|0;
$3708 = $3707;
HEAP32[$3708>>2] = $3704;
$3709 = $t11;
$3710 = $3709;
$3711 = HEAP32[$3710>>2]|0;
$3712 = (($3709) + 4)|0;
$3713 = $3712;
$3714 = HEAP32[$3713>>2]|0;
$3715 = $t22;
$3716 = $3715;
$3717 = HEAP32[$3716>>2]|0;
$3718 = (($3715) + 4)|0;
$3719 = $3718;
$3720 = HEAP32[$3719>>2]|0;
$3721 = (_i64Add(($3711|0),($3714|0),($3717|0),($3720|0))|0);
$3722 = tempRet0;
$3723 = $h;
$3724 = $3723;
HEAP32[$3724>>2] = $3721;
$3725 = (($3723) + 4)|0;
$3726 = $3725;
HEAP32[$3726>>2] = $3722;
$3727 = $g;
$3728 = $3727;
$3729 = HEAP32[$3728>>2]|0;
$3730 = (($3727) + 4)|0;
$3731 = $3730;
$3732 = HEAP32[$3731>>2]|0;
$3733 = $d;
$3734 = $3733;
$3735 = HEAP32[$3734>>2]|0;
$3736 = (($3733) + 4)|0;
$3737 = $3736;
$3738 = HEAP32[$3737>>2]|0;
$3739 = (_Sum1_1422($3735,$3738)|0);
$3740 = tempRet0;
$3741 = (_i64Add(($3729|0),($3732|0),($3739|0),($3740|0))|0);
$3742 = tempRet0;
$3743 = $d;
$3744 = $3743;
$3745 = HEAP32[$3744>>2]|0;
$3746 = (($3743) + 4)|0;
$3747 = $3746;
$3748 = HEAP32[$3747>>2]|0;
$3749 = $e;
$3750 = $3749;
$3751 = HEAP32[$3750>>2]|0;
$3752 = (($3749) + 4)|0;
$3753 = $3752;
$3754 = HEAP32[$3753>>2]|0;
$3755 = $f;
$3756 = $3755;
$3757 = HEAP32[$3756>>2]|0;
$3758 = (($3755) + 4)|0;
$3759 = $3758;
$3760 = HEAP32[$3759>>2]|0;
$3761 = (_Ch($3745,$3748,$3751,$3754,$3757,$3760)|0);
$3762 = tempRet0;
$3763 = (_i64Add(($3741|0),($3742|0),($3761|0),($3762|0))|0);
$3764 = tempRet0;
$3765 = $t;
$3766 = (($3765) + 1)|0;
$3767 = (80 + ($3766<<3)|0);
$3768 = $3767;
$3769 = $3768;
$3770 = HEAP32[$3769>>2]|0;
$3771 = (($3768) + 4)|0;
$3772 = $3771;
$3773 = HEAP32[$3772>>2]|0;
$3774 = (_i64Add(($3763|0),($3764|0),($3770|0),($3773|0))|0);
$3775 = tempRet0;
$3776 = ((($w)) + 8|0);
$3777 = $3776;
$3778 = $3777;
$3779 = HEAP32[$3778>>2]|0;
$3780 = (($3777) + 4)|0;
$3781 = $3780;
$3782 = HEAP32[$3781>>2]|0;
$3783 = (_i64Add(($3774|0),($3775|0),($3779|0),($3782|0))|0);
$3784 = tempRet0;
$3785 = $t11;
$3786 = $3785;
HEAP32[$3786>>2] = $3783;
$3787 = (($3785) + 4)|0;
$3788 = $3787;
HEAP32[$3788>>2] = $3784;
$3789 = $h;
$3790 = $3789;
$3791 = HEAP32[$3790>>2]|0;
$3792 = (($3789) + 4)|0;
$3793 = $3792;
$3794 = HEAP32[$3793>>2]|0;
$3795 = (_Sum0_1423($3791,$3794)|0);
$3796 = tempRet0;
$3797 = $h;
$3798 = $3797;
$3799 = HEAP32[$3798>>2]|0;
$3800 = (($3797) + 4)|0;
$3801 = $3800;
$3802 = HEAP32[$3801>>2]|0;
$3803 = $a;
$3804 = $3803;
$3805 = HEAP32[$3804>>2]|0;
$3806 = (($3803) + 4)|0;
$3807 = $3806;
$3808 = HEAP32[$3807>>2]|0;
$3809 = $b;
$3810 = $3809;
$3811 = HEAP32[$3810>>2]|0;
$3812 = (($3809) + 4)|0;
$3813 = $3812;
$3814 = HEAP32[$3813>>2]|0;
$3815 = (_Maj_1424($3799,$3802,$3805,$3808,$3811,$3814)|0);
$3816 = tempRet0;
$3817 = (_i64Add(($3795|0),($3796|0),($3815|0),($3816|0))|0);
$3818 = tempRet0;
$3819 = $t22;
$3820 = $3819;
HEAP32[$3820>>2] = $3817;
$3821 = (($3819) + 4)|0;
$3822 = $3821;
HEAP32[$3822>>2] = $3818;
$3823 = $t11;
$3824 = $3823;
$3825 = HEAP32[$3824>>2]|0;
$3826 = (($3823) + 4)|0;
$3827 = $3826;
$3828 = HEAP32[$3827>>2]|0;
$3829 = $c;
$3830 = $3829;
$3831 = HEAP32[$3830>>2]|0;
$3832 = (($3829) + 4)|0;
$3833 = $3832;
$3834 = HEAP32[$3833>>2]|0;
$3835 = (_i64Add(($3831|0),($3834|0),($3825|0),($3828|0))|0);
$3836 = tempRet0;
$3837 = $c;
$3838 = $3837;
HEAP32[$3838>>2] = $3835;
$3839 = (($3837) + 4)|0;
$3840 = $3839;
HEAP32[$3840>>2] = $3836;
$3841 = $t11;
$3842 = $3841;
$3843 = HEAP32[$3842>>2]|0;
$3844 = (($3841) + 4)|0;
$3845 = $3844;
$3846 = HEAP32[$3845>>2]|0;
$3847 = $t22;
$3848 = $3847;
$3849 = HEAP32[$3848>>2]|0;
$3850 = (($3847) + 4)|0;
$3851 = $3850;
$3852 = HEAP32[$3851>>2]|0;
$3853 = (_i64Add(($3843|0),($3846|0),($3849|0),($3852|0))|0);
$3854 = tempRet0;
$3855 = $g;
$3856 = $3855;
HEAP32[$3856>>2] = $3853;
$3857 = (($3855) + 4)|0;
$3858 = $3857;
HEAP32[$3858>>2] = $3854;
$3859 = $f;
$3860 = $3859;
$3861 = HEAP32[$3860>>2]|0;
$3862 = (($3859) + 4)|0;
$3863 = $3862;
$3864 = HEAP32[$3863>>2]|0;
$3865 = $c;
$3866 = $3865;
$3867 = HEAP32[$3866>>2]|0;
$3868 = (($3865) + 4)|0;
$3869 = $3868;
$3870 = HEAP32[$3869>>2]|0;
$3871 = (_Sum1_1422($3867,$3870)|0);
$3872 = tempRet0;
$3873 = (_i64Add(($3861|0),($3864|0),($3871|0),($3872|0))|0);
$3874 = tempRet0;
$3875 = $c;
$3876 = $3875;
$3877 = HEAP32[$3876>>2]|0;
$3878 = (($3875) + 4)|0;
$3879 = $3878;
$3880 = HEAP32[$3879>>2]|0;
$3881 = $d;
$3882 = $3881;
$3883 = HEAP32[$3882>>2]|0;
$3884 = (($3881) + 4)|0;
$3885 = $3884;
$3886 = HEAP32[$3885>>2]|0;
$3887 = $e;
$3888 = $3887;
$3889 = HEAP32[$3888>>2]|0;
$3890 = (($3887) + 4)|0;
$3891 = $3890;
$3892 = HEAP32[$3891>>2]|0;
$3893 = (_Ch($3877,$3880,$3883,$3886,$3889,$3892)|0);
$3894 = tempRet0;
$3895 = (_i64Add(($3873|0),($3874|0),($3893|0),($3894|0))|0);
$3896 = tempRet0;
$3897 = $t;
$3898 = (($3897) + 2)|0;
$3899 = (80 + ($3898<<3)|0);
$3900 = $3899;
$3901 = $3900;
$3902 = HEAP32[$3901>>2]|0;
$3903 = (($3900) + 4)|0;
$3904 = $3903;
$3905 = HEAP32[$3904>>2]|0;
$3906 = (_i64Add(($3895|0),($3896|0),($3902|0),($3905|0))|0);
$3907 = tempRet0;
$3908 = ((($w)) + 16|0);
$3909 = $3908;
$3910 = $3909;
$3911 = HEAP32[$3910>>2]|0;
$3912 = (($3909) + 4)|0;
$3913 = $3912;
$3914 = HEAP32[$3913>>2]|0;
$3915 = (_i64Add(($3906|0),($3907|0),($3911|0),($3914|0))|0);
$3916 = tempRet0;
$3917 = $t11;
$3918 = $3917;
HEAP32[$3918>>2] = $3915;
$3919 = (($3917) + 4)|0;
$3920 = $3919;
HEAP32[$3920>>2] = $3916;
$3921 = $g;
$3922 = $3921;
$3923 = HEAP32[$3922>>2]|0;
$3924 = (($3921) + 4)|0;
$3925 = $3924;
$3926 = HEAP32[$3925>>2]|0;
$3927 = (_Sum0_1423($3923,$3926)|0);
$3928 = tempRet0;
$3929 = $g;
$3930 = $3929;
$3931 = HEAP32[$3930>>2]|0;
$3932 = (($3929) + 4)|0;
$3933 = $3932;
$3934 = HEAP32[$3933>>2]|0;
$3935 = $h;
$3936 = $3935;
$3937 = HEAP32[$3936>>2]|0;
$3938 = (($3935) + 4)|0;
$3939 = $3938;
$3940 = HEAP32[$3939>>2]|0;
$3941 = $a;
$3942 = $3941;
$3943 = HEAP32[$3942>>2]|0;
$3944 = (($3941) + 4)|0;
$3945 = $3944;
$3946 = HEAP32[$3945>>2]|0;
$3947 = (_Maj_1424($3931,$3934,$3937,$3940,$3943,$3946)|0);
$3948 = tempRet0;
$3949 = (_i64Add(($3927|0),($3928|0),($3947|0),($3948|0))|0);
$3950 = tempRet0;
$3951 = $t22;
$3952 = $3951;
HEAP32[$3952>>2] = $3949;
$3953 = (($3951) + 4)|0;
$3954 = $3953;
HEAP32[$3954>>2] = $3950;
$3955 = $t11;
$3956 = $3955;
$3957 = HEAP32[$3956>>2]|0;
$3958 = (($3955) + 4)|0;
$3959 = $3958;
$3960 = HEAP32[$3959>>2]|0;
$3961 = $b;
$3962 = $3961;
$3963 = HEAP32[$3962>>2]|0;
$3964 = (($3961) + 4)|0;
$3965 = $3964;
$3966 = HEAP32[$3965>>2]|0;
$3967 = (_i64Add(($3963|0),($3966|0),($3957|0),($3960|0))|0);
$3968 = tempRet0;
$3969 = $b;
$3970 = $3969;
HEAP32[$3970>>2] = $3967;
$3971 = (($3969) + 4)|0;
$3972 = $3971;
HEAP32[$3972>>2] = $3968;
$3973 = $t11;
$3974 = $3973;
$3975 = HEAP32[$3974>>2]|0;
$3976 = (($3973) + 4)|0;
$3977 = $3976;
$3978 = HEAP32[$3977>>2]|0;
$3979 = $t22;
$3980 = $3979;
$3981 = HEAP32[$3980>>2]|0;
$3982 = (($3979) + 4)|0;
$3983 = $3982;
$3984 = HEAP32[$3983>>2]|0;
$3985 = (_i64Add(($3975|0),($3978|0),($3981|0),($3984|0))|0);
$3986 = tempRet0;
$3987 = $f;
$3988 = $3987;
HEAP32[$3988>>2] = $3985;
$3989 = (($3987) + 4)|0;
$3990 = $3989;
HEAP32[$3990>>2] = $3986;
$3991 = $e;
$3992 = $3991;
$3993 = HEAP32[$3992>>2]|0;
$3994 = (($3991) + 4)|0;
$3995 = $3994;
$3996 = HEAP32[$3995>>2]|0;
$3997 = $b;
$3998 = $3997;
$3999 = HEAP32[$3998>>2]|0;
$4000 = (($3997) + 4)|0;
$4001 = $4000;
$4002 = HEAP32[$4001>>2]|0;
$4003 = (_Sum1_1422($3999,$4002)|0);
$4004 = tempRet0;
$4005 = (_i64Add(($3993|0),($3996|0),($4003|0),($4004|0))|0);
$4006 = tempRet0;
$4007 = $b;
$4008 = $4007;
$4009 = HEAP32[$4008>>2]|0;
$4010 = (($4007) + 4)|0;
$4011 = $4010;
$4012 = HEAP32[$4011>>2]|0;
$4013 = $c;
$4014 = $4013;
$4015 = HEAP32[$4014>>2]|0;
$4016 = (($4013) + 4)|0;
$4017 = $4016;
$4018 = HEAP32[$4017>>2]|0;
$4019 = $d;
$4020 = $4019;
$4021 = HEAP32[$4020>>2]|0;
$4022 = (($4019) + 4)|0;
$4023 = $4022;
$4024 = HEAP32[$4023>>2]|0;
$4025 = (_Ch($4009,$4012,$4015,$4018,$4021,$4024)|0);
$4026 = tempRet0;
$4027 = (_i64Add(($4005|0),($4006|0),($4025|0),($4026|0))|0);
$4028 = tempRet0;
$4029 = $t;
$4030 = (($4029) + 3)|0;
$4031 = (80 + ($4030<<3)|0);
$4032 = $4031;
$4033 = $4032;
$4034 = HEAP32[$4033>>2]|0;
$4035 = (($4032) + 4)|0;
$4036 = $4035;
$4037 = HEAP32[$4036>>2]|0;
$4038 = (_i64Add(($4027|0),($4028|0),($4034|0),($4037|0))|0);
$4039 = tempRet0;
$4040 = ((($w)) + 24|0);
$4041 = $4040;
$4042 = $4041;
$4043 = HEAP32[$4042>>2]|0;
$4044 = (($4041) + 4)|0;
$4045 = $4044;
$4046 = HEAP32[$4045>>2]|0;
$4047 = (_i64Add(($4038|0),($4039|0),($4043|0),($4046|0))|0);
$4048 = tempRet0;
$4049 = $t11;
$4050 = $4049;
HEAP32[$4050>>2] = $4047;
$4051 = (($4049) + 4)|0;
$4052 = $4051;
HEAP32[$4052>>2] = $4048;
$4053 = $f;
$4054 = $4053;
$4055 = HEAP32[$4054>>2]|0;
$4056 = (($4053) + 4)|0;
$4057 = $4056;
$4058 = HEAP32[$4057>>2]|0;
$4059 = (_Sum0_1423($4055,$4058)|0);
$4060 = tempRet0;
$4061 = $f;
$4062 = $4061;
$4063 = HEAP32[$4062>>2]|0;
$4064 = (($4061) + 4)|0;
$4065 = $4064;
$4066 = HEAP32[$4065>>2]|0;
$4067 = $g;
$4068 = $4067;
$4069 = HEAP32[$4068>>2]|0;
$4070 = (($4067) + 4)|0;
$4071 = $4070;
$4072 = HEAP32[$4071>>2]|0;
$4073 = $h;
$4074 = $4073;
$4075 = HEAP32[$4074>>2]|0;
$4076 = (($4073) + 4)|0;
$4077 = $4076;
$4078 = HEAP32[$4077>>2]|0;
$4079 = (_Maj_1424($4063,$4066,$4069,$4072,$4075,$4078)|0);
$4080 = tempRet0;
$4081 = (_i64Add(($4059|0),($4060|0),($4079|0),($4080|0))|0);
$4082 = tempRet0;
$4083 = $t22;
$4084 = $4083;
HEAP32[$4084>>2] = $4081;
$4085 = (($4083) + 4)|0;
$4086 = $4085;
HEAP32[$4086>>2] = $4082;
$4087 = $t11;
$4088 = $4087;
$4089 = HEAP32[$4088>>2]|0;
$4090 = (($4087) + 4)|0;
$4091 = $4090;
$4092 = HEAP32[$4091>>2]|0;
$4093 = $a;
$4094 = $4093;
$4095 = HEAP32[$4094>>2]|0;
$4096 = (($4093) + 4)|0;
$4097 = $4096;
$4098 = HEAP32[$4097>>2]|0;
$4099 = (_i64Add(($4095|0),($4098|0),($4089|0),($4092|0))|0);
$4100 = tempRet0;
$4101 = $a;
$4102 = $4101;
HEAP32[$4102>>2] = $4099;
$4103 = (($4101) + 4)|0;
$4104 = $4103;
HEAP32[$4104>>2] = $4100;
$4105 = $t11;
$4106 = $4105;
$4107 = HEAP32[$4106>>2]|0;
$4108 = (($4105) + 4)|0;
$4109 = $4108;
$4110 = HEAP32[$4109>>2]|0;
$4111 = $t22;
$4112 = $4111;
$4113 = HEAP32[$4112>>2]|0;
$4114 = (($4111) + 4)|0;
$4115 = $4114;
$4116 = HEAP32[$4115>>2]|0;
$4117 = (_i64Add(($4107|0),($4110|0),($4113|0),($4116|0))|0);
$4118 = tempRet0;
$4119 = $e;
$4120 = $4119;
HEAP32[$4120>>2] = $4117;
$4121 = (($4119) + 4)|0;
$4122 = $4121;
HEAP32[$4122>>2] = $4118;
$4123 = $d;
$4124 = $4123;
$4125 = HEAP32[$4124>>2]|0;
$4126 = (($4123) + 4)|0;
$4127 = $4126;
$4128 = HEAP32[$4127>>2]|0;
$4129 = $a;
$4130 = $4129;
$4131 = HEAP32[$4130>>2]|0;
$4132 = (($4129) + 4)|0;
$4133 = $4132;
$4134 = HEAP32[$4133>>2]|0;
$4135 = (_Sum1_1422($4131,$4134)|0);
$4136 = tempRet0;
$4137 = (_i64Add(($4125|0),($4128|0),($4135|0),($4136|0))|0);
$4138 = tempRet0;
$4139 = $a;
$4140 = $4139;
$4141 = HEAP32[$4140>>2]|0;
$4142 = (($4139) + 4)|0;
$4143 = $4142;
$4144 = HEAP32[$4143>>2]|0;
$4145 = $b;
$4146 = $4145;
$4147 = HEAP32[$4146>>2]|0;
$4148 = (($4145) + 4)|0;
$4149 = $4148;
$4150 = HEAP32[$4149>>2]|0;
$4151 = $c;
$4152 = $4151;
$4153 = HEAP32[$4152>>2]|0;
$4154 = (($4151) + 4)|0;
$4155 = $4154;
$4156 = HEAP32[$4155>>2]|0;
$4157 = (_Ch($4141,$4144,$4147,$4150,$4153,$4156)|0);
$4158 = tempRet0;
$4159 = (_i64Add(($4137|0),($4138|0),($4157|0),($4158|0))|0);
$4160 = tempRet0;
$4161 = $t;
$4162 = (($4161) + 4)|0;
$4163 = (80 + ($4162<<3)|0);
$4164 = $4163;
$4165 = $4164;
$4166 = HEAP32[$4165>>2]|0;
$4167 = (($4164) + 4)|0;
$4168 = $4167;
$4169 = HEAP32[$4168>>2]|0;
$4170 = (_i64Add(($4159|0),($4160|0),($4166|0),($4169|0))|0);
$4171 = tempRet0;
$4172 = ((($w)) + 32|0);
$4173 = $4172;
$4174 = $4173;
$4175 = HEAP32[$4174>>2]|0;
$4176 = (($4173) + 4)|0;
$4177 = $4176;
$4178 = HEAP32[$4177>>2]|0;
$4179 = (_i64Add(($4170|0),($4171|0),($4175|0),($4178|0))|0);
$4180 = tempRet0;
$4181 = $t11;
$4182 = $4181;
HEAP32[$4182>>2] = $4179;
$4183 = (($4181) + 4)|0;
$4184 = $4183;
HEAP32[$4184>>2] = $4180;
$4185 = $e;
$4186 = $4185;
$4187 = HEAP32[$4186>>2]|0;
$4188 = (($4185) + 4)|0;
$4189 = $4188;
$4190 = HEAP32[$4189>>2]|0;
$4191 = (_Sum0_1423($4187,$4190)|0);
$4192 = tempRet0;
$4193 = $e;
$4194 = $4193;
$4195 = HEAP32[$4194>>2]|0;
$4196 = (($4193) + 4)|0;
$4197 = $4196;
$4198 = HEAP32[$4197>>2]|0;
$4199 = $f;
$4200 = $4199;
$4201 = HEAP32[$4200>>2]|0;
$4202 = (($4199) + 4)|0;
$4203 = $4202;
$4204 = HEAP32[$4203>>2]|0;
$4205 = $g;
$4206 = $4205;
$4207 = HEAP32[$4206>>2]|0;
$4208 = (($4205) + 4)|0;
$4209 = $4208;
$4210 = HEAP32[$4209>>2]|0;
$4211 = (_Maj_1424($4195,$4198,$4201,$4204,$4207,$4210)|0);
$4212 = tempRet0;
$4213 = (_i64Add(($4191|0),($4192|0),($4211|0),($4212|0))|0);
$4214 = tempRet0;
$4215 = $t22;
$4216 = $4215;
HEAP32[$4216>>2] = $4213;
$4217 = (($4215) + 4)|0;
$4218 = $4217;
HEAP32[$4218>>2] = $4214;
$4219 = $t11;
$4220 = $4219;
$4221 = HEAP32[$4220>>2]|0;
$4222 = (($4219) + 4)|0;
$4223 = $4222;
$4224 = HEAP32[$4223>>2]|0;
$4225 = $h;
$4226 = $4225;
$4227 = HEAP32[$4226>>2]|0;
$4228 = (($4225) + 4)|0;
$4229 = $4228;
$4230 = HEAP32[$4229>>2]|0;
$4231 = (_i64Add(($4227|0),($4230|0),($4221|0),($4224|0))|0);
$4232 = tempRet0;
$4233 = $h;
$4234 = $4233;
HEAP32[$4234>>2] = $4231;
$4235 = (($4233) + 4)|0;
$4236 = $4235;
HEAP32[$4236>>2] = $4232;
$4237 = $t11;
$4238 = $4237;
$4239 = HEAP32[$4238>>2]|0;
$4240 = (($4237) + 4)|0;
$4241 = $4240;
$4242 = HEAP32[$4241>>2]|0;
$4243 = $t22;
$4244 = $4243;
$4245 = HEAP32[$4244>>2]|0;
$4246 = (($4243) + 4)|0;
$4247 = $4246;
$4248 = HEAP32[$4247>>2]|0;
$4249 = (_i64Add(($4239|0),($4242|0),($4245|0),($4248|0))|0);
$4250 = tempRet0;
$4251 = $d;
$4252 = $4251;
HEAP32[$4252>>2] = $4249;
$4253 = (($4251) + 4)|0;
$4254 = $4253;
HEAP32[$4254>>2] = $4250;
$4255 = $c;
$4256 = $4255;
$4257 = HEAP32[$4256>>2]|0;
$4258 = (($4255) + 4)|0;
$4259 = $4258;
$4260 = HEAP32[$4259>>2]|0;
$4261 = $h;
$4262 = $4261;
$4263 = HEAP32[$4262>>2]|0;
$4264 = (($4261) + 4)|0;
$4265 = $4264;
$4266 = HEAP32[$4265>>2]|0;
$4267 = (_Sum1_1422($4263,$4266)|0);
$4268 = tempRet0;
$4269 = (_i64Add(($4257|0),($4260|0),($4267|0),($4268|0))|0);
$4270 = tempRet0;
$4271 = $h;
$4272 = $4271;
$4273 = HEAP32[$4272>>2]|0;
$4274 = (($4271) + 4)|0;
$4275 = $4274;
$4276 = HEAP32[$4275>>2]|0;
$4277 = $a;
$4278 = $4277;
$4279 = HEAP32[$4278>>2]|0;
$4280 = (($4277) + 4)|0;
$4281 = $4280;
$4282 = HEAP32[$4281>>2]|0;
$4283 = $b;
$4284 = $4283;
$4285 = HEAP32[$4284>>2]|0;
$4286 = (($4283) + 4)|0;
$4287 = $4286;
$4288 = HEAP32[$4287>>2]|0;
$4289 = (_Ch($4273,$4276,$4279,$4282,$4285,$4288)|0);
$4290 = tempRet0;
$4291 = (_i64Add(($4269|0),($4270|0),($4289|0),($4290|0))|0);
$4292 = tempRet0;
$4293 = $t;
$4294 = (($4293) + 5)|0;
$4295 = (80 + ($4294<<3)|0);
$4296 = $4295;
$4297 = $4296;
$4298 = HEAP32[$4297>>2]|0;
$4299 = (($4296) + 4)|0;
$4300 = $4299;
$4301 = HEAP32[$4300>>2]|0;
$4302 = (_i64Add(($4291|0),($4292|0),($4298|0),($4301|0))|0);
$4303 = tempRet0;
$4304 = ((($w)) + 40|0);
$4305 = $4304;
$4306 = $4305;
$4307 = HEAP32[$4306>>2]|0;
$4308 = (($4305) + 4)|0;
$4309 = $4308;
$4310 = HEAP32[$4309>>2]|0;
$4311 = (_i64Add(($4302|0),($4303|0),($4307|0),($4310|0))|0);
$4312 = tempRet0;
$4313 = $t11;
$4314 = $4313;
HEAP32[$4314>>2] = $4311;
$4315 = (($4313) + 4)|0;
$4316 = $4315;
HEAP32[$4316>>2] = $4312;
$4317 = $d;
$4318 = $4317;
$4319 = HEAP32[$4318>>2]|0;
$4320 = (($4317) + 4)|0;
$4321 = $4320;
$4322 = HEAP32[$4321>>2]|0;
$4323 = (_Sum0_1423($4319,$4322)|0);
$4324 = tempRet0;
$4325 = $d;
$4326 = $4325;
$4327 = HEAP32[$4326>>2]|0;
$4328 = (($4325) + 4)|0;
$4329 = $4328;
$4330 = HEAP32[$4329>>2]|0;
$4331 = $e;
$4332 = $4331;
$4333 = HEAP32[$4332>>2]|0;
$4334 = (($4331) + 4)|0;
$4335 = $4334;
$4336 = HEAP32[$4335>>2]|0;
$4337 = $f;
$4338 = $4337;
$4339 = HEAP32[$4338>>2]|0;
$4340 = (($4337) + 4)|0;
$4341 = $4340;
$4342 = HEAP32[$4341>>2]|0;
$4343 = (_Maj_1424($4327,$4330,$4333,$4336,$4339,$4342)|0);
$4344 = tempRet0;
$4345 = (_i64Add(($4323|0),($4324|0),($4343|0),($4344|0))|0);
$4346 = tempRet0;
$4347 = $t22;
$4348 = $4347;
HEAP32[$4348>>2] = $4345;
$4349 = (($4347) + 4)|0;
$4350 = $4349;
HEAP32[$4350>>2] = $4346;
$4351 = $t11;
$4352 = $4351;
$4353 = HEAP32[$4352>>2]|0;
$4354 = (($4351) + 4)|0;
$4355 = $4354;
$4356 = HEAP32[$4355>>2]|0;
$4357 = $g;
$4358 = $4357;
$4359 = HEAP32[$4358>>2]|0;
$4360 = (($4357) + 4)|0;
$4361 = $4360;
$4362 = HEAP32[$4361>>2]|0;
$4363 = (_i64Add(($4359|0),($4362|0),($4353|0),($4356|0))|0);
$4364 = tempRet0;
$4365 = $g;
$4366 = $4365;
HEAP32[$4366>>2] = $4363;
$4367 = (($4365) + 4)|0;
$4368 = $4367;
HEAP32[$4368>>2] = $4364;
$4369 = $t11;
$4370 = $4369;
$4371 = HEAP32[$4370>>2]|0;
$4372 = (($4369) + 4)|0;
$4373 = $4372;
$4374 = HEAP32[$4373>>2]|0;
$4375 = $t22;
$4376 = $4375;
$4377 = HEAP32[$4376>>2]|0;
$4378 = (($4375) + 4)|0;
$4379 = $4378;
$4380 = HEAP32[$4379>>2]|0;
$4381 = (_i64Add(($4371|0),($4374|0),($4377|0),($4380|0))|0);
$4382 = tempRet0;
$4383 = $c;
$4384 = $4383;
HEAP32[$4384>>2] = $4381;
$4385 = (($4383) + 4)|0;
$4386 = $4385;
HEAP32[$4386>>2] = $4382;
$4387 = $b;
$4388 = $4387;
$4389 = HEAP32[$4388>>2]|0;
$4390 = (($4387) + 4)|0;
$4391 = $4390;
$4392 = HEAP32[$4391>>2]|0;
$4393 = $g;
$4394 = $4393;
$4395 = HEAP32[$4394>>2]|0;
$4396 = (($4393) + 4)|0;
$4397 = $4396;
$4398 = HEAP32[$4397>>2]|0;
$4399 = (_Sum1_1422($4395,$4398)|0);
$4400 = tempRet0;
$4401 = (_i64Add(($4389|0),($4392|0),($4399|0),($4400|0))|0);
$4402 = tempRet0;
$4403 = $g;
$4404 = $4403;
$4405 = HEAP32[$4404>>2]|0;
$4406 = (($4403) + 4)|0;
$4407 = $4406;
$4408 = HEAP32[$4407>>2]|0;
$4409 = $h;
$4410 = $4409;
$4411 = HEAP32[$4410>>2]|0;
$4412 = (($4409) + 4)|0;
$4413 = $4412;
$4414 = HEAP32[$4413>>2]|0;
$4415 = $a;
$4416 = $4415;
$4417 = HEAP32[$4416>>2]|0;
$4418 = (($4415) + 4)|0;
$4419 = $4418;
$4420 = HEAP32[$4419>>2]|0;
$4421 = (_Ch($4405,$4408,$4411,$4414,$4417,$4420)|0);
$4422 = tempRet0;
$4423 = (_i64Add(($4401|0),($4402|0),($4421|0),($4422|0))|0);
$4424 = tempRet0;
$4425 = $t;
$4426 = (($4425) + 6)|0;
$4427 = (80 + ($4426<<3)|0);
$4428 = $4427;
$4429 = $4428;
$4430 = HEAP32[$4429>>2]|0;
$4431 = (($4428) + 4)|0;
$4432 = $4431;
$4433 = HEAP32[$4432>>2]|0;
$4434 = (_i64Add(($4423|0),($4424|0),($4430|0),($4433|0))|0);
$4435 = tempRet0;
$4436 = ((($w)) + 48|0);
$4437 = $4436;
$4438 = $4437;
$4439 = HEAP32[$4438>>2]|0;
$4440 = (($4437) + 4)|0;
$4441 = $4440;
$4442 = HEAP32[$4441>>2]|0;
$4443 = (_i64Add(($4434|0),($4435|0),($4439|0),($4442|0))|0);
$4444 = tempRet0;
$4445 = $t11;
$4446 = $4445;
HEAP32[$4446>>2] = $4443;
$4447 = (($4445) + 4)|0;
$4448 = $4447;
HEAP32[$4448>>2] = $4444;
$4449 = $c;
$4450 = $4449;
$4451 = HEAP32[$4450>>2]|0;
$4452 = (($4449) + 4)|0;
$4453 = $4452;
$4454 = HEAP32[$4453>>2]|0;
$4455 = (_Sum0_1423($4451,$4454)|0);
$4456 = tempRet0;
$4457 = $c;
$4458 = $4457;
$4459 = HEAP32[$4458>>2]|0;
$4460 = (($4457) + 4)|0;
$4461 = $4460;
$4462 = HEAP32[$4461>>2]|0;
$4463 = $d;
$4464 = $4463;
$4465 = HEAP32[$4464>>2]|0;
$4466 = (($4463) + 4)|0;
$4467 = $4466;
$4468 = HEAP32[$4467>>2]|0;
$4469 = $e;
$4470 = $4469;
$4471 = HEAP32[$4470>>2]|0;
$4472 = (($4469) + 4)|0;
$4473 = $4472;
$4474 = HEAP32[$4473>>2]|0;
$4475 = (_Maj_1424($4459,$4462,$4465,$4468,$4471,$4474)|0);
$4476 = tempRet0;
$4477 = (_i64Add(($4455|0),($4456|0),($4475|0),($4476|0))|0);
$4478 = tempRet0;
$4479 = $t22;
$4480 = $4479;
HEAP32[$4480>>2] = $4477;
$4481 = (($4479) + 4)|0;
$4482 = $4481;
HEAP32[$4482>>2] = $4478;
$4483 = $t11;
$4484 = $4483;
$4485 = HEAP32[$4484>>2]|0;
$4486 = (($4483) + 4)|0;
$4487 = $4486;
$4488 = HEAP32[$4487>>2]|0;
$4489 = $f;
$4490 = $4489;
$4491 = HEAP32[$4490>>2]|0;
$4492 = (($4489) + 4)|0;
$4493 = $4492;
$4494 = HEAP32[$4493>>2]|0;
$4495 = (_i64Add(($4491|0),($4494|0),($4485|0),($4488|0))|0);
$4496 = tempRet0;
$4497 = $f;
$4498 = $4497;
HEAP32[$4498>>2] = $4495;
$4499 = (($4497) + 4)|0;
$4500 = $4499;
HEAP32[$4500>>2] = $4496;
$4501 = $t11;
$4502 = $4501;
$4503 = HEAP32[$4502>>2]|0;
$4504 = (($4501) + 4)|0;
$4505 = $4504;
$4506 = HEAP32[$4505>>2]|0;
$4507 = $t22;
$4508 = $4507;
$4509 = HEAP32[$4508>>2]|0;
$4510 = (($4507) + 4)|0;
$4511 = $4510;
$4512 = HEAP32[$4511>>2]|0;
$4513 = (_i64Add(($4503|0),($4506|0),($4509|0),($4512|0))|0);
$4514 = tempRet0;
$4515 = $b;
$4516 = $4515;
HEAP32[$4516>>2] = $4513;
$4517 = (($4515) + 4)|0;
$4518 = $4517;
HEAP32[$4518>>2] = $4514;
$4519 = $a;
$4520 = $4519;
$4521 = HEAP32[$4520>>2]|0;
$4522 = (($4519) + 4)|0;
$4523 = $4522;
$4524 = HEAP32[$4523>>2]|0;
$4525 = $f;
$4526 = $4525;
$4527 = HEAP32[$4526>>2]|0;
$4528 = (($4525) + 4)|0;
$4529 = $4528;
$4530 = HEAP32[$4529>>2]|0;
$4531 = (_Sum1_1422($4527,$4530)|0);
$4532 = tempRet0;
$4533 = (_i64Add(($4521|0),($4524|0),($4531|0),($4532|0))|0);
$4534 = tempRet0;
$4535 = $f;
$4536 = $4535;
$4537 = HEAP32[$4536>>2]|0;
$4538 = (($4535) + 4)|0;
$4539 = $4538;
$4540 = HEAP32[$4539>>2]|0;
$4541 = $g;
$4542 = $4541;
$4543 = HEAP32[$4542>>2]|0;
$4544 = (($4541) + 4)|0;
$4545 = $4544;
$4546 = HEAP32[$4545>>2]|0;
$4547 = $h;
$4548 = $4547;
$4549 = HEAP32[$4548>>2]|0;
$4550 = (($4547) + 4)|0;
$4551 = $4550;
$4552 = HEAP32[$4551>>2]|0;
$4553 = (_Ch($4537,$4540,$4543,$4546,$4549,$4552)|0);
$4554 = tempRet0;
$4555 = (_i64Add(($4533|0),($4534|0),($4553|0),($4554|0))|0);
$4556 = tempRet0;
$4557 = $t;
$4558 = (($4557) + 7)|0;
$4559 = (80 + ($4558<<3)|0);
$4560 = $4559;
$4561 = $4560;
$4562 = HEAP32[$4561>>2]|0;
$4563 = (($4560) + 4)|0;
$4564 = $4563;
$4565 = HEAP32[$4564>>2]|0;
$4566 = (_i64Add(($4555|0),($4556|0),($4562|0),($4565|0))|0);
$4567 = tempRet0;
$4568 = ((($w)) + 56|0);
$4569 = $4568;
$4570 = $4569;
$4571 = HEAP32[$4570>>2]|0;
$4572 = (($4569) + 4)|0;
$4573 = $4572;
$4574 = HEAP32[$4573>>2]|0;
$4575 = (_i64Add(($4566|0),($4567|0),($4571|0),($4574|0))|0);
$4576 = tempRet0;
$4577 = $t11;
$4578 = $4577;
HEAP32[$4578>>2] = $4575;
$4579 = (($4577) + 4)|0;
$4580 = $4579;
HEAP32[$4580>>2] = $4576;
$4581 = $b;
$4582 = $4581;
$4583 = HEAP32[$4582>>2]|0;
$4584 = (($4581) + 4)|0;
$4585 = $4584;
$4586 = HEAP32[$4585>>2]|0;
$4587 = (_Sum0_1423($4583,$4586)|0);
$4588 = tempRet0;
$4589 = $b;
$4590 = $4589;
$4591 = HEAP32[$4590>>2]|0;
$4592 = (($4589) + 4)|0;
$4593 = $4592;
$4594 = HEAP32[$4593>>2]|0;
$4595 = $c;
$4596 = $4595;
$4597 = HEAP32[$4596>>2]|0;
$4598 = (($4595) + 4)|0;
$4599 = $4598;
$4600 = HEAP32[$4599>>2]|0;
$4601 = $d;
$4602 = $4601;
$4603 = HEAP32[$4602>>2]|0;
$4604 = (($4601) + 4)|0;
$4605 = $4604;
$4606 = HEAP32[$4605>>2]|0;
$4607 = (_Maj_1424($4591,$4594,$4597,$4600,$4603,$4606)|0);
$4608 = tempRet0;
$4609 = (_i64Add(($4587|0),($4588|0),($4607|0),($4608|0))|0);
$4610 = tempRet0;
$4611 = $t22;
$4612 = $4611;
HEAP32[$4612>>2] = $4609;
$4613 = (($4611) + 4)|0;
$4614 = $4613;
HEAP32[$4614>>2] = $4610;
$4615 = $t11;
$4616 = $4615;
$4617 = HEAP32[$4616>>2]|0;
$4618 = (($4615) + 4)|0;
$4619 = $4618;
$4620 = HEAP32[$4619>>2]|0;
$4621 = $e;
$4622 = $4621;
$4623 = HEAP32[$4622>>2]|0;
$4624 = (($4621) + 4)|0;
$4625 = $4624;
$4626 = HEAP32[$4625>>2]|0;
$4627 = (_i64Add(($4623|0),($4626|0),($4617|0),($4620|0))|0);
$4628 = tempRet0;
$4629 = $e;
$4630 = $4629;
HEAP32[$4630>>2] = $4627;
$4631 = (($4629) + 4)|0;
$4632 = $4631;
HEAP32[$4632>>2] = $4628;
$4633 = $t11;
$4634 = $4633;
$4635 = HEAP32[$4634>>2]|0;
$4636 = (($4633) + 4)|0;
$4637 = $4636;
$4638 = HEAP32[$4637>>2]|0;
$4639 = $t22;
$4640 = $4639;
$4641 = HEAP32[$4640>>2]|0;
$4642 = (($4639) + 4)|0;
$4643 = $4642;
$4644 = HEAP32[$4643>>2]|0;
$4645 = (_i64Add(($4635|0),($4638|0),($4641|0),($4644|0))|0);
$4646 = tempRet0;
$4647 = $a;
$4648 = $4647;
HEAP32[$4648>>2] = $4645;
$4649 = (($4647) + 4)|0;
$4650 = $4649;
HEAP32[$4650>>2] = $4646;
$4651 = $h;
$4652 = $4651;
$4653 = HEAP32[$4652>>2]|0;
$4654 = (($4651) + 4)|0;
$4655 = $4654;
$4656 = HEAP32[$4655>>2]|0;
$4657 = $e;
$4658 = $4657;
$4659 = HEAP32[$4658>>2]|0;
$4660 = (($4657) + 4)|0;
$4661 = $4660;
$4662 = HEAP32[$4661>>2]|0;
$4663 = (_Sum1_1422($4659,$4662)|0);
$4664 = tempRet0;
$4665 = (_i64Add(($4653|0),($4656|0),($4663|0),($4664|0))|0);
$4666 = tempRet0;
$4667 = $e;
$4668 = $4667;
$4669 = HEAP32[$4668>>2]|0;
$4670 = (($4667) + 4)|0;
$4671 = $4670;
$4672 = HEAP32[$4671>>2]|0;
$4673 = $f;
$4674 = $4673;
$4675 = HEAP32[$4674>>2]|0;
$4676 = (($4673) + 4)|0;
$4677 = $4676;
$4678 = HEAP32[$4677>>2]|0;
$4679 = $g;
$4680 = $4679;
$4681 = HEAP32[$4680>>2]|0;
$4682 = (($4679) + 4)|0;
$4683 = $4682;
$4684 = HEAP32[$4683>>2]|0;
$4685 = (_Ch($4669,$4672,$4675,$4678,$4681,$4684)|0);
$4686 = tempRet0;
$4687 = (_i64Add(($4665|0),($4666|0),($4685|0),($4686|0))|0);
$4688 = tempRet0;
$4689 = $t;
$4690 = (($4689) + 8)|0;
$4691 = (80 + ($4690<<3)|0);
$4692 = $4691;
$4693 = $4692;
$4694 = HEAP32[$4693>>2]|0;
$4695 = (($4692) + 4)|0;
$4696 = $4695;
$4697 = HEAP32[$4696>>2]|0;
$4698 = (_i64Add(($4687|0),($4688|0),($4694|0),($4697|0))|0);
$4699 = tempRet0;
$4700 = ((($w)) + 64|0);
$4701 = $4700;
$4702 = $4701;
$4703 = HEAP32[$4702>>2]|0;
$4704 = (($4701) + 4)|0;
$4705 = $4704;
$4706 = HEAP32[$4705>>2]|0;
$4707 = (_i64Add(($4698|0),($4699|0),($4703|0),($4706|0))|0);
$4708 = tempRet0;
$4709 = $t11;
$4710 = $4709;
HEAP32[$4710>>2] = $4707;
$4711 = (($4709) + 4)|0;
$4712 = $4711;
HEAP32[$4712>>2] = $4708;
$4713 = $a;
$4714 = $4713;
$4715 = HEAP32[$4714>>2]|0;
$4716 = (($4713) + 4)|0;
$4717 = $4716;
$4718 = HEAP32[$4717>>2]|0;
$4719 = (_Sum0_1423($4715,$4718)|0);
$4720 = tempRet0;
$4721 = $a;
$4722 = $4721;
$4723 = HEAP32[$4722>>2]|0;
$4724 = (($4721) + 4)|0;
$4725 = $4724;
$4726 = HEAP32[$4725>>2]|0;
$4727 = $b;
$4728 = $4727;
$4729 = HEAP32[$4728>>2]|0;
$4730 = (($4727) + 4)|0;
$4731 = $4730;
$4732 = HEAP32[$4731>>2]|0;
$4733 = $c;
$4734 = $4733;
$4735 = HEAP32[$4734>>2]|0;
$4736 = (($4733) + 4)|0;
$4737 = $4736;
$4738 = HEAP32[$4737>>2]|0;
$4739 = (_Maj_1424($4723,$4726,$4729,$4732,$4735,$4738)|0);
$4740 = tempRet0;
$4741 = (_i64Add(($4719|0),($4720|0),($4739|0),($4740|0))|0);
$4742 = tempRet0;
$4743 = $t22;
$4744 = $4743;
HEAP32[$4744>>2] = $4741;
$4745 = (($4743) + 4)|0;
$4746 = $4745;
HEAP32[$4746>>2] = $4742;
$4747 = $t11;
$4748 = $4747;
$4749 = HEAP32[$4748>>2]|0;
$4750 = (($4747) + 4)|0;
$4751 = $4750;
$4752 = HEAP32[$4751>>2]|0;
$4753 = $d;
$4754 = $4753;
$4755 = HEAP32[$4754>>2]|0;
$4756 = (($4753) + 4)|0;
$4757 = $4756;
$4758 = HEAP32[$4757>>2]|0;
$4759 = (_i64Add(($4755|0),($4758|0),($4749|0),($4752|0))|0);
$4760 = tempRet0;
$4761 = $d;
$4762 = $4761;
HEAP32[$4762>>2] = $4759;
$4763 = (($4761) + 4)|0;
$4764 = $4763;
HEAP32[$4764>>2] = $4760;
$4765 = $t11;
$4766 = $4765;
$4767 = HEAP32[$4766>>2]|0;
$4768 = (($4765) + 4)|0;
$4769 = $4768;
$4770 = HEAP32[$4769>>2]|0;
$4771 = $t22;
$4772 = $4771;
$4773 = HEAP32[$4772>>2]|0;
$4774 = (($4771) + 4)|0;
$4775 = $4774;
$4776 = HEAP32[$4775>>2]|0;
$4777 = (_i64Add(($4767|0),($4770|0),($4773|0),($4776|0))|0);
$4778 = tempRet0;
$4779 = $h;
$4780 = $4779;
HEAP32[$4780>>2] = $4777;
$4781 = (($4779) + 4)|0;
$4782 = $4781;
HEAP32[$4782>>2] = $4778;
$4783 = $g;
$4784 = $4783;
$4785 = HEAP32[$4784>>2]|0;
$4786 = (($4783) + 4)|0;
$4787 = $4786;
$4788 = HEAP32[$4787>>2]|0;
$4789 = $d;
$4790 = $4789;
$4791 = HEAP32[$4790>>2]|0;
$4792 = (($4789) + 4)|0;
$4793 = $4792;
$4794 = HEAP32[$4793>>2]|0;
$4795 = (_Sum1_1422($4791,$4794)|0);
$4796 = tempRet0;
$4797 = (_i64Add(($4785|0),($4788|0),($4795|0),($4796|0))|0);
$4798 = tempRet0;
$4799 = $d;
$4800 = $4799;
$4801 = HEAP32[$4800>>2]|0;
$4802 = (($4799) + 4)|0;
$4803 = $4802;
$4804 = HEAP32[$4803>>2]|0;
$4805 = $e;
$4806 = $4805;
$4807 = HEAP32[$4806>>2]|0;
$4808 = (($4805) + 4)|0;
$4809 = $4808;
$4810 = HEAP32[$4809>>2]|0;
$4811 = $f;
$4812 = $4811;
$4813 = HEAP32[$4812>>2]|0;
$4814 = (($4811) + 4)|0;
$4815 = $4814;
$4816 = HEAP32[$4815>>2]|0;
$4817 = (_Ch($4801,$4804,$4807,$4810,$4813,$4816)|0);
$4818 = tempRet0;
$4819 = (_i64Add(($4797|0),($4798|0),($4817|0),($4818|0))|0);
$4820 = tempRet0;
$4821 = $t;
$4822 = (($4821) + 9)|0;
$4823 = (80 + ($4822<<3)|0);
$4824 = $4823;
$4825 = $4824;
$4826 = HEAP32[$4825>>2]|0;
$4827 = (($4824) + 4)|0;
$4828 = $4827;
$4829 = HEAP32[$4828>>2]|0;
$4830 = (_i64Add(($4819|0),($4820|0),($4826|0),($4829|0))|0);
$4831 = tempRet0;
$4832 = ((($w)) + 72|0);
$4833 = $4832;
$4834 = $4833;
$4835 = HEAP32[$4834>>2]|0;
$4836 = (($4833) + 4)|0;
$4837 = $4836;
$4838 = HEAP32[$4837>>2]|0;
$4839 = (_i64Add(($4830|0),($4831|0),($4835|0),($4838|0))|0);
$4840 = tempRet0;
$4841 = $t11;
$4842 = $4841;
HEAP32[$4842>>2] = $4839;
$4843 = (($4841) + 4)|0;
$4844 = $4843;
HEAP32[$4844>>2] = $4840;
$4845 = $h;
$4846 = $4845;
$4847 = HEAP32[$4846>>2]|0;
$4848 = (($4845) + 4)|0;
$4849 = $4848;
$4850 = HEAP32[$4849>>2]|0;
$4851 = (_Sum0_1423($4847,$4850)|0);
$4852 = tempRet0;
$4853 = $h;
$4854 = $4853;
$4855 = HEAP32[$4854>>2]|0;
$4856 = (($4853) + 4)|0;
$4857 = $4856;
$4858 = HEAP32[$4857>>2]|0;
$4859 = $a;
$4860 = $4859;
$4861 = HEAP32[$4860>>2]|0;
$4862 = (($4859) + 4)|0;
$4863 = $4862;
$4864 = HEAP32[$4863>>2]|0;
$4865 = $b;
$4866 = $4865;
$4867 = HEAP32[$4866>>2]|0;
$4868 = (($4865) + 4)|0;
$4869 = $4868;
$4870 = HEAP32[$4869>>2]|0;
$4871 = (_Maj_1424($4855,$4858,$4861,$4864,$4867,$4870)|0);
$4872 = tempRet0;
$4873 = (_i64Add(($4851|0),($4852|0),($4871|0),($4872|0))|0);
$4874 = tempRet0;
$4875 = $t22;
$4876 = $4875;
HEAP32[$4876>>2] = $4873;
$4877 = (($4875) + 4)|0;
$4878 = $4877;
HEAP32[$4878>>2] = $4874;
$4879 = $t11;
$4880 = $4879;
$4881 = HEAP32[$4880>>2]|0;
$4882 = (($4879) + 4)|0;
$4883 = $4882;
$4884 = HEAP32[$4883>>2]|0;
$4885 = $c;
$4886 = $4885;
$4887 = HEAP32[$4886>>2]|0;
$4888 = (($4885) + 4)|0;
$4889 = $4888;
$4890 = HEAP32[$4889>>2]|0;
$4891 = (_i64Add(($4887|0),($4890|0),($4881|0),($4884|0))|0);
$4892 = tempRet0;
$4893 = $c;
$4894 = $4893;
HEAP32[$4894>>2] = $4891;
$4895 = (($4893) + 4)|0;
$4896 = $4895;
HEAP32[$4896>>2] = $4892;
$4897 = $t11;
$4898 = $4897;
$4899 = HEAP32[$4898>>2]|0;
$4900 = (($4897) + 4)|0;
$4901 = $4900;
$4902 = HEAP32[$4901>>2]|0;
$4903 = $t22;
$4904 = $4903;
$4905 = HEAP32[$4904>>2]|0;
$4906 = (($4903) + 4)|0;
$4907 = $4906;
$4908 = HEAP32[$4907>>2]|0;
$4909 = (_i64Add(($4899|0),($4902|0),($4905|0),($4908|0))|0);
$4910 = tempRet0;
$4911 = $g;
$4912 = $4911;
HEAP32[$4912>>2] = $4909;
$4913 = (($4911) + 4)|0;
$4914 = $4913;
HEAP32[$4914>>2] = $4910;
$4915 = $f;
$4916 = $4915;
$4917 = HEAP32[$4916>>2]|0;
$4918 = (($4915) + 4)|0;
$4919 = $4918;
$4920 = HEAP32[$4919>>2]|0;
$4921 = $c;
$4922 = $4921;
$4923 = HEAP32[$4922>>2]|0;
$4924 = (($4921) + 4)|0;
$4925 = $4924;
$4926 = HEAP32[$4925>>2]|0;
$4927 = (_Sum1_1422($4923,$4926)|0);
$4928 = tempRet0;
$4929 = (_i64Add(($4917|0),($4920|0),($4927|0),($4928|0))|0);
$4930 = tempRet0;
$4931 = $c;
$4932 = $4931;
$4933 = HEAP32[$4932>>2]|0;
$4934 = (($4931) + 4)|0;
$4935 = $4934;
$4936 = HEAP32[$4935>>2]|0;
$4937 = $d;
$4938 = $4937;
$4939 = HEAP32[$4938>>2]|0;
$4940 = (($4937) + 4)|0;
$4941 = $4940;
$4942 = HEAP32[$4941>>2]|0;
$4943 = $e;
$4944 = $4943;
$4945 = HEAP32[$4944>>2]|0;
$4946 = (($4943) + 4)|0;
$4947 = $4946;
$4948 = HEAP32[$4947>>2]|0;
$4949 = (_Ch($4933,$4936,$4939,$4942,$4945,$4948)|0);
$4950 = tempRet0;
$4951 = (_i64Add(($4929|0),($4930|0),($4949|0),($4950|0))|0);
$4952 = tempRet0;
$4953 = $t;
$4954 = (($4953) + 10)|0;
$4955 = (80 + ($4954<<3)|0);
$4956 = $4955;
$4957 = $4956;
$4958 = HEAP32[$4957>>2]|0;
$4959 = (($4956) + 4)|0;
$4960 = $4959;
$4961 = HEAP32[$4960>>2]|0;
$4962 = (_i64Add(($4951|0),($4952|0),($4958|0),($4961|0))|0);
$4963 = tempRet0;
$4964 = ((($w)) + 80|0);
$4965 = $4964;
$4966 = $4965;
$4967 = HEAP32[$4966>>2]|0;
$4968 = (($4965) + 4)|0;
$4969 = $4968;
$4970 = HEAP32[$4969>>2]|0;
$4971 = (_i64Add(($4962|0),($4963|0),($4967|0),($4970|0))|0);
$4972 = tempRet0;
$4973 = $t11;
$4974 = $4973;
HEAP32[$4974>>2] = $4971;
$4975 = (($4973) + 4)|0;
$4976 = $4975;
HEAP32[$4976>>2] = $4972;
$4977 = $g;
$4978 = $4977;
$4979 = HEAP32[$4978>>2]|0;
$4980 = (($4977) + 4)|0;
$4981 = $4980;
$4982 = HEAP32[$4981>>2]|0;
$4983 = (_Sum0_1423($4979,$4982)|0);
$4984 = tempRet0;
$4985 = $g;
$4986 = $4985;
$4987 = HEAP32[$4986>>2]|0;
$4988 = (($4985) + 4)|0;
$4989 = $4988;
$4990 = HEAP32[$4989>>2]|0;
$4991 = $h;
$4992 = $4991;
$4993 = HEAP32[$4992>>2]|0;
$4994 = (($4991) + 4)|0;
$4995 = $4994;
$4996 = HEAP32[$4995>>2]|0;
$4997 = $a;
$4998 = $4997;
$4999 = HEAP32[$4998>>2]|0;
$5000 = (($4997) + 4)|0;
$5001 = $5000;
$5002 = HEAP32[$5001>>2]|0;
$5003 = (_Maj_1424($4987,$4990,$4993,$4996,$4999,$5002)|0);
$5004 = tempRet0;
$5005 = (_i64Add(($4983|0),($4984|0),($5003|0),($5004|0))|0);
$5006 = tempRet0;
$5007 = $t22;
$5008 = $5007;
HEAP32[$5008>>2] = $5005;
$5009 = (($5007) + 4)|0;
$5010 = $5009;
HEAP32[$5010>>2] = $5006;
$5011 = $t11;
$5012 = $5011;
$5013 = HEAP32[$5012>>2]|0;
$5014 = (($5011) + 4)|0;
$5015 = $5014;
$5016 = HEAP32[$5015>>2]|0;
$5017 = $b;
$5018 = $5017;
$5019 = HEAP32[$5018>>2]|0;
$5020 = (($5017) + 4)|0;
$5021 = $5020;
$5022 = HEAP32[$5021>>2]|0;
$5023 = (_i64Add(($5019|0),($5022|0),($5013|0),($5016|0))|0);
$5024 = tempRet0;
$5025 = $b;
$5026 = $5025;
HEAP32[$5026>>2] = $5023;
$5027 = (($5025) + 4)|0;
$5028 = $5027;
HEAP32[$5028>>2] = $5024;
$5029 = $t11;
$5030 = $5029;
$5031 = HEAP32[$5030>>2]|0;
$5032 = (($5029) + 4)|0;
$5033 = $5032;
$5034 = HEAP32[$5033>>2]|0;
$5035 = $t22;
$5036 = $5035;
$5037 = HEAP32[$5036>>2]|0;
$5038 = (($5035) + 4)|0;
$5039 = $5038;
$5040 = HEAP32[$5039>>2]|0;
$5041 = (_i64Add(($5031|0),($5034|0),($5037|0),($5040|0))|0);
$5042 = tempRet0;
$5043 = $f;
$5044 = $5043;
HEAP32[$5044>>2] = $5041;
$5045 = (($5043) + 4)|0;
$5046 = $5045;
HEAP32[$5046>>2] = $5042;
$5047 = $e;
$5048 = $5047;
$5049 = HEAP32[$5048>>2]|0;
$5050 = (($5047) + 4)|0;
$5051 = $5050;
$5052 = HEAP32[$5051>>2]|0;
$5053 = $b;
$5054 = $5053;
$5055 = HEAP32[$5054>>2]|0;
$5056 = (($5053) + 4)|0;
$5057 = $5056;
$5058 = HEAP32[$5057>>2]|0;
$5059 = (_Sum1_1422($5055,$5058)|0);
$5060 = tempRet0;
$5061 = (_i64Add(($5049|0),($5052|0),($5059|0),($5060|0))|0);
$5062 = tempRet0;
$5063 = $b;
$5064 = $5063;
$5065 = HEAP32[$5064>>2]|0;
$5066 = (($5063) + 4)|0;
$5067 = $5066;
$5068 = HEAP32[$5067>>2]|0;
$5069 = $c;
$5070 = $5069;
$5071 = HEAP32[$5070>>2]|0;
$5072 = (($5069) + 4)|0;
$5073 = $5072;
$5074 = HEAP32[$5073>>2]|0;
$5075 = $d;
$5076 = $5075;
$5077 = HEAP32[$5076>>2]|0;
$5078 = (($5075) + 4)|0;
$5079 = $5078;
$5080 = HEAP32[$5079>>2]|0;
$5081 = (_Ch($5065,$5068,$5071,$5074,$5077,$5080)|0);
$5082 = tempRet0;
$5083 = (_i64Add(($5061|0),($5062|0),($5081|0),($5082|0))|0);
$5084 = tempRet0;
$5085 = $t;
$5086 = (($5085) + 11)|0;
$5087 = (80 + ($5086<<3)|0);
$5088 = $5087;
$5089 = $5088;
$5090 = HEAP32[$5089>>2]|0;
$5091 = (($5088) + 4)|0;
$5092 = $5091;
$5093 = HEAP32[$5092>>2]|0;
$5094 = (_i64Add(($5083|0),($5084|0),($5090|0),($5093|0))|0);
$5095 = tempRet0;
$5096 = ((($w)) + 88|0);
$5097 = $5096;
$5098 = $5097;
$5099 = HEAP32[$5098>>2]|0;
$5100 = (($5097) + 4)|0;
$5101 = $5100;
$5102 = HEAP32[$5101>>2]|0;
$5103 = (_i64Add(($5094|0),($5095|0),($5099|0),($5102|0))|0);
$5104 = tempRet0;
$5105 = $t11;
$5106 = $5105;
HEAP32[$5106>>2] = $5103;
$5107 = (($5105) + 4)|0;
$5108 = $5107;
HEAP32[$5108>>2] = $5104;
$5109 = $f;
$5110 = $5109;
$5111 = HEAP32[$5110>>2]|0;
$5112 = (($5109) + 4)|0;
$5113 = $5112;
$5114 = HEAP32[$5113>>2]|0;
$5115 = (_Sum0_1423($5111,$5114)|0);
$5116 = tempRet0;
$5117 = $f;
$5118 = $5117;
$5119 = HEAP32[$5118>>2]|0;
$5120 = (($5117) + 4)|0;
$5121 = $5120;
$5122 = HEAP32[$5121>>2]|0;
$5123 = $g;
$5124 = $5123;
$5125 = HEAP32[$5124>>2]|0;
$5126 = (($5123) + 4)|0;
$5127 = $5126;
$5128 = HEAP32[$5127>>2]|0;
$5129 = $h;
$5130 = $5129;
$5131 = HEAP32[$5130>>2]|0;
$5132 = (($5129) + 4)|0;
$5133 = $5132;
$5134 = HEAP32[$5133>>2]|0;
$5135 = (_Maj_1424($5119,$5122,$5125,$5128,$5131,$5134)|0);
$5136 = tempRet0;
$5137 = (_i64Add(($5115|0),($5116|0),($5135|0),($5136|0))|0);
$5138 = tempRet0;
$5139 = $t22;
$5140 = $5139;
HEAP32[$5140>>2] = $5137;
$5141 = (($5139) + 4)|0;
$5142 = $5141;
HEAP32[$5142>>2] = $5138;
$5143 = $t11;
$5144 = $5143;
$5145 = HEAP32[$5144>>2]|0;
$5146 = (($5143) + 4)|0;
$5147 = $5146;
$5148 = HEAP32[$5147>>2]|0;
$5149 = $a;
$5150 = $5149;
$5151 = HEAP32[$5150>>2]|0;
$5152 = (($5149) + 4)|0;
$5153 = $5152;
$5154 = HEAP32[$5153>>2]|0;
$5155 = (_i64Add(($5151|0),($5154|0),($5145|0),($5148|0))|0);
$5156 = tempRet0;
$5157 = $a;
$5158 = $5157;
HEAP32[$5158>>2] = $5155;
$5159 = (($5157) + 4)|0;
$5160 = $5159;
HEAP32[$5160>>2] = $5156;
$5161 = $t11;
$5162 = $5161;
$5163 = HEAP32[$5162>>2]|0;
$5164 = (($5161) + 4)|0;
$5165 = $5164;
$5166 = HEAP32[$5165>>2]|0;
$5167 = $t22;
$5168 = $5167;
$5169 = HEAP32[$5168>>2]|0;
$5170 = (($5167) + 4)|0;
$5171 = $5170;
$5172 = HEAP32[$5171>>2]|0;
$5173 = (_i64Add(($5163|0),($5166|0),($5169|0),($5172|0))|0);
$5174 = tempRet0;
$5175 = $e;
$5176 = $5175;
HEAP32[$5176>>2] = $5173;
$5177 = (($5175) + 4)|0;
$5178 = $5177;
HEAP32[$5178>>2] = $5174;
$5179 = $d;
$5180 = $5179;
$5181 = HEAP32[$5180>>2]|0;
$5182 = (($5179) + 4)|0;
$5183 = $5182;
$5184 = HEAP32[$5183>>2]|0;
$5185 = $a;
$5186 = $5185;
$5187 = HEAP32[$5186>>2]|0;
$5188 = (($5185) + 4)|0;
$5189 = $5188;
$5190 = HEAP32[$5189>>2]|0;
$5191 = (_Sum1_1422($5187,$5190)|0);
$5192 = tempRet0;
$5193 = (_i64Add(($5181|0),($5184|0),($5191|0),($5192|0))|0);
$5194 = tempRet0;
$5195 = $a;
$5196 = $5195;
$5197 = HEAP32[$5196>>2]|0;
$5198 = (($5195) + 4)|0;
$5199 = $5198;
$5200 = HEAP32[$5199>>2]|0;
$5201 = $b;
$5202 = $5201;
$5203 = HEAP32[$5202>>2]|0;
$5204 = (($5201) + 4)|0;
$5205 = $5204;
$5206 = HEAP32[$5205>>2]|0;
$5207 = $c;
$5208 = $5207;
$5209 = HEAP32[$5208>>2]|0;
$5210 = (($5207) + 4)|0;
$5211 = $5210;
$5212 = HEAP32[$5211>>2]|0;
$5213 = (_Ch($5197,$5200,$5203,$5206,$5209,$5212)|0);
$5214 = tempRet0;
$5215 = (_i64Add(($5193|0),($5194|0),($5213|0),($5214|0))|0);
$5216 = tempRet0;
$5217 = $t;
$5218 = (($5217) + 12)|0;
$5219 = (80 + ($5218<<3)|0);
$5220 = $5219;
$5221 = $5220;
$5222 = HEAP32[$5221>>2]|0;
$5223 = (($5220) + 4)|0;
$5224 = $5223;
$5225 = HEAP32[$5224>>2]|0;
$5226 = (_i64Add(($5215|0),($5216|0),($5222|0),($5225|0))|0);
$5227 = tempRet0;
$5228 = ((($w)) + 96|0);
$5229 = $5228;
$5230 = $5229;
$5231 = HEAP32[$5230>>2]|0;
$5232 = (($5229) + 4)|0;
$5233 = $5232;
$5234 = HEAP32[$5233>>2]|0;
$5235 = (_i64Add(($5226|0),($5227|0),($5231|0),($5234|0))|0);
$5236 = tempRet0;
$5237 = $t11;
$5238 = $5237;
HEAP32[$5238>>2] = $5235;
$5239 = (($5237) + 4)|0;
$5240 = $5239;
HEAP32[$5240>>2] = $5236;
$5241 = $e;
$5242 = $5241;
$5243 = HEAP32[$5242>>2]|0;
$5244 = (($5241) + 4)|0;
$5245 = $5244;
$5246 = HEAP32[$5245>>2]|0;
$5247 = (_Sum0_1423($5243,$5246)|0);
$5248 = tempRet0;
$5249 = $e;
$5250 = $5249;
$5251 = HEAP32[$5250>>2]|0;
$5252 = (($5249) + 4)|0;
$5253 = $5252;
$5254 = HEAP32[$5253>>2]|0;
$5255 = $f;
$5256 = $5255;
$5257 = HEAP32[$5256>>2]|0;
$5258 = (($5255) + 4)|0;
$5259 = $5258;
$5260 = HEAP32[$5259>>2]|0;
$5261 = $g;
$5262 = $5261;
$5263 = HEAP32[$5262>>2]|0;
$5264 = (($5261) + 4)|0;
$5265 = $5264;
$5266 = HEAP32[$5265>>2]|0;
$5267 = (_Maj_1424($5251,$5254,$5257,$5260,$5263,$5266)|0);
$5268 = tempRet0;
$5269 = (_i64Add(($5247|0),($5248|0),($5267|0),($5268|0))|0);
$5270 = tempRet0;
$5271 = $t22;
$5272 = $5271;
HEAP32[$5272>>2] = $5269;
$5273 = (($5271) + 4)|0;
$5274 = $5273;
HEAP32[$5274>>2] = $5270;
$5275 = $t11;
$5276 = $5275;
$5277 = HEAP32[$5276>>2]|0;
$5278 = (($5275) + 4)|0;
$5279 = $5278;
$5280 = HEAP32[$5279>>2]|0;
$5281 = $h;
$5282 = $5281;
$5283 = HEAP32[$5282>>2]|0;
$5284 = (($5281) + 4)|0;
$5285 = $5284;
$5286 = HEAP32[$5285>>2]|0;
$5287 = (_i64Add(($5283|0),($5286|0),($5277|0),($5280|0))|0);
$5288 = tempRet0;
$5289 = $h;
$5290 = $5289;
HEAP32[$5290>>2] = $5287;
$5291 = (($5289) + 4)|0;
$5292 = $5291;
HEAP32[$5292>>2] = $5288;
$5293 = $t11;
$5294 = $5293;
$5295 = HEAP32[$5294>>2]|0;
$5296 = (($5293) + 4)|0;
$5297 = $5296;
$5298 = HEAP32[$5297>>2]|0;
$5299 = $t22;
$5300 = $5299;
$5301 = HEAP32[$5300>>2]|0;
$5302 = (($5299) + 4)|0;
$5303 = $5302;
$5304 = HEAP32[$5303>>2]|0;
$5305 = (_i64Add(($5295|0),($5298|0),($5301|0),($5304|0))|0);
$5306 = tempRet0;
$5307 = $d;
$5308 = $5307;
HEAP32[$5308>>2] = $5305;
$5309 = (($5307) + 4)|0;
$5310 = $5309;
HEAP32[$5310>>2] = $5306;
$5311 = $c;
$5312 = $5311;
$5313 = HEAP32[$5312>>2]|0;
$5314 = (($5311) + 4)|0;
$5315 = $5314;
$5316 = HEAP32[$5315>>2]|0;
$5317 = $h;
$5318 = $5317;
$5319 = HEAP32[$5318>>2]|0;
$5320 = (($5317) + 4)|0;
$5321 = $5320;
$5322 = HEAP32[$5321>>2]|0;
$5323 = (_Sum1_1422($5319,$5322)|0);
$5324 = tempRet0;
$5325 = (_i64Add(($5313|0),($5316|0),($5323|0),($5324|0))|0);
$5326 = tempRet0;
$5327 = $h;
$5328 = $5327;
$5329 = HEAP32[$5328>>2]|0;
$5330 = (($5327) + 4)|0;
$5331 = $5330;
$5332 = HEAP32[$5331>>2]|0;
$5333 = $a;
$5334 = $5333;
$5335 = HEAP32[$5334>>2]|0;
$5336 = (($5333) + 4)|0;
$5337 = $5336;
$5338 = HEAP32[$5337>>2]|0;
$5339 = $b;
$5340 = $5339;
$5341 = HEAP32[$5340>>2]|0;
$5342 = (($5339) + 4)|0;
$5343 = $5342;
$5344 = HEAP32[$5343>>2]|0;
$5345 = (_Ch($5329,$5332,$5335,$5338,$5341,$5344)|0);
$5346 = tempRet0;
$5347 = (_i64Add(($5325|0),($5326|0),($5345|0),($5346|0))|0);
$5348 = tempRet0;
$5349 = $t;
$5350 = (($5349) + 13)|0;
$5351 = (80 + ($5350<<3)|0);
$5352 = $5351;
$5353 = $5352;
$5354 = HEAP32[$5353>>2]|0;
$5355 = (($5352) + 4)|0;
$5356 = $5355;
$5357 = HEAP32[$5356>>2]|0;
$5358 = (_i64Add(($5347|0),($5348|0),($5354|0),($5357|0))|0);
$5359 = tempRet0;
$5360 = ((($w)) + 104|0);
$5361 = $5360;
$5362 = $5361;
$5363 = HEAP32[$5362>>2]|0;
$5364 = (($5361) + 4)|0;
$5365 = $5364;
$5366 = HEAP32[$5365>>2]|0;
$5367 = (_i64Add(($5358|0),($5359|0),($5363|0),($5366|0))|0);
$5368 = tempRet0;
$5369 = $t11;
$5370 = $5369;
HEAP32[$5370>>2] = $5367;
$5371 = (($5369) + 4)|0;
$5372 = $5371;
HEAP32[$5372>>2] = $5368;
$5373 = $d;
$5374 = $5373;
$5375 = HEAP32[$5374>>2]|0;
$5376 = (($5373) + 4)|0;
$5377 = $5376;
$5378 = HEAP32[$5377>>2]|0;
$5379 = (_Sum0_1423($5375,$5378)|0);
$5380 = tempRet0;
$5381 = $d;
$5382 = $5381;
$5383 = HEAP32[$5382>>2]|0;
$5384 = (($5381) + 4)|0;
$5385 = $5384;
$5386 = HEAP32[$5385>>2]|0;
$5387 = $e;
$5388 = $5387;
$5389 = HEAP32[$5388>>2]|0;
$5390 = (($5387) + 4)|0;
$5391 = $5390;
$5392 = HEAP32[$5391>>2]|0;
$5393 = $f;
$5394 = $5393;
$5395 = HEAP32[$5394>>2]|0;
$5396 = (($5393) + 4)|0;
$5397 = $5396;
$5398 = HEAP32[$5397>>2]|0;
$5399 = (_Maj_1424($5383,$5386,$5389,$5392,$5395,$5398)|0);
$5400 = tempRet0;
$5401 = (_i64Add(($5379|0),($5380|0),($5399|0),($5400|0))|0);
$5402 = tempRet0;
$5403 = $t22;
$5404 = $5403;
HEAP32[$5404>>2] = $5401;
$5405 = (($5403) + 4)|0;
$5406 = $5405;
HEAP32[$5406>>2] = $5402;
$5407 = $t11;
$5408 = $5407;
$5409 = HEAP32[$5408>>2]|0;
$5410 = (($5407) + 4)|0;
$5411 = $5410;
$5412 = HEAP32[$5411>>2]|0;
$5413 = $g;
$5414 = $5413;
$5415 = HEAP32[$5414>>2]|0;
$5416 = (($5413) + 4)|0;
$5417 = $5416;
$5418 = HEAP32[$5417>>2]|0;
$5419 = (_i64Add(($5415|0),($5418|0),($5409|0),($5412|0))|0);
$5420 = tempRet0;
$5421 = $g;
$5422 = $5421;
HEAP32[$5422>>2] = $5419;
$5423 = (($5421) + 4)|0;
$5424 = $5423;
HEAP32[$5424>>2] = $5420;
$5425 = $t11;
$5426 = $5425;
$5427 = HEAP32[$5426>>2]|0;
$5428 = (($5425) + 4)|0;
$5429 = $5428;
$5430 = HEAP32[$5429>>2]|0;
$5431 = $t22;
$5432 = $5431;
$5433 = HEAP32[$5432>>2]|0;
$5434 = (($5431) + 4)|0;
$5435 = $5434;
$5436 = HEAP32[$5435>>2]|0;
$5437 = (_i64Add(($5427|0),($5430|0),($5433|0),($5436|0))|0);
$5438 = tempRet0;
$5439 = $c;
$5440 = $5439;
HEAP32[$5440>>2] = $5437;
$5441 = (($5439) + 4)|0;
$5442 = $5441;
HEAP32[$5442>>2] = $5438;
$5443 = $b;
$5444 = $5443;
$5445 = HEAP32[$5444>>2]|0;
$5446 = (($5443) + 4)|0;
$5447 = $5446;
$5448 = HEAP32[$5447>>2]|0;
$5449 = $g;
$5450 = $5449;
$5451 = HEAP32[$5450>>2]|0;
$5452 = (($5449) + 4)|0;
$5453 = $5452;
$5454 = HEAP32[$5453>>2]|0;
$5455 = (_Sum1_1422($5451,$5454)|0);
$5456 = tempRet0;
$5457 = (_i64Add(($5445|0),($5448|0),($5455|0),($5456|0))|0);
$5458 = tempRet0;
$5459 = $g;
$5460 = $5459;
$5461 = HEAP32[$5460>>2]|0;
$5462 = (($5459) + 4)|0;
$5463 = $5462;
$5464 = HEAP32[$5463>>2]|0;
$5465 = $h;
$5466 = $5465;
$5467 = HEAP32[$5466>>2]|0;
$5468 = (($5465) + 4)|0;
$5469 = $5468;
$5470 = HEAP32[$5469>>2]|0;
$5471 = $a;
$5472 = $5471;
$5473 = HEAP32[$5472>>2]|0;
$5474 = (($5471) + 4)|0;
$5475 = $5474;
$5476 = HEAP32[$5475>>2]|0;
$5477 = (_Ch($5461,$5464,$5467,$5470,$5473,$5476)|0);
$5478 = tempRet0;
$5479 = (_i64Add(($5457|0),($5458|0),($5477|0),($5478|0))|0);
$5480 = tempRet0;
$5481 = $t;
$5482 = (($5481) + 14)|0;
$5483 = (80 + ($5482<<3)|0);
$5484 = $5483;
$5485 = $5484;
$5486 = HEAP32[$5485>>2]|0;
$5487 = (($5484) + 4)|0;
$5488 = $5487;
$5489 = HEAP32[$5488>>2]|0;
$5490 = (_i64Add(($5479|0),($5480|0),($5486|0),($5489|0))|0);
$5491 = tempRet0;
$5492 = ((($w)) + 112|0);
$5493 = $5492;
$5494 = $5493;
$5495 = HEAP32[$5494>>2]|0;
$5496 = (($5493) + 4)|0;
$5497 = $5496;
$5498 = HEAP32[$5497>>2]|0;
$5499 = (_i64Add(($5490|0),($5491|0),($5495|0),($5498|0))|0);
$5500 = tempRet0;
$5501 = $t11;
$5502 = $5501;
HEAP32[$5502>>2] = $5499;
$5503 = (($5501) + 4)|0;
$5504 = $5503;
HEAP32[$5504>>2] = $5500;
$5505 = $c;
$5506 = $5505;
$5507 = HEAP32[$5506>>2]|0;
$5508 = (($5505) + 4)|0;
$5509 = $5508;
$5510 = HEAP32[$5509>>2]|0;
$5511 = (_Sum0_1423($5507,$5510)|0);
$5512 = tempRet0;
$5513 = $c;
$5514 = $5513;
$5515 = HEAP32[$5514>>2]|0;
$5516 = (($5513) + 4)|0;
$5517 = $5516;
$5518 = HEAP32[$5517>>2]|0;
$5519 = $d;
$5520 = $5519;
$5521 = HEAP32[$5520>>2]|0;
$5522 = (($5519) + 4)|0;
$5523 = $5522;
$5524 = HEAP32[$5523>>2]|0;
$5525 = $e;
$5526 = $5525;
$5527 = HEAP32[$5526>>2]|0;
$5528 = (($5525) + 4)|0;
$5529 = $5528;
$5530 = HEAP32[$5529>>2]|0;
$5531 = (_Maj_1424($5515,$5518,$5521,$5524,$5527,$5530)|0);
$5532 = tempRet0;
$5533 = (_i64Add(($5511|0),($5512|0),($5531|0),($5532|0))|0);
$5534 = tempRet0;
$5535 = $t22;
$5536 = $5535;
HEAP32[$5536>>2] = $5533;
$5537 = (($5535) + 4)|0;
$5538 = $5537;
HEAP32[$5538>>2] = $5534;
$5539 = $t11;
$5540 = $5539;
$5541 = HEAP32[$5540>>2]|0;
$5542 = (($5539) + 4)|0;
$5543 = $5542;
$5544 = HEAP32[$5543>>2]|0;
$5545 = $f;
$5546 = $5545;
$5547 = HEAP32[$5546>>2]|0;
$5548 = (($5545) + 4)|0;
$5549 = $5548;
$5550 = HEAP32[$5549>>2]|0;
$5551 = (_i64Add(($5547|0),($5550|0),($5541|0),($5544|0))|0);
$5552 = tempRet0;
$5553 = $f;
$5554 = $5553;
HEAP32[$5554>>2] = $5551;
$5555 = (($5553) + 4)|0;
$5556 = $5555;
HEAP32[$5556>>2] = $5552;
$5557 = $t11;
$5558 = $5557;
$5559 = HEAP32[$5558>>2]|0;
$5560 = (($5557) + 4)|0;
$5561 = $5560;
$5562 = HEAP32[$5561>>2]|0;
$5563 = $t22;
$5564 = $5563;
$5565 = HEAP32[$5564>>2]|0;
$5566 = (($5563) + 4)|0;
$5567 = $5566;
$5568 = HEAP32[$5567>>2]|0;
$5569 = (_i64Add(($5559|0),($5562|0),($5565|0),($5568|0))|0);
$5570 = tempRet0;
$5571 = $b;
$5572 = $5571;
HEAP32[$5572>>2] = $5569;
$5573 = (($5571) + 4)|0;
$5574 = $5573;
HEAP32[$5574>>2] = $5570;
$5575 = $a;
$5576 = $5575;
$5577 = HEAP32[$5576>>2]|0;
$5578 = (($5575) + 4)|0;
$5579 = $5578;
$5580 = HEAP32[$5579>>2]|0;
$5581 = $f;
$5582 = $5581;
$5583 = HEAP32[$5582>>2]|0;
$5584 = (($5581) + 4)|0;
$5585 = $5584;
$5586 = HEAP32[$5585>>2]|0;
$5587 = (_Sum1_1422($5583,$5586)|0);
$5588 = tempRet0;
$5589 = (_i64Add(($5577|0),($5580|0),($5587|0),($5588|0))|0);
$5590 = tempRet0;
$5591 = $f;
$5592 = $5591;
$5593 = HEAP32[$5592>>2]|0;
$5594 = (($5591) + 4)|0;
$5595 = $5594;
$5596 = HEAP32[$5595>>2]|0;
$5597 = $g;
$5598 = $5597;
$5599 = HEAP32[$5598>>2]|0;
$5600 = (($5597) + 4)|0;
$5601 = $5600;
$5602 = HEAP32[$5601>>2]|0;
$5603 = $h;
$5604 = $5603;
$5605 = HEAP32[$5604>>2]|0;
$5606 = (($5603) + 4)|0;
$5607 = $5606;
$5608 = HEAP32[$5607>>2]|0;
$5609 = (_Ch($5593,$5596,$5599,$5602,$5605,$5608)|0);
$5610 = tempRet0;
$5611 = (_i64Add(($5589|0),($5590|0),($5609|0),($5610|0))|0);
$5612 = tempRet0;
$5613 = $t;
$5614 = (($5613) + 15)|0;
$5615 = (80 + ($5614<<3)|0);
$5616 = $5615;
$5617 = $5616;
$5618 = HEAP32[$5617>>2]|0;
$5619 = (($5616) + 4)|0;
$5620 = $5619;
$5621 = HEAP32[$5620>>2]|0;
$5622 = (_i64Add(($5611|0),($5612|0),($5618|0),($5621|0))|0);
$5623 = tempRet0;
$5624 = ((($w)) + 120|0);
$5625 = $5624;
$5626 = $5625;
$5627 = HEAP32[$5626>>2]|0;
$5628 = (($5625) + 4)|0;
$5629 = $5628;
$5630 = HEAP32[$5629>>2]|0;
$5631 = (_i64Add(($5622|0),($5623|0),($5627|0),($5630|0))|0);
$5632 = tempRet0;
$5633 = $t11;
$5634 = $5633;
HEAP32[$5634>>2] = $5631;
$5635 = (($5633) + 4)|0;
$5636 = $5635;
HEAP32[$5636>>2] = $5632;
$5637 = $b;
$5638 = $5637;
$5639 = HEAP32[$5638>>2]|0;
$5640 = (($5637) + 4)|0;
$5641 = $5640;
$5642 = HEAP32[$5641>>2]|0;
$5643 = (_Sum0_1423($5639,$5642)|0);
$5644 = tempRet0;
$5645 = $b;
$5646 = $5645;
$5647 = HEAP32[$5646>>2]|0;
$5648 = (($5645) + 4)|0;
$5649 = $5648;
$5650 = HEAP32[$5649>>2]|0;
$5651 = $c;
$5652 = $5651;
$5653 = HEAP32[$5652>>2]|0;
$5654 = (($5651) + 4)|0;
$5655 = $5654;
$5656 = HEAP32[$5655>>2]|0;
$5657 = $d;
$5658 = $5657;
$5659 = HEAP32[$5658>>2]|0;
$5660 = (($5657) + 4)|0;
$5661 = $5660;
$5662 = HEAP32[$5661>>2]|0;
$5663 = (_Maj_1424($5647,$5650,$5653,$5656,$5659,$5662)|0);
$5664 = tempRet0;
$5665 = (_i64Add(($5643|0),($5644|0),($5663|0),($5664|0))|0);
$5666 = tempRet0;
$5667 = $t22;
$5668 = $5667;
HEAP32[$5668>>2] = $5665;
$5669 = (($5667) + 4)|0;
$5670 = $5669;
HEAP32[$5670>>2] = $5666;
$5671 = $t11;
$5672 = $5671;
$5673 = HEAP32[$5672>>2]|0;
$5674 = (($5671) + 4)|0;
$5675 = $5674;
$5676 = HEAP32[$5675>>2]|0;
$5677 = $e;
$5678 = $5677;
$5679 = HEAP32[$5678>>2]|0;
$5680 = (($5677) + 4)|0;
$5681 = $5680;
$5682 = HEAP32[$5681>>2]|0;
$5683 = (_i64Add(($5679|0),($5682|0),($5673|0),($5676|0))|0);
$5684 = tempRet0;
$5685 = $e;
$5686 = $5685;
HEAP32[$5686>>2] = $5683;
$5687 = (($5685) + 4)|0;
$5688 = $5687;
HEAP32[$5688>>2] = $5684;
$5689 = $t11;
$5690 = $5689;
$5691 = HEAP32[$5690>>2]|0;
$5692 = (($5689) + 4)|0;
$5693 = $5692;
$5694 = HEAP32[$5693>>2]|0;
$5695 = $t22;
$5696 = $5695;
$5697 = HEAP32[$5696>>2]|0;
$5698 = (($5695) + 4)|0;
$5699 = $5698;
$5700 = HEAP32[$5699>>2]|0;
$5701 = (_i64Add(($5691|0),($5694|0),($5697|0),($5700|0))|0);
$5702 = tempRet0;
$5703 = $a;
$5704 = $5703;
HEAP32[$5704>>2] = $5701;
$5705 = (($5703) + 4)|0;
$5706 = $5705;
HEAP32[$5706>>2] = $5702;
$5707 = $t;
$5708 = (($5707) + 16)|0;
$t = $5708;
}
$5709 = $a;
$5710 = $5709;
$5711 = HEAP32[$5710>>2]|0;
$5712 = (($5709) + 4)|0;
$5713 = $5712;
$5714 = HEAP32[$5713>>2]|0;
$5715 = $0;
$5716 = $5715;
$5717 = $5716;
$5718 = HEAP32[$5717>>2]|0;
$5719 = (($5716) + 4)|0;
$5720 = $5719;
$5721 = HEAP32[$5720>>2]|0;
$5722 = (_i64Add(($5718|0),($5721|0),($5711|0),($5714|0))|0);
$5723 = tempRet0;
$5724 = $5715;
$5725 = $5724;
HEAP32[$5725>>2] = $5722;
$5726 = (($5724) + 4)|0;
$5727 = $5726;
HEAP32[$5727>>2] = $5723;
$5728 = $b;
$5729 = $5728;
$5730 = HEAP32[$5729>>2]|0;
$5731 = (($5728) + 4)|0;
$5732 = $5731;
$5733 = HEAP32[$5732>>2]|0;
$5734 = $0;
$5735 = ((($5734)) + 8|0);
$5736 = $5735;
$5737 = $5736;
$5738 = HEAP32[$5737>>2]|0;
$5739 = (($5736) + 4)|0;
$5740 = $5739;
$5741 = HEAP32[$5740>>2]|0;
$5742 = (_i64Add(($5738|0),($5741|0),($5730|0),($5733|0))|0);
$5743 = tempRet0;
$5744 = $5735;
$5745 = $5744;
HEAP32[$5745>>2] = $5742;
$5746 = (($5744) + 4)|0;
$5747 = $5746;
HEAP32[$5747>>2] = $5743;
$5748 = $c;
$5749 = $5748;
$5750 = HEAP32[$5749>>2]|0;
$5751 = (($5748) + 4)|0;
$5752 = $5751;
$5753 = HEAP32[$5752>>2]|0;
$5754 = $0;
$5755 = ((($5754)) + 16|0);
$5756 = $5755;
$5757 = $5756;
$5758 = HEAP32[$5757>>2]|0;
$5759 = (($5756) + 4)|0;
$5760 = $5759;
$5761 = HEAP32[$5760>>2]|0;
$5762 = (_i64Add(($5758|0),($5761|0),($5750|0),($5753|0))|0);
$5763 = tempRet0;
$5764 = $5755;
$5765 = $5764;
HEAP32[$5765>>2] = $5762;
$5766 = (($5764) + 4)|0;
$5767 = $5766;
HEAP32[$5767>>2] = $5763;
$5768 = $d;
$5769 = $5768;
$5770 = HEAP32[$5769>>2]|0;
$5771 = (($5768) + 4)|0;
$5772 = $5771;
$5773 = HEAP32[$5772>>2]|0;
$5774 = $0;
$5775 = ((($5774)) + 24|0);
$5776 = $5775;
$5777 = $5776;
$5778 = HEAP32[$5777>>2]|0;
$5779 = (($5776) + 4)|0;
$5780 = $5779;
$5781 = HEAP32[$5780>>2]|0;
$5782 = (_i64Add(($5778|0),($5781|0),($5770|0),($5773|0))|0);
$5783 = tempRet0;
$5784 = $5775;
$5785 = $5784;
HEAP32[$5785>>2] = $5782;
$5786 = (($5784) + 4)|0;
$5787 = $5786;
HEAP32[$5787>>2] = $5783;
$5788 = $e;
$5789 = $5788;
$5790 = HEAP32[$5789>>2]|0;
$5791 = (($5788) + 4)|0;
$5792 = $5791;
$5793 = HEAP32[$5792>>2]|0;
$5794 = $0;
$5795 = ((($5794)) + 32|0);
$5796 = $5795;
$5797 = $5796;
$5798 = HEAP32[$5797>>2]|0;
$5799 = (($5796) + 4)|0;
$5800 = $5799;
$5801 = HEAP32[$5800>>2]|0;
$5802 = (_i64Add(($5798|0),($5801|0),($5790|0),($5793|0))|0);
$5803 = tempRet0;
$5804 = $5795;
$5805 = $5804;
HEAP32[$5805>>2] = $5802;
$5806 = (($5804) + 4)|0;
$5807 = $5806;
HEAP32[$5807>>2] = $5803;
$5808 = $f;
$5809 = $5808;
$5810 = HEAP32[$5809>>2]|0;
$5811 = (($5808) + 4)|0;
$5812 = $5811;
$5813 = HEAP32[$5812>>2]|0;
$5814 = $0;
$5815 = ((($5814)) + 40|0);
$5816 = $5815;
$5817 = $5816;
$5818 = HEAP32[$5817>>2]|0;
$5819 = (($5816) + 4)|0;
$5820 = $5819;
$5821 = HEAP32[$5820>>2]|0;
$5822 = (_i64Add(($5818|0),($5821|0),($5810|0),($5813|0))|0);
$5823 = tempRet0;
$5824 = $5815;
$5825 = $5824;
HEAP32[$5825>>2] = $5822;
$5826 = (($5824) + 4)|0;
$5827 = $5826;
HEAP32[$5827>>2] = $5823;
$5828 = $g;
$5829 = $5828;
$5830 = HEAP32[$5829>>2]|0;
$5831 = (($5828) + 4)|0;
$5832 = $5831;
$5833 = HEAP32[$5832>>2]|0;
$5834 = $0;
$5835 = ((($5834)) + 48|0);
$5836 = $5835;
$5837 = $5836;
$5838 = HEAP32[$5837>>2]|0;
$5839 = (($5836) + 4)|0;
$5840 = $5839;
$5841 = HEAP32[$5840>>2]|0;
$5842 = (_i64Add(($5838|0),($5841|0),($5830|0),($5833|0))|0);
$5843 = tempRet0;
$5844 = $5835;
$5845 = $5844;
HEAP32[$5845>>2] = $5842;
$5846 = (($5844) + 4)|0;
$5847 = $5846;
HEAP32[$5847>>2] = $5843;
$5848 = $h;
$5849 = $5848;
$5850 = HEAP32[$5849>>2]|0;
$5851 = (($5848) + 4)|0;
$5852 = $5851;
$5853 = HEAP32[$5852>>2]|0;
$5854 = $0;
$5855 = ((($5854)) + 56|0);
$5856 = $5855;
$5857 = $5856;
$5858 = HEAP32[$5857>>2]|0;
$5859 = (($5856) + 4)|0;
$5860 = $5859;
$5861 = HEAP32[$5860>>2]|0;
$5862 = (_i64Add(($5858|0),($5861|0),($5850|0),($5853|0))|0);
$5863 = tempRet0;
$5864 = $5855;
$5865 = $5864;
HEAP32[$5865>>2] = $5862;
$5866 = (($5864) + 4)|0;
$5867 = $5866;
HEAP32[$5867>>2] = $5863;
STACKTOP = sp;return 208;
}
function _buf_get_be64($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = (_bitshift64Shl(($4|0),0,56)|0);
$6 = tempRet0;
$7 = $in;
$8 = ((($7)) + 1|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = (_bitshift64Shl(($10|0),0,48)|0);
$12 = tempRet0;
$13 = $5 | $11;
$14 = $6 | $12;
$15 = $in;
$16 = ((($15)) + 2|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = (_bitshift64Shl(($18|0),0,40)|0);
$20 = tempRet0;
$21 = $13 | $19;
$22 = $14 | $20;
$23 = $in;
$24 = ((($23)) + 3|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = $22 | $26;
$28 = $in;
$29 = ((($28)) + 4|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
$32 = (_bitshift64Shl(($31|0),0,24)|0);
$33 = tempRet0;
$34 = $21 | $32;
$35 = $27 | $33;
$36 = $in;
$37 = ((($36)) + 5|0);
$38 = HEAP8[$37>>0]|0;
$39 = $38&255;
$40 = (_bitshift64Shl(($39|0),0,16)|0);
$41 = tempRet0;
$42 = $34 | $40;
$43 = $35 | $41;
$44 = $in;
$45 = ((($44)) + 6|0);
$46 = HEAP8[$45>>0]|0;
$47 = $46&255;
$48 = (_bitshift64Shl(($47|0),0,8)|0);
$49 = tempRet0;
$50 = $42 | $48;
$51 = $43 | $49;
$52 = $in;
$53 = ((($52)) + 7|0);
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = $50 | $55;
tempRet0 = ($51);
STACKTOP = sp;return ($56|0);
}
function _Sum1_1422($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$2 = sp;
$3 = $2;
$4 = $3;
HEAP32[$4>>2] = $0;
$5 = (($3) + 4)|0;
$6 = $5;
HEAP32[$6>>2] = $1;
$7 = $2;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (_ROTR($9,$12,14,0)|0);
$14 = tempRet0;
$15 = $2;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (_ROTR($17,$20,18,0)|0);
$22 = tempRet0;
$23 = $13 ^ $21;
$24 = $14 ^ $22;
$25 = $2;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (_ROTR($27,$30,41,0)|0);
$32 = tempRet0;
$33 = $23 ^ $31;
$34 = $24 ^ $32;
tempRet0 = ($34);
STACKTOP = sp;return ($33|0);
}
function _ROTR($0,$1,$2,$3) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$4 = sp + 8|0;
$5 = sp;
$6 = $4;
$7 = $6;
HEAP32[$7>>2] = $0;
$8 = (($6) + 4)|0;
$9 = $8;
HEAP32[$9>>2] = $1;
$10 = $5;
$11 = $10;
HEAP32[$11>>2] = $2;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $3;
$14 = $4;
$15 = $14;
$16 = HEAP32[$15>>2]|0;
$17 = (($14) + 4)|0;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = $5;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + 4)|0;
$24 = $23;
$25 = HEAP32[$24>>2]|0;
$26 = (_bitshift64Lshr(($16|0),($19|0),($22|0))|0);
$27 = tempRet0;
$28 = $4;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 4)|0;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = $5;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (_i64Subtract(64,0,($36|0),($39|0))|0);
$41 = tempRet0;
$42 = (_bitshift64Shl(($30|0),($33|0),($40|0))|0);
$43 = tempRet0;
$44 = $26 | $42;
$45 = $27 | $43;
tempRet0 = ($45);
STACKTOP = sp;return ($44|0);
}
function _Ch($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $50 = 0, $51 = 0, $52 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$6 = sp + 16|0;
$7 = sp + 8|0;
$8 = sp;
$9 = $6;
$10 = $9;
HEAP32[$10>>2] = $0;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $1;
$13 = $7;
$14 = $13;
HEAP32[$14>>2] = $2;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $3;
$17 = $8;
$18 = $17;
HEAP32[$18>>2] = $4;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $5;
$21 = $6;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $7;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $23 & $29;
$34 = $26 & $32;
$35 = $6;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = (($35) + 4)|0;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = $37 ^ -1;
$42 = $40 ^ -1;
$43 = $8;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (($43) + 4)|0;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = $41 & $45;
$50 = $42 & $48;
$51 = $33 ^ $49;
$52 = $34 ^ $50;
tempRet0 = ($52);
STACKTOP = sp;return ($51|0);
}
function _Sum0_1423($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$2 = sp;
$3 = $2;
$4 = $3;
HEAP32[$4>>2] = $0;
$5 = (($3) + 4)|0;
$6 = $5;
HEAP32[$6>>2] = $1;
$7 = $2;
$8 = $7;
$9 = HEAP32[$8>>2]|0;
$10 = (($7) + 4)|0;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (_ROTR($9,$12,28,0)|0);
$14 = tempRet0;
$15 = $2;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = (_ROTR($17,$20,34,0)|0);
$22 = tempRet0;
$23 = $13 ^ $21;
$24 = $14 ^ $22;
$25 = $2;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (_ROTR($27,$30,39,0)|0);
$32 = tempRet0;
$33 = $23 ^ $31;
$34 = $24 ^ $32;
tempRet0 = ($34);
STACKTOP = sp;return ($33|0);
}
function _Maj_1424($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
$5 = $5|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$6 = sp + 16|0;
$7 = sp + 8|0;
$8 = sp;
$9 = $6;
$10 = $9;
HEAP32[$10>>2] = $0;
$11 = (($9) + 4)|0;
$12 = $11;
HEAP32[$12>>2] = $1;
$13 = $7;
$14 = $13;
HEAP32[$14>>2] = $2;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = $3;
$17 = $8;
$18 = $17;
HEAP32[$18>>2] = $4;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $5;
$21 = $6;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = $7;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = $23 & $29;
$34 = $26 & $32;
$35 = $6;
$36 = $35;
$37 = HEAP32[$36>>2]|0;
$38 = (($35) + 4)|0;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = $8;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = (($41) + 4)|0;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = $37 & $43;
$48 = $40 & $46;
$49 = $33 ^ $47;
$50 = $34 ^ $48;
$51 = $7;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (($51) + 4)|0;
$55 = $54;
$56 = HEAP32[$55>>2]|0;
$57 = $8;
$58 = $57;
$59 = HEAP32[$58>>2]|0;
$60 = (($57) + 4)|0;
$61 = $60;
$62 = HEAP32[$61>>2]|0;
$63 = $53 & $59;
$64 = $56 & $62;
$65 = $49 ^ $63;
$66 = $50 ^ $64;
tempRet0 = ($66);
STACKTOP = sp;return ($65|0);
}
function _sha512_final($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $32 = 0;
var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0;
var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $hd = 0, $lsb = 0, $msb = 0, $p = 0, $stack_burn_depth = 0, $t = 0, $th = 0;
var dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$t = sp + 24|0;
$th = sp + 16|0;
$msb = sp + 8|0;
$lsb = sp;
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $0;
__gcry_md_block_write($2,0,0);
$3 = $hd;
$4 = ((($3)) + 128|0);
$5 = $4;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = (($5) + 4)|0;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = $t;
$12 = $11;
HEAP32[$12>>2] = $7;
$13 = (($11) + 4)|0;
$14 = $13;
HEAP32[$14>>2] = $10;
$15 = $hd;
$16 = ((($15)) + 136|0);
$17 = $16;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (($17) + 4)|0;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = $th;
$24 = $23;
HEAP32[$24>>2] = $19;
$25 = (($23) + 4)|0;
$26 = $25;
HEAP32[$26>>2] = $22;
$27 = $t;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (($27) + 4)|0;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = (_bitshift64Shl(($29|0),($32|0),7)|0);
$34 = tempRet0;
$35 = $lsb;
$36 = $35;
HEAP32[$36>>2] = $33;
$37 = (($35) + 4)|0;
$38 = $37;
HEAP32[$38>>2] = $34;
$39 = $th;
$40 = $39;
$41 = HEAP32[$40>>2]|0;
$42 = (($39) + 4)|0;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = (_bitshift64Shl(($41|0),($44|0),7)|0);
$46 = tempRet0;
$47 = $t;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = (($47) + 4)|0;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = (_bitshift64Lshr(($49|0),($52|0),57)|0);
$54 = tempRet0;
$55 = $45 | $53;
$56 = $46 | $54;
$57 = $msb;
$58 = $57;
HEAP32[$58>>2] = $55;
$59 = (($57) + 4)|0;
$60 = $59;
HEAP32[$60>>2] = $56;
$61 = $lsb;
$62 = $61;
$63 = HEAP32[$62>>2]|0;
$64 = (($61) + 4)|0;
$65 = $64;
$66 = HEAP32[$65>>2]|0;
$67 = $t;
$68 = $67;
HEAP32[$68>>2] = $63;
$69 = (($67) + 4)|0;
$70 = $69;
HEAP32[$70>>2] = $66;
$71 = $hd;
$72 = ((($71)) + 144|0);
$73 = HEAP32[$72>>2]|0;
$74 = ($73|0)<(0);
$75 = $74 << 31 >> 31;
$76 = $lsb;
$77 = $76;
$78 = HEAP32[$77>>2]|0;
$79 = (($76) + 4)|0;
$80 = $79;
$81 = HEAP32[$80>>2]|0;
$82 = (_i64Add(($78|0),($81|0),($73|0),($75|0))|0);
$83 = tempRet0;
$84 = $lsb;
$85 = $84;
HEAP32[$85>>2] = $82;
$86 = (($84) + 4)|0;
$87 = $86;
HEAP32[$87>>2] = $83;
$88 = $t;
$89 = $88;
$90 = HEAP32[$89>>2]|0;
$91 = (($88) + 4)|0;
$92 = $91;
$93 = HEAP32[$92>>2]|0;
$94 = ($83>>>0)<($93>>>0);
$95 = ($82>>>0)<($90>>>0);
$96 = ($83|0)==($93|0);
$97 = $96 & $95;
$98 = $94 | $97;
if ($98) {
$99 = $msb;
$100 = $99;
$101 = HEAP32[$100>>2]|0;
$102 = (($99) + 4)|0;
$103 = $102;
$104 = HEAP32[$103>>2]|0;
$105 = (_i64Add(($101|0),($104|0),1,0)|0);
$106 = tempRet0;
$107 = $msb;
$108 = $107;
HEAP32[$108>>2] = $105;
$109 = (($107) + 4)|0;
$110 = $109;
HEAP32[$110>>2] = $106;
}
$111 = $lsb;
$112 = $111;
$113 = HEAP32[$112>>2]|0;
$114 = (($111) + 4)|0;
$115 = $114;
$116 = HEAP32[$115>>2]|0;
$117 = $t;
$118 = $117;
HEAP32[$118>>2] = $113;
$119 = (($117) + 4)|0;
$120 = $119;
HEAP32[$120>>2] = $116;
$121 = $lsb;
$122 = $121;
$123 = HEAP32[$122>>2]|0;
$124 = (($121) + 4)|0;
$125 = $124;
$126 = HEAP32[$125>>2]|0;
$127 = (_bitshift64Shl(($123|0),($126|0),3)|0);
$128 = tempRet0;
$129 = $lsb;
$130 = $129;
HEAP32[$130>>2] = $127;
$131 = (($129) + 4)|0;
$132 = $131;
HEAP32[$132>>2] = $128;
$133 = $msb;
$134 = $133;
$135 = HEAP32[$134>>2]|0;
$136 = (($133) + 4)|0;
$137 = $136;
$138 = HEAP32[$137>>2]|0;
$139 = (_bitshift64Shl(($135|0),($138|0),3)|0);
$140 = tempRet0;
$141 = $msb;
$142 = $141;
HEAP32[$142>>2] = $139;
$143 = (($141) + 4)|0;
$144 = $143;
HEAP32[$144>>2] = $140;
$145 = $t;
$146 = $145;
$147 = HEAP32[$146>>2]|0;
$148 = (($145) + 4)|0;
$149 = $148;
$150 = HEAP32[$149>>2]|0;
$151 = (_bitshift64Lshr(($147|0),($150|0),61)|0);
$152 = tempRet0;
$153 = $msb;
$154 = $153;
$155 = HEAP32[$154>>2]|0;
$156 = (($153) + 4)|0;
$157 = $156;
$158 = HEAP32[$157>>2]|0;
$159 = $155 | $151;
$160 = $158 | $152;
$161 = $msb;
$162 = $161;
HEAP32[$162>>2] = $159;
$163 = (($161) + 4)|0;
$164 = $163;
HEAP32[$164>>2] = $160;
$165 = $hd;
$166 = ((($165)) + 144|0);
$167 = HEAP32[$166>>2]|0;
$168 = ($167|0)<(112);
$169 = $hd;
$170 = ((($169)) + 144|0);
$171 = HEAP32[$170>>2]|0;
$172 = (($171) + 1)|0;
HEAP32[$170>>2] = $172;
$173 = $hd;
$174 = (($173) + ($171)|0);
HEAP8[$174>>0] = -128;
L4: do {
if ($168) {
while(1) {
$175 = $hd;
$176 = ((($175)) + 144|0);
$177 = HEAP32[$176>>2]|0;
$178 = ($177|0)<(112);
if (!($178)) {
break L4;
}
$179 = $hd;
$180 = ((($179)) + 144|0);
$181 = HEAP32[$180>>2]|0;
$182 = (($181) + 1)|0;
HEAP32[$180>>2] = $182;
$183 = $hd;
$184 = (($183) + ($181)|0);
HEAP8[$184>>0] = 0;
}
} else {
while(1) {
$185 = $hd;
$186 = ((($185)) + 144|0);
$187 = HEAP32[$186>>2]|0;
$188 = ($187|0)<(128);
if (!($188)) {
break;
}
$189 = $hd;
$190 = ((($189)) + 144|0);
$191 = HEAP32[$190>>2]|0;
$192 = (($191) + 1)|0;
HEAP32[$190>>2] = $192;
$193 = $hd;
$194 = (($193) + ($191)|0);
HEAP8[$194>>0] = 0;
}
$195 = $0;
__gcry_md_block_write($195,0,0);
$196 = $hd;
dest=$196; stop=dest+112|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
}
} while(0);
$197 = $hd;
$198 = ((($197)) + 112|0);
$199 = $msb;
$200 = $199;
$201 = HEAP32[$200>>2]|0;
$202 = (($199) + 4)|0;
$203 = $202;
$204 = HEAP32[$203>>2]|0;
_buf_put_be64($198,$201,$204);
$205 = $hd;
$206 = ((($205)) + 120|0);
$207 = $lsb;
$208 = $207;
$209 = HEAP32[$208>>2]|0;
$210 = (($207) + 4)|0;
$211 = $210;
$212 = HEAP32[$211>>2]|0;
_buf_put_be64($206,$209,$212);
$213 = $hd;
$214 = $hd;
$215 = (_transform_1420($213,$214,1)|0);
$stack_burn_depth = $215;
$216 = $stack_burn_depth;
___gcry_burn_stack($216);
___gcry_burn_stack_dummy();
$217 = $hd;
$p = $217;
$218 = $p;
$219 = $hd;
$220 = ((($219)) + 160|0);
$221 = $220;
$222 = $221;
$223 = HEAP32[$222>>2]|0;
$224 = (($221) + 4)|0;
$225 = $224;
$226 = HEAP32[$225>>2]|0;
_buf_put_be64($218,$223,$226);
$227 = $p;
$228 = ((($227)) + 8|0);
$p = $228;
$229 = $p;
$230 = $hd;
$231 = ((($230)) + 160|0);
$232 = ((($231)) + 8|0);
$233 = $232;
$234 = $233;
$235 = HEAP32[$234>>2]|0;
$236 = (($233) + 4)|0;
$237 = $236;
$238 = HEAP32[$237>>2]|0;
_buf_put_be64($229,$235,$238);
$239 = $p;
$240 = ((($239)) + 8|0);
$p = $240;
$241 = $p;
$242 = $hd;
$243 = ((($242)) + 160|0);
$244 = ((($243)) + 16|0);
$245 = $244;
$246 = $245;
$247 = HEAP32[$246>>2]|0;
$248 = (($245) + 4)|0;
$249 = $248;
$250 = HEAP32[$249>>2]|0;
_buf_put_be64($241,$247,$250);
$251 = $p;
$252 = ((($251)) + 8|0);
$p = $252;
$253 = $p;
$254 = $hd;
$255 = ((($254)) + 160|0);
$256 = ((($255)) + 24|0);
$257 = $256;
$258 = $257;
$259 = HEAP32[$258>>2]|0;
$260 = (($257) + 4)|0;
$261 = $260;
$262 = HEAP32[$261>>2]|0;
_buf_put_be64($253,$259,$262);
$263 = $p;
$264 = ((($263)) + 8|0);
$p = $264;
$265 = $p;
$266 = $hd;
$267 = ((($266)) + 160|0);
$268 = ((($267)) + 32|0);
$269 = $268;
$270 = $269;
$271 = HEAP32[$270>>2]|0;
$272 = (($269) + 4)|0;
$273 = $272;
$274 = HEAP32[$273>>2]|0;
_buf_put_be64($265,$271,$274);
$275 = $p;
$276 = ((($275)) + 8|0);
$p = $276;
$277 = $p;
$278 = $hd;
$279 = ((($278)) + 160|0);
$280 = ((($279)) + 40|0);
$281 = $280;
$282 = $281;
$283 = HEAP32[$282>>2]|0;
$284 = (($281) + 4)|0;
$285 = $284;
$286 = HEAP32[$285>>2]|0;
_buf_put_be64($277,$283,$286);
$287 = $p;
$288 = ((($287)) + 8|0);
$p = $288;
$289 = $p;
$290 = $hd;
$291 = ((($290)) + 160|0);
$292 = ((($291)) + 48|0);
$293 = $292;
$294 = $293;
$295 = HEAP32[$294>>2]|0;
$296 = (($293) + 4)|0;
$297 = $296;
$298 = HEAP32[$297>>2]|0;
_buf_put_be64($289,$295,$298);
$299 = $p;
$300 = ((($299)) + 8|0);
$p = $300;
$301 = $p;
$302 = $hd;
$303 = ((($302)) + 160|0);
$304 = ((($303)) + 56|0);
$305 = $304;
$306 = $305;
$307 = HEAP32[$306>>2]|0;
$308 = (($305) + 4)|0;
$309 = $308;
$310 = HEAP32[$309>>2]|0;
_buf_put_be64($301,$307,$310);
$311 = $p;
$312 = ((($311)) + 8|0);
$p = $312;
STACKTOP = sp;return;
}
function _buf_put_be64($_buf,$0,$1) {
$_buf = $_buf|0;
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$3 = sp;
$2 = $_buf;
$4 = $3;
$5 = $4;
HEAP32[$5>>2] = $0;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $1;
$8 = $2;
$out = $8;
$9 = $3;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (_bitshift64Lshr(($11|0),($14|0),56)|0);
$16 = tempRet0;
$17 = $15&255;
$18 = $out;
HEAP8[$18>>0] = $17;
$19 = $3;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = (_bitshift64Lshr(($21|0),($24|0),48)|0);
$26 = tempRet0;
$27 = $25&255;
$28 = $out;
$29 = ((($28)) + 1|0);
HEAP8[$29>>0] = $27;
$30 = $3;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = (($30) + 4)|0;
$34 = $33;
$35 = HEAP32[$34>>2]|0;
$36 = (_bitshift64Lshr(($32|0),($35|0),40)|0);
$37 = tempRet0;
$38 = $36&255;
$39 = $out;
$40 = ((($39)) + 2|0);
HEAP8[$40>>0] = $38;
$41 = $3;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = (($41) + 4)|0;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = $46&255;
$48 = $out;
$49 = ((($48)) + 3|0);
HEAP8[$49>>0] = $47;
$50 = $3;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = (($50) + 4)|0;
$54 = $53;
$55 = HEAP32[$54>>2]|0;
$56 = (_bitshift64Lshr(($52|0),($55|0),24)|0);
$57 = tempRet0;
$58 = $56&255;
$59 = $out;
$60 = ((($59)) + 4|0);
HEAP8[$60>>0] = $58;
$61 = $3;
$62 = $61;
$63 = HEAP32[$62>>2]|0;
$64 = (($61) + 4)|0;
$65 = $64;
$66 = HEAP32[$65>>2]|0;
$67 = (_bitshift64Lshr(($63|0),($66|0),16)|0);
$68 = tempRet0;
$69 = $67&255;
$70 = $out;
$71 = ((($70)) + 5|0);
HEAP8[$71>>0] = $69;
$72 = $3;
$73 = $72;
$74 = HEAP32[$73>>2]|0;
$75 = (($72) + 4)|0;
$76 = $75;
$77 = HEAP32[$76>>2]|0;
$78 = (_bitshift64Lshr(($74|0),($77|0),8)|0);
$79 = tempRet0;
$80 = $78&255;
$81 = $out;
$82 = ((($81)) + 6|0);
HEAP8[$82>>0] = $80;
$83 = $3;
$84 = $83;
$85 = HEAP32[$84>>2]|0;
$86 = (($83) + 4)|0;
$87 = $86;
$88 = HEAP32[$87>>2]|0;
$89 = $85&255;
$90 = $out;
$91 = ((($90)) + 7|0);
HEAP8[$91>>0] = $89;
STACKTOP = sp;return;
}
function _sha512_read($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $2 = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$hd = $1;
$2 = $hd;
STACKTOP = sp;return ($2|0);
}
function _run_selftests_1425($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $algo;
$1 = $extended;
$2 = $report;
$3 = $0;
switch ($3|0) {
case 9: {
$4 = $1;
$5 = $2;
$6 = (_selftests_sha384_1426($4,$5)|0);
$ec = $6;
break;
}
case 10: {
$7 = $1;
$8 = $2;
$9 = (_selftests_sha512_1436($7,$8)|0);
$ec = $9;
break;
}
default: {
$ec = 5;
}
}
$10 = $ec;
STACKTOP = sp;return ($10|0);
}
function _selftests_sha384_1426($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 42887;
$3 = (__gcry_hash_selftest_check_one(9,0,42900,3,42904,48)|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
do {
if (!($5)) {
$6 = $1;
$7 = ($6|0)!=(0);
if ($7) {
$what = 42953;
$8 = (__gcry_hash_selftest_check_one(9,0,42965,112,43078,48)|0);
$errtxt = $8;
$9 = $errtxt;
$10 = ($9|0)!=(0|0);
if ($10) {
break;
}
$what = 43127;
$11 = (__gcry_hash_selftest_check_one(9,1,0,0,43143,48)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
if ($13) {
break;
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
} while(0);
$14 = $2;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $2;
$17 = $what;
$18 = $errtxt;
FUNCTION_TABLE_viiii[$16 & 63](43192,9,$17,$18);
}
$0 = 50;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _selftests_sha512_1436($extended,$report) {
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $extended;
$2 = $report;
$what = 42887;
$3 = (__gcry_hash_selftest_check_one(10,0,42900,3,43199,64)|0);
$errtxt = $3;
$4 = $errtxt;
$5 = ($4|0)!=(0|0);
do {
if (!($5)) {
$6 = $1;
$7 = ($6|0)!=(0);
if ($7) {
$what = 42953;
$8 = (__gcry_hash_selftest_check_one(10,0,42965,112,43264,64)|0);
$errtxt = $8;
$9 = $errtxt;
$10 = ($9|0)!=(0|0);
if ($10) {
break;
}
$what = 43127;
$11 = (__gcry_hash_selftest_check_one(10,1,0,0,43329,64)|0);
$errtxt = $11;
$12 = $errtxt;
$13 = ($12|0)!=(0|0);
if ($13) {
break;
}
}
$0 = 0;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
} while(0);
$14 = $2;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $2;
$17 = $what;
$18 = $errtxt;
FUNCTION_TABLE_viiii[$16 & 63](43192,10,$17,$18);
}
$0 = 50;
$19 = $0;
STACKTOP = sp;return ($19|0);
}
function _sha384_init($context,$flags) {
$context = $context|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0, $9 = 0, $ctx = 0, $features = 0, $hd = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $flags;
$2 = $0;
$ctx = $2;
$3 = $ctx;
$4 = ((($3)) + 160|0);
$hd = $4;
$5 = (__gcry_get_hw_features()|0);
$features = $5;
$6 = $hd;
$7 = $6;
$8 = $7;
HEAP32[$8>>2] = -1056596264;
$9 = (($7) + 4)|0;
$10 = $9;
HEAP32[$10>>2] = -876896931;
$11 = $hd;
$12 = ((($11)) + 8|0);
$13 = $12;
$14 = $13;
HEAP32[$14>>2] = 914150663;
$15 = (($13) + 4)|0;
$16 = $15;
HEAP32[$16>>2] = 1654270250;
$17 = $hd;
$18 = ((($17)) + 16|0);
$19 = $18;
$20 = $19;
HEAP32[$20>>2] = 812702999;
$21 = (($19) + 4)|0;
$22 = $21;
HEAP32[$22>>2] = -1856437926;
$23 = $hd;
$24 = ((($23)) + 24|0);
$25 = $24;
$26 = $25;
HEAP32[$26>>2] = -150054599;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP32[$28>>2] = 355462360;
$29 = $hd;
$30 = ((($29)) + 32|0);
$31 = $30;
$32 = $31;
HEAP32[$32>>2] = -4191439;
$33 = (($31) + 4)|0;
$34 = $33;
HEAP32[$34>>2] = 1731405415;
$35 = $hd;
$36 = ((($35)) + 40|0);
$37 = $36;
$38 = $37;
HEAP32[$38>>2] = 1750603025;
$39 = (($37) + 4)|0;
$40 = $39;
HEAP32[$40>>2] = -1900787065;
$41 = $hd;
$42 = ((($41)) + 48|0);
$43 = $42;
$44 = $43;
HEAP32[$44>>2] = 1694076839;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP32[$46>>2] = -619958771;
$47 = $hd;
$48 = ((($47)) + 56|0);
$49 = $48;
$50 = $49;
HEAP32[$50>>2] = -1090891868;
$51 = (($49) + 4)|0;
$52 = $51;
HEAP32[$52>>2] = 1203062813;
$53 = $ctx;
$54 = ((($53)) + 128|0);
$55 = $54;
$56 = $55;
HEAP32[$56>>2] = 0;
$57 = (($55) + 4)|0;
$58 = $57;
HEAP32[$58>>2] = 0;
$59 = $ctx;
$60 = ((($59)) + 136|0);
$61 = $60;
$62 = $61;
HEAP32[$62>>2] = 0;
$63 = (($61) + 4)|0;
$64 = $63;
HEAP32[$64>>2] = 0;
$65 = $ctx;
$66 = ((($65)) + 144|0);
HEAP32[$66>>2] = 0;
$67 = $ctx;
$68 = ((($67)) + 148|0);
HEAP32[$68>>2] = 128;
$69 = $ctx;
$70 = ((($69)) + 152|0);
HEAP32[$70>>2] = 76;
STACKTOP = sp;return;
}
function _twofish_setkey($context,$key,$keylen) {
$context = $context|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $ctx = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $key;
$2 = $keylen;
$3 = $0;
$ctx = $3;
$4 = $ctx;
$5 = $1;
$6 = $2;
$7 = (_do_twofish_setkey($4,$5,$6)|0);
$rc = $7;
___gcry_burn_stack(47);
___gcry_burn_stack_dummy();
$8 = $rc;
STACKTOP = sp;return ($8|0);
}
function _do_twofish_setkey($ctx,$key,$keylen) {
$ctx = $ctx|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $10000 = 0, $10001 = 0, $10002 = 0, $10003 = 0, $10004 = 0, $10005 = 0, $10006 = 0, $10007 = 0, $10008 = 0, $10009 = 0, $1001 = 0, $10010 = 0, $10011 = 0, $10012 = 0, $10013 = 0;
var $10014 = 0, $10015 = 0, $10016 = 0, $10017 = 0, $10018 = 0, $10019 = 0, $1002 = 0, $10020 = 0, $10021 = 0, $10022 = 0, $10023 = 0, $10024 = 0, $10025 = 0, $10026 = 0, $10027 = 0, $10028 = 0, $10029 = 0, $1003 = 0, $10030 = 0, $10031 = 0;
var $10032 = 0, $10033 = 0, $10034 = 0, $10035 = 0, $10036 = 0, $10037 = 0, $10038 = 0, $10039 = 0, $1004 = 0, $10040 = 0, $10041 = 0, $10042 = 0, $10043 = 0, $10044 = 0, $10045 = 0, $10046 = 0, $10047 = 0, $10048 = 0, $10049 = 0, $1005 = 0;
var $10050 = 0, $10051 = 0, $10052 = 0, $10053 = 0, $10054 = 0, $10055 = 0, $10056 = 0, $10057 = 0, $10058 = 0, $10059 = 0, $1006 = 0, $10060 = 0, $10061 = 0, $10062 = 0, $10063 = 0, $10064 = 0, $10065 = 0, $10066 = 0, $10067 = 0, $10068 = 0;
var $10069 = 0, $1007 = 0, $10070 = 0, $10071 = 0, $10072 = 0, $10073 = 0, $10074 = 0, $10075 = 0, $10076 = 0, $10077 = 0, $10078 = 0, $10079 = 0, $1008 = 0, $10080 = 0, $10081 = 0, $10082 = 0, $10083 = 0, $10084 = 0, $10085 = 0, $10086 = 0;
var $10087 = 0, $10088 = 0, $10089 = 0, $1009 = 0, $10090 = 0, $10091 = 0, $10092 = 0, $10093 = 0, $10094 = 0, $10095 = 0, $10096 = 0, $10097 = 0, $10098 = 0, $10099 = 0, $101 = 0, $1010 = 0, $10100 = 0, $10101 = 0, $10102 = 0, $10103 = 0;
var $10104 = 0, $10105 = 0, $10106 = 0, $10107 = 0, $10108 = 0, $10109 = 0, $1011 = 0, $10110 = 0, $10111 = 0, $10112 = 0, $10113 = 0, $10114 = 0, $10115 = 0, $10116 = 0, $10117 = 0, $10118 = 0, $10119 = 0, $1012 = 0, $10120 = 0, $10121 = 0;
var $10122 = 0, $10123 = 0, $10124 = 0, $10125 = 0, $10126 = 0, $10127 = 0, $10128 = 0, $10129 = 0, $1013 = 0, $10130 = 0, $10131 = 0, $10132 = 0, $10133 = 0, $10134 = 0, $10135 = 0, $10136 = 0, $10137 = 0, $10138 = 0, $10139 = 0, $1014 = 0;
var $10140 = 0, $10141 = 0, $10142 = 0, $10143 = 0, $10144 = 0, $10145 = 0, $10146 = 0, $10147 = 0, $10148 = 0, $10149 = 0, $1015 = 0, $10150 = 0, $10151 = 0, $10152 = 0, $10153 = 0, $10154 = 0, $10155 = 0, $10156 = 0, $10157 = 0, $10158 = 0;
var $10159 = 0, $1016 = 0, $10160 = 0, $10161 = 0, $10162 = 0, $10163 = 0, $10164 = 0, $10165 = 0, $10166 = 0, $10167 = 0, $10168 = 0, $10169 = 0, $1017 = 0, $10170 = 0, $10171 = 0, $10172 = 0, $10173 = 0, $10174 = 0, $10175 = 0, $10176 = 0;
var $10177 = 0, $10178 = 0, $10179 = 0, $1018 = 0, $10180 = 0, $10181 = 0, $10182 = 0, $10183 = 0, $10184 = 0, $10185 = 0, $10186 = 0, $10187 = 0, $10188 = 0, $10189 = 0, $1019 = 0, $10190 = 0, $10191 = 0, $10192 = 0, $10193 = 0, $10194 = 0;
var $10195 = 0, $10196 = 0, $10197 = 0, $10198 = 0, $10199 = 0, $102 = 0, $1020 = 0, $10200 = 0, $10201 = 0, $10202 = 0, $10203 = 0, $10204 = 0, $10205 = 0, $10206 = 0, $10207 = 0, $10208 = 0, $10209 = 0, $1021 = 0, $10210 = 0, $10211 = 0;
var $10212 = 0, $10213 = 0, $10214 = 0, $10215 = 0, $10216 = 0, $10217 = 0, $10218 = 0, $10219 = 0, $1022 = 0, $10220 = 0, $10221 = 0, $10222 = 0, $10223 = 0, $10224 = 0, $10225 = 0, $10226 = 0, $10227 = 0, $10228 = 0, $10229 = 0, $1023 = 0;
var $10230 = 0, $10231 = 0, $10232 = 0, $10233 = 0, $10234 = 0, $10235 = 0, $10236 = 0, $10237 = 0, $10238 = 0, $10239 = 0, $1024 = 0, $10240 = 0, $10241 = 0, $10242 = 0, $10243 = 0, $10244 = 0, $10245 = 0, $10246 = 0, $10247 = 0, $10248 = 0;
var $10249 = 0, $1025 = 0, $10250 = 0, $10251 = 0, $10252 = 0, $10253 = 0, $10254 = 0, $10255 = 0, $10256 = 0, $10257 = 0, $10258 = 0, $10259 = 0, $1026 = 0, $10260 = 0, $10261 = 0, $10262 = 0, $10263 = 0, $10264 = 0, $10265 = 0, $10266 = 0;
var $10267 = 0, $10268 = 0, $10269 = 0, $1027 = 0, $10270 = 0, $10271 = 0, $10272 = 0, $10273 = 0, $10274 = 0, $10275 = 0, $10276 = 0, $10277 = 0, $10278 = 0, $10279 = 0, $1028 = 0, $10280 = 0, $10281 = 0, $10282 = 0, $10283 = 0, $10284 = 0;
var $10285 = 0, $10286 = 0, $10287 = 0, $10288 = 0, $10289 = 0, $1029 = 0, $10290 = 0, $10291 = 0, $10292 = 0, $10293 = 0, $10294 = 0, $10295 = 0, $10296 = 0, $10297 = 0, $10298 = 0, $10299 = 0, $103 = 0, $1030 = 0, $10300 = 0, $10301 = 0;
var $10302 = 0, $10303 = 0, $10304 = 0, $10305 = 0, $10306 = 0, $10307 = 0, $10308 = 0, $10309 = 0, $1031 = 0, $10310 = 0, $10311 = 0, $10312 = 0, $10313 = 0, $10314 = 0, $10315 = 0, $10316 = 0, $10317 = 0, $10318 = 0, $10319 = 0, $1032 = 0;
var $10320 = 0, $10321 = 0, $10322 = 0, $10323 = 0, $10324 = 0, $10325 = 0, $10326 = 0, $10327 = 0, $10328 = 0, $10329 = 0, $1033 = 0, $10330 = 0, $10331 = 0, $10332 = 0, $10333 = 0, $10334 = 0, $10335 = 0, $10336 = 0, $10337 = 0, $10338 = 0;
var $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0;
var $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0;
var $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0;
var $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0;
var $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0;
var $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0;
var $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0;
var $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0;
var $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0;
var $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0;
var $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0;
var $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0;
var $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0;
var $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0;
var $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0, $1303 = 0;
var $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0, $1321 = 0;
var $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0;
var $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1358 = 0;
var $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0, $1376 = 0;
var $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1394 = 0;
var $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0, $1411 = 0;
var $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0, $143 = 0;
var $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1448 = 0;
var $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1466 = 0;
var $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0;
var $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0, $1501 = 0;
var $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0, $152 = 0;
var $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0, $1538 = 0;
var $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0;
var $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0, $1574 = 0;
var $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0, $1592 = 0;
var $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0, $161 = 0;
var $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0;
var $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0;
var $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0, $1664 = 0;
var $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0, $1682 = 0;
var $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0, $170 = 0;
var $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1716 = 0, $1717 = 0, $1718 = 0;
var $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $173 = 0, $1730 = 0, $1731 = 0, $1732 = 0, $1733 = 0, $1734 = 0, $1735 = 0, $1736 = 0;
var $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0;
var $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0, $1772 = 0;
var $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0, $1790 = 0;
var $1791 = 0, $1792 = 0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0, $1807 = 0, $1808 = 0;
var $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1824 = 0, $1825 = 0, $1826 = 0;
var $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1830 = 0, $1831 = 0, $1832 = 0, $1833 = 0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0, $1839 = 0, $184 = 0, $1840 = 0, $1841 = 0, $1842 = 0, $1843 = 0, $1844 = 0;
var $1845 = 0, $1846 = 0, $1847 = 0, $1848 = 0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1854 = 0, $1855 = 0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0, $186 = 0, $1860 = 0, $1861 = 0, $1862 = 0;
var $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0, $1867 = 0, $1868 = 0, $1869 = 0, $187 = 0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0, $1880 = 0;
var $1881 = 0, $1882 = 0, $1883 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $189 = 0, $1890 = 0, $1891 = 0, $1892 = 0, $1893 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $1898 = 0, $1899 = 0;
var $19 = 0, $190 = 0, $1900 = 0, $1901 = 0, $1902 = 0, $1903 = 0, $1904 = 0, $1905 = 0, $1906 = 0, $1907 = 0, $1908 = 0, $1909 = 0, $191 = 0, $1910 = 0, $1911 = 0, $1912 = 0, $1913 = 0, $1914 = 0, $1915 = 0, $1916 = 0;
var $1917 = 0, $1918 = 0, $1919 = 0, $192 = 0, $1920 = 0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 0, $193 = 0, $1930 = 0, $1931 = 0, $1932 = 0, $1933 = 0, $1934 = 0;
var $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1940 = 0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0, $1952 = 0;
var $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0, $1970 = 0;
var $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0, $1989 = 0;
var $199 = 0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0, $2005 = 0;
var $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0, $2016 = 0, $2017 = 0, $2018 = 0, $2019 = 0, $202 = 0, $2020 = 0, $2021 = 0, $2022 = 0, $2023 = 0;
var $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0, $2028 = 0, $2029 = 0, $203 = 0, $2030 = 0, $2031 = 0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0, $2040 = 0, $2041 = 0;
var $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0, $2046 = 0, $2047 = 0, $2048 = 0, $2049 = 0, $205 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0, $206 = 0;
var $2060 = 0, $2061 = 0, $2062 = 0, $2063 = 0, $2064 = 0, $2065 = 0, $2066 = 0, $2067 = 0, $2068 = 0, $2069 = 0, $207 = 0, $2070 = 0, $2071 = 0, $2072 = 0, $2073 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0, $2078 = 0;
var $2079 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2082 = 0, $2083 = 0, $2084 = 0, $2085 = 0, $2086 = 0, $2087 = 0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0, $2096 = 0;
var $2097 = 0, $2098 = 0, $2099 = 0, $21 = 0, $210 = 0, $2100 = 0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0, $2105 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 0, $211 = 0, $2110 = 0, $2111 = 0, $2112 = 0, $2113 = 0;
var $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0, $2118 = 0, $2119 = 0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0, $2131 = 0;
var $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0, $215 = 0;
var $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0, $2168 = 0;
var $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0, $2186 = 0;
var $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0, $2191 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $220 = 0, $2200 = 0, $2201 = 0, $2202 = 0, $2203 = 0;
var $2204 = 0, $2205 = 0, $2206 = 0, $2207 = 0, $2208 = 0, $2209 = 0, $221 = 0, $2210 = 0, $2211 = 0, $2212 = 0, $2213 = 0, $2214 = 0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2220 = 0, $2221 = 0;
var $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $2226 = 0, $2227 = 0, $2228 = 0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0, $224 = 0;
var $2240 = 0, $2241 = 0, $2242 = 0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2253 = 0, $2254 = 0, $2255 = 0, $2256 = 0, $2257 = 0, $2258 = 0;
var $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2262 = 0, $2263 = 0, $2264 = 0, $2265 = 0, $2266 = 0, $2267 = 0, $2268 = 0, $2269 = 0, $227 = 0, $2270 = 0, $2271 = 0, $2272 = 0, $2273 = 0, $2274 = 0, $2275 = 0, $2276 = 0;
var $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2281 = 0, $2282 = 0, $2283 = 0, $2284 = 0, $2285 = 0, $2286 = 0, $2287 = 0, $2288 = 0, $2289 = 0, $229 = 0, $2290 = 0, $2291 = 0, $2292 = 0, $2293 = 0, $2294 = 0;
var $2295 = 0, $2296 = 0, $2297 = 0, $2298 = 0, $2299 = 0, $23 = 0, $230 = 0, $2300 = 0, $2301 = 0, $2302 = 0, $2303 = 0, $2304 = 0, $2305 = 0, $2306 = 0, $2307 = 0, $2308 = 0, $2309 = 0, $231 = 0, $2310 = 0, $2311 = 0;
var $2312 = 0, $2313 = 0, $2314 = 0, $2315 = 0, $2316 = 0, $2317 = 0, $2318 = 0, $2319 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2322 = 0, $2323 = 0, $2324 = 0, $2325 = 0, $2326 = 0, $2327 = 0, $2328 = 0, $2329 = 0, $233 = 0;
var $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0, $2334 = 0, $2335 = 0, $2336 = 0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0, $2341 = 0, $2342 = 0, $2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0, $2347 = 0, $2348 = 0;
var $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0, $2360 = 0, $2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0, $2366 = 0;
var $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, $238 = 0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0, $2384 = 0;
var $2385 = 0, $2386 = 0, $2387 = 0, $2388 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0, $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $24 = 0, $240 = 0, $2400 = 0, $2401 = 0;
var $2402 = 0, $2403 = 0, $2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2408 = 0, $2409 = 0, $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 0, $2416 = 0, $2417 = 0, $2418 = 0, $2419 = 0, $242 = 0;
var $2420 = 0, $2421 = 0, $2422 = 0, $2423 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, $2431 = 0, $2432 = 0, $2433 = 0, $2434 = 0, $2435 = 0, $2436 = 0, $2437 = 0, $2438 = 0;
var $2439 = 0, $244 = 0, $2440 = 0, $2441 = 0, $2442 = 0, $2443 = 0, $2444 = 0, $2445 = 0, $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2450 = 0, $2451 = 0, $2452 = 0, $2453 = 0, $2454 = 0, $2455 = 0, $2456 = 0;
var $2457 = 0, $2458 = 0, $2459 = 0, $246 = 0, $2460 = 0, $2461 = 0, $2462 = 0, $2463 = 0, $2464 = 0, $2465 = 0, $2466 = 0, $2467 = 0, $2468 = 0, $2469 = 0, $247 = 0, $2470 = 0, $2471 = 0, $2472 = 0, $2473 = 0, $2474 = 0;
var $2475 = 0, $2476 = 0, $2477 = 0, $2478 = 0, $2479 = 0, $248 = 0, $2480 = 0, $2481 = 0, $2482 = 0, $2483 = 0, $2484 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2489 = 0, $249 = 0, $2490 = 0, $2491 = 0, $2492 = 0;
var $2493 = 0, $2494 = 0, $2495 = 0, $2496 = 0, $2497 = 0, $2498 = 0, $2499 = 0, $25 = 0, $250 = 0, $2500 = 0, $2501 = 0, $2502 = 0, $2503 = 0, $2504 = 0, $2505 = 0, $2506 = 0, $2507 = 0, $2508 = 0, $2509 = 0, $251 = 0;
var $2510 = 0, $2511 = 0, $2512 = 0, $2513 = 0, $2514 = 0, $2515 = 0, $2516 = 0, $2517 = 0, $2518 = 0, $2519 = 0, $252 = 0, $2520 = 0, $2521 = 0, $2522 = 0, $2523 = 0, $2524 = 0, $2525 = 0, $2526 = 0, $2527 = 0, $2528 = 0;
var $2529 = 0, $253 = 0, $2530 = 0, $2531 = 0, $2532 = 0, $2533 = 0, $2534 = 0, $2535 = 0, $2536 = 0, $2537 = 0, $2538 = 0, $2539 = 0, $254 = 0, $2540 = 0, $2541 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0, $2546 = 0;
var $2547 = 0, $2548 = 0, $2549 = 0, $255 = 0, $2550 = 0, $2551 = 0, $2552 = 0, $2553 = 0, $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0, $2558 = 0, $2559 = 0, $256 = 0, $2560 = 0, $2561 = 0, $2562 = 0, $2563 = 0, $2564 = 0;
var $2565 = 0, $2566 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $257 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $2574 = 0, $2575 = 0, $2576 = 0, $2577 = 0, $2578 = 0, $2579 = 0, $258 = 0, $2580 = 0, $2581 = 0, $2582 = 0;
var $2583 = 0, $2584 = 0, $2585 = 0, $2586 = 0, $2587 = 0, $2588 = 0, $2589 = 0, $259 = 0, $2590 = 0, $2591 = 0, $2592 = 0, $2593 = 0, $2594 = 0, $2595 = 0, $2596 = 0, $2597 = 0, $2598 = 0, $2599 = 0, $26 = 0, $260 = 0;
var $2600 = 0, $2601 = 0, $2602 = 0, $2603 = 0, $2604 = 0, $2605 = 0, $2606 = 0, $2607 = 0, $2608 = 0, $2609 = 0, $261 = 0, $2610 = 0, $2611 = 0, $2612 = 0, $2613 = 0, $2614 = 0, $2615 = 0, $2616 = 0, $2617 = 0, $2618 = 0;
var $2619 = 0, $262 = 0, $2620 = 0, $2621 = 0, $2622 = 0, $2623 = 0, $2624 = 0, $2625 = 0, $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, $263 = 0, $2630 = 0, $2631 = 0, $2632 = 0, $2633 = 0, $2634 = 0, $2635 = 0, $2636 = 0;
var $2637 = 0, $2638 = 0, $2639 = 0, $264 = 0, $2640 = 0, $2641 = 0, $2642 = 0, $2643 = 0, $2644 = 0, $2645 = 0, $2646 = 0, $2647 = 0, $2648 = 0, $2649 = 0, $265 = 0, $2650 = 0, $2651 = 0, $2652 = 0, $2653 = 0, $2654 = 0;
var $2655 = 0, $2656 = 0, $2657 = 0, $2658 = 0, $2659 = 0, $266 = 0, $2660 = 0, $2661 = 0, $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, $2666 = 0, $2667 = 0, $2668 = 0, $2669 = 0, $267 = 0, $2670 = 0, $2671 = 0, $2672 = 0;
var $2673 = 0, $2674 = 0, $2675 = 0, $2676 = 0, $2677 = 0, $2678 = 0, $2679 = 0, $268 = 0, $2680 = 0, $2681 = 0, $2682 = 0, $2683 = 0, $2684 = 0, $2685 = 0, $2686 = 0, $2687 = 0, $2688 = 0, $2689 = 0, $269 = 0, $2690 = 0;
var $2691 = 0, $2692 = 0, $2693 = 0, $2694 = 0, $2695 = 0, $2696 = 0, $2697 = 0, $2698 = 0, $2699 = 0, $27 = 0, $270 = 0, $2700 = 0, $2701 = 0, $2702 = 0, $2703 = 0, $2704 = 0, $2705 = 0, $2706 = 0, $2707 = 0, $2708 = 0;
var $2709 = 0, $271 = 0, $2710 = 0, $2711 = 0, $2712 = 0, $2713 = 0, $2714 = 0, $2715 = 0, $2716 = 0, $2717 = 0, $2718 = 0, $2719 = 0, $272 = 0, $2720 = 0, $2721 = 0, $2722 = 0, $2723 = 0, $2724 = 0, $2725 = 0, $2726 = 0;
var $2727 = 0, $2728 = 0, $2729 = 0, $273 = 0, $2730 = 0, $2731 = 0, $2732 = 0, $2733 = 0, $2734 = 0, $2735 = 0, $2736 = 0, $2737 = 0, $2738 = 0, $2739 = 0, $274 = 0, $2740 = 0, $2741 = 0, $2742 = 0, $2743 = 0, $2744 = 0;
var $2745 = 0, $2746 = 0, $2747 = 0, $2748 = 0, $2749 = 0, $275 = 0, $2750 = 0, $2751 = 0, $2752 = 0, $2753 = 0, $2754 = 0, $2755 = 0, $2756 = 0, $2757 = 0, $2758 = 0, $2759 = 0, $276 = 0, $2760 = 0, $2761 = 0, $2762 = 0;
var $2763 = 0, $2764 = 0, $2765 = 0, $2766 = 0, $2767 = 0, $2768 = 0, $2769 = 0, $277 = 0, $2770 = 0, $2771 = 0, $2772 = 0, $2773 = 0, $2774 = 0, $2775 = 0, $2776 = 0, $2777 = 0, $2778 = 0, $2779 = 0, $278 = 0, $2780 = 0;
var $2781 = 0, $2782 = 0, $2783 = 0, $2784 = 0, $2785 = 0, $2786 = 0, $2787 = 0, $2788 = 0, $2789 = 0, $279 = 0, $2790 = 0, $2791 = 0, $2792 = 0, $2793 = 0, $2794 = 0, $2795 = 0, $2796 = 0, $2797 = 0, $2798 = 0, $2799 = 0;
var $28 = 0, $280 = 0, $2800 = 0, $2801 = 0, $2802 = 0, $2803 = 0, $2804 = 0, $2805 = 0, $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0, $281 = 0, $2810 = 0, $2811 = 0, $2812 = 0, $2813 = 0, $2814 = 0, $2815 = 0, $2816 = 0;
var $2817 = 0, $2818 = 0, $2819 = 0, $282 = 0, $2820 = 0, $2821 = 0, $2822 = 0, $2823 = 0, $2824 = 0, $2825 = 0, $2826 = 0, $2827 = 0, $2828 = 0, $2829 = 0, $283 = 0, $2830 = 0, $2831 = 0, $2832 = 0, $2833 = 0, $2834 = 0;
var $2835 = 0, $2836 = 0, $2837 = 0, $2838 = 0, $2839 = 0, $284 = 0, $2840 = 0, $2841 = 0, $2842 = 0, $2843 = 0, $2844 = 0, $2845 = 0, $2846 = 0, $2847 = 0, $2848 = 0, $2849 = 0, $285 = 0, $2850 = 0, $2851 = 0, $2852 = 0;
var $2853 = 0, $2854 = 0, $2855 = 0, $2856 = 0, $2857 = 0, $2858 = 0, $2859 = 0, $286 = 0, $2860 = 0, $2861 = 0, $2862 = 0, $2863 = 0, $2864 = 0, $2865 = 0, $2866 = 0, $2867 = 0, $2868 = 0, $2869 = 0, $287 = 0, $2870 = 0;
var $2871 = 0, $2872 = 0, $2873 = 0, $2874 = 0, $2875 = 0, $2876 = 0, $2877 = 0, $2878 = 0, $2879 = 0, $288 = 0, $2880 = 0, $2881 = 0, $2882 = 0, $2883 = 0, $2884 = 0, $2885 = 0, $2886 = 0, $2887 = 0, $2888 = 0, $2889 = 0;
var $289 = 0, $2890 = 0, $2891 = 0, $2892 = 0, $2893 = 0, $2894 = 0, $2895 = 0, $2896 = 0, $2897 = 0, $2898 = 0, $2899 = 0, $29 = 0, $290 = 0, $2900 = 0, $2901 = 0, $2902 = 0, $2903 = 0, $2904 = 0, $2905 = 0, $2906 = 0;
var $2907 = 0, $2908 = 0, $2909 = 0, $291 = 0, $2910 = 0, $2911 = 0, $2912 = 0, $2913 = 0, $2914 = 0, $2915 = 0, $2916 = 0, $2917 = 0, $2918 = 0, $2919 = 0, $292 = 0, $2920 = 0, $2921 = 0, $2922 = 0, $2923 = 0, $2924 = 0;
var $2925 = 0, $2926 = 0, $2927 = 0, $2928 = 0, $2929 = 0, $293 = 0, $2930 = 0, $2931 = 0, $2932 = 0, $2933 = 0, $2934 = 0, $2935 = 0, $2936 = 0, $2937 = 0, $2938 = 0, $2939 = 0, $294 = 0, $2940 = 0, $2941 = 0, $2942 = 0;
var $2943 = 0, $2944 = 0, $2945 = 0, $2946 = 0, $2947 = 0, $2948 = 0, $2949 = 0, $295 = 0, $2950 = 0, $2951 = 0, $2952 = 0, $2953 = 0, $2954 = 0, $2955 = 0, $2956 = 0, $2957 = 0, $2958 = 0, $2959 = 0, $296 = 0, $2960 = 0;
var $2961 = 0, $2962 = 0, $2963 = 0, $2964 = 0, $2965 = 0, $2966 = 0, $2967 = 0, $2968 = 0, $2969 = 0, $297 = 0, $2970 = 0, $2971 = 0, $2972 = 0, $2973 = 0, $2974 = 0, $2975 = 0, $2976 = 0, $2977 = 0, $2978 = 0, $2979 = 0;
var $298 = 0, $2980 = 0, $2981 = 0, $2982 = 0, $2983 = 0, $2984 = 0, $2985 = 0, $2986 = 0, $2987 = 0, $2988 = 0, $2989 = 0, $299 = 0, $2990 = 0, $2991 = 0, $2992 = 0, $2993 = 0, $2994 = 0, $2995 = 0, $2996 = 0, $2997 = 0;
var $2998 = 0, $2999 = 0, $3 = 0, $30 = 0, $300 = 0, $3000 = 0, $3001 = 0, $3002 = 0, $3003 = 0, $3004 = 0, $3005 = 0, $3006 = 0, $3007 = 0, $3008 = 0, $3009 = 0, $301 = 0, $3010 = 0, $3011 = 0, $3012 = 0, $3013 = 0;
var $3014 = 0, $3015 = 0, $3016 = 0, $3017 = 0, $3018 = 0, $3019 = 0, $302 = 0, $3020 = 0, $3021 = 0, $3022 = 0, $3023 = 0, $3024 = 0, $3025 = 0, $3026 = 0, $3027 = 0, $3028 = 0, $3029 = 0, $303 = 0, $3030 = 0, $3031 = 0;
var $3032 = 0, $3033 = 0, $3034 = 0, $3035 = 0, $3036 = 0, $3037 = 0, $3038 = 0, $3039 = 0, $304 = 0, $3040 = 0, $3041 = 0, $3042 = 0, $3043 = 0, $3044 = 0, $3045 = 0, $3046 = 0, $3047 = 0, $3048 = 0, $3049 = 0, $305 = 0;
var $3050 = 0, $3051 = 0, $3052 = 0, $3053 = 0, $3054 = 0, $3055 = 0, $3056 = 0, $3057 = 0, $3058 = 0, $3059 = 0, $306 = 0, $3060 = 0, $3061 = 0, $3062 = 0, $3063 = 0, $3064 = 0, $3065 = 0, $3066 = 0, $3067 = 0, $3068 = 0;
var $3069 = 0, $307 = 0, $3070 = 0, $3071 = 0, $3072 = 0, $3073 = 0, $3074 = 0, $3075 = 0, $3076 = 0, $3077 = 0, $3078 = 0, $3079 = 0, $308 = 0, $3080 = 0, $3081 = 0, $3082 = 0, $3083 = 0, $3084 = 0, $3085 = 0, $3086 = 0;
var $3087 = 0, $3088 = 0, $3089 = 0, $309 = 0, $3090 = 0, $3091 = 0, $3092 = 0, $3093 = 0, $3094 = 0, $3095 = 0, $3096 = 0, $3097 = 0, $3098 = 0, $3099 = 0, $31 = 0, $310 = 0, $3100 = 0, $3101 = 0, $3102 = 0, $3103 = 0;
var $3104 = 0, $3105 = 0, $3106 = 0, $3107 = 0, $3108 = 0, $3109 = 0, $311 = 0, $3110 = 0, $3111 = 0, $3112 = 0, $3113 = 0, $3114 = 0, $3115 = 0, $3116 = 0, $3117 = 0, $3118 = 0, $3119 = 0, $312 = 0, $3120 = 0, $3121 = 0;
var $3122 = 0, $3123 = 0, $3124 = 0, $3125 = 0, $3126 = 0, $3127 = 0, $3128 = 0, $3129 = 0, $313 = 0, $3130 = 0, $3131 = 0, $3132 = 0, $3133 = 0, $3134 = 0, $3135 = 0, $3136 = 0, $3137 = 0, $3138 = 0, $3139 = 0, $314 = 0;
var $3140 = 0, $3141 = 0, $3142 = 0, $3143 = 0, $3144 = 0, $3145 = 0, $3146 = 0, $3147 = 0, $3148 = 0, $3149 = 0, $315 = 0, $3150 = 0, $3151 = 0, $3152 = 0, $3153 = 0, $3154 = 0, $3155 = 0, $3156 = 0, $3157 = 0, $3158 = 0;
var $3159 = 0, $316 = 0, $3160 = 0, $3161 = 0, $3162 = 0, $3163 = 0, $3164 = 0, $3165 = 0, $3166 = 0, $3167 = 0, $3168 = 0, $3169 = 0, $317 = 0, $3170 = 0, $3171 = 0, $3172 = 0, $3173 = 0, $3174 = 0, $3175 = 0, $3176 = 0;
var $3177 = 0, $3178 = 0, $3179 = 0, $318 = 0, $3180 = 0, $3181 = 0, $3182 = 0, $3183 = 0, $3184 = 0, $3185 = 0, $3186 = 0, $3187 = 0, $3188 = 0, $3189 = 0, $319 = 0, $3190 = 0, $3191 = 0, $3192 = 0, $3193 = 0, $3194 = 0;
var $3195 = 0, $3196 = 0, $3197 = 0, $3198 = 0, $3199 = 0, $32 = 0, $320 = 0, $3200 = 0, $3201 = 0, $3202 = 0, $3203 = 0, $3204 = 0, $3205 = 0, $3206 = 0, $3207 = 0, $3208 = 0, $3209 = 0, $321 = 0, $3210 = 0, $3211 = 0;
var $3212 = 0, $3213 = 0, $3214 = 0, $3215 = 0, $3216 = 0, $3217 = 0, $3218 = 0, $3219 = 0, $322 = 0, $3220 = 0, $3221 = 0, $3222 = 0, $3223 = 0, $3224 = 0, $3225 = 0, $3226 = 0, $3227 = 0, $3228 = 0, $3229 = 0, $323 = 0;
var $3230 = 0, $3231 = 0, $3232 = 0, $3233 = 0, $3234 = 0, $3235 = 0, $3236 = 0, $3237 = 0, $3238 = 0, $3239 = 0, $324 = 0, $3240 = 0, $3241 = 0, $3242 = 0, $3243 = 0, $3244 = 0, $3245 = 0, $3246 = 0, $3247 = 0, $3248 = 0;
var $3249 = 0, $325 = 0, $3250 = 0, $3251 = 0, $3252 = 0, $3253 = 0, $3254 = 0, $3255 = 0, $3256 = 0, $3257 = 0, $3258 = 0, $3259 = 0, $326 = 0, $3260 = 0, $3261 = 0, $3262 = 0, $3263 = 0, $3264 = 0, $3265 = 0, $3266 = 0;
var $3267 = 0, $3268 = 0, $3269 = 0, $327 = 0, $3270 = 0, $3271 = 0, $3272 = 0, $3273 = 0, $3274 = 0, $3275 = 0, $3276 = 0, $3277 = 0, $3278 = 0, $3279 = 0, $328 = 0, $3280 = 0, $3281 = 0, $3282 = 0, $3283 = 0, $3284 = 0;
var $3285 = 0, $3286 = 0, $3287 = 0, $3288 = 0, $3289 = 0, $329 = 0, $3290 = 0, $3291 = 0, $3292 = 0, $3293 = 0, $3294 = 0, $3295 = 0, $3296 = 0, $3297 = 0, $3298 = 0, $3299 = 0, $33 = 0, $330 = 0, $3300 = 0, $3301 = 0;
var $3302 = 0, $3303 = 0, $3304 = 0, $3305 = 0, $3306 = 0, $3307 = 0, $3308 = 0, $3309 = 0, $331 = 0, $3310 = 0, $3311 = 0, $3312 = 0, $3313 = 0, $3314 = 0, $3315 = 0, $3316 = 0, $3317 = 0, $3318 = 0, $3319 = 0, $332 = 0;
var $3320 = 0, $3321 = 0, $3322 = 0, $3323 = 0, $3324 = 0, $3325 = 0, $3326 = 0, $3327 = 0, $3328 = 0, $3329 = 0, $333 = 0, $3330 = 0, $3331 = 0, $3332 = 0, $3333 = 0, $3334 = 0, $3335 = 0, $3336 = 0, $3337 = 0, $3338 = 0;
var $3339 = 0, $334 = 0, $3340 = 0, $3341 = 0, $3342 = 0, $3343 = 0, $3344 = 0, $3345 = 0, $3346 = 0, $3347 = 0, $3348 = 0, $3349 = 0, $335 = 0, $3350 = 0, $3351 = 0, $3352 = 0, $3353 = 0, $3354 = 0, $3355 = 0, $3356 = 0;
var $3357 = 0, $3358 = 0, $3359 = 0, $336 = 0, $3360 = 0, $3361 = 0, $3362 = 0, $3363 = 0, $3364 = 0, $3365 = 0, $3366 = 0, $3367 = 0, $3368 = 0, $3369 = 0, $337 = 0, $3370 = 0, $3371 = 0, $3372 = 0, $3373 = 0, $3374 = 0;
var $3375 = 0, $3376 = 0, $3377 = 0, $3378 = 0, $3379 = 0, $338 = 0, $3380 = 0, $3381 = 0, $3382 = 0, $3383 = 0, $3384 = 0, $3385 = 0, $3386 = 0, $3387 = 0, $3388 = 0, $3389 = 0, $339 = 0, $3390 = 0, $3391 = 0, $3392 = 0;
var $3393 = 0, $3394 = 0, $3395 = 0, $3396 = 0, $3397 = 0, $3398 = 0, $3399 = 0, $34 = 0, $340 = 0, $3400 = 0, $3401 = 0, $3402 = 0, $3403 = 0, $3404 = 0, $3405 = 0, $3406 = 0, $3407 = 0, $3408 = 0, $3409 = 0, $341 = 0;
var $3410 = 0, $3411 = 0, $3412 = 0, $3413 = 0, $3414 = 0, $3415 = 0, $3416 = 0, $3417 = 0, $3418 = 0, $3419 = 0, $342 = 0, $3420 = 0, $3421 = 0, $3422 = 0, $3423 = 0, $3424 = 0, $3425 = 0, $3426 = 0, $3427 = 0, $3428 = 0;
var $3429 = 0, $343 = 0, $3430 = 0, $3431 = 0, $3432 = 0, $3433 = 0, $3434 = 0, $3435 = 0, $3436 = 0, $3437 = 0, $3438 = 0, $3439 = 0, $344 = 0, $3440 = 0, $3441 = 0, $3442 = 0, $3443 = 0, $3444 = 0, $3445 = 0, $3446 = 0;
var $3447 = 0, $3448 = 0, $3449 = 0, $345 = 0, $3450 = 0, $3451 = 0, $3452 = 0, $3453 = 0, $3454 = 0, $3455 = 0, $3456 = 0, $3457 = 0, $3458 = 0, $3459 = 0, $346 = 0, $3460 = 0, $3461 = 0, $3462 = 0, $3463 = 0, $3464 = 0;
var $3465 = 0, $3466 = 0, $3467 = 0, $3468 = 0, $3469 = 0, $347 = 0, $3470 = 0, $3471 = 0, $3472 = 0, $3473 = 0, $3474 = 0, $3475 = 0, $3476 = 0, $3477 = 0, $3478 = 0, $3479 = 0, $348 = 0, $3480 = 0, $3481 = 0, $3482 = 0;
var $3483 = 0, $3484 = 0, $3485 = 0, $3486 = 0, $3487 = 0, $3488 = 0, $3489 = 0, $349 = 0, $3490 = 0, $3491 = 0, $3492 = 0, $3493 = 0, $3494 = 0, $3495 = 0, $3496 = 0, $3497 = 0, $3498 = 0, $3499 = 0, $35 = 0, $350 = 0;
var $3500 = 0, $3501 = 0, $3502 = 0, $3503 = 0, $3504 = 0, $3505 = 0, $3506 = 0, $3507 = 0, $3508 = 0, $3509 = 0, $351 = 0, $3510 = 0, $3511 = 0, $3512 = 0, $3513 = 0, $3514 = 0, $3515 = 0, $3516 = 0, $3517 = 0, $3518 = 0;
var $3519 = 0, $352 = 0, $3520 = 0, $3521 = 0, $3522 = 0, $3523 = 0, $3524 = 0, $3525 = 0, $3526 = 0, $3527 = 0, $3528 = 0, $3529 = 0, $353 = 0, $3530 = 0, $3531 = 0, $3532 = 0, $3533 = 0, $3534 = 0, $3535 = 0, $3536 = 0;
var $3537 = 0, $3538 = 0, $3539 = 0, $354 = 0, $3540 = 0, $3541 = 0, $3542 = 0, $3543 = 0, $3544 = 0, $3545 = 0, $3546 = 0, $3547 = 0, $3548 = 0, $3549 = 0, $355 = 0, $3550 = 0, $3551 = 0, $3552 = 0, $3553 = 0, $3554 = 0;
var $3555 = 0, $3556 = 0, $3557 = 0, $3558 = 0, $3559 = 0, $356 = 0, $3560 = 0, $3561 = 0, $3562 = 0, $3563 = 0, $3564 = 0, $3565 = 0, $3566 = 0, $3567 = 0, $3568 = 0, $3569 = 0, $357 = 0, $3570 = 0, $3571 = 0, $3572 = 0;
var $3573 = 0, $3574 = 0, $3575 = 0, $3576 = 0, $3577 = 0, $3578 = 0, $3579 = 0, $358 = 0, $3580 = 0, $3581 = 0, $3582 = 0, $3583 = 0, $3584 = 0, $3585 = 0, $3586 = 0, $3587 = 0, $3588 = 0, $3589 = 0, $359 = 0, $3590 = 0;
var $3591 = 0, $3592 = 0, $3593 = 0, $3594 = 0, $3595 = 0, $3596 = 0, $3597 = 0, $3598 = 0, $3599 = 0, $36 = 0, $360 = 0, $3600 = 0, $3601 = 0, $3602 = 0, $3603 = 0, $3604 = 0, $3605 = 0, $3606 = 0, $3607 = 0, $3608 = 0;
var $3609 = 0, $361 = 0, $3610 = 0, $3611 = 0, $3612 = 0, $3613 = 0, $3614 = 0, $3615 = 0, $3616 = 0, $3617 = 0, $3618 = 0, $3619 = 0, $362 = 0, $3620 = 0, $3621 = 0, $3622 = 0, $3623 = 0, $3624 = 0, $3625 = 0, $3626 = 0;
var $3627 = 0, $3628 = 0, $3629 = 0, $363 = 0, $3630 = 0, $3631 = 0, $3632 = 0, $3633 = 0, $3634 = 0, $3635 = 0, $3636 = 0, $3637 = 0, $3638 = 0, $3639 = 0, $364 = 0, $3640 = 0, $3641 = 0, $3642 = 0, $3643 = 0, $3644 = 0;
var $3645 = 0, $3646 = 0, $3647 = 0, $3648 = 0, $3649 = 0, $365 = 0, $3650 = 0, $3651 = 0, $3652 = 0, $3653 = 0, $3654 = 0, $3655 = 0, $3656 = 0, $3657 = 0, $3658 = 0, $3659 = 0, $366 = 0, $3660 = 0, $3661 = 0, $3662 = 0;
var $3663 = 0, $3664 = 0, $3665 = 0, $3666 = 0, $3667 = 0, $3668 = 0, $3669 = 0, $367 = 0, $3670 = 0, $3671 = 0, $3672 = 0, $3673 = 0, $3674 = 0, $3675 = 0, $3676 = 0, $3677 = 0, $3678 = 0, $3679 = 0, $368 = 0, $3680 = 0;
var $3681 = 0, $3682 = 0, $3683 = 0, $3684 = 0, $3685 = 0, $3686 = 0, $3687 = 0, $3688 = 0, $3689 = 0, $369 = 0, $3690 = 0, $3691 = 0, $3692 = 0, $3693 = 0, $3694 = 0, $3695 = 0, $3696 = 0, $3697 = 0, $3698 = 0, $3699 = 0;
var $37 = 0, $370 = 0, $3700 = 0, $3701 = 0, $3702 = 0, $3703 = 0, $3704 = 0, $3705 = 0, $3706 = 0, $3707 = 0, $3708 = 0, $3709 = 0, $371 = 0, $3710 = 0, $3711 = 0, $3712 = 0, $3713 = 0, $3714 = 0, $3715 = 0, $3716 = 0;
var $3717 = 0, $3718 = 0, $3719 = 0, $372 = 0, $3720 = 0, $3721 = 0, $3722 = 0, $3723 = 0, $3724 = 0, $3725 = 0, $3726 = 0, $3727 = 0, $3728 = 0, $3729 = 0, $373 = 0, $3730 = 0, $3731 = 0, $3732 = 0, $3733 = 0, $3734 = 0;
var $3735 = 0, $3736 = 0, $3737 = 0, $3738 = 0, $3739 = 0, $374 = 0, $3740 = 0, $3741 = 0, $3742 = 0, $3743 = 0, $3744 = 0, $3745 = 0, $3746 = 0, $3747 = 0, $3748 = 0, $3749 = 0, $375 = 0, $3750 = 0, $3751 = 0, $3752 = 0;
var $3753 = 0, $3754 = 0, $3755 = 0, $3756 = 0, $3757 = 0, $3758 = 0, $3759 = 0, $376 = 0, $3760 = 0, $3761 = 0, $3762 = 0, $3763 = 0, $3764 = 0, $3765 = 0, $3766 = 0, $3767 = 0, $3768 = 0, $3769 = 0, $377 = 0, $3770 = 0;
var $3771 = 0, $3772 = 0, $3773 = 0, $3774 = 0, $3775 = 0, $3776 = 0, $3777 = 0, $3778 = 0, $3779 = 0, $378 = 0, $3780 = 0, $3781 = 0, $3782 = 0, $3783 = 0, $3784 = 0, $3785 = 0, $3786 = 0, $3787 = 0, $3788 = 0, $3789 = 0;
var $379 = 0, $3790 = 0, $3791 = 0, $3792 = 0, $3793 = 0, $3794 = 0, $3795 = 0, $3796 = 0, $3797 = 0, $3798 = 0, $3799 = 0, $38 = 0, $380 = 0, $3800 = 0, $3801 = 0, $3802 = 0, $3803 = 0, $3804 = 0, $3805 = 0, $3806 = 0;
var $3807 = 0, $3808 = 0, $3809 = 0, $381 = 0, $3810 = 0, $3811 = 0, $3812 = 0, $3813 = 0, $3814 = 0, $3815 = 0, $3816 = 0, $3817 = 0, $3818 = 0, $3819 = 0, $382 = 0, $3820 = 0, $3821 = 0, $3822 = 0, $3823 = 0, $3824 = 0;
var $3825 = 0, $3826 = 0, $3827 = 0, $3828 = 0, $3829 = 0, $383 = 0, $3830 = 0, $3831 = 0, $3832 = 0, $3833 = 0, $3834 = 0, $3835 = 0, $3836 = 0, $3837 = 0, $3838 = 0, $3839 = 0, $384 = 0, $3840 = 0, $3841 = 0, $3842 = 0;
var $3843 = 0, $3844 = 0, $3845 = 0, $3846 = 0, $3847 = 0, $3848 = 0, $3849 = 0, $385 = 0, $3850 = 0, $3851 = 0, $3852 = 0, $3853 = 0, $3854 = 0, $3855 = 0, $3856 = 0, $3857 = 0, $3858 = 0, $3859 = 0, $386 = 0, $3860 = 0;
var $3861 = 0, $3862 = 0, $3863 = 0, $3864 = 0, $3865 = 0, $3866 = 0, $3867 = 0, $3868 = 0, $3869 = 0, $387 = 0, $3870 = 0, $3871 = 0, $3872 = 0, $3873 = 0, $3874 = 0, $3875 = 0, $3876 = 0, $3877 = 0, $3878 = 0, $3879 = 0;
var $388 = 0, $3880 = 0, $3881 = 0, $3882 = 0, $3883 = 0, $3884 = 0, $3885 = 0, $3886 = 0, $3887 = 0, $3888 = 0, $3889 = 0, $389 = 0, $3890 = 0, $3891 = 0, $3892 = 0, $3893 = 0, $3894 = 0, $3895 = 0, $3896 = 0, $3897 = 0;
var $3898 = 0, $3899 = 0, $39 = 0, $390 = 0, $3900 = 0, $3901 = 0, $3902 = 0, $3903 = 0, $3904 = 0, $3905 = 0, $3906 = 0, $3907 = 0, $3908 = 0, $3909 = 0, $391 = 0, $3910 = 0, $3911 = 0, $3912 = 0, $3913 = 0, $3914 = 0;
var $3915 = 0, $3916 = 0, $3917 = 0, $3918 = 0, $3919 = 0, $392 = 0, $3920 = 0, $3921 = 0, $3922 = 0, $3923 = 0, $3924 = 0, $3925 = 0, $3926 = 0, $3927 = 0, $3928 = 0, $3929 = 0, $393 = 0, $3930 = 0, $3931 = 0, $3932 = 0;
var $3933 = 0, $3934 = 0, $3935 = 0, $3936 = 0, $3937 = 0, $3938 = 0, $3939 = 0, $394 = 0, $3940 = 0, $3941 = 0, $3942 = 0, $3943 = 0, $3944 = 0, $3945 = 0, $3946 = 0, $3947 = 0, $3948 = 0, $3949 = 0, $395 = 0, $3950 = 0;
var $3951 = 0, $3952 = 0, $3953 = 0, $3954 = 0, $3955 = 0, $3956 = 0, $3957 = 0, $3958 = 0, $3959 = 0, $396 = 0, $3960 = 0, $3961 = 0, $3962 = 0, $3963 = 0, $3964 = 0, $3965 = 0, $3966 = 0, $3967 = 0, $3968 = 0, $3969 = 0;
var $397 = 0, $3970 = 0, $3971 = 0, $3972 = 0, $3973 = 0, $3974 = 0, $3975 = 0, $3976 = 0, $3977 = 0, $3978 = 0, $3979 = 0, $398 = 0, $3980 = 0, $3981 = 0, $3982 = 0, $3983 = 0, $3984 = 0, $3985 = 0, $3986 = 0, $3987 = 0;
var $3988 = 0, $3989 = 0, $399 = 0, $3990 = 0, $3991 = 0, $3992 = 0, $3993 = 0, $3994 = 0, $3995 = 0, $3996 = 0, $3997 = 0, $3998 = 0, $3999 = 0, $4 = 0, $40 = 0, $400 = 0, $4000 = 0, $4001 = 0, $4002 = 0, $4003 = 0;
var $4004 = 0, $4005 = 0, $4006 = 0, $4007 = 0, $4008 = 0, $4009 = 0, $401 = 0, $4010 = 0, $4011 = 0, $4012 = 0, $4013 = 0, $4014 = 0, $4015 = 0, $4016 = 0, $4017 = 0, $4018 = 0, $4019 = 0, $402 = 0, $4020 = 0, $4021 = 0;
var $4022 = 0, $4023 = 0, $4024 = 0, $4025 = 0, $4026 = 0, $4027 = 0, $4028 = 0, $4029 = 0, $403 = 0, $4030 = 0, $4031 = 0, $4032 = 0, $4033 = 0, $4034 = 0, $4035 = 0, $4036 = 0, $4037 = 0, $4038 = 0, $4039 = 0, $404 = 0;
var $4040 = 0, $4041 = 0, $4042 = 0, $4043 = 0, $4044 = 0, $4045 = 0, $4046 = 0, $4047 = 0, $4048 = 0, $4049 = 0, $405 = 0, $4050 = 0, $4051 = 0, $4052 = 0, $4053 = 0, $4054 = 0, $4055 = 0, $4056 = 0, $4057 = 0, $4058 = 0;
var $4059 = 0, $406 = 0, $4060 = 0, $4061 = 0, $4062 = 0, $4063 = 0, $4064 = 0, $4065 = 0, $4066 = 0, $4067 = 0, $4068 = 0, $4069 = 0, $407 = 0, $4070 = 0, $4071 = 0, $4072 = 0, $4073 = 0, $4074 = 0, $4075 = 0, $4076 = 0;
var $4077 = 0, $4078 = 0, $4079 = 0, $408 = 0, $4080 = 0, $4081 = 0, $4082 = 0, $4083 = 0, $4084 = 0, $4085 = 0, $4086 = 0, $4087 = 0, $4088 = 0, $4089 = 0, $409 = 0, $4090 = 0, $4091 = 0, $4092 = 0, $4093 = 0, $4094 = 0;
var $4095 = 0, $4096 = 0, $4097 = 0, $4098 = 0, $4099 = 0, $41 = 0, $410 = 0, $4100 = 0, $4101 = 0, $4102 = 0, $4103 = 0, $4104 = 0, $4105 = 0, $4106 = 0, $4107 = 0, $4108 = 0, $4109 = 0, $411 = 0, $4110 = 0, $4111 = 0;
var $4112 = 0, $4113 = 0, $4114 = 0, $4115 = 0, $4116 = 0, $4117 = 0, $4118 = 0, $4119 = 0, $412 = 0, $4120 = 0, $4121 = 0, $4122 = 0, $4123 = 0, $4124 = 0, $4125 = 0, $4126 = 0, $4127 = 0, $4128 = 0, $4129 = 0, $413 = 0;
var $4130 = 0, $4131 = 0, $4132 = 0, $4133 = 0, $4134 = 0, $4135 = 0, $4136 = 0, $4137 = 0, $4138 = 0, $4139 = 0, $414 = 0, $4140 = 0, $4141 = 0, $4142 = 0, $4143 = 0, $4144 = 0, $4145 = 0, $4146 = 0, $4147 = 0, $4148 = 0;
var $4149 = 0, $415 = 0, $4150 = 0, $4151 = 0, $4152 = 0, $4153 = 0, $4154 = 0, $4155 = 0, $4156 = 0, $4157 = 0, $4158 = 0, $4159 = 0, $416 = 0, $4160 = 0, $4161 = 0, $4162 = 0, $4163 = 0, $4164 = 0, $4165 = 0, $4166 = 0;
var $4167 = 0, $4168 = 0, $4169 = 0, $417 = 0, $4170 = 0, $4171 = 0, $4172 = 0, $4173 = 0, $4174 = 0, $4175 = 0, $4176 = 0, $4177 = 0, $4178 = 0, $4179 = 0, $418 = 0, $4180 = 0, $4181 = 0, $4182 = 0, $4183 = 0, $4184 = 0;
var $4185 = 0, $4186 = 0, $4187 = 0, $4188 = 0, $4189 = 0, $419 = 0, $4190 = 0, $4191 = 0, $4192 = 0, $4193 = 0, $4194 = 0, $4195 = 0, $4196 = 0, $4197 = 0, $4198 = 0, $4199 = 0, $42 = 0, $420 = 0, $4200 = 0, $4201 = 0;
var $4202 = 0, $4203 = 0, $4204 = 0, $4205 = 0, $4206 = 0, $4207 = 0, $4208 = 0, $4209 = 0, $421 = 0, $4210 = 0, $4211 = 0, $4212 = 0, $4213 = 0, $4214 = 0, $4215 = 0, $4216 = 0, $4217 = 0, $4218 = 0, $4219 = 0, $422 = 0;
var $4220 = 0, $4221 = 0, $4222 = 0, $4223 = 0, $4224 = 0, $4225 = 0, $4226 = 0, $4227 = 0, $4228 = 0, $4229 = 0, $423 = 0, $4230 = 0, $4231 = 0, $4232 = 0, $4233 = 0, $4234 = 0, $4235 = 0, $4236 = 0, $4237 = 0, $4238 = 0;
var $4239 = 0, $424 = 0, $4240 = 0, $4241 = 0, $4242 = 0, $4243 = 0, $4244 = 0, $4245 = 0, $4246 = 0, $4247 = 0, $4248 = 0, $4249 = 0, $425 = 0, $4250 = 0, $4251 = 0, $4252 = 0, $4253 = 0, $4254 = 0, $4255 = 0, $4256 = 0;
var $4257 = 0, $4258 = 0, $4259 = 0, $426 = 0, $4260 = 0, $4261 = 0, $4262 = 0, $4263 = 0, $4264 = 0, $4265 = 0, $4266 = 0, $4267 = 0, $4268 = 0, $4269 = 0, $427 = 0, $4270 = 0, $4271 = 0, $4272 = 0, $4273 = 0, $4274 = 0;
var $4275 = 0, $4276 = 0, $4277 = 0, $4278 = 0, $4279 = 0, $428 = 0, $4280 = 0, $4281 = 0, $4282 = 0, $4283 = 0, $4284 = 0, $4285 = 0, $4286 = 0, $4287 = 0, $4288 = 0, $4289 = 0, $429 = 0, $4290 = 0, $4291 = 0, $4292 = 0;
var $4293 = 0, $4294 = 0, $4295 = 0, $4296 = 0, $4297 = 0, $4298 = 0, $4299 = 0, $43 = 0, $430 = 0, $4300 = 0, $4301 = 0, $4302 = 0, $4303 = 0, $4304 = 0, $4305 = 0, $4306 = 0, $4307 = 0, $4308 = 0, $4309 = 0, $431 = 0;
var $4310 = 0, $4311 = 0, $4312 = 0, $4313 = 0, $4314 = 0, $4315 = 0, $4316 = 0, $4317 = 0, $4318 = 0, $4319 = 0, $432 = 0, $4320 = 0, $4321 = 0, $4322 = 0, $4323 = 0, $4324 = 0, $4325 = 0, $4326 = 0, $4327 = 0, $4328 = 0;
var $4329 = 0, $433 = 0, $4330 = 0, $4331 = 0, $4332 = 0, $4333 = 0, $4334 = 0, $4335 = 0, $4336 = 0, $4337 = 0, $4338 = 0, $4339 = 0, $434 = 0, $4340 = 0, $4341 = 0, $4342 = 0, $4343 = 0, $4344 = 0, $4345 = 0, $4346 = 0;
var $4347 = 0, $4348 = 0, $4349 = 0, $435 = 0, $4350 = 0, $4351 = 0, $4352 = 0, $4353 = 0, $4354 = 0, $4355 = 0, $4356 = 0, $4357 = 0, $4358 = 0, $4359 = 0, $436 = 0, $4360 = 0, $4361 = 0, $4362 = 0, $4363 = 0, $4364 = 0;
var $4365 = 0, $4366 = 0, $4367 = 0, $4368 = 0, $4369 = 0, $437 = 0, $4370 = 0, $4371 = 0, $4372 = 0, $4373 = 0, $4374 = 0, $4375 = 0, $4376 = 0, $4377 = 0, $4378 = 0, $4379 = 0, $438 = 0, $4380 = 0, $4381 = 0, $4382 = 0;
var $4383 = 0, $4384 = 0, $4385 = 0, $4386 = 0, $4387 = 0, $4388 = 0, $4389 = 0, $439 = 0, $4390 = 0, $4391 = 0, $4392 = 0, $4393 = 0, $4394 = 0, $4395 = 0, $4396 = 0, $4397 = 0, $4398 = 0, $4399 = 0, $44 = 0, $440 = 0;
var $4400 = 0, $4401 = 0, $4402 = 0, $4403 = 0, $4404 = 0, $4405 = 0, $4406 = 0, $4407 = 0, $4408 = 0, $4409 = 0, $441 = 0, $4410 = 0, $4411 = 0, $4412 = 0, $4413 = 0, $4414 = 0, $4415 = 0, $4416 = 0, $4417 = 0, $4418 = 0;
var $4419 = 0, $442 = 0, $4420 = 0, $4421 = 0, $4422 = 0, $4423 = 0, $4424 = 0, $4425 = 0, $4426 = 0, $4427 = 0, $4428 = 0, $4429 = 0, $443 = 0, $4430 = 0, $4431 = 0, $4432 = 0, $4433 = 0, $4434 = 0, $4435 = 0, $4436 = 0;
var $4437 = 0, $4438 = 0, $4439 = 0, $444 = 0, $4440 = 0, $4441 = 0, $4442 = 0, $4443 = 0, $4444 = 0, $4445 = 0, $4446 = 0, $4447 = 0, $4448 = 0, $4449 = 0, $445 = 0, $4450 = 0, $4451 = 0, $4452 = 0, $4453 = 0, $4454 = 0;
var $4455 = 0, $4456 = 0, $4457 = 0, $4458 = 0, $4459 = 0, $446 = 0, $4460 = 0, $4461 = 0, $4462 = 0, $4463 = 0, $4464 = 0, $4465 = 0, $4466 = 0, $4467 = 0, $4468 = 0, $4469 = 0, $447 = 0, $4470 = 0, $4471 = 0, $4472 = 0;
var $4473 = 0, $4474 = 0, $4475 = 0, $4476 = 0, $4477 = 0, $4478 = 0, $4479 = 0, $448 = 0, $4480 = 0, $4481 = 0, $4482 = 0, $4483 = 0, $4484 = 0, $4485 = 0, $4486 = 0, $4487 = 0, $4488 = 0, $4489 = 0, $449 = 0, $4490 = 0;
var $4491 = 0, $4492 = 0, $4493 = 0, $4494 = 0, $4495 = 0, $4496 = 0, $4497 = 0, $4498 = 0, $4499 = 0, $45 = 0, $450 = 0, $4500 = 0, $4501 = 0, $4502 = 0, $4503 = 0, $4504 = 0, $4505 = 0, $4506 = 0, $4507 = 0, $4508 = 0;
var $4509 = 0, $451 = 0, $4510 = 0, $4511 = 0, $4512 = 0, $4513 = 0, $4514 = 0, $4515 = 0, $4516 = 0, $4517 = 0, $4518 = 0, $4519 = 0, $452 = 0, $4520 = 0, $4521 = 0, $4522 = 0, $4523 = 0, $4524 = 0, $4525 = 0, $4526 = 0;
var $4527 = 0, $4528 = 0, $4529 = 0, $453 = 0, $4530 = 0, $4531 = 0, $4532 = 0, $4533 = 0, $4534 = 0, $4535 = 0, $4536 = 0, $4537 = 0, $4538 = 0, $4539 = 0, $454 = 0, $4540 = 0, $4541 = 0, $4542 = 0, $4543 = 0, $4544 = 0;
var $4545 = 0, $4546 = 0, $4547 = 0, $4548 = 0, $4549 = 0, $455 = 0, $4550 = 0, $4551 = 0, $4552 = 0, $4553 = 0, $4554 = 0, $4555 = 0, $4556 = 0, $4557 = 0, $4558 = 0, $4559 = 0, $456 = 0, $4560 = 0, $4561 = 0, $4562 = 0;
var $4563 = 0, $4564 = 0, $4565 = 0, $4566 = 0, $4567 = 0, $4568 = 0, $4569 = 0, $457 = 0, $4570 = 0, $4571 = 0, $4572 = 0, $4573 = 0, $4574 = 0, $4575 = 0, $4576 = 0, $4577 = 0, $4578 = 0, $4579 = 0, $458 = 0, $4580 = 0;
var $4581 = 0, $4582 = 0, $4583 = 0, $4584 = 0, $4585 = 0, $4586 = 0, $4587 = 0, $4588 = 0, $4589 = 0, $459 = 0, $4590 = 0, $4591 = 0, $4592 = 0, $4593 = 0, $4594 = 0, $4595 = 0, $4596 = 0, $4597 = 0, $4598 = 0, $4599 = 0;
var $46 = 0, $460 = 0, $4600 = 0, $4601 = 0, $4602 = 0, $4603 = 0, $4604 = 0, $4605 = 0, $4606 = 0, $4607 = 0, $4608 = 0, $4609 = 0, $461 = 0, $4610 = 0, $4611 = 0, $4612 = 0, $4613 = 0, $4614 = 0, $4615 = 0, $4616 = 0;
var $4617 = 0, $4618 = 0, $4619 = 0, $462 = 0, $4620 = 0, $4621 = 0, $4622 = 0, $4623 = 0, $4624 = 0, $4625 = 0, $4626 = 0, $4627 = 0, $4628 = 0, $4629 = 0, $463 = 0, $4630 = 0, $4631 = 0, $4632 = 0, $4633 = 0, $4634 = 0;
var $4635 = 0, $4636 = 0, $4637 = 0, $4638 = 0, $4639 = 0, $464 = 0, $4640 = 0, $4641 = 0, $4642 = 0, $4643 = 0, $4644 = 0, $4645 = 0, $4646 = 0, $4647 = 0, $4648 = 0, $4649 = 0, $465 = 0, $4650 = 0, $4651 = 0, $4652 = 0;
var $4653 = 0, $4654 = 0, $4655 = 0, $4656 = 0, $4657 = 0, $4658 = 0, $4659 = 0, $466 = 0, $4660 = 0, $4661 = 0, $4662 = 0, $4663 = 0, $4664 = 0, $4665 = 0, $4666 = 0, $4667 = 0, $4668 = 0, $4669 = 0, $467 = 0, $4670 = 0;
var $4671 = 0, $4672 = 0, $4673 = 0, $4674 = 0, $4675 = 0, $4676 = 0, $4677 = 0, $4678 = 0, $4679 = 0, $468 = 0, $4680 = 0, $4681 = 0, $4682 = 0, $4683 = 0, $4684 = 0, $4685 = 0, $4686 = 0, $4687 = 0, $4688 = 0, $4689 = 0;
var $469 = 0, $4690 = 0, $4691 = 0, $4692 = 0, $4693 = 0, $4694 = 0, $4695 = 0, $4696 = 0, $4697 = 0, $4698 = 0, $4699 = 0, $47 = 0, $470 = 0, $4700 = 0, $4701 = 0, $4702 = 0, $4703 = 0, $4704 = 0, $4705 = 0, $4706 = 0;
var $4707 = 0, $4708 = 0, $4709 = 0, $471 = 0, $4710 = 0, $4711 = 0, $4712 = 0, $4713 = 0, $4714 = 0, $4715 = 0, $4716 = 0, $4717 = 0, $4718 = 0, $4719 = 0, $472 = 0, $4720 = 0, $4721 = 0, $4722 = 0, $4723 = 0, $4724 = 0;
var $4725 = 0, $4726 = 0, $4727 = 0, $4728 = 0, $4729 = 0, $473 = 0, $4730 = 0, $4731 = 0, $4732 = 0, $4733 = 0, $4734 = 0, $4735 = 0, $4736 = 0, $4737 = 0, $4738 = 0, $4739 = 0, $474 = 0, $4740 = 0, $4741 = 0, $4742 = 0;
var $4743 = 0, $4744 = 0, $4745 = 0, $4746 = 0, $4747 = 0, $4748 = 0, $4749 = 0, $475 = 0, $4750 = 0, $4751 = 0, $4752 = 0, $4753 = 0, $4754 = 0, $4755 = 0, $4756 = 0, $4757 = 0, $4758 = 0, $4759 = 0, $476 = 0, $4760 = 0;
var $4761 = 0, $4762 = 0, $4763 = 0, $4764 = 0, $4765 = 0, $4766 = 0, $4767 = 0, $4768 = 0, $4769 = 0, $477 = 0, $4770 = 0, $4771 = 0, $4772 = 0, $4773 = 0, $4774 = 0, $4775 = 0, $4776 = 0, $4777 = 0, $4778 = 0, $4779 = 0;
var $478 = 0, $4780 = 0, $4781 = 0, $4782 = 0, $4783 = 0, $4784 = 0, $4785 = 0, $4786 = 0, $4787 = 0, $4788 = 0, $4789 = 0, $479 = 0, $4790 = 0, $4791 = 0, $4792 = 0, $4793 = 0, $4794 = 0, $4795 = 0, $4796 = 0, $4797 = 0;
var $4798 = 0, $4799 = 0, $48 = 0, $480 = 0, $4800 = 0, $4801 = 0, $4802 = 0, $4803 = 0, $4804 = 0, $4805 = 0, $4806 = 0, $4807 = 0, $4808 = 0, $4809 = 0, $481 = 0, $4810 = 0, $4811 = 0, $4812 = 0, $4813 = 0, $4814 = 0;
var $4815 = 0, $4816 = 0, $4817 = 0, $4818 = 0, $4819 = 0, $482 = 0, $4820 = 0, $4821 = 0, $4822 = 0, $4823 = 0, $4824 = 0, $4825 = 0, $4826 = 0, $4827 = 0, $4828 = 0, $4829 = 0, $483 = 0, $4830 = 0, $4831 = 0, $4832 = 0;
var $4833 = 0, $4834 = 0, $4835 = 0, $4836 = 0, $4837 = 0, $4838 = 0, $4839 = 0, $484 = 0, $4840 = 0, $4841 = 0, $4842 = 0, $4843 = 0, $4844 = 0, $4845 = 0, $4846 = 0, $4847 = 0, $4848 = 0, $4849 = 0, $485 = 0, $4850 = 0;
var $4851 = 0, $4852 = 0, $4853 = 0, $4854 = 0, $4855 = 0, $4856 = 0, $4857 = 0, $4858 = 0, $4859 = 0, $486 = 0, $4860 = 0, $4861 = 0, $4862 = 0, $4863 = 0, $4864 = 0, $4865 = 0, $4866 = 0, $4867 = 0, $4868 = 0, $4869 = 0;
var $487 = 0, $4870 = 0, $4871 = 0, $4872 = 0, $4873 = 0, $4874 = 0, $4875 = 0, $4876 = 0, $4877 = 0, $4878 = 0, $4879 = 0, $488 = 0, $4880 = 0, $4881 = 0, $4882 = 0, $4883 = 0, $4884 = 0, $4885 = 0, $4886 = 0, $4887 = 0;
var $4888 = 0, $4889 = 0, $489 = 0, $4890 = 0, $4891 = 0, $4892 = 0, $4893 = 0, $4894 = 0, $4895 = 0, $4896 = 0, $4897 = 0, $4898 = 0, $4899 = 0, $49 = 0, $490 = 0, $4900 = 0, $4901 = 0, $4902 = 0, $4903 = 0, $4904 = 0;
var $4905 = 0, $4906 = 0, $4907 = 0, $4908 = 0, $4909 = 0, $491 = 0, $4910 = 0, $4911 = 0, $4912 = 0, $4913 = 0, $4914 = 0, $4915 = 0, $4916 = 0, $4917 = 0, $4918 = 0, $4919 = 0, $492 = 0, $4920 = 0, $4921 = 0, $4922 = 0;
var $4923 = 0, $4924 = 0, $4925 = 0, $4926 = 0, $4927 = 0, $4928 = 0, $4929 = 0, $493 = 0, $4930 = 0, $4931 = 0, $4932 = 0, $4933 = 0, $4934 = 0, $4935 = 0, $4936 = 0, $4937 = 0, $4938 = 0, $4939 = 0, $494 = 0, $4940 = 0;
var $4941 = 0, $4942 = 0, $4943 = 0, $4944 = 0, $4945 = 0, $4946 = 0, $4947 = 0, $4948 = 0, $4949 = 0, $495 = 0, $4950 = 0, $4951 = 0, $4952 = 0, $4953 = 0, $4954 = 0, $4955 = 0, $4956 = 0, $4957 = 0, $4958 = 0, $4959 = 0;
var $496 = 0, $4960 = 0, $4961 = 0, $4962 = 0, $4963 = 0, $4964 = 0, $4965 = 0, $4966 = 0, $4967 = 0, $4968 = 0, $4969 = 0, $497 = 0, $4970 = 0, $4971 = 0, $4972 = 0, $4973 = 0, $4974 = 0, $4975 = 0, $4976 = 0, $4977 = 0;
var $4978 = 0, $4979 = 0, $498 = 0, $4980 = 0, $4981 = 0, $4982 = 0, $4983 = 0, $4984 = 0, $4985 = 0, $4986 = 0, $4987 = 0, $4988 = 0, $4989 = 0, $499 = 0, $4990 = 0, $4991 = 0, $4992 = 0, $4993 = 0, $4994 = 0, $4995 = 0;
var $4996 = 0, $4997 = 0, $4998 = 0, $4999 = 0, $5 = 0, $50 = 0, $500 = 0, $5000 = 0, $5001 = 0, $5002 = 0, $5003 = 0, $5004 = 0, $5005 = 0, $5006 = 0, $5007 = 0, $5008 = 0, $5009 = 0, $501 = 0, $5010 = 0, $5011 = 0;
var $5012 = 0, $5013 = 0, $5014 = 0, $5015 = 0, $5016 = 0, $5017 = 0, $5018 = 0, $5019 = 0, $502 = 0, $5020 = 0, $5021 = 0, $5022 = 0, $5023 = 0, $5024 = 0, $5025 = 0, $5026 = 0, $5027 = 0, $5028 = 0, $5029 = 0, $503 = 0;
var $5030 = 0, $5031 = 0, $5032 = 0, $5033 = 0, $5034 = 0, $5035 = 0, $5036 = 0, $5037 = 0, $5038 = 0, $5039 = 0, $504 = 0, $5040 = 0, $5041 = 0, $5042 = 0, $5043 = 0, $5044 = 0, $5045 = 0, $5046 = 0, $5047 = 0, $5048 = 0;
var $5049 = 0, $505 = 0, $5050 = 0, $5051 = 0, $5052 = 0, $5053 = 0, $5054 = 0, $5055 = 0, $5056 = 0, $5057 = 0, $5058 = 0, $5059 = 0, $506 = 0, $5060 = 0, $5061 = 0, $5062 = 0, $5063 = 0, $5064 = 0, $5065 = 0, $5066 = 0;
var $5067 = 0, $5068 = 0, $5069 = 0, $507 = 0, $5070 = 0, $5071 = 0, $5072 = 0, $5073 = 0, $5074 = 0, $5075 = 0, $5076 = 0, $5077 = 0, $5078 = 0, $5079 = 0, $508 = 0, $5080 = 0, $5081 = 0, $5082 = 0, $5083 = 0, $5084 = 0;
var $5085 = 0, $5086 = 0, $5087 = 0, $5088 = 0, $5089 = 0, $509 = 0, $5090 = 0, $5091 = 0, $5092 = 0, $5093 = 0, $5094 = 0, $5095 = 0, $5096 = 0, $5097 = 0, $5098 = 0, $5099 = 0, $51 = 0, $510 = 0, $5100 = 0, $5101 = 0;
var $5102 = 0, $5103 = 0, $5104 = 0, $5105 = 0, $5106 = 0, $5107 = 0, $5108 = 0, $5109 = 0, $511 = 0, $5110 = 0, $5111 = 0, $5112 = 0, $5113 = 0, $5114 = 0, $5115 = 0, $5116 = 0, $5117 = 0, $5118 = 0, $5119 = 0, $512 = 0;
var $5120 = 0, $5121 = 0, $5122 = 0, $5123 = 0, $5124 = 0, $5125 = 0, $5126 = 0, $5127 = 0, $5128 = 0, $5129 = 0, $513 = 0, $5130 = 0, $5131 = 0, $5132 = 0, $5133 = 0, $5134 = 0, $5135 = 0, $5136 = 0, $5137 = 0, $5138 = 0;
var $5139 = 0, $514 = 0, $5140 = 0, $5141 = 0, $5142 = 0, $5143 = 0, $5144 = 0, $5145 = 0, $5146 = 0, $5147 = 0, $5148 = 0, $5149 = 0, $515 = 0, $5150 = 0, $5151 = 0, $5152 = 0, $5153 = 0, $5154 = 0, $5155 = 0, $5156 = 0;
var $5157 = 0, $5158 = 0, $5159 = 0, $516 = 0, $5160 = 0, $5161 = 0, $5162 = 0, $5163 = 0, $5164 = 0, $5165 = 0, $5166 = 0, $5167 = 0, $5168 = 0, $5169 = 0, $517 = 0, $5170 = 0, $5171 = 0, $5172 = 0, $5173 = 0, $5174 = 0;
var $5175 = 0, $5176 = 0, $5177 = 0, $5178 = 0, $5179 = 0, $518 = 0, $5180 = 0, $5181 = 0, $5182 = 0, $5183 = 0, $5184 = 0, $5185 = 0, $5186 = 0, $5187 = 0, $5188 = 0, $5189 = 0, $519 = 0, $5190 = 0, $5191 = 0, $5192 = 0;
var $5193 = 0, $5194 = 0, $5195 = 0, $5196 = 0, $5197 = 0, $5198 = 0, $5199 = 0, $52 = 0, $520 = 0, $5200 = 0, $5201 = 0, $5202 = 0, $5203 = 0, $5204 = 0, $5205 = 0, $5206 = 0, $5207 = 0, $5208 = 0, $5209 = 0, $521 = 0;
var $5210 = 0, $5211 = 0, $5212 = 0, $5213 = 0, $5214 = 0, $5215 = 0, $5216 = 0, $5217 = 0, $5218 = 0, $5219 = 0, $522 = 0, $5220 = 0, $5221 = 0, $5222 = 0, $5223 = 0, $5224 = 0, $5225 = 0, $5226 = 0, $5227 = 0, $5228 = 0;
var $5229 = 0, $523 = 0, $5230 = 0, $5231 = 0, $5232 = 0, $5233 = 0, $5234 = 0, $5235 = 0, $5236 = 0, $5237 = 0, $5238 = 0, $5239 = 0, $524 = 0, $5240 = 0, $5241 = 0, $5242 = 0, $5243 = 0, $5244 = 0, $5245 = 0, $5246 = 0;
var $5247 = 0, $5248 = 0, $5249 = 0, $525 = 0, $5250 = 0, $5251 = 0, $5252 = 0, $5253 = 0, $5254 = 0, $5255 = 0, $5256 = 0, $5257 = 0, $5258 = 0, $5259 = 0, $526 = 0, $5260 = 0, $5261 = 0, $5262 = 0, $5263 = 0, $5264 = 0;
var $5265 = 0, $5266 = 0, $5267 = 0, $5268 = 0, $5269 = 0, $527 = 0, $5270 = 0, $5271 = 0, $5272 = 0, $5273 = 0, $5274 = 0, $5275 = 0, $5276 = 0, $5277 = 0, $5278 = 0, $5279 = 0, $528 = 0, $5280 = 0, $5281 = 0, $5282 = 0;
var $5283 = 0, $5284 = 0, $5285 = 0, $5286 = 0, $5287 = 0, $5288 = 0, $5289 = 0, $529 = 0, $5290 = 0, $5291 = 0, $5292 = 0, $5293 = 0, $5294 = 0, $5295 = 0, $5296 = 0, $5297 = 0, $5298 = 0, $5299 = 0, $53 = 0, $530 = 0;
var $5300 = 0, $5301 = 0, $5302 = 0, $5303 = 0, $5304 = 0, $5305 = 0, $5306 = 0, $5307 = 0, $5308 = 0, $5309 = 0, $531 = 0, $5310 = 0, $5311 = 0, $5312 = 0, $5313 = 0, $5314 = 0, $5315 = 0, $5316 = 0, $5317 = 0, $5318 = 0;
var $5319 = 0, $532 = 0, $5320 = 0, $5321 = 0, $5322 = 0, $5323 = 0, $5324 = 0, $5325 = 0, $5326 = 0, $5327 = 0, $5328 = 0, $5329 = 0, $533 = 0, $5330 = 0, $5331 = 0, $5332 = 0, $5333 = 0, $5334 = 0, $5335 = 0, $5336 = 0;
var $5337 = 0, $5338 = 0, $5339 = 0, $534 = 0, $5340 = 0, $5341 = 0, $5342 = 0, $5343 = 0, $5344 = 0, $5345 = 0, $5346 = 0, $5347 = 0, $5348 = 0, $5349 = 0, $535 = 0, $5350 = 0, $5351 = 0, $5352 = 0, $5353 = 0, $5354 = 0;
var $5355 = 0, $5356 = 0, $5357 = 0, $5358 = 0, $5359 = 0, $536 = 0, $5360 = 0, $5361 = 0, $5362 = 0, $5363 = 0, $5364 = 0, $5365 = 0, $5366 = 0, $5367 = 0, $5368 = 0, $5369 = 0, $537 = 0, $5370 = 0, $5371 = 0, $5372 = 0;
var $5373 = 0, $5374 = 0, $5375 = 0, $5376 = 0, $5377 = 0, $5378 = 0, $5379 = 0, $538 = 0, $5380 = 0, $5381 = 0, $5382 = 0, $5383 = 0, $5384 = 0, $5385 = 0, $5386 = 0, $5387 = 0, $5388 = 0, $5389 = 0, $539 = 0, $5390 = 0;
var $5391 = 0, $5392 = 0, $5393 = 0, $5394 = 0, $5395 = 0, $5396 = 0, $5397 = 0, $5398 = 0, $5399 = 0, $54 = 0, $540 = 0, $5400 = 0, $5401 = 0, $5402 = 0, $5403 = 0, $5404 = 0, $5405 = 0, $5406 = 0, $5407 = 0, $5408 = 0;
var $5409 = 0, $541 = 0, $5410 = 0, $5411 = 0, $5412 = 0, $5413 = 0, $5414 = 0, $5415 = 0, $5416 = 0, $5417 = 0, $5418 = 0, $5419 = 0, $542 = 0, $5420 = 0, $5421 = 0, $5422 = 0, $5423 = 0, $5424 = 0, $5425 = 0, $5426 = 0;
var $5427 = 0, $5428 = 0, $5429 = 0, $543 = 0, $5430 = 0, $5431 = 0, $5432 = 0, $5433 = 0, $5434 = 0, $5435 = 0, $5436 = 0, $5437 = 0, $5438 = 0, $5439 = 0, $544 = 0, $5440 = 0, $5441 = 0, $5442 = 0, $5443 = 0, $5444 = 0;
var $5445 = 0, $5446 = 0, $5447 = 0, $5448 = 0, $5449 = 0, $545 = 0, $5450 = 0, $5451 = 0, $5452 = 0, $5453 = 0, $5454 = 0, $5455 = 0, $5456 = 0, $5457 = 0, $5458 = 0, $5459 = 0, $546 = 0, $5460 = 0, $5461 = 0, $5462 = 0;
var $5463 = 0, $5464 = 0, $5465 = 0, $5466 = 0, $5467 = 0, $5468 = 0, $5469 = 0, $547 = 0, $5470 = 0, $5471 = 0, $5472 = 0, $5473 = 0, $5474 = 0, $5475 = 0, $5476 = 0, $5477 = 0, $5478 = 0, $5479 = 0, $548 = 0, $5480 = 0;
var $5481 = 0, $5482 = 0, $5483 = 0, $5484 = 0, $5485 = 0, $5486 = 0, $5487 = 0, $5488 = 0, $5489 = 0, $549 = 0, $5490 = 0, $5491 = 0, $5492 = 0, $5493 = 0, $5494 = 0, $5495 = 0, $5496 = 0, $5497 = 0, $5498 = 0, $5499 = 0;
var $55 = 0, $550 = 0, $5500 = 0, $5501 = 0, $5502 = 0, $5503 = 0, $5504 = 0, $5505 = 0, $5506 = 0, $5507 = 0, $5508 = 0, $5509 = 0, $551 = 0, $5510 = 0, $5511 = 0, $5512 = 0, $5513 = 0, $5514 = 0, $5515 = 0, $5516 = 0;
var $5517 = 0, $5518 = 0, $5519 = 0, $552 = 0, $5520 = 0, $5521 = 0, $5522 = 0, $5523 = 0, $5524 = 0, $5525 = 0, $5526 = 0, $5527 = 0, $5528 = 0, $5529 = 0, $553 = 0, $5530 = 0, $5531 = 0, $5532 = 0, $5533 = 0, $5534 = 0;
var $5535 = 0, $5536 = 0, $5537 = 0, $5538 = 0, $5539 = 0, $554 = 0, $5540 = 0, $5541 = 0, $5542 = 0, $5543 = 0, $5544 = 0, $5545 = 0, $5546 = 0, $5547 = 0, $5548 = 0, $5549 = 0, $555 = 0, $5550 = 0, $5551 = 0, $5552 = 0;
var $5553 = 0, $5554 = 0, $5555 = 0, $5556 = 0, $5557 = 0, $5558 = 0, $5559 = 0, $556 = 0, $5560 = 0, $5561 = 0, $5562 = 0, $5563 = 0, $5564 = 0, $5565 = 0, $5566 = 0, $5567 = 0, $5568 = 0, $5569 = 0, $557 = 0, $5570 = 0;
var $5571 = 0, $5572 = 0, $5573 = 0, $5574 = 0, $5575 = 0, $5576 = 0, $5577 = 0, $5578 = 0, $5579 = 0, $558 = 0, $5580 = 0, $5581 = 0, $5582 = 0, $5583 = 0, $5584 = 0, $5585 = 0, $5586 = 0, $5587 = 0, $5588 = 0, $5589 = 0;
var $559 = 0, $5590 = 0, $5591 = 0, $5592 = 0, $5593 = 0, $5594 = 0, $5595 = 0, $5596 = 0, $5597 = 0, $5598 = 0, $5599 = 0, $56 = 0, $560 = 0, $5600 = 0, $5601 = 0, $5602 = 0, $5603 = 0, $5604 = 0, $5605 = 0, $5606 = 0;
var $5607 = 0, $5608 = 0, $5609 = 0, $561 = 0, $5610 = 0, $5611 = 0, $5612 = 0, $5613 = 0, $5614 = 0, $5615 = 0, $5616 = 0, $5617 = 0, $5618 = 0, $5619 = 0, $562 = 0, $5620 = 0, $5621 = 0, $5622 = 0, $5623 = 0, $5624 = 0;
var $5625 = 0, $5626 = 0, $5627 = 0, $5628 = 0, $5629 = 0, $563 = 0, $5630 = 0, $5631 = 0, $5632 = 0, $5633 = 0, $5634 = 0, $5635 = 0, $5636 = 0, $5637 = 0, $5638 = 0, $5639 = 0, $564 = 0, $5640 = 0, $5641 = 0, $5642 = 0;
var $5643 = 0, $5644 = 0, $5645 = 0, $5646 = 0, $5647 = 0, $5648 = 0, $5649 = 0, $565 = 0, $5650 = 0, $5651 = 0, $5652 = 0, $5653 = 0, $5654 = 0, $5655 = 0, $5656 = 0, $5657 = 0, $5658 = 0, $5659 = 0, $566 = 0, $5660 = 0;
var $5661 = 0, $5662 = 0, $5663 = 0, $5664 = 0, $5665 = 0, $5666 = 0, $5667 = 0, $5668 = 0, $5669 = 0, $567 = 0, $5670 = 0, $5671 = 0, $5672 = 0, $5673 = 0, $5674 = 0, $5675 = 0, $5676 = 0, $5677 = 0, $5678 = 0, $5679 = 0;
var $568 = 0, $5680 = 0, $5681 = 0, $5682 = 0, $5683 = 0, $5684 = 0, $5685 = 0, $5686 = 0, $5687 = 0, $5688 = 0, $5689 = 0, $569 = 0, $5690 = 0, $5691 = 0, $5692 = 0, $5693 = 0, $5694 = 0, $5695 = 0, $5696 = 0, $5697 = 0;
var $5698 = 0, $5699 = 0, $57 = 0, $570 = 0, $5700 = 0, $5701 = 0, $5702 = 0, $5703 = 0, $5704 = 0, $5705 = 0, $5706 = 0, $5707 = 0, $5708 = 0, $5709 = 0, $571 = 0, $5710 = 0, $5711 = 0, $5712 = 0, $5713 = 0, $5714 = 0;
var $5715 = 0, $5716 = 0, $5717 = 0, $5718 = 0, $5719 = 0, $572 = 0, $5720 = 0, $5721 = 0, $5722 = 0, $5723 = 0, $5724 = 0, $5725 = 0, $5726 = 0, $5727 = 0, $5728 = 0, $5729 = 0, $573 = 0, $5730 = 0, $5731 = 0, $5732 = 0;
var $5733 = 0, $5734 = 0, $5735 = 0, $5736 = 0, $5737 = 0, $5738 = 0, $5739 = 0, $574 = 0, $5740 = 0, $5741 = 0, $5742 = 0, $5743 = 0, $5744 = 0, $5745 = 0, $5746 = 0, $5747 = 0, $5748 = 0, $5749 = 0, $575 = 0, $5750 = 0;
var $5751 = 0, $5752 = 0, $5753 = 0, $5754 = 0, $5755 = 0, $5756 = 0, $5757 = 0, $5758 = 0, $5759 = 0, $576 = 0, $5760 = 0, $5761 = 0, $5762 = 0, $5763 = 0, $5764 = 0, $5765 = 0, $5766 = 0, $5767 = 0, $5768 = 0, $5769 = 0;
var $577 = 0, $5770 = 0, $5771 = 0, $5772 = 0, $5773 = 0, $5774 = 0, $5775 = 0, $5776 = 0, $5777 = 0, $5778 = 0, $5779 = 0, $578 = 0, $5780 = 0, $5781 = 0, $5782 = 0, $5783 = 0, $5784 = 0, $5785 = 0, $5786 = 0, $5787 = 0;
var $5788 = 0, $5789 = 0, $579 = 0, $5790 = 0, $5791 = 0, $5792 = 0, $5793 = 0, $5794 = 0, $5795 = 0, $5796 = 0, $5797 = 0, $5798 = 0, $5799 = 0, $58 = 0, $580 = 0, $5800 = 0, $5801 = 0, $5802 = 0, $5803 = 0, $5804 = 0;
var $5805 = 0, $5806 = 0, $5807 = 0, $5808 = 0, $5809 = 0, $581 = 0, $5810 = 0, $5811 = 0, $5812 = 0, $5813 = 0, $5814 = 0, $5815 = 0, $5816 = 0, $5817 = 0, $5818 = 0, $5819 = 0, $582 = 0, $5820 = 0, $5821 = 0, $5822 = 0;
var $5823 = 0, $5824 = 0, $5825 = 0, $5826 = 0, $5827 = 0, $5828 = 0, $5829 = 0, $583 = 0, $5830 = 0, $5831 = 0, $5832 = 0, $5833 = 0, $5834 = 0, $5835 = 0, $5836 = 0, $5837 = 0, $5838 = 0, $5839 = 0, $584 = 0, $5840 = 0;
var $5841 = 0, $5842 = 0, $5843 = 0, $5844 = 0, $5845 = 0, $5846 = 0, $5847 = 0, $5848 = 0, $5849 = 0, $585 = 0, $5850 = 0, $5851 = 0, $5852 = 0, $5853 = 0, $5854 = 0, $5855 = 0, $5856 = 0, $5857 = 0, $5858 = 0, $5859 = 0;
var $586 = 0, $5860 = 0, $5861 = 0, $5862 = 0, $5863 = 0, $5864 = 0, $5865 = 0, $5866 = 0, $5867 = 0, $5868 = 0, $5869 = 0, $587 = 0, $5870 = 0, $5871 = 0, $5872 = 0, $5873 = 0, $5874 = 0, $5875 = 0, $5876 = 0, $5877 = 0;
var $5878 = 0, $5879 = 0, $588 = 0, $5880 = 0, $5881 = 0, $5882 = 0, $5883 = 0, $5884 = 0, $5885 = 0, $5886 = 0, $5887 = 0, $5888 = 0, $5889 = 0, $589 = 0, $5890 = 0, $5891 = 0, $5892 = 0, $5893 = 0, $5894 = 0, $5895 = 0;
var $5896 = 0, $5897 = 0, $5898 = 0, $5899 = 0, $59 = 0, $590 = 0, $5900 = 0, $5901 = 0, $5902 = 0, $5903 = 0, $5904 = 0, $5905 = 0, $5906 = 0, $5907 = 0, $5908 = 0, $5909 = 0, $591 = 0, $5910 = 0, $5911 = 0, $5912 = 0;
var $5913 = 0, $5914 = 0, $5915 = 0, $5916 = 0, $5917 = 0, $5918 = 0, $5919 = 0, $592 = 0, $5920 = 0, $5921 = 0, $5922 = 0, $5923 = 0, $5924 = 0, $5925 = 0, $5926 = 0, $5927 = 0, $5928 = 0, $5929 = 0, $593 = 0, $5930 = 0;
var $5931 = 0, $5932 = 0, $5933 = 0, $5934 = 0, $5935 = 0, $5936 = 0, $5937 = 0, $5938 = 0, $5939 = 0, $594 = 0, $5940 = 0, $5941 = 0, $5942 = 0, $5943 = 0, $5944 = 0, $5945 = 0, $5946 = 0, $5947 = 0, $5948 = 0, $5949 = 0;
var $595 = 0, $5950 = 0, $5951 = 0, $5952 = 0, $5953 = 0, $5954 = 0, $5955 = 0, $5956 = 0, $5957 = 0, $5958 = 0, $5959 = 0, $596 = 0, $5960 = 0, $5961 = 0, $5962 = 0, $5963 = 0, $5964 = 0, $5965 = 0, $5966 = 0, $5967 = 0;
var $5968 = 0, $5969 = 0, $597 = 0, $5970 = 0, $5971 = 0, $5972 = 0, $5973 = 0, $5974 = 0, $5975 = 0, $5976 = 0, $5977 = 0, $5978 = 0, $5979 = 0, $598 = 0, $5980 = 0, $5981 = 0, $5982 = 0, $5983 = 0, $5984 = 0, $5985 = 0;
var $5986 = 0, $5987 = 0, $5988 = 0, $5989 = 0, $599 = 0, $5990 = 0, $5991 = 0, $5992 = 0, $5993 = 0, $5994 = 0, $5995 = 0, $5996 = 0, $5997 = 0, $5998 = 0, $5999 = 0, $6 = 0, $60 = 0, $600 = 0, $6000 = 0, $6001 = 0;
var $6002 = 0, $6003 = 0, $6004 = 0, $6005 = 0, $6006 = 0, $6007 = 0, $6008 = 0, $6009 = 0, $601 = 0, $6010 = 0, $6011 = 0, $6012 = 0, $6013 = 0, $6014 = 0, $6015 = 0, $6016 = 0, $6017 = 0, $6018 = 0, $6019 = 0, $602 = 0;
var $6020 = 0, $6021 = 0, $6022 = 0, $6023 = 0, $6024 = 0, $6025 = 0, $6026 = 0, $6027 = 0, $6028 = 0, $6029 = 0, $603 = 0, $6030 = 0, $6031 = 0, $6032 = 0, $6033 = 0, $6034 = 0, $6035 = 0, $6036 = 0, $6037 = 0, $6038 = 0;
var $6039 = 0, $604 = 0, $6040 = 0, $6041 = 0, $6042 = 0, $6043 = 0, $6044 = 0, $6045 = 0, $6046 = 0, $6047 = 0, $6048 = 0, $6049 = 0, $605 = 0, $6050 = 0, $6051 = 0, $6052 = 0, $6053 = 0, $6054 = 0, $6055 = 0, $6056 = 0;
var $6057 = 0, $6058 = 0, $6059 = 0, $606 = 0, $6060 = 0, $6061 = 0, $6062 = 0, $6063 = 0, $6064 = 0, $6065 = 0, $6066 = 0, $6067 = 0, $6068 = 0, $6069 = 0, $607 = 0, $6070 = 0, $6071 = 0, $6072 = 0, $6073 = 0, $6074 = 0;
var $6075 = 0, $6076 = 0, $6077 = 0, $6078 = 0, $6079 = 0, $608 = 0, $6080 = 0, $6081 = 0, $6082 = 0, $6083 = 0, $6084 = 0, $6085 = 0, $6086 = 0, $6087 = 0, $6088 = 0, $6089 = 0, $609 = 0, $6090 = 0, $6091 = 0, $6092 = 0;
var $6093 = 0, $6094 = 0, $6095 = 0, $6096 = 0, $6097 = 0, $6098 = 0, $6099 = 0, $61 = 0, $610 = 0, $6100 = 0, $6101 = 0, $6102 = 0, $6103 = 0, $6104 = 0, $6105 = 0, $6106 = 0, $6107 = 0, $6108 = 0, $6109 = 0, $611 = 0;
var $6110 = 0, $6111 = 0, $6112 = 0, $6113 = 0, $6114 = 0, $6115 = 0, $6116 = 0, $6117 = 0, $6118 = 0, $6119 = 0, $612 = 0, $6120 = 0, $6121 = 0, $6122 = 0, $6123 = 0, $6124 = 0, $6125 = 0, $6126 = 0, $6127 = 0, $6128 = 0;
var $6129 = 0, $613 = 0, $6130 = 0, $6131 = 0, $6132 = 0, $6133 = 0, $6134 = 0, $6135 = 0, $6136 = 0, $6137 = 0, $6138 = 0, $6139 = 0, $614 = 0, $6140 = 0, $6141 = 0, $6142 = 0, $6143 = 0, $6144 = 0, $6145 = 0, $6146 = 0;
var $6147 = 0, $6148 = 0, $6149 = 0, $615 = 0, $6150 = 0, $6151 = 0, $6152 = 0, $6153 = 0, $6154 = 0, $6155 = 0, $6156 = 0, $6157 = 0, $6158 = 0, $6159 = 0, $616 = 0, $6160 = 0, $6161 = 0, $6162 = 0, $6163 = 0, $6164 = 0;
var $6165 = 0, $6166 = 0, $6167 = 0, $6168 = 0, $6169 = 0, $617 = 0, $6170 = 0, $6171 = 0, $6172 = 0, $6173 = 0, $6174 = 0, $6175 = 0, $6176 = 0, $6177 = 0, $6178 = 0, $6179 = 0, $618 = 0, $6180 = 0, $6181 = 0, $6182 = 0;
var $6183 = 0, $6184 = 0, $6185 = 0, $6186 = 0, $6187 = 0, $6188 = 0, $6189 = 0, $619 = 0, $6190 = 0, $6191 = 0, $6192 = 0, $6193 = 0, $6194 = 0, $6195 = 0, $6196 = 0, $6197 = 0, $6198 = 0, $6199 = 0, $62 = 0, $620 = 0;
var $6200 = 0, $6201 = 0, $6202 = 0, $6203 = 0, $6204 = 0, $6205 = 0, $6206 = 0, $6207 = 0, $6208 = 0, $6209 = 0, $621 = 0, $6210 = 0, $6211 = 0, $6212 = 0, $6213 = 0, $6214 = 0, $6215 = 0, $6216 = 0, $6217 = 0, $6218 = 0;
var $6219 = 0, $622 = 0, $6220 = 0, $6221 = 0, $6222 = 0, $6223 = 0, $6224 = 0, $6225 = 0, $6226 = 0, $6227 = 0, $6228 = 0, $6229 = 0, $623 = 0, $6230 = 0, $6231 = 0, $6232 = 0, $6233 = 0, $6234 = 0, $6235 = 0, $6236 = 0;
var $6237 = 0, $6238 = 0, $6239 = 0, $624 = 0, $6240 = 0, $6241 = 0, $6242 = 0, $6243 = 0, $6244 = 0, $6245 = 0, $6246 = 0, $6247 = 0, $6248 = 0, $6249 = 0, $625 = 0, $6250 = 0, $6251 = 0, $6252 = 0, $6253 = 0, $6254 = 0;
var $6255 = 0, $6256 = 0, $6257 = 0, $6258 = 0, $6259 = 0, $626 = 0, $6260 = 0, $6261 = 0, $6262 = 0, $6263 = 0, $6264 = 0, $6265 = 0, $6266 = 0, $6267 = 0, $6268 = 0, $6269 = 0, $627 = 0, $6270 = 0, $6271 = 0, $6272 = 0;
var $6273 = 0, $6274 = 0, $6275 = 0, $6276 = 0, $6277 = 0, $6278 = 0, $6279 = 0, $628 = 0, $6280 = 0, $6281 = 0, $6282 = 0, $6283 = 0, $6284 = 0, $6285 = 0, $6286 = 0, $6287 = 0, $6288 = 0, $6289 = 0, $629 = 0, $6290 = 0;
var $6291 = 0, $6292 = 0, $6293 = 0, $6294 = 0, $6295 = 0, $6296 = 0, $6297 = 0, $6298 = 0, $6299 = 0, $63 = 0, $630 = 0, $6300 = 0, $6301 = 0, $6302 = 0, $6303 = 0, $6304 = 0, $6305 = 0, $6306 = 0, $6307 = 0, $6308 = 0;
var $6309 = 0, $631 = 0, $6310 = 0, $6311 = 0, $6312 = 0, $6313 = 0, $6314 = 0, $6315 = 0, $6316 = 0, $6317 = 0, $6318 = 0, $6319 = 0, $632 = 0, $6320 = 0, $6321 = 0, $6322 = 0, $6323 = 0, $6324 = 0, $6325 = 0, $6326 = 0;
var $6327 = 0, $6328 = 0, $6329 = 0, $633 = 0, $6330 = 0, $6331 = 0, $6332 = 0, $6333 = 0, $6334 = 0, $6335 = 0, $6336 = 0, $6337 = 0, $6338 = 0, $6339 = 0, $634 = 0, $6340 = 0, $6341 = 0, $6342 = 0, $6343 = 0, $6344 = 0;
var $6345 = 0, $6346 = 0, $6347 = 0, $6348 = 0, $6349 = 0, $635 = 0, $6350 = 0, $6351 = 0, $6352 = 0, $6353 = 0, $6354 = 0, $6355 = 0, $6356 = 0, $6357 = 0, $6358 = 0, $6359 = 0, $636 = 0, $6360 = 0, $6361 = 0, $6362 = 0;
var $6363 = 0, $6364 = 0, $6365 = 0, $6366 = 0, $6367 = 0, $6368 = 0, $6369 = 0, $637 = 0, $6370 = 0, $6371 = 0, $6372 = 0, $6373 = 0, $6374 = 0, $6375 = 0, $6376 = 0, $6377 = 0, $6378 = 0, $6379 = 0, $638 = 0, $6380 = 0;
var $6381 = 0, $6382 = 0, $6383 = 0, $6384 = 0, $6385 = 0, $6386 = 0, $6387 = 0, $6388 = 0, $6389 = 0, $639 = 0, $6390 = 0, $6391 = 0, $6392 = 0, $6393 = 0, $6394 = 0, $6395 = 0, $6396 = 0, $6397 = 0, $6398 = 0, $6399 = 0;
var $64 = 0, $640 = 0, $6400 = 0, $6401 = 0, $6402 = 0, $6403 = 0, $6404 = 0, $6405 = 0, $6406 = 0, $6407 = 0, $6408 = 0, $6409 = 0, $641 = 0, $6410 = 0, $6411 = 0, $6412 = 0, $6413 = 0, $6414 = 0, $6415 = 0, $6416 = 0;
var $6417 = 0, $6418 = 0, $6419 = 0, $642 = 0, $6420 = 0, $6421 = 0, $6422 = 0, $6423 = 0, $6424 = 0, $6425 = 0, $6426 = 0, $6427 = 0, $6428 = 0, $6429 = 0, $643 = 0, $6430 = 0, $6431 = 0, $6432 = 0, $6433 = 0, $6434 = 0;
var $6435 = 0, $6436 = 0, $6437 = 0, $6438 = 0, $6439 = 0, $644 = 0, $6440 = 0, $6441 = 0, $6442 = 0, $6443 = 0, $6444 = 0, $6445 = 0, $6446 = 0, $6447 = 0, $6448 = 0, $6449 = 0, $645 = 0, $6450 = 0, $6451 = 0, $6452 = 0;
var $6453 = 0, $6454 = 0, $6455 = 0, $6456 = 0, $6457 = 0, $6458 = 0, $6459 = 0, $646 = 0, $6460 = 0, $6461 = 0, $6462 = 0, $6463 = 0, $6464 = 0, $6465 = 0, $6466 = 0, $6467 = 0, $6468 = 0, $6469 = 0, $647 = 0, $6470 = 0;
var $6471 = 0, $6472 = 0, $6473 = 0, $6474 = 0, $6475 = 0, $6476 = 0, $6477 = 0, $6478 = 0, $6479 = 0, $648 = 0, $6480 = 0, $6481 = 0, $6482 = 0, $6483 = 0, $6484 = 0, $6485 = 0, $6486 = 0, $6487 = 0, $6488 = 0, $6489 = 0;
var $649 = 0, $6490 = 0, $6491 = 0, $6492 = 0, $6493 = 0, $6494 = 0, $6495 = 0, $6496 = 0, $6497 = 0, $6498 = 0, $6499 = 0, $65 = 0, $650 = 0, $6500 = 0, $6501 = 0, $6502 = 0, $6503 = 0, $6504 = 0, $6505 = 0, $6506 = 0;
var $6507 = 0, $6508 = 0, $6509 = 0, $651 = 0, $6510 = 0, $6511 = 0, $6512 = 0, $6513 = 0, $6514 = 0, $6515 = 0, $6516 = 0, $6517 = 0, $6518 = 0, $6519 = 0, $652 = 0, $6520 = 0, $6521 = 0, $6522 = 0, $6523 = 0, $6524 = 0;
var $6525 = 0, $6526 = 0, $6527 = 0, $6528 = 0, $6529 = 0, $653 = 0, $6530 = 0, $6531 = 0, $6532 = 0, $6533 = 0, $6534 = 0, $6535 = 0, $6536 = 0, $6537 = 0, $6538 = 0, $6539 = 0, $654 = 0, $6540 = 0, $6541 = 0, $6542 = 0;
var $6543 = 0, $6544 = 0, $6545 = 0, $6546 = 0, $6547 = 0, $6548 = 0, $6549 = 0, $655 = 0, $6550 = 0, $6551 = 0, $6552 = 0, $6553 = 0, $6554 = 0, $6555 = 0, $6556 = 0, $6557 = 0, $6558 = 0, $6559 = 0, $656 = 0, $6560 = 0;
var $6561 = 0, $6562 = 0, $6563 = 0, $6564 = 0, $6565 = 0, $6566 = 0, $6567 = 0, $6568 = 0, $6569 = 0, $657 = 0, $6570 = 0, $6571 = 0, $6572 = 0, $6573 = 0, $6574 = 0, $6575 = 0, $6576 = 0, $6577 = 0, $6578 = 0, $6579 = 0;
var $658 = 0, $6580 = 0, $6581 = 0, $6582 = 0, $6583 = 0, $6584 = 0, $6585 = 0, $6586 = 0, $6587 = 0, $6588 = 0, $6589 = 0, $659 = 0, $6590 = 0, $6591 = 0, $6592 = 0, $6593 = 0, $6594 = 0, $6595 = 0, $6596 = 0, $6597 = 0;
var $6598 = 0, $6599 = 0, $66 = 0, $660 = 0, $6600 = 0, $6601 = 0, $6602 = 0, $6603 = 0, $6604 = 0, $6605 = 0, $6606 = 0, $6607 = 0, $6608 = 0, $6609 = 0, $661 = 0, $6610 = 0, $6611 = 0, $6612 = 0, $6613 = 0, $6614 = 0;
var $6615 = 0, $6616 = 0, $6617 = 0, $6618 = 0, $6619 = 0, $662 = 0, $6620 = 0, $6621 = 0, $6622 = 0, $6623 = 0, $6624 = 0, $6625 = 0, $6626 = 0, $6627 = 0, $6628 = 0, $6629 = 0, $663 = 0, $6630 = 0, $6631 = 0, $6632 = 0;
var $6633 = 0, $6634 = 0, $6635 = 0, $6636 = 0, $6637 = 0, $6638 = 0, $6639 = 0, $664 = 0, $6640 = 0, $6641 = 0, $6642 = 0, $6643 = 0, $6644 = 0, $6645 = 0, $6646 = 0, $6647 = 0, $6648 = 0, $6649 = 0, $665 = 0, $6650 = 0;
var $6651 = 0, $6652 = 0, $6653 = 0, $6654 = 0, $6655 = 0, $6656 = 0, $6657 = 0, $6658 = 0, $6659 = 0, $666 = 0, $6660 = 0, $6661 = 0, $6662 = 0, $6663 = 0, $6664 = 0, $6665 = 0, $6666 = 0, $6667 = 0, $6668 = 0, $6669 = 0;
var $667 = 0, $6670 = 0, $6671 = 0, $6672 = 0, $6673 = 0, $6674 = 0, $6675 = 0, $6676 = 0, $6677 = 0, $6678 = 0, $6679 = 0, $668 = 0, $6680 = 0, $6681 = 0, $6682 = 0, $6683 = 0, $6684 = 0, $6685 = 0, $6686 = 0, $6687 = 0;
var $6688 = 0, $6689 = 0, $669 = 0, $6690 = 0, $6691 = 0, $6692 = 0, $6693 = 0, $6694 = 0, $6695 = 0, $6696 = 0, $6697 = 0, $6698 = 0, $6699 = 0, $67 = 0, $670 = 0, $6700 = 0, $6701 = 0, $6702 = 0, $6703 = 0, $6704 = 0;
var $6705 = 0, $6706 = 0, $6707 = 0, $6708 = 0, $6709 = 0, $671 = 0, $6710 = 0, $6711 = 0, $6712 = 0, $6713 = 0, $6714 = 0, $6715 = 0, $6716 = 0, $6717 = 0, $6718 = 0, $6719 = 0, $672 = 0, $6720 = 0, $6721 = 0, $6722 = 0;
var $6723 = 0, $6724 = 0, $6725 = 0, $6726 = 0, $6727 = 0, $6728 = 0, $6729 = 0, $673 = 0, $6730 = 0, $6731 = 0, $6732 = 0, $6733 = 0, $6734 = 0, $6735 = 0, $6736 = 0, $6737 = 0, $6738 = 0, $6739 = 0, $674 = 0, $6740 = 0;
var $6741 = 0, $6742 = 0, $6743 = 0, $6744 = 0, $6745 = 0, $6746 = 0, $6747 = 0, $6748 = 0, $6749 = 0, $675 = 0, $6750 = 0, $6751 = 0, $6752 = 0, $6753 = 0, $6754 = 0, $6755 = 0, $6756 = 0, $6757 = 0, $6758 = 0, $6759 = 0;
var $676 = 0, $6760 = 0, $6761 = 0, $6762 = 0, $6763 = 0, $6764 = 0, $6765 = 0, $6766 = 0, $6767 = 0, $6768 = 0, $6769 = 0, $677 = 0, $6770 = 0, $6771 = 0, $6772 = 0, $6773 = 0, $6774 = 0, $6775 = 0, $6776 = 0, $6777 = 0;
var $6778 = 0, $6779 = 0, $678 = 0, $6780 = 0, $6781 = 0, $6782 = 0, $6783 = 0, $6784 = 0, $6785 = 0, $6786 = 0, $6787 = 0, $6788 = 0, $6789 = 0, $679 = 0, $6790 = 0, $6791 = 0, $6792 = 0, $6793 = 0, $6794 = 0, $6795 = 0;
var $6796 = 0, $6797 = 0, $6798 = 0, $6799 = 0, $68 = 0, $680 = 0, $6800 = 0, $6801 = 0, $6802 = 0, $6803 = 0, $6804 = 0, $6805 = 0, $6806 = 0, $6807 = 0, $6808 = 0, $6809 = 0, $681 = 0, $6810 = 0, $6811 = 0, $6812 = 0;
var $6813 = 0, $6814 = 0, $6815 = 0, $6816 = 0, $6817 = 0, $6818 = 0, $6819 = 0, $682 = 0, $6820 = 0, $6821 = 0, $6822 = 0, $6823 = 0, $6824 = 0, $6825 = 0, $6826 = 0, $6827 = 0, $6828 = 0, $6829 = 0, $683 = 0, $6830 = 0;
var $6831 = 0, $6832 = 0, $6833 = 0, $6834 = 0, $6835 = 0, $6836 = 0, $6837 = 0, $6838 = 0, $6839 = 0, $684 = 0, $6840 = 0, $6841 = 0, $6842 = 0, $6843 = 0, $6844 = 0, $6845 = 0, $6846 = 0, $6847 = 0, $6848 = 0, $6849 = 0;
var $685 = 0, $6850 = 0, $6851 = 0, $6852 = 0, $6853 = 0, $6854 = 0, $6855 = 0, $6856 = 0, $6857 = 0, $6858 = 0, $6859 = 0, $686 = 0, $6860 = 0, $6861 = 0, $6862 = 0, $6863 = 0, $6864 = 0, $6865 = 0, $6866 = 0, $6867 = 0;
var $6868 = 0, $6869 = 0, $687 = 0, $6870 = 0, $6871 = 0, $6872 = 0, $6873 = 0, $6874 = 0, $6875 = 0, $6876 = 0, $6877 = 0, $6878 = 0, $6879 = 0, $688 = 0, $6880 = 0, $6881 = 0, $6882 = 0, $6883 = 0, $6884 = 0, $6885 = 0;
var $6886 = 0, $6887 = 0, $6888 = 0, $6889 = 0, $689 = 0, $6890 = 0, $6891 = 0, $6892 = 0, $6893 = 0, $6894 = 0, $6895 = 0, $6896 = 0, $6897 = 0, $6898 = 0, $6899 = 0, $69 = 0, $690 = 0, $6900 = 0, $6901 = 0, $6902 = 0;
var $6903 = 0, $6904 = 0, $6905 = 0, $6906 = 0, $6907 = 0, $6908 = 0, $6909 = 0, $691 = 0, $6910 = 0, $6911 = 0, $6912 = 0, $6913 = 0, $6914 = 0, $6915 = 0, $6916 = 0, $6917 = 0, $6918 = 0, $6919 = 0, $692 = 0, $6920 = 0;
var $6921 = 0, $6922 = 0, $6923 = 0, $6924 = 0, $6925 = 0, $6926 = 0, $6927 = 0, $6928 = 0, $6929 = 0, $693 = 0, $6930 = 0, $6931 = 0, $6932 = 0, $6933 = 0, $6934 = 0, $6935 = 0, $6936 = 0, $6937 = 0, $6938 = 0, $6939 = 0;
var $694 = 0, $6940 = 0, $6941 = 0, $6942 = 0, $6943 = 0, $6944 = 0, $6945 = 0, $6946 = 0, $6947 = 0, $6948 = 0, $6949 = 0, $695 = 0, $6950 = 0, $6951 = 0, $6952 = 0, $6953 = 0, $6954 = 0, $6955 = 0, $6956 = 0, $6957 = 0;
var $6958 = 0, $6959 = 0, $696 = 0, $6960 = 0, $6961 = 0, $6962 = 0, $6963 = 0, $6964 = 0, $6965 = 0, $6966 = 0, $6967 = 0, $6968 = 0, $6969 = 0, $697 = 0, $6970 = 0, $6971 = 0, $6972 = 0, $6973 = 0, $6974 = 0, $6975 = 0;
var $6976 = 0, $6977 = 0, $6978 = 0, $6979 = 0, $698 = 0, $6980 = 0, $6981 = 0, $6982 = 0, $6983 = 0, $6984 = 0, $6985 = 0, $6986 = 0, $6987 = 0, $6988 = 0, $6989 = 0, $699 = 0, $6990 = 0, $6991 = 0, $6992 = 0, $6993 = 0;
var $6994 = 0, $6995 = 0, $6996 = 0, $6997 = 0, $6998 = 0, $6999 = 0, $7 = 0, $70 = 0, $700 = 0, $7000 = 0, $7001 = 0, $7002 = 0, $7003 = 0, $7004 = 0, $7005 = 0, $7006 = 0, $7007 = 0, $7008 = 0, $7009 = 0, $701 = 0;
var $7010 = 0, $7011 = 0, $7012 = 0, $7013 = 0, $7014 = 0, $7015 = 0, $7016 = 0, $7017 = 0, $7018 = 0, $7019 = 0, $702 = 0, $7020 = 0, $7021 = 0, $7022 = 0, $7023 = 0, $7024 = 0, $7025 = 0, $7026 = 0, $7027 = 0, $7028 = 0;
var $7029 = 0, $703 = 0, $7030 = 0, $7031 = 0, $7032 = 0, $7033 = 0, $7034 = 0, $7035 = 0, $7036 = 0, $7037 = 0, $7038 = 0, $7039 = 0, $704 = 0, $7040 = 0, $7041 = 0, $7042 = 0, $7043 = 0, $7044 = 0, $7045 = 0, $7046 = 0;
var $7047 = 0, $7048 = 0, $7049 = 0, $705 = 0, $7050 = 0, $7051 = 0, $7052 = 0, $7053 = 0, $7054 = 0, $7055 = 0, $7056 = 0, $7057 = 0, $7058 = 0, $7059 = 0, $706 = 0, $7060 = 0, $7061 = 0, $7062 = 0, $7063 = 0, $7064 = 0;
var $7065 = 0, $7066 = 0, $7067 = 0, $7068 = 0, $7069 = 0, $707 = 0, $7070 = 0, $7071 = 0, $7072 = 0, $7073 = 0, $7074 = 0, $7075 = 0, $7076 = 0, $7077 = 0, $7078 = 0, $7079 = 0, $708 = 0, $7080 = 0, $7081 = 0, $7082 = 0;
var $7083 = 0, $7084 = 0, $7085 = 0, $7086 = 0, $7087 = 0, $7088 = 0, $7089 = 0, $709 = 0, $7090 = 0, $7091 = 0, $7092 = 0, $7093 = 0, $7094 = 0, $7095 = 0, $7096 = 0, $7097 = 0, $7098 = 0, $7099 = 0, $71 = 0, $710 = 0;
var $7100 = 0, $7101 = 0, $7102 = 0, $7103 = 0, $7104 = 0, $7105 = 0, $7106 = 0, $7107 = 0, $7108 = 0, $7109 = 0, $711 = 0, $7110 = 0, $7111 = 0, $7112 = 0, $7113 = 0, $7114 = 0, $7115 = 0, $7116 = 0, $7117 = 0, $7118 = 0;
var $7119 = 0, $712 = 0, $7120 = 0, $7121 = 0, $7122 = 0, $7123 = 0, $7124 = 0, $7125 = 0, $7126 = 0, $7127 = 0, $7128 = 0, $7129 = 0, $713 = 0, $7130 = 0, $7131 = 0, $7132 = 0, $7133 = 0, $7134 = 0, $7135 = 0, $7136 = 0;
var $7137 = 0, $7138 = 0, $7139 = 0, $714 = 0, $7140 = 0, $7141 = 0, $7142 = 0, $7143 = 0, $7144 = 0, $7145 = 0, $7146 = 0, $7147 = 0, $7148 = 0, $7149 = 0, $715 = 0, $7150 = 0, $7151 = 0, $7152 = 0, $7153 = 0, $7154 = 0;
var $7155 = 0, $7156 = 0, $7157 = 0, $7158 = 0, $7159 = 0, $716 = 0, $7160 = 0, $7161 = 0, $7162 = 0, $7163 = 0, $7164 = 0, $7165 = 0, $7166 = 0, $7167 = 0, $7168 = 0, $7169 = 0, $717 = 0, $7170 = 0, $7171 = 0, $7172 = 0;
var $7173 = 0, $7174 = 0, $7175 = 0, $7176 = 0, $7177 = 0, $7178 = 0, $7179 = 0, $718 = 0, $7180 = 0, $7181 = 0, $7182 = 0, $7183 = 0, $7184 = 0, $7185 = 0, $7186 = 0, $7187 = 0, $7188 = 0, $7189 = 0, $719 = 0, $7190 = 0;
var $7191 = 0, $7192 = 0, $7193 = 0, $7194 = 0, $7195 = 0, $7196 = 0, $7197 = 0, $7198 = 0, $7199 = 0, $72 = 0, $720 = 0, $7200 = 0, $7201 = 0, $7202 = 0, $7203 = 0, $7204 = 0, $7205 = 0, $7206 = 0, $7207 = 0, $7208 = 0;
var $7209 = 0, $721 = 0, $7210 = 0, $7211 = 0, $7212 = 0, $7213 = 0, $7214 = 0, $7215 = 0, $7216 = 0, $7217 = 0, $7218 = 0, $7219 = 0, $722 = 0, $7220 = 0, $7221 = 0, $7222 = 0, $7223 = 0, $7224 = 0, $7225 = 0, $7226 = 0;
var $7227 = 0, $7228 = 0, $7229 = 0, $723 = 0, $7230 = 0, $7231 = 0, $7232 = 0, $7233 = 0, $7234 = 0, $7235 = 0, $7236 = 0, $7237 = 0, $7238 = 0, $7239 = 0, $724 = 0, $7240 = 0, $7241 = 0, $7242 = 0, $7243 = 0, $7244 = 0;
var $7245 = 0, $7246 = 0, $7247 = 0, $7248 = 0, $7249 = 0, $725 = 0, $7250 = 0, $7251 = 0, $7252 = 0, $7253 = 0, $7254 = 0, $7255 = 0, $7256 = 0, $7257 = 0, $7258 = 0, $7259 = 0, $726 = 0, $7260 = 0, $7261 = 0, $7262 = 0;
var $7263 = 0, $7264 = 0, $7265 = 0, $7266 = 0, $7267 = 0, $7268 = 0, $7269 = 0, $727 = 0, $7270 = 0, $7271 = 0, $7272 = 0, $7273 = 0, $7274 = 0, $7275 = 0, $7276 = 0, $7277 = 0, $7278 = 0, $7279 = 0, $728 = 0, $7280 = 0;
var $7281 = 0, $7282 = 0, $7283 = 0, $7284 = 0, $7285 = 0, $7286 = 0, $7287 = 0, $7288 = 0, $7289 = 0, $729 = 0, $7290 = 0, $7291 = 0, $7292 = 0, $7293 = 0, $7294 = 0, $7295 = 0, $7296 = 0, $7297 = 0, $7298 = 0, $7299 = 0;
var $73 = 0, $730 = 0, $7300 = 0, $7301 = 0, $7302 = 0, $7303 = 0, $7304 = 0, $7305 = 0, $7306 = 0, $7307 = 0, $7308 = 0, $7309 = 0, $731 = 0, $7310 = 0, $7311 = 0, $7312 = 0, $7313 = 0, $7314 = 0, $7315 = 0, $7316 = 0;
var $7317 = 0, $7318 = 0, $7319 = 0, $732 = 0, $7320 = 0, $7321 = 0, $7322 = 0, $7323 = 0, $7324 = 0, $7325 = 0, $7326 = 0, $7327 = 0, $7328 = 0, $7329 = 0, $733 = 0, $7330 = 0, $7331 = 0, $7332 = 0, $7333 = 0, $7334 = 0;
var $7335 = 0, $7336 = 0, $7337 = 0, $7338 = 0, $7339 = 0, $734 = 0, $7340 = 0, $7341 = 0, $7342 = 0, $7343 = 0, $7344 = 0, $7345 = 0, $7346 = 0, $7347 = 0, $7348 = 0, $7349 = 0, $735 = 0, $7350 = 0, $7351 = 0, $7352 = 0;
var $7353 = 0, $7354 = 0, $7355 = 0, $7356 = 0, $7357 = 0, $7358 = 0, $7359 = 0, $736 = 0, $7360 = 0, $7361 = 0, $7362 = 0, $7363 = 0, $7364 = 0, $7365 = 0, $7366 = 0, $7367 = 0, $7368 = 0, $7369 = 0, $737 = 0, $7370 = 0;
var $7371 = 0, $7372 = 0, $7373 = 0, $7374 = 0, $7375 = 0, $7376 = 0, $7377 = 0, $7378 = 0, $7379 = 0, $738 = 0, $7380 = 0, $7381 = 0, $7382 = 0, $7383 = 0, $7384 = 0, $7385 = 0, $7386 = 0, $7387 = 0, $7388 = 0, $7389 = 0;
var $739 = 0, $7390 = 0, $7391 = 0, $7392 = 0, $7393 = 0, $7394 = 0, $7395 = 0, $7396 = 0, $7397 = 0, $7398 = 0, $7399 = 0, $74 = 0, $740 = 0, $7400 = 0, $7401 = 0, $7402 = 0, $7403 = 0, $7404 = 0, $7405 = 0, $7406 = 0;
var $7407 = 0, $7408 = 0, $7409 = 0, $741 = 0, $7410 = 0, $7411 = 0, $7412 = 0, $7413 = 0, $7414 = 0, $7415 = 0, $7416 = 0, $7417 = 0, $7418 = 0, $7419 = 0, $742 = 0, $7420 = 0, $7421 = 0, $7422 = 0, $7423 = 0, $7424 = 0;
var $7425 = 0, $7426 = 0, $7427 = 0, $7428 = 0, $7429 = 0, $743 = 0, $7430 = 0, $7431 = 0, $7432 = 0, $7433 = 0, $7434 = 0, $7435 = 0, $7436 = 0, $7437 = 0, $7438 = 0, $7439 = 0, $744 = 0, $7440 = 0, $7441 = 0, $7442 = 0;
var $7443 = 0, $7444 = 0, $7445 = 0, $7446 = 0, $7447 = 0, $7448 = 0, $7449 = 0, $745 = 0, $7450 = 0, $7451 = 0, $7452 = 0, $7453 = 0, $7454 = 0, $7455 = 0, $7456 = 0, $7457 = 0, $7458 = 0, $7459 = 0, $746 = 0, $7460 = 0;
var $7461 = 0, $7462 = 0, $7463 = 0, $7464 = 0, $7465 = 0, $7466 = 0, $7467 = 0, $7468 = 0, $7469 = 0, $747 = 0, $7470 = 0, $7471 = 0, $7472 = 0, $7473 = 0, $7474 = 0, $7475 = 0, $7476 = 0, $7477 = 0, $7478 = 0, $7479 = 0;
var $748 = 0, $7480 = 0, $7481 = 0, $7482 = 0, $7483 = 0, $7484 = 0, $7485 = 0, $7486 = 0, $7487 = 0, $7488 = 0, $7489 = 0, $749 = 0, $7490 = 0, $7491 = 0, $7492 = 0, $7493 = 0, $7494 = 0, $7495 = 0, $7496 = 0, $7497 = 0;
var $7498 = 0, $7499 = 0, $75 = 0, $750 = 0, $7500 = 0, $7501 = 0, $7502 = 0, $7503 = 0, $7504 = 0, $7505 = 0, $7506 = 0, $7507 = 0, $7508 = 0, $7509 = 0, $751 = 0, $7510 = 0, $7511 = 0, $7512 = 0, $7513 = 0, $7514 = 0;
var $7515 = 0, $7516 = 0, $7517 = 0, $7518 = 0, $7519 = 0, $752 = 0, $7520 = 0, $7521 = 0, $7522 = 0, $7523 = 0, $7524 = 0, $7525 = 0, $7526 = 0, $7527 = 0, $7528 = 0, $7529 = 0, $753 = 0, $7530 = 0, $7531 = 0, $7532 = 0;
var $7533 = 0, $7534 = 0, $7535 = 0, $7536 = 0, $7537 = 0, $7538 = 0, $7539 = 0, $754 = 0, $7540 = 0, $7541 = 0, $7542 = 0, $7543 = 0, $7544 = 0, $7545 = 0, $7546 = 0, $7547 = 0, $7548 = 0, $7549 = 0, $755 = 0, $7550 = 0;
var $7551 = 0, $7552 = 0, $7553 = 0, $7554 = 0, $7555 = 0, $7556 = 0, $7557 = 0, $7558 = 0, $7559 = 0, $756 = 0, $7560 = 0, $7561 = 0, $7562 = 0, $7563 = 0, $7564 = 0, $7565 = 0, $7566 = 0, $7567 = 0, $7568 = 0, $7569 = 0;
var $757 = 0, $7570 = 0, $7571 = 0, $7572 = 0, $7573 = 0, $7574 = 0, $7575 = 0, $7576 = 0, $7577 = 0, $7578 = 0, $7579 = 0, $758 = 0, $7580 = 0, $7581 = 0, $7582 = 0, $7583 = 0, $7584 = 0, $7585 = 0, $7586 = 0, $7587 = 0;
var $7588 = 0, $7589 = 0, $759 = 0, $7590 = 0, $7591 = 0, $7592 = 0, $7593 = 0, $7594 = 0, $7595 = 0, $7596 = 0, $7597 = 0, $7598 = 0, $7599 = 0, $76 = 0, $760 = 0, $7600 = 0, $7601 = 0, $7602 = 0, $7603 = 0, $7604 = 0;
var $7605 = 0, $7606 = 0, $7607 = 0, $7608 = 0, $7609 = 0, $761 = 0, $7610 = 0, $7611 = 0, $7612 = 0, $7613 = 0, $7614 = 0, $7615 = 0, $7616 = 0, $7617 = 0, $7618 = 0, $7619 = 0, $762 = 0, $7620 = 0, $7621 = 0, $7622 = 0;
var $7623 = 0, $7624 = 0, $7625 = 0, $7626 = 0, $7627 = 0, $7628 = 0, $7629 = 0, $763 = 0, $7630 = 0, $7631 = 0, $7632 = 0, $7633 = 0, $7634 = 0, $7635 = 0, $7636 = 0, $7637 = 0, $7638 = 0, $7639 = 0, $764 = 0, $7640 = 0;
var $7641 = 0, $7642 = 0, $7643 = 0, $7644 = 0, $7645 = 0, $7646 = 0, $7647 = 0, $7648 = 0, $7649 = 0, $765 = 0, $7650 = 0, $7651 = 0, $7652 = 0, $7653 = 0, $7654 = 0, $7655 = 0, $7656 = 0, $7657 = 0, $7658 = 0, $7659 = 0;
var $766 = 0, $7660 = 0, $7661 = 0, $7662 = 0, $7663 = 0, $7664 = 0, $7665 = 0, $7666 = 0, $7667 = 0, $7668 = 0, $7669 = 0, $767 = 0, $7670 = 0, $7671 = 0, $7672 = 0, $7673 = 0, $7674 = 0, $7675 = 0, $7676 = 0, $7677 = 0;
var $7678 = 0, $7679 = 0, $768 = 0, $7680 = 0, $7681 = 0, $7682 = 0, $7683 = 0, $7684 = 0, $7685 = 0, $7686 = 0, $7687 = 0, $7688 = 0, $7689 = 0, $769 = 0, $7690 = 0, $7691 = 0, $7692 = 0, $7693 = 0, $7694 = 0, $7695 = 0;
var $7696 = 0, $7697 = 0, $7698 = 0, $7699 = 0, $77 = 0, $770 = 0, $7700 = 0, $7701 = 0, $7702 = 0, $7703 = 0, $7704 = 0, $7705 = 0, $7706 = 0, $7707 = 0, $7708 = 0, $7709 = 0, $771 = 0, $7710 = 0, $7711 = 0, $7712 = 0;
var $7713 = 0, $7714 = 0, $7715 = 0, $7716 = 0, $7717 = 0, $7718 = 0, $7719 = 0, $772 = 0, $7720 = 0, $7721 = 0, $7722 = 0, $7723 = 0, $7724 = 0, $7725 = 0, $7726 = 0, $7727 = 0, $7728 = 0, $7729 = 0, $773 = 0, $7730 = 0;
var $7731 = 0, $7732 = 0, $7733 = 0, $7734 = 0, $7735 = 0, $7736 = 0, $7737 = 0, $7738 = 0, $7739 = 0, $774 = 0, $7740 = 0, $7741 = 0, $7742 = 0, $7743 = 0, $7744 = 0, $7745 = 0, $7746 = 0, $7747 = 0, $7748 = 0, $7749 = 0;
var $775 = 0, $7750 = 0, $7751 = 0, $7752 = 0, $7753 = 0, $7754 = 0, $7755 = 0, $7756 = 0, $7757 = 0, $7758 = 0, $7759 = 0, $776 = 0, $7760 = 0, $7761 = 0, $7762 = 0, $7763 = 0, $7764 = 0, $7765 = 0, $7766 = 0, $7767 = 0;
var $7768 = 0, $7769 = 0, $777 = 0, $7770 = 0, $7771 = 0, $7772 = 0, $7773 = 0, $7774 = 0, $7775 = 0, $7776 = 0, $7777 = 0, $7778 = 0, $7779 = 0, $778 = 0, $7780 = 0, $7781 = 0, $7782 = 0, $7783 = 0, $7784 = 0, $7785 = 0;
var $7786 = 0, $7787 = 0, $7788 = 0, $7789 = 0, $779 = 0, $7790 = 0, $7791 = 0, $7792 = 0, $7793 = 0, $7794 = 0, $7795 = 0, $7796 = 0, $7797 = 0, $7798 = 0, $7799 = 0, $78 = 0, $780 = 0, $7800 = 0, $7801 = 0, $7802 = 0;
var $7803 = 0, $7804 = 0, $7805 = 0, $7806 = 0, $7807 = 0, $7808 = 0, $7809 = 0, $781 = 0, $7810 = 0, $7811 = 0, $7812 = 0, $7813 = 0, $7814 = 0, $7815 = 0, $7816 = 0, $7817 = 0, $7818 = 0, $7819 = 0, $782 = 0, $7820 = 0;
var $7821 = 0, $7822 = 0, $7823 = 0, $7824 = 0, $7825 = 0, $7826 = 0, $7827 = 0, $7828 = 0, $7829 = 0, $783 = 0, $7830 = 0, $7831 = 0, $7832 = 0, $7833 = 0, $7834 = 0, $7835 = 0, $7836 = 0, $7837 = 0, $7838 = 0, $7839 = 0;
var $784 = 0, $7840 = 0, $7841 = 0, $7842 = 0, $7843 = 0, $7844 = 0, $7845 = 0, $7846 = 0, $7847 = 0, $7848 = 0, $7849 = 0, $785 = 0, $7850 = 0, $7851 = 0, $7852 = 0, $7853 = 0, $7854 = 0, $7855 = 0, $7856 = 0, $7857 = 0;
var $7858 = 0, $7859 = 0, $786 = 0, $7860 = 0, $7861 = 0, $7862 = 0, $7863 = 0, $7864 = 0, $7865 = 0, $7866 = 0, $7867 = 0, $7868 = 0, $7869 = 0, $787 = 0, $7870 = 0, $7871 = 0, $7872 = 0, $7873 = 0, $7874 = 0, $7875 = 0;
var $7876 = 0, $7877 = 0, $7878 = 0, $7879 = 0, $788 = 0, $7880 = 0, $7881 = 0, $7882 = 0, $7883 = 0, $7884 = 0, $7885 = 0, $7886 = 0, $7887 = 0, $7888 = 0, $7889 = 0, $789 = 0, $7890 = 0, $7891 = 0, $7892 = 0, $7893 = 0;
var $7894 = 0, $7895 = 0, $7896 = 0, $7897 = 0, $7898 = 0, $7899 = 0, $79 = 0, $790 = 0, $7900 = 0, $7901 = 0, $7902 = 0, $7903 = 0, $7904 = 0, $7905 = 0, $7906 = 0, $7907 = 0, $7908 = 0, $7909 = 0, $791 = 0, $7910 = 0;
var $7911 = 0, $7912 = 0, $7913 = 0, $7914 = 0, $7915 = 0, $7916 = 0, $7917 = 0, $7918 = 0, $7919 = 0, $792 = 0, $7920 = 0, $7921 = 0, $7922 = 0, $7923 = 0, $7924 = 0, $7925 = 0, $7926 = 0, $7927 = 0, $7928 = 0, $7929 = 0;
var $793 = 0, $7930 = 0, $7931 = 0, $7932 = 0, $7933 = 0, $7934 = 0, $7935 = 0, $7936 = 0, $7937 = 0, $7938 = 0, $7939 = 0, $794 = 0, $7940 = 0, $7941 = 0, $7942 = 0, $7943 = 0, $7944 = 0, $7945 = 0, $7946 = 0, $7947 = 0;
var $7948 = 0, $7949 = 0, $795 = 0, $7950 = 0, $7951 = 0, $7952 = 0, $7953 = 0, $7954 = 0, $7955 = 0, $7956 = 0, $7957 = 0, $7958 = 0, $7959 = 0, $796 = 0, $7960 = 0, $7961 = 0, $7962 = 0, $7963 = 0, $7964 = 0, $7965 = 0;
var $7966 = 0, $7967 = 0, $7968 = 0, $7969 = 0, $797 = 0, $7970 = 0, $7971 = 0, $7972 = 0, $7973 = 0, $7974 = 0, $7975 = 0, $7976 = 0, $7977 = 0, $7978 = 0, $7979 = 0, $798 = 0, $7980 = 0, $7981 = 0, $7982 = 0, $7983 = 0;
var $7984 = 0, $7985 = 0, $7986 = 0, $7987 = 0, $7988 = 0, $7989 = 0, $799 = 0, $7990 = 0, $7991 = 0, $7992 = 0, $7993 = 0, $7994 = 0, $7995 = 0, $7996 = 0, $7997 = 0, $7998 = 0, $7999 = 0, $8 = 0, $80 = 0, $800 = 0;
var $8000 = 0, $8001 = 0, $8002 = 0, $8003 = 0, $8004 = 0, $8005 = 0, $8006 = 0, $8007 = 0, $8008 = 0, $8009 = 0, $801 = 0, $8010 = 0, $8011 = 0, $8012 = 0, $8013 = 0, $8014 = 0, $8015 = 0, $8016 = 0, $8017 = 0, $8018 = 0;
var $8019 = 0, $802 = 0, $8020 = 0, $8021 = 0, $8022 = 0, $8023 = 0, $8024 = 0, $8025 = 0, $8026 = 0, $8027 = 0, $8028 = 0, $8029 = 0, $803 = 0, $8030 = 0, $8031 = 0, $8032 = 0, $8033 = 0, $8034 = 0, $8035 = 0, $8036 = 0;
var $8037 = 0, $8038 = 0, $8039 = 0, $804 = 0, $8040 = 0, $8041 = 0, $8042 = 0, $8043 = 0, $8044 = 0, $8045 = 0, $8046 = 0, $8047 = 0, $8048 = 0, $8049 = 0, $805 = 0, $8050 = 0, $8051 = 0, $8052 = 0, $8053 = 0, $8054 = 0;
var $8055 = 0, $8056 = 0, $8057 = 0, $8058 = 0, $8059 = 0, $806 = 0, $8060 = 0, $8061 = 0, $8062 = 0, $8063 = 0, $8064 = 0, $8065 = 0, $8066 = 0, $8067 = 0, $8068 = 0, $8069 = 0, $807 = 0, $8070 = 0, $8071 = 0, $8072 = 0;
var $8073 = 0, $8074 = 0, $8075 = 0, $8076 = 0, $8077 = 0, $8078 = 0, $8079 = 0, $808 = 0, $8080 = 0, $8081 = 0, $8082 = 0, $8083 = 0, $8084 = 0, $8085 = 0, $8086 = 0, $8087 = 0, $8088 = 0, $8089 = 0, $809 = 0, $8090 = 0;
var $8091 = 0, $8092 = 0, $8093 = 0, $8094 = 0, $8095 = 0, $8096 = 0, $8097 = 0, $8098 = 0, $8099 = 0, $81 = 0, $810 = 0, $8100 = 0, $8101 = 0, $8102 = 0, $8103 = 0, $8104 = 0, $8105 = 0, $8106 = 0, $8107 = 0, $8108 = 0;
var $8109 = 0, $811 = 0, $8110 = 0, $8111 = 0, $8112 = 0, $8113 = 0, $8114 = 0, $8115 = 0, $8116 = 0, $8117 = 0, $8118 = 0, $8119 = 0, $812 = 0, $8120 = 0, $8121 = 0, $8122 = 0, $8123 = 0, $8124 = 0, $8125 = 0, $8126 = 0;
var $8127 = 0, $8128 = 0, $8129 = 0, $813 = 0, $8130 = 0, $8131 = 0, $8132 = 0, $8133 = 0, $8134 = 0, $8135 = 0, $8136 = 0, $8137 = 0, $8138 = 0, $8139 = 0, $814 = 0, $8140 = 0, $8141 = 0, $8142 = 0, $8143 = 0, $8144 = 0;
var $8145 = 0, $8146 = 0, $8147 = 0, $8148 = 0, $8149 = 0, $815 = 0, $8150 = 0, $8151 = 0, $8152 = 0, $8153 = 0, $8154 = 0, $8155 = 0, $8156 = 0, $8157 = 0, $8158 = 0, $8159 = 0, $816 = 0, $8160 = 0, $8161 = 0, $8162 = 0;
var $8163 = 0, $8164 = 0, $8165 = 0, $8166 = 0, $8167 = 0, $8168 = 0, $8169 = 0, $817 = 0, $8170 = 0, $8171 = 0, $8172 = 0, $8173 = 0, $8174 = 0, $8175 = 0, $8176 = 0, $8177 = 0, $8178 = 0, $8179 = 0, $818 = 0, $8180 = 0;
var $8181 = 0, $8182 = 0, $8183 = 0, $8184 = 0, $8185 = 0, $8186 = 0, $8187 = 0, $8188 = 0, $8189 = 0, $819 = 0, $8190 = 0, $8191 = 0, $8192 = 0, $8193 = 0, $8194 = 0, $8195 = 0, $8196 = 0, $8197 = 0, $8198 = 0, $8199 = 0;
var $82 = 0, $820 = 0, $8200 = 0, $8201 = 0, $8202 = 0, $8203 = 0, $8204 = 0, $8205 = 0, $8206 = 0, $8207 = 0, $8208 = 0, $8209 = 0, $821 = 0, $8210 = 0, $8211 = 0, $8212 = 0, $8213 = 0, $8214 = 0, $8215 = 0, $8216 = 0;
var $8217 = 0, $8218 = 0, $8219 = 0, $822 = 0, $8220 = 0, $8221 = 0, $8222 = 0, $8223 = 0, $8224 = 0, $8225 = 0, $8226 = 0, $8227 = 0, $8228 = 0, $8229 = 0, $823 = 0, $8230 = 0, $8231 = 0, $8232 = 0, $8233 = 0, $8234 = 0;
var $8235 = 0, $8236 = 0, $8237 = 0, $8238 = 0, $8239 = 0, $824 = 0, $8240 = 0, $8241 = 0, $8242 = 0, $8243 = 0, $8244 = 0, $8245 = 0, $8246 = 0, $8247 = 0, $8248 = 0, $8249 = 0, $825 = 0, $8250 = 0, $8251 = 0, $8252 = 0;
var $8253 = 0, $8254 = 0, $8255 = 0, $8256 = 0, $8257 = 0, $8258 = 0, $8259 = 0, $826 = 0, $8260 = 0, $8261 = 0, $8262 = 0, $8263 = 0, $8264 = 0, $8265 = 0, $8266 = 0, $8267 = 0, $8268 = 0, $8269 = 0, $827 = 0, $8270 = 0;
var $8271 = 0, $8272 = 0, $8273 = 0, $8274 = 0, $8275 = 0, $8276 = 0, $8277 = 0, $8278 = 0, $8279 = 0, $828 = 0, $8280 = 0, $8281 = 0, $8282 = 0, $8283 = 0, $8284 = 0, $8285 = 0, $8286 = 0, $8287 = 0, $8288 = 0, $8289 = 0;
var $829 = 0, $8290 = 0, $8291 = 0, $8292 = 0, $8293 = 0, $8294 = 0, $8295 = 0, $8296 = 0, $8297 = 0, $8298 = 0, $8299 = 0, $83 = 0, $830 = 0, $8300 = 0, $8301 = 0, $8302 = 0, $8303 = 0, $8304 = 0, $8305 = 0, $8306 = 0;
var $8307 = 0, $8308 = 0, $8309 = 0, $831 = 0, $8310 = 0, $8311 = 0, $8312 = 0, $8313 = 0, $8314 = 0, $8315 = 0, $8316 = 0, $8317 = 0, $8318 = 0, $8319 = 0, $832 = 0, $8320 = 0, $8321 = 0, $8322 = 0, $8323 = 0, $8324 = 0;
var $8325 = 0, $8326 = 0, $8327 = 0, $8328 = 0, $8329 = 0, $833 = 0, $8330 = 0, $8331 = 0, $8332 = 0, $8333 = 0, $8334 = 0, $8335 = 0, $8336 = 0, $8337 = 0, $8338 = 0, $8339 = 0, $834 = 0, $8340 = 0, $8341 = 0, $8342 = 0;
var $8343 = 0, $8344 = 0, $8345 = 0, $8346 = 0, $8347 = 0, $8348 = 0, $8349 = 0, $835 = 0, $8350 = 0, $8351 = 0, $8352 = 0, $8353 = 0, $8354 = 0, $8355 = 0, $8356 = 0, $8357 = 0, $8358 = 0, $8359 = 0, $836 = 0, $8360 = 0;
var $8361 = 0, $8362 = 0, $8363 = 0, $8364 = 0, $8365 = 0, $8366 = 0, $8367 = 0, $8368 = 0, $8369 = 0, $837 = 0, $8370 = 0, $8371 = 0, $8372 = 0, $8373 = 0, $8374 = 0, $8375 = 0, $8376 = 0, $8377 = 0, $8378 = 0, $8379 = 0;
var $838 = 0, $8380 = 0, $8381 = 0, $8382 = 0, $8383 = 0, $8384 = 0, $8385 = 0, $8386 = 0, $8387 = 0, $8388 = 0, $8389 = 0, $839 = 0, $8390 = 0, $8391 = 0, $8392 = 0, $8393 = 0, $8394 = 0, $8395 = 0, $8396 = 0, $8397 = 0;
var $8398 = 0, $8399 = 0, $84 = 0, $840 = 0, $8400 = 0, $8401 = 0, $8402 = 0, $8403 = 0, $8404 = 0, $8405 = 0, $8406 = 0, $8407 = 0, $8408 = 0, $8409 = 0, $841 = 0, $8410 = 0, $8411 = 0, $8412 = 0, $8413 = 0, $8414 = 0;
var $8415 = 0, $8416 = 0, $8417 = 0, $8418 = 0, $8419 = 0, $842 = 0, $8420 = 0, $8421 = 0, $8422 = 0, $8423 = 0, $8424 = 0, $8425 = 0, $8426 = 0, $8427 = 0, $8428 = 0, $8429 = 0, $843 = 0, $8430 = 0, $8431 = 0, $8432 = 0;
var $8433 = 0, $8434 = 0, $8435 = 0, $8436 = 0, $8437 = 0, $8438 = 0, $8439 = 0, $844 = 0, $8440 = 0, $8441 = 0, $8442 = 0, $8443 = 0, $8444 = 0, $8445 = 0, $8446 = 0, $8447 = 0, $8448 = 0, $8449 = 0, $845 = 0, $8450 = 0;
var $8451 = 0, $8452 = 0, $8453 = 0, $8454 = 0, $8455 = 0, $8456 = 0, $8457 = 0, $8458 = 0, $8459 = 0, $846 = 0, $8460 = 0, $8461 = 0, $8462 = 0, $8463 = 0, $8464 = 0, $8465 = 0, $8466 = 0, $8467 = 0, $8468 = 0, $8469 = 0;
var $847 = 0, $8470 = 0, $8471 = 0, $8472 = 0, $8473 = 0, $8474 = 0, $8475 = 0, $8476 = 0, $8477 = 0, $8478 = 0, $8479 = 0, $848 = 0, $8480 = 0, $8481 = 0, $8482 = 0, $8483 = 0, $8484 = 0, $8485 = 0, $8486 = 0, $8487 = 0;
var $8488 = 0, $8489 = 0, $849 = 0, $8490 = 0, $8491 = 0, $8492 = 0, $8493 = 0, $8494 = 0, $8495 = 0, $8496 = 0, $8497 = 0, $8498 = 0, $8499 = 0, $85 = 0, $850 = 0, $8500 = 0, $8501 = 0, $8502 = 0, $8503 = 0, $8504 = 0;
var $8505 = 0, $8506 = 0, $8507 = 0, $8508 = 0, $8509 = 0, $851 = 0, $8510 = 0, $8511 = 0, $8512 = 0, $8513 = 0, $8514 = 0, $8515 = 0, $8516 = 0, $8517 = 0, $8518 = 0, $8519 = 0, $852 = 0, $8520 = 0, $8521 = 0, $8522 = 0;
var $8523 = 0, $8524 = 0, $8525 = 0, $8526 = 0, $8527 = 0, $8528 = 0, $8529 = 0, $853 = 0, $8530 = 0, $8531 = 0, $8532 = 0, $8533 = 0, $8534 = 0, $8535 = 0, $8536 = 0, $8537 = 0, $8538 = 0, $8539 = 0, $854 = 0, $8540 = 0;
var $8541 = 0, $8542 = 0, $8543 = 0, $8544 = 0, $8545 = 0, $8546 = 0, $8547 = 0, $8548 = 0, $8549 = 0, $855 = 0, $8550 = 0, $8551 = 0, $8552 = 0, $8553 = 0, $8554 = 0, $8555 = 0, $8556 = 0, $8557 = 0, $8558 = 0, $8559 = 0;
var $856 = 0, $8560 = 0, $8561 = 0, $8562 = 0, $8563 = 0, $8564 = 0, $8565 = 0, $8566 = 0, $8567 = 0, $8568 = 0, $8569 = 0, $857 = 0, $8570 = 0, $8571 = 0, $8572 = 0, $8573 = 0, $8574 = 0, $8575 = 0, $8576 = 0, $8577 = 0;
var $8578 = 0, $8579 = 0, $858 = 0, $8580 = 0, $8581 = 0, $8582 = 0, $8583 = 0, $8584 = 0, $8585 = 0, $8586 = 0, $8587 = 0, $8588 = 0, $8589 = 0, $859 = 0, $8590 = 0, $8591 = 0, $8592 = 0, $8593 = 0, $8594 = 0, $8595 = 0;
var $8596 = 0, $8597 = 0, $8598 = 0, $8599 = 0, $86 = 0, $860 = 0, $8600 = 0, $8601 = 0, $8602 = 0, $8603 = 0, $8604 = 0, $8605 = 0, $8606 = 0, $8607 = 0, $8608 = 0, $8609 = 0, $861 = 0, $8610 = 0, $8611 = 0, $8612 = 0;
var $8613 = 0, $8614 = 0, $8615 = 0, $8616 = 0, $8617 = 0, $8618 = 0, $8619 = 0, $862 = 0, $8620 = 0, $8621 = 0, $8622 = 0, $8623 = 0, $8624 = 0, $8625 = 0, $8626 = 0, $8627 = 0, $8628 = 0, $8629 = 0, $863 = 0, $8630 = 0;
var $8631 = 0, $8632 = 0, $8633 = 0, $8634 = 0, $8635 = 0, $8636 = 0, $8637 = 0, $8638 = 0, $8639 = 0, $864 = 0, $8640 = 0, $8641 = 0, $8642 = 0, $8643 = 0, $8644 = 0, $8645 = 0, $8646 = 0, $8647 = 0, $8648 = 0, $8649 = 0;
var $865 = 0, $8650 = 0, $8651 = 0, $8652 = 0, $8653 = 0, $8654 = 0, $8655 = 0, $8656 = 0, $8657 = 0, $8658 = 0, $8659 = 0, $866 = 0, $8660 = 0, $8661 = 0, $8662 = 0, $8663 = 0, $8664 = 0, $8665 = 0, $8666 = 0, $8667 = 0;
var $8668 = 0, $8669 = 0, $867 = 0, $8670 = 0, $8671 = 0, $8672 = 0, $8673 = 0, $8674 = 0, $8675 = 0, $8676 = 0, $8677 = 0, $8678 = 0, $8679 = 0, $868 = 0, $8680 = 0, $8681 = 0, $8682 = 0, $8683 = 0, $8684 = 0, $8685 = 0;
var $8686 = 0, $8687 = 0, $8688 = 0, $8689 = 0, $869 = 0, $8690 = 0, $8691 = 0, $8692 = 0, $8693 = 0, $8694 = 0, $8695 = 0, $8696 = 0, $8697 = 0, $8698 = 0, $8699 = 0, $87 = 0, $870 = 0, $8700 = 0, $8701 = 0, $8702 = 0;
var $8703 = 0, $8704 = 0, $8705 = 0, $8706 = 0, $8707 = 0, $8708 = 0, $8709 = 0, $871 = 0, $8710 = 0, $8711 = 0, $8712 = 0, $8713 = 0, $8714 = 0, $8715 = 0, $8716 = 0, $8717 = 0, $8718 = 0, $8719 = 0, $872 = 0, $8720 = 0;
var $8721 = 0, $8722 = 0, $8723 = 0, $8724 = 0, $8725 = 0, $8726 = 0, $8727 = 0, $8728 = 0, $8729 = 0, $873 = 0, $8730 = 0, $8731 = 0, $8732 = 0, $8733 = 0, $8734 = 0, $8735 = 0, $8736 = 0, $8737 = 0, $8738 = 0, $8739 = 0;
var $874 = 0, $8740 = 0, $8741 = 0, $8742 = 0, $8743 = 0, $8744 = 0, $8745 = 0, $8746 = 0, $8747 = 0, $8748 = 0, $8749 = 0, $875 = 0, $8750 = 0, $8751 = 0, $8752 = 0, $8753 = 0, $8754 = 0, $8755 = 0, $8756 = 0, $8757 = 0;
var $8758 = 0, $8759 = 0, $876 = 0, $8760 = 0, $8761 = 0, $8762 = 0, $8763 = 0, $8764 = 0, $8765 = 0, $8766 = 0, $8767 = 0, $8768 = 0, $8769 = 0, $877 = 0, $8770 = 0, $8771 = 0, $8772 = 0, $8773 = 0, $8774 = 0, $8775 = 0;
var $8776 = 0, $8777 = 0, $8778 = 0, $8779 = 0, $878 = 0, $8780 = 0, $8781 = 0, $8782 = 0, $8783 = 0, $8784 = 0, $8785 = 0, $8786 = 0, $8787 = 0, $8788 = 0, $8789 = 0, $879 = 0, $8790 = 0, $8791 = 0, $8792 = 0, $8793 = 0;
var $8794 = 0, $8795 = 0, $8796 = 0, $8797 = 0, $8798 = 0, $8799 = 0, $88 = 0, $880 = 0, $8800 = 0, $8801 = 0, $8802 = 0, $8803 = 0, $8804 = 0, $8805 = 0, $8806 = 0, $8807 = 0, $8808 = 0, $8809 = 0, $881 = 0, $8810 = 0;
var $8811 = 0, $8812 = 0, $8813 = 0, $8814 = 0, $8815 = 0, $8816 = 0, $8817 = 0, $8818 = 0, $8819 = 0, $882 = 0, $8820 = 0, $8821 = 0, $8822 = 0, $8823 = 0, $8824 = 0, $8825 = 0, $8826 = 0, $8827 = 0, $8828 = 0, $8829 = 0;
var $883 = 0, $8830 = 0, $8831 = 0, $8832 = 0, $8833 = 0, $8834 = 0, $8835 = 0, $8836 = 0, $8837 = 0, $8838 = 0, $8839 = 0, $884 = 0, $8840 = 0, $8841 = 0, $8842 = 0, $8843 = 0, $8844 = 0, $8845 = 0, $8846 = 0, $8847 = 0;
var $8848 = 0, $8849 = 0, $885 = 0, $8850 = 0, $8851 = 0, $8852 = 0, $8853 = 0, $8854 = 0, $8855 = 0, $8856 = 0, $8857 = 0, $8858 = 0, $8859 = 0, $886 = 0, $8860 = 0, $8861 = 0, $8862 = 0, $8863 = 0, $8864 = 0, $8865 = 0;
var $8866 = 0, $8867 = 0, $8868 = 0, $8869 = 0, $887 = 0, $8870 = 0, $8871 = 0, $8872 = 0, $8873 = 0, $8874 = 0, $8875 = 0, $8876 = 0, $8877 = 0, $8878 = 0, $8879 = 0, $888 = 0, $8880 = 0, $8881 = 0, $8882 = 0, $8883 = 0;
var $8884 = 0, $8885 = 0, $8886 = 0, $8887 = 0, $8888 = 0, $8889 = 0, $889 = 0, $8890 = 0, $8891 = 0, $8892 = 0, $8893 = 0, $8894 = 0, $8895 = 0, $8896 = 0, $8897 = 0, $8898 = 0, $8899 = 0, $89 = 0, $890 = 0, $8900 = 0;
var $8901 = 0, $8902 = 0, $8903 = 0, $8904 = 0, $8905 = 0, $8906 = 0, $8907 = 0, $8908 = 0, $8909 = 0, $891 = 0, $8910 = 0, $8911 = 0, $8912 = 0, $8913 = 0, $8914 = 0, $8915 = 0, $8916 = 0, $8917 = 0, $8918 = 0, $8919 = 0;
var $892 = 0, $8920 = 0, $8921 = 0, $8922 = 0, $8923 = 0, $8924 = 0, $8925 = 0, $8926 = 0, $8927 = 0, $8928 = 0, $8929 = 0, $893 = 0, $8930 = 0, $8931 = 0, $8932 = 0, $8933 = 0, $8934 = 0, $8935 = 0, $8936 = 0, $8937 = 0;
var $8938 = 0, $8939 = 0, $894 = 0, $8940 = 0, $8941 = 0, $8942 = 0, $8943 = 0, $8944 = 0, $8945 = 0, $8946 = 0, $8947 = 0, $8948 = 0, $8949 = 0, $895 = 0, $8950 = 0, $8951 = 0, $8952 = 0, $8953 = 0, $8954 = 0, $8955 = 0;
var $8956 = 0, $8957 = 0, $8958 = 0, $8959 = 0, $896 = 0, $8960 = 0, $8961 = 0, $8962 = 0, $8963 = 0, $8964 = 0, $8965 = 0, $8966 = 0, $8967 = 0, $8968 = 0, $8969 = 0, $897 = 0, $8970 = 0, $8971 = 0, $8972 = 0, $8973 = 0;
var $8974 = 0, $8975 = 0, $8976 = 0, $8977 = 0, $8978 = 0, $8979 = 0, $898 = 0, $8980 = 0, $8981 = 0, $8982 = 0, $8983 = 0, $8984 = 0, $8985 = 0, $8986 = 0, $8987 = 0, $8988 = 0, $8989 = 0, $899 = 0, $8990 = 0, $8991 = 0;
var $8992 = 0, $8993 = 0, $8994 = 0, $8995 = 0, $8996 = 0, $8997 = 0, $8998 = 0, $8999 = 0, $9 = 0, $90 = 0, $900 = 0, $9000 = 0, $9001 = 0, $9002 = 0, $9003 = 0, $9004 = 0, $9005 = 0, $9006 = 0, $9007 = 0, $9008 = 0;
var $9009 = 0, $901 = 0, $9010 = 0, $9011 = 0, $9012 = 0, $9013 = 0, $9014 = 0, $9015 = 0, $9016 = 0, $9017 = 0, $9018 = 0, $9019 = 0, $902 = 0, $9020 = 0, $9021 = 0, $9022 = 0, $9023 = 0, $9024 = 0, $9025 = 0, $9026 = 0;
var $9027 = 0, $9028 = 0, $9029 = 0, $903 = 0, $9030 = 0, $9031 = 0, $9032 = 0, $9033 = 0, $9034 = 0, $9035 = 0, $9036 = 0, $9037 = 0, $9038 = 0, $9039 = 0, $904 = 0, $9040 = 0, $9041 = 0, $9042 = 0, $9043 = 0, $9044 = 0;
var $9045 = 0, $9046 = 0, $9047 = 0, $9048 = 0, $9049 = 0, $905 = 0, $9050 = 0, $9051 = 0, $9052 = 0, $9053 = 0, $9054 = 0, $9055 = 0, $9056 = 0, $9057 = 0, $9058 = 0, $9059 = 0, $906 = 0, $9060 = 0, $9061 = 0, $9062 = 0;
var $9063 = 0, $9064 = 0, $9065 = 0, $9066 = 0, $9067 = 0, $9068 = 0, $9069 = 0, $907 = 0, $9070 = 0, $9071 = 0, $9072 = 0, $9073 = 0, $9074 = 0, $9075 = 0, $9076 = 0, $9077 = 0, $9078 = 0, $9079 = 0, $908 = 0, $9080 = 0;
var $9081 = 0, $9082 = 0, $9083 = 0, $9084 = 0, $9085 = 0, $9086 = 0, $9087 = 0, $9088 = 0, $9089 = 0, $909 = 0, $9090 = 0, $9091 = 0, $9092 = 0, $9093 = 0, $9094 = 0, $9095 = 0, $9096 = 0, $9097 = 0, $9098 = 0, $9099 = 0;
var $91 = 0, $910 = 0, $9100 = 0, $9101 = 0, $9102 = 0, $9103 = 0, $9104 = 0, $9105 = 0, $9106 = 0, $9107 = 0, $9108 = 0, $9109 = 0, $911 = 0, $9110 = 0, $9111 = 0, $9112 = 0, $9113 = 0, $9114 = 0, $9115 = 0, $9116 = 0;
var $9117 = 0, $9118 = 0, $9119 = 0, $912 = 0, $9120 = 0, $9121 = 0, $9122 = 0, $9123 = 0, $9124 = 0, $9125 = 0, $9126 = 0, $9127 = 0, $9128 = 0, $9129 = 0, $913 = 0, $9130 = 0, $9131 = 0, $9132 = 0, $9133 = 0, $9134 = 0;
var $9135 = 0, $9136 = 0, $9137 = 0, $9138 = 0, $9139 = 0, $914 = 0, $9140 = 0, $9141 = 0, $9142 = 0, $9143 = 0, $9144 = 0, $9145 = 0, $9146 = 0, $9147 = 0, $9148 = 0, $9149 = 0, $915 = 0, $9150 = 0, $9151 = 0, $9152 = 0;
var $9153 = 0, $9154 = 0, $9155 = 0, $9156 = 0, $9157 = 0, $9158 = 0, $9159 = 0, $916 = 0, $9160 = 0, $9161 = 0, $9162 = 0, $9163 = 0, $9164 = 0, $9165 = 0, $9166 = 0, $9167 = 0, $9168 = 0, $9169 = 0, $917 = 0, $9170 = 0;
var $9171 = 0, $9172 = 0, $9173 = 0, $9174 = 0, $9175 = 0, $9176 = 0, $9177 = 0, $9178 = 0, $9179 = 0, $918 = 0, $9180 = 0, $9181 = 0, $9182 = 0, $9183 = 0, $9184 = 0, $9185 = 0, $9186 = 0, $9187 = 0, $9188 = 0, $9189 = 0;
var $919 = 0, $9190 = 0, $9191 = 0, $9192 = 0, $9193 = 0, $9194 = 0, $9195 = 0, $9196 = 0, $9197 = 0, $9198 = 0, $9199 = 0, $92 = 0, $920 = 0, $9200 = 0, $9201 = 0, $9202 = 0, $9203 = 0, $9204 = 0, $9205 = 0, $9206 = 0;
var $9207 = 0, $9208 = 0, $9209 = 0, $921 = 0, $9210 = 0, $9211 = 0, $9212 = 0, $9213 = 0, $9214 = 0, $9215 = 0, $9216 = 0, $9217 = 0, $9218 = 0, $9219 = 0, $922 = 0, $9220 = 0, $9221 = 0, $9222 = 0, $9223 = 0, $9224 = 0;
var $9225 = 0, $9226 = 0, $9227 = 0, $9228 = 0, $9229 = 0, $923 = 0, $9230 = 0, $9231 = 0, $9232 = 0, $9233 = 0, $9234 = 0, $9235 = 0, $9236 = 0, $9237 = 0, $9238 = 0, $9239 = 0, $924 = 0, $9240 = 0, $9241 = 0, $9242 = 0;
var $9243 = 0, $9244 = 0, $9245 = 0, $9246 = 0, $9247 = 0, $9248 = 0, $9249 = 0, $925 = 0, $9250 = 0, $9251 = 0, $9252 = 0, $9253 = 0, $9254 = 0, $9255 = 0, $9256 = 0, $9257 = 0, $9258 = 0, $9259 = 0, $926 = 0, $9260 = 0;
var $9261 = 0, $9262 = 0, $9263 = 0, $9264 = 0, $9265 = 0, $9266 = 0, $9267 = 0, $9268 = 0, $9269 = 0, $927 = 0, $9270 = 0, $9271 = 0, $9272 = 0, $9273 = 0, $9274 = 0, $9275 = 0, $9276 = 0, $9277 = 0, $9278 = 0, $9279 = 0;
var $928 = 0, $9280 = 0, $9281 = 0, $9282 = 0, $9283 = 0, $9284 = 0, $9285 = 0, $9286 = 0, $9287 = 0, $9288 = 0, $9289 = 0, $929 = 0, $9290 = 0, $9291 = 0, $9292 = 0, $9293 = 0, $9294 = 0, $9295 = 0, $9296 = 0, $9297 = 0;
var $9298 = 0, $9299 = 0, $93 = 0, $930 = 0, $9300 = 0, $9301 = 0, $9302 = 0, $9303 = 0, $9304 = 0, $9305 = 0, $9306 = 0, $9307 = 0, $9308 = 0, $9309 = 0, $931 = 0, $9310 = 0, $9311 = 0, $9312 = 0, $9313 = 0, $9314 = 0;
var $9315 = 0, $9316 = 0, $9317 = 0, $9318 = 0, $9319 = 0, $932 = 0, $9320 = 0, $9321 = 0, $9322 = 0, $9323 = 0, $9324 = 0, $9325 = 0, $9326 = 0, $9327 = 0, $9328 = 0, $9329 = 0, $933 = 0, $9330 = 0, $9331 = 0, $9332 = 0;
var $9333 = 0, $9334 = 0, $9335 = 0, $9336 = 0, $9337 = 0, $9338 = 0, $9339 = 0, $934 = 0, $9340 = 0, $9341 = 0, $9342 = 0, $9343 = 0, $9344 = 0, $9345 = 0, $9346 = 0, $9347 = 0, $9348 = 0, $9349 = 0, $935 = 0, $9350 = 0;
var $9351 = 0, $9352 = 0, $9353 = 0, $9354 = 0, $9355 = 0, $9356 = 0, $9357 = 0, $9358 = 0, $9359 = 0, $936 = 0, $9360 = 0, $9361 = 0, $9362 = 0, $9363 = 0, $9364 = 0, $9365 = 0, $9366 = 0, $9367 = 0, $9368 = 0, $9369 = 0;
var $937 = 0, $9370 = 0, $9371 = 0, $9372 = 0, $9373 = 0, $9374 = 0, $9375 = 0, $9376 = 0, $9377 = 0, $9378 = 0, $9379 = 0, $938 = 0, $9380 = 0, $9381 = 0, $9382 = 0, $9383 = 0, $9384 = 0, $9385 = 0, $9386 = 0, $9387 = 0;
var $9388 = 0, $9389 = 0, $939 = 0, $9390 = 0, $9391 = 0, $9392 = 0, $9393 = 0, $9394 = 0, $9395 = 0, $9396 = 0, $9397 = 0, $9398 = 0, $9399 = 0, $94 = 0, $940 = 0, $9400 = 0, $9401 = 0, $9402 = 0, $9403 = 0, $9404 = 0;
var $9405 = 0, $9406 = 0, $9407 = 0, $9408 = 0, $9409 = 0, $941 = 0, $9410 = 0, $9411 = 0, $9412 = 0, $9413 = 0, $9414 = 0, $9415 = 0, $9416 = 0, $9417 = 0, $9418 = 0, $9419 = 0, $942 = 0, $9420 = 0, $9421 = 0, $9422 = 0;
var $9423 = 0, $9424 = 0, $9425 = 0, $9426 = 0, $9427 = 0, $9428 = 0, $9429 = 0, $943 = 0, $9430 = 0, $9431 = 0, $9432 = 0, $9433 = 0, $9434 = 0, $9435 = 0, $9436 = 0, $9437 = 0, $9438 = 0, $9439 = 0, $944 = 0, $9440 = 0;
var $9441 = 0, $9442 = 0, $9443 = 0, $9444 = 0, $9445 = 0, $9446 = 0, $9447 = 0, $9448 = 0, $9449 = 0, $945 = 0, $9450 = 0, $9451 = 0, $9452 = 0, $9453 = 0, $9454 = 0, $9455 = 0, $9456 = 0, $9457 = 0, $9458 = 0, $9459 = 0;
var $946 = 0, $9460 = 0, $9461 = 0, $9462 = 0, $9463 = 0, $9464 = 0, $9465 = 0, $9466 = 0, $9467 = 0, $9468 = 0, $9469 = 0, $947 = 0, $9470 = 0, $9471 = 0, $9472 = 0, $9473 = 0, $9474 = 0, $9475 = 0, $9476 = 0, $9477 = 0;
var $9478 = 0, $9479 = 0, $948 = 0, $9480 = 0, $9481 = 0, $9482 = 0, $9483 = 0, $9484 = 0, $9485 = 0, $9486 = 0, $9487 = 0, $9488 = 0, $9489 = 0, $949 = 0, $9490 = 0, $9491 = 0, $9492 = 0, $9493 = 0, $9494 = 0, $9495 = 0;
var $9496 = 0, $9497 = 0, $9498 = 0, $9499 = 0, $95 = 0, $950 = 0, $9500 = 0, $9501 = 0, $9502 = 0, $9503 = 0, $9504 = 0, $9505 = 0, $9506 = 0, $9507 = 0, $9508 = 0, $9509 = 0, $951 = 0, $9510 = 0, $9511 = 0, $9512 = 0;
var $9513 = 0, $9514 = 0, $9515 = 0, $9516 = 0, $9517 = 0, $9518 = 0, $9519 = 0, $952 = 0, $9520 = 0, $9521 = 0, $9522 = 0, $9523 = 0, $9524 = 0, $9525 = 0, $9526 = 0, $9527 = 0, $9528 = 0, $9529 = 0, $953 = 0, $9530 = 0;
var $9531 = 0, $9532 = 0, $9533 = 0, $9534 = 0, $9535 = 0, $9536 = 0, $9537 = 0, $9538 = 0, $9539 = 0, $954 = 0, $9540 = 0, $9541 = 0, $9542 = 0, $9543 = 0, $9544 = 0, $9545 = 0, $9546 = 0, $9547 = 0, $9548 = 0, $9549 = 0;
var $955 = 0, $9550 = 0, $9551 = 0, $9552 = 0, $9553 = 0, $9554 = 0, $9555 = 0, $9556 = 0, $9557 = 0, $9558 = 0, $9559 = 0, $956 = 0, $9560 = 0, $9561 = 0, $9562 = 0, $9563 = 0, $9564 = 0, $9565 = 0, $9566 = 0, $9567 = 0;
var $9568 = 0, $9569 = 0, $957 = 0, $9570 = 0, $9571 = 0, $9572 = 0, $9573 = 0, $9574 = 0, $9575 = 0, $9576 = 0, $9577 = 0, $9578 = 0, $9579 = 0, $958 = 0, $9580 = 0, $9581 = 0, $9582 = 0, $9583 = 0, $9584 = 0, $9585 = 0;
var $9586 = 0, $9587 = 0, $9588 = 0, $9589 = 0, $959 = 0, $9590 = 0, $9591 = 0, $9592 = 0, $9593 = 0, $9594 = 0, $9595 = 0, $9596 = 0, $9597 = 0, $9598 = 0, $9599 = 0, $96 = 0, $960 = 0, $9600 = 0, $9601 = 0, $9602 = 0;
var $9603 = 0, $9604 = 0, $9605 = 0, $9606 = 0, $9607 = 0, $9608 = 0, $9609 = 0, $961 = 0, $9610 = 0, $9611 = 0, $9612 = 0, $9613 = 0, $9614 = 0, $9615 = 0, $9616 = 0, $9617 = 0, $9618 = 0, $9619 = 0, $962 = 0, $9620 = 0;
var $9621 = 0, $9622 = 0, $9623 = 0, $9624 = 0, $9625 = 0, $9626 = 0, $9627 = 0, $9628 = 0, $9629 = 0, $963 = 0, $9630 = 0, $9631 = 0, $9632 = 0, $9633 = 0, $9634 = 0, $9635 = 0, $9636 = 0, $9637 = 0, $9638 = 0, $9639 = 0;
var $964 = 0, $9640 = 0, $9641 = 0, $9642 = 0, $9643 = 0, $9644 = 0, $9645 = 0, $9646 = 0, $9647 = 0, $9648 = 0, $9649 = 0, $965 = 0, $9650 = 0, $9651 = 0, $9652 = 0, $9653 = 0, $9654 = 0, $9655 = 0, $9656 = 0, $9657 = 0;
var $9658 = 0, $9659 = 0, $966 = 0, $9660 = 0, $9661 = 0, $9662 = 0, $9663 = 0, $9664 = 0, $9665 = 0, $9666 = 0, $9667 = 0, $9668 = 0, $9669 = 0, $967 = 0, $9670 = 0, $9671 = 0, $9672 = 0, $9673 = 0, $9674 = 0, $9675 = 0;
var $9676 = 0, $9677 = 0, $9678 = 0, $9679 = 0, $968 = 0, $9680 = 0, $9681 = 0, $9682 = 0, $9683 = 0, $9684 = 0, $9685 = 0, $9686 = 0, $9687 = 0, $9688 = 0, $9689 = 0, $969 = 0, $9690 = 0, $9691 = 0, $9692 = 0, $9693 = 0;
var $9694 = 0, $9695 = 0, $9696 = 0, $9697 = 0, $9698 = 0, $9699 = 0, $97 = 0, $970 = 0, $9700 = 0, $9701 = 0, $9702 = 0, $9703 = 0, $9704 = 0, $9705 = 0, $9706 = 0, $9707 = 0, $9708 = 0, $9709 = 0, $971 = 0, $9710 = 0;
var $9711 = 0, $9712 = 0, $9713 = 0, $9714 = 0, $9715 = 0, $9716 = 0, $9717 = 0, $9718 = 0, $9719 = 0, $972 = 0, $9720 = 0, $9721 = 0, $9722 = 0, $9723 = 0, $9724 = 0, $9725 = 0, $9726 = 0, $9727 = 0, $9728 = 0, $9729 = 0;
var $973 = 0, $9730 = 0, $9731 = 0, $9732 = 0, $9733 = 0, $9734 = 0, $9735 = 0, $9736 = 0, $9737 = 0, $9738 = 0, $9739 = 0, $974 = 0, $9740 = 0, $9741 = 0, $9742 = 0, $9743 = 0, $9744 = 0, $9745 = 0, $9746 = 0, $9747 = 0;
var $9748 = 0, $9749 = 0, $975 = 0, $9750 = 0, $9751 = 0, $9752 = 0, $9753 = 0, $9754 = 0, $9755 = 0, $9756 = 0, $9757 = 0, $9758 = 0, $9759 = 0, $976 = 0, $9760 = 0, $9761 = 0, $9762 = 0, $9763 = 0, $9764 = 0, $9765 = 0;
var $9766 = 0, $9767 = 0, $9768 = 0, $9769 = 0, $977 = 0, $9770 = 0, $9771 = 0, $9772 = 0, $9773 = 0, $9774 = 0, $9775 = 0, $9776 = 0, $9777 = 0, $9778 = 0, $9779 = 0, $978 = 0, $9780 = 0, $9781 = 0, $9782 = 0, $9783 = 0;
var $9784 = 0, $9785 = 0, $9786 = 0, $9787 = 0, $9788 = 0, $9789 = 0, $979 = 0, $9790 = 0, $9791 = 0, $9792 = 0, $9793 = 0, $9794 = 0, $9795 = 0, $9796 = 0, $9797 = 0, $9798 = 0, $9799 = 0, $98 = 0, $980 = 0, $9800 = 0;
var $9801 = 0, $9802 = 0, $9803 = 0, $9804 = 0, $9805 = 0, $9806 = 0, $9807 = 0, $9808 = 0, $9809 = 0, $981 = 0, $9810 = 0, $9811 = 0, $9812 = 0, $9813 = 0, $9814 = 0, $9815 = 0, $9816 = 0, $9817 = 0, $9818 = 0, $9819 = 0;
var $982 = 0, $9820 = 0, $9821 = 0, $9822 = 0, $9823 = 0, $9824 = 0, $9825 = 0, $9826 = 0, $9827 = 0, $9828 = 0, $9829 = 0, $983 = 0, $9830 = 0, $9831 = 0, $9832 = 0, $9833 = 0, $9834 = 0, $9835 = 0, $9836 = 0, $9837 = 0;
var $9838 = 0, $9839 = 0, $984 = 0, $9840 = 0, $9841 = 0, $9842 = 0, $9843 = 0, $9844 = 0, $9845 = 0, $9846 = 0, $9847 = 0, $9848 = 0, $9849 = 0, $985 = 0, $9850 = 0, $9851 = 0, $9852 = 0, $9853 = 0, $9854 = 0, $9855 = 0;
var $9856 = 0, $9857 = 0, $9858 = 0, $9859 = 0, $986 = 0, $9860 = 0, $9861 = 0, $9862 = 0, $9863 = 0, $9864 = 0, $9865 = 0, $9866 = 0, $9867 = 0, $9868 = 0, $9869 = 0, $987 = 0, $9870 = 0, $9871 = 0, $9872 = 0, $9873 = 0;
var $9874 = 0, $9875 = 0, $9876 = 0, $9877 = 0, $9878 = 0, $9879 = 0, $988 = 0, $9880 = 0, $9881 = 0, $9882 = 0, $9883 = 0, $9884 = 0, $9885 = 0, $9886 = 0, $9887 = 0, $9888 = 0, $9889 = 0, $989 = 0, $9890 = 0, $9891 = 0;
var $9892 = 0, $9893 = 0, $9894 = 0, $9895 = 0, $9896 = 0, $9897 = 0, $9898 = 0, $9899 = 0, $99 = 0, $990 = 0, $9900 = 0, $9901 = 0, $9902 = 0, $9903 = 0, $9904 = 0, $9905 = 0, $9906 = 0, $9907 = 0, $9908 = 0, $9909 = 0;
var $991 = 0, $9910 = 0, $9911 = 0, $9912 = 0, $9913 = 0, $9914 = 0, $9915 = 0, $9916 = 0, $9917 = 0, $9918 = 0, $9919 = 0, $992 = 0, $9920 = 0, $9921 = 0, $9922 = 0, $9923 = 0, $9924 = 0, $9925 = 0, $9926 = 0, $9927 = 0;
var $9928 = 0, $9929 = 0, $993 = 0, $9930 = 0, $9931 = 0, $9932 = 0, $9933 = 0, $9934 = 0, $9935 = 0, $9936 = 0, $9937 = 0, $9938 = 0, $9939 = 0, $994 = 0, $9940 = 0, $9941 = 0, $9942 = 0, $9943 = 0, $9944 = 0, $9945 = 0;
var $9946 = 0, $9947 = 0, $9948 = 0, $9949 = 0, $995 = 0, $9950 = 0, $9951 = 0, $9952 = 0, $9953 = 0, $9954 = 0, $9955 = 0, $9956 = 0, $9957 = 0, $9958 = 0, $9959 = 0, $996 = 0, $9960 = 0, $9961 = 0, $9962 = 0, $9963 = 0;
var $9964 = 0, $9965 = 0, $9966 = 0, $9967 = 0, $9968 = 0, $9969 = 0, $997 = 0, $9970 = 0, $9971 = 0, $9972 = 0, $9973 = 0, $9974 = 0, $9975 = 0, $9976 = 0, $9977 = 0, $9978 = 0, $9979 = 0, $998 = 0, $9980 = 0, $9981 = 0;
var $9982 = 0, $9983 = 0, $9984 = 0, $9985 = 0, $9986 = 0, $9987 = 0, $9988 = 0, $9989 = 0, $999 = 0, $9990 = 0, $9991 = 0, $9992 = 0, $9993 = 0, $9994 = 0, $9995 = 0, $9996 = 0, $9997 = 0, $9998 = 0, $9999 = 0, $i = 0;
var $j = 0, $k = 0, $sa = 0, $sb = 0, $sc = 0, $sd = 0, $se = 0, $sf = 0, $sg = 0, $sh = 0, $si = 0, $sj = 0, $sk = 0, $sl = 0, $sm = 0, $sn = 0, $so = 0, $sp = 0, $tmp = 0, $vararg_buffer = 0;
var $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $ctx;
$2 = $key;
$3 = $keylen;
$sa = 0;
$sb = 0;
$sc = 0;
$sd = 0;
$se = 0;
$sf = 0;
$sg = 0;
$sh = 0;
$si = 0;
$sj = 0;
$sk = 0;
$sl = 0;
$sm = 0;
$sn = 0;
$so = 0;
$sp = 0;
$4 = $3;
$5 = (($4) - 16)|0;
$6 = $5 | 16;
$7 = ($6|0)!=(16);
if ($7) {
$0 = 44;
$10338 = $0;
STACKTOP = sp;return ($10338|0);
}
$8 = HEAP32[17708]|0;
$9 = ($8|0)!=(0);
if (!($9)) {
HEAP32[17708] = 1;
$10 = (_selftest_1448()|0);
HEAP32[17709] = $10;
$11 = HEAP32[17709]|0;
$12 = ($11|0)!=(0|0);
if ($12) {
$13 = HEAP32[17709]|0;
HEAP32[$vararg_buffer>>2] = $13;
__gcry_log_error(43729,$vararg_buffer);
}
}
$14 = HEAP32[17709]|0;
$15 = ($14|0)!=(0|0);
if ($15) {
$0 = 50;
$10338 = $0;
STACKTOP = sp;return ($10338|0);
}
$16 = $2;
$17 = HEAP8[$16>>0]|0;
$18 = ($17<<24>>24)!=(0);
if ($18) {
$19 = $2;
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = (($21) - 1)|0;
$23 = (43733 + ($22)|0);
$24 = HEAP8[$23>>0]|0;
$tmp = $24;
$25 = $tmp;
$26 = $25&255;
$27 = (($26) + 0)|0;
$28 = (43988 + ($27)|0);
$29 = HEAP8[$28>>0]|0;
$30 = $29&255;
$31 = $sa;
$32 = $31&255;
$33 = $32 ^ $30;
$34 = $33&255;
$sa = $34;
$35 = $tmp;
$36 = $35&255;
$37 = (($36) + 45)|0;
$38 = (43988 + ($37)|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39&255;
$41 = $sb;
$42 = $41&255;
$43 = $42 ^ $40;
$44 = $43&255;
$sb = $44;
$45 = $tmp;
$46 = $45&255;
$47 = (($46) + 1)|0;
$48 = (43988 + ($47)|0);
$49 = HEAP8[$48>>0]|0;
$50 = $49&255;
$51 = $sc;
$52 = $51&255;
$53 = $52 ^ $50;
$54 = $53&255;
$sc = $54;
$55 = $tmp;
$56 = $55&255;
$57 = (($56) + 45)|0;
$58 = (43988 + ($57)|0);
$59 = HEAP8[$58>>0]|0;
$60 = $59&255;
$61 = $sd;
$62 = $61&255;
$63 = $62 ^ $60;
$64 = $63&255;
$sd = $64;
}
$65 = $2;
$66 = ((($65)) + 1|0);
$67 = HEAP8[$66>>0]|0;
$68 = ($67<<24>>24)!=(0);
if ($68) {
$69 = $2;
$70 = ((($69)) + 1|0);
$71 = HEAP8[$70>>0]|0;
$72 = $71&255;
$73 = (($72) - 1)|0;
$74 = (43733 + ($73)|0);
$75 = HEAP8[$74>>0]|0;
$tmp = $75;
$76 = $tmp;
$77 = $76&255;
$78 = (($77) + 45)|0;
$79 = (43988 + ($78)|0);
$80 = HEAP8[$79>>0]|0;
$81 = $80&255;
$82 = $sa;
$83 = $82&255;
$84 = $83 ^ $81;
$85 = $84&255;
$sa = $85;
$86 = $tmp;
$87 = $86&255;
$88 = (($87) + 164)|0;
$89 = (43988 + ($88)|0);
$90 = HEAP8[$89>>0]|0;
$91 = $90&255;
$92 = $sb;
$93 = $92&255;
$94 = $93 ^ $91;
$95 = $94&255;
$sb = $95;
$96 = $tmp;
$97 = $96&255;
$98 = (($97) + 68)|0;
$99 = (43988 + ($98)|0);
$100 = HEAP8[$99>>0]|0;
$101 = $100&255;
$102 = $sc;
$103 = $102&255;
$104 = $103 ^ $101;
$105 = $104&255;
$sc = $105;
$106 = $tmp;
$107 = $106&255;
$108 = (($107) + 138)|0;
$109 = (43988 + ($108)|0);
$110 = HEAP8[$109>>0]|0;
$111 = $110&255;
$112 = $sd;
$113 = $112&255;
$114 = $113 ^ $111;
$115 = $114&255;
$sd = $115;
}
$116 = $2;
$117 = ((($116)) + 2|0);
$118 = HEAP8[$117>>0]|0;
$119 = ($118<<24>>24)!=(0);
if ($119) {
$120 = $2;
$121 = ((($120)) + 2|0);
$122 = HEAP8[$121>>0]|0;
$123 = $122&255;
$124 = (($123) - 1)|0;
$125 = (43733 + ($124)|0);
$126 = HEAP8[$125>>0]|0;
$tmp = $126;
$127 = $tmp;
$128 = $127&255;
$129 = (($128) + 138)|0;
$130 = (43988 + ($129)|0);
$131 = HEAP8[$130>>0]|0;
$132 = $131&255;
$133 = $sa;
$134 = $133&255;
$135 = $134 ^ $132;
$136 = $135&255;
$sa = $136;
$137 = $tmp;
$138 = $137&255;
$139 = (($138) + 213)|0;
$140 = (43988 + ($139)|0);
$141 = HEAP8[$140>>0]|0;
$142 = $141&255;
$143 = $sb;
$144 = $143&255;
$145 = $144 ^ $142;
$146 = $145&255;
$sb = $146;
$147 = $tmp;
$148 = $147&255;
$149 = (($148) + 191)|0;
$150 = (43988 + ($149)|0);
$151 = HEAP8[$150>>0]|0;
$152 = $151&255;
$153 = $sc;
$154 = $153&255;
$155 = $154 ^ $152;
$156 = $155&255;
$sc = $156;
$157 = $tmp;
$158 = $157&255;
$159 = (($158) + 209)|0;
$160 = (43988 + ($159)|0);
$161 = HEAP8[$160>>0]|0;
$162 = $161&255;
$163 = $sd;
$164 = $163&255;
$165 = $164 ^ $162;
$166 = $165&255;
$sd = $166;
}
$167 = $2;
$168 = ((($167)) + 3|0);
$169 = HEAP8[$168>>0]|0;
$170 = ($169<<24>>24)!=(0);
if ($170) {
$171 = $2;
$172 = ((($171)) + 3|0);
$173 = HEAP8[$172>>0]|0;
$174 = $173&255;
$175 = (($174) - 1)|0;
$176 = (43733 + ($175)|0);
$177 = HEAP8[$176>>0]|0;
$tmp = $177;
$178 = $tmp;
$179 = $178&255;
$180 = (($179) + 209)|0;
$181 = (43988 + ($180)|0);
$182 = HEAP8[$181>>0]|0;
$183 = $182&255;
$184 = $sa;
$185 = $184&255;
$186 = $185 ^ $183;
$187 = $186&255;
$sa = $187;
$188 = $tmp;
$189 = $188&255;
$190 = (($189) + 127)|0;
$191 = (43988 + ($190)|0);
$192 = HEAP8[$191>>0]|0;
$193 = $192&255;
$194 = $sb;
$195 = $194&255;
$196 = $195 ^ $193;
$197 = $196&255;
$sb = $197;
$198 = $tmp;
$199 = $198&255;
$200 = (($199) + 61)|0;
$201 = (43988 + ($200)|0);
$202 = HEAP8[$201>>0]|0;
$203 = $202&255;
$204 = $sc;
$205 = $204&255;
$206 = $205 ^ $203;
$207 = $206&255;
$sc = $207;
$208 = $tmp;
$209 = $208&255;
$210 = (($209) + 153)|0;
$211 = (43988 + ($210)|0);
$212 = HEAP8[$211>>0]|0;
$213 = $212&255;
$214 = $sd;
$215 = $214&255;
$216 = $215 ^ $213;
$217 = $216&255;
$sd = $217;
}
$218 = $2;
$219 = ((($218)) + 4|0);
$220 = HEAP8[$219>>0]|0;
$221 = ($220<<24>>24)!=(0);
if ($221) {
$222 = $2;
$223 = ((($222)) + 4|0);
$224 = HEAP8[$223>>0]|0;
$225 = $224&255;
$226 = (($225) - 1)|0;
$227 = (43733 + ($226)|0);
$228 = HEAP8[$227>>0]|0;
$tmp = $228;
$229 = $tmp;
$230 = $229&255;
$231 = (($230) + 153)|0;
$232 = (43988 + ($231)|0);
$233 = HEAP8[$232>>0]|0;
$234 = $233&255;
$235 = $sa;
$236 = $235&255;
$237 = $236 ^ $234;
$238 = $237&255;
$sa = $238;
$239 = $tmp;
$240 = $239&255;
$241 = (($240) + 70)|0;
$242 = (43988 + ($241)|0);
$243 = HEAP8[$242>>0]|0;
$244 = $243&255;
$245 = $sb;
$246 = $245&255;
$247 = $246 ^ $244;
$248 = $247&255;
$sb = $248;
$249 = $tmp;
$250 = $249&255;
$251 = (($250) + 102)|0;
$252 = (43988 + ($251)|0);
$253 = HEAP8[$252>>0]|0;
$254 = $253&255;
$255 = $sc;
$256 = $255&255;
$257 = $256 ^ $254;
$258 = $257&255;
$sc = $258;
$259 = $tmp;
$260 = $259&255;
$261 = (($260) + 150)|0;
$262 = (43988 + ($261)|0);
$263 = HEAP8[$262>>0]|0;
$264 = $263&255;
$265 = $sd;
$266 = $265&255;
$267 = $266 ^ $264;
$268 = $267&255;
$sd = $268;
}
$269 = $2;
$270 = ((($269)) + 5|0);
$271 = HEAP8[$270>>0]|0;
$272 = ($271<<24>>24)!=(0);
if ($272) {
$273 = $2;
$274 = ((($273)) + 5|0);
$275 = HEAP8[$274>>0]|0;
$276 = $275&255;
$277 = (($276) - 1)|0;
$278 = (43733 + ($277)|0);
$279 = HEAP8[$278>>0]|0;
$tmp = $279;
$280 = $tmp;
$281 = $280&255;
$282 = (($281) + 150)|0;
$283 = (43988 + ($282)|0);
$284 = HEAP8[$283>>0]|0;
$285 = $284&255;
$286 = $sa;
$287 = $286&255;
$288 = $287 ^ $285;
$289 = $288&255;
$sa = $289;
$290 = $tmp;
$291 = $290&255;
$292 = (($291) + 60)|0;
$293 = (43988 + ($292)|0);
$294 = HEAP8[$293>>0]|0;
$295 = $294&255;
$296 = $sb;
$297 = $296&255;
$298 = $297 ^ $295;
$299 = $298&255;
$sb = $299;
$300 = $tmp;
$301 = $300&255;
$302 = (($301) + 91)|0;
$303 = (43988 + ($302)|0);
$304 = HEAP8[$303>>0]|0;
$305 = $304&255;
$306 = $sc;
$307 = $306&255;
$308 = $307 ^ $305;
$309 = $308&255;
$sc = $309;
$310 = $tmp;
$311 = $310&255;
$312 = (($311) + 237)|0;
$313 = (43988 + ($312)|0);
$314 = HEAP8[$313>>0]|0;
$315 = $314&255;
$316 = $sd;
$317 = $316&255;
$318 = $317 ^ $315;
$319 = $318&255;
$sd = $319;
}
$320 = $2;
$321 = ((($320)) + 6|0);
$322 = HEAP8[$321>>0]|0;
$323 = ($322<<24>>24)!=(0);
if ($323) {
$324 = $2;
$325 = ((($324)) + 6|0);
$326 = HEAP8[$325>>0]|0;
$327 = $326&255;
$328 = (($327) - 1)|0;
$329 = (43733 + ($328)|0);
$330 = HEAP8[$329>>0]|0;
$tmp = $330;
$331 = $tmp;
$332 = $331&255;
$333 = (($332) + 237)|0;
$334 = (43988 + ($333)|0);
$335 = HEAP8[$334>>0]|0;
$336 = $335&255;
$337 = $sa;
$338 = $337&255;
$339 = $338 ^ $336;
$340 = $339&255;
$sa = $340;
$341 = $tmp;
$342 = $341&255;
$343 = (($342) + 55)|0;
$344 = (43988 + ($343)|0);
$345 = HEAP8[$344>>0]|0;
$346 = $345&255;
$347 = $sb;
$348 = $347&255;
$349 = $348 ^ $346;
$350 = $349&255;
$sb = $350;
$351 = $tmp;
$352 = $351&255;
$353 = (($352) + 79)|0;
$354 = (43988 + ($353)|0);
$355 = HEAP8[$354>>0]|0;
$356 = $355&255;
$357 = $sc;
$358 = $357&255;
$359 = $358 ^ $356;
$360 = $359&255;
$sc = $360;
$361 = $tmp;
$362 = $361&255;
$363 = (($362) + 224)|0;
$364 = (43988 + ($363)|0);
$365 = HEAP8[$364>>0]|0;
$366 = $365&255;
$367 = $sd;
$368 = $367&255;
$369 = $368 ^ $366;
$370 = $369&255;
$sd = $370;
}
$371 = $2;
$372 = ((($371)) + 7|0);
$373 = HEAP8[$372>>0]|0;
$374 = ($373<<24>>24)!=(0);
if ($374) {
$375 = $2;
$376 = ((($375)) + 7|0);
$377 = HEAP8[$376>>0]|0;
$378 = $377&255;
$379 = (($378) - 1)|0;
$380 = (43733 + ($379)|0);
$381 = HEAP8[$380>>0]|0;
$tmp = $381;
$382 = $tmp;
$383 = $382&255;
$384 = (($383) + 224)|0;
$385 = (43988 + ($384)|0);
$386 = HEAP8[$385>>0]|0;
$387 = $386&255;
$388 = $sa;
$389 = $388&255;
$390 = $389 ^ $387;
$391 = $390&255;
$sa = $391;
$392 = $tmp;
$393 = $392&255;
$394 = (($393) + 208)|0;
$395 = (43988 + ($394)|0);
$396 = HEAP8[$395>>0]|0;
$397 = $396&255;
$398 = $sb;
$399 = $398&255;
$400 = $399 ^ $397;
$401 = $400&255;
$sb = $401;
$402 = $tmp;
$403 = $402&255;
$404 = (($403) + 140)|0;
$405 = (43988 + ($404)|0);
$406 = HEAP8[$405>>0]|0;
$407 = $406&255;
$408 = $sc;
$409 = $408&255;
$410 = $409 ^ $407;
$411 = $410&255;
$sc = $411;
$412 = $tmp;
$413 = $412&255;
$414 = (($413) + 23)|0;
$415 = (43988 + ($414)|0);
$416 = HEAP8[$415>>0]|0;
$417 = $416&255;
$418 = $sd;
$419 = $418&255;
$420 = $419 ^ $417;
$421 = $420&255;
$sd = $421;
}
$422 = $2;
$423 = ((($422)) + 8|0);
$424 = HEAP8[$423>>0]|0;
$425 = ($424<<24>>24)!=(0);
if ($425) {
$426 = $2;
$427 = ((($426)) + 8|0);
$428 = HEAP8[$427>>0]|0;
$429 = $428&255;
$430 = (($429) - 1)|0;
$431 = (43733 + ($430)|0);
$432 = HEAP8[$431>>0]|0;
$tmp = $432;
$433 = $tmp;
$434 = $433&255;
$435 = (($434) + 0)|0;
$436 = (43988 + ($435)|0);
$437 = HEAP8[$436>>0]|0;
$438 = $437&255;
$439 = $se;
$440 = $439&255;
$441 = $440 ^ $438;
$442 = $441&255;
$se = $442;
$443 = $tmp;
$444 = $443&255;
$445 = (($444) + 45)|0;
$446 = (43988 + ($445)|0);
$447 = HEAP8[$446>>0]|0;
$448 = $447&255;
$449 = $sf;
$450 = $449&255;
$451 = $450 ^ $448;
$452 = $451&255;
$sf = $452;
$453 = $tmp;
$454 = $453&255;
$455 = (($454) + 1)|0;
$456 = (43988 + ($455)|0);
$457 = HEAP8[$456>>0]|0;
$458 = $457&255;
$459 = $sg;
$460 = $459&255;
$461 = $460 ^ $458;
$462 = $461&255;
$sg = $462;
$463 = $tmp;
$464 = $463&255;
$465 = (($464) + 45)|0;
$466 = (43988 + ($465)|0);
$467 = HEAP8[$466>>0]|0;
$468 = $467&255;
$469 = $sh;
$470 = $469&255;
$471 = $470 ^ $468;
$472 = $471&255;
$sh = $472;
}
$473 = $2;
$474 = ((($473)) + 9|0);
$475 = HEAP8[$474>>0]|0;
$476 = ($475<<24>>24)!=(0);
if ($476) {
$477 = $2;
$478 = ((($477)) + 9|0);
$479 = HEAP8[$478>>0]|0;
$480 = $479&255;
$481 = (($480) - 1)|0;
$482 = (43733 + ($481)|0);
$483 = HEAP8[$482>>0]|0;
$tmp = $483;
$484 = $tmp;
$485 = $484&255;
$486 = (($485) + 45)|0;
$487 = (43988 + ($486)|0);
$488 = HEAP8[$487>>0]|0;
$489 = $488&255;
$490 = $se;
$491 = $490&255;
$492 = $491 ^ $489;
$493 = $492&255;
$se = $493;
$494 = $tmp;
$495 = $494&255;
$496 = (($495) + 164)|0;
$497 = (43988 + ($496)|0);
$498 = HEAP8[$497>>0]|0;
$499 = $498&255;
$500 = $sf;
$501 = $500&255;
$502 = $501 ^ $499;
$503 = $502&255;
$sf = $503;
$504 = $tmp;
$505 = $504&255;
$506 = (($505) + 68)|0;
$507 = (43988 + ($506)|0);
$508 = HEAP8[$507>>0]|0;
$509 = $508&255;
$510 = $sg;
$511 = $510&255;
$512 = $511 ^ $509;
$513 = $512&255;
$sg = $513;
$514 = $tmp;
$515 = $514&255;
$516 = (($515) + 138)|0;
$517 = (43988 + ($516)|0);
$518 = HEAP8[$517>>0]|0;
$519 = $518&255;
$520 = $sh;
$521 = $520&255;
$522 = $521 ^ $519;
$523 = $522&255;
$sh = $523;
}
$524 = $2;
$525 = ((($524)) + 10|0);
$526 = HEAP8[$525>>0]|0;
$527 = ($526<<24>>24)!=(0);
if ($527) {
$528 = $2;
$529 = ((($528)) + 10|0);
$530 = HEAP8[$529>>0]|0;
$531 = $530&255;
$532 = (($531) - 1)|0;
$533 = (43733 + ($532)|0);
$534 = HEAP8[$533>>0]|0;
$tmp = $534;
$535 = $tmp;
$536 = $535&255;
$537 = (($536) + 138)|0;
$538 = (43988 + ($537)|0);
$539 = HEAP8[$538>>0]|0;
$540 = $539&255;
$541 = $se;
$542 = $541&255;
$543 = $542 ^ $540;
$544 = $543&255;
$se = $544;
$545 = $tmp;
$546 = $545&255;
$547 = (($546) + 213)|0;
$548 = (43988 + ($547)|0);
$549 = HEAP8[$548>>0]|0;
$550 = $549&255;
$551 = $sf;
$552 = $551&255;
$553 = $552 ^ $550;
$554 = $553&255;
$sf = $554;
$555 = $tmp;
$556 = $555&255;
$557 = (($556) + 191)|0;
$558 = (43988 + ($557)|0);
$559 = HEAP8[$558>>0]|0;
$560 = $559&255;
$561 = $sg;
$562 = $561&255;
$563 = $562 ^ $560;
$564 = $563&255;
$sg = $564;
$565 = $tmp;
$566 = $565&255;
$567 = (($566) + 209)|0;
$568 = (43988 + ($567)|0);
$569 = HEAP8[$568>>0]|0;
$570 = $569&255;
$571 = $sh;
$572 = $571&255;
$573 = $572 ^ $570;
$574 = $573&255;
$sh = $574;
}
$575 = $2;
$576 = ((($575)) + 11|0);
$577 = HEAP8[$576>>0]|0;
$578 = ($577<<24>>24)!=(0);
if ($578) {
$579 = $2;
$580 = ((($579)) + 11|0);
$581 = HEAP8[$580>>0]|0;
$582 = $581&255;
$583 = (($582) - 1)|0;
$584 = (43733 + ($583)|0);
$585 = HEAP8[$584>>0]|0;
$tmp = $585;
$586 = $tmp;
$587 = $586&255;
$588 = (($587) + 209)|0;
$589 = (43988 + ($588)|0);
$590 = HEAP8[$589>>0]|0;
$591 = $590&255;
$592 = $se;
$593 = $592&255;
$594 = $593 ^ $591;
$595 = $594&255;
$se = $595;
$596 = $tmp;
$597 = $596&255;
$598 = (($597) + 127)|0;
$599 = (43988 + ($598)|0);
$600 = HEAP8[$599>>0]|0;
$601 = $600&255;
$602 = $sf;
$603 = $602&255;
$604 = $603 ^ $601;
$605 = $604&255;
$sf = $605;
$606 = $tmp;
$607 = $606&255;
$608 = (($607) + 61)|0;
$609 = (43988 + ($608)|0);
$610 = HEAP8[$609>>0]|0;
$611 = $610&255;
$612 = $sg;
$613 = $612&255;
$614 = $613 ^ $611;
$615 = $614&255;
$sg = $615;
$616 = $tmp;
$617 = $616&255;
$618 = (($617) + 153)|0;
$619 = (43988 + ($618)|0);
$620 = HEAP8[$619>>0]|0;
$621 = $620&255;
$622 = $sh;
$623 = $622&255;
$624 = $623 ^ $621;
$625 = $624&255;
$sh = $625;
}
$626 = $2;
$627 = ((($626)) + 12|0);
$628 = HEAP8[$627>>0]|0;
$629 = ($628<<24>>24)!=(0);
if ($629) {
$630 = $2;
$631 = ((($630)) + 12|0);
$632 = HEAP8[$631>>0]|0;
$633 = $632&255;
$634 = (($633) - 1)|0;
$635 = (43733 + ($634)|0);
$636 = HEAP8[$635>>0]|0;
$tmp = $636;
$637 = $tmp;
$638 = $637&255;
$639 = (($638) + 153)|0;
$640 = (43988 + ($639)|0);
$641 = HEAP8[$640>>0]|0;
$642 = $641&255;
$643 = $se;
$644 = $643&255;
$645 = $644 ^ $642;
$646 = $645&255;
$se = $646;
$647 = $tmp;
$648 = $647&255;
$649 = (($648) + 70)|0;
$650 = (43988 + ($649)|0);
$651 = HEAP8[$650>>0]|0;
$652 = $651&255;
$653 = $sf;
$654 = $653&255;
$655 = $654 ^ $652;
$656 = $655&255;
$sf = $656;
$657 = $tmp;
$658 = $657&255;
$659 = (($658) + 102)|0;
$660 = (43988 + ($659)|0);
$661 = HEAP8[$660>>0]|0;
$662 = $661&255;
$663 = $sg;
$664 = $663&255;
$665 = $664 ^ $662;
$666 = $665&255;
$sg = $666;
$667 = $tmp;
$668 = $667&255;
$669 = (($668) + 150)|0;
$670 = (43988 + ($669)|0);
$671 = HEAP8[$670>>0]|0;
$672 = $671&255;
$673 = $sh;
$674 = $673&255;
$675 = $674 ^ $672;
$676 = $675&255;
$sh = $676;
}
$677 = $2;
$678 = ((($677)) + 13|0);
$679 = HEAP8[$678>>0]|0;
$680 = ($679<<24>>24)!=(0);
if ($680) {
$681 = $2;
$682 = ((($681)) + 13|0);
$683 = HEAP8[$682>>0]|0;
$684 = $683&255;
$685 = (($684) - 1)|0;
$686 = (43733 + ($685)|0);
$687 = HEAP8[$686>>0]|0;
$tmp = $687;
$688 = $tmp;
$689 = $688&255;
$690 = (($689) + 150)|0;
$691 = (43988 + ($690)|0);
$692 = HEAP8[$691>>0]|0;
$693 = $692&255;
$694 = $se;
$695 = $694&255;
$696 = $695 ^ $693;
$697 = $696&255;
$se = $697;
$698 = $tmp;
$699 = $698&255;
$700 = (($699) + 60)|0;
$701 = (43988 + ($700)|0);
$702 = HEAP8[$701>>0]|0;
$703 = $702&255;
$704 = $sf;
$705 = $704&255;
$706 = $705 ^ $703;
$707 = $706&255;
$sf = $707;
$708 = $tmp;
$709 = $708&255;
$710 = (($709) + 91)|0;
$711 = (43988 + ($710)|0);
$712 = HEAP8[$711>>0]|0;
$713 = $712&255;
$714 = $sg;
$715 = $714&255;
$716 = $715 ^ $713;
$717 = $716&255;
$sg = $717;
$718 = $tmp;
$719 = $718&255;
$720 = (($719) + 237)|0;
$721 = (43988 + ($720)|0);
$722 = HEAP8[$721>>0]|0;
$723 = $722&255;
$724 = $sh;
$725 = $724&255;
$726 = $725 ^ $723;
$727 = $726&255;
$sh = $727;
}
$728 = $2;
$729 = ((($728)) + 14|0);
$730 = HEAP8[$729>>0]|0;
$731 = ($730<<24>>24)!=(0);
if ($731) {
$732 = $2;
$733 = ((($732)) + 14|0);
$734 = HEAP8[$733>>0]|0;
$735 = $734&255;
$736 = (($735) - 1)|0;
$737 = (43733 + ($736)|0);
$738 = HEAP8[$737>>0]|0;
$tmp = $738;
$739 = $tmp;
$740 = $739&255;
$741 = (($740) + 237)|0;
$742 = (43988 + ($741)|0);
$743 = HEAP8[$742>>0]|0;
$744 = $743&255;
$745 = $se;
$746 = $745&255;
$747 = $746 ^ $744;
$748 = $747&255;
$se = $748;
$749 = $tmp;
$750 = $749&255;
$751 = (($750) + 55)|0;
$752 = (43988 + ($751)|0);
$753 = HEAP8[$752>>0]|0;
$754 = $753&255;
$755 = $sf;
$756 = $755&255;
$757 = $756 ^ $754;
$758 = $757&255;
$sf = $758;
$759 = $tmp;
$760 = $759&255;
$761 = (($760) + 79)|0;
$762 = (43988 + ($761)|0);
$763 = HEAP8[$762>>0]|0;
$764 = $763&255;
$765 = $sg;
$766 = $765&255;
$767 = $766 ^ $764;
$768 = $767&255;
$sg = $768;
$769 = $tmp;
$770 = $769&255;
$771 = (($770) + 224)|0;
$772 = (43988 + ($771)|0);
$773 = HEAP8[$772>>0]|0;
$774 = $773&255;
$775 = $sh;
$776 = $775&255;
$777 = $776 ^ $774;
$778 = $777&255;
$sh = $778;
}
$779 = $2;
$780 = ((($779)) + 15|0);
$781 = HEAP8[$780>>0]|0;
$782 = ($781<<24>>24)!=(0);
if ($782) {
$783 = $2;
$784 = ((($783)) + 15|0);
$785 = HEAP8[$784>>0]|0;
$786 = $785&255;
$787 = (($786) - 1)|0;
$788 = (43733 + ($787)|0);
$789 = HEAP8[$788>>0]|0;
$tmp = $789;
$790 = $tmp;
$791 = $790&255;
$792 = (($791) + 224)|0;
$793 = (43988 + ($792)|0);
$794 = HEAP8[$793>>0]|0;
$795 = $794&255;
$796 = $se;
$797 = $796&255;
$798 = $797 ^ $795;
$799 = $798&255;
$se = $799;
$800 = $tmp;
$801 = $800&255;
$802 = (($801) + 208)|0;
$803 = (43988 + ($802)|0);
$804 = HEAP8[$803>>0]|0;
$805 = $804&255;
$806 = $sf;
$807 = $806&255;
$808 = $807 ^ $805;
$809 = $808&255;
$sf = $809;
$810 = $tmp;
$811 = $810&255;
$812 = (($811) + 140)|0;
$813 = (43988 + ($812)|0);
$814 = HEAP8[$813>>0]|0;
$815 = $814&255;
$816 = $sg;
$817 = $816&255;
$818 = $817 ^ $815;
$819 = $818&255;
$sg = $819;
$820 = $tmp;
$821 = $820&255;
$822 = (($821) + 23)|0;
$823 = (43988 + ($822)|0);
$824 = HEAP8[$823>>0]|0;
$825 = $824&255;
$826 = $sh;
$827 = $826&255;
$828 = $827 ^ $825;
$829 = $828&255;
$sh = $829;
}
$830 = $3;
$831 = ($830|0)==(32);
if ($831) {
$832 = $2;
$833 = ((($832)) + 16|0);
$834 = HEAP8[$833>>0]|0;
$835 = ($834<<24>>24)!=(0);
if ($835) {
$836 = $2;
$837 = ((($836)) + 16|0);
$838 = HEAP8[$837>>0]|0;
$839 = $838&255;
$840 = (($839) - 1)|0;
$841 = (43733 + ($840)|0);
$842 = HEAP8[$841>>0]|0;
$tmp = $842;
$843 = $tmp;
$844 = $843&255;
$845 = (($844) + 0)|0;
$846 = (43988 + ($845)|0);
$847 = HEAP8[$846>>0]|0;
$848 = $847&255;
$849 = $si;
$850 = $849&255;
$851 = $850 ^ $848;
$852 = $851&255;
$si = $852;
$853 = $tmp;
$854 = $853&255;
$855 = (($854) + 45)|0;
$856 = (43988 + ($855)|0);
$857 = HEAP8[$856>>0]|0;
$858 = $857&255;
$859 = $sj;
$860 = $859&255;
$861 = $860 ^ $858;
$862 = $861&255;
$sj = $862;
$863 = $tmp;
$864 = $863&255;
$865 = (($864) + 1)|0;
$866 = (43988 + ($865)|0);
$867 = HEAP8[$866>>0]|0;
$868 = $867&255;
$869 = $sk;
$870 = $869&255;
$871 = $870 ^ $868;
$872 = $871&255;
$sk = $872;
$873 = $tmp;
$874 = $873&255;
$875 = (($874) + 45)|0;
$876 = (43988 + ($875)|0);
$877 = HEAP8[$876>>0]|0;
$878 = $877&255;
$879 = $sl;
$880 = $879&255;
$881 = $880 ^ $878;
$882 = $881&255;
$sl = $882;
}
$883 = $2;
$884 = ((($883)) + 17|0);
$885 = HEAP8[$884>>0]|0;
$886 = ($885<<24>>24)!=(0);
if ($886) {
$887 = $2;
$888 = ((($887)) + 17|0);
$889 = HEAP8[$888>>0]|0;
$890 = $889&255;
$891 = (($890) - 1)|0;
$892 = (43733 + ($891)|0);
$893 = HEAP8[$892>>0]|0;
$tmp = $893;
$894 = $tmp;
$895 = $894&255;
$896 = (($895) + 45)|0;
$897 = (43988 + ($896)|0);
$898 = HEAP8[$897>>0]|0;
$899 = $898&255;
$900 = $si;
$901 = $900&255;
$902 = $901 ^ $899;
$903 = $902&255;
$si = $903;
$904 = $tmp;
$905 = $904&255;
$906 = (($905) + 164)|0;
$907 = (43988 + ($906)|0);
$908 = HEAP8[$907>>0]|0;
$909 = $908&255;
$910 = $sj;
$911 = $910&255;
$912 = $911 ^ $909;
$913 = $912&255;
$sj = $913;
$914 = $tmp;
$915 = $914&255;
$916 = (($915) + 68)|0;
$917 = (43988 + ($916)|0);
$918 = HEAP8[$917>>0]|0;
$919 = $918&255;
$920 = $sk;
$921 = $920&255;
$922 = $921 ^ $919;
$923 = $922&255;
$sk = $923;
$924 = $tmp;
$925 = $924&255;
$926 = (($925) + 138)|0;
$927 = (43988 + ($926)|0);
$928 = HEAP8[$927>>0]|0;
$929 = $928&255;
$930 = $sl;
$931 = $930&255;
$932 = $931 ^ $929;
$933 = $932&255;
$sl = $933;
}
$934 = $2;
$935 = ((($934)) + 18|0);
$936 = HEAP8[$935>>0]|0;
$937 = ($936<<24>>24)!=(0);
if ($937) {
$938 = $2;
$939 = ((($938)) + 18|0);
$940 = HEAP8[$939>>0]|0;
$941 = $940&255;
$942 = (($941) - 1)|0;
$943 = (43733 + ($942)|0);
$944 = HEAP8[$943>>0]|0;
$tmp = $944;
$945 = $tmp;
$946 = $945&255;
$947 = (($946) + 138)|0;
$948 = (43988 + ($947)|0);
$949 = HEAP8[$948>>0]|0;
$950 = $949&255;
$951 = $si;
$952 = $951&255;
$953 = $952 ^ $950;
$954 = $953&255;
$si = $954;
$955 = $tmp;
$956 = $955&255;
$957 = (($956) + 213)|0;
$958 = (43988 + ($957)|0);
$959 = HEAP8[$958>>0]|0;
$960 = $959&255;
$961 = $sj;
$962 = $961&255;
$963 = $962 ^ $960;
$964 = $963&255;
$sj = $964;
$965 = $tmp;
$966 = $965&255;
$967 = (($966) + 191)|0;
$968 = (43988 + ($967)|0);
$969 = HEAP8[$968>>0]|0;
$970 = $969&255;
$971 = $sk;
$972 = $971&255;
$973 = $972 ^ $970;
$974 = $973&255;
$sk = $974;
$975 = $tmp;
$976 = $975&255;
$977 = (($976) + 209)|0;
$978 = (43988 + ($977)|0);
$979 = HEAP8[$978>>0]|0;
$980 = $979&255;
$981 = $sl;
$982 = $981&255;
$983 = $982 ^ $980;
$984 = $983&255;
$sl = $984;
}
$985 = $2;
$986 = ((($985)) + 19|0);
$987 = HEAP8[$986>>0]|0;
$988 = ($987<<24>>24)!=(0);
if ($988) {
$989 = $2;
$990 = ((($989)) + 19|0);
$991 = HEAP8[$990>>0]|0;
$992 = $991&255;
$993 = (($992) - 1)|0;
$994 = (43733 + ($993)|0);
$995 = HEAP8[$994>>0]|0;
$tmp = $995;
$996 = $tmp;
$997 = $996&255;
$998 = (($997) + 209)|0;
$999 = (43988 + ($998)|0);
$1000 = HEAP8[$999>>0]|0;
$1001 = $1000&255;
$1002 = $si;
$1003 = $1002&255;
$1004 = $1003 ^ $1001;
$1005 = $1004&255;
$si = $1005;
$1006 = $tmp;
$1007 = $1006&255;
$1008 = (($1007) + 127)|0;
$1009 = (43988 + ($1008)|0);
$1010 = HEAP8[$1009>>0]|0;
$1011 = $1010&255;
$1012 = $sj;
$1013 = $1012&255;
$1014 = $1013 ^ $1011;
$1015 = $1014&255;
$sj = $1015;
$1016 = $tmp;
$1017 = $1016&255;
$1018 = (($1017) + 61)|0;
$1019 = (43988 + ($1018)|0);
$1020 = HEAP8[$1019>>0]|0;
$1021 = $1020&255;
$1022 = $sk;
$1023 = $1022&255;
$1024 = $1023 ^ $1021;
$1025 = $1024&255;
$sk = $1025;
$1026 = $tmp;
$1027 = $1026&255;
$1028 = (($1027) + 153)|0;
$1029 = (43988 + ($1028)|0);
$1030 = HEAP8[$1029>>0]|0;
$1031 = $1030&255;
$1032 = $sl;
$1033 = $1032&255;
$1034 = $1033 ^ $1031;
$1035 = $1034&255;
$sl = $1035;
}
$1036 = $2;
$1037 = ((($1036)) + 20|0);
$1038 = HEAP8[$1037>>0]|0;
$1039 = ($1038<<24>>24)!=(0);
if ($1039) {
$1040 = $2;
$1041 = ((($1040)) + 20|0);
$1042 = HEAP8[$1041>>0]|0;
$1043 = $1042&255;
$1044 = (($1043) - 1)|0;
$1045 = (43733 + ($1044)|0);
$1046 = HEAP8[$1045>>0]|0;
$tmp = $1046;
$1047 = $tmp;
$1048 = $1047&255;
$1049 = (($1048) + 153)|0;
$1050 = (43988 + ($1049)|0);
$1051 = HEAP8[$1050>>0]|0;
$1052 = $1051&255;
$1053 = $si;
$1054 = $1053&255;
$1055 = $1054 ^ $1052;
$1056 = $1055&255;
$si = $1056;
$1057 = $tmp;
$1058 = $1057&255;
$1059 = (($1058) + 70)|0;
$1060 = (43988 + ($1059)|0);
$1061 = HEAP8[$1060>>0]|0;
$1062 = $1061&255;
$1063 = $sj;
$1064 = $1063&255;
$1065 = $1064 ^ $1062;
$1066 = $1065&255;
$sj = $1066;
$1067 = $tmp;
$1068 = $1067&255;
$1069 = (($1068) + 102)|0;
$1070 = (43988 + ($1069)|0);
$1071 = HEAP8[$1070>>0]|0;
$1072 = $1071&255;
$1073 = $sk;
$1074 = $1073&255;
$1075 = $1074 ^ $1072;
$1076 = $1075&255;
$sk = $1076;
$1077 = $tmp;
$1078 = $1077&255;
$1079 = (($1078) + 150)|0;
$1080 = (43988 + ($1079)|0);
$1081 = HEAP8[$1080>>0]|0;
$1082 = $1081&255;
$1083 = $sl;
$1084 = $1083&255;
$1085 = $1084 ^ $1082;
$1086 = $1085&255;
$sl = $1086;
}
$1087 = $2;
$1088 = ((($1087)) + 21|0);
$1089 = HEAP8[$1088>>0]|0;
$1090 = ($1089<<24>>24)!=(0);
if ($1090) {
$1091 = $2;
$1092 = ((($1091)) + 21|0);
$1093 = HEAP8[$1092>>0]|0;
$1094 = $1093&255;
$1095 = (($1094) - 1)|0;
$1096 = (43733 + ($1095)|0);
$1097 = HEAP8[$1096>>0]|0;
$tmp = $1097;
$1098 = $tmp;
$1099 = $1098&255;
$1100 = (($1099) + 150)|0;
$1101 = (43988 + ($1100)|0);
$1102 = HEAP8[$1101>>0]|0;
$1103 = $1102&255;
$1104 = $si;
$1105 = $1104&255;
$1106 = $1105 ^ $1103;
$1107 = $1106&255;
$si = $1107;
$1108 = $tmp;
$1109 = $1108&255;
$1110 = (($1109) + 60)|0;
$1111 = (43988 + ($1110)|0);
$1112 = HEAP8[$1111>>0]|0;
$1113 = $1112&255;
$1114 = $sj;
$1115 = $1114&255;
$1116 = $1115 ^ $1113;
$1117 = $1116&255;
$sj = $1117;
$1118 = $tmp;
$1119 = $1118&255;
$1120 = (($1119) + 91)|0;
$1121 = (43988 + ($1120)|0);
$1122 = HEAP8[$1121>>0]|0;
$1123 = $1122&255;
$1124 = $sk;
$1125 = $1124&255;
$1126 = $1125 ^ $1123;
$1127 = $1126&255;
$sk = $1127;
$1128 = $tmp;
$1129 = $1128&255;
$1130 = (($1129) + 237)|0;
$1131 = (43988 + ($1130)|0);
$1132 = HEAP8[$1131>>0]|0;
$1133 = $1132&255;
$1134 = $sl;
$1135 = $1134&255;
$1136 = $1135 ^ $1133;
$1137 = $1136&255;
$sl = $1137;
}
$1138 = $2;
$1139 = ((($1138)) + 22|0);
$1140 = HEAP8[$1139>>0]|0;
$1141 = ($1140<<24>>24)!=(0);
if ($1141) {
$1142 = $2;
$1143 = ((($1142)) + 22|0);
$1144 = HEAP8[$1143>>0]|0;
$1145 = $1144&255;
$1146 = (($1145) - 1)|0;
$1147 = (43733 + ($1146)|0);
$1148 = HEAP8[$1147>>0]|0;
$tmp = $1148;
$1149 = $tmp;
$1150 = $1149&255;
$1151 = (($1150) + 237)|0;
$1152 = (43988 + ($1151)|0);
$1153 = HEAP8[$1152>>0]|0;
$1154 = $1153&255;
$1155 = $si;
$1156 = $1155&255;
$1157 = $1156 ^ $1154;
$1158 = $1157&255;
$si = $1158;
$1159 = $tmp;
$1160 = $1159&255;
$1161 = (($1160) + 55)|0;
$1162 = (43988 + ($1161)|0);
$1163 = HEAP8[$1162>>0]|0;
$1164 = $1163&255;
$1165 = $sj;
$1166 = $1165&255;
$1167 = $1166 ^ $1164;
$1168 = $1167&255;
$sj = $1168;
$1169 = $tmp;
$1170 = $1169&255;
$1171 = (($1170) + 79)|0;
$1172 = (43988 + ($1171)|0);
$1173 = HEAP8[$1172>>0]|0;
$1174 = $1173&255;
$1175 = $sk;
$1176 = $1175&255;
$1177 = $1176 ^ $1174;
$1178 = $1177&255;
$sk = $1178;
$1179 = $tmp;
$1180 = $1179&255;
$1181 = (($1180) + 224)|0;
$1182 = (43988 + ($1181)|0);
$1183 = HEAP8[$1182>>0]|0;
$1184 = $1183&255;
$1185 = $sl;
$1186 = $1185&255;
$1187 = $1186 ^ $1184;
$1188 = $1187&255;
$sl = $1188;
}
$1189 = $2;
$1190 = ((($1189)) + 23|0);
$1191 = HEAP8[$1190>>0]|0;
$1192 = ($1191<<24>>24)!=(0);
if ($1192) {
$1193 = $2;
$1194 = ((($1193)) + 23|0);
$1195 = HEAP8[$1194>>0]|0;
$1196 = $1195&255;
$1197 = (($1196) - 1)|0;
$1198 = (43733 + ($1197)|0);
$1199 = HEAP8[$1198>>0]|0;
$tmp = $1199;
$1200 = $tmp;
$1201 = $1200&255;
$1202 = (($1201) + 224)|0;
$1203 = (43988 + ($1202)|0);
$1204 = HEAP8[$1203>>0]|0;
$1205 = $1204&255;
$1206 = $si;
$1207 = $1206&255;
$1208 = $1207 ^ $1205;
$1209 = $1208&255;
$si = $1209;
$1210 = $tmp;
$1211 = $1210&255;
$1212 = (($1211) + 208)|0;
$1213 = (43988 + ($1212)|0);
$1214 = HEAP8[$1213>>0]|0;
$1215 = $1214&255;
$1216 = $sj;
$1217 = $1216&255;
$1218 = $1217 ^ $1215;
$1219 = $1218&255;
$sj = $1219;
$1220 = $tmp;
$1221 = $1220&255;
$1222 = (($1221) + 140)|0;
$1223 = (43988 + ($1222)|0);
$1224 = HEAP8[$1223>>0]|0;
$1225 = $1224&255;
$1226 = $sk;
$1227 = $1226&255;
$1228 = $1227 ^ $1225;
$1229 = $1228&255;
$sk = $1229;
$1230 = $tmp;
$1231 = $1230&255;
$1232 = (($1231) + 23)|0;
$1233 = (43988 + ($1232)|0);
$1234 = HEAP8[$1233>>0]|0;
$1235 = $1234&255;
$1236 = $sl;
$1237 = $1236&255;
$1238 = $1237 ^ $1235;
$1239 = $1238&255;
$sl = $1239;
}
$1240 = $2;
$1241 = ((($1240)) + 24|0);
$1242 = HEAP8[$1241>>0]|0;
$1243 = ($1242<<24>>24)!=(0);
if ($1243) {
$1244 = $2;
$1245 = ((($1244)) + 24|0);
$1246 = HEAP8[$1245>>0]|0;
$1247 = $1246&255;
$1248 = (($1247) - 1)|0;
$1249 = (43733 + ($1248)|0);
$1250 = HEAP8[$1249>>0]|0;
$tmp = $1250;
$1251 = $tmp;
$1252 = $1251&255;
$1253 = (($1252) + 0)|0;
$1254 = (43988 + ($1253)|0);
$1255 = HEAP8[$1254>>0]|0;
$1256 = $1255&255;
$1257 = $sm;
$1258 = $1257&255;
$1259 = $1258 ^ $1256;
$1260 = $1259&255;
$sm = $1260;
$1261 = $tmp;
$1262 = $1261&255;
$1263 = (($1262) + 45)|0;
$1264 = (43988 + ($1263)|0);
$1265 = HEAP8[$1264>>0]|0;
$1266 = $1265&255;
$1267 = $sn;
$1268 = $1267&255;
$1269 = $1268 ^ $1266;
$1270 = $1269&255;
$sn = $1270;
$1271 = $tmp;
$1272 = $1271&255;
$1273 = (($1272) + 1)|0;
$1274 = (43988 + ($1273)|0);
$1275 = HEAP8[$1274>>0]|0;
$1276 = $1275&255;
$1277 = $so;
$1278 = $1277&255;
$1279 = $1278 ^ $1276;
$1280 = $1279&255;
$so = $1280;
$1281 = $tmp;
$1282 = $1281&255;
$1283 = (($1282) + 45)|0;
$1284 = (43988 + ($1283)|0);
$1285 = HEAP8[$1284>>0]|0;
$1286 = $1285&255;
$1287 = $sp;
$1288 = $1287&255;
$1289 = $1288 ^ $1286;
$1290 = $1289&255;
$sp = $1290;
}
$1291 = $2;
$1292 = ((($1291)) + 25|0);
$1293 = HEAP8[$1292>>0]|0;
$1294 = ($1293<<24>>24)!=(0);
if ($1294) {
$1295 = $2;
$1296 = ((($1295)) + 25|0);
$1297 = HEAP8[$1296>>0]|0;
$1298 = $1297&255;
$1299 = (($1298) - 1)|0;
$1300 = (43733 + ($1299)|0);
$1301 = HEAP8[$1300>>0]|0;
$tmp = $1301;
$1302 = $tmp;
$1303 = $1302&255;
$1304 = (($1303) + 45)|0;
$1305 = (43988 + ($1304)|0);
$1306 = HEAP8[$1305>>0]|0;
$1307 = $1306&255;
$1308 = $sm;
$1309 = $1308&255;
$1310 = $1309 ^ $1307;
$1311 = $1310&255;
$sm = $1311;
$1312 = $tmp;
$1313 = $1312&255;
$1314 = (($1313) + 164)|0;
$1315 = (43988 + ($1314)|0);
$1316 = HEAP8[$1315>>0]|0;
$1317 = $1316&255;
$1318 = $sn;
$1319 = $1318&255;
$1320 = $1319 ^ $1317;
$1321 = $1320&255;
$sn = $1321;
$1322 = $tmp;
$1323 = $1322&255;
$1324 = (($1323) + 68)|0;
$1325 = (43988 + ($1324)|0);
$1326 = HEAP8[$1325>>0]|0;
$1327 = $1326&255;
$1328 = $so;
$1329 = $1328&255;
$1330 = $1329 ^ $1327;
$1331 = $1330&255;
$so = $1331;
$1332 = $tmp;
$1333 = $1332&255;
$1334 = (($1333) + 138)|0;
$1335 = (43988 + ($1334)|0);
$1336 = HEAP8[$1335>>0]|0;
$1337 = $1336&255;
$1338 = $sp;
$1339 = $1338&255;
$1340 = $1339 ^ $1337;
$1341 = $1340&255;
$sp = $1341;
}
$1342 = $2;
$1343 = ((($1342)) + 26|0);
$1344 = HEAP8[$1343>>0]|0;
$1345 = ($1344<<24>>24)!=(0);
if ($1345) {
$1346 = $2;
$1347 = ((($1346)) + 26|0);
$1348 = HEAP8[$1347>>0]|0;
$1349 = $1348&255;
$1350 = (($1349) - 1)|0;
$1351 = (43733 + ($1350)|0);
$1352 = HEAP8[$1351>>0]|0;
$tmp = $1352;
$1353 = $tmp;
$1354 = $1353&255;
$1355 = (($1354) + 138)|0;
$1356 = (43988 + ($1355)|0);
$1357 = HEAP8[$1356>>0]|0;
$1358 = $1357&255;
$1359 = $sm;
$1360 = $1359&255;
$1361 = $1360 ^ $1358;
$1362 = $1361&255;
$sm = $1362;
$1363 = $tmp;
$1364 = $1363&255;
$1365 = (($1364) + 213)|0;
$1366 = (43988 + ($1365)|0);
$1367 = HEAP8[$1366>>0]|0;
$1368 = $1367&255;
$1369 = $sn;
$1370 = $1369&255;
$1371 = $1370 ^ $1368;
$1372 = $1371&255;
$sn = $1372;
$1373 = $tmp;
$1374 = $1373&255;
$1375 = (($1374) + 191)|0;
$1376 = (43988 + ($1375)|0);
$1377 = HEAP8[$1376>>0]|0;
$1378 = $1377&255;
$1379 = $so;
$1380 = $1379&255;
$1381 = $1380 ^ $1378;
$1382 = $1381&255;
$so = $1382;
$1383 = $tmp;
$1384 = $1383&255;
$1385 = (($1384) + 209)|0;
$1386 = (43988 + ($1385)|0);
$1387 = HEAP8[$1386>>0]|0;
$1388 = $1387&255;
$1389 = $sp;
$1390 = $1389&255;
$1391 = $1390 ^ $1388;
$1392 = $1391&255;
$sp = $1392;
}
$1393 = $2;
$1394 = ((($1393)) + 27|0);
$1395 = HEAP8[$1394>>0]|0;
$1396 = ($1395<<24>>24)!=(0);
if ($1396) {
$1397 = $2;
$1398 = ((($1397)) + 27|0);
$1399 = HEAP8[$1398>>0]|0;
$1400 = $1399&255;
$1401 = (($1400) - 1)|0;
$1402 = (43733 + ($1401)|0);
$1403 = HEAP8[$1402>>0]|0;
$tmp = $1403;
$1404 = $tmp;
$1405 = $1404&255;
$1406 = (($1405) + 209)|0;
$1407 = (43988 + ($1406)|0);
$1408 = HEAP8[$1407>>0]|0;
$1409 = $1408&255;
$1410 = $sm;
$1411 = $1410&255;
$1412 = $1411 ^ $1409;
$1413 = $1412&255;
$sm = $1413;
$1414 = $tmp;
$1415 = $1414&255;
$1416 = (($1415) + 127)|0;
$1417 = (43988 + ($1416)|0);
$1418 = HEAP8[$1417>>0]|0;
$1419 = $1418&255;
$1420 = $sn;
$1421 = $1420&255;
$1422 = $1421 ^ $1419;
$1423 = $1422&255;
$sn = $1423;
$1424 = $tmp;
$1425 = $1424&255;
$1426 = (($1425) + 61)|0;
$1427 = (43988 + ($1426)|0);
$1428 = HEAP8[$1427>>0]|0;
$1429 = $1428&255;
$1430 = $so;
$1431 = $1430&255;
$1432 = $1431 ^ $1429;
$1433 = $1432&255;
$so = $1433;
$1434 = $tmp;
$1435 = $1434&255;
$1436 = (($1435) + 153)|0;
$1437 = (43988 + ($1436)|0);
$1438 = HEAP8[$1437>>0]|0;
$1439 = $1438&255;
$1440 = $sp;
$1441 = $1440&255;
$1442 = $1441 ^ $1439;
$1443 = $1442&255;
$sp = $1443;
}
$1444 = $2;
$1445 = ((($1444)) + 28|0);
$1446 = HEAP8[$1445>>0]|0;
$1447 = ($1446<<24>>24)!=(0);
if ($1447) {
$1448 = $2;
$1449 = ((($1448)) + 28|0);
$1450 = HEAP8[$1449>>0]|0;
$1451 = $1450&255;
$1452 = (($1451) - 1)|0;
$1453 = (43733 + ($1452)|0);
$1454 = HEAP8[$1453>>0]|0;
$tmp = $1454;
$1455 = $tmp;
$1456 = $1455&255;
$1457 = (($1456) + 153)|0;
$1458 = (43988 + ($1457)|0);
$1459 = HEAP8[$1458>>0]|0;
$1460 = $1459&255;
$1461 = $sm;
$1462 = $1461&255;
$1463 = $1462 ^ $1460;
$1464 = $1463&255;
$sm = $1464;
$1465 = $tmp;
$1466 = $1465&255;
$1467 = (($1466) + 70)|0;
$1468 = (43988 + ($1467)|0);
$1469 = HEAP8[$1468>>0]|0;
$1470 = $1469&255;
$1471 = $sn;
$1472 = $1471&255;
$1473 = $1472 ^ $1470;
$1474 = $1473&255;
$sn = $1474;
$1475 = $tmp;
$1476 = $1475&255;
$1477 = (($1476) + 102)|0;
$1478 = (43988 + ($1477)|0);
$1479 = HEAP8[$1478>>0]|0;
$1480 = $1479&255;
$1481 = $so;
$1482 = $1481&255;
$1483 = $1482 ^ $1480;
$1484 = $1483&255;
$so = $1484;
$1485 = $tmp;
$1486 = $1485&255;
$1487 = (($1486) + 150)|0;
$1488 = (43988 + ($1487)|0);
$1489 = HEAP8[$1488>>0]|0;
$1490 = $1489&255;
$1491 = $sp;
$1492 = $1491&255;
$1493 = $1492 ^ $1490;
$1494 = $1493&255;
$sp = $1494;
}
$1495 = $2;
$1496 = ((($1495)) + 29|0);
$1497 = HEAP8[$1496>>0]|0;
$1498 = ($1497<<24>>24)!=(0);
if ($1498) {
$1499 = $2;
$1500 = ((($1499)) + 29|0);
$1501 = HEAP8[$1500>>0]|0;
$1502 = $1501&255;
$1503 = (($1502) - 1)|0;
$1504 = (43733 + ($1503)|0);
$1505 = HEAP8[$1504>>0]|0;
$tmp = $1505;
$1506 = $tmp;
$1507 = $1506&255;
$1508 = (($1507) + 150)|0;
$1509 = (43988 + ($1508)|0);
$1510 = HEAP8[$1509>>0]|0;
$1511 = $1510&255;
$1512 = $sm;
$1513 = $1512&255;
$1514 = $1513 ^ $1511;
$1515 = $1514&255;
$sm = $1515;
$1516 = $tmp;
$1517 = $1516&255;
$1518 = (($1517) + 60)|0;
$1519 = (43988 + ($1518)|0);
$1520 = HEAP8[$1519>>0]|0;
$1521 = $1520&255;
$1522 = $sn;
$1523 = $1522&255;
$1524 = $1523 ^ $1521;
$1525 = $1524&255;
$sn = $1525;
$1526 = $tmp;
$1527 = $1526&255;
$1528 = (($1527) + 91)|0;
$1529 = (43988 + ($1528)|0);
$1530 = HEAP8[$1529>>0]|0;
$1531 = $1530&255;
$1532 = $so;
$1533 = $1532&255;
$1534 = $1533 ^ $1531;
$1535 = $1534&255;
$so = $1535;
$1536 = $tmp;
$1537 = $1536&255;
$1538 = (($1537) + 237)|0;
$1539 = (43988 + ($1538)|0);
$1540 = HEAP8[$1539>>0]|0;
$1541 = $1540&255;
$1542 = $sp;
$1543 = $1542&255;
$1544 = $1543 ^ $1541;
$1545 = $1544&255;
$sp = $1545;
}
$1546 = $2;
$1547 = ((($1546)) + 30|0);
$1548 = HEAP8[$1547>>0]|0;
$1549 = ($1548<<24>>24)!=(0);
if ($1549) {
$1550 = $2;
$1551 = ((($1550)) + 30|0);
$1552 = HEAP8[$1551>>0]|0;
$1553 = $1552&255;
$1554 = (($1553) - 1)|0;
$1555 = (43733 + ($1554)|0);
$1556 = HEAP8[$1555>>0]|0;
$tmp = $1556;
$1557 = $tmp;
$1558 = $1557&255;
$1559 = (($1558) + 237)|0;
$1560 = (43988 + ($1559)|0);
$1561 = HEAP8[$1560>>0]|0;
$1562 = $1561&255;
$1563 = $sm;
$1564 = $1563&255;
$1565 = $1564 ^ $1562;
$1566 = $1565&255;
$sm = $1566;
$1567 = $tmp;
$1568 = $1567&255;
$1569 = (($1568) + 55)|0;
$1570 = (43988 + ($1569)|0);
$1571 = HEAP8[$1570>>0]|0;
$1572 = $1571&255;
$1573 = $sn;
$1574 = $1573&255;
$1575 = $1574 ^ $1572;
$1576 = $1575&255;
$sn = $1576;
$1577 = $tmp;
$1578 = $1577&255;
$1579 = (($1578) + 79)|0;
$1580 = (43988 + ($1579)|0);
$1581 = HEAP8[$1580>>0]|0;
$1582 = $1581&255;
$1583 = $so;
$1584 = $1583&255;
$1585 = $1584 ^ $1582;
$1586 = $1585&255;
$so = $1586;
$1587 = $tmp;
$1588 = $1587&255;
$1589 = (($1588) + 224)|0;
$1590 = (43988 + ($1589)|0);
$1591 = HEAP8[$1590>>0]|0;
$1592 = $1591&255;
$1593 = $sp;
$1594 = $1593&255;
$1595 = $1594 ^ $1592;
$1596 = $1595&255;
$sp = $1596;
}
$1597 = $2;
$1598 = ((($1597)) + 31|0);
$1599 = HEAP8[$1598>>0]|0;
$1600 = ($1599<<24>>24)!=(0);
if ($1600) {
$1601 = $2;
$1602 = ((($1601)) + 31|0);
$1603 = HEAP8[$1602>>0]|0;
$1604 = $1603&255;
$1605 = (($1604) - 1)|0;
$1606 = (43733 + ($1605)|0);
$1607 = HEAP8[$1606>>0]|0;
$tmp = $1607;
$1608 = $tmp;
$1609 = $1608&255;
$1610 = (($1609) + 224)|0;
$1611 = (43988 + ($1610)|0);
$1612 = HEAP8[$1611>>0]|0;
$1613 = $1612&255;
$1614 = $sm;
$1615 = $1614&255;
$1616 = $1615 ^ $1613;
$1617 = $1616&255;
$sm = $1617;
$1618 = $tmp;
$1619 = $1618&255;
$1620 = (($1619) + 208)|0;
$1621 = (43988 + ($1620)|0);
$1622 = HEAP8[$1621>>0]|0;
$1623 = $1622&255;
$1624 = $sn;
$1625 = $1624&255;
$1626 = $1625 ^ $1623;
$1627 = $1626&255;
$sn = $1627;
$1628 = $tmp;
$1629 = $1628&255;
$1630 = (($1629) + 140)|0;
$1631 = (43988 + ($1630)|0);
$1632 = HEAP8[$1631>>0]|0;
$1633 = $1632&255;
$1634 = $so;
$1635 = $1634&255;
$1636 = $1635 ^ $1633;
$1637 = $1636&255;
$so = $1637;
$1638 = $tmp;
$1639 = $1638&255;
$1640 = (($1639) + 23)|0;
$1641 = (43988 + ($1640)|0);
$1642 = HEAP8[$1641>>0]|0;
$1643 = $1642&255;
$1644 = $sp;
$1645 = $1644&255;
$1646 = $1645 ^ $1643;
$1647 = $1646&255;
$sp = $1647;
}
$j = 0;
$i = 0;
$k = 1;
while(1) {
$1648 = $i;
$1649 = ($1648|0)<(256);
if (!($1649)) {
break;
}
$1650 = $k;
$1651 = (44480 + ($1650)|0);
$1652 = HEAP8[$1651>>0]|0;
$1653 = $1652&255;
$1654 = $sa;
$1655 = $1654&255;
$1656 = $1653 ^ $1655;
$1657 = (44992 + ($1656)|0);
$1658 = HEAP8[$1657>>0]|0;
$1659 = $1658&255;
$1660 = $se;
$1661 = $1660&255;
$1662 = $1659 ^ $1661;
$1663 = (45248 + ($1662)|0);
$1664 = HEAP8[$1663>>0]|0;
$1665 = $1664&255;
$1666 = $si;
$1667 = $1666&255;
$1668 = $1665 ^ $1667;
$1669 = (45248 + ($1668)|0);
$1670 = HEAP8[$1669>>0]|0;
$1671 = $1670&255;
$1672 = $sm;
$1673 = $1672&255;
$1674 = $1671 ^ $1673;
$1675 = (8376 + ($1674<<2)|0);
$1676 = HEAP32[$1675>>2]|0;
$1677 = $i;
$1678 = $1;
$1679 = (($1678) + ($1677<<2)|0);
HEAP32[$1679>>2] = $1676;
$1680 = $j;
$1681 = (44480 + ($1680)|0);
$1682 = HEAP8[$1681>>0]|0;
$1683 = $1682&255;
$1684 = $sb;
$1685 = $1684&255;
$1686 = $1683 ^ $1685;
$1687 = (44992 + ($1686)|0);
$1688 = HEAP8[$1687>>0]|0;
$1689 = $1688&255;
$1690 = $sf;
$1691 = $1690&255;
$1692 = $1689 ^ $1691;
$1693 = (44992 + ($1692)|0);
$1694 = HEAP8[$1693>>0]|0;
$1695 = $1694&255;
$1696 = $sj;
$1697 = $1696&255;
$1698 = $1695 ^ $1697;
$1699 = (45248 + ($1698)|0);
$1700 = HEAP8[$1699>>0]|0;
$1701 = $1700&255;
$1702 = $sn;
$1703 = $1702&255;
$1704 = $1701 ^ $1703;
$1705 = ((9400) + ($1704<<2)|0);
$1706 = HEAP32[$1705>>2]|0;
$1707 = $i;
$1708 = $1;
$1709 = ((($1708)) + 1024|0);
$1710 = (($1709) + ($1707<<2)|0);
HEAP32[$1710>>2] = $1706;
$1711 = $j;
$1712 = (44480 + ($1711)|0);
$1713 = HEAP8[$1712>>0]|0;
$1714 = $1713&255;
$1715 = $sc;
$1716 = $1715&255;
$1717 = $1714 ^ $1716;
$1718 = (45248 + ($1717)|0);
$1719 = HEAP8[$1718>>0]|0;
$1720 = $1719&255;
$1721 = $sg;
$1722 = $1721&255;
$1723 = $1720 ^ $1722;
$1724 = (45248 + ($1723)|0);
$1725 = HEAP8[$1724>>0]|0;
$1726 = $1725&255;
$1727 = $sk;
$1728 = $1727&255;
$1729 = $1726 ^ $1728;
$1730 = (44992 + ($1729)|0);
$1731 = HEAP8[$1730>>0]|0;
$1732 = $1731&255;
$1733 = $so;
$1734 = $1733&255;
$1735 = $1732 ^ $1734;
$1736 = ((10424) + ($1735<<2)|0);
$1737 = HEAP32[$1736>>2]|0;
$1738 = $i;
$1739 = $1;
$1740 = ((($1739)) + 2048|0);
$1741 = (($1740) + ($1738<<2)|0);
HEAP32[$1741>>2] = $1737;
$1742 = $k;
$1743 = (44480 + ($1742)|0);
$1744 = HEAP8[$1743>>0]|0;
$1745 = $1744&255;
$1746 = $sd;
$1747 = $1746&255;
$1748 = $1745 ^ $1747;
$1749 = (45248 + ($1748)|0);
$1750 = HEAP8[$1749>>0]|0;
$1751 = $1750&255;
$1752 = $sh;
$1753 = $1752&255;
$1754 = $1751 ^ $1753;
$1755 = (44992 + ($1754)|0);
$1756 = HEAP8[$1755>>0]|0;
$1757 = $1756&255;
$1758 = $sl;
$1759 = $1758&255;
$1760 = $1757 ^ $1759;
$1761 = (44992 + ($1760)|0);
$1762 = HEAP8[$1761>>0]|0;
$1763 = $1762&255;
$1764 = $sp;
$1765 = $1764&255;
$1766 = $1763 ^ $1765;
$1767 = ((11448) + ($1766<<2)|0);
$1768 = HEAP32[$1767>>2]|0;
$1769 = $i;
$1770 = $1;
$1771 = ((($1770)) + 3072|0);
$1772 = (($1771) + ($1769<<2)|0);
HEAP32[$1772>>2] = $1768;
$1773 = $i;
$1774 = (($1773) + 1)|0;
$i = $1774;
$1775 = $j;
$1776 = (($1775) + 2)|0;
$j = $1776;
$1777 = $k;
$1778 = (($1777) + 2)|0;
$k = $1778;
}
$1779 = $2;
$1780 = ((($1779)) + 24|0);
$1781 = HEAP8[$1780>>0]|0;
$1782 = $1781&255;
$1783 = 117 ^ $1782;
$1784 = (44992 + ($1783)|0);
$1785 = HEAP8[$1784>>0]|0;
$1786 = $1785&255;
$1787 = $2;
$1788 = ((($1787)) + 16|0);
$1789 = HEAP8[$1788>>0]|0;
$1790 = $1789&255;
$1791 = $1786 ^ $1790;
$1792 = (45248 + ($1791)|0);
$1793 = HEAP8[$1792>>0]|0;
$1794 = $1793&255;
$1795 = $2;
$1796 = ((($1795)) + 8|0);
$1797 = HEAP8[$1796>>0]|0;
$1798 = $1797&255;
$1799 = $1794 ^ $1798;
$1800 = (45248 + ($1799)|0);
$1801 = HEAP8[$1800>>0]|0;
$1802 = $1801&255;
$1803 = $2;
$1804 = HEAP8[$1803>>0]|0;
$1805 = $1804&255;
$1806 = $1802 ^ $1805;
$1807 = (8376 + ($1806<<2)|0);
$1808 = HEAP32[$1807>>2]|0;
$1809 = $2;
$1810 = ((($1809)) + 25|0);
$1811 = HEAP8[$1810>>0]|0;
$1812 = $1811&255;
$1813 = 169 ^ $1812;
$1814 = (44992 + ($1813)|0);
$1815 = HEAP8[$1814>>0]|0;
$1816 = $1815&255;
$1817 = $2;
$1818 = ((($1817)) + 17|0);
$1819 = HEAP8[$1818>>0]|0;
$1820 = $1819&255;
$1821 = $1816 ^ $1820;
$1822 = (44992 + ($1821)|0);
$1823 = HEAP8[$1822>>0]|0;
$1824 = $1823&255;
$1825 = $2;
$1826 = ((($1825)) + 9|0);
$1827 = HEAP8[$1826>>0]|0;
$1828 = $1827&255;
$1829 = $1824 ^ $1828;
$1830 = (45248 + ($1829)|0);
$1831 = HEAP8[$1830>>0]|0;
$1832 = $1831&255;
$1833 = $2;
$1834 = ((($1833)) + 1|0);
$1835 = HEAP8[$1834>>0]|0;
$1836 = $1835&255;
$1837 = $1832 ^ $1836;
$1838 = ((9400) + ($1837<<2)|0);
$1839 = HEAP32[$1838>>2]|0;
$1840 = $1808 ^ $1839;
$1841 = $2;
$1842 = ((($1841)) + 26|0);
$1843 = HEAP8[$1842>>0]|0;
$1844 = $1843&255;
$1845 = 169 ^ $1844;
$1846 = (45248 + ($1845)|0);
$1847 = HEAP8[$1846>>0]|0;
$1848 = $1847&255;
$1849 = $2;
$1850 = ((($1849)) + 18|0);
$1851 = HEAP8[$1850>>0]|0;
$1852 = $1851&255;
$1853 = $1848 ^ $1852;
$1854 = (45248 + ($1853)|0);
$1855 = HEAP8[$1854>>0]|0;
$1856 = $1855&255;
$1857 = $2;
$1858 = ((($1857)) + 10|0);
$1859 = HEAP8[$1858>>0]|0;
$1860 = $1859&255;
$1861 = $1856 ^ $1860;
$1862 = (44992 + ($1861)|0);
$1863 = HEAP8[$1862>>0]|0;
$1864 = $1863&255;
$1865 = $2;
$1866 = ((($1865)) + 2|0);
$1867 = HEAP8[$1866>>0]|0;
$1868 = $1867&255;
$1869 = $1864 ^ $1868;
$1870 = ((10424) + ($1869<<2)|0);
$1871 = HEAP32[$1870>>2]|0;
$1872 = $1840 ^ $1871;
$1873 = $2;
$1874 = ((($1873)) + 27|0);
$1875 = HEAP8[$1874>>0]|0;
$1876 = $1875&255;
$1877 = 117 ^ $1876;
$1878 = (45248 + ($1877)|0);
$1879 = HEAP8[$1878>>0]|0;
$1880 = $1879&255;
$1881 = $2;
$1882 = ((($1881)) + 19|0);
$1883 = HEAP8[$1882>>0]|0;
$1884 = $1883&255;
$1885 = $1880 ^ $1884;
$1886 = (44992 + ($1885)|0);
$1887 = HEAP8[$1886>>0]|0;
$1888 = $1887&255;
$1889 = $2;
$1890 = ((($1889)) + 11|0);
$1891 = HEAP8[$1890>>0]|0;
$1892 = $1891&255;
$1893 = $1888 ^ $1892;
$1894 = (44992 + ($1893)|0);
$1895 = HEAP8[$1894>>0]|0;
$1896 = $1895&255;
$1897 = $2;
$1898 = ((($1897)) + 3|0);
$1899 = HEAP8[$1898>>0]|0;
$1900 = $1899&255;
$1901 = $1896 ^ $1900;
$1902 = ((11448) + ($1901<<2)|0);
$1903 = HEAP32[$1902>>2]|0;
$1904 = $1872 ^ $1903;
$x = $1904;
$1905 = $2;
$1906 = ((($1905)) + 28|0);
$1907 = HEAP8[$1906>>0]|0;
$1908 = $1907&255;
$1909 = 243 ^ $1908;
$1910 = (44992 + ($1909)|0);
$1911 = HEAP8[$1910>>0]|0;
$1912 = $1911&255;
$1913 = $2;
$1914 = ((($1913)) + 20|0);
$1915 = HEAP8[$1914>>0]|0;
$1916 = $1915&255;
$1917 = $1912 ^ $1916;
$1918 = (45248 + ($1917)|0);
$1919 = HEAP8[$1918>>0]|0;
$1920 = $1919&255;
$1921 = $2;
$1922 = ((($1921)) + 12|0);
$1923 = HEAP8[$1922>>0]|0;
$1924 = $1923&255;
$1925 = $1920 ^ $1924;
$1926 = (45248 + ($1925)|0);
$1927 = HEAP8[$1926>>0]|0;
$1928 = $1927&255;
$1929 = $2;
$1930 = ((($1929)) + 4|0);
$1931 = HEAP8[$1930>>0]|0;
$1932 = $1931&255;
$1933 = $1928 ^ $1932;
$1934 = (8376 + ($1933<<2)|0);
$1935 = HEAP32[$1934>>2]|0;
$1936 = $2;
$1937 = ((($1936)) + 29|0);
$1938 = HEAP8[$1937>>0]|0;
$1939 = $1938&255;
$1940 = 103 ^ $1939;
$1941 = (44992 + ($1940)|0);
$1942 = HEAP8[$1941>>0]|0;
$1943 = $1942&255;
$1944 = $2;
$1945 = ((($1944)) + 21|0);
$1946 = HEAP8[$1945>>0]|0;
$1947 = $1946&255;
$1948 = $1943 ^ $1947;
$1949 = (44992 + ($1948)|0);
$1950 = HEAP8[$1949>>0]|0;
$1951 = $1950&255;
$1952 = $2;
$1953 = ((($1952)) + 13|0);
$1954 = HEAP8[$1953>>0]|0;
$1955 = $1954&255;
$1956 = $1951 ^ $1955;
$1957 = (45248 + ($1956)|0);
$1958 = HEAP8[$1957>>0]|0;
$1959 = $1958&255;
$1960 = $2;
$1961 = ((($1960)) + 5|0);
$1962 = HEAP8[$1961>>0]|0;
$1963 = $1962&255;
$1964 = $1959 ^ $1963;
$1965 = ((9400) + ($1964<<2)|0);
$1966 = HEAP32[$1965>>2]|0;
$1967 = $1935 ^ $1966;
$1968 = $2;
$1969 = ((($1968)) + 30|0);
$1970 = HEAP8[$1969>>0]|0;
$1971 = $1970&255;
$1972 = 103 ^ $1971;
$1973 = (45248 + ($1972)|0);
$1974 = HEAP8[$1973>>0]|0;
$1975 = $1974&255;
$1976 = $2;
$1977 = ((($1976)) + 22|0);
$1978 = HEAP8[$1977>>0]|0;
$1979 = $1978&255;
$1980 = $1975 ^ $1979;
$1981 = (45248 + ($1980)|0);
$1982 = HEAP8[$1981>>0]|0;
$1983 = $1982&255;
$1984 = $2;
$1985 = ((($1984)) + 14|0);
$1986 = HEAP8[$1985>>0]|0;
$1987 = $1986&255;
$1988 = $1983 ^ $1987;
$1989 = (44992 + ($1988)|0);
$1990 = HEAP8[$1989>>0]|0;
$1991 = $1990&255;
$1992 = $2;
$1993 = ((($1992)) + 6|0);
$1994 = HEAP8[$1993>>0]|0;
$1995 = $1994&255;
$1996 = $1991 ^ $1995;
$1997 = ((10424) + ($1996<<2)|0);
$1998 = HEAP32[$1997>>2]|0;
$1999 = $1967 ^ $1998;
$2000 = $2;
$2001 = ((($2000)) + 31|0);
$2002 = HEAP8[$2001>>0]|0;
$2003 = $2002&255;
$2004 = 243 ^ $2003;
$2005 = (45248 + ($2004)|0);
$2006 = HEAP8[$2005>>0]|0;
$2007 = $2006&255;
$2008 = $2;
$2009 = ((($2008)) + 23|0);
$2010 = HEAP8[$2009>>0]|0;
$2011 = $2010&255;
$2012 = $2007 ^ $2011;
$2013 = (44992 + ($2012)|0);
$2014 = HEAP8[$2013>>0]|0;
$2015 = $2014&255;
$2016 = $2;
$2017 = ((($2016)) + 15|0);
$2018 = HEAP8[$2017>>0]|0;
$2019 = $2018&255;
$2020 = $2015 ^ $2019;
$2021 = (44992 + ($2020)|0);
$2022 = HEAP8[$2021>>0]|0;
$2023 = $2022&255;
$2024 = $2;
$2025 = ((($2024)) + 7|0);
$2026 = HEAP8[$2025>>0]|0;
$2027 = $2026&255;
$2028 = $2023 ^ $2027;
$2029 = ((11448) + ($2028<<2)|0);
$2030 = HEAP32[$2029>>2]|0;
$2031 = $1999 ^ $2030;
$y = $2031;
$2032 = $y;
$2033 = $2032 << 8;
$2034 = $y;
$2035 = $2034 >>> 24;
$2036 = (($2033) + ($2035))|0;
$y = $2036;
$2037 = $y;
$2038 = $x;
$2039 = (($2038) + ($2037))|0;
$x = $2039;
$2040 = $x;
$2041 = $y;
$2042 = (($2041) + ($2040))|0;
$y = $2042;
$2043 = $x;
$2044 = $1;
$2045 = ((($2044)) + 4096|0);
HEAP32[$2045>>2] = $2043;
$2046 = $y;
$2047 = $2046 << 9;
$2048 = $y;
$2049 = $2048 >>> 23;
$2050 = (($2047) + ($2049))|0;
$2051 = $1;
$2052 = ((($2051)) + 4096|0);
$2053 = ((($2052)) + 4|0);
HEAP32[$2053>>2] = $2050;
$2054 = $2;
$2055 = ((($2054)) + 24|0);
$2056 = HEAP8[$2055>>0]|0;
$2057 = $2056&255;
$2058 = 198 ^ $2057;
$2059 = (44992 + ($2058)|0);
$2060 = HEAP8[$2059>>0]|0;
$2061 = $2060&255;
$2062 = $2;
$2063 = ((($2062)) + 16|0);
$2064 = HEAP8[$2063>>0]|0;
$2065 = $2064&255;
$2066 = $2061 ^ $2065;
$2067 = (45248 + ($2066)|0);
$2068 = HEAP8[$2067>>0]|0;
$2069 = $2068&255;
$2070 = $2;
$2071 = ((($2070)) + 8|0);
$2072 = HEAP8[$2071>>0]|0;
$2073 = $2072&255;
$2074 = $2069 ^ $2073;
$2075 = (45248 + ($2074)|0);
$2076 = HEAP8[$2075>>0]|0;
$2077 = $2076&255;
$2078 = $2;
$2079 = HEAP8[$2078>>0]|0;
$2080 = $2079&255;
$2081 = $2077 ^ $2080;
$2082 = (8376 + ($2081<<2)|0);
$2083 = HEAP32[$2082>>2]|0;
$2084 = $2;
$2085 = ((($2084)) + 25|0);
$2086 = HEAP8[$2085>>0]|0;
$2087 = $2086&255;
$2088 = 179 ^ $2087;
$2089 = (44992 + ($2088)|0);
$2090 = HEAP8[$2089>>0]|0;
$2091 = $2090&255;
$2092 = $2;
$2093 = ((($2092)) + 17|0);
$2094 = HEAP8[$2093>>0]|0;
$2095 = $2094&255;
$2096 = $2091 ^ $2095;
$2097 = (44992 + ($2096)|0);
$2098 = HEAP8[$2097>>0]|0;
$2099 = $2098&255;
$2100 = $2;
$2101 = ((($2100)) + 9|0);
$2102 = HEAP8[$2101>>0]|0;
$2103 = $2102&255;
$2104 = $2099 ^ $2103;
$2105 = (45248 + ($2104)|0);
$2106 = HEAP8[$2105>>0]|0;
$2107 = $2106&255;
$2108 = $2;
$2109 = ((($2108)) + 1|0);
$2110 = HEAP8[$2109>>0]|0;
$2111 = $2110&255;
$2112 = $2107 ^ $2111;
$2113 = ((9400) + ($2112<<2)|0);
$2114 = HEAP32[$2113>>2]|0;
$2115 = $2083 ^ $2114;
$2116 = $2;
$2117 = ((($2116)) + 26|0);
$2118 = HEAP8[$2117>>0]|0;
$2119 = $2118&255;
$2120 = 179 ^ $2119;
$2121 = (45248 + ($2120)|0);
$2122 = HEAP8[$2121>>0]|0;
$2123 = $2122&255;
$2124 = $2;
$2125 = ((($2124)) + 18|0);
$2126 = HEAP8[$2125>>0]|0;
$2127 = $2126&255;
$2128 = $2123 ^ $2127;
$2129 = (45248 + ($2128)|0);
$2130 = HEAP8[$2129>>0]|0;
$2131 = $2130&255;
$2132 = $2;
$2133 = ((($2132)) + 10|0);
$2134 = HEAP8[$2133>>0]|0;
$2135 = $2134&255;
$2136 = $2131 ^ $2135;
$2137 = (44992 + ($2136)|0);
$2138 = HEAP8[$2137>>0]|0;
$2139 = $2138&255;
$2140 = $2;
$2141 = ((($2140)) + 2|0);
$2142 = HEAP8[$2141>>0]|0;
$2143 = $2142&255;
$2144 = $2139 ^ $2143;
$2145 = ((10424) + ($2144<<2)|0);
$2146 = HEAP32[$2145>>2]|0;
$2147 = $2115 ^ $2146;
$2148 = $2;
$2149 = ((($2148)) + 27|0);
$2150 = HEAP8[$2149>>0]|0;
$2151 = $2150&255;
$2152 = 198 ^ $2151;
$2153 = (45248 + ($2152)|0);
$2154 = HEAP8[$2153>>0]|0;
$2155 = $2154&255;
$2156 = $2;
$2157 = ((($2156)) + 19|0);
$2158 = HEAP8[$2157>>0]|0;
$2159 = $2158&255;
$2160 = $2155 ^ $2159;
$2161 = (44992 + ($2160)|0);
$2162 = HEAP8[$2161>>0]|0;
$2163 = $2162&255;
$2164 = $2;
$2165 = ((($2164)) + 11|0);
$2166 = HEAP8[$2165>>0]|0;
$2167 = $2166&255;
$2168 = $2163 ^ $2167;
$2169 = (44992 + ($2168)|0);
$2170 = HEAP8[$2169>>0]|0;
$2171 = $2170&255;
$2172 = $2;
$2173 = ((($2172)) + 3|0);
$2174 = HEAP8[$2173>>0]|0;
$2175 = $2174&255;
$2176 = $2171 ^ $2175;
$2177 = ((11448) + ($2176<<2)|0);
$2178 = HEAP32[$2177>>2]|0;
$2179 = $2147 ^ $2178;
$x = $2179;
$2180 = $2;
$2181 = ((($2180)) + 28|0);
$2182 = HEAP8[$2181>>0]|0;
$2183 = $2182&255;
$2184 = 244 ^ $2183;
$2185 = (44992 + ($2184)|0);
$2186 = HEAP8[$2185>>0]|0;
$2187 = $2186&255;
$2188 = $2;
$2189 = ((($2188)) + 20|0);
$2190 = HEAP8[$2189>>0]|0;
$2191 = $2190&255;
$2192 = $2187 ^ $2191;
$2193 = (45248 + ($2192)|0);
$2194 = HEAP8[$2193>>0]|0;
$2195 = $2194&255;
$2196 = $2;
$2197 = ((($2196)) + 12|0);
$2198 = HEAP8[$2197>>0]|0;
$2199 = $2198&255;
$2200 = $2195 ^ $2199;
$2201 = (45248 + ($2200)|0);
$2202 = HEAP8[$2201>>0]|0;
$2203 = $2202&255;
$2204 = $2;
$2205 = ((($2204)) + 4|0);
$2206 = HEAP8[$2205>>0]|0;
$2207 = $2206&255;
$2208 = $2203 ^ $2207;
$2209 = (8376 + ($2208<<2)|0);
$2210 = HEAP32[$2209>>2]|0;
$2211 = $2;
$2212 = ((($2211)) + 29|0);
$2213 = HEAP8[$2212>>0]|0;
$2214 = $2213&255;
$2215 = 232 ^ $2214;
$2216 = (44992 + ($2215)|0);
$2217 = HEAP8[$2216>>0]|0;
$2218 = $2217&255;
$2219 = $2;
$2220 = ((($2219)) + 21|0);
$2221 = HEAP8[$2220>>0]|0;
$2222 = $2221&255;
$2223 = $2218 ^ $2222;
$2224 = (44992 + ($2223)|0);
$2225 = HEAP8[$2224>>0]|0;
$2226 = $2225&255;
$2227 = $2;
$2228 = ((($2227)) + 13|0);
$2229 = HEAP8[$2228>>0]|0;
$2230 = $2229&255;
$2231 = $2226 ^ $2230;
$2232 = (45248 + ($2231)|0);
$2233 = HEAP8[$2232>>0]|0;
$2234 = $2233&255;
$2235 = $2;
$2236 = ((($2235)) + 5|0);
$2237 = HEAP8[$2236>>0]|0;
$2238 = $2237&255;
$2239 = $2234 ^ $2238;
$2240 = ((9400) + ($2239<<2)|0);
$2241 = HEAP32[$2240>>2]|0;
$2242 = $2210 ^ $2241;
$2243 = $2;
$2244 = ((($2243)) + 30|0);
$2245 = HEAP8[$2244>>0]|0;
$2246 = $2245&255;
$2247 = 232 ^ $2246;
$2248 = (45248 + ($2247)|0);
$2249 = HEAP8[$2248>>0]|0;
$2250 = $2249&255;
$2251 = $2;
$2252 = ((($2251)) + 22|0);
$2253 = HEAP8[$2252>>0]|0;
$2254 = $2253&255;
$2255 = $2250 ^ $2254;
$2256 = (45248 + ($2255)|0);
$2257 = HEAP8[$2256>>0]|0;
$2258 = $2257&255;
$2259 = $2;
$2260 = ((($2259)) + 14|0);
$2261 = HEAP8[$2260>>0]|0;
$2262 = $2261&255;
$2263 = $2258 ^ $2262;
$2264 = (44992 + ($2263)|0);
$2265 = HEAP8[$2264>>0]|0;
$2266 = $2265&255;
$2267 = $2;
$2268 = ((($2267)) + 6|0);
$2269 = HEAP8[$2268>>0]|0;
$2270 = $2269&255;
$2271 = $2266 ^ $2270;
$2272 = ((10424) + ($2271<<2)|0);
$2273 = HEAP32[$2272>>2]|0;
$2274 = $2242 ^ $2273;
$2275 = $2;
$2276 = ((($2275)) + 31|0);
$2277 = HEAP8[$2276>>0]|0;
$2278 = $2277&255;
$2279 = 244 ^ $2278;
$2280 = (45248 + ($2279)|0);
$2281 = HEAP8[$2280>>0]|0;
$2282 = $2281&255;
$2283 = $2;
$2284 = ((($2283)) + 23|0);
$2285 = HEAP8[$2284>>0]|0;
$2286 = $2285&255;
$2287 = $2282 ^ $2286;
$2288 = (44992 + ($2287)|0);
$2289 = HEAP8[$2288>>0]|0;
$2290 = $2289&255;
$2291 = $2;
$2292 = ((($2291)) + 15|0);
$2293 = HEAP8[$2292>>0]|0;
$2294 = $2293&255;
$2295 = $2290 ^ $2294;
$2296 = (44992 + ($2295)|0);
$2297 = HEAP8[$2296>>0]|0;
$2298 = $2297&255;
$2299 = $2;
$2300 = ((($2299)) + 7|0);
$2301 = HEAP8[$2300>>0]|0;
$2302 = $2301&255;
$2303 = $2298 ^ $2302;
$2304 = ((11448) + ($2303<<2)|0);
$2305 = HEAP32[$2304>>2]|0;
$2306 = $2274 ^ $2305;
$y = $2306;
$2307 = $y;
$2308 = $2307 << 8;
$2309 = $y;
$2310 = $2309 >>> 24;
$2311 = (($2308) + ($2310))|0;
$y = $2311;
$2312 = $y;
$2313 = $x;
$2314 = (($2313) + ($2312))|0;
$x = $2314;
$2315 = $x;
$2316 = $y;
$2317 = (($2316) + ($2315))|0;
$y = $2317;
$2318 = $x;
$2319 = $1;
$2320 = ((($2319)) + 4096|0);
$2321 = ((($2320)) + 8|0);
HEAP32[$2321>>2] = $2318;
$2322 = $y;
$2323 = $2322 << 9;
$2324 = $y;
$2325 = $2324 >>> 23;
$2326 = (($2323) + ($2325))|0;
$2327 = $1;
$2328 = ((($2327)) + 4096|0);
$2329 = ((($2328)) + 12|0);
HEAP32[$2329>>2] = $2326;
$2330 = $2;
$2331 = ((($2330)) + 24|0);
$2332 = HEAP8[$2331>>0]|0;
$2333 = $2332&255;
$2334 = 219 ^ $2333;
$2335 = (44992 + ($2334)|0);
$2336 = HEAP8[$2335>>0]|0;
$2337 = $2336&255;
$2338 = $2;
$2339 = ((($2338)) + 16|0);
$2340 = HEAP8[$2339>>0]|0;
$2341 = $2340&255;
$2342 = $2337 ^ $2341;
$2343 = (45248 + ($2342)|0);
$2344 = HEAP8[$2343>>0]|0;
$2345 = $2344&255;
$2346 = $2;
$2347 = ((($2346)) + 8|0);
$2348 = HEAP8[$2347>>0]|0;
$2349 = $2348&255;
$2350 = $2345 ^ $2349;
$2351 = (45248 + ($2350)|0);
$2352 = HEAP8[$2351>>0]|0;
$2353 = $2352&255;
$2354 = $2;
$2355 = HEAP8[$2354>>0]|0;
$2356 = $2355&255;
$2357 = $2353 ^ $2356;
$2358 = (8376 + ($2357<<2)|0);
$2359 = HEAP32[$2358>>2]|0;
$2360 = $2;
$2361 = ((($2360)) + 25|0);
$2362 = HEAP8[$2361>>0]|0;
$2363 = $2362&255;
$2364 = 4 ^ $2363;
$2365 = (44992 + ($2364)|0);
$2366 = HEAP8[$2365>>0]|0;
$2367 = $2366&255;
$2368 = $2;
$2369 = ((($2368)) + 17|0);
$2370 = HEAP8[$2369>>0]|0;
$2371 = $2370&255;
$2372 = $2367 ^ $2371;
$2373 = (44992 + ($2372)|0);
$2374 = HEAP8[$2373>>0]|0;
$2375 = $2374&255;
$2376 = $2;
$2377 = ((($2376)) + 9|0);
$2378 = HEAP8[$2377>>0]|0;
$2379 = $2378&255;
$2380 = $2375 ^ $2379;
$2381 = (45248 + ($2380)|0);
$2382 = HEAP8[$2381>>0]|0;
$2383 = $2382&255;
$2384 = $2;
$2385 = ((($2384)) + 1|0);
$2386 = HEAP8[$2385>>0]|0;
$2387 = $2386&255;
$2388 = $2383 ^ $2387;
$2389 = ((9400) + ($2388<<2)|0);
$2390 = HEAP32[$2389>>2]|0;
$2391 = $2359 ^ $2390;
$2392 = $2;
$2393 = ((($2392)) + 26|0);
$2394 = HEAP8[$2393>>0]|0;
$2395 = $2394&255;
$2396 = 4 ^ $2395;
$2397 = (45248 + ($2396)|0);
$2398 = HEAP8[$2397>>0]|0;
$2399 = $2398&255;
$2400 = $2;
$2401 = ((($2400)) + 18|0);
$2402 = HEAP8[$2401>>0]|0;
$2403 = $2402&255;
$2404 = $2399 ^ $2403;
$2405 = (45248 + ($2404)|0);
$2406 = HEAP8[$2405>>0]|0;
$2407 = $2406&255;
$2408 = $2;
$2409 = ((($2408)) + 10|0);
$2410 = HEAP8[$2409>>0]|0;
$2411 = $2410&255;
$2412 = $2407 ^ $2411;
$2413 = (44992 + ($2412)|0);
$2414 = HEAP8[$2413>>0]|0;
$2415 = $2414&255;
$2416 = $2;
$2417 = ((($2416)) + 2|0);
$2418 = HEAP8[$2417>>0]|0;
$2419 = $2418&255;
$2420 = $2415 ^ $2419;
$2421 = ((10424) + ($2420<<2)|0);
$2422 = HEAP32[$2421>>2]|0;
$2423 = $2391 ^ $2422;
$2424 = $2;
$2425 = ((($2424)) + 27|0);
$2426 = HEAP8[$2425>>0]|0;
$2427 = $2426&255;
$2428 = 219 ^ $2427;
$2429 = (45248 + ($2428)|0);
$2430 = HEAP8[$2429>>0]|0;
$2431 = $2430&255;
$2432 = $2;
$2433 = ((($2432)) + 19|0);
$2434 = HEAP8[$2433>>0]|0;
$2435 = $2434&255;
$2436 = $2431 ^ $2435;
$2437 = (44992 + ($2436)|0);
$2438 = HEAP8[$2437>>0]|0;
$2439 = $2438&255;
$2440 = $2;
$2441 = ((($2440)) + 11|0);
$2442 = HEAP8[$2441>>0]|0;
$2443 = $2442&255;
$2444 = $2439 ^ $2443;
$2445 = (44992 + ($2444)|0);
$2446 = HEAP8[$2445>>0]|0;
$2447 = $2446&255;
$2448 = $2;
$2449 = ((($2448)) + 3|0);
$2450 = HEAP8[$2449>>0]|0;
$2451 = $2450&255;
$2452 = $2447 ^ $2451;
$2453 = ((11448) + ($2452<<2)|0);
$2454 = HEAP32[$2453>>2]|0;
$2455 = $2423 ^ $2454;
$x = $2455;
$2456 = $2;
$2457 = ((($2456)) + 28|0);
$2458 = HEAP8[$2457>>0]|0;
$2459 = $2458&255;
$2460 = 123 ^ $2459;
$2461 = (44992 + ($2460)|0);
$2462 = HEAP8[$2461>>0]|0;
$2463 = $2462&255;
$2464 = $2;
$2465 = ((($2464)) + 20|0);
$2466 = HEAP8[$2465>>0]|0;
$2467 = $2466&255;
$2468 = $2463 ^ $2467;
$2469 = (45248 + ($2468)|0);
$2470 = HEAP8[$2469>>0]|0;
$2471 = $2470&255;
$2472 = $2;
$2473 = ((($2472)) + 12|0);
$2474 = HEAP8[$2473>>0]|0;
$2475 = $2474&255;
$2476 = $2471 ^ $2475;
$2477 = (45248 + ($2476)|0);
$2478 = HEAP8[$2477>>0]|0;
$2479 = $2478&255;
$2480 = $2;
$2481 = ((($2480)) + 4|0);
$2482 = HEAP8[$2481>>0]|0;
$2483 = $2482&255;
$2484 = $2479 ^ $2483;
$2485 = (8376 + ($2484<<2)|0);
$2486 = HEAP32[$2485>>2]|0;
$2487 = $2;
$2488 = ((($2487)) + 29|0);
$2489 = HEAP8[$2488>>0]|0;
$2490 = $2489&255;
$2491 = 253 ^ $2490;
$2492 = (44992 + ($2491)|0);
$2493 = HEAP8[$2492>>0]|0;
$2494 = $2493&255;
$2495 = $2;
$2496 = ((($2495)) + 21|0);
$2497 = HEAP8[$2496>>0]|0;
$2498 = $2497&255;
$2499 = $2494 ^ $2498;
$2500 = (44992 + ($2499)|0);
$2501 = HEAP8[$2500>>0]|0;
$2502 = $2501&255;
$2503 = $2;
$2504 = ((($2503)) + 13|0);
$2505 = HEAP8[$2504>>0]|0;
$2506 = $2505&255;
$2507 = $2502 ^ $2506;
$2508 = (45248 + ($2507)|0);
$2509 = HEAP8[$2508>>0]|0;
$2510 = $2509&255;
$2511 = $2;
$2512 = ((($2511)) + 5|0);
$2513 = HEAP8[$2512>>0]|0;
$2514 = $2513&255;
$2515 = $2510 ^ $2514;
$2516 = ((9400) + ($2515<<2)|0);
$2517 = HEAP32[$2516>>2]|0;
$2518 = $2486 ^ $2517;
$2519 = $2;
$2520 = ((($2519)) + 30|0);
$2521 = HEAP8[$2520>>0]|0;
$2522 = $2521&255;
$2523 = 253 ^ $2522;
$2524 = (45248 + ($2523)|0);
$2525 = HEAP8[$2524>>0]|0;
$2526 = $2525&255;
$2527 = $2;
$2528 = ((($2527)) + 22|0);
$2529 = HEAP8[$2528>>0]|0;
$2530 = $2529&255;
$2531 = $2526 ^ $2530;
$2532 = (45248 + ($2531)|0);
$2533 = HEAP8[$2532>>0]|0;
$2534 = $2533&255;
$2535 = $2;
$2536 = ((($2535)) + 14|0);
$2537 = HEAP8[$2536>>0]|0;
$2538 = $2537&255;
$2539 = $2534 ^ $2538;
$2540 = (44992 + ($2539)|0);
$2541 = HEAP8[$2540>>0]|0;
$2542 = $2541&255;
$2543 = $2;
$2544 = ((($2543)) + 6|0);
$2545 = HEAP8[$2544>>0]|0;
$2546 = $2545&255;
$2547 = $2542 ^ $2546;
$2548 = ((10424) + ($2547<<2)|0);
$2549 = HEAP32[$2548>>2]|0;
$2550 = $2518 ^ $2549;
$2551 = $2;
$2552 = ((($2551)) + 31|0);
$2553 = HEAP8[$2552>>0]|0;
$2554 = $2553&255;
$2555 = 123 ^ $2554;
$2556 = (45248 + ($2555)|0);
$2557 = HEAP8[$2556>>0]|0;
$2558 = $2557&255;
$2559 = $2;
$2560 = ((($2559)) + 23|0);
$2561 = HEAP8[$2560>>0]|0;
$2562 = $2561&255;
$2563 = $2558 ^ $2562;
$2564 = (44992 + ($2563)|0);
$2565 = HEAP8[$2564>>0]|0;
$2566 = $2565&255;
$2567 = $2;
$2568 = ((($2567)) + 15|0);
$2569 = HEAP8[$2568>>0]|0;
$2570 = $2569&255;
$2571 = $2566 ^ $2570;
$2572 = (44992 + ($2571)|0);
$2573 = HEAP8[$2572>>0]|0;
$2574 = $2573&255;
$2575 = $2;
$2576 = ((($2575)) + 7|0);
$2577 = HEAP8[$2576>>0]|0;
$2578 = $2577&255;
$2579 = $2574 ^ $2578;
$2580 = ((11448) + ($2579<<2)|0);
$2581 = HEAP32[$2580>>2]|0;
$2582 = $2550 ^ $2581;
$y = $2582;
$2583 = $y;
$2584 = $2583 << 8;
$2585 = $y;
$2586 = $2585 >>> 24;
$2587 = (($2584) + ($2586))|0;
$y = $2587;
$2588 = $y;
$2589 = $x;
$2590 = (($2589) + ($2588))|0;
$x = $2590;
$2591 = $x;
$2592 = $y;
$2593 = (($2592) + ($2591))|0;
$y = $2593;
$2594 = $x;
$2595 = $1;
$2596 = ((($2595)) + 4096|0);
$2597 = ((($2596)) + 16|0);
HEAP32[$2597>>2] = $2594;
$2598 = $y;
$2599 = $2598 << 9;
$2600 = $y;
$2601 = $2600 >>> 23;
$2602 = (($2599) + ($2601))|0;
$2603 = $1;
$2604 = ((($2603)) + 4096|0);
$2605 = ((($2604)) + 20|0);
HEAP32[$2605>>2] = $2602;
$2606 = $2;
$2607 = ((($2606)) + 24|0);
$2608 = HEAP8[$2607>>0]|0;
$2609 = $2608&255;
$2610 = 251 ^ $2609;
$2611 = (44992 + ($2610)|0);
$2612 = HEAP8[$2611>>0]|0;
$2613 = $2612&255;
$2614 = $2;
$2615 = ((($2614)) + 16|0);
$2616 = HEAP8[$2615>>0]|0;
$2617 = $2616&255;
$2618 = $2613 ^ $2617;
$2619 = (45248 + ($2618)|0);
$2620 = HEAP8[$2619>>0]|0;
$2621 = $2620&255;
$2622 = $2;
$2623 = ((($2622)) + 8|0);
$2624 = HEAP8[$2623>>0]|0;
$2625 = $2624&255;
$2626 = $2621 ^ $2625;
$2627 = (45248 + ($2626)|0);
$2628 = HEAP8[$2627>>0]|0;
$2629 = $2628&255;
$2630 = $2;
$2631 = HEAP8[$2630>>0]|0;
$2632 = $2631&255;
$2633 = $2629 ^ $2632;
$2634 = (8376 + ($2633<<2)|0);
$2635 = HEAP32[$2634>>2]|0;
$2636 = $2;
$2637 = ((($2636)) + 25|0);
$2638 = HEAP8[$2637>>0]|0;
$2639 = $2638&255;
$2640 = 163 ^ $2639;
$2641 = (44992 + ($2640)|0);
$2642 = HEAP8[$2641>>0]|0;
$2643 = $2642&255;
$2644 = $2;
$2645 = ((($2644)) + 17|0);
$2646 = HEAP8[$2645>>0]|0;
$2647 = $2646&255;
$2648 = $2643 ^ $2647;
$2649 = (44992 + ($2648)|0);
$2650 = HEAP8[$2649>>0]|0;
$2651 = $2650&255;
$2652 = $2;
$2653 = ((($2652)) + 9|0);
$2654 = HEAP8[$2653>>0]|0;
$2655 = $2654&255;
$2656 = $2651 ^ $2655;
$2657 = (45248 + ($2656)|0);
$2658 = HEAP8[$2657>>0]|0;
$2659 = $2658&255;
$2660 = $2;
$2661 = ((($2660)) + 1|0);
$2662 = HEAP8[$2661>>0]|0;
$2663 = $2662&255;
$2664 = $2659 ^ $2663;
$2665 = ((9400) + ($2664<<2)|0);
$2666 = HEAP32[$2665>>2]|0;
$2667 = $2635 ^ $2666;
$2668 = $2;
$2669 = ((($2668)) + 26|0);
$2670 = HEAP8[$2669>>0]|0;
$2671 = $2670&255;
$2672 = 163 ^ $2671;
$2673 = (45248 + ($2672)|0);
$2674 = HEAP8[$2673>>0]|0;
$2675 = $2674&255;
$2676 = $2;
$2677 = ((($2676)) + 18|0);
$2678 = HEAP8[$2677>>0]|0;
$2679 = $2678&255;
$2680 = $2675 ^ $2679;
$2681 = (45248 + ($2680)|0);
$2682 = HEAP8[$2681>>0]|0;
$2683 = $2682&255;
$2684 = $2;
$2685 = ((($2684)) + 10|0);
$2686 = HEAP8[$2685>>0]|0;
$2687 = $2686&255;
$2688 = $2683 ^ $2687;
$2689 = (44992 + ($2688)|0);
$2690 = HEAP8[$2689>>0]|0;
$2691 = $2690&255;
$2692 = $2;
$2693 = ((($2692)) + 2|0);
$2694 = HEAP8[$2693>>0]|0;
$2695 = $2694&255;
$2696 = $2691 ^ $2695;
$2697 = ((10424) + ($2696<<2)|0);
$2698 = HEAP32[$2697>>2]|0;
$2699 = $2667 ^ $2698;
$2700 = $2;
$2701 = ((($2700)) + 27|0);
$2702 = HEAP8[$2701>>0]|0;
$2703 = $2702&255;
$2704 = 251 ^ $2703;
$2705 = (45248 + ($2704)|0);
$2706 = HEAP8[$2705>>0]|0;
$2707 = $2706&255;
$2708 = $2;
$2709 = ((($2708)) + 19|0);
$2710 = HEAP8[$2709>>0]|0;
$2711 = $2710&255;
$2712 = $2707 ^ $2711;
$2713 = (44992 + ($2712)|0);
$2714 = HEAP8[$2713>>0]|0;
$2715 = $2714&255;
$2716 = $2;
$2717 = ((($2716)) + 11|0);
$2718 = HEAP8[$2717>>0]|0;
$2719 = $2718&255;
$2720 = $2715 ^ $2719;
$2721 = (44992 + ($2720)|0);
$2722 = HEAP8[$2721>>0]|0;
$2723 = $2722&255;
$2724 = $2;
$2725 = ((($2724)) + 3|0);
$2726 = HEAP8[$2725>>0]|0;
$2727 = $2726&255;
$2728 = $2723 ^ $2727;
$2729 = ((11448) + ($2728<<2)|0);
$2730 = HEAP32[$2729>>2]|0;
$2731 = $2699 ^ $2730;
$x = $2731;
$2732 = $2;
$2733 = ((($2732)) + 28|0);
$2734 = HEAP8[$2733>>0]|0;
$2735 = $2734&255;
$2736 = 200 ^ $2735;
$2737 = (44992 + ($2736)|0);
$2738 = HEAP8[$2737>>0]|0;
$2739 = $2738&255;
$2740 = $2;
$2741 = ((($2740)) + 20|0);
$2742 = HEAP8[$2741>>0]|0;
$2743 = $2742&255;
$2744 = $2739 ^ $2743;
$2745 = (45248 + ($2744)|0);
$2746 = HEAP8[$2745>>0]|0;
$2747 = $2746&255;
$2748 = $2;
$2749 = ((($2748)) + 12|0);
$2750 = HEAP8[$2749>>0]|0;
$2751 = $2750&255;
$2752 = $2747 ^ $2751;
$2753 = (45248 + ($2752)|0);
$2754 = HEAP8[$2753>>0]|0;
$2755 = $2754&255;
$2756 = $2;
$2757 = ((($2756)) + 4|0);
$2758 = HEAP8[$2757>>0]|0;
$2759 = $2758&255;
$2760 = $2755 ^ $2759;
$2761 = (8376 + ($2760<<2)|0);
$2762 = HEAP32[$2761>>2]|0;
$2763 = $2;
$2764 = ((($2763)) + 29|0);
$2765 = HEAP8[$2764>>0]|0;
$2766 = $2765&255;
$2767 = 118 ^ $2766;
$2768 = (44992 + ($2767)|0);
$2769 = HEAP8[$2768>>0]|0;
$2770 = $2769&255;
$2771 = $2;
$2772 = ((($2771)) + 21|0);
$2773 = HEAP8[$2772>>0]|0;
$2774 = $2773&255;
$2775 = $2770 ^ $2774;
$2776 = (44992 + ($2775)|0);
$2777 = HEAP8[$2776>>0]|0;
$2778 = $2777&255;
$2779 = $2;
$2780 = ((($2779)) + 13|0);
$2781 = HEAP8[$2780>>0]|0;
$2782 = $2781&255;
$2783 = $2778 ^ $2782;
$2784 = (45248 + ($2783)|0);
$2785 = HEAP8[$2784>>0]|0;
$2786 = $2785&255;
$2787 = $2;
$2788 = ((($2787)) + 5|0);
$2789 = HEAP8[$2788>>0]|0;
$2790 = $2789&255;
$2791 = $2786 ^ $2790;
$2792 = ((9400) + ($2791<<2)|0);
$2793 = HEAP32[$2792>>2]|0;
$2794 = $2762 ^ $2793;
$2795 = $2;
$2796 = ((($2795)) + 30|0);
$2797 = HEAP8[$2796>>0]|0;
$2798 = $2797&255;
$2799 = 118 ^ $2798;
$2800 = (45248 + ($2799)|0);
$2801 = HEAP8[$2800>>0]|0;
$2802 = $2801&255;
$2803 = $2;
$2804 = ((($2803)) + 22|0);
$2805 = HEAP8[$2804>>0]|0;
$2806 = $2805&255;
$2807 = $2802 ^ $2806;
$2808 = (45248 + ($2807)|0);
$2809 = HEAP8[$2808>>0]|0;
$2810 = $2809&255;
$2811 = $2;
$2812 = ((($2811)) + 14|0);
$2813 = HEAP8[$2812>>0]|0;
$2814 = $2813&255;
$2815 = $2810 ^ $2814;
$2816 = (44992 + ($2815)|0);
$2817 = HEAP8[$2816>>0]|0;
$2818 = $2817&255;
$2819 = $2;
$2820 = ((($2819)) + 6|0);
$2821 = HEAP8[$2820>>0]|0;
$2822 = $2821&255;
$2823 = $2818 ^ $2822;
$2824 = ((10424) + ($2823<<2)|0);
$2825 = HEAP32[$2824>>2]|0;
$2826 = $2794 ^ $2825;
$2827 = $2;
$2828 = ((($2827)) + 31|0);
$2829 = HEAP8[$2828>>0]|0;
$2830 = $2829&255;
$2831 = 200 ^ $2830;
$2832 = (45248 + ($2831)|0);
$2833 = HEAP8[$2832>>0]|0;
$2834 = $2833&255;
$2835 = $2;
$2836 = ((($2835)) + 23|0);
$2837 = HEAP8[$2836>>0]|0;
$2838 = $2837&255;
$2839 = $2834 ^ $2838;
$2840 = (44992 + ($2839)|0);
$2841 = HEAP8[$2840>>0]|0;
$2842 = $2841&255;
$2843 = $2;
$2844 = ((($2843)) + 15|0);
$2845 = HEAP8[$2844>>0]|0;
$2846 = $2845&255;
$2847 = $2842 ^ $2846;
$2848 = (44992 + ($2847)|0);
$2849 = HEAP8[$2848>>0]|0;
$2850 = $2849&255;
$2851 = $2;
$2852 = ((($2851)) + 7|0);
$2853 = HEAP8[$2852>>0]|0;
$2854 = $2853&255;
$2855 = $2850 ^ $2854;
$2856 = ((11448) + ($2855<<2)|0);
$2857 = HEAP32[$2856>>2]|0;
$2858 = $2826 ^ $2857;
$y = $2858;
$2859 = $y;
$2860 = $2859 << 8;
$2861 = $y;
$2862 = $2861 >>> 24;
$2863 = (($2860) + ($2862))|0;
$y = $2863;
$2864 = $y;
$2865 = $x;
$2866 = (($2865) + ($2864))|0;
$x = $2866;
$2867 = $x;
$2868 = $y;
$2869 = (($2868) + ($2867))|0;
$y = $2869;
$2870 = $x;
$2871 = $1;
$2872 = ((($2871)) + 4096|0);
$2873 = ((($2872)) + 24|0);
HEAP32[$2873>>2] = $2870;
$2874 = $y;
$2875 = $2874 << 9;
$2876 = $y;
$2877 = $2876 >>> 23;
$2878 = (($2875) + ($2877))|0;
$2879 = $1;
$2880 = ((($2879)) + 4096|0);
$2881 = ((($2880)) + 28|0);
HEAP32[$2881>>2] = $2878;
$2882 = $2;
$2883 = ((($2882)) + 24|0);
$2884 = HEAP8[$2883>>0]|0;
$2885 = $2884&255;
$2886 = 74 ^ $2885;
$2887 = (44992 + ($2886)|0);
$2888 = HEAP8[$2887>>0]|0;
$2889 = $2888&255;
$2890 = $2;
$2891 = ((($2890)) + 16|0);
$2892 = HEAP8[$2891>>0]|0;
$2893 = $2892&255;
$2894 = $2889 ^ $2893;
$2895 = (45248 + ($2894)|0);
$2896 = HEAP8[$2895>>0]|0;
$2897 = $2896&255;
$2898 = $2;
$2899 = ((($2898)) + 8|0);
$2900 = HEAP8[$2899>>0]|0;
$2901 = $2900&255;
$2902 = $2897 ^ $2901;
$2903 = (45248 + ($2902)|0);
$2904 = HEAP8[$2903>>0]|0;
$2905 = $2904&255;
$2906 = $2;
$2907 = HEAP8[$2906>>0]|0;
$2908 = $2907&255;
$2909 = $2905 ^ $2908;
$2910 = (8376 + ($2909<<2)|0);
$2911 = HEAP32[$2910>>2]|0;
$2912 = $2;
$2913 = ((($2912)) + 25|0);
$2914 = HEAP8[$2913>>0]|0;
$2915 = $2914&255;
$2916 = 154 ^ $2915;
$2917 = (44992 + ($2916)|0);
$2918 = HEAP8[$2917>>0]|0;
$2919 = $2918&255;
$2920 = $2;
$2921 = ((($2920)) + 17|0);
$2922 = HEAP8[$2921>>0]|0;
$2923 = $2922&255;
$2924 = $2919 ^ $2923;
$2925 = (44992 + ($2924)|0);
$2926 = HEAP8[$2925>>0]|0;
$2927 = $2926&255;
$2928 = $2;
$2929 = ((($2928)) + 9|0);
$2930 = HEAP8[$2929>>0]|0;
$2931 = $2930&255;
$2932 = $2927 ^ $2931;
$2933 = (45248 + ($2932)|0);
$2934 = HEAP8[$2933>>0]|0;
$2935 = $2934&255;
$2936 = $2;
$2937 = ((($2936)) + 1|0);
$2938 = HEAP8[$2937>>0]|0;
$2939 = $2938&255;
$2940 = $2935 ^ $2939;
$2941 = ((9400) + ($2940<<2)|0);
$2942 = HEAP32[$2941>>2]|0;
$2943 = $2911 ^ $2942;
$2944 = $2;
$2945 = ((($2944)) + 26|0);
$2946 = HEAP8[$2945>>0]|0;
$2947 = $2946&255;
$2948 = 154 ^ $2947;
$2949 = (45248 + ($2948)|0);
$2950 = HEAP8[$2949>>0]|0;
$2951 = $2950&255;
$2952 = $2;
$2953 = ((($2952)) + 18|0);
$2954 = HEAP8[$2953>>0]|0;
$2955 = $2954&255;
$2956 = $2951 ^ $2955;
$2957 = (45248 + ($2956)|0);
$2958 = HEAP8[$2957>>0]|0;
$2959 = $2958&255;
$2960 = $2;
$2961 = ((($2960)) + 10|0);
$2962 = HEAP8[$2961>>0]|0;
$2963 = $2962&255;
$2964 = $2959 ^ $2963;
$2965 = (44992 + ($2964)|0);
$2966 = HEAP8[$2965>>0]|0;
$2967 = $2966&255;
$2968 = $2;
$2969 = ((($2968)) + 2|0);
$2970 = HEAP8[$2969>>0]|0;
$2971 = $2970&255;
$2972 = $2967 ^ $2971;
$2973 = ((10424) + ($2972<<2)|0);
$2974 = HEAP32[$2973>>2]|0;
$2975 = $2943 ^ $2974;
$2976 = $2;
$2977 = ((($2976)) + 27|0);
$2978 = HEAP8[$2977>>0]|0;
$2979 = $2978&255;
$2980 = 74 ^ $2979;
$2981 = (45248 + ($2980)|0);
$2982 = HEAP8[$2981>>0]|0;
$2983 = $2982&255;
$2984 = $2;
$2985 = ((($2984)) + 19|0);
$2986 = HEAP8[$2985>>0]|0;
$2987 = $2986&255;
$2988 = $2983 ^ $2987;
$2989 = (44992 + ($2988)|0);
$2990 = HEAP8[$2989>>0]|0;
$2991 = $2990&255;
$2992 = $2;
$2993 = ((($2992)) + 11|0);
$2994 = HEAP8[$2993>>0]|0;
$2995 = $2994&255;
$2996 = $2991 ^ $2995;
$2997 = (44992 + ($2996)|0);
$2998 = HEAP8[$2997>>0]|0;
$2999 = $2998&255;
$3000 = $2;
$3001 = ((($3000)) + 3|0);
$3002 = HEAP8[$3001>>0]|0;
$3003 = $3002&255;
$3004 = $2999 ^ $3003;
$3005 = ((11448) + ($3004<<2)|0);
$3006 = HEAP32[$3005>>2]|0;
$3007 = $2975 ^ $3006;
$x = $3007;
$3008 = $2;
$3009 = ((($3008)) + 28|0);
$3010 = HEAP8[$3009>>0]|0;
$3011 = $3010&255;
$3012 = 211 ^ $3011;
$3013 = (44992 + ($3012)|0);
$3014 = HEAP8[$3013>>0]|0;
$3015 = $3014&255;
$3016 = $2;
$3017 = ((($3016)) + 20|0);
$3018 = HEAP8[$3017>>0]|0;
$3019 = $3018&255;
$3020 = $3015 ^ $3019;
$3021 = (45248 + ($3020)|0);
$3022 = HEAP8[$3021>>0]|0;
$3023 = $3022&255;
$3024 = $2;
$3025 = ((($3024)) + 12|0);
$3026 = HEAP8[$3025>>0]|0;
$3027 = $3026&255;
$3028 = $3023 ^ $3027;
$3029 = (45248 + ($3028)|0);
$3030 = HEAP8[$3029>>0]|0;
$3031 = $3030&255;
$3032 = $2;
$3033 = ((($3032)) + 4|0);
$3034 = HEAP8[$3033>>0]|0;
$3035 = $3034&255;
$3036 = $3031 ^ $3035;
$3037 = (8376 + ($3036<<2)|0);
$3038 = HEAP32[$3037>>2]|0;
$3039 = $2;
$3040 = ((($3039)) + 29|0);
$3041 = HEAP8[$3040>>0]|0;
$3042 = $3041&255;
$3043 = 146 ^ $3042;
$3044 = (44992 + ($3043)|0);
$3045 = HEAP8[$3044>>0]|0;
$3046 = $3045&255;
$3047 = $2;
$3048 = ((($3047)) + 21|0);
$3049 = HEAP8[$3048>>0]|0;
$3050 = $3049&255;
$3051 = $3046 ^ $3050;
$3052 = (44992 + ($3051)|0);
$3053 = HEAP8[$3052>>0]|0;
$3054 = $3053&255;
$3055 = $2;
$3056 = ((($3055)) + 13|0);
$3057 = HEAP8[$3056>>0]|0;
$3058 = $3057&255;
$3059 = $3054 ^ $3058;
$3060 = (45248 + ($3059)|0);
$3061 = HEAP8[$3060>>0]|0;
$3062 = $3061&255;
$3063 = $2;
$3064 = ((($3063)) + 5|0);
$3065 = HEAP8[$3064>>0]|0;
$3066 = $3065&255;
$3067 = $3062 ^ $3066;
$3068 = ((9400) + ($3067<<2)|0);
$3069 = HEAP32[$3068>>2]|0;
$3070 = $3038 ^ $3069;
$3071 = $2;
$3072 = ((($3071)) + 30|0);
$3073 = HEAP8[$3072>>0]|0;
$3074 = $3073&255;
$3075 = 146 ^ $3074;
$3076 = (45248 + ($3075)|0);
$3077 = HEAP8[$3076>>0]|0;
$3078 = $3077&255;
$3079 = $2;
$3080 = ((($3079)) + 22|0);
$3081 = HEAP8[$3080>>0]|0;
$3082 = $3081&255;
$3083 = $3078 ^ $3082;
$3084 = (45248 + ($3083)|0);
$3085 = HEAP8[$3084>>0]|0;
$3086 = $3085&255;
$3087 = $2;
$3088 = ((($3087)) + 14|0);
$3089 = HEAP8[$3088>>0]|0;
$3090 = $3089&255;
$3091 = $3086 ^ $3090;
$3092 = (44992 + ($3091)|0);
$3093 = HEAP8[$3092>>0]|0;
$3094 = $3093&255;
$3095 = $2;
$3096 = ((($3095)) + 6|0);
$3097 = HEAP8[$3096>>0]|0;
$3098 = $3097&255;
$3099 = $3094 ^ $3098;
$3100 = ((10424) + ($3099<<2)|0);
$3101 = HEAP32[$3100>>2]|0;
$3102 = $3070 ^ $3101;
$3103 = $2;
$3104 = ((($3103)) + 31|0);
$3105 = HEAP8[$3104>>0]|0;
$3106 = $3105&255;
$3107 = 211 ^ $3106;
$3108 = (45248 + ($3107)|0);
$3109 = HEAP8[$3108>>0]|0;
$3110 = $3109&255;
$3111 = $2;
$3112 = ((($3111)) + 23|0);
$3113 = HEAP8[$3112>>0]|0;
$3114 = $3113&255;
$3115 = $3110 ^ $3114;
$3116 = (44992 + ($3115)|0);
$3117 = HEAP8[$3116>>0]|0;
$3118 = $3117&255;
$3119 = $2;
$3120 = ((($3119)) + 15|0);
$3121 = HEAP8[$3120>>0]|0;
$3122 = $3121&255;
$3123 = $3118 ^ $3122;
$3124 = (44992 + ($3123)|0);
$3125 = HEAP8[$3124>>0]|0;
$3126 = $3125&255;
$3127 = $2;
$3128 = ((($3127)) + 7|0);
$3129 = HEAP8[$3128>>0]|0;
$3130 = $3129&255;
$3131 = $3126 ^ $3130;
$3132 = ((11448) + ($3131<<2)|0);
$3133 = HEAP32[$3132>>2]|0;
$3134 = $3102 ^ $3133;
$y = $3134;
$3135 = $y;
$3136 = $3135 << 8;
$3137 = $y;
$3138 = $3137 >>> 24;
$3139 = (($3136) + ($3138))|0;
$y = $3139;
$3140 = $y;
$3141 = $x;
$3142 = (($3141) + ($3140))|0;
$x = $3142;
$3143 = $x;
$3144 = $y;
$3145 = (($3144) + ($3143))|0;
$y = $3145;
$3146 = $x;
$3147 = $1;
$3148 = ((($3147)) + 4128|0);
HEAP32[$3148>>2] = $3146;
$3149 = $y;
$3150 = $3149 << 9;
$3151 = $y;
$3152 = $3151 >>> 23;
$3153 = (($3150) + ($3152))|0;
$3154 = $1;
$3155 = ((($3154)) + 4128|0);
$3156 = ((($3155)) + 4|0);
HEAP32[$3156>>2] = $3153;
$3157 = $2;
$3158 = ((($3157)) + 24|0);
$3159 = HEAP8[$3158>>0]|0;
$3160 = $3159&255;
$3161 = 230 ^ $3160;
$3162 = (44992 + ($3161)|0);
$3163 = HEAP8[$3162>>0]|0;
$3164 = $3163&255;
$3165 = $2;
$3166 = ((($3165)) + 16|0);
$3167 = HEAP8[$3166>>0]|0;
$3168 = $3167&255;
$3169 = $3164 ^ $3168;
$3170 = (45248 + ($3169)|0);
$3171 = HEAP8[$3170>>0]|0;
$3172 = $3171&255;
$3173 = $2;
$3174 = ((($3173)) + 8|0);
$3175 = HEAP8[$3174>>0]|0;
$3176 = $3175&255;
$3177 = $3172 ^ $3176;
$3178 = (45248 + ($3177)|0);
$3179 = HEAP8[$3178>>0]|0;
$3180 = $3179&255;
$3181 = $2;
$3182 = HEAP8[$3181>>0]|0;
$3183 = $3182&255;
$3184 = $3180 ^ $3183;
$3185 = (8376 + ($3184<<2)|0);
$3186 = HEAP32[$3185>>2]|0;
$3187 = $2;
$3188 = ((($3187)) + 25|0);
$3189 = HEAP8[$3188>>0]|0;
$3190 = $3189&255;
$3191 = 128 ^ $3190;
$3192 = (44992 + ($3191)|0);
$3193 = HEAP8[$3192>>0]|0;
$3194 = $3193&255;
$3195 = $2;
$3196 = ((($3195)) + 17|0);
$3197 = HEAP8[$3196>>0]|0;
$3198 = $3197&255;
$3199 = $3194 ^ $3198;
$3200 = (44992 + ($3199)|0);
$3201 = HEAP8[$3200>>0]|0;
$3202 = $3201&255;
$3203 = $2;
$3204 = ((($3203)) + 9|0);
$3205 = HEAP8[$3204>>0]|0;
$3206 = $3205&255;
$3207 = $3202 ^ $3206;
$3208 = (45248 + ($3207)|0);
$3209 = HEAP8[$3208>>0]|0;
$3210 = $3209&255;
$3211 = $2;
$3212 = ((($3211)) + 1|0);
$3213 = HEAP8[$3212>>0]|0;
$3214 = $3213&255;
$3215 = $3210 ^ $3214;
$3216 = ((9400) + ($3215<<2)|0);
$3217 = HEAP32[$3216>>2]|0;
$3218 = $3186 ^ $3217;
$3219 = $2;
$3220 = ((($3219)) + 26|0);
$3221 = HEAP8[$3220>>0]|0;
$3222 = $3221&255;
$3223 = 128 ^ $3222;
$3224 = (45248 + ($3223)|0);
$3225 = HEAP8[$3224>>0]|0;
$3226 = $3225&255;
$3227 = $2;
$3228 = ((($3227)) + 18|0);
$3229 = HEAP8[$3228>>0]|0;
$3230 = $3229&255;
$3231 = $3226 ^ $3230;
$3232 = (45248 + ($3231)|0);
$3233 = HEAP8[$3232>>0]|0;
$3234 = $3233&255;
$3235 = $2;
$3236 = ((($3235)) + 10|0);
$3237 = HEAP8[$3236>>0]|0;
$3238 = $3237&255;
$3239 = $3234 ^ $3238;
$3240 = (44992 + ($3239)|0);
$3241 = HEAP8[$3240>>0]|0;
$3242 = $3241&255;
$3243 = $2;
$3244 = ((($3243)) + 2|0);
$3245 = HEAP8[$3244>>0]|0;
$3246 = $3245&255;
$3247 = $3242 ^ $3246;
$3248 = ((10424) + ($3247<<2)|0);
$3249 = HEAP32[$3248>>2]|0;
$3250 = $3218 ^ $3249;
$3251 = $2;
$3252 = ((($3251)) + 27|0);
$3253 = HEAP8[$3252>>0]|0;
$3254 = $3253&255;
$3255 = 230 ^ $3254;
$3256 = (45248 + ($3255)|0);
$3257 = HEAP8[$3256>>0]|0;
$3258 = $3257&255;
$3259 = $2;
$3260 = ((($3259)) + 19|0);
$3261 = HEAP8[$3260>>0]|0;
$3262 = $3261&255;
$3263 = $3258 ^ $3262;
$3264 = (44992 + ($3263)|0);
$3265 = HEAP8[$3264>>0]|0;
$3266 = $3265&255;
$3267 = $2;
$3268 = ((($3267)) + 11|0);
$3269 = HEAP8[$3268>>0]|0;
$3270 = $3269&255;
$3271 = $3266 ^ $3270;
$3272 = (44992 + ($3271)|0);
$3273 = HEAP8[$3272>>0]|0;
$3274 = $3273&255;
$3275 = $2;
$3276 = ((($3275)) + 3|0);
$3277 = HEAP8[$3276>>0]|0;
$3278 = $3277&255;
$3279 = $3274 ^ $3278;
$3280 = ((11448) + ($3279<<2)|0);
$3281 = HEAP32[$3280>>2]|0;
$3282 = $3250 ^ $3281;
$x = $3282;
$3283 = $2;
$3284 = ((($3283)) + 28|0);
$3285 = HEAP8[$3284>>0]|0;
$3286 = $3285&255;
$3287 = 107 ^ $3286;
$3288 = (44992 + ($3287)|0);
$3289 = HEAP8[$3288>>0]|0;
$3290 = $3289&255;
$3291 = $2;
$3292 = ((($3291)) + 20|0);
$3293 = HEAP8[$3292>>0]|0;
$3294 = $3293&255;
$3295 = $3290 ^ $3294;
$3296 = (45248 + ($3295)|0);
$3297 = HEAP8[$3296>>0]|0;
$3298 = $3297&255;
$3299 = $2;
$3300 = ((($3299)) + 12|0);
$3301 = HEAP8[$3300>>0]|0;
$3302 = $3301&255;
$3303 = $3298 ^ $3302;
$3304 = (45248 + ($3303)|0);
$3305 = HEAP8[$3304>>0]|0;
$3306 = $3305&255;
$3307 = $2;
$3308 = ((($3307)) + 4|0);
$3309 = HEAP8[$3308>>0]|0;
$3310 = $3309&255;
$3311 = $3306 ^ $3310;
$3312 = (8376 + ($3311<<2)|0);
$3313 = HEAP32[$3312>>2]|0;
$3314 = $2;
$3315 = ((($3314)) + 29|0);
$3316 = HEAP8[$3315>>0]|0;
$3317 = $3316&255;
$3318 = 120 ^ $3317;
$3319 = (44992 + ($3318)|0);
$3320 = HEAP8[$3319>>0]|0;
$3321 = $3320&255;
$3322 = $2;
$3323 = ((($3322)) + 21|0);
$3324 = HEAP8[$3323>>0]|0;
$3325 = $3324&255;
$3326 = $3321 ^ $3325;
$3327 = (44992 + ($3326)|0);
$3328 = HEAP8[$3327>>0]|0;
$3329 = $3328&255;
$3330 = $2;
$3331 = ((($3330)) + 13|0);
$3332 = HEAP8[$3331>>0]|0;
$3333 = $3332&255;
$3334 = $3329 ^ $3333;
$3335 = (45248 + ($3334)|0);
$3336 = HEAP8[$3335>>0]|0;
$3337 = $3336&255;
$3338 = $2;
$3339 = ((($3338)) + 5|0);
$3340 = HEAP8[$3339>>0]|0;
$3341 = $3340&255;
$3342 = $3337 ^ $3341;
$3343 = ((9400) + ($3342<<2)|0);
$3344 = HEAP32[$3343>>2]|0;
$3345 = $3313 ^ $3344;
$3346 = $2;
$3347 = ((($3346)) + 30|0);
$3348 = HEAP8[$3347>>0]|0;
$3349 = $3348&255;
$3350 = 120 ^ $3349;
$3351 = (45248 + ($3350)|0);
$3352 = HEAP8[$3351>>0]|0;
$3353 = $3352&255;
$3354 = $2;
$3355 = ((($3354)) + 22|0);
$3356 = HEAP8[$3355>>0]|0;
$3357 = $3356&255;
$3358 = $3353 ^ $3357;
$3359 = (45248 + ($3358)|0);
$3360 = HEAP8[$3359>>0]|0;
$3361 = $3360&255;
$3362 = $2;
$3363 = ((($3362)) + 14|0);
$3364 = HEAP8[$3363>>0]|0;
$3365 = $3364&255;
$3366 = $3361 ^ $3365;
$3367 = (44992 + ($3366)|0);
$3368 = HEAP8[$3367>>0]|0;
$3369 = $3368&255;
$3370 = $2;
$3371 = ((($3370)) + 6|0);
$3372 = HEAP8[$3371>>0]|0;
$3373 = $3372&255;
$3374 = $3369 ^ $3373;
$3375 = ((10424) + ($3374<<2)|0);
$3376 = HEAP32[$3375>>2]|0;
$3377 = $3345 ^ $3376;
$3378 = $2;
$3379 = ((($3378)) + 31|0);
$3380 = HEAP8[$3379>>0]|0;
$3381 = $3380&255;
$3382 = 107 ^ $3381;
$3383 = (45248 + ($3382)|0);
$3384 = HEAP8[$3383>>0]|0;
$3385 = $3384&255;
$3386 = $2;
$3387 = ((($3386)) + 23|0);
$3388 = HEAP8[$3387>>0]|0;
$3389 = $3388&255;
$3390 = $3385 ^ $3389;
$3391 = (44992 + ($3390)|0);
$3392 = HEAP8[$3391>>0]|0;
$3393 = $3392&255;
$3394 = $2;
$3395 = ((($3394)) + 15|0);
$3396 = HEAP8[$3395>>0]|0;
$3397 = $3396&255;
$3398 = $3393 ^ $3397;
$3399 = (44992 + ($3398)|0);
$3400 = HEAP8[$3399>>0]|0;
$3401 = $3400&255;
$3402 = $2;
$3403 = ((($3402)) + 7|0);
$3404 = HEAP8[$3403>>0]|0;
$3405 = $3404&255;
$3406 = $3401 ^ $3405;
$3407 = ((11448) + ($3406<<2)|0);
$3408 = HEAP32[$3407>>2]|0;
$3409 = $3377 ^ $3408;
$y = $3409;
$3410 = $y;
$3411 = $3410 << 8;
$3412 = $y;
$3413 = $3412 >>> 24;
$3414 = (($3411) + ($3413))|0;
$y = $3414;
$3415 = $y;
$3416 = $x;
$3417 = (($3416) + ($3415))|0;
$x = $3417;
$3418 = $x;
$3419 = $y;
$3420 = (($3419) + ($3418))|0;
$y = $3420;
$3421 = $x;
$3422 = $1;
$3423 = ((($3422)) + 4128|0);
$3424 = ((($3423)) + 8|0);
HEAP32[$3424>>2] = $3421;
$3425 = $y;
$3426 = $3425 << 9;
$3427 = $y;
$3428 = $3427 >>> 23;
$3429 = (($3426) + ($3428))|0;
$3430 = $1;
$3431 = ((($3430)) + 4128|0);
$3432 = ((($3431)) + 12|0);
HEAP32[$3432>>2] = $3429;
$3433 = $2;
$3434 = ((($3433)) + 24|0);
$3435 = HEAP8[$3434>>0]|0;
$3436 = $3435&255;
$3437 = 69 ^ $3436;
$3438 = (44992 + ($3437)|0);
$3439 = HEAP8[$3438>>0]|0;
$3440 = $3439&255;
$3441 = $2;
$3442 = ((($3441)) + 16|0);
$3443 = HEAP8[$3442>>0]|0;
$3444 = $3443&255;
$3445 = $3440 ^ $3444;
$3446 = (45248 + ($3445)|0);
$3447 = HEAP8[$3446>>0]|0;
$3448 = $3447&255;
$3449 = $2;
$3450 = ((($3449)) + 8|0);
$3451 = HEAP8[$3450>>0]|0;
$3452 = $3451&255;
$3453 = $3448 ^ $3452;
$3454 = (45248 + ($3453)|0);
$3455 = HEAP8[$3454>>0]|0;
$3456 = $3455&255;
$3457 = $2;
$3458 = HEAP8[$3457>>0]|0;
$3459 = $3458&255;
$3460 = $3456 ^ $3459;
$3461 = (8376 + ($3460<<2)|0);
$3462 = HEAP32[$3461>>2]|0;
$3463 = $2;
$3464 = ((($3463)) + 25|0);
$3465 = HEAP8[$3464>>0]|0;
$3466 = $3465&255;
$3467 = 228 ^ $3466;
$3468 = (44992 + ($3467)|0);
$3469 = HEAP8[$3468>>0]|0;
$3470 = $3469&255;
$3471 = $2;
$3472 = ((($3471)) + 17|0);
$3473 = HEAP8[$3472>>0]|0;
$3474 = $3473&255;
$3475 = $3470 ^ $3474;
$3476 = (44992 + ($3475)|0);
$3477 = HEAP8[$3476>>0]|0;
$3478 = $3477&255;
$3479 = $2;
$3480 = ((($3479)) + 9|0);
$3481 = HEAP8[$3480>>0]|0;
$3482 = $3481&255;
$3483 = $3478 ^ $3482;
$3484 = (45248 + ($3483)|0);
$3485 = HEAP8[$3484>>0]|0;
$3486 = $3485&255;
$3487 = $2;
$3488 = ((($3487)) + 1|0);
$3489 = HEAP8[$3488>>0]|0;
$3490 = $3489&255;
$3491 = $3486 ^ $3490;
$3492 = ((9400) + ($3491<<2)|0);
$3493 = HEAP32[$3492>>2]|0;
$3494 = $3462 ^ $3493;
$3495 = $2;
$3496 = ((($3495)) + 26|0);
$3497 = HEAP8[$3496>>0]|0;
$3498 = $3497&255;
$3499 = 228 ^ $3498;
$3500 = (45248 + ($3499)|0);
$3501 = HEAP8[$3500>>0]|0;
$3502 = $3501&255;
$3503 = $2;
$3504 = ((($3503)) + 18|0);
$3505 = HEAP8[$3504>>0]|0;
$3506 = $3505&255;
$3507 = $3502 ^ $3506;
$3508 = (45248 + ($3507)|0);
$3509 = HEAP8[$3508>>0]|0;
$3510 = $3509&255;
$3511 = $2;
$3512 = ((($3511)) + 10|0);
$3513 = HEAP8[$3512>>0]|0;
$3514 = $3513&255;
$3515 = $3510 ^ $3514;
$3516 = (44992 + ($3515)|0);
$3517 = HEAP8[$3516>>0]|0;
$3518 = $3517&255;
$3519 = $2;
$3520 = ((($3519)) + 2|0);
$3521 = HEAP8[$3520>>0]|0;
$3522 = $3521&255;
$3523 = $3518 ^ $3522;
$3524 = ((10424) + ($3523<<2)|0);
$3525 = HEAP32[$3524>>2]|0;
$3526 = $3494 ^ $3525;
$3527 = $2;
$3528 = ((($3527)) + 27|0);
$3529 = HEAP8[$3528>>0]|0;
$3530 = $3529&255;
$3531 = 69 ^ $3530;
$3532 = (45248 + ($3531)|0);
$3533 = HEAP8[$3532>>0]|0;
$3534 = $3533&255;
$3535 = $2;
$3536 = ((($3535)) + 19|0);
$3537 = HEAP8[$3536>>0]|0;
$3538 = $3537&255;
$3539 = $3534 ^ $3538;
$3540 = (44992 + ($3539)|0);
$3541 = HEAP8[$3540>>0]|0;
$3542 = $3541&255;
$3543 = $2;
$3544 = ((($3543)) + 11|0);
$3545 = HEAP8[$3544>>0]|0;
$3546 = $3545&255;
$3547 = $3542 ^ $3546;
$3548 = (44992 + ($3547)|0);
$3549 = HEAP8[$3548>>0]|0;
$3550 = $3549&255;
$3551 = $2;
$3552 = ((($3551)) + 3|0);
$3553 = HEAP8[$3552>>0]|0;
$3554 = $3553&255;
$3555 = $3550 ^ $3554;
$3556 = ((11448) + ($3555<<2)|0);
$3557 = HEAP32[$3556>>2]|0;
$3558 = $3526 ^ $3557;
$x = $3558;
$3559 = $2;
$3560 = ((($3559)) + 28|0);
$3561 = HEAP8[$3560>>0]|0;
$3562 = $3561&255;
$3563 = 125 ^ $3562;
$3564 = (44992 + ($3563)|0);
$3565 = HEAP8[$3564>>0]|0;
$3566 = $3565&255;
$3567 = $2;
$3568 = ((($3567)) + 20|0);
$3569 = HEAP8[$3568>>0]|0;
$3570 = $3569&255;
$3571 = $3566 ^ $3570;
$3572 = (45248 + ($3571)|0);
$3573 = HEAP8[$3572>>0]|0;
$3574 = $3573&255;
$3575 = $2;
$3576 = ((($3575)) + 12|0);
$3577 = HEAP8[$3576>>0]|0;
$3578 = $3577&255;
$3579 = $3574 ^ $3578;
$3580 = (45248 + ($3579)|0);
$3581 = HEAP8[$3580>>0]|0;
$3582 = $3581&255;
$3583 = $2;
$3584 = ((($3583)) + 4|0);
$3585 = HEAP8[$3584>>0]|0;
$3586 = $3585&255;
$3587 = $3582 ^ $3586;
$3588 = (8376 + ($3587<<2)|0);
$3589 = HEAP32[$3588>>2]|0;
$3590 = $2;
$3591 = ((($3590)) + 29|0);
$3592 = HEAP8[$3591>>0]|0;
$3593 = $3592&255;
$3594 = 221 ^ $3593;
$3595 = (44992 + ($3594)|0);
$3596 = HEAP8[$3595>>0]|0;
$3597 = $3596&255;
$3598 = $2;
$3599 = ((($3598)) + 21|0);
$3600 = HEAP8[$3599>>0]|0;
$3601 = $3600&255;
$3602 = $3597 ^ $3601;
$3603 = (44992 + ($3602)|0);
$3604 = HEAP8[$3603>>0]|0;
$3605 = $3604&255;
$3606 = $2;
$3607 = ((($3606)) + 13|0);
$3608 = HEAP8[$3607>>0]|0;
$3609 = $3608&255;
$3610 = $3605 ^ $3609;
$3611 = (45248 + ($3610)|0);
$3612 = HEAP8[$3611>>0]|0;
$3613 = $3612&255;
$3614 = $2;
$3615 = ((($3614)) + 5|0);
$3616 = HEAP8[$3615>>0]|0;
$3617 = $3616&255;
$3618 = $3613 ^ $3617;
$3619 = ((9400) + ($3618<<2)|0);
$3620 = HEAP32[$3619>>2]|0;
$3621 = $3589 ^ $3620;
$3622 = $2;
$3623 = ((($3622)) + 30|0);
$3624 = HEAP8[$3623>>0]|0;
$3625 = $3624&255;
$3626 = 221 ^ $3625;
$3627 = (45248 + ($3626)|0);
$3628 = HEAP8[$3627>>0]|0;
$3629 = $3628&255;
$3630 = $2;
$3631 = ((($3630)) + 22|0);
$3632 = HEAP8[$3631>>0]|0;
$3633 = $3632&255;
$3634 = $3629 ^ $3633;
$3635 = (45248 + ($3634)|0);
$3636 = HEAP8[$3635>>0]|0;
$3637 = $3636&255;
$3638 = $2;
$3639 = ((($3638)) + 14|0);
$3640 = HEAP8[$3639>>0]|0;
$3641 = $3640&255;
$3642 = $3637 ^ $3641;
$3643 = (44992 + ($3642)|0);
$3644 = HEAP8[$3643>>0]|0;
$3645 = $3644&255;
$3646 = $2;
$3647 = ((($3646)) + 6|0);
$3648 = HEAP8[$3647>>0]|0;
$3649 = $3648&255;
$3650 = $3645 ^ $3649;
$3651 = ((10424) + ($3650<<2)|0);
$3652 = HEAP32[$3651>>2]|0;
$3653 = $3621 ^ $3652;
$3654 = $2;
$3655 = ((($3654)) + 31|0);
$3656 = HEAP8[$3655>>0]|0;
$3657 = $3656&255;
$3658 = 125 ^ $3657;
$3659 = (45248 + ($3658)|0);
$3660 = HEAP8[$3659>>0]|0;
$3661 = $3660&255;
$3662 = $2;
$3663 = ((($3662)) + 23|0);
$3664 = HEAP8[$3663>>0]|0;
$3665 = $3664&255;
$3666 = $3661 ^ $3665;
$3667 = (44992 + ($3666)|0);
$3668 = HEAP8[$3667>>0]|0;
$3669 = $3668&255;
$3670 = $2;
$3671 = ((($3670)) + 15|0);
$3672 = HEAP8[$3671>>0]|0;
$3673 = $3672&255;
$3674 = $3669 ^ $3673;
$3675 = (44992 + ($3674)|0);
$3676 = HEAP8[$3675>>0]|0;
$3677 = $3676&255;
$3678 = $2;
$3679 = ((($3678)) + 7|0);
$3680 = HEAP8[$3679>>0]|0;
$3681 = $3680&255;
$3682 = $3677 ^ $3681;
$3683 = ((11448) + ($3682<<2)|0);
$3684 = HEAP32[$3683>>2]|0;
$3685 = $3653 ^ $3684;
$y = $3685;
$3686 = $y;
$3687 = $3686 << 8;
$3688 = $y;
$3689 = $3688 >>> 24;
$3690 = (($3687) + ($3689))|0;
$y = $3690;
$3691 = $y;
$3692 = $x;
$3693 = (($3692) + ($3691))|0;
$x = $3693;
$3694 = $x;
$3695 = $y;
$3696 = (($3695) + ($3694))|0;
$y = $3696;
$3697 = $x;
$3698 = $1;
$3699 = ((($3698)) + 4128|0);
$3700 = ((($3699)) + 16|0);
HEAP32[$3700>>2] = $3697;
$3701 = $y;
$3702 = $3701 << 9;
$3703 = $y;
$3704 = $3703 >>> 23;
$3705 = (($3702) + ($3704))|0;
$3706 = $1;
$3707 = ((($3706)) + 4128|0);
$3708 = ((($3707)) + 20|0);
HEAP32[$3708>>2] = $3705;
$3709 = $2;
$3710 = ((($3709)) + 24|0);
$3711 = HEAP8[$3710>>0]|0;
$3712 = $3711&255;
$3713 = 232 ^ $3712;
$3714 = (44992 + ($3713)|0);
$3715 = HEAP8[$3714>>0]|0;
$3716 = $3715&255;
$3717 = $2;
$3718 = ((($3717)) + 16|0);
$3719 = HEAP8[$3718>>0]|0;
$3720 = $3719&255;
$3721 = $3716 ^ $3720;
$3722 = (45248 + ($3721)|0);
$3723 = HEAP8[$3722>>0]|0;
$3724 = $3723&255;
$3725 = $2;
$3726 = ((($3725)) + 8|0);
$3727 = HEAP8[$3726>>0]|0;
$3728 = $3727&255;
$3729 = $3724 ^ $3728;
$3730 = (45248 + ($3729)|0);
$3731 = HEAP8[$3730>>0]|0;
$3732 = $3731&255;
$3733 = $2;
$3734 = HEAP8[$3733>>0]|0;
$3735 = $3734&255;
$3736 = $3732 ^ $3735;
$3737 = (8376 + ($3736<<2)|0);
$3738 = HEAP32[$3737>>2]|0;
$3739 = $2;
$3740 = ((($3739)) + 25|0);
$3741 = HEAP8[$3740>>0]|0;
$3742 = $3741&255;
$3743 = 209 ^ $3742;
$3744 = (44992 + ($3743)|0);
$3745 = HEAP8[$3744>>0]|0;
$3746 = $3745&255;
$3747 = $2;
$3748 = ((($3747)) + 17|0);
$3749 = HEAP8[$3748>>0]|0;
$3750 = $3749&255;
$3751 = $3746 ^ $3750;
$3752 = (44992 + ($3751)|0);
$3753 = HEAP8[$3752>>0]|0;
$3754 = $3753&255;
$3755 = $2;
$3756 = ((($3755)) + 9|0);
$3757 = HEAP8[$3756>>0]|0;
$3758 = $3757&255;
$3759 = $3754 ^ $3758;
$3760 = (45248 + ($3759)|0);
$3761 = HEAP8[$3760>>0]|0;
$3762 = $3761&255;
$3763 = $2;
$3764 = ((($3763)) + 1|0);
$3765 = HEAP8[$3764>>0]|0;
$3766 = $3765&255;
$3767 = $3762 ^ $3766;
$3768 = ((9400) + ($3767<<2)|0);
$3769 = HEAP32[$3768>>2]|0;
$3770 = $3738 ^ $3769;
$3771 = $2;
$3772 = ((($3771)) + 26|0);
$3773 = HEAP8[$3772>>0]|0;
$3774 = $3773&255;
$3775 = 209 ^ $3774;
$3776 = (45248 + ($3775)|0);
$3777 = HEAP8[$3776>>0]|0;
$3778 = $3777&255;
$3779 = $2;
$3780 = ((($3779)) + 18|0);
$3781 = HEAP8[$3780>>0]|0;
$3782 = $3781&255;
$3783 = $3778 ^ $3782;
$3784 = (45248 + ($3783)|0);
$3785 = HEAP8[$3784>>0]|0;
$3786 = $3785&255;
$3787 = $2;
$3788 = ((($3787)) + 10|0);
$3789 = HEAP8[$3788>>0]|0;
$3790 = $3789&255;
$3791 = $3786 ^ $3790;
$3792 = (44992 + ($3791)|0);
$3793 = HEAP8[$3792>>0]|0;
$3794 = $3793&255;
$3795 = $2;
$3796 = ((($3795)) + 2|0);
$3797 = HEAP8[$3796>>0]|0;
$3798 = $3797&255;
$3799 = $3794 ^ $3798;
$3800 = ((10424) + ($3799<<2)|0);
$3801 = HEAP32[$3800>>2]|0;
$3802 = $3770 ^ $3801;
$3803 = $2;
$3804 = ((($3803)) + 27|0);
$3805 = HEAP8[$3804>>0]|0;
$3806 = $3805&255;
$3807 = 232 ^ $3806;
$3808 = (45248 + ($3807)|0);
$3809 = HEAP8[$3808>>0]|0;
$3810 = $3809&255;
$3811 = $2;
$3812 = ((($3811)) + 19|0);
$3813 = HEAP8[$3812>>0]|0;
$3814 = $3813&255;
$3815 = $3810 ^ $3814;
$3816 = (44992 + ($3815)|0);
$3817 = HEAP8[$3816>>0]|0;
$3818 = $3817&255;
$3819 = $2;
$3820 = ((($3819)) + 11|0);
$3821 = HEAP8[$3820>>0]|0;
$3822 = $3821&255;
$3823 = $3818 ^ $3822;
$3824 = (44992 + ($3823)|0);
$3825 = HEAP8[$3824>>0]|0;
$3826 = $3825&255;
$3827 = $2;
$3828 = ((($3827)) + 3|0);
$3829 = HEAP8[$3828>>0]|0;
$3830 = $3829&255;
$3831 = $3826 ^ $3830;
$3832 = ((11448) + ($3831<<2)|0);
$3833 = HEAP32[$3832>>2]|0;
$3834 = $3802 ^ $3833;
$x = $3834;
$3835 = $2;
$3836 = ((($3835)) + 28|0);
$3837 = HEAP8[$3836>>0]|0;
$3838 = $3837&255;
$3839 = 75 ^ $3838;
$3840 = (44992 + ($3839)|0);
$3841 = HEAP8[$3840>>0]|0;
$3842 = $3841&255;
$3843 = $2;
$3844 = ((($3843)) + 20|0);
$3845 = HEAP8[$3844>>0]|0;
$3846 = $3845&255;
$3847 = $3842 ^ $3846;
$3848 = (45248 + ($3847)|0);
$3849 = HEAP8[$3848>>0]|0;
$3850 = $3849&255;
$3851 = $2;
$3852 = ((($3851)) + 12|0);
$3853 = HEAP8[$3852>>0]|0;
$3854 = $3853&255;
$3855 = $3850 ^ $3854;
$3856 = (45248 + ($3855)|0);
$3857 = HEAP8[$3856>>0]|0;
$3858 = $3857&255;
$3859 = $2;
$3860 = ((($3859)) + 4|0);
$3861 = HEAP8[$3860>>0]|0;
$3862 = $3861&255;
$3863 = $3858 ^ $3862;
$3864 = (8376 + ($3863<<2)|0);
$3865 = HEAP32[$3864>>2]|0;
$3866 = $2;
$3867 = ((($3866)) + 29|0);
$3868 = HEAP8[$3867>>0]|0;
$3869 = $3868&255;
$3870 = 56 ^ $3869;
$3871 = (44992 + ($3870)|0);
$3872 = HEAP8[$3871>>0]|0;
$3873 = $3872&255;
$3874 = $2;
$3875 = ((($3874)) + 21|0);
$3876 = HEAP8[$3875>>0]|0;
$3877 = $3876&255;
$3878 = $3873 ^ $3877;
$3879 = (44992 + ($3878)|0);
$3880 = HEAP8[$3879>>0]|0;
$3881 = $3880&255;
$3882 = $2;
$3883 = ((($3882)) + 13|0);
$3884 = HEAP8[$3883>>0]|0;
$3885 = $3884&255;
$3886 = $3881 ^ $3885;
$3887 = (45248 + ($3886)|0);
$3888 = HEAP8[$3887>>0]|0;
$3889 = $3888&255;
$3890 = $2;
$3891 = ((($3890)) + 5|0);
$3892 = HEAP8[$3891>>0]|0;
$3893 = $3892&255;
$3894 = $3889 ^ $3893;
$3895 = ((9400) + ($3894<<2)|0);
$3896 = HEAP32[$3895>>2]|0;
$3897 = $3865 ^ $3896;
$3898 = $2;
$3899 = ((($3898)) + 30|0);
$3900 = HEAP8[$3899>>0]|0;
$3901 = $3900&255;
$3902 = 56 ^ $3901;
$3903 = (45248 + ($3902)|0);
$3904 = HEAP8[$3903>>0]|0;
$3905 = $3904&255;
$3906 = $2;
$3907 = ((($3906)) + 22|0);
$3908 = HEAP8[$3907>>0]|0;
$3909 = $3908&255;
$3910 = $3905 ^ $3909;
$3911 = (45248 + ($3910)|0);
$3912 = HEAP8[$3911>>0]|0;
$3913 = $3912&255;
$3914 = $2;
$3915 = ((($3914)) + 14|0);
$3916 = HEAP8[$3915>>0]|0;
$3917 = $3916&255;
$3918 = $3913 ^ $3917;
$3919 = (44992 + ($3918)|0);
$3920 = HEAP8[$3919>>0]|0;
$3921 = $3920&255;
$3922 = $2;
$3923 = ((($3922)) + 6|0);
$3924 = HEAP8[$3923>>0]|0;
$3925 = $3924&255;
$3926 = $3921 ^ $3925;
$3927 = ((10424) + ($3926<<2)|0);
$3928 = HEAP32[$3927>>2]|0;
$3929 = $3897 ^ $3928;
$3930 = $2;
$3931 = ((($3930)) + 31|0);
$3932 = HEAP8[$3931>>0]|0;
$3933 = $3932&255;
$3934 = 75 ^ $3933;
$3935 = (45248 + ($3934)|0);
$3936 = HEAP8[$3935>>0]|0;
$3937 = $3936&255;
$3938 = $2;
$3939 = ((($3938)) + 23|0);
$3940 = HEAP8[$3939>>0]|0;
$3941 = $3940&255;
$3942 = $3937 ^ $3941;
$3943 = (44992 + ($3942)|0);
$3944 = HEAP8[$3943>>0]|0;
$3945 = $3944&255;
$3946 = $2;
$3947 = ((($3946)) + 15|0);
$3948 = HEAP8[$3947>>0]|0;
$3949 = $3948&255;
$3950 = $3945 ^ $3949;
$3951 = (44992 + ($3950)|0);
$3952 = HEAP8[$3951>>0]|0;
$3953 = $3952&255;
$3954 = $2;
$3955 = ((($3954)) + 7|0);
$3956 = HEAP8[$3955>>0]|0;
$3957 = $3956&255;
$3958 = $3953 ^ $3957;
$3959 = ((11448) + ($3958<<2)|0);
$3960 = HEAP32[$3959>>2]|0;
$3961 = $3929 ^ $3960;
$y = $3961;
$3962 = $y;
$3963 = $3962 << 8;
$3964 = $y;
$3965 = $3964 >>> 24;
$3966 = (($3963) + ($3965))|0;
$y = $3966;
$3967 = $y;
$3968 = $x;
$3969 = (($3968) + ($3967))|0;
$x = $3969;
$3970 = $x;
$3971 = $y;
$3972 = (($3971) + ($3970))|0;
$y = $3972;
$3973 = $x;
$3974 = $1;
$3975 = ((($3974)) + 4128|0);
$3976 = ((($3975)) + 24|0);
HEAP32[$3976>>2] = $3973;
$3977 = $y;
$3978 = $3977 << 9;
$3979 = $y;
$3980 = $3979 >>> 23;
$3981 = (($3978) + ($3980))|0;
$3982 = $1;
$3983 = ((($3982)) + 4128|0);
$3984 = ((($3983)) + 28|0);
HEAP32[$3984>>2] = $3981;
$3985 = $2;
$3986 = ((($3985)) + 24|0);
$3987 = HEAP8[$3986>>0]|0;
$3988 = $3987&255;
$3989 = 214 ^ $3988;
$3990 = (44992 + ($3989)|0);
$3991 = HEAP8[$3990>>0]|0;
$3992 = $3991&255;
$3993 = $2;
$3994 = ((($3993)) + 16|0);
$3995 = HEAP8[$3994>>0]|0;
$3996 = $3995&255;
$3997 = $3992 ^ $3996;
$3998 = (45248 + ($3997)|0);
$3999 = HEAP8[$3998>>0]|0;
$4000 = $3999&255;
$4001 = $2;
$4002 = ((($4001)) + 8|0);
$4003 = HEAP8[$4002>>0]|0;
$4004 = $4003&255;
$4005 = $4000 ^ $4004;
$4006 = (45248 + ($4005)|0);
$4007 = HEAP8[$4006>>0]|0;
$4008 = $4007&255;
$4009 = $2;
$4010 = HEAP8[$4009>>0]|0;
$4011 = $4010&255;
$4012 = $4008 ^ $4011;
$4013 = (8376 + ($4012<<2)|0);
$4014 = HEAP32[$4013>>2]|0;
$4015 = $2;
$4016 = ((($4015)) + 25|0);
$4017 = HEAP8[$4016>>0]|0;
$4018 = $4017&255;
$4019 = 13 ^ $4018;
$4020 = (44992 + ($4019)|0);
$4021 = HEAP8[$4020>>0]|0;
$4022 = $4021&255;
$4023 = $2;
$4024 = ((($4023)) + 17|0);
$4025 = HEAP8[$4024>>0]|0;
$4026 = $4025&255;
$4027 = $4022 ^ $4026;
$4028 = (44992 + ($4027)|0);
$4029 = HEAP8[$4028>>0]|0;
$4030 = $4029&255;
$4031 = $2;
$4032 = ((($4031)) + 9|0);
$4033 = HEAP8[$4032>>0]|0;
$4034 = $4033&255;
$4035 = $4030 ^ $4034;
$4036 = (45248 + ($4035)|0);
$4037 = HEAP8[$4036>>0]|0;
$4038 = $4037&255;
$4039 = $2;
$4040 = ((($4039)) + 1|0);
$4041 = HEAP8[$4040>>0]|0;
$4042 = $4041&255;
$4043 = $4038 ^ $4042;
$4044 = ((9400) + ($4043<<2)|0);
$4045 = HEAP32[$4044>>2]|0;
$4046 = $4014 ^ $4045;
$4047 = $2;
$4048 = ((($4047)) + 26|0);
$4049 = HEAP8[$4048>>0]|0;
$4050 = $4049&255;
$4051 = 13 ^ $4050;
$4052 = (45248 + ($4051)|0);
$4053 = HEAP8[$4052>>0]|0;
$4054 = $4053&255;
$4055 = $2;
$4056 = ((($4055)) + 18|0);
$4057 = HEAP8[$4056>>0]|0;
$4058 = $4057&255;
$4059 = $4054 ^ $4058;
$4060 = (45248 + ($4059)|0);
$4061 = HEAP8[$4060>>0]|0;
$4062 = $4061&255;
$4063 = $2;
$4064 = ((($4063)) + 10|0);
$4065 = HEAP8[$4064>>0]|0;
$4066 = $4065&255;
$4067 = $4062 ^ $4066;
$4068 = (44992 + ($4067)|0);
$4069 = HEAP8[$4068>>0]|0;
$4070 = $4069&255;
$4071 = $2;
$4072 = ((($4071)) + 2|0);
$4073 = HEAP8[$4072>>0]|0;
$4074 = $4073&255;
$4075 = $4070 ^ $4074;
$4076 = ((10424) + ($4075<<2)|0);
$4077 = HEAP32[$4076>>2]|0;
$4078 = $4046 ^ $4077;
$4079 = $2;
$4080 = ((($4079)) + 27|0);
$4081 = HEAP8[$4080>>0]|0;
$4082 = $4081&255;
$4083 = 214 ^ $4082;
$4084 = (45248 + ($4083)|0);
$4085 = HEAP8[$4084>>0]|0;
$4086 = $4085&255;
$4087 = $2;
$4088 = ((($4087)) + 19|0);
$4089 = HEAP8[$4088>>0]|0;
$4090 = $4089&255;
$4091 = $4086 ^ $4090;
$4092 = (44992 + ($4091)|0);
$4093 = HEAP8[$4092>>0]|0;
$4094 = $4093&255;
$4095 = $2;
$4096 = ((($4095)) + 11|0);
$4097 = HEAP8[$4096>>0]|0;
$4098 = $4097&255;
$4099 = $4094 ^ $4098;
$4100 = (44992 + ($4099)|0);
$4101 = HEAP8[$4100>>0]|0;
$4102 = $4101&255;
$4103 = $2;
$4104 = ((($4103)) + 3|0);
$4105 = HEAP8[$4104>>0]|0;
$4106 = $4105&255;
$4107 = $4102 ^ $4106;
$4108 = ((11448) + ($4107<<2)|0);
$4109 = HEAP32[$4108>>2]|0;
$4110 = $4078 ^ $4109;
$x = $4110;
$4111 = $2;
$4112 = ((($4111)) + 28|0);
$4113 = HEAP8[$4112>>0]|0;
$4114 = $4113&255;
$4115 = 50 ^ $4114;
$4116 = (44992 + ($4115)|0);
$4117 = HEAP8[$4116>>0]|0;
$4118 = $4117&255;
$4119 = $2;
$4120 = ((($4119)) + 20|0);
$4121 = HEAP8[$4120>>0]|0;
$4122 = $4121&255;
$4123 = $4118 ^ $4122;
$4124 = (45248 + ($4123)|0);
$4125 = HEAP8[$4124>>0]|0;
$4126 = $4125&255;
$4127 = $2;
$4128 = ((($4127)) + 12|0);
$4129 = HEAP8[$4128>>0]|0;
$4130 = $4129&255;
$4131 = $4126 ^ $4130;
$4132 = (45248 + ($4131)|0);
$4133 = HEAP8[$4132>>0]|0;
$4134 = $4133&255;
$4135 = $2;
$4136 = ((($4135)) + 4|0);
$4137 = HEAP8[$4136>>0]|0;
$4138 = $4137&255;
$4139 = $4134 ^ $4138;
$4140 = (8376 + ($4139<<2)|0);
$4141 = HEAP32[$4140>>2]|0;
$4142 = $2;
$4143 = ((($4142)) + 29|0);
$4144 = HEAP8[$4143>>0]|0;
$4145 = $4144&255;
$4146 = 198 ^ $4145;
$4147 = (44992 + ($4146)|0);
$4148 = HEAP8[$4147>>0]|0;
$4149 = $4148&255;
$4150 = $2;
$4151 = ((($4150)) + 21|0);
$4152 = HEAP8[$4151>>0]|0;
$4153 = $4152&255;
$4154 = $4149 ^ $4153;
$4155 = (44992 + ($4154)|0);
$4156 = HEAP8[$4155>>0]|0;
$4157 = $4156&255;
$4158 = $2;
$4159 = ((($4158)) + 13|0);
$4160 = HEAP8[$4159>>0]|0;
$4161 = $4160&255;
$4162 = $4157 ^ $4161;
$4163 = (45248 + ($4162)|0);
$4164 = HEAP8[$4163>>0]|0;
$4165 = $4164&255;
$4166 = $2;
$4167 = ((($4166)) + 5|0);
$4168 = HEAP8[$4167>>0]|0;
$4169 = $4168&255;
$4170 = $4165 ^ $4169;
$4171 = ((9400) + ($4170<<2)|0);
$4172 = HEAP32[$4171>>2]|0;
$4173 = $4141 ^ $4172;
$4174 = $2;
$4175 = ((($4174)) + 30|0);
$4176 = HEAP8[$4175>>0]|0;
$4177 = $4176&255;
$4178 = 198 ^ $4177;
$4179 = (45248 + ($4178)|0);
$4180 = HEAP8[$4179>>0]|0;
$4181 = $4180&255;
$4182 = $2;
$4183 = ((($4182)) + 22|0);
$4184 = HEAP8[$4183>>0]|0;
$4185 = $4184&255;
$4186 = $4181 ^ $4185;
$4187 = (45248 + ($4186)|0);
$4188 = HEAP8[$4187>>0]|0;
$4189 = $4188&255;
$4190 = $2;
$4191 = ((($4190)) + 14|0);
$4192 = HEAP8[$4191>>0]|0;
$4193 = $4192&255;
$4194 = $4189 ^ $4193;
$4195 = (44992 + ($4194)|0);
$4196 = HEAP8[$4195>>0]|0;
$4197 = $4196&255;
$4198 = $2;
$4199 = ((($4198)) + 6|0);
$4200 = HEAP8[$4199>>0]|0;
$4201 = $4200&255;
$4202 = $4197 ^ $4201;
$4203 = ((10424) + ($4202<<2)|0);
$4204 = HEAP32[$4203>>2]|0;
$4205 = $4173 ^ $4204;
$4206 = $2;
$4207 = ((($4206)) + 31|0);
$4208 = HEAP8[$4207>>0]|0;
$4209 = $4208&255;
$4210 = 50 ^ $4209;
$4211 = (45248 + ($4210)|0);
$4212 = HEAP8[$4211>>0]|0;
$4213 = $4212&255;
$4214 = $2;
$4215 = ((($4214)) + 23|0);
$4216 = HEAP8[$4215>>0]|0;
$4217 = $4216&255;
$4218 = $4213 ^ $4217;
$4219 = (44992 + ($4218)|0);
$4220 = HEAP8[$4219>>0]|0;
$4221 = $4220&255;
$4222 = $2;
$4223 = ((($4222)) + 15|0);
$4224 = HEAP8[$4223>>0]|0;
$4225 = $4224&255;
$4226 = $4221 ^ $4225;
$4227 = (44992 + ($4226)|0);
$4228 = HEAP8[$4227>>0]|0;
$4229 = $4228&255;
$4230 = $2;
$4231 = ((($4230)) + 7|0);
$4232 = HEAP8[$4231>>0]|0;
$4233 = $4232&255;
$4234 = $4229 ^ $4233;
$4235 = ((11448) + ($4234<<2)|0);
$4236 = HEAP32[$4235>>2]|0;
$4237 = $4205 ^ $4236;
$y = $4237;
$4238 = $y;
$4239 = $4238 << 8;
$4240 = $y;
$4241 = $4240 >>> 24;
$4242 = (($4239) + ($4241))|0;
$y = $4242;
$4243 = $y;
$4244 = $x;
$4245 = (($4244) + ($4243))|0;
$x = $4245;
$4246 = $x;
$4247 = $y;
$4248 = (($4247) + ($4246))|0;
$y = $4248;
$4249 = $x;
$4250 = $1;
$4251 = ((($4250)) + 4128|0);
$4252 = ((($4251)) + 32|0);
HEAP32[$4252>>2] = $4249;
$4253 = $y;
$4254 = $4253 << 9;
$4255 = $y;
$4256 = $4255 >>> 23;
$4257 = (($4254) + ($4256))|0;
$4258 = $1;
$4259 = ((($4258)) + 4128|0);
$4260 = ((($4259)) + 36|0);
HEAP32[$4260>>2] = $4257;
$4261 = $2;
$4262 = ((($4261)) + 24|0);
$4263 = HEAP8[$4262>>0]|0;
$4264 = $4263&255;
$4265 = 216 ^ $4264;
$4266 = (44992 + ($4265)|0);
$4267 = HEAP8[$4266>>0]|0;
$4268 = $4267&255;
$4269 = $2;
$4270 = ((($4269)) + 16|0);
$4271 = HEAP8[$4270>>0]|0;
$4272 = $4271&255;
$4273 = $4268 ^ $4272;
$4274 = (45248 + ($4273)|0);
$4275 = HEAP8[$4274>>0]|0;
$4276 = $4275&255;
$4277 = $2;
$4278 = ((($4277)) + 8|0);
$4279 = HEAP8[$4278>>0]|0;
$4280 = $4279&255;
$4281 = $4276 ^ $4280;
$4282 = (45248 + ($4281)|0);
$4283 = HEAP8[$4282>>0]|0;
$4284 = $4283&255;
$4285 = $2;
$4286 = HEAP8[$4285>>0]|0;
$4287 = $4286&255;
$4288 = $4284 ^ $4287;
$4289 = (8376 + ($4288<<2)|0);
$4290 = HEAP32[$4289>>2]|0;
$4291 = $2;
$4292 = ((($4291)) + 25|0);
$4293 = HEAP8[$4292>>0]|0;
$4294 = $4293&255;
$4295 = 53 ^ $4294;
$4296 = (44992 + ($4295)|0);
$4297 = HEAP8[$4296>>0]|0;
$4298 = $4297&255;
$4299 = $2;
$4300 = ((($4299)) + 17|0);
$4301 = HEAP8[$4300>>0]|0;
$4302 = $4301&255;
$4303 = $4298 ^ $4302;
$4304 = (44992 + ($4303)|0);
$4305 = HEAP8[$4304>>0]|0;
$4306 = $4305&255;
$4307 = $2;
$4308 = ((($4307)) + 9|0);
$4309 = HEAP8[$4308>>0]|0;
$4310 = $4309&255;
$4311 = $4306 ^ $4310;
$4312 = (45248 + ($4311)|0);
$4313 = HEAP8[$4312>>0]|0;
$4314 = $4313&255;
$4315 = $2;
$4316 = ((($4315)) + 1|0);
$4317 = HEAP8[$4316>>0]|0;
$4318 = $4317&255;
$4319 = $4314 ^ $4318;
$4320 = ((9400) + ($4319<<2)|0);
$4321 = HEAP32[$4320>>2]|0;
$4322 = $4290 ^ $4321;
$4323 = $2;
$4324 = ((($4323)) + 26|0);
$4325 = HEAP8[$4324>>0]|0;
$4326 = $4325&255;
$4327 = 53 ^ $4326;
$4328 = (45248 + ($4327)|0);
$4329 = HEAP8[$4328>>0]|0;
$4330 = $4329&255;
$4331 = $2;
$4332 = ((($4331)) + 18|0);
$4333 = HEAP8[$4332>>0]|0;
$4334 = $4333&255;
$4335 = $4330 ^ $4334;
$4336 = (45248 + ($4335)|0);
$4337 = HEAP8[$4336>>0]|0;
$4338 = $4337&255;
$4339 = $2;
$4340 = ((($4339)) + 10|0);
$4341 = HEAP8[$4340>>0]|0;
$4342 = $4341&255;
$4343 = $4338 ^ $4342;
$4344 = (44992 + ($4343)|0);
$4345 = HEAP8[$4344>>0]|0;
$4346 = $4345&255;
$4347 = $2;
$4348 = ((($4347)) + 2|0);
$4349 = HEAP8[$4348>>0]|0;
$4350 = $4349&255;
$4351 = $4346 ^ $4350;
$4352 = ((10424) + ($4351<<2)|0);
$4353 = HEAP32[$4352>>2]|0;
$4354 = $4322 ^ $4353;
$4355 = $2;
$4356 = ((($4355)) + 27|0);
$4357 = HEAP8[$4356>>0]|0;
$4358 = $4357&255;
$4359 = 216 ^ $4358;
$4360 = (45248 + ($4359)|0);
$4361 = HEAP8[$4360>>0]|0;
$4362 = $4361&255;
$4363 = $2;
$4364 = ((($4363)) + 19|0);
$4365 = HEAP8[$4364>>0]|0;
$4366 = $4365&255;
$4367 = $4362 ^ $4366;
$4368 = (44992 + ($4367)|0);
$4369 = HEAP8[$4368>>0]|0;
$4370 = $4369&255;
$4371 = $2;
$4372 = ((($4371)) + 11|0);
$4373 = HEAP8[$4372>>0]|0;
$4374 = $4373&255;
$4375 = $4370 ^ $4374;
$4376 = (44992 + ($4375)|0);
$4377 = HEAP8[$4376>>0]|0;
$4378 = $4377&255;
$4379 = $2;
$4380 = ((($4379)) + 3|0);
$4381 = HEAP8[$4380>>0]|0;
$4382 = $4381&255;
$4383 = $4378 ^ $4382;
$4384 = ((11448) + ($4383<<2)|0);
$4385 = HEAP32[$4384>>2]|0;
$4386 = $4354 ^ $4385;
$x = $4386;
$4387 = $2;
$4388 = ((($4387)) + 28|0);
$4389 = HEAP8[$4388>>0]|0;
$4390 = $4389&255;
$4391 = 253 ^ $4390;
$4392 = (44992 + ($4391)|0);
$4393 = HEAP8[$4392>>0]|0;
$4394 = $4393&255;
$4395 = $2;
$4396 = ((($4395)) + 20|0);
$4397 = HEAP8[$4396>>0]|0;
$4398 = $4397&255;
$4399 = $4394 ^ $4398;
$4400 = (45248 + ($4399)|0);
$4401 = HEAP8[$4400>>0]|0;
$4402 = $4401&255;
$4403 = $2;
$4404 = ((($4403)) + 12|0);
$4405 = HEAP8[$4404>>0]|0;
$4406 = $4405&255;
$4407 = $4402 ^ $4406;
$4408 = (45248 + ($4407)|0);
$4409 = HEAP8[$4408>>0]|0;
$4410 = $4409&255;
$4411 = $2;
$4412 = ((($4411)) + 4|0);
$4413 = HEAP8[$4412>>0]|0;
$4414 = $4413&255;
$4415 = $4410 ^ $4414;
$4416 = (8376 + ($4415<<2)|0);
$4417 = HEAP32[$4416>>2]|0;
$4418 = $2;
$4419 = ((($4418)) + 29|0);
$4420 = HEAP8[$4419>>0]|0;
$4421 = $4420&255;
$4422 = 152 ^ $4421;
$4423 = (44992 + ($4422)|0);
$4424 = HEAP8[$4423>>0]|0;
$4425 = $4424&255;
$4426 = $2;
$4427 = ((($4426)) + 21|0);
$4428 = HEAP8[$4427>>0]|0;
$4429 = $4428&255;
$4430 = $4425 ^ $4429;
$4431 = (44992 + ($4430)|0);
$4432 = HEAP8[$4431>>0]|0;
$4433 = $4432&255;
$4434 = $2;
$4435 = ((($4434)) + 13|0);
$4436 = HEAP8[$4435>>0]|0;
$4437 = $4436&255;
$4438 = $4433 ^ $4437;
$4439 = (45248 + ($4438)|0);
$4440 = HEAP8[$4439>>0]|0;
$4441 = $4440&255;
$4442 = $2;
$4443 = ((($4442)) + 5|0);
$4444 = HEAP8[$4443>>0]|0;
$4445 = $4444&255;
$4446 = $4441 ^ $4445;
$4447 = ((9400) + ($4446<<2)|0);
$4448 = HEAP32[$4447>>2]|0;
$4449 = $4417 ^ $4448;
$4450 = $2;
$4451 = ((($4450)) + 30|0);
$4452 = HEAP8[$4451>>0]|0;
$4453 = $4452&255;
$4454 = 152 ^ $4453;
$4455 = (45248 + ($4454)|0);
$4456 = HEAP8[$4455>>0]|0;
$4457 = $4456&255;
$4458 = $2;
$4459 = ((($4458)) + 22|0);
$4460 = HEAP8[$4459>>0]|0;
$4461 = $4460&255;
$4462 = $4457 ^ $4461;
$4463 = (45248 + ($4462)|0);
$4464 = HEAP8[$4463>>0]|0;
$4465 = $4464&255;
$4466 = $2;
$4467 = ((($4466)) + 14|0);
$4468 = HEAP8[$4467>>0]|0;
$4469 = $4468&255;
$4470 = $4465 ^ $4469;
$4471 = (44992 + ($4470)|0);
$4472 = HEAP8[$4471>>0]|0;
$4473 = $4472&255;
$4474 = $2;
$4475 = ((($4474)) + 6|0);
$4476 = HEAP8[$4475>>0]|0;
$4477 = $4476&255;
$4478 = $4473 ^ $4477;
$4479 = ((10424) + ($4478<<2)|0);
$4480 = HEAP32[$4479>>2]|0;
$4481 = $4449 ^ $4480;
$4482 = $2;
$4483 = ((($4482)) + 31|0);
$4484 = HEAP8[$4483>>0]|0;
$4485 = $4484&255;
$4486 = 253 ^ $4485;
$4487 = (45248 + ($4486)|0);
$4488 = HEAP8[$4487>>0]|0;
$4489 = $4488&255;
$4490 = $2;
$4491 = ((($4490)) + 23|0);
$4492 = HEAP8[$4491>>0]|0;
$4493 = $4492&255;
$4494 = $4489 ^ $4493;
$4495 = (44992 + ($4494)|0);
$4496 = HEAP8[$4495>>0]|0;
$4497 = $4496&255;
$4498 = $2;
$4499 = ((($4498)) + 15|0);
$4500 = HEAP8[$4499>>0]|0;
$4501 = $4500&255;
$4502 = $4497 ^ $4501;
$4503 = (44992 + ($4502)|0);
$4504 = HEAP8[$4503>>0]|0;
$4505 = $4504&255;
$4506 = $2;
$4507 = ((($4506)) + 7|0);
$4508 = HEAP8[$4507>>0]|0;
$4509 = $4508&255;
$4510 = $4505 ^ $4509;
$4511 = ((11448) + ($4510<<2)|0);
$4512 = HEAP32[$4511>>2]|0;
$4513 = $4481 ^ $4512;
$y = $4513;
$4514 = $y;
$4515 = $4514 << 8;
$4516 = $y;
$4517 = $4516 >>> 24;
$4518 = (($4515) + ($4517))|0;
$y = $4518;
$4519 = $y;
$4520 = $x;
$4521 = (($4520) + ($4519))|0;
$x = $4521;
$4522 = $x;
$4523 = $y;
$4524 = (($4523) + ($4522))|0;
$y = $4524;
$4525 = $x;
$4526 = $1;
$4527 = ((($4526)) + 4128|0);
$4528 = ((($4527)) + 40|0);
HEAP32[$4528>>2] = $4525;
$4529 = $y;
$4530 = $4529 << 9;
$4531 = $y;
$4532 = $4531 >>> 23;
$4533 = (($4530) + ($4532))|0;
$4534 = $1;
$4535 = ((($4534)) + 4128|0);
$4536 = ((($4535)) + 44|0);
HEAP32[$4536>>2] = $4533;
$4537 = $2;
$4538 = ((($4537)) + 24|0);
$4539 = HEAP8[$4538>>0]|0;
$4540 = $4539&255;
$4541 = 55 ^ $4540;
$4542 = (44992 + ($4541)|0);
$4543 = HEAP8[$4542>>0]|0;
$4544 = $4543&255;
$4545 = $2;
$4546 = ((($4545)) + 16|0);
$4547 = HEAP8[$4546>>0]|0;
$4548 = $4547&255;
$4549 = $4544 ^ $4548;
$4550 = (45248 + ($4549)|0);
$4551 = HEAP8[$4550>>0]|0;
$4552 = $4551&255;
$4553 = $2;
$4554 = ((($4553)) + 8|0);
$4555 = HEAP8[$4554>>0]|0;
$4556 = $4555&255;
$4557 = $4552 ^ $4556;
$4558 = (45248 + ($4557)|0);
$4559 = HEAP8[$4558>>0]|0;
$4560 = $4559&255;
$4561 = $2;
$4562 = HEAP8[$4561>>0]|0;
$4563 = $4562&255;
$4564 = $4560 ^ $4563;
$4565 = (8376 + ($4564<<2)|0);
$4566 = HEAP32[$4565>>2]|0;
$4567 = $2;
$4568 = ((($4567)) + 25|0);
$4569 = HEAP8[$4568>>0]|0;
$4570 = $4569&255;
$4571 = 24 ^ $4570;
$4572 = (44992 + ($4571)|0);
$4573 = HEAP8[$4572>>0]|0;
$4574 = $4573&255;
$4575 = $2;
$4576 = ((($4575)) + 17|0);
$4577 = HEAP8[$4576>>0]|0;
$4578 = $4577&255;
$4579 = $4574 ^ $4578;
$4580 = (44992 + ($4579)|0);
$4581 = HEAP8[$4580>>0]|0;
$4582 = $4581&255;
$4583 = $2;
$4584 = ((($4583)) + 9|0);
$4585 = HEAP8[$4584>>0]|0;
$4586 = $4585&255;
$4587 = $4582 ^ $4586;
$4588 = (45248 + ($4587)|0);
$4589 = HEAP8[$4588>>0]|0;
$4590 = $4589&255;
$4591 = $2;
$4592 = ((($4591)) + 1|0);
$4593 = HEAP8[$4592>>0]|0;
$4594 = $4593&255;
$4595 = $4590 ^ $4594;
$4596 = ((9400) + ($4595<<2)|0);
$4597 = HEAP32[$4596>>2]|0;
$4598 = $4566 ^ $4597;
$4599 = $2;
$4600 = ((($4599)) + 26|0);
$4601 = HEAP8[$4600>>0]|0;
$4602 = $4601&255;
$4603 = 24 ^ $4602;
$4604 = (45248 + ($4603)|0);
$4605 = HEAP8[$4604>>0]|0;
$4606 = $4605&255;
$4607 = $2;
$4608 = ((($4607)) + 18|0);
$4609 = HEAP8[$4608>>0]|0;
$4610 = $4609&255;
$4611 = $4606 ^ $4610;
$4612 = (45248 + ($4611)|0);
$4613 = HEAP8[$4612>>0]|0;
$4614 = $4613&255;
$4615 = $2;
$4616 = ((($4615)) + 10|0);
$4617 = HEAP8[$4616>>0]|0;
$4618 = $4617&255;
$4619 = $4614 ^ $4618;
$4620 = (44992 + ($4619)|0);
$4621 = HEAP8[$4620>>0]|0;
$4622 = $4621&255;
$4623 = $2;
$4624 = ((($4623)) + 2|0);
$4625 = HEAP8[$4624>>0]|0;
$4626 = $4625&255;
$4627 = $4622 ^ $4626;
$4628 = ((10424) + ($4627<<2)|0);
$4629 = HEAP32[$4628>>2]|0;
$4630 = $4598 ^ $4629;
$4631 = $2;
$4632 = ((($4631)) + 27|0);
$4633 = HEAP8[$4632>>0]|0;
$4634 = $4633&255;
$4635 = 55 ^ $4634;
$4636 = (45248 + ($4635)|0);
$4637 = HEAP8[$4636>>0]|0;
$4638 = $4637&255;
$4639 = $2;
$4640 = ((($4639)) + 19|0);
$4641 = HEAP8[$4640>>0]|0;
$4642 = $4641&255;
$4643 = $4638 ^ $4642;
$4644 = (44992 + ($4643)|0);
$4645 = HEAP8[$4644>>0]|0;
$4646 = $4645&255;
$4647 = $2;
$4648 = ((($4647)) + 11|0);
$4649 = HEAP8[$4648>>0]|0;
$4650 = $4649&255;
$4651 = $4646 ^ $4650;
$4652 = (44992 + ($4651)|0);
$4653 = HEAP8[$4652>>0]|0;
$4654 = $4653&255;
$4655 = $2;
$4656 = ((($4655)) + 3|0);
$4657 = HEAP8[$4656>>0]|0;
$4658 = $4657&255;
$4659 = $4654 ^ $4658;
$4660 = ((11448) + ($4659<<2)|0);
$4661 = HEAP32[$4660>>2]|0;
$4662 = $4630 ^ $4661;
$x = $4662;
$4663 = $2;
$4664 = ((($4663)) + 28|0);
$4665 = HEAP8[$4664>>0]|0;
$4666 = $4665&255;
$4667 = 113 ^ $4666;
$4668 = (44992 + ($4667)|0);
$4669 = HEAP8[$4668>>0]|0;
$4670 = $4669&255;
$4671 = $2;
$4672 = ((($4671)) + 20|0);
$4673 = HEAP8[$4672>>0]|0;
$4674 = $4673&255;
$4675 = $4670 ^ $4674;
$4676 = (45248 + ($4675)|0);
$4677 = HEAP8[$4676>>0]|0;
$4678 = $4677&255;
$4679 = $2;
$4680 = ((($4679)) + 12|0);
$4681 = HEAP8[$4680>>0]|0;
$4682 = $4681&255;
$4683 = $4678 ^ $4682;
$4684 = (45248 + ($4683)|0);
$4685 = HEAP8[$4684>>0]|0;
$4686 = $4685&255;
$4687 = $2;
$4688 = ((($4687)) + 4|0);
$4689 = HEAP8[$4688>>0]|0;
$4690 = $4689&255;
$4691 = $4686 ^ $4690;
$4692 = (8376 + ($4691<<2)|0);
$4693 = HEAP32[$4692>>2]|0;
$4694 = $2;
$4695 = ((($4694)) + 29|0);
$4696 = HEAP8[$4695>>0]|0;
$4697 = $4696&255;
$4698 = 247 ^ $4697;
$4699 = (44992 + ($4698)|0);
$4700 = HEAP8[$4699>>0]|0;
$4701 = $4700&255;
$4702 = $2;
$4703 = ((($4702)) + 21|0);
$4704 = HEAP8[$4703>>0]|0;
$4705 = $4704&255;
$4706 = $4701 ^ $4705;
$4707 = (44992 + ($4706)|0);
$4708 = HEAP8[$4707>>0]|0;
$4709 = $4708&255;
$4710 = $2;
$4711 = ((($4710)) + 13|0);
$4712 = HEAP8[$4711>>0]|0;
$4713 = $4712&255;
$4714 = $4709 ^ $4713;
$4715 = (45248 + ($4714)|0);
$4716 = HEAP8[$4715>>0]|0;
$4717 = $4716&255;
$4718 = $2;
$4719 = ((($4718)) + 5|0);
$4720 = HEAP8[$4719>>0]|0;
$4721 = $4720&255;
$4722 = $4717 ^ $4721;
$4723 = ((9400) + ($4722<<2)|0);
$4724 = HEAP32[$4723>>2]|0;
$4725 = $4693 ^ $4724;
$4726 = $2;
$4727 = ((($4726)) + 30|0);
$4728 = HEAP8[$4727>>0]|0;
$4729 = $4728&255;
$4730 = 247 ^ $4729;
$4731 = (45248 + ($4730)|0);
$4732 = HEAP8[$4731>>0]|0;
$4733 = $4732&255;
$4734 = $2;
$4735 = ((($4734)) + 22|0);
$4736 = HEAP8[$4735>>0]|0;
$4737 = $4736&255;
$4738 = $4733 ^ $4737;
$4739 = (45248 + ($4738)|0);
$4740 = HEAP8[$4739>>0]|0;
$4741 = $4740&255;
$4742 = $2;
$4743 = ((($4742)) + 14|0);
$4744 = HEAP8[$4743>>0]|0;
$4745 = $4744&255;
$4746 = $4741 ^ $4745;
$4747 = (44992 + ($4746)|0);
$4748 = HEAP8[$4747>>0]|0;
$4749 = $4748&255;
$4750 = $2;
$4751 = ((($4750)) + 6|0);
$4752 = HEAP8[$4751>>0]|0;
$4753 = $4752&255;
$4754 = $4749 ^ $4753;
$4755 = ((10424) + ($4754<<2)|0);
$4756 = HEAP32[$4755>>2]|0;
$4757 = $4725 ^ $4756;
$4758 = $2;
$4759 = ((($4758)) + 31|0);
$4760 = HEAP8[$4759>>0]|0;
$4761 = $4760&255;
$4762 = 113 ^ $4761;
$4763 = (45248 + ($4762)|0);
$4764 = HEAP8[$4763>>0]|0;
$4765 = $4764&255;
$4766 = $2;
$4767 = ((($4766)) + 23|0);
$4768 = HEAP8[$4767>>0]|0;
$4769 = $4768&255;
$4770 = $4765 ^ $4769;
$4771 = (44992 + ($4770)|0);
$4772 = HEAP8[$4771>>0]|0;
$4773 = $4772&255;
$4774 = $2;
$4775 = ((($4774)) + 15|0);
$4776 = HEAP8[$4775>>0]|0;
$4777 = $4776&255;
$4778 = $4773 ^ $4777;
$4779 = (44992 + ($4778)|0);
$4780 = HEAP8[$4779>>0]|0;
$4781 = $4780&255;
$4782 = $2;
$4783 = ((($4782)) + 7|0);
$4784 = HEAP8[$4783>>0]|0;
$4785 = $4784&255;
$4786 = $4781 ^ $4785;
$4787 = ((11448) + ($4786<<2)|0);
$4788 = HEAP32[$4787>>2]|0;
$4789 = $4757 ^ $4788;
$y = $4789;
$4790 = $y;
$4791 = $4790 << 8;
$4792 = $y;
$4793 = $4792 >>> 24;
$4794 = (($4791) + ($4793))|0;
$y = $4794;
$4795 = $y;
$4796 = $x;
$4797 = (($4796) + ($4795))|0;
$x = $4797;
$4798 = $x;
$4799 = $y;
$4800 = (($4799) + ($4798))|0;
$y = $4800;
$4801 = $x;
$4802 = $1;
$4803 = ((($4802)) + 4128|0);
$4804 = ((($4803)) + 48|0);
HEAP32[$4804>>2] = $4801;
$4805 = $y;
$4806 = $4805 << 9;
$4807 = $y;
$4808 = $4807 >>> 23;
$4809 = (($4806) + ($4808))|0;
$4810 = $1;
$4811 = ((($4810)) + 4128|0);
$4812 = ((($4811)) + 52|0);
HEAP32[$4812>>2] = $4809;
$4813 = $2;
$4814 = ((($4813)) + 24|0);
$4815 = HEAP8[$4814>>0]|0;
$4816 = $4815&255;
$4817 = 241 ^ $4816;
$4818 = (44992 + ($4817)|0);
$4819 = HEAP8[$4818>>0]|0;
$4820 = $4819&255;
$4821 = $2;
$4822 = ((($4821)) + 16|0);
$4823 = HEAP8[$4822>>0]|0;
$4824 = $4823&255;
$4825 = $4820 ^ $4824;
$4826 = (45248 + ($4825)|0);
$4827 = HEAP8[$4826>>0]|0;
$4828 = $4827&255;
$4829 = $2;
$4830 = ((($4829)) + 8|0);
$4831 = HEAP8[$4830>>0]|0;
$4832 = $4831&255;
$4833 = $4828 ^ $4832;
$4834 = (45248 + ($4833)|0);
$4835 = HEAP8[$4834>>0]|0;
$4836 = $4835&255;
$4837 = $2;
$4838 = HEAP8[$4837>>0]|0;
$4839 = $4838&255;
$4840 = $4836 ^ $4839;
$4841 = (8376 + ($4840<<2)|0);
$4842 = HEAP32[$4841>>2]|0;
$4843 = $2;
$4844 = ((($4843)) + 25|0);
$4845 = HEAP8[$4844>>0]|0;
$4846 = $4845&255;
$4847 = 236 ^ $4846;
$4848 = (44992 + ($4847)|0);
$4849 = HEAP8[$4848>>0]|0;
$4850 = $4849&255;
$4851 = $2;
$4852 = ((($4851)) + 17|0);
$4853 = HEAP8[$4852>>0]|0;
$4854 = $4853&255;
$4855 = $4850 ^ $4854;
$4856 = (44992 + ($4855)|0);
$4857 = HEAP8[$4856>>0]|0;
$4858 = $4857&255;
$4859 = $2;
$4860 = ((($4859)) + 9|0);
$4861 = HEAP8[$4860>>0]|0;
$4862 = $4861&255;
$4863 = $4858 ^ $4862;
$4864 = (45248 + ($4863)|0);
$4865 = HEAP8[$4864>>0]|0;
$4866 = $4865&255;
$4867 = $2;
$4868 = ((($4867)) + 1|0);
$4869 = HEAP8[$4868>>0]|0;
$4870 = $4869&255;
$4871 = $4866 ^ $4870;
$4872 = ((9400) + ($4871<<2)|0);
$4873 = HEAP32[$4872>>2]|0;
$4874 = $4842 ^ $4873;
$4875 = $2;
$4876 = ((($4875)) + 26|0);
$4877 = HEAP8[$4876>>0]|0;
$4878 = $4877&255;
$4879 = 236 ^ $4878;
$4880 = (45248 + ($4879)|0);
$4881 = HEAP8[$4880>>0]|0;
$4882 = $4881&255;
$4883 = $2;
$4884 = ((($4883)) + 18|0);
$4885 = HEAP8[$4884>>0]|0;
$4886 = $4885&255;
$4887 = $4882 ^ $4886;
$4888 = (45248 + ($4887)|0);
$4889 = HEAP8[$4888>>0]|0;
$4890 = $4889&255;
$4891 = $2;
$4892 = ((($4891)) + 10|0);
$4893 = HEAP8[$4892>>0]|0;
$4894 = $4893&255;
$4895 = $4890 ^ $4894;
$4896 = (44992 + ($4895)|0);
$4897 = HEAP8[$4896>>0]|0;
$4898 = $4897&255;
$4899 = $2;
$4900 = ((($4899)) + 2|0);
$4901 = HEAP8[$4900>>0]|0;
$4902 = $4901&255;
$4903 = $4898 ^ $4902;
$4904 = ((10424) + ($4903<<2)|0);
$4905 = HEAP32[$4904>>2]|0;
$4906 = $4874 ^ $4905;
$4907 = $2;
$4908 = ((($4907)) + 27|0);
$4909 = HEAP8[$4908>>0]|0;
$4910 = $4909&255;
$4911 = 241 ^ $4910;
$4912 = (45248 + ($4911)|0);
$4913 = HEAP8[$4912>>0]|0;
$4914 = $4913&255;
$4915 = $2;
$4916 = ((($4915)) + 19|0);
$4917 = HEAP8[$4916>>0]|0;
$4918 = $4917&255;
$4919 = $4914 ^ $4918;
$4920 = (44992 + ($4919)|0);
$4921 = HEAP8[$4920>>0]|0;
$4922 = $4921&255;
$4923 = $2;
$4924 = ((($4923)) + 11|0);
$4925 = HEAP8[$4924>>0]|0;
$4926 = $4925&255;
$4927 = $4922 ^ $4926;
$4928 = (44992 + ($4927)|0);
$4929 = HEAP8[$4928>>0]|0;
$4930 = $4929&255;
$4931 = $2;
$4932 = ((($4931)) + 3|0);
$4933 = HEAP8[$4932>>0]|0;
$4934 = $4933&255;
$4935 = $4930 ^ $4934;
$4936 = ((11448) + ($4935<<2)|0);
$4937 = HEAP32[$4936>>2]|0;
$4938 = $4906 ^ $4937;
$x = $4938;
$4939 = $2;
$4940 = ((($4939)) + 28|0);
$4941 = HEAP8[$4940>>0]|0;
$4942 = $4941&255;
$4943 = 225 ^ $4942;
$4944 = (44992 + ($4943)|0);
$4945 = HEAP8[$4944>>0]|0;
$4946 = $4945&255;
$4947 = $2;
$4948 = ((($4947)) + 20|0);
$4949 = HEAP8[$4948>>0]|0;
$4950 = $4949&255;
$4951 = $4946 ^ $4950;
$4952 = (45248 + ($4951)|0);
$4953 = HEAP8[$4952>>0]|0;
$4954 = $4953&255;
$4955 = $2;
$4956 = ((($4955)) + 12|0);
$4957 = HEAP8[$4956>>0]|0;
$4958 = $4957&255;
$4959 = $4954 ^ $4958;
$4960 = (45248 + ($4959)|0);
$4961 = HEAP8[$4960>>0]|0;
$4962 = $4961&255;
$4963 = $2;
$4964 = ((($4963)) + 4|0);
$4965 = HEAP8[$4964>>0]|0;
$4966 = $4965&255;
$4967 = $4962 ^ $4966;
$4968 = (8376 + ($4967<<2)|0);
$4969 = HEAP32[$4968>>2]|0;
$4970 = $2;
$4971 = ((($4970)) + 29|0);
$4972 = HEAP8[$4971>>0]|0;
$4973 = $4972&255;
$4974 = 108 ^ $4973;
$4975 = (44992 + ($4974)|0);
$4976 = HEAP8[$4975>>0]|0;
$4977 = $4976&255;
$4978 = $2;
$4979 = ((($4978)) + 21|0);
$4980 = HEAP8[$4979>>0]|0;
$4981 = $4980&255;
$4982 = $4977 ^ $4981;
$4983 = (44992 + ($4982)|0);
$4984 = HEAP8[$4983>>0]|0;
$4985 = $4984&255;
$4986 = $2;
$4987 = ((($4986)) + 13|0);
$4988 = HEAP8[$4987>>0]|0;
$4989 = $4988&255;
$4990 = $4985 ^ $4989;
$4991 = (45248 + ($4990)|0);
$4992 = HEAP8[$4991>>0]|0;
$4993 = $4992&255;
$4994 = $2;
$4995 = ((($4994)) + 5|0);
$4996 = HEAP8[$4995>>0]|0;
$4997 = $4996&255;
$4998 = $4993 ^ $4997;
$4999 = ((9400) + ($4998<<2)|0);
$5000 = HEAP32[$4999>>2]|0;
$5001 = $4969 ^ $5000;
$5002 = $2;
$5003 = ((($5002)) + 30|0);
$5004 = HEAP8[$5003>>0]|0;
$5005 = $5004&255;
$5006 = 108 ^ $5005;
$5007 = (45248 + ($5006)|0);
$5008 = HEAP8[$5007>>0]|0;
$5009 = $5008&255;
$5010 = $2;
$5011 = ((($5010)) + 22|0);
$5012 = HEAP8[$5011>>0]|0;
$5013 = $5012&255;
$5014 = $5009 ^ $5013;
$5015 = (45248 + ($5014)|0);
$5016 = HEAP8[$5015>>0]|0;
$5017 = $5016&255;
$5018 = $2;
$5019 = ((($5018)) + 14|0);
$5020 = HEAP8[$5019>>0]|0;
$5021 = $5020&255;
$5022 = $5017 ^ $5021;
$5023 = (44992 + ($5022)|0);
$5024 = HEAP8[$5023>>0]|0;
$5025 = $5024&255;
$5026 = $2;
$5027 = ((($5026)) + 6|0);
$5028 = HEAP8[$5027>>0]|0;
$5029 = $5028&255;
$5030 = $5025 ^ $5029;
$5031 = ((10424) + ($5030<<2)|0);
$5032 = HEAP32[$5031>>2]|0;
$5033 = $5001 ^ $5032;
$5034 = $2;
$5035 = ((($5034)) + 31|0);
$5036 = HEAP8[$5035>>0]|0;
$5037 = $5036&255;
$5038 = 225 ^ $5037;
$5039 = (45248 + ($5038)|0);
$5040 = HEAP8[$5039>>0]|0;
$5041 = $5040&255;
$5042 = $2;
$5043 = ((($5042)) + 23|0);
$5044 = HEAP8[$5043>>0]|0;
$5045 = $5044&255;
$5046 = $5041 ^ $5045;
$5047 = (44992 + ($5046)|0);
$5048 = HEAP8[$5047>>0]|0;
$5049 = $5048&255;
$5050 = $2;
$5051 = ((($5050)) + 15|0);
$5052 = HEAP8[$5051>>0]|0;
$5053 = $5052&255;
$5054 = $5049 ^ $5053;
$5055 = (44992 + ($5054)|0);
$5056 = HEAP8[$5055>>0]|0;
$5057 = $5056&255;
$5058 = $2;
$5059 = ((($5058)) + 7|0);
$5060 = HEAP8[$5059>>0]|0;
$5061 = $5060&255;
$5062 = $5057 ^ $5061;
$5063 = ((11448) + ($5062<<2)|0);
$5064 = HEAP32[$5063>>2]|0;
$5065 = $5033 ^ $5064;
$y = $5065;
$5066 = $y;
$5067 = $5066 << 8;
$5068 = $y;
$5069 = $5068 >>> 24;
$5070 = (($5067) + ($5069))|0;
$y = $5070;
$5071 = $y;
$5072 = $x;
$5073 = (($5072) + ($5071))|0;
$x = $5073;
$5074 = $x;
$5075 = $y;
$5076 = (($5075) + ($5074))|0;
$y = $5076;
$5077 = $x;
$5078 = $1;
$5079 = ((($5078)) + 4128|0);
$5080 = ((($5079)) + 56|0);
HEAP32[$5080>>2] = $5077;
$5081 = $y;
$5082 = $5081 << 9;
$5083 = $y;
$5084 = $5083 >>> 23;
$5085 = (($5082) + ($5084))|0;
$5086 = $1;
$5087 = ((($5086)) + 4128|0);
$5088 = ((($5087)) + 60|0);
HEAP32[$5088>>2] = $5085;
$5089 = $2;
$5090 = ((($5089)) + 24|0);
$5091 = HEAP8[$5090>>0]|0;
$5092 = $5091&255;
$5093 = 48 ^ $5092;
$5094 = (44992 + ($5093)|0);
$5095 = HEAP8[$5094>>0]|0;
$5096 = $5095&255;
$5097 = $2;
$5098 = ((($5097)) + 16|0);
$5099 = HEAP8[$5098>>0]|0;
$5100 = $5099&255;
$5101 = $5096 ^ $5100;
$5102 = (45248 + ($5101)|0);
$5103 = HEAP8[$5102>>0]|0;
$5104 = $5103&255;
$5105 = $2;
$5106 = ((($5105)) + 8|0);
$5107 = HEAP8[$5106>>0]|0;
$5108 = $5107&255;
$5109 = $5104 ^ $5108;
$5110 = (45248 + ($5109)|0);
$5111 = HEAP8[$5110>>0]|0;
$5112 = $5111&255;
$5113 = $2;
$5114 = HEAP8[$5113>>0]|0;
$5115 = $5114&255;
$5116 = $5112 ^ $5115;
$5117 = (8376 + ($5116<<2)|0);
$5118 = HEAP32[$5117>>2]|0;
$5119 = $2;
$5120 = ((($5119)) + 25|0);
$5121 = HEAP8[$5120>>0]|0;
$5122 = $5121&255;
$5123 = 67 ^ $5122;
$5124 = (44992 + ($5123)|0);
$5125 = HEAP8[$5124>>0]|0;
$5126 = $5125&255;
$5127 = $2;
$5128 = ((($5127)) + 17|0);
$5129 = HEAP8[$5128>>0]|0;
$5130 = $5129&255;
$5131 = $5126 ^ $5130;
$5132 = (44992 + ($5131)|0);
$5133 = HEAP8[$5132>>0]|0;
$5134 = $5133&255;
$5135 = $2;
$5136 = ((($5135)) + 9|0);
$5137 = HEAP8[$5136>>0]|0;
$5138 = $5137&255;
$5139 = $5134 ^ $5138;
$5140 = (45248 + ($5139)|0);
$5141 = HEAP8[$5140>>0]|0;
$5142 = $5141&255;
$5143 = $2;
$5144 = ((($5143)) + 1|0);
$5145 = HEAP8[$5144>>0]|0;
$5146 = $5145&255;
$5147 = $5142 ^ $5146;
$5148 = ((9400) + ($5147<<2)|0);
$5149 = HEAP32[$5148>>2]|0;
$5150 = $5118 ^ $5149;
$5151 = $2;
$5152 = ((($5151)) + 26|0);
$5153 = HEAP8[$5152>>0]|0;
$5154 = $5153&255;
$5155 = 67 ^ $5154;
$5156 = (45248 + ($5155)|0);
$5157 = HEAP8[$5156>>0]|0;
$5158 = $5157&255;
$5159 = $2;
$5160 = ((($5159)) + 18|0);
$5161 = HEAP8[$5160>>0]|0;
$5162 = $5161&255;
$5163 = $5158 ^ $5162;
$5164 = (45248 + ($5163)|0);
$5165 = HEAP8[$5164>>0]|0;
$5166 = $5165&255;
$5167 = $2;
$5168 = ((($5167)) + 10|0);
$5169 = HEAP8[$5168>>0]|0;
$5170 = $5169&255;
$5171 = $5166 ^ $5170;
$5172 = (44992 + ($5171)|0);
$5173 = HEAP8[$5172>>0]|0;
$5174 = $5173&255;
$5175 = $2;
$5176 = ((($5175)) + 2|0);
$5177 = HEAP8[$5176>>0]|0;
$5178 = $5177&255;
$5179 = $5174 ^ $5178;
$5180 = ((10424) + ($5179<<2)|0);
$5181 = HEAP32[$5180>>2]|0;
$5182 = $5150 ^ $5181;
$5183 = $2;
$5184 = ((($5183)) + 27|0);
$5185 = HEAP8[$5184>>0]|0;
$5186 = $5185&255;
$5187 = 48 ^ $5186;
$5188 = (45248 + ($5187)|0);
$5189 = HEAP8[$5188>>0]|0;
$5190 = $5189&255;
$5191 = $2;
$5192 = ((($5191)) + 19|0);
$5193 = HEAP8[$5192>>0]|0;
$5194 = $5193&255;
$5195 = $5190 ^ $5194;
$5196 = (44992 + ($5195)|0);
$5197 = HEAP8[$5196>>0]|0;
$5198 = $5197&255;
$5199 = $2;
$5200 = ((($5199)) + 11|0);
$5201 = HEAP8[$5200>>0]|0;
$5202 = $5201&255;
$5203 = $5198 ^ $5202;
$5204 = (44992 + ($5203)|0);
$5205 = HEAP8[$5204>>0]|0;
$5206 = $5205&255;
$5207 = $2;
$5208 = ((($5207)) + 3|0);
$5209 = HEAP8[$5208>>0]|0;
$5210 = $5209&255;
$5211 = $5206 ^ $5210;
$5212 = ((11448) + ($5211<<2)|0);
$5213 = HEAP32[$5212>>2]|0;
$5214 = $5182 ^ $5213;
$x = $5214;
$5215 = $2;
$5216 = ((($5215)) + 28|0);
$5217 = HEAP8[$5216>>0]|0;
$5218 = $5217&255;
$5219 = 15 ^ $5218;
$5220 = (44992 + ($5219)|0);
$5221 = HEAP8[$5220>>0]|0;
$5222 = $5221&255;
$5223 = $2;
$5224 = ((($5223)) + 20|0);
$5225 = HEAP8[$5224>>0]|0;
$5226 = $5225&255;
$5227 = $5222 ^ $5226;
$5228 = (45248 + ($5227)|0);
$5229 = HEAP8[$5228>>0]|0;
$5230 = $5229&255;
$5231 = $2;
$5232 = ((($5231)) + 12|0);
$5233 = HEAP8[$5232>>0]|0;
$5234 = $5233&255;
$5235 = $5230 ^ $5234;
$5236 = (45248 + ($5235)|0);
$5237 = HEAP8[$5236>>0]|0;
$5238 = $5237&255;
$5239 = $2;
$5240 = ((($5239)) + 4|0);
$5241 = HEAP8[$5240>>0]|0;
$5242 = $5241&255;
$5243 = $5238 ^ $5242;
$5244 = (8376 + ($5243<<2)|0);
$5245 = HEAP32[$5244>>2]|0;
$5246 = $2;
$5247 = ((($5246)) + 29|0);
$5248 = HEAP8[$5247>>0]|0;
$5249 = $5248&255;
$5250 = 117 ^ $5249;
$5251 = (44992 + ($5250)|0);
$5252 = HEAP8[$5251>>0]|0;
$5253 = $5252&255;
$5254 = $2;
$5255 = ((($5254)) + 21|0);
$5256 = HEAP8[$5255>>0]|0;
$5257 = $5256&255;
$5258 = $5253 ^ $5257;
$5259 = (44992 + ($5258)|0);
$5260 = HEAP8[$5259>>0]|0;
$5261 = $5260&255;
$5262 = $2;
$5263 = ((($5262)) + 13|0);
$5264 = HEAP8[$5263>>0]|0;
$5265 = $5264&255;
$5266 = $5261 ^ $5265;
$5267 = (45248 + ($5266)|0);
$5268 = HEAP8[$5267>>0]|0;
$5269 = $5268&255;
$5270 = $2;
$5271 = ((($5270)) + 5|0);
$5272 = HEAP8[$5271>>0]|0;
$5273 = $5272&255;
$5274 = $5269 ^ $5273;
$5275 = ((9400) + ($5274<<2)|0);
$5276 = HEAP32[$5275>>2]|0;
$5277 = $5245 ^ $5276;
$5278 = $2;
$5279 = ((($5278)) + 30|0);
$5280 = HEAP8[$5279>>0]|0;
$5281 = $5280&255;
$5282 = 117 ^ $5281;
$5283 = (45248 + ($5282)|0);
$5284 = HEAP8[$5283>>0]|0;
$5285 = $5284&255;
$5286 = $2;
$5287 = ((($5286)) + 22|0);
$5288 = HEAP8[$5287>>0]|0;
$5289 = $5288&255;
$5290 = $5285 ^ $5289;
$5291 = (45248 + ($5290)|0);
$5292 = HEAP8[$5291>>0]|0;
$5293 = $5292&255;
$5294 = $2;
$5295 = ((($5294)) + 14|0);
$5296 = HEAP8[$5295>>0]|0;
$5297 = $5296&255;
$5298 = $5293 ^ $5297;
$5299 = (44992 + ($5298)|0);
$5300 = HEAP8[$5299>>0]|0;
$5301 = $5300&255;
$5302 = $2;
$5303 = ((($5302)) + 6|0);
$5304 = HEAP8[$5303>>0]|0;
$5305 = $5304&255;
$5306 = $5301 ^ $5305;
$5307 = ((10424) + ($5306<<2)|0);
$5308 = HEAP32[$5307>>2]|0;
$5309 = $5277 ^ $5308;
$5310 = $2;
$5311 = ((($5310)) + 31|0);
$5312 = HEAP8[$5311>>0]|0;
$5313 = $5312&255;
$5314 = 15 ^ $5313;
$5315 = (45248 + ($5314)|0);
$5316 = HEAP8[$5315>>0]|0;
$5317 = $5316&255;
$5318 = $2;
$5319 = ((($5318)) + 23|0);
$5320 = HEAP8[$5319>>0]|0;
$5321 = $5320&255;
$5322 = $5317 ^ $5321;
$5323 = (44992 + ($5322)|0);
$5324 = HEAP8[$5323>>0]|0;
$5325 = $5324&255;
$5326 = $2;
$5327 = ((($5326)) + 15|0);
$5328 = HEAP8[$5327>>0]|0;
$5329 = $5328&255;
$5330 = $5325 ^ $5329;
$5331 = (44992 + ($5330)|0);
$5332 = HEAP8[$5331>>0]|0;
$5333 = $5332&255;
$5334 = $2;
$5335 = ((($5334)) + 7|0);
$5336 = HEAP8[$5335>>0]|0;
$5337 = $5336&255;
$5338 = $5333 ^ $5337;
$5339 = ((11448) + ($5338<<2)|0);
$5340 = HEAP32[$5339>>2]|0;
$5341 = $5309 ^ $5340;
$y = $5341;
$5342 = $y;
$5343 = $5342 << 8;
$5344 = $y;
$5345 = $5344 >>> 24;
$5346 = (($5343) + ($5345))|0;
$y = $5346;
$5347 = $y;
$5348 = $x;
$5349 = (($5348) + ($5347))|0;
$x = $5349;
$5350 = $x;
$5351 = $y;
$5352 = (($5351) + ($5350))|0;
$y = $5352;
$5353 = $x;
$5354 = $1;
$5355 = ((($5354)) + 4128|0);
$5356 = ((($5355)) + 64|0);
HEAP32[$5356>>2] = $5353;
$5357 = $y;
$5358 = $5357 << 9;
$5359 = $y;
$5360 = $5359 >>> 23;
$5361 = (($5358) + ($5360))|0;
$5362 = $1;
$5363 = ((($5362)) + 4128|0);
$5364 = ((($5363)) + 68|0);
HEAP32[$5364>>2] = $5361;
$5365 = $2;
$5366 = ((($5365)) + 24|0);
$5367 = HEAP8[$5366>>0]|0;
$5368 = $5367&255;
$5369 = 248 ^ $5368;
$5370 = (44992 + ($5369)|0);
$5371 = HEAP8[$5370>>0]|0;
$5372 = $5371&255;
$5373 = $2;
$5374 = ((($5373)) + 16|0);
$5375 = HEAP8[$5374>>0]|0;
$5376 = $5375&255;
$5377 = $5372 ^ $5376;
$5378 = (45248 + ($5377)|0);
$5379 = HEAP8[$5378>>0]|0;
$5380 = $5379&255;
$5381 = $2;
$5382 = ((($5381)) + 8|0);
$5383 = HEAP8[$5382>>0]|0;
$5384 = $5383&255;
$5385 = $5380 ^ $5384;
$5386 = (45248 + ($5385)|0);
$5387 = HEAP8[$5386>>0]|0;
$5388 = $5387&255;
$5389 = $2;
$5390 = HEAP8[$5389>>0]|0;
$5391 = $5390&255;
$5392 = $5388 ^ $5391;
$5393 = (8376 + ($5392<<2)|0);
$5394 = HEAP32[$5393>>2]|0;
$5395 = $2;
$5396 = ((($5395)) + 25|0);
$5397 = HEAP8[$5396>>0]|0;
$5398 = $5397&255;
$5399 = 55 ^ $5398;
$5400 = (44992 + ($5399)|0);
$5401 = HEAP8[$5400>>0]|0;
$5402 = $5401&255;
$5403 = $2;
$5404 = ((($5403)) + 17|0);
$5405 = HEAP8[$5404>>0]|0;
$5406 = $5405&255;
$5407 = $5402 ^ $5406;
$5408 = (44992 + ($5407)|0);
$5409 = HEAP8[$5408>>0]|0;
$5410 = $5409&255;
$5411 = $2;
$5412 = ((($5411)) + 9|0);
$5413 = HEAP8[$5412>>0]|0;
$5414 = $5413&255;
$5415 = $5410 ^ $5414;
$5416 = (45248 + ($5415)|0);
$5417 = HEAP8[$5416>>0]|0;
$5418 = $5417&255;
$5419 = $2;
$5420 = ((($5419)) + 1|0);
$5421 = HEAP8[$5420>>0]|0;
$5422 = $5421&255;
$5423 = $5418 ^ $5422;
$5424 = ((9400) + ($5423<<2)|0);
$5425 = HEAP32[$5424>>2]|0;
$5426 = $5394 ^ $5425;
$5427 = $2;
$5428 = ((($5427)) + 26|0);
$5429 = HEAP8[$5428>>0]|0;
$5430 = $5429&255;
$5431 = 55 ^ $5430;
$5432 = (45248 + ($5431)|0);
$5433 = HEAP8[$5432>>0]|0;
$5434 = $5433&255;
$5435 = $2;
$5436 = ((($5435)) + 18|0);
$5437 = HEAP8[$5436>>0]|0;
$5438 = $5437&255;
$5439 = $5434 ^ $5438;
$5440 = (45248 + ($5439)|0);
$5441 = HEAP8[$5440>>0]|0;
$5442 = $5441&255;
$5443 = $2;
$5444 = ((($5443)) + 10|0);
$5445 = HEAP8[$5444>>0]|0;
$5446 = $5445&255;
$5447 = $5442 ^ $5446;
$5448 = (44992 + ($5447)|0);
$5449 = HEAP8[$5448>>0]|0;
$5450 = $5449&255;
$5451 = $2;
$5452 = ((($5451)) + 2|0);
$5453 = HEAP8[$5452>>0]|0;
$5454 = $5453&255;
$5455 = $5450 ^ $5454;
$5456 = ((10424) + ($5455<<2)|0);
$5457 = HEAP32[$5456>>2]|0;
$5458 = $5426 ^ $5457;
$5459 = $2;
$5460 = ((($5459)) + 27|0);
$5461 = HEAP8[$5460>>0]|0;
$5462 = $5461&255;
$5463 = 248 ^ $5462;
$5464 = (45248 + ($5463)|0);
$5465 = HEAP8[$5464>>0]|0;
$5466 = $5465&255;
$5467 = $2;
$5468 = ((($5467)) + 19|0);
$5469 = HEAP8[$5468>>0]|0;
$5470 = $5469&255;
$5471 = $5466 ^ $5470;
$5472 = (44992 + ($5471)|0);
$5473 = HEAP8[$5472>>0]|0;
$5474 = $5473&255;
$5475 = $2;
$5476 = ((($5475)) + 11|0);
$5477 = HEAP8[$5476>>0]|0;
$5478 = $5477&255;
$5479 = $5474 ^ $5478;
$5480 = (44992 + ($5479)|0);
$5481 = HEAP8[$5480>>0]|0;
$5482 = $5481&255;
$5483 = $2;
$5484 = ((($5483)) + 3|0);
$5485 = HEAP8[$5484>>0]|0;
$5486 = $5485&255;
$5487 = $5482 ^ $5486;
$5488 = ((11448) + ($5487<<2)|0);
$5489 = HEAP32[$5488>>2]|0;
$5490 = $5458 ^ $5489;
$x = $5490;
$5491 = $2;
$5492 = ((($5491)) + 28|0);
$5493 = HEAP8[$5492>>0]|0;
$5494 = $5493&255;
$5495 = 27 ^ $5494;
$5496 = (44992 + ($5495)|0);
$5497 = HEAP8[$5496>>0]|0;
$5498 = $5497&255;
$5499 = $2;
$5500 = ((($5499)) + 20|0);
$5501 = HEAP8[$5500>>0]|0;
$5502 = $5501&255;
$5503 = $5498 ^ $5502;
$5504 = (45248 + ($5503)|0);
$5505 = HEAP8[$5504>>0]|0;
$5506 = $5505&255;
$5507 = $2;
$5508 = ((($5507)) + 12|0);
$5509 = HEAP8[$5508>>0]|0;
$5510 = $5509&255;
$5511 = $5506 ^ $5510;
$5512 = (45248 + ($5511)|0);
$5513 = HEAP8[$5512>>0]|0;
$5514 = $5513&255;
$5515 = $2;
$5516 = ((($5515)) + 4|0);
$5517 = HEAP8[$5516>>0]|0;
$5518 = $5517&255;
$5519 = $5514 ^ $5518;
$5520 = (8376 + ($5519<<2)|0);
$5521 = HEAP32[$5520>>2]|0;
$5522 = $2;
$5523 = ((($5522)) + 29|0);
$5524 = HEAP8[$5523>>0]|0;
$5525 = $5524&255;
$5526 = 38 ^ $5525;
$5527 = (44992 + ($5526)|0);
$5528 = HEAP8[$5527>>0]|0;
$5529 = $5528&255;
$5530 = $2;
$5531 = ((($5530)) + 21|0);
$5532 = HEAP8[$5531>>0]|0;
$5533 = $5532&255;
$5534 = $5529 ^ $5533;
$5535 = (44992 + ($5534)|0);
$5536 = HEAP8[$5535>>0]|0;
$5537 = $5536&255;
$5538 = $2;
$5539 = ((($5538)) + 13|0);
$5540 = HEAP8[$5539>>0]|0;
$5541 = $5540&255;
$5542 = $5537 ^ $5541;
$5543 = (45248 + ($5542)|0);
$5544 = HEAP8[$5543>>0]|0;
$5545 = $5544&255;
$5546 = $2;
$5547 = ((($5546)) + 5|0);
$5548 = HEAP8[$5547>>0]|0;
$5549 = $5548&255;
$5550 = $5545 ^ $5549;
$5551 = ((9400) + ($5550<<2)|0);
$5552 = HEAP32[$5551>>2]|0;
$5553 = $5521 ^ $5552;
$5554 = $2;
$5555 = ((($5554)) + 30|0);
$5556 = HEAP8[$5555>>0]|0;
$5557 = $5556&255;
$5558 = 38 ^ $5557;
$5559 = (45248 + ($5558)|0);
$5560 = HEAP8[$5559>>0]|0;
$5561 = $5560&255;
$5562 = $2;
$5563 = ((($5562)) + 22|0);
$5564 = HEAP8[$5563>>0]|0;
$5565 = $5564&255;
$5566 = $5561 ^ $5565;
$5567 = (45248 + ($5566)|0);
$5568 = HEAP8[$5567>>0]|0;
$5569 = $5568&255;
$5570 = $2;
$5571 = ((($5570)) + 14|0);
$5572 = HEAP8[$5571>>0]|0;
$5573 = $5572&255;
$5574 = $5569 ^ $5573;
$5575 = (44992 + ($5574)|0);
$5576 = HEAP8[$5575>>0]|0;
$5577 = $5576&255;
$5578 = $2;
$5579 = ((($5578)) + 6|0);
$5580 = HEAP8[$5579>>0]|0;
$5581 = $5580&255;
$5582 = $5577 ^ $5581;
$5583 = ((10424) + ($5582<<2)|0);
$5584 = HEAP32[$5583>>2]|0;
$5585 = $5553 ^ $5584;
$5586 = $2;
$5587 = ((($5586)) + 31|0);
$5588 = HEAP8[$5587>>0]|0;
$5589 = $5588&255;
$5590 = 27 ^ $5589;
$5591 = (45248 + ($5590)|0);
$5592 = HEAP8[$5591>>0]|0;
$5593 = $5592&255;
$5594 = $2;
$5595 = ((($5594)) + 23|0);
$5596 = HEAP8[$5595>>0]|0;
$5597 = $5596&255;
$5598 = $5593 ^ $5597;
$5599 = (44992 + ($5598)|0);
$5600 = HEAP8[$5599>>0]|0;
$5601 = $5600&255;
$5602 = $2;
$5603 = ((($5602)) + 15|0);
$5604 = HEAP8[$5603>>0]|0;
$5605 = $5604&255;
$5606 = $5601 ^ $5605;
$5607 = (44992 + ($5606)|0);
$5608 = HEAP8[$5607>>0]|0;
$5609 = $5608&255;
$5610 = $2;
$5611 = ((($5610)) + 7|0);
$5612 = HEAP8[$5611>>0]|0;
$5613 = $5612&255;
$5614 = $5609 ^ $5613;
$5615 = ((11448) + ($5614<<2)|0);
$5616 = HEAP32[$5615>>2]|0;
$5617 = $5585 ^ $5616;
$y = $5617;
$5618 = $y;
$5619 = $5618 << 8;
$5620 = $y;
$5621 = $5620 >>> 24;
$5622 = (($5619) + ($5621))|0;
$y = $5622;
$5623 = $y;
$5624 = $x;
$5625 = (($5624) + ($5623))|0;
$x = $5625;
$5626 = $x;
$5627 = $y;
$5628 = (($5627) + ($5626))|0;
$y = $5628;
$5629 = $x;
$5630 = $1;
$5631 = ((($5630)) + 4128|0);
$5632 = ((($5631)) + 72|0);
HEAP32[$5632>>2] = $5629;
$5633 = $y;
$5634 = $5633 << 9;
$5635 = $y;
$5636 = $5635 >>> 23;
$5637 = (($5634) + ($5636))|0;
$5638 = $1;
$5639 = ((($5638)) + 4128|0);
$5640 = ((($5639)) + 76|0);
HEAP32[$5640>>2] = $5637;
$5641 = $2;
$5642 = ((($5641)) + 24|0);
$5643 = HEAP8[$5642>>0]|0;
$5644 = $5643&255;
$5645 = 135 ^ $5644;
$5646 = (44992 + ($5645)|0);
$5647 = HEAP8[$5646>>0]|0;
$5648 = $5647&255;
$5649 = $2;
$5650 = ((($5649)) + 16|0);
$5651 = HEAP8[$5650>>0]|0;
$5652 = $5651&255;
$5653 = $5648 ^ $5652;
$5654 = (45248 + ($5653)|0);
$5655 = HEAP8[$5654>>0]|0;
$5656 = $5655&255;
$5657 = $2;
$5658 = ((($5657)) + 8|0);
$5659 = HEAP8[$5658>>0]|0;
$5660 = $5659&255;
$5661 = $5656 ^ $5660;
$5662 = (45248 + ($5661)|0);
$5663 = HEAP8[$5662>>0]|0;
$5664 = $5663&255;
$5665 = $2;
$5666 = HEAP8[$5665>>0]|0;
$5667 = $5666&255;
$5668 = $5664 ^ $5667;
$5669 = (8376 + ($5668<<2)|0);
$5670 = HEAP32[$5669>>2]|0;
$5671 = $2;
$5672 = ((($5671)) + 25|0);
$5673 = HEAP8[$5672>>0]|0;
$5674 = $5673&255;
$5675 = 250 ^ $5674;
$5676 = (44992 + ($5675)|0);
$5677 = HEAP8[$5676>>0]|0;
$5678 = $5677&255;
$5679 = $2;
$5680 = ((($5679)) + 17|0);
$5681 = HEAP8[$5680>>0]|0;
$5682 = $5681&255;
$5683 = $5678 ^ $5682;
$5684 = (44992 + ($5683)|0);
$5685 = HEAP8[$5684>>0]|0;
$5686 = $5685&255;
$5687 = $2;
$5688 = ((($5687)) + 9|0);
$5689 = HEAP8[$5688>>0]|0;
$5690 = $5689&255;
$5691 = $5686 ^ $5690;
$5692 = (45248 + ($5691)|0);
$5693 = HEAP8[$5692>>0]|0;
$5694 = $5693&255;
$5695 = $2;
$5696 = ((($5695)) + 1|0);
$5697 = HEAP8[$5696>>0]|0;
$5698 = $5697&255;
$5699 = $5694 ^ $5698;
$5700 = ((9400) + ($5699<<2)|0);
$5701 = HEAP32[$5700>>2]|0;
$5702 = $5670 ^ $5701;
$5703 = $2;
$5704 = ((($5703)) + 26|0);
$5705 = HEAP8[$5704>>0]|0;
$5706 = $5705&255;
$5707 = 250 ^ $5706;
$5708 = (45248 + ($5707)|0);
$5709 = HEAP8[$5708>>0]|0;
$5710 = $5709&255;
$5711 = $2;
$5712 = ((($5711)) + 18|0);
$5713 = HEAP8[$5712>>0]|0;
$5714 = $5713&255;
$5715 = $5710 ^ $5714;
$5716 = (45248 + ($5715)|0);
$5717 = HEAP8[$5716>>0]|0;
$5718 = $5717&255;
$5719 = $2;
$5720 = ((($5719)) + 10|0);
$5721 = HEAP8[$5720>>0]|0;
$5722 = $5721&255;
$5723 = $5718 ^ $5722;
$5724 = (44992 + ($5723)|0);
$5725 = HEAP8[$5724>>0]|0;
$5726 = $5725&255;
$5727 = $2;
$5728 = ((($5727)) + 2|0);
$5729 = HEAP8[$5728>>0]|0;
$5730 = $5729&255;
$5731 = $5726 ^ $5730;
$5732 = ((10424) + ($5731<<2)|0);
$5733 = HEAP32[$5732>>2]|0;
$5734 = $5702 ^ $5733;
$5735 = $2;
$5736 = ((($5735)) + 27|0);
$5737 = HEAP8[$5736>>0]|0;
$5738 = $5737&255;
$5739 = 135 ^ $5738;
$5740 = (45248 + ($5739)|0);
$5741 = HEAP8[$5740>>0]|0;
$5742 = $5741&255;
$5743 = $2;
$5744 = ((($5743)) + 19|0);
$5745 = HEAP8[$5744>>0]|0;
$5746 = $5745&255;
$5747 = $5742 ^ $5746;
$5748 = (44992 + ($5747)|0);
$5749 = HEAP8[$5748>>0]|0;
$5750 = $5749&255;
$5751 = $2;
$5752 = ((($5751)) + 11|0);
$5753 = HEAP8[$5752>>0]|0;
$5754 = $5753&255;
$5755 = $5750 ^ $5754;
$5756 = (44992 + ($5755)|0);
$5757 = HEAP8[$5756>>0]|0;
$5758 = $5757&255;
$5759 = $2;
$5760 = ((($5759)) + 3|0);
$5761 = HEAP8[$5760>>0]|0;
$5762 = $5761&255;
$5763 = $5758 ^ $5762;
$5764 = ((11448) + ($5763<<2)|0);
$5765 = HEAP32[$5764>>2]|0;
$5766 = $5734 ^ $5765;
$x = $5766;
$5767 = $2;
$5768 = ((($5767)) + 28|0);
$5769 = HEAP8[$5768>>0]|0;
$5770 = $5769&255;
$5771 = 250 ^ $5770;
$5772 = (44992 + ($5771)|0);
$5773 = HEAP8[$5772>>0]|0;
$5774 = $5773&255;
$5775 = $2;
$5776 = ((($5775)) + 20|0);
$5777 = HEAP8[$5776>>0]|0;
$5778 = $5777&255;
$5779 = $5774 ^ $5778;
$5780 = (45248 + ($5779)|0);
$5781 = HEAP8[$5780>>0]|0;
$5782 = $5781&255;
$5783 = $2;
$5784 = ((($5783)) + 12|0);
$5785 = HEAP8[$5784>>0]|0;
$5786 = $5785&255;
$5787 = $5782 ^ $5786;
$5788 = (45248 + ($5787)|0);
$5789 = HEAP8[$5788>>0]|0;
$5790 = $5789&255;
$5791 = $2;
$5792 = ((($5791)) + 4|0);
$5793 = HEAP8[$5792>>0]|0;
$5794 = $5793&255;
$5795 = $5790 ^ $5794;
$5796 = (8376 + ($5795<<2)|0);
$5797 = HEAP32[$5796>>2]|0;
$5798 = $2;
$5799 = ((($5798)) + 29|0);
$5800 = HEAP8[$5799>>0]|0;
$5801 = $5800&255;
$5802 = 19 ^ $5801;
$5803 = (44992 + ($5802)|0);
$5804 = HEAP8[$5803>>0]|0;
$5805 = $5804&255;
$5806 = $2;
$5807 = ((($5806)) + 21|0);
$5808 = HEAP8[$5807>>0]|0;
$5809 = $5808&255;
$5810 = $5805 ^ $5809;
$5811 = (44992 + ($5810)|0);
$5812 = HEAP8[$5811>>0]|0;
$5813 = $5812&255;
$5814 = $2;
$5815 = ((($5814)) + 13|0);
$5816 = HEAP8[$5815>>0]|0;
$5817 = $5816&255;
$5818 = $5813 ^ $5817;
$5819 = (45248 + ($5818)|0);
$5820 = HEAP8[$5819>>0]|0;
$5821 = $5820&255;
$5822 = $2;
$5823 = ((($5822)) + 5|0);
$5824 = HEAP8[$5823>>0]|0;
$5825 = $5824&255;
$5826 = $5821 ^ $5825;
$5827 = ((9400) + ($5826<<2)|0);
$5828 = HEAP32[$5827>>2]|0;
$5829 = $5797 ^ $5828;
$5830 = $2;
$5831 = ((($5830)) + 30|0);
$5832 = HEAP8[$5831>>0]|0;
$5833 = $5832&255;
$5834 = 19 ^ $5833;
$5835 = (45248 + ($5834)|0);
$5836 = HEAP8[$5835>>0]|0;
$5837 = $5836&255;
$5838 = $2;
$5839 = ((($5838)) + 22|0);
$5840 = HEAP8[$5839>>0]|0;
$5841 = $5840&255;
$5842 = $5837 ^ $5841;
$5843 = (45248 + ($5842)|0);
$5844 = HEAP8[$5843>>0]|0;
$5845 = $5844&255;
$5846 = $2;
$5847 = ((($5846)) + 14|0);
$5848 = HEAP8[$5847>>0]|0;
$5849 = $5848&255;
$5850 = $5845 ^ $5849;
$5851 = (44992 + ($5850)|0);
$5852 = HEAP8[$5851>>0]|0;
$5853 = $5852&255;
$5854 = $2;
$5855 = ((($5854)) + 6|0);
$5856 = HEAP8[$5855>>0]|0;
$5857 = $5856&255;
$5858 = $5853 ^ $5857;
$5859 = ((10424) + ($5858<<2)|0);
$5860 = HEAP32[$5859>>2]|0;
$5861 = $5829 ^ $5860;
$5862 = $2;
$5863 = ((($5862)) + 31|0);
$5864 = HEAP8[$5863>>0]|0;
$5865 = $5864&255;
$5866 = 250 ^ $5865;
$5867 = (45248 + ($5866)|0);
$5868 = HEAP8[$5867>>0]|0;
$5869 = $5868&255;
$5870 = $2;
$5871 = ((($5870)) + 23|0);
$5872 = HEAP8[$5871>>0]|0;
$5873 = $5872&255;
$5874 = $5869 ^ $5873;
$5875 = (44992 + ($5874)|0);
$5876 = HEAP8[$5875>>0]|0;
$5877 = $5876&255;
$5878 = $2;
$5879 = ((($5878)) + 15|0);
$5880 = HEAP8[$5879>>0]|0;
$5881 = $5880&255;
$5882 = $5877 ^ $5881;
$5883 = (44992 + ($5882)|0);
$5884 = HEAP8[$5883>>0]|0;
$5885 = $5884&255;
$5886 = $2;
$5887 = ((($5886)) + 7|0);
$5888 = HEAP8[$5887>>0]|0;
$5889 = $5888&255;
$5890 = $5885 ^ $5889;
$5891 = ((11448) + ($5890<<2)|0);
$5892 = HEAP32[$5891>>2]|0;
$5893 = $5861 ^ $5892;
$y = $5893;
$5894 = $y;
$5895 = $5894 << 8;
$5896 = $y;
$5897 = $5896 >>> 24;
$5898 = (($5895) + ($5897))|0;
$y = $5898;
$5899 = $y;
$5900 = $x;
$5901 = (($5900) + ($5899))|0;
$x = $5901;
$5902 = $x;
$5903 = $y;
$5904 = (($5903) + ($5902))|0;
$y = $5904;
$5905 = $x;
$5906 = $1;
$5907 = ((($5906)) + 4128|0);
$5908 = ((($5907)) + 80|0);
HEAP32[$5908>>2] = $5905;
$5909 = $y;
$5910 = $5909 << 9;
$5911 = $y;
$5912 = $5911 >>> 23;
$5913 = (($5910) + ($5912))|0;
$5914 = $1;
$5915 = ((($5914)) + 4128|0);
$5916 = ((($5915)) + 84|0);
HEAP32[$5916>>2] = $5913;
$5917 = $2;
$5918 = ((($5917)) + 24|0);
$5919 = HEAP8[$5918>>0]|0;
$5920 = $5919&255;
$5921 = 6 ^ $5920;
$5922 = (44992 + ($5921)|0);
$5923 = HEAP8[$5922>>0]|0;
$5924 = $5923&255;
$5925 = $2;
$5926 = ((($5925)) + 16|0);
$5927 = HEAP8[$5926>>0]|0;
$5928 = $5927&255;
$5929 = $5924 ^ $5928;
$5930 = (45248 + ($5929)|0);
$5931 = HEAP8[$5930>>0]|0;
$5932 = $5931&255;
$5933 = $2;
$5934 = ((($5933)) + 8|0);
$5935 = HEAP8[$5934>>0]|0;
$5936 = $5935&255;
$5937 = $5932 ^ $5936;
$5938 = (45248 + ($5937)|0);
$5939 = HEAP8[$5938>>0]|0;
$5940 = $5939&255;
$5941 = $2;
$5942 = HEAP8[$5941>>0]|0;
$5943 = $5942&255;
$5944 = $5940 ^ $5943;
$5945 = (8376 + ($5944<<2)|0);
$5946 = HEAP32[$5945>>2]|0;
$5947 = $2;
$5948 = ((($5947)) + 25|0);
$5949 = HEAP8[$5948>>0]|0;
$5950 = $5949&255;
$5951 = 148 ^ $5950;
$5952 = (44992 + ($5951)|0);
$5953 = HEAP8[$5952>>0]|0;
$5954 = $5953&255;
$5955 = $2;
$5956 = ((($5955)) + 17|0);
$5957 = HEAP8[$5956>>0]|0;
$5958 = $5957&255;
$5959 = $5954 ^ $5958;
$5960 = (44992 + ($5959)|0);
$5961 = HEAP8[$5960>>0]|0;
$5962 = $5961&255;
$5963 = $2;
$5964 = ((($5963)) + 9|0);
$5965 = HEAP8[$5964>>0]|0;
$5966 = $5965&255;
$5967 = $5962 ^ $5966;
$5968 = (45248 + ($5967)|0);
$5969 = HEAP8[$5968>>0]|0;
$5970 = $5969&255;
$5971 = $2;
$5972 = ((($5971)) + 1|0);
$5973 = HEAP8[$5972>>0]|0;
$5974 = $5973&255;
$5975 = $5970 ^ $5974;
$5976 = ((9400) + ($5975<<2)|0);
$5977 = HEAP32[$5976>>2]|0;
$5978 = $5946 ^ $5977;
$5979 = $2;
$5980 = ((($5979)) + 26|0);
$5981 = HEAP8[$5980>>0]|0;
$5982 = $5981&255;
$5983 = 148 ^ $5982;
$5984 = (45248 + ($5983)|0);
$5985 = HEAP8[$5984>>0]|0;
$5986 = $5985&255;
$5987 = $2;
$5988 = ((($5987)) + 18|0);
$5989 = HEAP8[$5988>>0]|0;
$5990 = $5989&255;
$5991 = $5986 ^ $5990;
$5992 = (45248 + ($5991)|0);
$5993 = HEAP8[$5992>>0]|0;
$5994 = $5993&255;
$5995 = $2;
$5996 = ((($5995)) + 10|0);
$5997 = HEAP8[$5996>>0]|0;
$5998 = $5997&255;
$5999 = $5994 ^ $5998;
$6000 = (44992 + ($5999)|0);
$6001 = HEAP8[$6000>>0]|0;
$6002 = $6001&255;
$6003 = $2;
$6004 = ((($6003)) + 2|0);
$6005 = HEAP8[$6004>>0]|0;
$6006 = $6005&255;
$6007 = $6002 ^ $6006;
$6008 = ((10424) + ($6007<<2)|0);
$6009 = HEAP32[$6008>>2]|0;
$6010 = $5978 ^ $6009;
$6011 = $2;
$6012 = ((($6011)) + 27|0);
$6013 = HEAP8[$6012>>0]|0;
$6014 = $6013&255;
$6015 = 6 ^ $6014;
$6016 = (45248 + ($6015)|0);
$6017 = HEAP8[$6016>>0]|0;
$6018 = $6017&255;
$6019 = $2;
$6020 = ((($6019)) + 19|0);
$6021 = HEAP8[$6020>>0]|0;
$6022 = $6021&255;
$6023 = $6018 ^ $6022;
$6024 = (44992 + ($6023)|0);
$6025 = HEAP8[$6024>>0]|0;
$6026 = $6025&255;
$6027 = $2;
$6028 = ((($6027)) + 11|0);
$6029 = HEAP8[$6028>>0]|0;
$6030 = $6029&255;
$6031 = $6026 ^ $6030;
$6032 = (44992 + ($6031)|0);
$6033 = HEAP8[$6032>>0]|0;
$6034 = $6033&255;
$6035 = $2;
$6036 = ((($6035)) + 3|0);
$6037 = HEAP8[$6036>>0]|0;
$6038 = $6037&255;
$6039 = $6034 ^ $6038;
$6040 = ((11448) + ($6039<<2)|0);
$6041 = HEAP32[$6040>>2]|0;
$6042 = $6010 ^ $6041;
$x = $6042;
$6043 = $2;
$6044 = ((($6043)) + 28|0);
$6045 = HEAP8[$6044>>0]|0;
$6046 = $6045&255;
$6047 = 63 ^ $6046;
$6048 = (44992 + ($6047)|0);
$6049 = HEAP8[$6048>>0]|0;
$6050 = $6049&255;
$6051 = $2;
$6052 = ((($6051)) + 20|0);
$6053 = HEAP8[$6052>>0]|0;
$6054 = $6053&255;
$6055 = $6050 ^ $6054;
$6056 = (45248 + ($6055)|0);
$6057 = HEAP8[$6056>>0]|0;
$6058 = $6057&255;
$6059 = $2;
$6060 = ((($6059)) + 12|0);
$6061 = HEAP8[$6060>>0]|0;
$6062 = $6061&255;
$6063 = $6058 ^ $6062;
$6064 = (45248 + ($6063)|0);
$6065 = HEAP8[$6064>>0]|0;
$6066 = $6065&255;
$6067 = $2;
$6068 = ((($6067)) + 4|0);
$6069 = HEAP8[$6068>>0]|0;
$6070 = $6069&255;
$6071 = $6066 ^ $6070;
$6072 = (8376 + ($6071<<2)|0);
$6073 = HEAP32[$6072>>2]|0;
$6074 = $2;
$6075 = ((($6074)) + 29|0);
$6076 = HEAP8[$6075>>0]|0;
$6077 = $6076&255;
$6078 = 72 ^ $6077;
$6079 = (44992 + ($6078)|0);
$6080 = HEAP8[$6079>>0]|0;
$6081 = $6080&255;
$6082 = $2;
$6083 = ((($6082)) + 21|0);
$6084 = HEAP8[$6083>>0]|0;
$6085 = $6084&255;
$6086 = $6081 ^ $6085;
$6087 = (44992 + ($6086)|0);
$6088 = HEAP8[$6087>>0]|0;
$6089 = $6088&255;
$6090 = $2;
$6091 = ((($6090)) + 13|0);
$6092 = HEAP8[$6091>>0]|0;
$6093 = $6092&255;
$6094 = $6089 ^ $6093;
$6095 = (45248 + ($6094)|0);
$6096 = HEAP8[$6095>>0]|0;
$6097 = $6096&255;
$6098 = $2;
$6099 = ((($6098)) + 5|0);
$6100 = HEAP8[$6099>>0]|0;
$6101 = $6100&255;
$6102 = $6097 ^ $6101;
$6103 = ((9400) + ($6102<<2)|0);
$6104 = HEAP32[$6103>>2]|0;
$6105 = $6073 ^ $6104;
$6106 = $2;
$6107 = ((($6106)) + 30|0);
$6108 = HEAP8[$6107>>0]|0;
$6109 = $6108&255;
$6110 = 72 ^ $6109;
$6111 = (45248 + ($6110)|0);
$6112 = HEAP8[$6111>>0]|0;
$6113 = $6112&255;
$6114 = $2;
$6115 = ((($6114)) + 22|0);
$6116 = HEAP8[$6115>>0]|0;
$6117 = $6116&255;
$6118 = $6113 ^ $6117;
$6119 = (45248 + ($6118)|0);
$6120 = HEAP8[$6119>>0]|0;
$6121 = $6120&255;
$6122 = $2;
$6123 = ((($6122)) + 14|0);
$6124 = HEAP8[$6123>>0]|0;
$6125 = $6124&255;
$6126 = $6121 ^ $6125;
$6127 = (44992 + ($6126)|0);
$6128 = HEAP8[$6127>>0]|0;
$6129 = $6128&255;
$6130 = $2;
$6131 = ((($6130)) + 6|0);
$6132 = HEAP8[$6131>>0]|0;
$6133 = $6132&255;
$6134 = $6129 ^ $6133;
$6135 = ((10424) + ($6134<<2)|0);
$6136 = HEAP32[$6135>>2]|0;
$6137 = $6105 ^ $6136;
$6138 = $2;
$6139 = ((($6138)) + 31|0);
$6140 = HEAP8[$6139>>0]|0;
$6141 = $6140&255;
$6142 = 63 ^ $6141;
$6143 = (45248 + ($6142)|0);
$6144 = HEAP8[$6143>>0]|0;
$6145 = $6144&255;
$6146 = $2;
$6147 = ((($6146)) + 23|0);
$6148 = HEAP8[$6147>>0]|0;
$6149 = $6148&255;
$6150 = $6145 ^ $6149;
$6151 = (44992 + ($6150)|0);
$6152 = HEAP8[$6151>>0]|0;
$6153 = $6152&255;
$6154 = $2;
$6155 = ((($6154)) + 15|0);
$6156 = HEAP8[$6155>>0]|0;
$6157 = $6156&255;
$6158 = $6153 ^ $6157;
$6159 = (44992 + ($6158)|0);
$6160 = HEAP8[$6159>>0]|0;
$6161 = $6160&255;
$6162 = $2;
$6163 = ((($6162)) + 7|0);
$6164 = HEAP8[$6163>>0]|0;
$6165 = $6164&255;
$6166 = $6161 ^ $6165;
$6167 = ((11448) + ($6166<<2)|0);
$6168 = HEAP32[$6167>>2]|0;
$6169 = $6137 ^ $6168;
$y = $6169;
$6170 = $y;
$6171 = $6170 << 8;
$6172 = $y;
$6173 = $6172 >>> 24;
$6174 = (($6171) + ($6173))|0;
$y = $6174;
$6175 = $y;
$6176 = $x;
$6177 = (($6176) + ($6175))|0;
$x = $6177;
$6178 = $x;
$6179 = $y;
$6180 = (($6179) + ($6178))|0;
$y = $6180;
$6181 = $x;
$6182 = $1;
$6183 = ((($6182)) + 4128|0);
$6184 = ((($6183)) + 88|0);
HEAP32[$6184>>2] = $6181;
$6185 = $y;
$6186 = $6185 << 9;
$6187 = $y;
$6188 = $6187 >>> 23;
$6189 = (($6186) + ($6188))|0;
$6190 = $1;
$6191 = ((($6190)) + 4128|0);
$6192 = ((($6191)) + 92|0);
HEAP32[$6192>>2] = $6189;
$6193 = $2;
$6194 = ((($6193)) + 24|0);
$6195 = HEAP8[$6194>>0]|0;
$6196 = $6195&255;
$6197 = 94 ^ $6196;
$6198 = (44992 + ($6197)|0);
$6199 = HEAP8[$6198>>0]|0;
$6200 = $6199&255;
$6201 = $2;
$6202 = ((($6201)) + 16|0);
$6203 = HEAP8[$6202>>0]|0;
$6204 = $6203&255;
$6205 = $6200 ^ $6204;
$6206 = (45248 + ($6205)|0);
$6207 = HEAP8[$6206>>0]|0;
$6208 = $6207&255;
$6209 = $2;
$6210 = ((($6209)) + 8|0);
$6211 = HEAP8[$6210>>0]|0;
$6212 = $6211&255;
$6213 = $6208 ^ $6212;
$6214 = (45248 + ($6213)|0);
$6215 = HEAP8[$6214>>0]|0;
$6216 = $6215&255;
$6217 = $2;
$6218 = HEAP8[$6217>>0]|0;
$6219 = $6218&255;
$6220 = $6216 ^ $6219;
$6221 = (8376 + ($6220<<2)|0);
$6222 = HEAP32[$6221>>2]|0;
$6223 = $2;
$6224 = ((($6223)) + 25|0);
$6225 = HEAP8[$6224>>0]|0;
$6226 = $6225&255;
$6227 = 242 ^ $6226;
$6228 = (44992 + ($6227)|0);
$6229 = HEAP8[$6228>>0]|0;
$6230 = $6229&255;
$6231 = $2;
$6232 = ((($6231)) + 17|0);
$6233 = HEAP8[$6232>>0]|0;
$6234 = $6233&255;
$6235 = $6230 ^ $6234;
$6236 = (44992 + ($6235)|0);
$6237 = HEAP8[$6236>>0]|0;
$6238 = $6237&255;
$6239 = $2;
$6240 = ((($6239)) + 9|0);
$6241 = HEAP8[$6240>>0]|0;
$6242 = $6241&255;
$6243 = $6238 ^ $6242;
$6244 = (45248 + ($6243)|0);
$6245 = HEAP8[$6244>>0]|0;
$6246 = $6245&255;
$6247 = $2;
$6248 = ((($6247)) + 1|0);
$6249 = HEAP8[$6248>>0]|0;
$6250 = $6249&255;
$6251 = $6246 ^ $6250;
$6252 = ((9400) + ($6251<<2)|0);
$6253 = HEAP32[$6252>>2]|0;
$6254 = $6222 ^ $6253;
$6255 = $2;
$6256 = ((($6255)) + 26|0);
$6257 = HEAP8[$6256>>0]|0;
$6258 = $6257&255;
$6259 = 242 ^ $6258;
$6260 = (45248 + ($6259)|0);
$6261 = HEAP8[$6260>>0]|0;
$6262 = $6261&255;
$6263 = $2;
$6264 = ((($6263)) + 18|0);
$6265 = HEAP8[$6264>>0]|0;
$6266 = $6265&255;
$6267 = $6262 ^ $6266;
$6268 = (45248 + ($6267)|0);
$6269 = HEAP8[$6268>>0]|0;
$6270 = $6269&255;
$6271 = $2;
$6272 = ((($6271)) + 10|0);
$6273 = HEAP8[$6272>>0]|0;
$6274 = $6273&255;
$6275 = $6270 ^ $6274;
$6276 = (44992 + ($6275)|0);
$6277 = HEAP8[$6276>>0]|0;
$6278 = $6277&255;
$6279 = $2;
$6280 = ((($6279)) + 2|0);
$6281 = HEAP8[$6280>>0]|0;
$6282 = $6281&255;
$6283 = $6278 ^ $6282;
$6284 = ((10424) + ($6283<<2)|0);
$6285 = HEAP32[$6284>>2]|0;
$6286 = $6254 ^ $6285;
$6287 = $2;
$6288 = ((($6287)) + 27|0);
$6289 = HEAP8[$6288>>0]|0;
$6290 = $6289&255;
$6291 = 94 ^ $6290;
$6292 = (45248 + ($6291)|0);
$6293 = HEAP8[$6292>>0]|0;
$6294 = $6293&255;
$6295 = $2;
$6296 = ((($6295)) + 19|0);
$6297 = HEAP8[$6296>>0]|0;
$6298 = $6297&255;
$6299 = $6294 ^ $6298;
$6300 = (44992 + ($6299)|0);
$6301 = HEAP8[$6300>>0]|0;
$6302 = $6301&255;
$6303 = $2;
$6304 = ((($6303)) + 11|0);
$6305 = HEAP8[$6304>>0]|0;
$6306 = $6305&255;
$6307 = $6302 ^ $6306;
$6308 = (44992 + ($6307)|0);
$6309 = HEAP8[$6308>>0]|0;
$6310 = $6309&255;
$6311 = $2;
$6312 = ((($6311)) + 3|0);
$6313 = HEAP8[$6312>>0]|0;
$6314 = $6313&255;
$6315 = $6310 ^ $6314;
$6316 = ((11448) + ($6315<<2)|0);
$6317 = HEAP32[$6316>>2]|0;
$6318 = $6286 ^ $6317;
$x = $6318;
$6319 = $2;
$6320 = ((($6319)) + 28|0);
$6321 = HEAP8[$6320>>0]|0;
$6322 = $6321&255;
$6323 = 186 ^ $6322;
$6324 = (44992 + ($6323)|0);
$6325 = HEAP8[$6324>>0]|0;
$6326 = $6325&255;
$6327 = $2;
$6328 = ((($6327)) + 20|0);
$6329 = HEAP8[$6328>>0]|0;
$6330 = $6329&255;
$6331 = $6326 ^ $6330;
$6332 = (45248 + ($6331)|0);
$6333 = HEAP8[$6332>>0]|0;
$6334 = $6333&255;
$6335 = $2;
$6336 = ((($6335)) + 12|0);
$6337 = HEAP8[$6336>>0]|0;
$6338 = $6337&255;
$6339 = $6334 ^ $6338;
$6340 = (45248 + ($6339)|0);
$6341 = HEAP8[$6340>>0]|0;
$6342 = $6341&255;
$6343 = $2;
$6344 = ((($6343)) + 4|0);
$6345 = HEAP8[$6344>>0]|0;
$6346 = $6345&255;
$6347 = $6342 ^ $6346;
$6348 = (8376 + ($6347<<2)|0);
$6349 = HEAP32[$6348>>2]|0;
$6350 = $2;
$6351 = ((($6350)) + 29|0);
$6352 = HEAP8[$6351>>0]|0;
$6353 = $6352&255;
$6354 = 208 ^ $6353;
$6355 = (44992 + ($6354)|0);
$6356 = HEAP8[$6355>>0]|0;
$6357 = $6356&255;
$6358 = $2;
$6359 = ((($6358)) + 21|0);
$6360 = HEAP8[$6359>>0]|0;
$6361 = $6360&255;
$6362 = $6357 ^ $6361;
$6363 = (44992 + ($6362)|0);
$6364 = HEAP8[$6363>>0]|0;
$6365 = $6364&255;
$6366 = $2;
$6367 = ((($6366)) + 13|0);
$6368 = HEAP8[$6367>>0]|0;
$6369 = $6368&255;
$6370 = $6365 ^ $6369;
$6371 = (45248 + ($6370)|0);
$6372 = HEAP8[$6371>>0]|0;
$6373 = $6372&255;
$6374 = $2;
$6375 = ((($6374)) + 5|0);
$6376 = HEAP8[$6375>>0]|0;
$6377 = $6376&255;
$6378 = $6373 ^ $6377;
$6379 = ((9400) + ($6378<<2)|0);
$6380 = HEAP32[$6379>>2]|0;
$6381 = $6349 ^ $6380;
$6382 = $2;
$6383 = ((($6382)) + 30|0);
$6384 = HEAP8[$6383>>0]|0;
$6385 = $6384&255;
$6386 = 208 ^ $6385;
$6387 = (45248 + ($6386)|0);
$6388 = HEAP8[$6387>>0]|0;
$6389 = $6388&255;
$6390 = $2;
$6391 = ((($6390)) + 22|0);
$6392 = HEAP8[$6391>>0]|0;
$6393 = $6392&255;
$6394 = $6389 ^ $6393;
$6395 = (45248 + ($6394)|0);
$6396 = HEAP8[$6395>>0]|0;
$6397 = $6396&255;
$6398 = $2;
$6399 = ((($6398)) + 14|0);
$6400 = HEAP8[$6399>>0]|0;
$6401 = $6400&255;
$6402 = $6397 ^ $6401;
$6403 = (44992 + ($6402)|0);
$6404 = HEAP8[$6403>>0]|0;
$6405 = $6404&255;
$6406 = $2;
$6407 = ((($6406)) + 6|0);
$6408 = HEAP8[$6407>>0]|0;
$6409 = $6408&255;
$6410 = $6405 ^ $6409;
$6411 = ((10424) + ($6410<<2)|0);
$6412 = HEAP32[$6411>>2]|0;
$6413 = $6381 ^ $6412;
$6414 = $2;
$6415 = ((($6414)) + 31|0);
$6416 = HEAP8[$6415>>0]|0;
$6417 = $6416&255;
$6418 = 186 ^ $6417;
$6419 = (45248 + ($6418)|0);
$6420 = HEAP8[$6419>>0]|0;
$6421 = $6420&255;
$6422 = $2;
$6423 = ((($6422)) + 23|0);
$6424 = HEAP8[$6423>>0]|0;
$6425 = $6424&255;
$6426 = $6421 ^ $6425;
$6427 = (44992 + ($6426)|0);
$6428 = HEAP8[$6427>>0]|0;
$6429 = $6428&255;
$6430 = $2;
$6431 = ((($6430)) + 15|0);
$6432 = HEAP8[$6431>>0]|0;
$6433 = $6432&255;
$6434 = $6429 ^ $6433;
$6435 = (44992 + ($6434)|0);
$6436 = HEAP8[$6435>>0]|0;
$6437 = $6436&255;
$6438 = $2;
$6439 = ((($6438)) + 7|0);
$6440 = HEAP8[$6439>>0]|0;
$6441 = $6440&255;
$6442 = $6437 ^ $6441;
$6443 = ((11448) + ($6442<<2)|0);
$6444 = HEAP32[$6443>>2]|0;
$6445 = $6413 ^ $6444;
$y = $6445;
$6446 = $y;
$6447 = $6446 << 8;
$6448 = $y;
$6449 = $6448 >>> 24;
$6450 = (($6447) + ($6449))|0;
$y = $6450;
$6451 = $y;
$6452 = $x;
$6453 = (($6452) + ($6451))|0;
$x = $6453;
$6454 = $x;
$6455 = $y;
$6456 = (($6455) + ($6454))|0;
$y = $6456;
$6457 = $x;
$6458 = $1;
$6459 = ((($6458)) + 4128|0);
$6460 = ((($6459)) + 96|0);
HEAP32[$6460>>2] = $6457;
$6461 = $y;
$6462 = $6461 << 9;
$6463 = $y;
$6464 = $6463 >>> 23;
$6465 = (($6462) + ($6464))|0;
$6466 = $1;
$6467 = ((($6466)) + 4128|0);
$6468 = ((($6467)) + 100|0);
HEAP32[$6468>>2] = $6465;
$6469 = $2;
$6470 = ((($6469)) + 24|0);
$6471 = HEAP8[$6470>>0]|0;
$6472 = $6471&255;
$6473 = 174 ^ $6472;
$6474 = (44992 + ($6473)|0);
$6475 = HEAP8[$6474>>0]|0;
$6476 = $6475&255;
$6477 = $2;
$6478 = ((($6477)) + 16|0);
$6479 = HEAP8[$6478>>0]|0;
$6480 = $6479&255;
$6481 = $6476 ^ $6480;
$6482 = (45248 + ($6481)|0);
$6483 = HEAP8[$6482>>0]|0;
$6484 = $6483&255;
$6485 = $2;
$6486 = ((($6485)) + 8|0);
$6487 = HEAP8[$6486>>0]|0;
$6488 = $6487&255;
$6489 = $6484 ^ $6488;
$6490 = (45248 + ($6489)|0);
$6491 = HEAP8[$6490>>0]|0;
$6492 = $6491&255;
$6493 = $2;
$6494 = HEAP8[$6493>>0]|0;
$6495 = $6494&255;
$6496 = $6492 ^ $6495;
$6497 = (8376 + ($6496<<2)|0);
$6498 = HEAP32[$6497>>2]|0;
$6499 = $2;
$6500 = ((($6499)) + 25|0);
$6501 = HEAP8[$6500>>0]|0;
$6502 = $6501&255;
$6503 = 139 ^ $6502;
$6504 = (44992 + ($6503)|0);
$6505 = HEAP8[$6504>>0]|0;
$6506 = $6505&255;
$6507 = $2;
$6508 = ((($6507)) + 17|0);
$6509 = HEAP8[$6508>>0]|0;
$6510 = $6509&255;
$6511 = $6506 ^ $6510;
$6512 = (44992 + ($6511)|0);
$6513 = HEAP8[$6512>>0]|0;
$6514 = $6513&255;
$6515 = $2;
$6516 = ((($6515)) + 9|0);
$6517 = HEAP8[$6516>>0]|0;
$6518 = $6517&255;
$6519 = $6514 ^ $6518;
$6520 = (45248 + ($6519)|0);
$6521 = HEAP8[$6520>>0]|0;
$6522 = $6521&255;
$6523 = $2;
$6524 = ((($6523)) + 1|0);
$6525 = HEAP8[$6524>>0]|0;
$6526 = $6525&255;
$6527 = $6522 ^ $6526;
$6528 = ((9400) + ($6527<<2)|0);
$6529 = HEAP32[$6528>>2]|0;
$6530 = $6498 ^ $6529;
$6531 = $2;
$6532 = ((($6531)) + 26|0);
$6533 = HEAP8[$6532>>0]|0;
$6534 = $6533&255;
$6535 = 139 ^ $6534;
$6536 = (45248 + ($6535)|0);
$6537 = HEAP8[$6536>>0]|0;
$6538 = $6537&255;
$6539 = $2;
$6540 = ((($6539)) + 18|0);
$6541 = HEAP8[$6540>>0]|0;
$6542 = $6541&255;
$6543 = $6538 ^ $6542;
$6544 = (45248 + ($6543)|0);
$6545 = HEAP8[$6544>>0]|0;
$6546 = $6545&255;
$6547 = $2;
$6548 = ((($6547)) + 10|0);
$6549 = HEAP8[$6548>>0]|0;
$6550 = $6549&255;
$6551 = $6546 ^ $6550;
$6552 = (44992 + ($6551)|0);
$6553 = HEAP8[$6552>>0]|0;
$6554 = $6553&255;
$6555 = $2;
$6556 = ((($6555)) + 2|0);
$6557 = HEAP8[$6556>>0]|0;
$6558 = $6557&255;
$6559 = $6554 ^ $6558;
$6560 = ((10424) + ($6559<<2)|0);
$6561 = HEAP32[$6560>>2]|0;
$6562 = $6530 ^ $6561;
$6563 = $2;
$6564 = ((($6563)) + 27|0);
$6565 = HEAP8[$6564>>0]|0;
$6566 = $6565&255;
$6567 = 174 ^ $6566;
$6568 = (45248 + ($6567)|0);
$6569 = HEAP8[$6568>>0]|0;
$6570 = $6569&255;
$6571 = $2;
$6572 = ((($6571)) + 19|0);
$6573 = HEAP8[$6572>>0]|0;
$6574 = $6573&255;
$6575 = $6570 ^ $6574;
$6576 = (44992 + ($6575)|0);
$6577 = HEAP8[$6576>>0]|0;
$6578 = $6577&255;
$6579 = $2;
$6580 = ((($6579)) + 11|0);
$6581 = HEAP8[$6580>>0]|0;
$6582 = $6581&255;
$6583 = $6578 ^ $6582;
$6584 = (44992 + ($6583)|0);
$6585 = HEAP8[$6584>>0]|0;
$6586 = $6585&255;
$6587 = $2;
$6588 = ((($6587)) + 3|0);
$6589 = HEAP8[$6588>>0]|0;
$6590 = $6589&255;
$6591 = $6586 ^ $6590;
$6592 = ((11448) + ($6591<<2)|0);
$6593 = HEAP32[$6592>>2]|0;
$6594 = $6562 ^ $6593;
$x = $6594;
$6595 = $2;
$6596 = ((($6595)) + 28|0);
$6597 = HEAP8[$6596>>0]|0;
$6598 = $6597&255;
$6599 = 91 ^ $6598;
$6600 = (44992 + ($6599)|0);
$6601 = HEAP8[$6600>>0]|0;
$6602 = $6601&255;
$6603 = $2;
$6604 = ((($6603)) + 20|0);
$6605 = HEAP8[$6604>>0]|0;
$6606 = $6605&255;
$6607 = $6602 ^ $6606;
$6608 = (45248 + ($6607)|0);
$6609 = HEAP8[$6608>>0]|0;
$6610 = $6609&255;
$6611 = $2;
$6612 = ((($6611)) + 12|0);
$6613 = HEAP8[$6612>>0]|0;
$6614 = $6613&255;
$6615 = $6610 ^ $6614;
$6616 = (45248 + ($6615)|0);
$6617 = HEAP8[$6616>>0]|0;
$6618 = $6617&255;
$6619 = $2;
$6620 = ((($6619)) + 4|0);
$6621 = HEAP8[$6620>>0]|0;
$6622 = $6621&255;
$6623 = $6618 ^ $6622;
$6624 = (8376 + ($6623<<2)|0);
$6625 = HEAP32[$6624>>2]|0;
$6626 = $2;
$6627 = ((($6626)) + 29|0);
$6628 = HEAP8[$6627>>0]|0;
$6629 = $6628&255;
$6630 = 48 ^ $6629;
$6631 = (44992 + ($6630)|0);
$6632 = HEAP8[$6631>>0]|0;
$6633 = $6632&255;
$6634 = $2;
$6635 = ((($6634)) + 21|0);
$6636 = HEAP8[$6635>>0]|0;
$6637 = $6636&255;
$6638 = $6633 ^ $6637;
$6639 = (44992 + ($6638)|0);
$6640 = HEAP8[$6639>>0]|0;
$6641 = $6640&255;
$6642 = $2;
$6643 = ((($6642)) + 13|0);
$6644 = HEAP8[$6643>>0]|0;
$6645 = $6644&255;
$6646 = $6641 ^ $6645;
$6647 = (45248 + ($6646)|0);
$6648 = HEAP8[$6647>>0]|0;
$6649 = $6648&255;
$6650 = $2;
$6651 = ((($6650)) + 5|0);
$6652 = HEAP8[$6651>>0]|0;
$6653 = $6652&255;
$6654 = $6649 ^ $6653;
$6655 = ((9400) + ($6654<<2)|0);
$6656 = HEAP32[$6655>>2]|0;
$6657 = $6625 ^ $6656;
$6658 = $2;
$6659 = ((($6658)) + 30|0);
$6660 = HEAP8[$6659>>0]|0;
$6661 = $6660&255;
$6662 = 48 ^ $6661;
$6663 = (45248 + ($6662)|0);
$6664 = HEAP8[$6663>>0]|0;
$6665 = $6664&255;
$6666 = $2;
$6667 = ((($6666)) + 22|0);
$6668 = HEAP8[$6667>>0]|0;
$6669 = $6668&255;
$6670 = $6665 ^ $6669;
$6671 = (45248 + ($6670)|0);
$6672 = HEAP8[$6671>>0]|0;
$6673 = $6672&255;
$6674 = $2;
$6675 = ((($6674)) + 14|0);
$6676 = HEAP8[$6675>>0]|0;
$6677 = $6676&255;
$6678 = $6673 ^ $6677;
$6679 = (44992 + ($6678)|0);
$6680 = HEAP8[$6679>>0]|0;
$6681 = $6680&255;
$6682 = $2;
$6683 = ((($6682)) + 6|0);
$6684 = HEAP8[$6683>>0]|0;
$6685 = $6684&255;
$6686 = $6681 ^ $6685;
$6687 = ((10424) + ($6686<<2)|0);
$6688 = HEAP32[$6687>>2]|0;
$6689 = $6657 ^ $6688;
$6690 = $2;
$6691 = ((($6690)) + 31|0);
$6692 = HEAP8[$6691>>0]|0;
$6693 = $6692&255;
$6694 = 91 ^ $6693;
$6695 = (45248 + ($6694)|0);
$6696 = HEAP8[$6695>>0]|0;
$6697 = $6696&255;
$6698 = $2;
$6699 = ((($6698)) + 23|0);
$6700 = HEAP8[$6699>>0]|0;
$6701 = $6700&255;
$6702 = $6697 ^ $6701;
$6703 = (44992 + ($6702)|0);
$6704 = HEAP8[$6703>>0]|0;
$6705 = $6704&255;
$6706 = $2;
$6707 = ((($6706)) + 15|0);
$6708 = HEAP8[$6707>>0]|0;
$6709 = $6708&255;
$6710 = $6705 ^ $6709;
$6711 = (44992 + ($6710)|0);
$6712 = HEAP8[$6711>>0]|0;
$6713 = $6712&255;
$6714 = $2;
$6715 = ((($6714)) + 7|0);
$6716 = HEAP8[$6715>>0]|0;
$6717 = $6716&255;
$6718 = $6713 ^ $6717;
$6719 = ((11448) + ($6718<<2)|0);
$6720 = HEAP32[$6719>>2]|0;
$6721 = $6689 ^ $6720;
$y = $6721;
$6722 = $y;
$6723 = $6722 << 8;
$6724 = $y;
$6725 = $6724 >>> 24;
$6726 = (($6723) + ($6725))|0;
$y = $6726;
$6727 = $y;
$6728 = $x;
$6729 = (($6728) + ($6727))|0;
$x = $6729;
$6730 = $x;
$6731 = $y;
$6732 = (($6731) + ($6730))|0;
$y = $6732;
$6733 = $x;
$6734 = $1;
$6735 = ((($6734)) + 4128|0);
$6736 = ((($6735)) + 104|0);
HEAP32[$6736>>2] = $6733;
$6737 = $y;
$6738 = $6737 << 9;
$6739 = $y;
$6740 = $6739 >>> 23;
$6741 = (($6738) + ($6740))|0;
$6742 = $1;
$6743 = ((($6742)) + 4128|0);
$6744 = ((($6743)) + 108|0);
HEAP32[$6744>>2] = $6741;
$6745 = $2;
$6746 = ((($6745)) + 24|0);
$6747 = HEAP8[$6746>>0]|0;
$6748 = $6747&255;
$6749 = 138 ^ $6748;
$6750 = (44992 + ($6749)|0);
$6751 = HEAP8[$6750>>0]|0;
$6752 = $6751&255;
$6753 = $2;
$6754 = ((($6753)) + 16|0);
$6755 = HEAP8[$6754>>0]|0;
$6756 = $6755&255;
$6757 = $6752 ^ $6756;
$6758 = (45248 + ($6757)|0);
$6759 = HEAP8[$6758>>0]|0;
$6760 = $6759&255;
$6761 = $2;
$6762 = ((($6761)) + 8|0);
$6763 = HEAP8[$6762>>0]|0;
$6764 = $6763&255;
$6765 = $6760 ^ $6764;
$6766 = (45248 + ($6765)|0);
$6767 = HEAP8[$6766>>0]|0;
$6768 = $6767&255;
$6769 = $2;
$6770 = HEAP8[$6769>>0]|0;
$6771 = $6770&255;
$6772 = $6768 ^ $6771;
$6773 = (8376 + ($6772<<2)|0);
$6774 = HEAP32[$6773>>2]|0;
$6775 = $2;
$6776 = ((($6775)) + 25|0);
$6777 = HEAP8[$6776>>0]|0;
$6778 = $6777&255;
$6779 = 132 ^ $6778;
$6780 = (44992 + ($6779)|0);
$6781 = HEAP8[$6780>>0]|0;
$6782 = $6781&255;
$6783 = $2;
$6784 = ((($6783)) + 17|0);
$6785 = HEAP8[$6784>>0]|0;
$6786 = $6785&255;
$6787 = $6782 ^ $6786;
$6788 = (44992 + ($6787)|0);
$6789 = HEAP8[$6788>>0]|0;
$6790 = $6789&255;
$6791 = $2;
$6792 = ((($6791)) + 9|0);
$6793 = HEAP8[$6792>>0]|0;
$6794 = $6793&255;
$6795 = $6790 ^ $6794;
$6796 = (45248 + ($6795)|0);
$6797 = HEAP8[$6796>>0]|0;
$6798 = $6797&255;
$6799 = $2;
$6800 = ((($6799)) + 1|0);
$6801 = HEAP8[$6800>>0]|0;
$6802 = $6801&255;
$6803 = $6798 ^ $6802;
$6804 = ((9400) + ($6803<<2)|0);
$6805 = HEAP32[$6804>>2]|0;
$6806 = $6774 ^ $6805;
$6807 = $2;
$6808 = ((($6807)) + 26|0);
$6809 = HEAP8[$6808>>0]|0;
$6810 = $6809&255;
$6811 = 132 ^ $6810;
$6812 = (45248 + ($6811)|0);
$6813 = HEAP8[$6812>>0]|0;
$6814 = $6813&255;
$6815 = $2;
$6816 = ((($6815)) + 18|0);
$6817 = HEAP8[$6816>>0]|0;
$6818 = $6817&255;
$6819 = $6814 ^ $6818;
$6820 = (45248 + ($6819)|0);
$6821 = HEAP8[$6820>>0]|0;
$6822 = $6821&255;
$6823 = $2;
$6824 = ((($6823)) + 10|0);
$6825 = HEAP8[$6824>>0]|0;
$6826 = $6825&255;
$6827 = $6822 ^ $6826;
$6828 = (44992 + ($6827)|0);
$6829 = HEAP8[$6828>>0]|0;
$6830 = $6829&255;
$6831 = $2;
$6832 = ((($6831)) + 2|0);
$6833 = HEAP8[$6832>>0]|0;
$6834 = $6833&255;
$6835 = $6830 ^ $6834;
$6836 = ((10424) + ($6835<<2)|0);
$6837 = HEAP32[$6836>>2]|0;
$6838 = $6806 ^ $6837;
$6839 = $2;
$6840 = ((($6839)) + 27|0);
$6841 = HEAP8[$6840>>0]|0;
$6842 = $6841&255;
$6843 = 138 ^ $6842;
$6844 = (45248 + ($6843)|0);
$6845 = HEAP8[$6844>>0]|0;
$6846 = $6845&255;
$6847 = $2;
$6848 = ((($6847)) + 19|0);
$6849 = HEAP8[$6848>>0]|0;
$6850 = $6849&255;
$6851 = $6846 ^ $6850;
$6852 = (44992 + ($6851)|0);
$6853 = HEAP8[$6852>>0]|0;
$6854 = $6853&255;
$6855 = $2;
$6856 = ((($6855)) + 11|0);
$6857 = HEAP8[$6856>>0]|0;
$6858 = $6857&255;
$6859 = $6854 ^ $6858;
$6860 = (44992 + ($6859)|0);
$6861 = HEAP8[$6860>>0]|0;
$6862 = $6861&255;
$6863 = $2;
$6864 = ((($6863)) + 3|0);
$6865 = HEAP8[$6864>>0]|0;
$6866 = $6865&255;
$6867 = $6862 ^ $6866;
$6868 = ((11448) + ($6867<<2)|0);
$6869 = HEAP32[$6868>>2]|0;
$6870 = $6838 ^ $6869;
$x = $6870;
$6871 = $2;
$6872 = ((($6871)) + 28|0);
$6873 = HEAP8[$6872>>0]|0;
$6874 = $6873&255;
$6875 = 0 ^ $6874;
$6876 = (44992 + ($6875)|0);
$6877 = HEAP8[$6876>>0]|0;
$6878 = $6877&255;
$6879 = $2;
$6880 = ((($6879)) + 20|0);
$6881 = HEAP8[$6880>>0]|0;
$6882 = $6881&255;
$6883 = $6878 ^ $6882;
$6884 = (45248 + ($6883)|0);
$6885 = HEAP8[$6884>>0]|0;
$6886 = $6885&255;
$6887 = $2;
$6888 = ((($6887)) + 12|0);
$6889 = HEAP8[$6888>>0]|0;
$6890 = $6889&255;
$6891 = $6886 ^ $6890;
$6892 = (45248 + ($6891)|0);
$6893 = HEAP8[$6892>>0]|0;
$6894 = $6893&255;
$6895 = $2;
$6896 = ((($6895)) + 4|0);
$6897 = HEAP8[$6896>>0]|0;
$6898 = $6897&255;
$6899 = $6894 ^ $6898;
$6900 = (8376 + ($6899<<2)|0);
$6901 = HEAP32[$6900>>2]|0;
$6902 = $2;
$6903 = ((($6902)) + 29|0);
$6904 = HEAP8[$6903>>0]|0;
$6905 = $6904&255;
$6906 = 84 ^ $6905;
$6907 = (44992 + ($6906)|0);
$6908 = HEAP8[$6907>>0]|0;
$6909 = $6908&255;
$6910 = $2;
$6911 = ((($6910)) + 21|0);
$6912 = HEAP8[$6911>>0]|0;
$6913 = $6912&255;
$6914 = $6909 ^ $6913;
$6915 = (44992 + ($6914)|0);
$6916 = HEAP8[$6915>>0]|0;
$6917 = $6916&255;
$6918 = $2;
$6919 = ((($6918)) + 13|0);
$6920 = HEAP8[$6919>>0]|0;
$6921 = $6920&255;
$6922 = $6917 ^ $6921;
$6923 = (45248 + ($6922)|0);
$6924 = HEAP8[$6923>>0]|0;
$6925 = $6924&255;
$6926 = $2;
$6927 = ((($6926)) + 5|0);
$6928 = HEAP8[$6927>>0]|0;
$6929 = $6928&255;
$6930 = $6925 ^ $6929;
$6931 = ((9400) + ($6930<<2)|0);
$6932 = HEAP32[$6931>>2]|0;
$6933 = $6901 ^ $6932;
$6934 = $2;
$6935 = ((($6934)) + 30|0);
$6936 = HEAP8[$6935>>0]|0;
$6937 = $6936&255;
$6938 = 84 ^ $6937;
$6939 = (45248 + ($6938)|0);
$6940 = HEAP8[$6939>>0]|0;
$6941 = $6940&255;
$6942 = $2;
$6943 = ((($6942)) + 22|0);
$6944 = HEAP8[$6943>>0]|0;
$6945 = $6944&255;
$6946 = $6941 ^ $6945;
$6947 = (45248 + ($6946)|0);
$6948 = HEAP8[$6947>>0]|0;
$6949 = $6948&255;
$6950 = $2;
$6951 = ((($6950)) + 14|0);
$6952 = HEAP8[$6951>>0]|0;
$6953 = $6952&255;
$6954 = $6949 ^ $6953;
$6955 = (44992 + ($6954)|0);
$6956 = HEAP8[$6955>>0]|0;
$6957 = $6956&255;
$6958 = $2;
$6959 = ((($6958)) + 6|0);
$6960 = HEAP8[$6959>>0]|0;
$6961 = $6960&255;
$6962 = $6957 ^ $6961;
$6963 = ((10424) + ($6962<<2)|0);
$6964 = HEAP32[$6963>>2]|0;
$6965 = $6933 ^ $6964;
$6966 = $2;
$6967 = ((($6966)) + 31|0);
$6968 = HEAP8[$6967>>0]|0;
$6969 = $6968&255;
$6970 = 0 ^ $6969;
$6971 = (45248 + ($6970)|0);
$6972 = HEAP8[$6971>>0]|0;
$6973 = $6972&255;
$6974 = $2;
$6975 = ((($6974)) + 23|0);
$6976 = HEAP8[$6975>>0]|0;
$6977 = $6976&255;
$6978 = $6973 ^ $6977;
$6979 = (44992 + ($6978)|0);
$6980 = HEAP8[$6979>>0]|0;
$6981 = $6980&255;
$6982 = $2;
$6983 = ((($6982)) + 15|0);
$6984 = HEAP8[$6983>>0]|0;
$6985 = $6984&255;
$6986 = $6981 ^ $6985;
$6987 = (44992 + ($6986)|0);
$6988 = HEAP8[$6987>>0]|0;
$6989 = $6988&255;
$6990 = $2;
$6991 = ((($6990)) + 7|0);
$6992 = HEAP8[$6991>>0]|0;
$6993 = $6992&255;
$6994 = $6989 ^ $6993;
$6995 = ((11448) + ($6994<<2)|0);
$6996 = HEAP32[$6995>>2]|0;
$6997 = $6965 ^ $6996;
$y = $6997;
$6998 = $y;
$6999 = $6998 << 8;
$7000 = $y;
$7001 = $7000 >>> 24;
$7002 = (($6999) + ($7001))|0;
$y = $7002;
$7003 = $y;
$7004 = $x;
$7005 = (($7004) + ($7003))|0;
$x = $7005;
$7006 = $x;
$7007 = $y;
$7008 = (($7007) + ($7006))|0;
$y = $7008;
$7009 = $x;
$7010 = $1;
$7011 = ((($7010)) + 4128|0);
$7012 = ((($7011)) + 112|0);
HEAP32[$7012>>2] = $7009;
$7013 = $y;
$7014 = $7013 << 9;
$7015 = $y;
$7016 = $7015 >>> 23;
$7017 = (($7014) + ($7016))|0;
$7018 = $1;
$7019 = ((($7018)) + 4128|0);
$7020 = ((($7019)) + 116|0);
HEAP32[$7020>>2] = $7017;
$7021 = $2;
$7022 = ((($7021)) + 24|0);
$7023 = HEAP8[$7022>>0]|0;
$7024 = $7023&255;
$7025 = 188 ^ $7024;
$7026 = (44992 + ($7025)|0);
$7027 = HEAP8[$7026>>0]|0;
$7028 = $7027&255;
$7029 = $2;
$7030 = ((($7029)) + 16|0);
$7031 = HEAP8[$7030>>0]|0;
$7032 = $7031&255;
$7033 = $7028 ^ $7032;
$7034 = (45248 + ($7033)|0);
$7035 = HEAP8[$7034>>0]|0;
$7036 = $7035&255;
$7037 = $2;
$7038 = ((($7037)) + 8|0);
$7039 = HEAP8[$7038>>0]|0;
$7040 = $7039&255;
$7041 = $7036 ^ $7040;
$7042 = (45248 + ($7041)|0);
$7043 = HEAP8[$7042>>0]|0;
$7044 = $7043&255;
$7045 = $2;
$7046 = HEAP8[$7045>>0]|0;
$7047 = $7046&255;
$7048 = $7044 ^ $7047;
$7049 = (8376 + ($7048<<2)|0);
$7050 = HEAP32[$7049>>2]|0;
$7051 = $2;
$7052 = ((($7051)) + 25|0);
$7053 = HEAP8[$7052>>0]|0;
$7054 = $7053&255;
$7055 = 223 ^ $7054;
$7056 = (44992 + ($7055)|0);
$7057 = HEAP8[$7056>>0]|0;
$7058 = $7057&255;
$7059 = $2;
$7060 = ((($7059)) + 17|0);
$7061 = HEAP8[$7060>>0]|0;
$7062 = $7061&255;
$7063 = $7058 ^ $7062;
$7064 = (44992 + ($7063)|0);
$7065 = HEAP8[$7064>>0]|0;
$7066 = $7065&255;
$7067 = $2;
$7068 = ((($7067)) + 9|0);
$7069 = HEAP8[$7068>>0]|0;
$7070 = $7069&255;
$7071 = $7066 ^ $7070;
$7072 = (45248 + ($7071)|0);
$7073 = HEAP8[$7072>>0]|0;
$7074 = $7073&255;
$7075 = $2;
$7076 = ((($7075)) + 1|0);
$7077 = HEAP8[$7076>>0]|0;
$7078 = $7077&255;
$7079 = $7074 ^ $7078;
$7080 = ((9400) + ($7079<<2)|0);
$7081 = HEAP32[$7080>>2]|0;
$7082 = $7050 ^ $7081;
$7083 = $2;
$7084 = ((($7083)) + 26|0);
$7085 = HEAP8[$7084>>0]|0;
$7086 = $7085&255;
$7087 = 223 ^ $7086;
$7088 = (45248 + ($7087)|0);
$7089 = HEAP8[$7088>>0]|0;
$7090 = $7089&255;
$7091 = $2;
$7092 = ((($7091)) + 18|0);
$7093 = HEAP8[$7092>>0]|0;
$7094 = $7093&255;
$7095 = $7090 ^ $7094;
$7096 = (45248 + ($7095)|0);
$7097 = HEAP8[$7096>>0]|0;
$7098 = $7097&255;
$7099 = $2;
$7100 = ((($7099)) + 10|0);
$7101 = HEAP8[$7100>>0]|0;
$7102 = $7101&255;
$7103 = $7098 ^ $7102;
$7104 = (44992 + ($7103)|0);
$7105 = HEAP8[$7104>>0]|0;
$7106 = $7105&255;
$7107 = $2;
$7108 = ((($7107)) + 2|0);
$7109 = HEAP8[$7108>>0]|0;
$7110 = $7109&255;
$7111 = $7106 ^ $7110;
$7112 = ((10424) + ($7111<<2)|0);
$7113 = HEAP32[$7112>>2]|0;
$7114 = $7082 ^ $7113;
$7115 = $2;
$7116 = ((($7115)) + 27|0);
$7117 = HEAP8[$7116>>0]|0;
$7118 = $7117&255;
$7119 = 188 ^ $7118;
$7120 = (45248 + ($7119)|0);
$7121 = HEAP8[$7120>>0]|0;
$7122 = $7121&255;
$7123 = $2;
$7124 = ((($7123)) + 19|0);
$7125 = HEAP8[$7124>>0]|0;
$7126 = $7125&255;
$7127 = $7122 ^ $7126;
$7128 = (44992 + ($7127)|0);
$7129 = HEAP8[$7128>>0]|0;
$7130 = $7129&255;
$7131 = $2;
$7132 = ((($7131)) + 11|0);
$7133 = HEAP8[$7132>>0]|0;
$7134 = $7133&255;
$7135 = $7130 ^ $7134;
$7136 = (44992 + ($7135)|0);
$7137 = HEAP8[$7136>>0]|0;
$7138 = $7137&255;
$7139 = $2;
$7140 = ((($7139)) + 3|0);
$7141 = HEAP8[$7140>>0]|0;
$7142 = $7141&255;
$7143 = $7138 ^ $7142;
$7144 = ((11448) + ($7143<<2)|0);
$7145 = HEAP32[$7144>>2]|0;
$7146 = $7114 ^ $7145;
$x = $7146;
$7147 = $2;
$7148 = ((($7147)) + 28|0);
$7149 = HEAP8[$7148>>0]|0;
$7150 = $7149&255;
$7151 = 157 ^ $7150;
$7152 = (44992 + ($7151)|0);
$7153 = HEAP8[$7152>>0]|0;
$7154 = $7153&255;
$7155 = $2;
$7156 = ((($7155)) + 20|0);
$7157 = HEAP8[$7156>>0]|0;
$7158 = $7157&255;
$7159 = $7154 ^ $7158;
$7160 = (45248 + ($7159)|0);
$7161 = HEAP8[$7160>>0]|0;
$7162 = $7161&255;
$7163 = $2;
$7164 = ((($7163)) + 12|0);
$7165 = HEAP8[$7164>>0]|0;
$7166 = $7165&255;
$7167 = $7162 ^ $7166;
$7168 = (45248 + ($7167)|0);
$7169 = HEAP8[$7168>>0]|0;
$7170 = $7169&255;
$7171 = $2;
$7172 = ((($7171)) + 4|0);
$7173 = HEAP8[$7172>>0]|0;
$7174 = $7173&255;
$7175 = $7170 ^ $7174;
$7176 = (8376 + ($7175<<2)|0);
$7177 = HEAP32[$7176>>2]|0;
$7178 = $2;
$7179 = ((($7178)) + 29|0);
$7180 = HEAP8[$7179>>0]|0;
$7181 = $7180&255;
$7182 = 35 ^ $7181;
$7183 = (44992 + ($7182)|0);
$7184 = HEAP8[$7183>>0]|0;
$7185 = $7184&255;
$7186 = $2;
$7187 = ((($7186)) + 21|0);
$7188 = HEAP8[$7187>>0]|0;
$7189 = $7188&255;
$7190 = $7185 ^ $7189;
$7191 = (44992 + ($7190)|0);
$7192 = HEAP8[$7191>>0]|0;
$7193 = $7192&255;
$7194 = $2;
$7195 = ((($7194)) + 13|0);
$7196 = HEAP8[$7195>>0]|0;
$7197 = $7196&255;
$7198 = $7193 ^ $7197;
$7199 = (45248 + ($7198)|0);
$7200 = HEAP8[$7199>>0]|0;
$7201 = $7200&255;
$7202 = $2;
$7203 = ((($7202)) + 5|0);
$7204 = HEAP8[$7203>>0]|0;
$7205 = $7204&255;
$7206 = $7201 ^ $7205;
$7207 = ((9400) + ($7206<<2)|0);
$7208 = HEAP32[$7207>>2]|0;
$7209 = $7177 ^ $7208;
$7210 = $2;
$7211 = ((($7210)) + 30|0);
$7212 = HEAP8[$7211>>0]|0;
$7213 = $7212&255;
$7214 = 35 ^ $7213;
$7215 = (45248 + ($7214)|0);
$7216 = HEAP8[$7215>>0]|0;
$7217 = $7216&255;
$7218 = $2;
$7219 = ((($7218)) + 22|0);
$7220 = HEAP8[$7219>>0]|0;
$7221 = $7220&255;
$7222 = $7217 ^ $7221;
$7223 = (45248 + ($7222)|0);
$7224 = HEAP8[$7223>>0]|0;
$7225 = $7224&255;
$7226 = $2;
$7227 = ((($7226)) + 14|0);
$7228 = HEAP8[$7227>>0]|0;
$7229 = $7228&255;
$7230 = $7225 ^ $7229;
$7231 = (44992 + ($7230)|0);
$7232 = HEAP8[$7231>>0]|0;
$7233 = $7232&255;
$7234 = $2;
$7235 = ((($7234)) + 6|0);
$7236 = HEAP8[$7235>>0]|0;
$7237 = $7236&255;
$7238 = $7233 ^ $7237;
$7239 = ((10424) + ($7238<<2)|0);
$7240 = HEAP32[$7239>>2]|0;
$7241 = $7209 ^ $7240;
$7242 = $2;
$7243 = ((($7242)) + 31|0);
$7244 = HEAP8[$7243>>0]|0;
$7245 = $7244&255;
$7246 = 157 ^ $7245;
$7247 = (45248 + ($7246)|0);
$7248 = HEAP8[$7247>>0]|0;
$7249 = $7248&255;
$7250 = $2;
$7251 = ((($7250)) + 23|0);
$7252 = HEAP8[$7251>>0]|0;
$7253 = $7252&255;
$7254 = $7249 ^ $7253;
$7255 = (44992 + ($7254)|0);
$7256 = HEAP8[$7255>>0]|0;
$7257 = $7256&255;
$7258 = $2;
$7259 = ((($7258)) + 15|0);
$7260 = HEAP8[$7259>>0]|0;
$7261 = $7260&255;
$7262 = $7257 ^ $7261;
$7263 = (44992 + ($7262)|0);
$7264 = HEAP8[$7263>>0]|0;
$7265 = $7264&255;
$7266 = $2;
$7267 = ((($7266)) + 7|0);
$7268 = HEAP8[$7267>>0]|0;
$7269 = $7268&255;
$7270 = $7265 ^ $7269;
$7271 = ((11448) + ($7270<<2)|0);
$7272 = HEAP32[$7271>>2]|0;
$7273 = $7241 ^ $7272;
$y = $7273;
$7274 = $y;
$7275 = $7274 << 8;
$7276 = $y;
$7277 = $7276 >>> 24;
$7278 = (($7275) + ($7277))|0;
$y = $7278;
$7279 = $y;
$7280 = $x;
$7281 = (($7280) + ($7279))|0;
$x = $7281;
$7282 = $x;
$7283 = $y;
$7284 = (($7283) + ($7282))|0;
$y = $7284;
$7285 = $x;
$7286 = $1;
$7287 = ((($7286)) + 4128|0);
$7288 = ((($7287)) + 120|0);
HEAP32[$7288>>2] = $7285;
$7289 = $y;
$7290 = $7289 << 9;
$7291 = $y;
$7292 = $7291 >>> 23;
$7293 = (($7290) + ($7292))|0;
$7294 = $1;
$7295 = ((($7294)) + 4128|0);
$7296 = ((($7295)) + 124|0);
HEAP32[$7296>>2] = $7293;
} else {
$j = 0;
$i = 0;
$k = 1;
while(1) {
$7297 = $i;
$7298 = ($7297|0)<(256);
if (!($7298)) {
break;
}
$7299 = $j;
$7300 = (44480 + ($7299)|0);
$7301 = HEAP8[$7300>>0]|0;
$7302 = $7301&255;
$7303 = $sa;
$7304 = $7303&255;
$7305 = $7302 ^ $7304;
$7306 = (45248 + ($7305)|0);
$7307 = HEAP8[$7306>>0]|0;
$7308 = $7307&255;
$7309 = $se;
$7310 = $7309&255;
$7311 = $7308 ^ $7310;
$7312 = (8376 + ($7311<<2)|0);
$7313 = HEAP32[$7312>>2]|0;
$7314 = $i;
$7315 = $1;
$7316 = (($7315) + ($7314<<2)|0);
HEAP32[$7316>>2] = $7313;
$7317 = $k;
$7318 = (44480 + ($7317)|0);
$7319 = HEAP8[$7318>>0]|0;
$7320 = $7319&255;
$7321 = $sb;
$7322 = $7321&255;
$7323 = $7320 ^ $7322;
$7324 = (45248 + ($7323)|0);
$7325 = HEAP8[$7324>>0]|0;
$7326 = $7325&255;
$7327 = $sf;
$7328 = $7327&255;
$7329 = $7326 ^ $7328;
$7330 = ((9400) + ($7329<<2)|0);
$7331 = HEAP32[$7330>>2]|0;
$7332 = $i;
$7333 = $1;
$7334 = ((($7333)) + 1024|0);
$7335 = (($7334) + ($7332<<2)|0);
HEAP32[$7335>>2] = $7331;
$7336 = $j;
$7337 = (44480 + ($7336)|0);
$7338 = HEAP8[$7337>>0]|0;
$7339 = $7338&255;
$7340 = $sc;
$7341 = $7340&255;
$7342 = $7339 ^ $7341;
$7343 = (44992 + ($7342)|0);
$7344 = HEAP8[$7343>>0]|0;
$7345 = $7344&255;
$7346 = $sg;
$7347 = $7346&255;
$7348 = $7345 ^ $7347;
$7349 = ((10424) + ($7348<<2)|0);
$7350 = HEAP32[$7349>>2]|0;
$7351 = $i;
$7352 = $1;
$7353 = ((($7352)) + 2048|0);
$7354 = (($7353) + ($7351<<2)|0);
HEAP32[$7354>>2] = $7350;
$7355 = $k;
$7356 = (44480 + ($7355)|0);
$7357 = HEAP8[$7356>>0]|0;
$7358 = $7357&255;
$7359 = $sd;
$7360 = $7359&255;
$7361 = $7358 ^ $7360;
$7362 = (44992 + ($7361)|0);
$7363 = HEAP8[$7362>>0]|0;
$7364 = $7363&255;
$7365 = $sh;
$7366 = $7365&255;
$7367 = $7364 ^ $7366;
$7368 = ((11448) + ($7367<<2)|0);
$7369 = HEAP32[$7368>>2]|0;
$7370 = $i;
$7371 = $1;
$7372 = ((($7371)) + 3072|0);
$7373 = (($7372) + ($7370<<2)|0);
HEAP32[$7373>>2] = $7369;
$7374 = $i;
$7375 = (($7374) + 1)|0;
$i = $7375;
$7376 = $j;
$7377 = (($7376) + 2)|0;
$j = $7377;
$7378 = $k;
$7379 = (($7378) + 2)|0;
$k = $7379;
}
$7380 = $2;
$7381 = ((($7380)) + 8|0);
$7382 = HEAP8[$7381>>0]|0;
$7383 = $7382&255;
$7384 = 169 ^ $7383;
$7385 = (45248 + ($7384)|0);
$7386 = HEAP8[$7385>>0]|0;
$7387 = $7386&255;
$7388 = $2;
$7389 = HEAP8[$7388>>0]|0;
$7390 = $7389&255;
$7391 = $7387 ^ $7390;
$7392 = (8376 + ($7391<<2)|0);
$7393 = HEAP32[$7392>>2]|0;
$7394 = $2;
$7395 = ((($7394)) + 9|0);
$7396 = HEAP8[$7395>>0]|0;
$7397 = $7396&255;
$7398 = 117 ^ $7397;
$7399 = (45248 + ($7398)|0);
$7400 = HEAP8[$7399>>0]|0;
$7401 = $7400&255;
$7402 = $2;
$7403 = ((($7402)) + 1|0);
$7404 = HEAP8[$7403>>0]|0;
$7405 = $7404&255;
$7406 = $7401 ^ $7405;
$7407 = ((9400) + ($7406<<2)|0);
$7408 = HEAP32[$7407>>2]|0;
$7409 = $7393 ^ $7408;
$7410 = $2;
$7411 = ((($7410)) + 10|0);
$7412 = HEAP8[$7411>>0]|0;
$7413 = $7412&255;
$7414 = 169 ^ $7413;
$7415 = (44992 + ($7414)|0);
$7416 = HEAP8[$7415>>0]|0;
$7417 = $7416&255;
$7418 = $2;
$7419 = ((($7418)) + 2|0);
$7420 = HEAP8[$7419>>0]|0;
$7421 = $7420&255;
$7422 = $7417 ^ $7421;
$7423 = ((10424) + ($7422<<2)|0);
$7424 = HEAP32[$7423>>2]|0;
$7425 = $7409 ^ $7424;
$7426 = $2;
$7427 = ((($7426)) + 11|0);
$7428 = HEAP8[$7427>>0]|0;
$7429 = $7428&255;
$7430 = 117 ^ $7429;
$7431 = (44992 + ($7430)|0);
$7432 = HEAP8[$7431>>0]|0;
$7433 = $7432&255;
$7434 = $2;
$7435 = ((($7434)) + 3|0);
$7436 = HEAP8[$7435>>0]|0;
$7437 = $7436&255;
$7438 = $7433 ^ $7437;
$7439 = ((11448) + ($7438<<2)|0);
$7440 = HEAP32[$7439>>2]|0;
$7441 = $7425 ^ $7440;
$x = $7441;
$7442 = $2;
$7443 = ((($7442)) + 12|0);
$7444 = HEAP8[$7443>>0]|0;
$7445 = $7444&255;
$7446 = 103 ^ $7445;
$7447 = (45248 + ($7446)|0);
$7448 = HEAP8[$7447>>0]|0;
$7449 = $7448&255;
$7450 = $2;
$7451 = ((($7450)) + 4|0);
$7452 = HEAP8[$7451>>0]|0;
$7453 = $7452&255;
$7454 = $7449 ^ $7453;
$7455 = (8376 + ($7454<<2)|0);
$7456 = HEAP32[$7455>>2]|0;
$7457 = $2;
$7458 = ((($7457)) + 13|0);
$7459 = HEAP8[$7458>>0]|0;
$7460 = $7459&255;
$7461 = 243 ^ $7460;
$7462 = (45248 + ($7461)|0);
$7463 = HEAP8[$7462>>0]|0;
$7464 = $7463&255;
$7465 = $2;
$7466 = ((($7465)) + 5|0);
$7467 = HEAP8[$7466>>0]|0;
$7468 = $7467&255;
$7469 = $7464 ^ $7468;
$7470 = ((9400) + ($7469<<2)|0);
$7471 = HEAP32[$7470>>2]|0;
$7472 = $7456 ^ $7471;
$7473 = $2;
$7474 = ((($7473)) + 14|0);
$7475 = HEAP8[$7474>>0]|0;
$7476 = $7475&255;
$7477 = 103 ^ $7476;
$7478 = (44992 + ($7477)|0);
$7479 = HEAP8[$7478>>0]|0;
$7480 = $7479&255;
$7481 = $2;
$7482 = ((($7481)) + 6|0);
$7483 = HEAP8[$7482>>0]|0;
$7484 = $7483&255;
$7485 = $7480 ^ $7484;
$7486 = ((10424) + ($7485<<2)|0);
$7487 = HEAP32[$7486>>2]|0;
$7488 = $7472 ^ $7487;
$7489 = $2;
$7490 = ((($7489)) + 15|0);
$7491 = HEAP8[$7490>>0]|0;
$7492 = $7491&255;
$7493 = 243 ^ $7492;
$7494 = (44992 + ($7493)|0);
$7495 = HEAP8[$7494>>0]|0;
$7496 = $7495&255;
$7497 = $2;
$7498 = ((($7497)) + 7|0);
$7499 = HEAP8[$7498>>0]|0;
$7500 = $7499&255;
$7501 = $7496 ^ $7500;
$7502 = ((11448) + ($7501<<2)|0);
$7503 = HEAP32[$7502>>2]|0;
$7504 = $7488 ^ $7503;
$y = $7504;
$7505 = $y;
$7506 = $7505 << 8;
$7507 = $y;
$7508 = $7507 >>> 24;
$7509 = (($7506) + ($7508))|0;
$y = $7509;
$7510 = $y;
$7511 = $x;
$7512 = (($7511) + ($7510))|0;
$x = $7512;
$7513 = $x;
$7514 = $y;
$7515 = (($7514) + ($7513))|0;
$y = $7515;
$7516 = $x;
$7517 = $1;
$7518 = ((($7517)) + 4096|0);
HEAP32[$7518>>2] = $7516;
$7519 = $y;
$7520 = $7519 << 9;
$7521 = $y;
$7522 = $7521 >>> 23;
$7523 = (($7520) + ($7522))|0;
$7524 = $1;
$7525 = ((($7524)) + 4096|0);
$7526 = ((($7525)) + 4|0);
HEAP32[$7526>>2] = $7523;
$7527 = $2;
$7528 = ((($7527)) + 8|0);
$7529 = HEAP8[$7528>>0]|0;
$7530 = $7529&255;
$7531 = 179 ^ $7530;
$7532 = (45248 + ($7531)|0);
$7533 = HEAP8[$7532>>0]|0;
$7534 = $7533&255;
$7535 = $2;
$7536 = HEAP8[$7535>>0]|0;
$7537 = $7536&255;
$7538 = $7534 ^ $7537;
$7539 = (8376 + ($7538<<2)|0);
$7540 = HEAP32[$7539>>2]|0;
$7541 = $2;
$7542 = ((($7541)) + 9|0);
$7543 = HEAP8[$7542>>0]|0;
$7544 = $7543&255;
$7545 = 198 ^ $7544;
$7546 = (45248 + ($7545)|0);
$7547 = HEAP8[$7546>>0]|0;
$7548 = $7547&255;
$7549 = $2;
$7550 = ((($7549)) + 1|0);
$7551 = HEAP8[$7550>>0]|0;
$7552 = $7551&255;
$7553 = $7548 ^ $7552;
$7554 = ((9400) + ($7553<<2)|0);
$7555 = HEAP32[$7554>>2]|0;
$7556 = $7540 ^ $7555;
$7557 = $2;
$7558 = ((($7557)) + 10|0);
$7559 = HEAP8[$7558>>0]|0;
$7560 = $7559&255;
$7561 = 179 ^ $7560;
$7562 = (44992 + ($7561)|0);
$7563 = HEAP8[$7562>>0]|0;
$7564 = $7563&255;
$7565 = $2;
$7566 = ((($7565)) + 2|0);
$7567 = HEAP8[$7566>>0]|0;
$7568 = $7567&255;
$7569 = $7564 ^ $7568;
$7570 = ((10424) + ($7569<<2)|0);
$7571 = HEAP32[$7570>>2]|0;
$7572 = $7556 ^ $7571;
$7573 = $2;
$7574 = ((($7573)) + 11|0);
$7575 = HEAP8[$7574>>0]|0;
$7576 = $7575&255;
$7577 = 198 ^ $7576;
$7578 = (44992 + ($7577)|0);
$7579 = HEAP8[$7578>>0]|0;
$7580 = $7579&255;
$7581 = $2;
$7582 = ((($7581)) + 3|0);
$7583 = HEAP8[$7582>>0]|0;
$7584 = $7583&255;
$7585 = $7580 ^ $7584;
$7586 = ((11448) + ($7585<<2)|0);
$7587 = HEAP32[$7586>>2]|0;
$7588 = $7572 ^ $7587;
$x = $7588;
$7589 = $2;
$7590 = ((($7589)) + 12|0);
$7591 = HEAP8[$7590>>0]|0;
$7592 = $7591&255;
$7593 = 232 ^ $7592;
$7594 = (45248 + ($7593)|0);
$7595 = HEAP8[$7594>>0]|0;
$7596 = $7595&255;
$7597 = $2;
$7598 = ((($7597)) + 4|0);
$7599 = HEAP8[$7598>>0]|0;
$7600 = $7599&255;
$7601 = $7596 ^ $7600;
$7602 = (8376 + ($7601<<2)|0);
$7603 = HEAP32[$7602>>2]|0;
$7604 = $2;
$7605 = ((($7604)) + 13|0);
$7606 = HEAP8[$7605>>0]|0;
$7607 = $7606&255;
$7608 = 244 ^ $7607;
$7609 = (45248 + ($7608)|0);
$7610 = HEAP8[$7609>>0]|0;
$7611 = $7610&255;
$7612 = $2;
$7613 = ((($7612)) + 5|0);
$7614 = HEAP8[$7613>>0]|0;
$7615 = $7614&255;
$7616 = $7611 ^ $7615;
$7617 = ((9400) + ($7616<<2)|0);
$7618 = HEAP32[$7617>>2]|0;
$7619 = $7603 ^ $7618;
$7620 = $2;
$7621 = ((($7620)) + 14|0);
$7622 = HEAP8[$7621>>0]|0;
$7623 = $7622&255;
$7624 = 232 ^ $7623;
$7625 = (44992 + ($7624)|0);
$7626 = HEAP8[$7625>>0]|0;
$7627 = $7626&255;
$7628 = $2;
$7629 = ((($7628)) + 6|0);
$7630 = HEAP8[$7629>>0]|0;
$7631 = $7630&255;
$7632 = $7627 ^ $7631;
$7633 = ((10424) + ($7632<<2)|0);
$7634 = HEAP32[$7633>>2]|0;
$7635 = $7619 ^ $7634;
$7636 = $2;
$7637 = ((($7636)) + 15|0);
$7638 = HEAP8[$7637>>0]|0;
$7639 = $7638&255;
$7640 = 244 ^ $7639;
$7641 = (44992 + ($7640)|0);
$7642 = HEAP8[$7641>>0]|0;
$7643 = $7642&255;
$7644 = $2;
$7645 = ((($7644)) + 7|0);
$7646 = HEAP8[$7645>>0]|0;
$7647 = $7646&255;
$7648 = $7643 ^ $7647;
$7649 = ((11448) + ($7648<<2)|0);
$7650 = HEAP32[$7649>>2]|0;
$7651 = $7635 ^ $7650;
$y = $7651;
$7652 = $y;
$7653 = $7652 << 8;
$7654 = $y;
$7655 = $7654 >>> 24;
$7656 = (($7653) + ($7655))|0;
$y = $7656;
$7657 = $y;
$7658 = $x;
$7659 = (($7658) + ($7657))|0;
$x = $7659;
$7660 = $x;
$7661 = $y;
$7662 = (($7661) + ($7660))|0;
$y = $7662;
$7663 = $x;
$7664 = $1;
$7665 = ((($7664)) + 4096|0);
$7666 = ((($7665)) + 8|0);
HEAP32[$7666>>2] = $7663;
$7667 = $y;
$7668 = $7667 << 9;
$7669 = $y;
$7670 = $7669 >>> 23;
$7671 = (($7668) + ($7670))|0;
$7672 = $1;
$7673 = ((($7672)) + 4096|0);
$7674 = ((($7673)) + 12|0);
HEAP32[$7674>>2] = $7671;
$7675 = $2;
$7676 = ((($7675)) + 8|0);
$7677 = HEAP8[$7676>>0]|0;
$7678 = $7677&255;
$7679 = 4 ^ $7678;
$7680 = (45248 + ($7679)|0);
$7681 = HEAP8[$7680>>0]|0;
$7682 = $7681&255;
$7683 = $2;
$7684 = HEAP8[$7683>>0]|0;
$7685 = $7684&255;
$7686 = $7682 ^ $7685;
$7687 = (8376 + ($7686<<2)|0);
$7688 = HEAP32[$7687>>2]|0;
$7689 = $2;
$7690 = ((($7689)) + 9|0);
$7691 = HEAP8[$7690>>0]|0;
$7692 = $7691&255;
$7693 = 219 ^ $7692;
$7694 = (45248 + ($7693)|0);
$7695 = HEAP8[$7694>>0]|0;
$7696 = $7695&255;
$7697 = $2;
$7698 = ((($7697)) + 1|0);
$7699 = HEAP8[$7698>>0]|0;
$7700 = $7699&255;
$7701 = $7696 ^ $7700;
$7702 = ((9400) + ($7701<<2)|0);
$7703 = HEAP32[$7702>>2]|0;
$7704 = $7688 ^ $7703;
$7705 = $2;
$7706 = ((($7705)) + 10|0);
$7707 = HEAP8[$7706>>0]|0;
$7708 = $7707&255;
$7709 = 4 ^ $7708;
$7710 = (44992 + ($7709)|0);
$7711 = HEAP8[$7710>>0]|0;
$7712 = $7711&255;
$7713 = $2;
$7714 = ((($7713)) + 2|0);
$7715 = HEAP8[$7714>>0]|0;
$7716 = $7715&255;
$7717 = $7712 ^ $7716;
$7718 = ((10424) + ($7717<<2)|0);
$7719 = HEAP32[$7718>>2]|0;
$7720 = $7704 ^ $7719;
$7721 = $2;
$7722 = ((($7721)) + 11|0);
$7723 = HEAP8[$7722>>0]|0;
$7724 = $7723&255;
$7725 = 219 ^ $7724;
$7726 = (44992 + ($7725)|0);
$7727 = HEAP8[$7726>>0]|0;
$7728 = $7727&255;
$7729 = $2;
$7730 = ((($7729)) + 3|0);
$7731 = HEAP8[$7730>>0]|0;
$7732 = $7731&255;
$7733 = $7728 ^ $7732;
$7734 = ((11448) + ($7733<<2)|0);
$7735 = HEAP32[$7734>>2]|0;
$7736 = $7720 ^ $7735;
$x = $7736;
$7737 = $2;
$7738 = ((($7737)) + 12|0);
$7739 = HEAP8[$7738>>0]|0;
$7740 = $7739&255;
$7741 = 253 ^ $7740;
$7742 = (45248 + ($7741)|0);
$7743 = HEAP8[$7742>>0]|0;
$7744 = $7743&255;
$7745 = $2;
$7746 = ((($7745)) + 4|0);
$7747 = HEAP8[$7746>>0]|0;
$7748 = $7747&255;
$7749 = $7744 ^ $7748;
$7750 = (8376 + ($7749<<2)|0);
$7751 = HEAP32[$7750>>2]|0;
$7752 = $2;
$7753 = ((($7752)) + 13|0);
$7754 = HEAP8[$7753>>0]|0;
$7755 = $7754&255;
$7756 = 123 ^ $7755;
$7757 = (45248 + ($7756)|0);
$7758 = HEAP8[$7757>>0]|0;
$7759 = $7758&255;
$7760 = $2;
$7761 = ((($7760)) + 5|0);
$7762 = HEAP8[$7761>>0]|0;
$7763 = $7762&255;
$7764 = $7759 ^ $7763;
$7765 = ((9400) + ($7764<<2)|0);
$7766 = HEAP32[$7765>>2]|0;
$7767 = $7751 ^ $7766;
$7768 = $2;
$7769 = ((($7768)) + 14|0);
$7770 = HEAP8[$7769>>0]|0;
$7771 = $7770&255;
$7772 = 253 ^ $7771;
$7773 = (44992 + ($7772)|0);
$7774 = HEAP8[$7773>>0]|0;
$7775 = $7774&255;
$7776 = $2;
$7777 = ((($7776)) + 6|0);
$7778 = HEAP8[$7777>>0]|0;
$7779 = $7778&255;
$7780 = $7775 ^ $7779;
$7781 = ((10424) + ($7780<<2)|0);
$7782 = HEAP32[$7781>>2]|0;
$7783 = $7767 ^ $7782;
$7784 = $2;
$7785 = ((($7784)) + 15|0);
$7786 = HEAP8[$7785>>0]|0;
$7787 = $7786&255;
$7788 = 123 ^ $7787;
$7789 = (44992 + ($7788)|0);
$7790 = HEAP8[$7789>>0]|0;
$7791 = $7790&255;
$7792 = $2;
$7793 = ((($7792)) + 7|0);
$7794 = HEAP8[$7793>>0]|0;
$7795 = $7794&255;
$7796 = $7791 ^ $7795;
$7797 = ((11448) + ($7796<<2)|0);
$7798 = HEAP32[$7797>>2]|0;
$7799 = $7783 ^ $7798;
$y = $7799;
$7800 = $y;
$7801 = $7800 << 8;
$7802 = $y;
$7803 = $7802 >>> 24;
$7804 = (($7801) + ($7803))|0;
$y = $7804;
$7805 = $y;
$7806 = $x;
$7807 = (($7806) + ($7805))|0;
$x = $7807;
$7808 = $x;
$7809 = $y;
$7810 = (($7809) + ($7808))|0;
$y = $7810;
$7811 = $x;
$7812 = $1;
$7813 = ((($7812)) + 4096|0);
$7814 = ((($7813)) + 16|0);
HEAP32[$7814>>2] = $7811;
$7815 = $y;
$7816 = $7815 << 9;
$7817 = $y;
$7818 = $7817 >>> 23;
$7819 = (($7816) + ($7818))|0;
$7820 = $1;
$7821 = ((($7820)) + 4096|0);
$7822 = ((($7821)) + 20|0);
HEAP32[$7822>>2] = $7819;
$7823 = $2;
$7824 = ((($7823)) + 8|0);
$7825 = HEAP8[$7824>>0]|0;
$7826 = $7825&255;
$7827 = 163 ^ $7826;
$7828 = (45248 + ($7827)|0);
$7829 = HEAP8[$7828>>0]|0;
$7830 = $7829&255;
$7831 = $2;
$7832 = HEAP8[$7831>>0]|0;
$7833 = $7832&255;
$7834 = $7830 ^ $7833;
$7835 = (8376 + ($7834<<2)|0);
$7836 = HEAP32[$7835>>2]|0;
$7837 = $2;
$7838 = ((($7837)) + 9|0);
$7839 = HEAP8[$7838>>0]|0;
$7840 = $7839&255;
$7841 = 251 ^ $7840;
$7842 = (45248 + ($7841)|0);
$7843 = HEAP8[$7842>>0]|0;
$7844 = $7843&255;
$7845 = $2;
$7846 = ((($7845)) + 1|0);
$7847 = HEAP8[$7846>>0]|0;
$7848 = $7847&255;
$7849 = $7844 ^ $7848;
$7850 = ((9400) + ($7849<<2)|0);
$7851 = HEAP32[$7850>>2]|0;
$7852 = $7836 ^ $7851;
$7853 = $2;
$7854 = ((($7853)) + 10|0);
$7855 = HEAP8[$7854>>0]|0;
$7856 = $7855&255;
$7857 = 163 ^ $7856;
$7858 = (44992 + ($7857)|0);
$7859 = HEAP8[$7858>>0]|0;
$7860 = $7859&255;
$7861 = $2;
$7862 = ((($7861)) + 2|0);
$7863 = HEAP8[$7862>>0]|0;
$7864 = $7863&255;
$7865 = $7860 ^ $7864;
$7866 = ((10424) + ($7865<<2)|0);
$7867 = HEAP32[$7866>>2]|0;
$7868 = $7852 ^ $7867;
$7869 = $2;
$7870 = ((($7869)) + 11|0);
$7871 = HEAP8[$7870>>0]|0;
$7872 = $7871&255;
$7873 = 251 ^ $7872;
$7874 = (44992 + ($7873)|0);
$7875 = HEAP8[$7874>>0]|0;
$7876 = $7875&255;
$7877 = $2;
$7878 = ((($7877)) + 3|0);
$7879 = HEAP8[$7878>>0]|0;
$7880 = $7879&255;
$7881 = $7876 ^ $7880;
$7882 = ((11448) + ($7881<<2)|0);
$7883 = HEAP32[$7882>>2]|0;
$7884 = $7868 ^ $7883;
$x = $7884;
$7885 = $2;
$7886 = ((($7885)) + 12|0);
$7887 = HEAP8[$7886>>0]|0;
$7888 = $7887&255;
$7889 = 118 ^ $7888;
$7890 = (45248 + ($7889)|0);
$7891 = HEAP8[$7890>>0]|0;
$7892 = $7891&255;
$7893 = $2;
$7894 = ((($7893)) + 4|0);
$7895 = HEAP8[$7894>>0]|0;
$7896 = $7895&255;
$7897 = $7892 ^ $7896;
$7898 = (8376 + ($7897<<2)|0);
$7899 = HEAP32[$7898>>2]|0;
$7900 = $2;
$7901 = ((($7900)) + 13|0);
$7902 = HEAP8[$7901>>0]|0;
$7903 = $7902&255;
$7904 = 200 ^ $7903;
$7905 = (45248 + ($7904)|0);
$7906 = HEAP8[$7905>>0]|0;
$7907 = $7906&255;
$7908 = $2;
$7909 = ((($7908)) + 5|0);
$7910 = HEAP8[$7909>>0]|0;
$7911 = $7910&255;
$7912 = $7907 ^ $7911;
$7913 = ((9400) + ($7912<<2)|0);
$7914 = HEAP32[$7913>>2]|0;
$7915 = $7899 ^ $7914;
$7916 = $2;
$7917 = ((($7916)) + 14|0);
$7918 = HEAP8[$7917>>0]|0;
$7919 = $7918&255;
$7920 = 118 ^ $7919;
$7921 = (44992 + ($7920)|0);
$7922 = HEAP8[$7921>>0]|0;
$7923 = $7922&255;
$7924 = $2;
$7925 = ((($7924)) + 6|0);
$7926 = HEAP8[$7925>>0]|0;
$7927 = $7926&255;
$7928 = $7923 ^ $7927;
$7929 = ((10424) + ($7928<<2)|0);
$7930 = HEAP32[$7929>>2]|0;
$7931 = $7915 ^ $7930;
$7932 = $2;
$7933 = ((($7932)) + 15|0);
$7934 = HEAP8[$7933>>0]|0;
$7935 = $7934&255;
$7936 = 200 ^ $7935;
$7937 = (44992 + ($7936)|0);
$7938 = HEAP8[$7937>>0]|0;
$7939 = $7938&255;
$7940 = $2;
$7941 = ((($7940)) + 7|0);
$7942 = HEAP8[$7941>>0]|0;
$7943 = $7942&255;
$7944 = $7939 ^ $7943;
$7945 = ((11448) + ($7944<<2)|0);
$7946 = HEAP32[$7945>>2]|0;
$7947 = $7931 ^ $7946;
$y = $7947;
$7948 = $y;
$7949 = $7948 << 8;
$7950 = $y;
$7951 = $7950 >>> 24;
$7952 = (($7949) + ($7951))|0;
$y = $7952;
$7953 = $y;
$7954 = $x;
$7955 = (($7954) + ($7953))|0;
$x = $7955;
$7956 = $x;
$7957 = $y;
$7958 = (($7957) + ($7956))|0;
$y = $7958;
$7959 = $x;
$7960 = $1;
$7961 = ((($7960)) + 4096|0);
$7962 = ((($7961)) + 24|0);
HEAP32[$7962>>2] = $7959;
$7963 = $y;
$7964 = $7963 << 9;
$7965 = $y;
$7966 = $7965 >>> 23;
$7967 = (($7964) + ($7966))|0;
$7968 = $1;
$7969 = ((($7968)) + 4096|0);
$7970 = ((($7969)) + 28|0);
HEAP32[$7970>>2] = $7967;
$7971 = $2;
$7972 = ((($7971)) + 8|0);
$7973 = HEAP8[$7972>>0]|0;
$7974 = $7973&255;
$7975 = 154 ^ $7974;
$7976 = (45248 + ($7975)|0);
$7977 = HEAP8[$7976>>0]|0;
$7978 = $7977&255;
$7979 = $2;
$7980 = HEAP8[$7979>>0]|0;
$7981 = $7980&255;
$7982 = $7978 ^ $7981;
$7983 = (8376 + ($7982<<2)|0);
$7984 = HEAP32[$7983>>2]|0;
$7985 = $2;
$7986 = ((($7985)) + 9|0);
$7987 = HEAP8[$7986>>0]|0;
$7988 = $7987&255;
$7989 = 74 ^ $7988;
$7990 = (45248 + ($7989)|0);
$7991 = HEAP8[$7990>>0]|0;
$7992 = $7991&255;
$7993 = $2;
$7994 = ((($7993)) + 1|0);
$7995 = HEAP8[$7994>>0]|0;
$7996 = $7995&255;
$7997 = $7992 ^ $7996;
$7998 = ((9400) + ($7997<<2)|0);
$7999 = HEAP32[$7998>>2]|0;
$8000 = $7984 ^ $7999;
$8001 = $2;
$8002 = ((($8001)) + 10|0);
$8003 = HEAP8[$8002>>0]|0;
$8004 = $8003&255;
$8005 = 154 ^ $8004;
$8006 = (44992 + ($8005)|0);
$8007 = HEAP8[$8006>>0]|0;
$8008 = $8007&255;
$8009 = $2;
$8010 = ((($8009)) + 2|0);
$8011 = HEAP8[$8010>>0]|0;
$8012 = $8011&255;
$8013 = $8008 ^ $8012;
$8014 = ((10424) + ($8013<<2)|0);
$8015 = HEAP32[$8014>>2]|0;
$8016 = $8000 ^ $8015;
$8017 = $2;
$8018 = ((($8017)) + 11|0);
$8019 = HEAP8[$8018>>0]|0;
$8020 = $8019&255;
$8021 = 74 ^ $8020;
$8022 = (44992 + ($8021)|0);
$8023 = HEAP8[$8022>>0]|0;
$8024 = $8023&255;
$8025 = $2;
$8026 = ((($8025)) + 3|0);
$8027 = HEAP8[$8026>>0]|0;
$8028 = $8027&255;
$8029 = $8024 ^ $8028;
$8030 = ((11448) + ($8029<<2)|0);
$8031 = HEAP32[$8030>>2]|0;
$8032 = $8016 ^ $8031;
$x = $8032;
$8033 = $2;
$8034 = ((($8033)) + 12|0);
$8035 = HEAP8[$8034>>0]|0;
$8036 = $8035&255;
$8037 = 146 ^ $8036;
$8038 = (45248 + ($8037)|0);
$8039 = HEAP8[$8038>>0]|0;
$8040 = $8039&255;
$8041 = $2;
$8042 = ((($8041)) + 4|0);
$8043 = HEAP8[$8042>>0]|0;
$8044 = $8043&255;
$8045 = $8040 ^ $8044;
$8046 = (8376 + ($8045<<2)|0);
$8047 = HEAP32[$8046>>2]|0;
$8048 = $2;
$8049 = ((($8048)) + 13|0);
$8050 = HEAP8[$8049>>0]|0;
$8051 = $8050&255;
$8052 = 211 ^ $8051;
$8053 = (45248 + ($8052)|0);
$8054 = HEAP8[$8053>>0]|0;
$8055 = $8054&255;
$8056 = $2;
$8057 = ((($8056)) + 5|0);
$8058 = HEAP8[$8057>>0]|0;
$8059 = $8058&255;
$8060 = $8055 ^ $8059;
$8061 = ((9400) + ($8060<<2)|0);
$8062 = HEAP32[$8061>>2]|0;
$8063 = $8047 ^ $8062;
$8064 = $2;
$8065 = ((($8064)) + 14|0);
$8066 = HEAP8[$8065>>0]|0;
$8067 = $8066&255;
$8068 = 146 ^ $8067;
$8069 = (44992 + ($8068)|0);
$8070 = HEAP8[$8069>>0]|0;
$8071 = $8070&255;
$8072 = $2;
$8073 = ((($8072)) + 6|0);
$8074 = HEAP8[$8073>>0]|0;
$8075 = $8074&255;
$8076 = $8071 ^ $8075;
$8077 = ((10424) + ($8076<<2)|0);
$8078 = HEAP32[$8077>>2]|0;
$8079 = $8063 ^ $8078;
$8080 = $2;
$8081 = ((($8080)) + 15|0);
$8082 = HEAP8[$8081>>0]|0;
$8083 = $8082&255;
$8084 = 211 ^ $8083;
$8085 = (44992 + ($8084)|0);
$8086 = HEAP8[$8085>>0]|0;
$8087 = $8086&255;
$8088 = $2;
$8089 = ((($8088)) + 7|0);
$8090 = HEAP8[$8089>>0]|0;
$8091 = $8090&255;
$8092 = $8087 ^ $8091;
$8093 = ((11448) + ($8092<<2)|0);
$8094 = HEAP32[$8093>>2]|0;
$8095 = $8079 ^ $8094;
$y = $8095;
$8096 = $y;
$8097 = $8096 << 8;
$8098 = $y;
$8099 = $8098 >>> 24;
$8100 = (($8097) + ($8099))|0;
$y = $8100;
$8101 = $y;
$8102 = $x;
$8103 = (($8102) + ($8101))|0;
$x = $8103;
$8104 = $x;
$8105 = $y;
$8106 = (($8105) + ($8104))|0;
$y = $8106;
$8107 = $x;
$8108 = $1;
$8109 = ((($8108)) + 4128|0);
HEAP32[$8109>>2] = $8107;
$8110 = $y;
$8111 = $8110 << 9;
$8112 = $y;
$8113 = $8112 >>> 23;
$8114 = (($8111) + ($8113))|0;
$8115 = $1;
$8116 = ((($8115)) + 4128|0);
$8117 = ((($8116)) + 4|0);
HEAP32[$8117>>2] = $8114;
$8118 = $2;
$8119 = ((($8118)) + 8|0);
$8120 = HEAP8[$8119>>0]|0;
$8121 = $8120&255;
$8122 = 128 ^ $8121;
$8123 = (45248 + ($8122)|0);
$8124 = HEAP8[$8123>>0]|0;
$8125 = $8124&255;
$8126 = $2;
$8127 = HEAP8[$8126>>0]|0;
$8128 = $8127&255;
$8129 = $8125 ^ $8128;
$8130 = (8376 + ($8129<<2)|0);
$8131 = HEAP32[$8130>>2]|0;
$8132 = $2;
$8133 = ((($8132)) + 9|0);
$8134 = HEAP8[$8133>>0]|0;
$8135 = $8134&255;
$8136 = 230 ^ $8135;
$8137 = (45248 + ($8136)|0);
$8138 = HEAP8[$8137>>0]|0;
$8139 = $8138&255;
$8140 = $2;
$8141 = ((($8140)) + 1|0);
$8142 = HEAP8[$8141>>0]|0;
$8143 = $8142&255;
$8144 = $8139 ^ $8143;
$8145 = ((9400) + ($8144<<2)|0);
$8146 = HEAP32[$8145>>2]|0;
$8147 = $8131 ^ $8146;
$8148 = $2;
$8149 = ((($8148)) + 10|0);
$8150 = HEAP8[$8149>>0]|0;
$8151 = $8150&255;
$8152 = 128 ^ $8151;
$8153 = (44992 + ($8152)|0);
$8154 = HEAP8[$8153>>0]|0;
$8155 = $8154&255;
$8156 = $2;
$8157 = ((($8156)) + 2|0);
$8158 = HEAP8[$8157>>0]|0;
$8159 = $8158&255;
$8160 = $8155 ^ $8159;
$8161 = ((10424) + ($8160<<2)|0);
$8162 = HEAP32[$8161>>2]|0;
$8163 = $8147 ^ $8162;
$8164 = $2;
$8165 = ((($8164)) + 11|0);
$8166 = HEAP8[$8165>>0]|0;
$8167 = $8166&255;
$8168 = 230 ^ $8167;
$8169 = (44992 + ($8168)|0);
$8170 = HEAP8[$8169>>0]|0;
$8171 = $8170&255;
$8172 = $2;
$8173 = ((($8172)) + 3|0);
$8174 = HEAP8[$8173>>0]|0;
$8175 = $8174&255;
$8176 = $8171 ^ $8175;
$8177 = ((11448) + ($8176<<2)|0);
$8178 = HEAP32[$8177>>2]|0;
$8179 = $8163 ^ $8178;
$x = $8179;
$8180 = $2;
$8181 = ((($8180)) + 12|0);
$8182 = HEAP8[$8181>>0]|0;
$8183 = $8182&255;
$8184 = 120 ^ $8183;
$8185 = (45248 + ($8184)|0);
$8186 = HEAP8[$8185>>0]|0;
$8187 = $8186&255;
$8188 = $2;
$8189 = ((($8188)) + 4|0);
$8190 = HEAP8[$8189>>0]|0;
$8191 = $8190&255;
$8192 = $8187 ^ $8191;
$8193 = (8376 + ($8192<<2)|0);
$8194 = HEAP32[$8193>>2]|0;
$8195 = $2;
$8196 = ((($8195)) + 13|0);
$8197 = HEAP8[$8196>>0]|0;
$8198 = $8197&255;
$8199 = 107 ^ $8198;
$8200 = (45248 + ($8199)|0);
$8201 = HEAP8[$8200>>0]|0;
$8202 = $8201&255;
$8203 = $2;
$8204 = ((($8203)) + 5|0);
$8205 = HEAP8[$8204>>0]|0;
$8206 = $8205&255;
$8207 = $8202 ^ $8206;
$8208 = ((9400) + ($8207<<2)|0);
$8209 = HEAP32[$8208>>2]|0;
$8210 = $8194 ^ $8209;
$8211 = $2;
$8212 = ((($8211)) + 14|0);
$8213 = HEAP8[$8212>>0]|0;
$8214 = $8213&255;
$8215 = 120 ^ $8214;
$8216 = (44992 + ($8215)|0);
$8217 = HEAP8[$8216>>0]|0;
$8218 = $8217&255;
$8219 = $2;
$8220 = ((($8219)) + 6|0);
$8221 = HEAP8[$8220>>0]|0;
$8222 = $8221&255;
$8223 = $8218 ^ $8222;
$8224 = ((10424) + ($8223<<2)|0);
$8225 = HEAP32[$8224>>2]|0;
$8226 = $8210 ^ $8225;
$8227 = $2;
$8228 = ((($8227)) + 15|0);
$8229 = HEAP8[$8228>>0]|0;
$8230 = $8229&255;
$8231 = 107 ^ $8230;
$8232 = (44992 + ($8231)|0);
$8233 = HEAP8[$8232>>0]|0;
$8234 = $8233&255;
$8235 = $2;
$8236 = ((($8235)) + 7|0);
$8237 = HEAP8[$8236>>0]|0;
$8238 = $8237&255;
$8239 = $8234 ^ $8238;
$8240 = ((11448) + ($8239<<2)|0);
$8241 = HEAP32[$8240>>2]|0;
$8242 = $8226 ^ $8241;
$y = $8242;
$8243 = $y;
$8244 = $8243 << 8;
$8245 = $y;
$8246 = $8245 >>> 24;
$8247 = (($8244) + ($8246))|0;
$y = $8247;
$8248 = $y;
$8249 = $x;
$8250 = (($8249) + ($8248))|0;
$x = $8250;
$8251 = $x;
$8252 = $y;
$8253 = (($8252) + ($8251))|0;
$y = $8253;
$8254 = $x;
$8255 = $1;
$8256 = ((($8255)) + 4128|0);
$8257 = ((($8256)) + 8|0);
HEAP32[$8257>>2] = $8254;
$8258 = $y;
$8259 = $8258 << 9;
$8260 = $y;
$8261 = $8260 >>> 23;
$8262 = (($8259) + ($8261))|0;
$8263 = $1;
$8264 = ((($8263)) + 4128|0);
$8265 = ((($8264)) + 12|0);
HEAP32[$8265>>2] = $8262;
$8266 = $2;
$8267 = ((($8266)) + 8|0);
$8268 = HEAP8[$8267>>0]|0;
$8269 = $8268&255;
$8270 = 228 ^ $8269;
$8271 = (45248 + ($8270)|0);
$8272 = HEAP8[$8271>>0]|0;
$8273 = $8272&255;
$8274 = $2;
$8275 = HEAP8[$8274>>0]|0;
$8276 = $8275&255;
$8277 = $8273 ^ $8276;
$8278 = (8376 + ($8277<<2)|0);
$8279 = HEAP32[$8278>>2]|0;
$8280 = $2;
$8281 = ((($8280)) + 9|0);
$8282 = HEAP8[$8281>>0]|0;
$8283 = $8282&255;
$8284 = 69 ^ $8283;
$8285 = (45248 + ($8284)|0);
$8286 = HEAP8[$8285>>0]|0;
$8287 = $8286&255;
$8288 = $2;
$8289 = ((($8288)) + 1|0);
$8290 = HEAP8[$8289>>0]|0;
$8291 = $8290&255;
$8292 = $8287 ^ $8291;
$8293 = ((9400) + ($8292<<2)|0);
$8294 = HEAP32[$8293>>2]|0;
$8295 = $8279 ^ $8294;
$8296 = $2;
$8297 = ((($8296)) + 10|0);
$8298 = HEAP8[$8297>>0]|0;
$8299 = $8298&255;
$8300 = 228 ^ $8299;
$8301 = (44992 + ($8300)|0);
$8302 = HEAP8[$8301>>0]|0;
$8303 = $8302&255;
$8304 = $2;
$8305 = ((($8304)) + 2|0);
$8306 = HEAP8[$8305>>0]|0;
$8307 = $8306&255;
$8308 = $8303 ^ $8307;
$8309 = ((10424) + ($8308<<2)|0);
$8310 = HEAP32[$8309>>2]|0;
$8311 = $8295 ^ $8310;
$8312 = $2;
$8313 = ((($8312)) + 11|0);
$8314 = HEAP8[$8313>>0]|0;
$8315 = $8314&255;
$8316 = 69 ^ $8315;
$8317 = (44992 + ($8316)|0);
$8318 = HEAP8[$8317>>0]|0;
$8319 = $8318&255;
$8320 = $2;
$8321 = ((($8320)) + 3|0);
$8322 = HEAP8[$8321>>0]|0;
$8323 = $8322&255;
$8324 = $8319 ^ $8323;
$8325 = ((11448) + ($8324<<2)|0);
$8326 = HEAP32[$8325>>2]|0;
$8327 = $8311 ^ $8326;
$x = $8327;
$8328 = $2;
$8329 = ((($8328)) + 12|0);
$8330 = HEAP8[$8329>>0]|0;
$8331 = $8330&255;
$8332 = 221 ^ $8331;
$8333 = (45248 + ($8332)|0);
$8334 = HEAP8[$8333>>0]|0;
$8335 = $8334&255;
$8336 = $2;
$8337 = ((($8336)) + 4|0);
$8338 = HEAP8[$8337>>0]|0;
$8339 = $8338&255;
$8340 = $8335 ^ $8339;
$8341 = (8376 + ($8340<<2)|0);
$8342 = HEAP32[$8341>>2]|0;
$8343 = $2;
$8344 = ((($8343)) + 13|0);
$8345 = HEAP8[$8344>>0]|0;
$8346 = $8345&255;
$8347 = 125 ^ $8346;
$8348 = (45248 + ($8347)|0);
$8349 = HEAP8[$8348>>0]|0;
$8350 = $8349&255;
$8351 = $2;
$8352 = ((($8351)) + 5|0);
$8353 = HEAP8[$8352>>0]|0;
$8354 = $8353&255;
$8355 = $8350 ^ $8354;
$8356 = ((9400) + ($8355<<2)|0);
$8357 = HEAP32[$8356>>2]|0;
$8358 = $8342 ^ $8357;
$8359 = $2;
$8360 = ((($8359)) + 14|0);
$8361 = HEAP8[$8360>>0]|0;
$8362 = $8361&255;
$8363 = 221 ^ $8362;
$8364 = (44992 + ($8363)|0);
$8365 = HEAP8[$8364>>0]|0;
$8366 = $8365&255;
$8367 = $2;
$8368 = ((($8367)) + 6|0);
$8369 = HEAP8[$8368>>0]|0;
$8370 = $8369&255;
$8371 = $8366 ^ $8370;
$8372 = ((10424) + ($8371<<2)|0);
$8373 = HEAP32[$8372>>2]|0;
$8374 = $8358 ^ $8373;
$8375 = $2;
$8376 = ((($8375)) + 15|0);
$8377 = HEAP8[$8376>>0]|0;
$8378 = $8377&255;
$8379 = 125 ^ $8378;
$8380 = (44992 + ($8379)|0);
$8381 = HEAP8[$8380>>0]|0;
$8382 = $8381&255;
$8383 = $2;
$8384 = ((($8383)) + 7|0);
$8385 = HEAP8[$8384>>0]|0;
$8386 = $8385&255;
$8387 = $8382 ^ $8386;
$8388 = ((11448) + ($8387<<2)|0);
$8389 = HEAP32[$8388>>2]|0;
$8390 = $8374 ^ $8389;
$y = $8390;
$8391 = $y;
$8392 = $8391 << 8;
$8393 = $y;
$8394 = $8393 >>> 24;
$8395 = (($8392) + ($8394))|0;
$y = $8395;
$8396 = $y;
$8397 = $x;
$8398 = (($8397) + ($8396))|0;
$x = $8398;
$8399 = $x;
$8400 = $y;
$8401 = (($8400) + ($8399))|0;
$y = $8401;
$8402 = $x;
$8403 = $1;
$8404 = ((($8403)) + 4128|0);
$8405 = ((($8404)) + 16|0);
HEAP32[$8405>>2] = $8402;
$8406 = $y;
$8407 = $8406 << 9;
$8408 = $y;
$8409 = $8408 >>> 23;
$8410 = (($8407) + ($8409))|0;
$8411 = $1;
$8412 = ((($8411)) + 4128|0);
$8413 = ((($8412)) + 20|0);
HEAP32[$8413>>2] = $8410;
$8414 = $2;
$8415 = ((($8414)) + 8|0);
$8416 = HEAP8[$8415>>0]|0;
$8417 = $8416&255;
$8418 = 209 ^ $8417;
$8419 = (45248 + ($8418)|0);
$8420 = HEAP8[$8419>>0]|0;
$8421 = $8420&255;
$8422 = $2;
$8423 = HEAP8[$8422>>0]|0;
$8424 = $8423&255;
$8425 = $8421 ^ $8424;
$8426 = (8376 + ($8425<<2)|0);
$8427 = HEAP32[$8426>>2]|0;
$8428 = $2;
$8429 = ((($8428)) + 9|0);
$8430 = HEAP8[$8429>>0]|0;
$8431 = $8430&255;
$8432 = 232 ^ $8431;
$8433 = (45248 + ($8432)|0);
$8434 = HEAP8[$8433>>0]|0;
$8435 = $8434&255;
$8436 = $2;
$8437 = ((($8436)) + 1|0);
$8438 = HEAP8[$8437>>0]|0;
$8439 = $8438&255;
$8440 = $8435 ^ $8439;
$8441 = ((9400) + ($8440<<2)|0);
$8442 = HEAP32[$8441>>2]|0;
$8443 = $8427 ^ $8442;
$8444 = $2;
$8445 = ((($8444)) + 10|0);
$8446 = HEAP8[$8445>>0]|0;
$8447 = $8446&255;
$8448 = 209 ^ $8447;
$8449 = (44992 + ($8448)|0);
$8450 = HEAP8[$8449>>0]|0;
$8451 = $8450&255;
$8452 = $2;
$8453 = ((($8452)) + 2|0);
$8454 = HEAP8[$8453>>0]|0;
$8455 = $8454&255;
$8456 = $8451 ^ $8455;
$8457 = ((10424) + ($8456<<2)|0);
$8458 = HEAP32[$8457>>2]|0;
$8459 = $8443 ^ $8458;
$8460 = $2;
$8461 = ((($8460)) + 11|0);
$8462 = HEAP8[$8461>>0]|0;
$8463 = $8462&255;
$8464 = 232 ^ $8463;
$8465 = (44992 + ($8464)|0);
$8466 = HEAP8[$8465>>0]|0;
$8467 = $8466&255;
$8468 = $2;
$8469 = ((($8468)) + 3|0);
$8470 = HEAP8[$8469>>0]|0;
$8471 = $8470&255;
$8472 = $8467 ^ $8471;
$8473 = ((11448) + ($8472<<2)|0);
$8474 = HEAP32[$8473>>2]|0;
$8475 = $8459 ^ $8474;
$x = $8475;
$8476 = $2;
$8477 = ((($8476)) + 12|0);
$8478 = HEAP8[$8477>>0]|0;
$8479 = $8478&255;
$8480 = 56 ^ $8479;
$8481 = (45248 + ($8480)|0);
$8482 = HEAP8[$8481>>0]|0;
$8483 = $8482&255;
$8484 = $2;
$8485 = ((($8484)) + 4|0);
$8486 = HEAP8[$8485>>0]|0;
$8487 = $8486&255;
$8488 = $8483 ^ $8487;
$8489 = (8376 + ($8488<<2)|0);
$8490 = HEAP32[$8489>>2]|0;
$8491 = $2;
$8492 = ((($8491)) + 13|0);
$8493 = HEAP8[$8492>>0]|0;
$8494 = $8493&255;
$8495 = 75 ^ $8494;
$8496 = (45248 + ($8495)|0);
$8497 = HEAP8[$8496>>0]|0;
$8498 = $8497&255;
$8499 = $2;
$8500 = ((($8499)) + 5|0);
$8501 = HEAP8[$8500>>0]|0;
$8502 = $8501&255;
$8503 = $8498 ^ $8502;
$8504 = ((9400) + ($8503<<2)|0);
$8505 = HEAP32[$8504>>2]|0;
$8506 = $8490 ^ $8505;
$8507 = $2;
$8508 = ((($8507)) + 14|0);
$8509 = HEAP8[$8508>>0]|0;
$8510 = $8509&255;
$8511 = 56 ^ $8510;
$8512 = (44992 + ($8511)|0);
$8513 = HEAP8[$8512>>0]|0;
$8514 = $8513&255;
$8515 = $2;
$8516 = ((($8515)) + 6|0);
$8517 = HEAP8[$8516>>0]|0;
$8518 = $8517&255;
$8519 = $8514 ^ $8518;
$8520 = ((10424) + ($8519<<2)|0);
$8521 = HEAP32[$8520>>2]|0;
$8522 = $8506 ^ $8521;
$8523 = $2;
$8524 = ((($8523)) + 15|0);
$8525 = HEAP8[$8524>>0]|0;
$8526 = $8525&255;
$8527 = 75 ^ $8526;
$8528 = (44992 + ($8527)|0);
$8529 = HEAP8[$8528>>0]|0;
$8530 = $8529&255;
$8531 = $2;
$8532 = ((($8531)) + 7|0);
$8533 = HEAP8[$8532>>0]|0;
$8534 = $8533&255;
$8535 = $8530 ^ $8534;
$8536 = ((11448) + ($8535<<2)|0);
$8537 = HEAP32[$8536>>2]|0;
$8538 = $8522 ^ $8537;
$y = $8538;
$8539 = $y;
$8540 = $8539 << 8;
$8541 = $y;
$8542 = $8541 >>> 24;
$8543 = (($8540) + ($8542))|0;
$y = $8543;
$8544 = $y;
$8545 = $x;
$8546 = (($8545) + ($8544))|0;
$x = $8546;
$8547 = $x;
$8548 = $y;
$8549 = (($8548) + ($8547))|0;
$y = $8549;
$8550 = $x;
$8551 = $1;
$8552 = ((($8551)) + 4128|0);
$8553 = ((($8552)) + 24|0);
HEAP32[$8553>>2] = $8550;
$8554 = $y;
$8555 = $8554 << 9;
$8556 = $y;
$8557 = $8556 >>> 23;
$8558 = (($8555) + ($8557))|0;
$8559 = $1;
$8560 = ((($8559)) + 4128|0);
$8561 = ((($8560)) + 28|0);
HEAP32[$8561>>2] = $8558;
$8562 = $2;
$8563 = ((($8562)) + 8|0);
$8564 = HEAP8[$8563>>0]|0;
$8565 = $8564&255;
$8566 = 13 ^ $8565;
$8567 = (45248 + ($8566)|0);
$8568 = HEAP8[$8567>>0]|0;
$8569 = $8568&255;
$8570 = $2;
$8571 = HEAP8[$8570>>0]|0;
$8572 = $8571&255;
$8573 = $8569 ^ $8572;
$8574 = (8376 + ($8573<<2)|0);
$8575 = HEAP32[$8574>>2]|0;
$8576 = $2;
$8577 = ((($8576)) + 9|0);
$8578 = HEAP8[$8577>>0]|0;
$8579 = $8578&255;
$8580 = 214 ^ $8579;
$8581 = (45248 + ($8580)|0);
$8582 = HEAP8[$8581>>0]|0;
$8583 = $8582&255;
$8584 = $2;
$8585 = ((($8584)) + 1|0);
$8586 = HEAP8[$8585>>0]|0;
$8587 = $8586&255;
$8588 = $8583 ^ $8587;
$8589 = ((9400) + ($8588<<2)|0);
$8590 = HEAP32[$8589>>2]|0;
$8591 = $8575 ^ $8590;
$8592 = $2;
$8593 = ((($8592)) + 10|0);
$8594 = HEAP8[$8593>>0]|0;
$8595 = $8594&255;
$8596 = 13 ^ $8595;
$8597 = (44992 + ($8596)|0);
$8598 = HEAP8[$8597>>0]|0;
$8599 = $8598&255;
$8600 = $2;
$8601 = ((($8600)) + 2|0);
$8602 = HEAP8[$8601>>0]|0;
$8603 = $8602&255;
$8604 = $8599 ^ $8603;
$8605 = ((10424) + ($8604<<2)|0);
$8606 = HEAP32[$8605>>2]|0;
$8607 = $8591 ^ $8606;
$8608 = $2;
$8609 = ((($8608)) + 11|0);
$8610 = HEAP8[$8609>>0]|0;
$8611 = $8610&255;
$8612 = 214 ^ $8611;
$8613 = (44992 + ($8612)|0);
$8614 = HEAP8[$8613>>0]|0;
$8615 = $8614&255;
$8616 = $2;
$8617 = ((($8616)) + 3|0);
$8618 = HEAP8[$8617>>0]|0;
$8619 = $8618&255;
$8620 = $8615 ^ $8619;
$8621 = ((11448) + ($8620<<2)|0);
$8622 = HEAP32[$8621>>2]|0;
$8623 = $8607 ^ $8622;
$x = $8623;
$8624 = $2;
$8625 = ((($8624)) + 12|0);
$8626 = HEAP8[$8625>>0]|0;
$8627 = $8626&255;
$8628 = 198 ^ $8627;
$8629 = (45248 + ($8628)|0);
$8630 = HEAP8[$8629>>0]|0;
$8631 = $8630&255;
$8632 = $2;
$8633 = ((($8632)) + 4|0);
$8634 = HEAP8[$8633>>0]|0;
$8635 = $8634&255;
$8636 = $8631 ^ $8635;
$8637 = (8376 + ($8636<<2)|0);
$8638 = HEAP32[$8637>>2]|0;
$8639 = $2;
$8640 = ((($8639)) + 13|0);
$8641 = HEAP8[$8640>>0]|0;
$8642 = $8641&255;
$8643 = 50 ^ $8642;
$8644 = (45248 + ($8643)|0);
$8645 = HEAP8[$8644>>0]|0;
$8646 = $8645&255;
$8647 = $2;
$8648 = ((($8647)) + 5|0);
$8649 = HEAP8[$8648>>0]|0;
$8650 = $8649&255;
$8651 = $8646 ^ $8650;
$8652 = ((9400) + ($8651<<2)|0);
$8653 = HEAP32[$8652>>2]|0;
$8654 = $8638 ^ $8653;
$8655 = $2;
$8656 = ((($8655)) + 14|0);
$8657 = HEAP8[$8656>>0]|0;
$8658 = $8657&255;
$8659 = 198 ^ $8658;
$8660 = (44992 + ($8659)|0);
$8661 = HEAP8[$8660>>0]|0;
$8662 = $8661&255;
$8663 = $2;
$8664 = ((($8663)) + 6|0);
$8665 = HEAP8[$8664>>0]|0;
$8666 = $8665&255;
$8667 = $8662 ^ $8666;
$8668 = ((10424) + ($8667<<2)|0);
$8669 = HEAP32[$8668>>2]|0;
$8670 = $8654 ^ $8669;
$8671 = $2;
$8672 = ((($8671)) + 15|0);
$8673 = HEAP8[$8672>>0]|0;
$8674 = $8673&255;
$8675 = 50 ^ $8674;
$8676 = (44992 + ($8675)|0);
$8677 = HEAP8[$8676>>0]|0;
$8678 = $8677&255;
$8679 = $2;
$8680 = ((($8679)) + 7|0);
$8681 = HEAP8[$8680>>0]|0;
$8682 = $8681&255;
$8683 = $8678 ^ $8682;
$8684 = ((11448) + ($8683<<2)|0);
$8685 = HEAP32[$8684>>2]|0;
$8686 = $8670 ^ $8685;
$y = $8686;
$8687 = $y;
$8688 = $8687 << 8;
$8689 = $y;
$8690 = $8689 >>> 24;
$8691 = (($8688) + ($8690))|0;
$y = $8691;
$8692 = $y;
$8693 = $x;
$8694 = (($8693) + ($8692))|0;
$x = $8694;
$8695 = $x;
$8696 = $y;
$8697 = (($8696) + ($8695))|0;
$y = $8697;
$8698 = $x;
$8699 = $1;
$8700 = ((($8699)) + 4128|0);
$8701 = ((($8700)) + 32|0);
HEAP32[$8701>>2] = $8698;
$8702 = $y;
$8703 = $8702 << 9;
$8704 = $y;
$8705 = $8704 >>> 23;
$8706 = (($8703) + ($8705))|0;
$8707 = $1;
$8708 = ((($8707)) + 4128|0);
$8709 = ((($8708)) + 36|0);
HEAP32[$8709>>2] = $8706;
$8710 = $2;
$8711 = ((($8710)) + 8|0);
$8712 = HEAP8[$8711>>0]|0;
$8713 = $8712&255;
$8714 = 53 ^ $8713;
$8715 = (45248 + ($8714)|0);
$8716 = HEAP8[$8715>>0]|0;
$8717 = $8716&255;
$8718 = $2;
$8719 = HEAP8[$8718>>0]|0;
$8720 = $8719&255;
$8721 = $8717 ^ $8720;
$8722 = (8376 + ($8721<<2)|0);
$8723 = HEAP32[$8722>>2]|0;
$8724 = $2;
$8725 = ((($8724)) + 9|0);
$8726 = HEAP8[$8725>>0]|0;
$8727 = $8726&255;
$8728 = 216 ^ $8727;
$8729 = (45248 + ($8728)|0);
$8730 = HEAP8[$8729>>0]|0;
$8731 = $8730&255;
$8732 = $2;
$8733 = ((($8732)) + 1|0);
$8734 = HEAP8[$8733>>0]|0;
$8735 = $8734&255;
$8736 = $8731 ^ $8735;
$8737 = ((9400) + ($8736<<2)|0);
$8738 = HEAP32[$8737>>2]|0;
$8739 = $8723 ^ $8738;
$8740 = $2;
$8741 = ((($8740)) + 10|0);
$8742 = HEAP8[$8741>>0]|0;
$8743 = $8742&255;
$8744 = 53 ^ $8743;
$8745 = (44992 + ($8744)|0);
$8746 = HEAP8[$8745>>0]|0;
$8747 = $8746&255;
$8748 = $2;
$8749 = ((($8748)) + 2|0);
$8750 = HEAP8[$8749>>0]|0;
$8751 = $8750&255;
$8752 = $8747 ^ $8751;
$8753 = ((10424) + ($8752<<2)|0);
$8754 = HEAP32[$8753>>2]|0;
$8755 = $8739 ^ $8754;
$8756 = $2;
$8757 = ((($8756)) + 11|0);
$8758 = HEAP8[$8757>>0]|0;
$8759 = $8758&255;
$8760 = 216 ^ $8759;
$8761 = (44992 + ($8760)|0);
$8762 = HEAP8[$8761>>0]|0;
$8763 = $8762&255;
$8764 = $2;
$8765 = ((($8764)) + 3|0);
$8766 = HEAP8[$8765>>0]|0;
$8767 = $8766&255;
$8768 = $8763 ^ $8767;
$8769 = ((11448) + ($8768<<2)|0);
$8770 = HEAP32[$8769>>2]|0;
$8771 = $8755 ^ $8770;
$x = $8771;
$8772 = $2;
$8773 = ((($8772)) + 12|0);
$8774 = HEAP8[$8773>>0]|0;
$8775 = $8774&255;
$8776 = 152 ^ $8775;
$8777 = (45248 + ($8776)|0);
$8778 = HEAP8[$8777>>0]|0;
$8779 = $8778&255;
$8780 = $2;
$8781 = ((($8780)) + 4|0);
$8782 = HEAP8[$8781>>0]|0;
$8783 = $8782&255;
$8784 = $8779 ^ $8783;
$8785 = (8376 + ($8784<<2)|0);
$8786 = HEAP32[$8785>>2]|0;
$8787 = $2;
$8788 = ((($8787)) + 13|0);
$8789 = HEAP8[$8788>>0]|0;
$8790 = $8789&255;
$8791 = 253 ^ $8790;
$8792 = (45248 + ($8791)|0);
$8793 = HEAP8[$8792>>0]|0;
$8794 = $8793&255;
$8795 = $2;
$8796 = ((($8795)) + 5|0);
$8797 = HEAP8[$8796>>0]|0;
$8798 = $8797&255;
$8799 = $8794 ^ $8798;
$8800 = ((9400) + ($8799<<2)|0);
$8801 = HEAP32[$8800>>2]|0;
$8802 = $8786 ^ $8801;
$8803 = $2;
$8804 = ((($8803)) + 14|0);
$8805 = HEAP8[$8804>>0]|0;
$8806 = $8805&255;
$8807 = 152 ^ $8806;
$8808 = (44992 + ($8807)|0);
$8809 = HEAP8[$8808>>0]|0;
$8810 = $8809&255;
$8811 = $2;
$8812 = ((($8811)) + 6|0);
$8813 = HEAP8[$8812>>0]|0;
$8814 = $8813&255;
$8815 = $8810 ^ $8814;
$8816 = ((10424) + ($8815<<2)|0);
$8817 = HEAP32[$8816>>2]|0;
$8818 = $8802 ^ $8817;
$8819 = $2;
$8820 = ((($8819)) + 15|0);
$8821 = HEAP8[$8820>>0]|0;
$8822 = $8821&255;
$8823 = 253 ^ $8822;
$8824 = (44992 + ($8823)|0);
$8825 = HEAP8[$8824>>0]|0;
$8826 = $8825&255;
$8827 = $2;
$8828 = ((($8827)) + 7|0);
$8829 = HEAP8[$8828>>0]|0;
$8830 = $8829&255;
$8831 = $8826 ^ $8830;
$8832 = ((11448) + ($8831<<2)|0);
$8833 = HEAP32[$8832>>2]|0;
$8834 = $8818 ^ $8833;
$y = $8834;
$8835 = $y;
$8836 = $8835 << 8;
$8837 = $y;
$8838 = $8837 >>> 24;
$8839 = (($8836) + ($8838))|0;
$y = $8839;
$8840 = $y;
$8841 = $x;
$8842 = (($8841) + ($8840))|0;
$x = $8842;
$8843 = $x;
$8844 = $y;
$8845 = (($8844) + ($8843))|0;
$y = $8845;
$8846 = $x;
$8847 = $1;
$8848 = ((($8847)) + 4128|0);
$8849 = ((($8848)) + 40|0);
HEAP32[$8849>>2] = $8846;
$8850 = $y;
$8851 = $8850 << 9;
$8852 = $y;
$8853 = $8852 >>> 23;
$8854 = (($8851) + ($8853))|0;
$8855 = $1;
$8856 = ((($8855)) + 4128|0);
$8857 = ((($8856)) + 44|0);
HEAP32[$8857>>2] = $8854;
$8858 = $2;
$8859 = ((($8858)) + 8|0);
$8860 = HEAP8[$8859>>0]|0;
$8861 = $8860&255;
$8862 = 24 ^ $8861;
$8863 = (45248 + ($8862)|0);
$8864 = HEAP8[$8863>>0]|0;
$8865 = $8864&255;
$8866 = $2;
$8867 = HEAP8[$8866>>0]|0;
$8868 = $8867&255;
$8869 = $8865 ^ $8868;
$8870 = (8376 + ($8869<<2)|0);
$8871 = HEAP32[$8870>>2]|0;
$8872 = $2;
$8873 = ((($8872)) + 9|0);
$8874 = HEAP8[$8873>>0]|0;
$8875 = $8874&255;
$8876 = 55 ^ $8875;
$8877 = (45248 + ($8876)|0);
$8878 = HEAP8[$8877>>0]|0;
$8879 = $8878&255;
$8880 = $2;
$8881 = ((($8880)) + 1|0);
$8882 = HEAP8[$8881>>0]|0;
$8883 = $8882&255;
$8884 = $8879 ^ $8883;
$8885 = ((9400) + ($8884<<2)|0);
$8886 = HEAP32[$8885>>2]|0;
$8887 = $8871 ^ $8886;
$8888 = $2;
$8889 = ((($8888)) + 10|0);
$8890 = HEAP8[$8889>>0]|0;
$8891 = $8890&255;
$8892 = 24 ^ $8891;
$8893 = (44992 + ($8892)|0);
$8894 = HEAP8[$8893>>0]|0;
$8895 = $8894&255;
$8896 = $2;
$8897 = ((($8896)) + 2|0);
$8898 = HEAP8[$8897>>0]|0;
$8899 = $8898&255;
$8900 = $8895 ^ $8899;
$8901 = ((10424) + ($8900<<2)|0);
$8902 = HEAP32[$8901>>2]|0;
$8903 = $8887 ^ $8902;
$8904 = $2;
$8905 = ((($8904)) + 11|0);
$8906 = HEAP8[$8905>>0]|0;
$8907 = $8906&255;
$8908 = 55 ^ $8907;
$8909 = (44992 + ($8908)|0);
$8910 = HEAP8[$8909>>0]|0;
$8911 = $8910&255;
$8912 = $2;
$8913 = ((($8912)) + 3|0);
$8914 = HEAP8[$8913>>0]|0;
$8915 = $8914&255;
$8916 = $8911 ^ $8915;
$8917 = ((11448) + ($8916<<2)|0);
$8918 = HEAP32[$8917>>2]|0;
$8919 = $8903 ^ $8918;
$x = $8919;
$8920 = $2;
$8921 = ((($8920)) + 12|0);
$8922 = HEAP8[$8921>>0]|0;
$8923 = $8922&255;
$8924 = 247 ^ $8923;
$8925 = (45248 + ($8924)|0);
$8926 = HEAP8[$8925>>0]|0;
$8927 = $8926&255;
$8928 = $2;
$8929 = ((($8928)) + 4|0);
$8930 = HEAP8[$8929>>0]|0;
$8931 = $8930&255;
$8932 = $8927 ^ $8931;
$8933 = (8376 + ($8932<<2)|0);
$8934 = HEAP32[$8933>>2]|0;
$8935 = $2;
$8936 = ((($8935)) + 13|0);
$8937 = HEAP8[$8936>>0]|0;
$8938 = $8937&255;
$8939 = 113 ^ $8938;
$8940 = (45248 + ($8939)|0);
$8941 = HEAP8[$8940>>0]|0;
$8942 = $8941&255;
$8943 = $2;
$8944 = ((($8943)) + 5|0);
$8945 = HEAP8[$8944>>0]|0;
$8946 = $8945&255;
$8947 = $8942 ^ $8946;
$8948 = ((9400) + ($8947<<2)|0);
$8949 = HEAP32[$8948>>2]|0;
$8950 = $8934 ^ $8949;
$8951 = $2;
$8952 = ((($8951)) + 14|0);
$8953 = HEAP8[$8952>>0]|0;
$8954 = $8953&255;
$8955 = 247 ^ $8954;
$8956 = (44992 + ($8955)|0);
$8957 = HEAP8[$8956>>0]|0;
$8958 = $8957&255;
$8959 = $2;
$8960 = ((($8959)) + 6|0);
$8961 = HEAP8[$8960>>0]|0;
$8962 = $8961&255;
$8963 = $8958 ^ $8962;
$8964 = ((10424) + ($8963<<2)|0);
$8965 = HEAP32[$8964>>2]|0;
$8966 = $8950 ^ $8965;
$8967 = $2;
$8968 = ((($8967)) + 15|0);
$8969 = HEAP8[$8968>>0]|0;
$8970 = $8969&255;
$8971 = 113 ^ $8970;
$8972 = (44992 + ($8971)|0);
$8973 = HEAP8[$8972>>0]|0;
$8974 = $8973&255;
$8975 = $2;
$8976 = ((($8975)) + 7|0);
$8977 = HEAP8[$8976>>0]|0;
$8978 = $8977&255;
$8979 = $8974 ^ $8978;
$8980 = ((11448) + ($8979<<2)|0);
$8981 = HEAP32[$8980>>2]|0;
$8982 = $8966 ^ $8981;
$y = $8982;
$8983 = $y;
$8984 = $8983 << 8;
$8985 = $y;
$8986 = $8985 >>> 24;
$8987 = (($8984) + ($8986))|0;
$y = $8987;
$8988 = $y;
$8989 = $x;
$8990 = (($8989) + ($8988))|0;
$x = $8990;
$8991 = $x;
$8992 = $y;
$8993 = (($8992) + ($8991))|0;
$y = $8993;
$8994 = $x;
$8995 = $1;
$8996 = ((($8995)) + 4128|0);
$8997 = ((($8996)) + 48|0);
HEAP32[$8997>>2] = $8994;
$8998 = $y;
$8999 = $8998 << 9;
$9000 = $y;
$9001 = $9000 >>> 23;
$9002 = (($8999) + ($9001))|0;
$9003 = $1;
$9004 = ((($9003)) + 4128|0);
$9005 = ((($9004)) + 52|0);
HEAP32[$9005>>2] = $9002;
$9006 = $2;
$9007 = ((($9006)) + 8|0);
$9008 = HEAP8[$9007>>0]|0;
$9009 = $9008&255;
$9010 = 236 ^ $9009;
$9011 = (45248 + ($9010)|0);
$9012 = HEAP8[$9011>>0]|0;
$9013 = $9012&255;
$9014 = $2;
$9015 = HEAP8[$9014>>0]|0;
$9016 = $9015&255;
$9017 = $9013 ^ $9016;
$9018 = (8376 + ($9017<<2)|0);
$9019 = HEAP32[$9018>>2]|0;
$9020 = $2;
$9021 = ((($9020)) + 9|0);
$9022 = HEAP8[$9021>>0]|0;
$9023 = $9022&255;
$9024 = 241 ^ $9023;
$9025 = (45248 + ($9024)|0);
$9026 = HEAP8[$9025>>0]|0;
$9027 = $9026&255;
$9028 = $2;
$9029 = ((($9028)) + 1|0);
$9030 = HEAP8[$9029>>0]|0;
$9031 = $9030&255;
$9032 = $9027 ^ $9031;
$9033 = ((9400) + ($9032<<2)|0);
$9034 = HEAP32[$9033>>2]|0;
$9035 = $9019 ^ $9034;
$9036 = $2;
$9037 = ((($9036)) + 10|0);
$9038 = HEAP8[$9037>>0]|0;
$9039 = $9038&255;
$9040 = 236 ^ $9039;
$9041 = (44992 + ($9040)|0);
$9042 = HEAP8[$9041>>0]|0;
$9043 = $9042&255;
$9044 = $2;
$9045 = ((($9044)) + 2|0);
$9046 = HEAP8[$9045>>0]|0;
$9047 = $9046&255;
$9048 = $9043 ^ $9047;
$9049 = ((10424) + ($9048<<2)|0);
$9050 = HEAP32[$9049>>2]|0;
$9051 = $9035 ^ $9050;
$9052 = $2;
$9053 = ((($9052)) + 11|0);
$9054 = HEAP8[$9053>>0]|0;
$9055 = $9054&255;
$9056 = 241 ^ $9055;
$9057 = (44992 + ($9056)|0);
$9058 = HEAP8[$9057>>0]|0;
$9059 = $9058&255;
$9060 = $2;
$9061 = ((($9060)) + 3|0);
$9062 = HEAP8[$9061>>0]|0;
$9063 = $9062&255;
$9064 = $9059 ^ $9063;
$9065 = ((11448) + ($9064<<2)|0);
$9066 = HEAP32[$9065>>2]|0;
$9067 = $9051 ^ $9066;
$x = $9067;
$9068 = $2;
$9069 = ((($9068)) + 12|0);
$9070 = HEAP8[$9069>>0]|0;
$9071 = $9070&255;
$9072 = 108 ^ $9071;
$9073 = (45248 + ($9072)|0);
$9074 = HEAP8[$9073>>0]|0;
$9075 = $9074&255;
$9076 = $2;
$9077 = ((($9076)) + 4|0);
$9078 = HEAP8[$9077>>0]|0;
$9079 = $9078&255;
$9080 = $9075 ^ $9079;
$9081 = (8376 + ($9080<<2)|0);
$9082 = HEAP32[$9081>>2]|0;
$9083 = $2;
$9084 = ((($9083)) + 13|0);
$9085 = HEAP8[$9084>>0]|0;
$9086 = $9085&255;
$9087 = 225 ^ $9086;
$9088 = (45248 + ($9087)|0);
$9089 = HEAP8[$9088>>0]|0;
$9090 = $9089&255;
$9091 = $2;
$9092 = ((($9091)) + 5|0);
$9093 = HEAP8[$9092>>0]|0;
$9094 = $9093&255;
$9095 = $9090 ^ $9094;
$9096 = ((9400) + ($9095<<2)|0);
$9097 = HEAP32[$9096>>2]|0;
$9098 = $9082 ^ $9097;
$9099 = $2;
$9100 = ((($9099)) + 14|0);
$9101 = HEAP8[$9100>>0]|0;
$9102 = $9101&255;
$9103 = 108 ^ $9102;
$9104 = (44992 + ($9103)|0);
$9105 = HEAP8[$9104>>0]|0;
$9106 = $9105&255;
$9107 = $2;
$9108 = ((($9107)) + 6|0);
$9109 = HEAP8[$9108>>0]|0;
$9110 = $9109&255;
$9111 = $9106 ^ $9110;
$9112 = ((10424) + ($9111<<2)|0);
$9113 = HEAP32[$9112>>2]|0;
$9114 = $9098 ^ $9113;
$9115 = $2;
$9116 = ((($9115)) + 15|0);
$9117 = HEAP8[$9116>>0]|0;
$9118 = $9117&255;
$9119 = 225 ^ $9118;
$9120 = (44992 + ($9119)|0);
$9121 = HEAP8[$9120>>0]|0;
$9122 = $9121&255;
$9123 = $2;
$9124 = ((($9123)) + 7|0);
$9125 = HEAP8[$9124>>0]|0;
$9126 = $9125&255;
$9127 = $9122 ^ $9126;
$9128 = ((11448) + ($9127<<2)|0);
$9129 = HEAP32[$9128>>2]|0;
$9130 = $9114 ^ $9129;
$y = $9130;
$9131 = $y;
$9132 = $9131 << 8;
$9133 = $y;
$9134 = $9133 >>> 24;
$9135 = (($9132) + ($9134))|0;
$y = $9135;
$9136 = $y;
$9137 = $x;
$9138 = (($9137) + ($9136))|0;
$x = $9138;
$9139 = $x;
$9140 = $y;
$9141 = (($9140) + ($9139))|0;
$y = $9141;
$9142 = $x;
$9143 = $1;
$9144 = ((($9143)) + 4128|0);
$9145 = ((($9144)) + 56|0);
HEAP32[$9145>>2] = $9142;
$9146 = $y;
$9147 = $9146 << 9;
$9148 = $y;
$9149 = $9148 >>> 23;
$9150 = (($9147) + ($9149))|0;
$9151 = $1;
$9152 = ((($9151)) + 4128|0);
$9153 = ((($9152)) + 60|0);
HEAP32[$9153>>2] = $9150;
$9154 = $2;
$9155 = ((($9154)) + 8|0);
$9156 = HEAP8[$9155>>0]|0;
$9157 = $9156&255;
$9158 = 67 ^ $9157;
$9159 = (45248 + ($9158)|0);
$9160 = HEAP8[$9159>>0]|0;
$9161 = $9160&255;
$9162 = $2;
$9163 = HEAP8[$9162>>0]|0;
$9164 = $9163&255;
$9165 = $9161 ^ $9164;
$9166 = (8376 + ($9165<<2)|0);
$9167 = HEAP32[$9166>>2]|0;
$9168 = $2;
$9169 = ((($9168)) + 9|0);
$9170 = HEAP8[$9169>>0]|0;
$9171 = $9170&255;
$9172 = 48 ^ $9171;
$9173 = (45248 + ($9172)|0);
$9174 = HEAP8[$9173>>0]|0;
$9175 = $9174&255;
$9176 = $2;
$9177 = ((($9176)) + 1|0);
$9178 = HEAP8[$9177>>0]|0;
$9179 = $9178&255;
$9180 = $9175 ^ $9179;
$9181 = ((9400) + ($9180<<2)|0);
$9182 = HEAP32[$9181>>2]|0;
$9183 = $9167 ^ $9182;
$9184 = $2;
$9185 = ((($9184)) + 10|0);
$9186 = HEAP8[$9185>>0]|0;
$9187 = $9186&255;
$9188 = 67 ^ $9187;
$9189 = (44992 + ($9188)|0);
$9190 = HEAP8[$9189>>0]|0;
$9191 = $9190&255;
$9192 = $2;
$9193 = ((($9192)) + 2|0);
$9194 = HEAP8[$9193>>0]|0;
$9195 = $9194&255;
$9196 = $9191 ^ $9195;
$9197 = ((10424) + ($9196<<2)|0);
$9198 = HEAP32[$9197>>2]|0;
$9199 = $9183 ^ $9198;
$9200 = $2;
$9201 = ((($9200)) + 11|0);
$9202 = HEAP8[$9201>>0]|0;
$9203 = $9202&255;
$9204 = 48 ^ $9203;
$9205 = (44992 + ($9204)|0);
$9206 = HEAP8[$9205>>0]|0;
$9207 = $9206&255;
$9208 = $2;
$9209 = ((($9208)) + 3|0);
$9210 = HEAP8[$9209>>0]|0;
$9211 = $9210&255;
$9212 = $9207 ^ $9211;
$9213 = ((11448) + ($9212<<2)|0);
$9214 = HEAP32[$9213>>2]|0;
$9215 = $9199 ^ $9214;
$x = $9215;
$9216 = $2;
$9217 = ((($9216)) + 12|0);
$9218 = HEAP8[$9217>>0]|0;
$9219 = $9218&255;
$9220 = 117 ^ $9219;
$9221 = (45248 + ($9220)|0);
$9222 = HEAP8[$9221>>0]|0;
$9223 = $9222&255;
$9224 = $2;
$9225 = ((($9224)) + 4|0);
$9226 = HEAP8[$9225>>0]|0;
$9227 = $9226&255;
$9228 = $9223 ^ $9227;
$9229 = (8376 + ($9228<<2)|0);
$9230 = HEAP32[$9229>>2]|0;
$9231 = $2;
$9232 = ((($9231)) + 13|0);
$9233 = HEAP8[$9232>>0]|0;
$9234 = $9233&255;
$9235 = 15 ^ $9234;
$9236 = (45248 + ($9235)|0);
$9237 = HEAP8[$9236>>0]|0;
$9238 = $9237&255;
$9239 = $2;
$9240 = ((($9239)) + 5|0);
$9241 = HEAP8[$9240>>0]|0;
$9242 = $9241&255;
$9243 = $9238 ^ $9242;
$9244 = ((9400) + ($9243<<2)|0);
$9245 = HEAP32[$9244>>2]|0;
$9246 = $9230 ^ $9245;
$9247 = $2;
$9248 = ((($9247)) + 14|0);
$9249 = HEAP8[$9248>>0]|0;
$9250 = $9249&255;
$9251 = 117 ^ $9250;
$9252 = (44992 + ($9251)|0);
$9253 = HEAP8[$9252>>0]|0;
$9254 = $9253&255;
$9255 = $2;
$9256 = ((($9255)) + 6|0);
$9257 = HEAP8[$9256>>0]|0;
$9258 = $9257&255;
$9259 = $9254 ^ $9258;
$9260 = ((10424) + ($9259<<2)|0);
$9261 = HEAP32[$9260>>2]|0;
$9262 = $9246 ^ $9261;
$9263 = $2;
$9264 = ((($9263)) + 15|0);
$9265 = HEAP8[$9264>>0]|0;
$9266 = $9265&255;
$9267 = 15 ^ $9266;
$9268 = (44992 + ($9267)|0);
$9269 = HEAP8[$9268>>0]|0;
$9270 = $9269&255;
$9271 = $2;
$9272 = ((($9271)) + 7|0);
$9273 = HEAP8[$9272>>0]|0;
$9274 = $9273&255;
$9275 = $9270 ^ $9274;
$9276 = ((11448) + ($9275<<2)|0);
$9277 = HEAP32[$9276>>2]|0;
$9278 = $9262 ^ $9277;
$y = $9278;
$9279 = $y;
$9280 = $9279 << 8;
$9281 = $y;
$9282 = $9281 >>> 24;
$9283 = (($9280) + ($9282))|0;
$y = $9283;
$9284 = $y;
$9285 = $x;
$9286 = (($9285) + ($9284))|0;
$x = $9286;
$9287 = $x;
$9288 = $y;
$9289 = (($9288) + ($9287))|0;
$y = $9289;
$9290 = $x;
$9291 = $1;
$9292 = ((($9291)) + 4128|0);
$9293 = ((($9292)) + 64|0);
HEAP32[$9293>>2] = $9290;
$9294 = $y;
$9295 = $9294 << 9;
$9296 = $y;
$9297 = $9296 >>> 23;
$9298 = (($9295) + ($9297))|0;
$9299 = $1;
$9300 = ((($9299)) + 4128|0);
$9301 = ((($9300)) + 68|0);
HEAP32[$9301>>2] = $9298;
$9302 = $2;
$9303 = ((($9302)) + 8|0);
$9304 = HEAP8[$9303>>0]|0;
$9305 = $9304&255;
$9306 = 55 ^ $9305;
$9307 = (45248 + ($9306)|0);
$9308 = HEAP8[$9307>>0]|0;
$9309 = $9308&255;
$9310 = $2;
$9311 = HEAP8[$9310>>0]|0;
$9312 = $9311&255;
$9313 = $9309 ^ $9312;
$9314 = (8376 + ($9313<<2)|0);
$9315 = HEAP32[$9314>>2]|0;
$9316 = $2;
$9317 = ((($9316)) + 9|0);
$9318 = HEAP8[$9317>>0]|0;
$9319 = $9318&255;
$9320 = 248 ^ $9319;
$9321 = (45248 + ($9320)|0);
$9322 = HEAP8[$9321>>0]|0;
$9323 = $9322&255;
$9324 = $2;
$9325 = ((($9324)) + 1|0);
$9326 = HEAP8[$9325>>0]|0;
$9327 = $9326&255;
$9328 = $9323 ^ $9327;
$9329 = ((9400) + ($9328<<2)|0);
$9330 = HEAP32[$9329>>2]|0;
$9331 = $9315 ^ $9330;
$9332 = $2;
$9333 = ((($9332)) + 10|0);
$9334 = HEAP8[$9333>>0]|0;
$9335 = $9334&255;
$9336 = 55 ^ $9335;
$9337 = (44992 + ($9336)|0);
$9338 = HEAP8[$9337>>0]|0;
$9339 = $9338&255;
$9340 = $2;
$9341 = ((($9340)) + 2|0);
$9342 = HEAP8[$9341>>0]|0;
$9343 = $9342&255;
$9344 = $9339 ^ $9343;
$9345 = ((10424) + ($9344<<2)|0);
$9346 = HEAP32[$9345>>2]|0;
$9347 = $9331 ^ $9346;
$9348 = $2;
$9349 = ((($9348)) + 11|0);
$9350 = HEAP8[$9349>>0]|0;
$9351 = $9350&255;
$9352 = 248 ^ $9351;
$9353 = (44992 + ($9352)|0);
$9354 = HEAP8[$9353>>0]|0;
$9355 = $9354&255;
$9356 = $2;
$9357 = ((($9356)) + 3|0);
$9358 = HEAP8[$9357>>0]|0;
$9359 = $9358&255;
$9360 = $9355 ^ $9359;
$9361 = ((11448) + ($9360<<2)|0);
$9362 = HEAP32[$9361>>2]|0;
$9363 = $9347 ^ $9362;
$x = $9363;
$9364 = $2;
$9365 = ((($9364)) + 12|0);
$9366 = HEAP8[$9365>>0]|0;
$9367 = $9366&255;
$9368 = 38 ^ $9367;
$9369 = (45248 + ($9368)|0);
$9370 = HEAP8[$9369>>0]|0;
$9371 = $9370&255;
$9372 = $2;
$9373 = ((($9372)) + 4|0);
$9374 = HEAP8[$9373>>0]|0;
$9375 = $9374&255;
$9376 = $9371 ^ $9375;
$9377 = (8376 + ($9376<<2)|0);
$9378 = HEAP32[$9377>>2]|0;
$9379 = $2;
$9380 = ((($9379)) + 13|0);
$9381 = HEAP8[$9380>>0]|0;
$9382 = $9381&255;
$9383 = 27 ^ $9382;
$9384 = (45248 + ($9383)|0);
$9385 = HEAP8[$9384>>0]|0;
$9386 = $9385&255;
$9387 = $2;
$9388 = ((($9387)) + 5|0);
$9389 = HEAP8[$9388>>0]|0;
$9390 = $9389&255;
$9391 = $9386 ^ $9390;
$9392 = ((9400) + ($9391<<2)|0);
$9393 = HEAP32[$9392>>2]|0;
$9394 = $9378 ^ $9393;
$9395 = $2;
$9396 = ((($9395)) + 14|0);
$9397 = HEAP8[$9396>>0]|0;
$9398 = $9397&255;
$9399 = 38 ^ $9398;
$9400 = (44992 + ($9399)|0);
$9401 = HEAP8[$9400>>0]|0;
$9402 = $9401&255;
$9403 = $2;
$9404 = ((($9403)) + 6|0);
$9405 = HEAP8[$9404>>0]|0;
$9406 = $9405&255;
$9407 = $9402 ^ $9406;
$9408 = ((10424) + ($9407<<2)|0);
$9409 = HEAP32[$9408>>2]|0;
$9410 = $9394 ^ $9409;
$9411 = $2;
$9412 = ((($9411)) + 15|0);
$9413 = HEAP8[$9412>>0]|0;
$9414 = $9413&255;
$9415 = 27 ^ $9414;
$9416 = (44992 + ($9415)|0);
$9417 = HEAP8[$9416>>0]|0;
$9418 = $9417&255;
$9419 = $2;
$9420 = ((($9419)) + 7|0);
$9421 = HEAP8[$9420>>0]|0;
$9422 = $9421&255;
$9423 = $9418 ^ $9422;
$9424 = ((11448) + ($9423<<2)|0);
$9425 = HEAP32[$9424>>2]|0;
$9426 = $9410 ^ $9425;
$y = $9426;
$9427 = $y;
$9428 = $9427 << 8;
$9429 = $y;
$9430 = $9429 >>> 24;
$9431 = (($9428) + ($9430))|0;
$y = $9431;
$9432 = $y;
$9433 = $x;
$9434 = (($9433) + ($9432))|0;
$x = $9434;
$9435 = $x;
$9436 = $y;
$9437 = (($9436) + ($9435))|0;
$y = $9437;
$9438 = $x;
$9439 = $1;
$9440 = ((($9439)) + 4128|0);
$9441 = ((($9440)) + 72|0);
HEAP32[$9441>>2] = $9438;
$9442 = $y;
$9443 = $9442 << 9;
$9444 = $y;
$9445 = $9444 >>> 23;
$9446 = (($9443) + ($9445))|0;
$9447 = $1;
$9448 = ((($9447)) + 4128|0);
$9449 = ((($9448)) + 76|0);
HEAP32[$9449>>2] = $9446;
$9450 = $2;
$9451 = ((($9450)) + 8|0);
$9452 = HEAP8[$9451>>0]|0;
$9453 = $9452&255;
$9454 = 250 ^ $9453;
$9455 = (45248 + ($9454)|0);
$9456 = HEAP8[$9455>>0]|0;
$9457 = $9456&255;
$9458 = $2;
$9459 = HEAP8[$9458>>0]|0;
$9460 = $9459&255;
$9461 = $9457 ^ $9460;
$9462 = (8376 + ($9461<<2)|0);
$9463 = HEAP32[$9462>>2]|0;
$9464 = $2;
$9465 = ((($9464)) + 9|0);
$9466 = HEAP8[$9465>>0]|0;
$9467 = $9466&255;
$9468 = 135 ^ $9467;
$9469 = (45248 + ($9468)|0);
$9470 = HEAP8[$9469>>0]|0;
$9471 = $9470&255;
$9472 = $2;
$9473 = ((($9472)) + 1|0);
$9474 = HEAP8[$9473>>0]|0;
$9475 = $9474&255;
$9476 = $9471 ^ $9475;
$9477 = ((9400) + ($9476<<2)|0);
$9478 = HEAP32[$9477>>2]|0;
$9479 = $9463 ^ $9478;
$9480 = $2;
$9481 = ((($9480)) + 10|0);
$9482 = HEAP8[$9481>>0]|0;
$9483 = $9482&255;
$9484 = 250 ^ $9483;
$9485 = (44992 + ($9484)|0);
$9486 = HEAP8[$9485>>0]|0;
$9487 = $9486&255;
$9488 = $2;
$9489 = ((($9488)) + 2|0);
$9490 = HEAP8[$9489>>0]|0;
$9491 = $9490&255;
$9492 = $9487 ^ $9491;
$9493 = ((10424) + ($9492<<2)|0);
$9494 = HEAP32[$9493>>2]|0;
$9495 = $9479 ^ $9494;
$9496 = $2;
$9497 = ((($9496)) + 11|0);
$9498 = HEAP8[$9497>>0]|0;
$9499 = $9498&255;
$9500 = 135 ^ $9499;
$9501 = (44992 + ($9500)|0);
$9502 = HEAP8[$9501>>0]|0;
$9503 = $9502&255;
$9504 = $2;
$9505 = ((($9504)) + 3|0);
$9506 = HEAP8[$9505>>0]|0;
$9507 = $9506&255;
$9508 = $9503 ^ $9507;
$9509 = ((11448) + ($9508<<2)|0);
$9510 = HEAP32[$9509>>2]|0;
$9511 = $9495 ^ $9510;
$x = $9511;
$9512 = $2;
$9513 = ((($9512)) + 12|0);
$9514 = HEAP8[$9513>>0]|0;
$9515 = $9514&255;
$9516 = 19 ^ $9515;
$9517 = (45248 + ($9516)|0);
$9518 = HEAP8[$9517>>0]|0;
$9519 = $9518&255;
$9520 = $2;
$9521 = ((($9520)) + 4|0);
$9522 = HEAP8[$9521>>0]|0;
$9523 = $9522&255;
$9524 = $9519 ^ $9523;
$9525 = (8376 + ($9524<<2)|0);
$9526 = HEAP32[$9525>>2]|0;
$9527 = $2;
$9528 = ((($9527)) + 13|0);
$9529 = HEAP8[$9528>>0]|0;
$9530 = $9529&255;
$9531 = 250 ^ $9530;
$9532 = (45248 + ($9531)|0);
$9533 = HEAP8[$9532>>0]|0;
$9534 = $9533&255;
$9535 = $2;
$9536 = ((($9535)) + 5|0);
$9537 = HEAP8[$9536>>0]|0;
$9538 = $9537&255;
$9539 = $9534 ^ $9538;
$9540 = ((9400) + ($9539<<2)|0);
$9541 = HEAP32[$9540>>2]|0;
$9542 = $9526 ^ $9541;
$9543 = $2;
$9544 = ((($9543)) + 14|0);
$9545 = HEAP8[$9544>>0]|0;
$9546 = $9545&255;
$9547 = 19 ^ $9546;
$9548 = (44992 + ($9547)|0);
$9549 = HEAP8[$9548>>0]|0;
$9550 = $9549&255;
$9551 = $2;
$9552 = ((($9551)) + 6|0);
$9553 = HEAP8[$9552>>0]|0;
$9554 = $9553&255;
$9555 = $9550 ^ $9554;
$9556 = ((10424) + ($9555<<2)|0);
$9557 = HEAP32[$9556>>2]|0;
$9558 = $9542 ^ $9557;
$9559 = $2;
$9560 = ((($9559)) + 15|0);
$9561 = HEAP8[$9560>>0]|0;
$9562 = $9561&255;
$9563 = 250 ^ $9562;
$9564 = (44992 + ($9563)|0);
$9565 = HEAP8[$9564>>0]|0;
$9566 = $9565&255;
$9567 = $2;
$9568 = ((($9567)) + 7|0);
$9569 = HEAP8[$9568>>0]|0;
$9570 = $9569&255;
$9571 = $9566 ^ $9570;
$9572 = ((11448) + ($9571<<2)|0);
$9573 = HEAP32[$9572>>2]|0;
$9574 = $9558 ^ $9573;
$y = $9574;
$9575 = $y;
$9576 = $9575 << 8;
$9577 = $y;
$9578 = $9577 >>> 24;
$9579 = (($9576) + ($9578))|0;
$y = $9579;
$9580 = $y;
$9581 = $x;
$9582 = (($9581) + ($9580))|0;
$x = $9582;
$9583 = $x;
$9584 = $y;
$9585 = (($9584) + ($9583))|0;
$y = $9585;
$9586 = $x;
$9587 = $1;
$9588 = ((($9587)) + 4128|0);
$9589 = ((($9588)) + 80|0);
HEAP32[$9589>>2] = $9586;
$9590 = $y;
$9591 = $9590 << 9;
$9592 = $y;
$9593 = $9592 >>> 23;
$9594 = (($9591) + ($9593))|0;
$9595 = $1;
$9596 = ((($9595)) + 4128|0);
$9597 = ((($9596)) + 84|0);
HEAP32[$9597>>2] = $9594;
$9598 = $2;
$9599 = ((($9598)) + 8|0);
$9600 = HEAP8[$9599>>0]|0;
$9601 = $9600&255;
$9602 = 148 ^ $9601;
$9603 = (45248 + ($9602)|0);
$9604 = HEAP8[$9603>>0]|0;
$9605 = $9604&255;
$9606 = $2;
$9607 = HEAP8[$9606>>0]|0;
$9608 = $9607&255;
$9609 = $9605 ^ $9608;
$9610 = (8376 + ($9609<<2)|0);
$9611 = HEAP32[$9610>>2]|0;
$9612 = $2;
$9613 = ((($9612)) + 9|0);
$9614 = HEAP8[$9613>>0]|0;
$9615 = $9614&255;
$9616 = 6 ^ $9615;
$9617 = (45248 + ($9616)|0);
$9618 = HEAP8[$9617>>0]|0;
$9619 = $9618&255;
$9620 = $2;
$9621 = ((($9620)) + 1|0);
$9622 = HEAP8[$9621>>0]|0;
$9623 = $9622&255;
$9624 = $9619 ^ $9623;
$9625 = ((9400) + ($9624<<2)|0);
$9626 = HEAP32[$9625>>2]|0;
$9627 = $9611 ^ $9626;
$9628 = $2;
$9629 = ((($9628)) + 10|0);
$9630 = HEAP8[$9629>>0]|0;
$9631 = $9630&255;
$9632 = 148 ^ $9631;
$9633 = (44992 + ($9632)|0);
$9634 = HEAP8[$9633>>0]|0;
$9635 = $9634&255;
$9636 = $2;
$9637 = ((($9636)) + 2|0);
$9638 = HEAP8[$9637>>0]|0;
$9639 = $9638&255;
$9640 = $9635 ^ $9639;
$9641 = ((10424) + ($9640<<2)|0);
$9642 = HEAP32[$9641>>2]|0;
$9643 = $9627 ^ $9642;
$9644 = $2;
$9645 = ((($9644)) + 11|0);
$9646 = HEAP8[$9645>>0]|0;
$9647 = $9646&255;
$9648 = 6 ^ $9647;
$9649 = (44992 + ($9648)|0);
$9650 = HEAP8[$9649>>0]|0;
$9651 = $9650&255;
$9652 = $2;
$9653 = ((($9652)) + 3|0);
$9654 = HEAP8[$9653>>0]|0;
$9655 = $9654&255;
$9656 = $9651 ^ $9655;
$9657 = ((11448) + ($9656<<2)|0);
$9658 = HEAP32[$9657>>2]|0;
$9659 = $9643 ^ $9658;
$x = $9659;
$9660 = $2;
$9661 = ((($9660)) + 12|0);
$9662 = HEAP8[$9661>>0]|0;
$9663 = $9662&255;
$9664 = 72 ^ $9663;
$9665 = (45248 + ($9664)|0);
$9666 = HEAP8[$9665>>0]|0;
$9667 = $9666&255;
$9668 = $2;
$9669 = ((($9668)) + 4|0);
$9670 = HEAP8[$9669>>0]|0;
$9671 = $9670&255;
$9672 = $9667 ^ $9671;
$9673 = (8376 + ($9672<<2)|0);
$9674 = HEAP32[$9673>>2]|0;
$9675 = $2;
$9676 = ((($9675)) + 13|0);
$9677 = HEAP8[$9676>>0]|0;
$9678 = $9677&255;
$9679 = 63 ^ $9678;
$9680 = (45248 + ($9679)|0);
$9681 = HEAP8[$9680>>0]|0;
$9682 = $9681&255;
$9683 = $2;
$9684 = ((($9683)) + 5|0);
$9685 = HEAP8[$9684>>0]|0;
$9686 = $9685&255;
$9687 = $9682 ^ $9686;
$9688 = ((9400) + ($9687<<2)|0);
$9689 = HEAP32[$9688>>2]|0;
$9690 = $9674 ^ $9689;
$9691 = $2;
$9692 = ((($9691)) + 14|0);
$9693 = HEAP8[$9692>>0]|0;
$9694 = $9693&255;
$9695 = 72 ^ $9694;
$9696 = (44992 + ($9695)|0);
$9697 = HEAP8[$9696>>0]|0;
$9698 = $9697&255;
$9699 = $2;
$9700 = ((($9699)) + 6|0);
$9701 = HEAP8[$9700>>0]|0;
$9702 = $9701&255;
$9703 = $9698 ^ $9702;
$9704 = ((10424) + ($9703<<2)|0);
$9705 = HEAP32[$9704>>2]|0;
$9706 = $9690 ^ $9705;
$9707 = $2;
$9708 = ((($9707)) + 15|0);
$9709 = HEAP8[$9708>>0]|0;
$9710 = $9709&255;
$9711 = 63 ^ $9710;
$9712 = (44992 + ($9711)|0);
$9713 = HEAP8[$9712>>0]|0;
$9714 = $9713&255;
$9715 = $2;
$9716 = ((($9715)) + 7|0);
$9717 = HEAP8[$9716>>0]|0;
$9718 = $9717&255;
$9719 = $9714 ^ $9718;
$9720 = ((11448) + ($9719<<2)|0);
$9721 = HEAP32[$9720>>2]|0;
$9722 = $9706 ^ $9721;
$y = $9722;
$9723 = $y;
$9724 = $9723 << 8;
$9725 = $y;
$9726 = $9725 >>> 24;
$9727 = (($9724) + ($9726))|0;
$y = $9727;
$9728 = $y;
$9729 = $x;
$9730 = (($9729) + ($9728))|0;
$x = $9730;
$9731 = $x;
$9732 = $y;
$9733 = (($9732) + ($9731))|0;
$y = $9733;
$9734 = $x;
$9735 = $1;
$9736 = ((($9735)) + 4128|0);
$9737 = ((($9736)) + 88|0);
HEAP32[$9737>>2] = $9734;
$9738 = $y;
$9739 = $9738 << 9;
$9740 = $y;
$9741 = $9740 >>> 23;
$9742 = (($9739) + ($9741))|0;
$9743 = $1;
$9744 = ((($9743)) + 4128|0);
$9745 = ((($9744)) + 92|0);
HEAP32[$9745>>2] = $9742;
$9746 = $2;
$9747 = ((($9746)) + 8|0);
$9748 = HEAP8[$9747>>0]|0;
$9749 = $9748&255;
$9750 = 242 ^ $9749;
$9751 = (45248 + ($9750)|0);
$9752 = HEAP8[$9751>>0]|0;
$9753 = $9752&255;
$9754 = $2;
$9755 = HEAP8[$9754>>0]|0;
$9756 = $9755&255;
$9757 = $9753 ^ $9756;
$9758 = (8376 + ($9757<<2)|0);
$9759 = HEAP32[$9758>>2]|0;
$9760 = $2;
$9761 = ((($9760)) + 9|0);
$9762 = HEAP8[$9761>>0]|0;
$9763 = $9762&255;
$9764 = 94 ^ $9763;
$9765 = (45248 + ($9764)|0);
$9766 = HEAP8[$9765>>0]|0;
$9767 = $9766&255;
$9768 = $2;
$9769 = ((($9768)) + 1|0);
$9770 = HEAP8[$9769>>0]|0;
$9771 = $9770&255;
$9772 = $9767 ^ $9771;
$9773 = ((9400) + ($9772<<2)|0);
$9774 = HEAP32[$9773>>2]|0;
$9775 = $9759 ^ $9774;
$9776 = $2;
$9777 = ((($9776)) + 10|0);
$9778 = HEAP8[$9777>>0]|0;
$9779 = $9778&255;
$9780 = 242 ^ $9779;
$9781 = (44992 + ($9780)|0);
$9782 = HEAP8[$9781>>0]|0;
$9783 = $9782&255;
$9784 = $2;
$9785 = ((($9784)) + 2|0);
$9786 = HEAP8[$9785>>0]|0;
$9787 = $9786&255;
$9788 = $9783 ^ $9787;
$9789 = ((10424) + ($9788<<2)|0);
$9790 = HEAP32[$9789>>2]|0;
$9791 = $9775 ^ $9790;
$9792 = $2;
$9793 = ((($9792)) + 11|0);
$9794 = HEAP8[$9793>>0]|0;
$9795 = $9794&255;
$9796 = 94 ^ $9795;
$9797 = (44992 + ($9796)|0);
$9798 = HEAP8[$9797>>0]|0;
$9799 = $9798&255;
$9800 = $2;
$9801 = ((($9800)) + 3|0);
$9802 = HEAP8[$9801>>0]|0;
$9803 = $9802&255;
$9804 = $9799 ^ $9803;
$9805 = ((11448) + ($9804<<2)|0);
$9806 = HEAP32[$9805>>2]|0;
$9807 = $9791 ^ $9806;
$x = $9807;
$9808 = $2;
$9809 = ((($9808)) + 12|0);
$9810 = HEAP8[$9809>>0]|0;
$9811 = $9810&255;
$9812 = 208 ^ $9811;
$9813 = (45248 + ($9812)|0);
$9814 = HEAP8[$9813>>0]|0;
$9815 = $9814&255;
$9816 = $2;
$9817 = ((($9816)) + 4|0);
$9818 = HEAP8[$9817>>0]|0;
$9819 = $9818&255;
$9820 = $9815 ^ $9819;
$9821 = (8376 + ($9820<<2)|0);
$9822 = HEAP32[$9821>>2]|0;
$9823 = $2;
$9824 = ((($9823)) + 13|0);
$9825 = HEAP8[$9824>>0]|0;
$9826 = $9825&255;
$9827 = 186 ^ $9826;
$9828 = (45248 + ($9827)|0);
$9829 = HEAP8[$9828>>0]|0;
$9830 = $9829&255;
$9831 = $2;
$9832 = ((($9831)) + 5|0);
$9833 = HEAP8[$9832>>0]|0;
$9834 = $9833&255;
$9835 = $9830 ^ $9834;
$9836 = ((9400) + ($9835<<2)|0);
$9837 = HEAP32[$9836>>2]|0;
$9838 = $9822 ^ $9837;
$9839 = $2;
$9840 = ((($9839)) + 14|0);
$9841 = HEAP8[$9840>>0]|0;
$9842 = $9841&255;
$9843 = 208 ^ $9842;
$9844 = (44992 + ($9843)|0);
$9845 = HEAP8[$9844>>0]|0;
$9846 = $9845&255;
$9847 = $2;
$9848 = ((($9847)) + 6|0);
$9849 = HEAP8[$9848>>0]|0;
$9850 = $9849&255;
$9851 = $9846 ^ $9850;
$9852 = ((10424) + ($9851<<2)|0);
$9853 = HEAP32[$9852>>2]|0;
$9854 = $9838 ^ $9853;
$9855 = $2;
$9856 = ((($9855)) + 15|0);
$9857 = HEAP8[$9856>>0]|0;
$9858 = $9857&255;
$9859 = 186 ^ $9858;
$9860 = (44992 + ($9859)|0);
$9861 = HEAP8[$9860>>0]|0;
$9862 = $9861&255;
$9863 = $2;
$9864 = ((($9863)) + 7|0);
$9865 = HEAP8[$9864>>0]|0;
$9866 = $9865&255;
$9867 = $9862 ^ $9866;
$9868 = ((11448) + ($9867<<2)|0);
$9869 = HEAP32[$9868>>2]|0;
$9870 = $9854 ^ $9869;
$y = $9870;
$9871 = $y;
$9872 = $9871 << 8;
$9873 = $y;
$9874 = $9873 >>> 24;
$9875 = (($9872) + ($9874))|0;
$y = $9875;
$9876 = $y;
$9877 = $x;
$9878 = (($9877) + ($9876))|0;
$x = $9878;
$9879 = $x;
$9880 = $y;
$9881 = (($9880) + ($9879))|0;
$y = $9881;
$9882 = $x;
$9883 = $1;
$9884 = ((($9883)) + 4128|0);
$9885 = ((($9884)) + 96|0);
HEAP32[$9885>>2] = $9882;
$9886 = $y;
$9887 = $9886 << 9;
$9888 = $y;
$9889 = $9888 >>> 23;
$9890 = (($9887) + ($9889))|0;
$9891 = $1;
$9892 = ((($9891)) + 4128|0);
$9893 = ((($9892)) + 100|0);
HEAP32[$9893>>2] = $9890;
$9894 = $2;
$9895 = ((($9894)) + 8|0);
$9896 = HEAP8[$9895>>0]|0;
$9897 = $9896&255;
$9898 = 139 ^ $9897;
$9899 = (45248 + ($9898)|0);
$9900 = HEAP8[$9899>>0]|0;
$9901 = $9900&255;
$9902 = $2;
$9903 = HEAP8[$9902>>0]|0;
$9904 = $9903&255;
$9905 = $9901 ^ $9904;
$9906 = (8376 + ($9905<<2)|0);
$9907 = HEAP32[$9906>>2]|0;
$9908 = $2;
$9909 = ((($9908)) + 9|0);
$9910 = HEAP8[$9909>>0]|0;
$9911 = $9910&255;
$9912 = 174 ^ $9911;
$9913 = (45248 + ($9912)|0);
$9914 = HEAP8[$9913>>0]|0;
$9915 = $9914&255;
$9916 = $2;
$9917 = ((($9916)) + 1|0);
$9918 = HEAP8[$9917>>0]|0;
$9919 = $9918&255;
$9920 = $9915 ^ $9919;
$9921 = ((9400) + ($9920<<2)|0);
$9922 = HEAP32[$9921>>2]|0;
$9923 = $9907 ^ $9922;
$9924 = $2;
$9925 = ((($9924)) + 10|0);
$9926 = HEAP8[$9925>>0]|0;
$9927 = $9926&255;
$9928 = 139 ^ $9927;
$9929 = (44992 + ($9928)|0);
$9930 = HEAP8[$9929>>0]|0;
$9931 = $9930&255;
$9932 = $2;
$9933 = ((($9932)) + 2|0);
$9934 = HEAP8[$9933>>0]|0;
$9935 = $9934&255;
$9936 = $9931 ^ $9935;
$9937 = ((10424) + ($9936<<2)|0);
$9938 = HEAP32[$9937>>2]|0;
$9939 = $9923 ^ $9938;
$9940 = $2;
$9941 = ((($9940)) + 11|0);
$9942 = HEAP8[$9941>>0]|0;
$9943 = $9942&255;
$9944 = 174 ^ $9943;
$9945 = (44992 + ($9944)|0);
$9946 = HEAP8[$9945>>0]|0;
$9947 = $9946&255;
$9948 = $2;
$9949 = ((($9948)) + 3|0);
$9950 = HEAP8[$9949>>0]|0;
$9951 = $9950&255;
$9952 = $9947 ^ $9951;
$9953 = ((11448) + ($9952<<2)|0);
$9954 = HEAP32[$9953>>2]|0;
$9955 = $9939 ^ $9954;
$x = $9955;
$9956 = $2;
$9957 = ((($9956)) + 12|0);
$9958 = HEAP8[$9957>>0]|0;
$9959 = $9958&255;
$9960 = 48 ^ $9959;
$9961 = (45248 + ($9960)|0);
$9962 = HEAP8[$9961>>0]|0;
$9963 = $9962&255;
$9964 = $2;
$9965 = ((($9964)) + 4|0);
$9966 = HEAP8[$9965>>0]|0;
$9967 = $9966&255;
$9968 = $9963 ^ $9967;
$9969 = (8376 + ($9968<<2)|0);
$9970 = HEAP32[$9969>>2]|0;
$9971 = $2;
$9972 = ((($9971)) + 13|0);
$9973 = HEAP8[$9972>>0]|0;
$9974 = $9973&255;
$9975 = 91 ^ $9974;
$9976 = (45248 + ($9975)|0);
$9977 = HEAP8[$9976>>0]|0;
$9978 = $9977&255;
$9979 = $2;
$9980 = ((($9979)) + 5|0);
$9981 = HEAP8[$9980>>0]|0;
$9982 = $9981&255;
$9983 = $9978 ^ $9982;
$9984 = ((9400) + ($9983<<2)|0);
$9985 = HEAP32[$9984>>2]|0;
$9986 = $9970 ^ $9985;
$9987 = $2;
$9988 = ((($9987)) + 14|0);
$9989 = HEAP8[$9988>>0]|0;
$9990 = $9989&255;
$9991 = 48 ^ $9990;
$9992 = (44992 + ($9991)|0);
$9993 = HEAP8[$9992>>0]|0;
$9994 = $9993&255;
$9995 = $2;
$9996 = ((($9995)) + 6|0);
$9997 = HEAP8[$9996>>0]|0;
$9998 = $9997&255;
$9999 = $9994 ^ $9998;
$10000 = ((10424) + ($9999<<2)|0);
$10001 = HEAP32[$10000>>2]|0;
$10002 = $9986 ^ $10001;
$10003 = $2;
$10004 = ((($10003)) + 15|0);
$10005 = HEAP8[$10004>>0]|0;
$10006 = $10005&255;
$10007 = 91 ^ $10006;
$10008 = (44992 + ($10007)|0);
$10009 = HEAP8[$10008>>0]|0;
$10010 = $10009&255;
$10011 = $2;
$10012 = ((($10011)) + 7|0);
$10013 = HEAP8[$10012>>0]|0;
$10014 = $10013&255;
$10015 = $10010 ^ $10014;
$10016 = ((11448) + ($10015<<2)|0);
$10017 = HEAP32[$10016>>2]|0;
$10018 = $10002 ^ $10017;
$y = $10018;
$10019 = $y;
$10020 = $10019 << 8;
$10021 = $y;
$10022 = $10021 >>> 24;
$10023 = (($10020) + ($10022))|0;
$y = $10023;
$10024 = $y;
$10025 = $x;
$10026 = (($10025) + ($10024))|0;
$x = $10026;
$10027 = $x;
$10028 = $y;
$10029 = (($10028) + ($10027))|0;
$y = $10029;
$10030 = $x;
$10031 = $1;
$10032 = ((($10031)) + 4128|0);
$10033 = ((($10032)) + 104|0);
HEAP32[$10033>>2] = $10030;
$10034 = $y;
$10035 = $10034 << 9;
$10036 = $y;
$10037 = $10036 >>> 23;
$10038 = (($10035) + ($10037))|0;
$10039 = $1;
$10040 = ((($10039)) + 4128|0);
$10041 = ((($10040)) + 108|0);
HEAP32[$10041>>2] = $10038;
$10042 = $2;
$10043 = ((($10042)) + 8|0);
$10044 = HEAP8[$10043>>0]|0;
$10045 = $10044&255;
$10046 = 132 ^ $10045;
$10047 = (45248 + ($10046)|0);
$10048 = HEAP8[$10047>>0]|0;
$10049 = $10048&255;
$10050 = $2;
$10051 = HEAP8[$10050>>0]|0;
$10052 = $10051&255;
$10053 = $10049 ^ $10052;
$10054 = (8376 + ($10053<<2)|0);
$10055 = HEAP32[$10054>>2]|0;
$10056 = $2;
$10057 = ((($10056)) + 9|0);
$10058 = HEAP8[$10057>>0]|0;
$10059 = $10058&255;
$10060 = 138 ^ $10059;
$10061 = (45248 + ($10060)|0);
$10062 = HEAP8[$10061>>0]|0;
$10063 = $10062&255;
$10064 = $2;
$10065 = ((($10064)) + 1|0);
$10066 = HEAP8[$10065>>0]|0;
$10067 = $10066&255;
$10068 = $10063 ^ $10067;
$10069 = ((9400) + ($10068<<2)|0);
$10070 = HEAP32[$10069>>2]|0;
$10071 = $10055 ^ $10070;
$10072 = $2;
$10073 = ((($10072)) + 10|0);
$10074 = HEAP8[$10073>>0]|0;
$10075 = $10074&255;
$10076 = 132 ^ $10075;
$10077 = (44992 + ($10076)|0);
$10078 = HEAP8[$10077>>0]|0;
$10079 = $10078&255;
$10080 = $2;
$10081 = ((($10080)) + 2|0);
$10082 = HEAP8[$10081>>0]|0;
$10083 = $10082&255;
$10084 = $10079 ^ $10083;
$10085 = ((10424) + ($10084<<2)|0);
$10086 = HEAP32[$10085>>2]|0;
$10087 = $10071 ^ $10086;
$10088 = $2;
$10089 = ((($10088)) + 11|0);
$10090 = HEAP8[$10089>>0]|0;
$10091 = $10090&255;
$10092 = 138 ^ $10091;
$10093 = (44992 + ($10092)|0);
$10094 = HEAP8[$10093>>0]|0;
$10095 = $10094&255;
$10096 = $2;
$10097 = ((($10096)) + 3|0);
$10098 = HEAP8[$10097>>0]|0;
$10099 = $10098&255;
$10100 = $10095 ^ $10099;
$10101 = ((11448) + ($10100<<2)|0);
$10102 = HEAP32[$10101>>2]|0;
$10103 = $10087 ^ $10102;
$x = $10103;
$10104 = $2;
$10105 = ((($10104)) + 12|0);
$10106 = HEAP8[$10105>>0]|0;
$10107 = $10106&255;
$10108 = 84 ^ $10107;
$10109 = (45248 + ($10108)|0);
$10110 = HEAP8[$10109>>0]|0;
$10111 = $10110&255;
$10112 = $2;
$10113 = ((($10112)) + 4|0);
$10114 = HEAP8[$10113>>0]|0;
$10115 = $10114&255;
$10116 = $10111 ^ $10115;
$10117 = (8376 + ($10116<<2)|0);
$10118 = HEAP32[$10117>>2]|0;
$10119 = $2;
$10120 = ((($10119)) + 13|0);
$10121 = HEAP8[$10120>>0]|0;
$10122 = $10121&255;
$10123 = 0 ^ $10122;
$10124 = (45248 + ($10123)|0);
$10125 = HEAP8[$10124>>0]|0;
$10126 = $10125&255;
$10127 = $2;
$10128 = ((($10127)) + 5|0);
$10129 = HEAP8[$10128>>0]|0;
$10130 = $10129&255;
$10131 = $10126 ^ $10130;
$10132 = ((9400) + ($10131<<2)|0);
$10133 = HEAP32[$10132>>2]|0;
$10134 = $10118 ^ $10133;
$10135 = $2;
$10136 = ((($10135)) + 14|0);
$10137 = HEAP8[$10136>>0]|0;
$10138 = $10137&255;
$10139 = 84 ^ $10138;
$10140 = (44992 + ($10139)|0);
$10141 = HEAP8[$10140>>0]|0;
$10142 = $10141&255;
$10143 = $2;
$10144 = ((($10143)) + 6|0);
$10145 = HEAP8[$10144>>0]|0;
$10146 = $10145&255;
$10147 = $10142 ^ $10146;
$10148 = ((10424) + ($10147<<2)|0);
$10149 = HEAP32[$10148>>2]|0;
$10150 = $10134 ^ $10149;
$10151 = $2;
$10152 = ((($10151)) + 15|0);
$10153 = HEAP8[$10152>>0]|0;
$10154 = $10153&255;
$10155 = 0 ^ $10154;
$10156 = (44992 + ($10155)|0);
$10157 = HEAP8[$10156>>0]|0;
$10158 = $10157&255;
$10159 = $2;
$10160 = ((($10159)) + 7|0);
$10161 = HEAP8[$10160>>0]|0;
$10162 = $10161&255;
$10163 = $10158 ^ $10162;
$10164 = ((11448) + ($10163<<2)|0);
$10165 = HEAP32[$10164>>2]|0;
$10166 = $10150 ^ $10165;
$y = $10166;
$10167 = $y;
$10168 = $10167 << 8;
$10169 = $y;
$10170 = $10169 >>> 24;
$10171 = (($10168) + ($10170))|0;
$y = $10171;
$10172 = $y;
$10173 = $x;
$10174 = (($10173) + ($10172))|0;
$x = $10174;
$10175 = $x;
$10176 = $y;
$10177 = (($10176) + ($10175))|0;
$y = $10177;
$10178 = $x;
$10179 = $1;
$10180 = ((($10179)) + 4128|0);
$10181 = ((($10180)) + 112|0);
HEAP32[$10181>>2] = $10178;
$10182 = $y;
$10183 = $10182 << 9;
$10184 = $y;
$10185 = $10184 >>> 23;
$10186 = (($10183) + ($10185))|0;
$10187 = $1;
$10188 = ((($10187)) + 4128|0);
$10189 = ((($10188)) + 116|0);
HEAP32[$10189>>2] = $10186;
$10190 = $2;
$10191 = ((($10190)) + 8|0);
$10192 = HEAP8[$10191>>0]|0;
$10193 = $10192&255;
$10194 = 223 ^ $10193;
$10195 = (45248 + ($10194)|0);
$10196 = HEAP8[$10195>>0]|0;
$10197 = $10196&255;
$10198 = $2;
$10199 = HEAP8[$10198>>0]|0;
$10200 = $10199&255;
$10201 = $10197 ^ $10200;
$10202 = (8376 + ($10201<<2)|0);
$10203 = HEAP32[$10202>>2]|0;
$10204 = $2;
$10205 = ((($10204)) + 9|0);
$10206 = HEAP8[$10205>>0]|0;
$10207 = $10206&255;
$10208 = 188 ^ $10207;
$10209 = (45248 + ($10208)|0);
$10210 = HEAP8[$10209>>0]|0;
$10211 = $10210&255;
$10212 = $2;
$10213 = ((($10212)) + 1|0);
$10214 = HEAP8[$10213>>0]|0;
$10215 = $10214&255;
$10216 = $10211 ^ $10215;
$10217 = ((9400) + ($10216<<2)|0);
$10218 = HEAP32[$10217>>2]|0;
$10219 = $10203 ^ $10218;
$10220 = $2;
$10221 = ((($10220)) + 10|0);
$10222 = HEAP8[$10221>>0]|0;
$10223 = $10222&255;
$10224 = 223 ^ $10223;
$10225 = (44992 + ($10224)|0);
$10226 = HEAP8[$10225>>0]|0;
$10227 = $10226&255;
$10228 = $2;
$10229 = ((($10228)) + 2|0);
$10230 = HEAP8[$10229>>0]|0;
$10231 = $10230&255;
$10232 = $10227 ^ $10231;
$10233 = ((10424) + ($10232<<2)|0);
$10234 = HEAP32[$10233>>2]|0;
$10235 = $10219 ^ $10234;
$10236 = $2;
$10237 = ((($10236)) + 11|0);
$10238 = HEAP8[$10237>>0]|0;
$10239 = $10238&255;
$10240 = 188 ^ $10239;
$10241 = (44992 + ($10240)|0);
$10242 = HEAP8[$10241>>0]|0;
$10243 = $10242&255;
$10244 = $2;
$10245 = ((($10244)) + 3|0);
$10246 = HEAP8[$10245>>0]|0;
$10247 = $10246&255;
$10248 = $10243 ^ $10247;
$10249 = ((11448) + ($10248<<2)|0);
$10250 = HEAP32[$10249>>2]|0;
$10251 = $10235 ^ $10250;
$x = $10251;
$10252 = $2;
$10253 = ((($10252)) + 12|0);
$10254 = HEAP8[$10253>>0]|0;
$10255 = $10254&255;
$10256 = 35 ^ $10255;
$10257 = (45248 + ($10256)|0);
$10258 = HEAP8[$10257>>0]|0;
$10259 = $10258&255;
$10260 = $2;
$10261 = ((($10260)) + 4|0);
$10262 = HEAP8[$10261>>0]|0;
$10263 = $10262&255;
$10264 = $10259 ^ $10263;
$10265 = (8376 + ($10264<<2)|0);
$10266 = HEAP32[$10265>>2]|0;
$10267 = $2;
$10268 = ((($10267)) + 13|0);
$10269 = HEAP8[$10268>>0]|0;
$10270 = $10269&255;
$10271 = 157 ^ $10270;
$10272 = (45248 + ($10271)|0);
$10273 = HEAP8[$10272>>0]|0;
$10274 = $10273&255;
$10275 = $2;
$10276 = ((($10275)) + 5|0);
$10277 = HEAP8[$10276>>0]|0;
$10278 = $10277&255;
$10279 = $10274 ^ $10278;
$10280 = ((9400) + ($10279<<2)|0);
$10281 = HEAP32[$10280>>2]|0;
$10282 = $10266 ^ $10281;
$10283 = $2;
$10284 = ((($10283)) + 14|0);
$10285 = HEAP8[$10284>>0]|0;
$10286 = $10285&255;
$10287 = 35 ^ $10286;
$10288 = (44992 + ($10287)|0);
$10289 = HEAP8[$10288>>0]|0;
$10290 = $10289&255;
$10291 = $2;
$10292 = ((($10291)) + 6|0);
$10293 = HEAP8[$10292>>0]|0;
$10294 = $10293&255;
$10295 = $10290 ^ $10294;
$10296 = ((10424) + ($10295<<2)|0);
$10297 = HEAP32[$10296>>2]|0;
$10298 = $10282 ^ $10297;
$10299 = $2;
$10300 = ((($10299)) + 15|0);
$10301 = HEAP8[$10300>>0]|0;
$10302 = $10301&255;
$10303 = 157 ^ $10302;
$10304 = (44992 + ($10303)|0);
$10305 = HEAP8[$10304>>0]|0;
$10306 = $10305&255;
$10307 = $2;
$10308 = ((($10307)) + 7|0);
$10309 = HEAP8[$10308>>0]|0;
$10310 = $10309&255;
$10311 = $10306 ^ $10310;
$10312 = ((11448) + ($10311<<2)|0);
$10313 = HEAP32[$10312>>2]|0;
$10314 = $10298 ^ $10313;
$y = $10314;
$10315 = $y;
$10316 = $10315 << 8;
$10317 = $y;
$10318 = $10317 >>> 24;
$10319 = (($10316) + ($10318))|0;
$y = $10319;
$10320 = $y;
$10321 = $x;
$10322 = (($10321) + ($10320))|0;
$x = $10322;
$10323 = $x;
$10324 = $y;
$10325 = (($10324) + ($10323))|0;
$y = $10325;
$10326 = $x;
$10327 = $1;
$10328 = ((($10327)) + 4128|0);
$10329 = ((($10328)) + 120|0);
HEAP32[$10329>>2] = $10326;
$10330 = $y;
$10331 = $10330 << 9;
$10332 = $y;
$10333 = $10332 >>> 23;
$10334 = (($10331) + ($10333))|0;
$10335 = $1;
$10336 = ((($10335)) + 4128|0);
$10337 = ((($10336)) + 124|0);
HEAP32[$10337>>2] = $10334;
}
$0 = 0;
$10338 = $0;
STACKTOP = sp;return ($10338|0);
}
function _selftest_1448() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0;
var $r = 0, $scratch = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 4288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp + 8|0;
$scratch = sp + 4272|0;
(_twofish_setkey($ctx,43473,16)|0);
(_twofish_encrypt($ctx,$scratch,43489)|0);
$1 = (_memcmp($scratch,43505,16)|0);
$2 = ($1|0)!=(0);
do {
if ($2) {
$0 = 43521;
} else {
(_twofish_decrypt($ctx,$scratch,$scratch)|0);
$3 = (_memcmp($scratch,43489,16)|0);
$4 = ($3|0)!=(0);
if ($4) {
$0 = 43557;
break;
}
(_twofish_setkey($ctx,43593,32)|0);
(_twofish_encrypt($ctx,$scratch,43625)|0);
$5 = (_memcmp($scratch,43641,16)|0);
$6 = ($5|0)!=(0);
if ($6) {
$0 = 43657;
break;
}
(_twofish_decrypt($ctx,$scratch,$scratch)|0);
$7 = (_memcmp($scratch,43625,16)|0);
$8 = ($7|0)!=(0);
if ($8) {
$0 = 43693;
break;
}
$9 = (_selftest_ctr()|0);
$r = $9;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = $r;
$0 = $11;
break;
}
$12 = (_selftest_cbc()|0);
$r = $12;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = $r;
$0 = $14;
break;
}
$15 = (_selftest_cfb()|0);
$r = $15;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $r;
$0 = $17;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$18 = $0;
STACKTOP = sp;return ($18|0);
}
function _twofish_encrypt($context,$out,$in) {
$context = $context|0;
$out = $out|0;
$in = $in|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $out;
$2 = $in;
$3 = $0;
$ctx = $3;
$4 = $ctx;
$5 = $1;
$6 = $2;
_do_twofish_encrypt($4,$5,$6);
STACKTOP = sp;return 36;
}
function _do_twofish_encrypt($ctx,$out,$in) {
$ctx = $ctx|0;
$out = $out|0;
$in = $in|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $147 = 0, $148 = 0, $149 = 0;
var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0;
var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0;
var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0;
var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0;
var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0;
var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0;
var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0;
var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0;
var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0;
var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0;
var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0;
var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0;
var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0;
var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0;
var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0;
var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0;
var $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0;
var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0;
var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0;
var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0;
var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0;
var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0;
var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0;
var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0;
var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0;
var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0;
var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0;
var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0;
var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0;
var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0;
var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0;
var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0;
var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0;
var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0;
var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0;
var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0;
var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0;
var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0;
var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0;
var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0;
var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0;
var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0;
var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0;
var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0;
var $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0;
var $997 = 0, $998 = 0, $999 = 0, $a = 0, $b = 0, $c = 0, $d = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $out;
$2 = $in;
$3 = $2;
$4 = (_buf_get_le32_1449($3)|0);
$a = $4;
$5 = $0;
$6 = ((($5)) + 4096|0);
$7 = HEAP32[$6>>2]|0;
$8 = $a;
$9 = $8 ^ $7;
$a = $9;
$10 = $2;
$11 = ((($10)) + 4|0);
$12 = (_buf_get_le32_1449($11)|0);
$b = $12;
$13 = $0;
$14 = ((($13)) + 4096|0);
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = $b;
$18 = $17 ^ $16;
$b = $18;
$19 = $2;
$20 = ((($19)) + 8|0);
$21 = (_buf_get_le32_1449($20)|0);
$c = $21;
$22 = $0;
$23 = ((($22)) + 4096|0);
$24 = ((($23)) + 8|0);
$25 = HEAP32[$24>>2]|0;
$26 = $c;
$27 = $26 ^ $25;
$c = $27;
$28 = $2;
$29 = ((($28)) + 12|0);
$30 = (_buf_get_le32_1449($29)|0);
$d = $30;
$31 = $0;
$32 = ((($31)) + 4096|0);
$33 = ((($32)) + 12|0);
$34 = HEAP32[$33>>2]|0;
$35 = $d;
$36 = $35 ^ $34;
$d = $36;
$37 = $a;
$38 = $37 & 255;
$39 = $0;
$40 = (($39) + ($38<<2)|0);
$41 = HEAP32[$40>>2]|0;
$42 = $a;
$43 = $42 >>> 8;
$44 = $43 & 255;
$45 = $0;
$46 = ((($45)) + 1024|0);
$47 = (($46) + ($44<<2)|0);
$48 = HEAP32[$47>>2]|0;
$49 = $41 ^ $48;
$50 = $a;
$51 = $50 >>> 16;
$52 = $51 & 255;
$53 = $0;
$54 = ((($53)) + 2048|0);
$55 = (($54) + ($52<<2)|0);
$56 = HEAP32[$55>>2]|0;
$57 = $49 ^ $56;
$58 = $a;
$59 = $58 >>> 24;
$60 = $0;
$61 = ((($60)) + 3072|0);
$62 = (($61) + ($59<<2)|0);
$63 = HEAP32[$62>>2]|0;
$64 = $57 ^ $63;
$x = $64;
$65 = $b;
$66 = $65 & 255;
$67 = $0;
$68 = ((($67)) + 1024|0);
$69 = (($68) + ($66<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = $b;
$72 = $71 >>> 8;
$73 = $72 & 255;
$74 = $0;
$75 = ((($74)) + 2048|0);
$76 = (($75) + ($73<<2)|0);
$77 = HEAP32[$76>>2]|0;
$78 = $70 ^ $77;
$79 = $b;
$80 = $79 >>> 16;
$81 = $80 & 255;
$82 = $0;
$83 = ((($82)) + 3072|0);
$84 = (($83) + ($81<<2)|0);
$85 = HEAP32[$84>>2]|0;
$86 = $78 ^ $85;
$87 = $b;
$88 = $87 >>> 24;
$89 = $0;
$90 = (($89) + ($88<<2)|0);
$91 = HEAP32[$90>>2]|0;
$92 = $86 ^ $91;
$y = $92;
$93 = $y;
$94 = $x;
$95 = (($94) + ($93))|0;
$x = $95;
$96 = $x;
$97 = $0;
$98 = ((($97)) + 4128|0);
$99 = ((($98)) + 4|0);
$100 = HEAP32[$99>>2]|0;
$101 = (($96) + ($100))|0;
$102 = $y;
$103 = (($102) + ($101))|0;
$y = $103;
$104 = $x;
$105 = $0;
$106 = ((($105)) + 4128|0);
$107 = HEAP32[$106>>2]|0;
$108 = (($104) + ($107))|0;
$109 = $c;
$110 = $109 ^ $108;
$c = $110;
$111 = $c;
$112 = $111 >>> 1;
$113 = $c;
$114 = $113 << 31;
$115 = (($112) + ($114))|0;
$c = $115;
$116 = $d;
$117 = $116 << 1;
$118 = $d;
$119 = $118 >>> 31;
$120 = (($117) + ($119))|0;
$121 = $y;
$122 = $120 ^ $121;
$d = $122;
$123 = $c;
$124 = $123 & 255;
$125 = $0;
$126 = (($125) + ($124<<2)|0);
$127 = HEAP32[$126>>2]|0;
$128 = $c;
$129 = $128 >>> 8;
$130 = $129 & 255;
$131 = $0;
$132 = ((($131)) + 1024|0);
$133 = (($132) + ($130<<2)|0);
$134 = HEAP32[$133>>2]|0;
$135 = $127 ^ $134;
$136 = $c;
$137 = $136 >>> 16;
$138 = $137 & 255;
$139 = $0;
$140 = ((($139)) + 2048|0);
$141 = (($140) + ($138<<2)|0);
$142 = HEAP32[$141>>2]|0;
$143 = $135 ^ $142;
$144 = $c;
$145 = $144 >>> 24;
$146 = $0;
$147 = ((($146)) + 3072|0);
$148 = (($147) + ($145<<2)|0);
$149 = HEAP32[$148>>2]|0;
$150 = $143 ^ $149;
$x = $150;
$151 = $d;
$152 = $151 & 255;
$153 = $0;
$154 = ((($153)) + 1024|0);
$155 = (($154) + ($152<<2)|0);
$156 = HEAP32[$155>>2]|0;
$157 = $d;
$158 = $157 >>> 8;
$159 = $158 & 255;
$160 = $0;
$161 = ((($160)) + 2048|0);
$162 = (($161) + ($159<<2)|0);
$163 = HEAP32[$162>>2]|0;
$164 = $156 ^ $163;
$165 = $d;
$166 = $165 >>> 16;
$167 = $166 & 255;
$168 = $0;
$169 = ((($168)) + 3072|0);
$170 = (($169) + ($167<<2)|0);
$171 = HEAP32[$170>>2]|0;
$172 = $164 ^ $171;
$173 = $d;
$174 = $173 >>> 24;
$175 = $0;
$176 = (($175) + ($174<<2)|0);
$177 = HEAP32[$176>>2]|0;
$178 = $172 ^ $177;
$y = $178;
$179 = $y;
$180 = $x;
$181 = (($180) + ($179))|0;
$x = $181;
$182 = $x;
$183 = $0;
$184 = ((($183)) + 4128|0);
$185 = ((($184)) + 12|0);
$186 = HEAP32[$185>>2]|0;
$187 = (($182) + ($186))|0;
$188 = $y;
$189 = (($188) + ($187))|0;
$y = $189;
$190 = $x;
$191 = $0;
$192 = ((($191)) + 4128|0);
$193 = ((($192)) + 8|0);
$194 = HEAP32[$193>>2]|0;
$195 = (($190) + ($194))|0;
$196 = $a;
$197 = $196 ^ $195;
$a = $197;
$198 = $a;
$199 = $198 >>> 1;
$200 = $a;
$201 = $200 << 31;
$202 = (($199) + ($201))|0;
$a = $202;
$203 = $b;
$204 = $203 << 1;
$205 = $b;
$206 = $205 >>> 31;
$207 = (($204) + ($206))|0;
$208 = $y;
$209 = $207 ^ $208;
$b = $209;
$210 = $a;
$211 = $210 & 255;
$212 = $0;
$213 = (($212) + ($211<<2)|0);
$214 = HEAP32[$213>>2]|0;
$215 = $a;
$216 = $215 >>> 8;
$217 = $216 & 255;
$218 = $0;
$219 = ((($218)) + 1024|0);
$220 = (($219) + ($217<<2)|0);
$221 = HEAP32[$220>>2]|0;
$222 = $214 ^ $221;
$223 = $a;
$224 = $223 >>> 16;
$225 = $224 & 255;
$226 = $0;
$227 = ((($226)) + 2048|0);
$228 = (($227) + ($225<<2)|0);
$229 = HEAP32[$228>>2]|0;
$230 = $222 ^ $229;
$231 = $a;
$232 = $231 >>> 24;
$233 = $0;
$234 = ((($233)) + 3072|0);
$235 = (($234) + ($232<<2)|0);
$236 = HEAP32[$235>>2]|0;
$237 = $230 ^ $236;
$x = $237;
$238 = $b;
$239 = $238 & 255;
$240 = $0;
$241 = ((($240)) + 1024|0);
$242 = (($241) + ($239<<2)|0);
$243 = HEAP32[$242>>2]|0;
$244 = $b;
$245 = $244 >>> 8;
$246 = $245 & 255;
$247 = $0;
$248 = ((($247)) + 2048|0);
$249 = (($248) + ($246<<2)|0);
$250 = HEAP32[$249>>2]|0;
$251 = $243 ^ $250;
$252 = $b;
$253 = $252 >>> 16;
$254 = $253 & 255;
$255 = $0;
$256 = ((($255)) + 3072|0);
$257 = (($256) + ($254<<2)|0);
$258 = HEAP32[$257>>2]|0;
$259 = $251 ^ $258;
$260 = $b;
$261 = $260 >>> 24;
$262 = $0;
$263 = (($262) + ($261<<2)|0);
$264 = HEAP32[$263>>2]|0;
$265 = $259 ^ $264;
$y = $265;
$266 = $y;
$267 = $x;
$268 = (($267) + ($266))|0;
$x = $268;
$269 = $x;
$270 = $0;
$271 = ((($270)) + 4128|0);
$272 = ((($271)) + 20|0);
$273 = HEAP32[$272>>2]|0;
$274 = (($269) + ($273))|0;
$275 = $y;
$276 = (($275) + ($274))|0;
$y = $276;
$277 = $x;
$278 = $0;
$279 = ((($278)) + 4128|0);
$280 = ((($279)) + 16|0);
$281 = HEAP32[$280>>2]|0;
$282 = (($277) + ($281))|0;
$283 = $c;
$284 = $283 ^ $282;
$c = $284;
$285 = $c;
$286 = $285 >>> 1;
$287 = $c;
$288 = $287 << 31;
$289 = (($286) + ($288))|0;
$c = $289;
$290 = $d;
$291 = $290 << 1;
$292 = $d;
$293 = $292 >>> 31;
$294 = (($291) + ($293))|0;
$295 = $y;
$296 = $294 ^ $295;
$d = $296;
$297 = $c;
$298 = $297 & 255;
$299 = $0;
$300 = (($299) + ($298<<2)|0);
$301 = HEAP32[$300>>2]|0;
$302 = $c;
$303 = $302 >>> 8;
$304 = $303 & 255;
$305 = $0;
$306 = ((($305)) + 1024|0);
$307 = (($306) + ($304<<2)|0);
$308 = HEAP32[$307>>2]|0;
$309 = $301 ^ $308;
$310 = $c;
$311 = $310 >>> 16;
$312 = $311 & 255;
$313 = $0;
$314 = ((($313)) + 2048|0);
$315 = (($314) + ($312<<2)|0);
$316 = HEAP32[$315>>2]|0;
$317 = $309 ^ $316;
$318 = $c;
$319 = $318 >>> 24;
$320 = $0;
$321 = ((($320)) + 3072|0);
$322 = (($321) + ($319<<2)|0);
$323 = HEAP32[$322>>2]|0;
$324 = $317 ^ $323;
$x = $324;
$325 = $d;
$326 = $325 & 255;
$327 = $0;
$328 = ((($327)) + 1024|0);
$329 = (($328) + ($326<<2)|0);
$330 = HEAP32[$329>>2]|0;
$331 = $d;
$332 = $331 >>> 8;
$333 = $332 & 255;
$334 = $0;
$335 = ((($334)) + 2048|0);
$336 = (($335) + ($333<<2)|0);
$337 = HEAP32[$336>>2]|0;
$338 = $330 ^ $337;
$339 = $d;
$340 = $339 >>> 16;
$341 = $340 & 255;
$342 = $0;
$343 = ((($342)) + 3072|0);
$344 = (($343) + ($341<<2)|0);
$345 = HEAP32[$344>>2]|0;
$346 = $338 ^ $345;
$347 = $d;
$348 = $347 >>> 24;
$349 = $0;
$350 = (($349) + ($348<<2)|0);
$351 = HEAP32[$350>>2]|0;
$352 = $346 ^ $351;
$y = $352;
$353 = $y;
$354 = $x;
$355 = (($354) + ($353))|0;
$x = $355;
$356 = $x;
$357 = $0;
$358 = ((($357)) + 4128|0);
$359 = ((($358)) + 28|0);
$360 = HEAP32[$359>>2]|0;
$361 = (($356) + ($360))|0;
$362 = $y;
$363 = (($362) + ($361))|0;
$y = $363;
$364 = $x;
$365 = $0;
$366 = ((($365)) + 4128|0);
$367 = ((($366)) + 24|0);
$368 = HEAP32[$367>>2]|0;
$369 = (($364) + ($368))|0;
$370 = $a;
$371 = $370 ^ $369;
$a = $371;
$372 = $a;
$373 = $372 >>> 1;
$374 = $a;
$375 = $374 << 31;
$376 = (($373) + ($375))|0;
$a = $376;
$377 = $b;
$378 = $377 << 1;
$379 = $b;
$380 = $379 >>> 31;
$381 = (($378) + ($380))|0;
$382 = $y;
$383 = $381 ^ $382;
$b = $383;
$384 = $a;
$385 = $384 & 255;
$386 = $0;
$387 = (($386) + ($385<<2)|0);
$388 = HEAP32[$387>>2]|0;
$389 = $a;
$390 = $389 >>> 8;
$391 = $390 & 255;
$392 = $0;
$393 = ((($392)) + 1024|0);
$394 = (($393) + ($391<<2)|0);
$395 = HEAP32[$394>>2]|0;
$396 = $388 ^ $395;
$397 = $a;
$398 = $397 >>> 16;
$399 = $398 & 255;
$400 = $0;
$401 = ((($400)) + 2048|0);
$402 = (($401) + ($399<<2)|0);
$403 = HEAP32[$402>>2]|0;
$404 = $396 ^ $403;
$405 = $a;
$406 = $405 >>> 24;
$407 = $0;
$408 = ((($407)) + 3072|0);
$409 = (($408) + ($406<<2)|0);
$410 = HEAP32[$409>>2]|0;
$411 = $404 ^ $410;
$x = $411;
$412 = $b;
$413 = $412 & 255;
$414 = $0;
$415 = ((($414)) + 1024|0);
$416 = (($415) + ($413<<2)|0);
$417 = HEAP32[$416>>2]|0;
$418 = $b;
$419 = $418 >>> 8;
$420 = $419 & 255;
$421 = $0;
$422 = ((($421)) + 2048|0);
$423 = (($422) + ($420<<2)|0);
$424 = HEAP32[$423>>2]|0;
$425 = $417 ^ $424;
$426 = $b;
$427 = $426 >>> 16;
$428 = $427 & 255;
$429 = $0;
$430 = ((($429)) + 3072|0);
$431 = (($430) + ($428<<2)|0);
$432 = HEAP32[$431>>2]|0;
$433 = $425 ^ $432;
$434 = $b;
$435 = $434 >>> 24;
$436 = $0;
$437 = (($436) + ($435<<2)|0);
$438 = HEAP32[$437>>2]|0;
$439 = $433 ^ $438;
$y = $439;
$440 = $y;
$441 = $x;
$442 = (($441) + ($440))|0;
$x = $442;
$443 = $x;
$444 = $0;
$445 = ((($444)) + 4128|0);
$446 = ((($445)) + 36|0);
$447 = HEAP32[$446>>2]|0;
$448 = (($443) + ($447))|0;
$449 = $y;
$450 = (($449) + ($448))|0;
$y = $450;
$451 = $x;
$452 = $0;
$453 = ((($452)) + 4128|0);
$454 = ((($453)) + 32|0);
$455 = HEAP32[$454>>2]|0;
$456 = (($451) + ($455))|0;
$457 = $c;
$458 = $457 ^ $456;
$c = $458;
$459 = $c;
$460 = $459 >>> 1;
$461 = $c;
$462 = $461 << 31;
$463 = (($460) + ($462))|0;
$c = $463;
$464 = $d;
$465 = $464 << 1;
$466 = $d;
$467 = $466 >>> 31;
$468 = (($465) + ($467))|0;
$469 = $y;
$470 = $468 ^ $469;
$d = $470;
$471 = $c;
$472 = $471 & 255;
$473 = $0;
$474 = (($473) + ($472<<2)|0);
$475 = HEAP32[$474>>2]|0;
$476 = $c;
$477 = $476 >>> 8;
$478 = $477 & 255;
$479 = $0;
$480 = ((($479)) + 1024|0);
$481 = (($480) + ($478<<2)|0);
$482 = HEAP32[$481>>2]|0;
$483 = $475 ^ $482;
$484 = $c;
$485 = $484 >>> 16;
$486 = $485 & 255;
$487 = $0;
$488 = ((($487)) + 2048|0);
$489 = (($488) + ($486<<2)|0);
$490 = HEAP32[$489>>2]|0;
$491 = $483 ^ $490;
$492 = $c;
$493 = $492 >>> 24;
$494 = $0;
$495 = ((($494)) + 3072|0);
$496 = (($495) + ($493<<2)|0);
$497 = HEAP32[$496>>2]|0;
$498 = $491 ^ $497;
$x = $498;
$499 = $d;
$500 = $499 & 255;
$501 = $0;
$502 = ((($501)) + 1024|0);
$503 = (($502) + ($500<<2)|0);
$504 = HEAP32[$503>>2]|0;
$505 = $d;
$506 = $505 >>> 8;
$507 = $506 & 255;
$508 = $0;
$509 = ((($508)) + 2048|0);
$510 = (($509) + ($507<<2)|0);
$511 = HEAP32[$510>>2]|0;
$512 = $504 ^ $511;
$513 = $d;
$514 = $513 >>> 16;
$515 = $514 & 255;
$516 = $0;
$517 = ((($516)) + 3072|0);
$518 = (($517) + ($515<<2)|0);
$519 = HEAP32[$518>>2]|0;
$520 = $512 ^ $519;
$521 = $d;
$522 = $521 >>> 24;
$523 = $0;
$524 = (($523) + ($522<<2)|0);
$525 = HEAP32[$524>>2]|0;
$526 = $520 ^ $525;
$y = $526;
$527 = $y;
$528 = $x;
$529 = (($528) + ($527))|0;
$x = $529;
$530 = $x;
$531 = $0;
$532 = ((($531)) + 4128|0);
$533 = ((($532)) + 44|0);
$534 = HEAP32[$533>>2]|0;
$535 = (($530) + ($534))|0;
$536 = $y;
$537 = (($536) + ($535))|0;
$y = $537;
$538 = $x;
$539 = $0;
$540 = ((($539)) + 4128|0);
$541 = ((($540)) + 40|0);
$542 = HEAP32[$541>>2]|0;
$543 = (($538) + ($542))|0;
$544 = $a;
$545 = $544 ^ $543;
$a = $545;
$546 = $a;
$547 = $546 >>> 1;
$548 = $a;
$549 = $548 << 31;
$550 = (($547) + ($549))|0;
$a = $550;
$551 = $b;
$552 = $551 << 1;
$553 = $b;
$554 = $553 >>> 31;
$555 = (($552) + ($554))|0;
$556 = $y;
$557 = $555 ^ $556;
$b = $557;
$558 = $a;
$559 = $558 & 255;
$560 = $0;
$561 = (($560) + ($559<<2)|0);
$562 = HEAP32[$561>>2]|0;
$563 = $a;
$564 = $563 >>> 8;
$565 = $564 & 255;
$566 = $0;
$567 = ((($566)) + 1024|0);
$568 = (($567) + ($565<<2)|0);
$569 = HEAP32[$568>>2]|0;
$570 = $562 ^ $569;
$571 = $a;
$572 = $571 >>> 16;
$573 = $572 & 255;
$574 = $0;
$575 = ((($574)) + 2048|0);
$576 = (($575) + ($573<<2)|0);
$577 = HEAP32[$576>>2]|0;
$578 = $570 ^ $577;
$579 = $a;
$580 = $579 >>> 24;
$581 = $0;
$582 = ((($581)) + 3072|0);
$583 = (($582) + ($580<<2)|0);
$584 = HEAP32[$583>>2]|0;
$585 = $578 ^ $584;
$x = $585;
$586 = $b;
$587 = $586 & 255;
$588 = $0;
$589 = ((($588)) + 1024|0);
$590 = (($589) + ($587<<2)|0);
$591 = HEAP32[$590>>2]|0;
$592 = $b;
$593 = $592 >>> 8;
$594 = $593 & 255;
$595 = $0;
$596 = ((($595)) + 2048|0);
$597 = (($596) + ($594<<2)|0);
$598 = HEAP32[$597>>2]|0;
$599 = $591 ^ $598;
$600 = $b;
$601 = $600 >>> 16;
$602 = $601 & 255;
$603 = $0;
$604 = ((($603)) + 3072|0);
$605 = (($604) + ($602<<2)|0);
$606 = HEAP32[$605>>2]|0;
$607 = $599 ^ $606;
$608 = $b;
$609 = $608 >>> 24;
$610 = $0;
$611 = (($610) + ($609<<2)|0);
$612 = HEAP32[$611>>2]|0;
$613 = $607 ^ $612;
$y = $613;
$614 = $y;
$615 = $x;
$616 = (($615) + ($614))|0;
$x = $616;
$617 = $x;
$618 = $0;
$619 = ((($618)) + 4128|0);
$620 = ((($619)) + 52|0);
$621 = HEAP32[$620>>2]|0;
$622 = (($617) + ($621))|0;
$623 = $y;
$624 = (($623) + ($622))|0;
$y = $624;
$625 = $x;
$626 = $0;
$627 = ((($626)) + 4128|0);
$628 = ((($627)) + 48|0);
$629 = HEAP32[$628>>2]|0;
$630 = (($625) + ($629))|0;
$631 = $c;
$632 = $631 ^ $630;
$c = $632;
$633 = $c;
$634 = $633 >>> 1;
$635 = $c;
$636 = $635 << 31;
$637 = (($634) + ($636))|0;
$c = $637;
$638 = $d;
$639 = $638 << 1;
$640 = $d;
$641 = $640 >>> 31;
$642 = (($639) + ($641))|0;
$643 = $y;
$644 = $642 ^ $643;
$d = $644;
$645 = $c;
$646 = $645 & 255;
$647 = $0;
$648 = (($647) + ($646<<2)|0);
$649 = HEAP32[$648>>2]|0;
$650 = $c;
$651 = $650 >>> 8;
$652 = $651 & 255;
$653 = $0;
$654 = ((($653)) + 1024|0);
$655 = (($654) + ($652<<2)|0);
$656 = HEAP32[$655>>2]|0;
$657 = $649 ^ $656;
$658 = $c;
$659 = $658 >>> 16;
$660 = $659 & 255;
$661 = $0;
$662 = ((($661)) + 2048|0);
$663 = (($662) + ($660<<2)|0);
$664 = HEAP32[$663>>2]|0;
$665 = $657 ^ $664;
$666 = $c;
$667 = $666 >>> 24;
$668 = $0;
$669 = ((($668)) + 3072|0);
$670 = (($669) + ($667<<2)|0);
$671 = HEAP32[$670>>2]|0;
$672 = $665 ^ $671;
$x = $672;
$673 = $d;
$674 = $673 & 255;
$675 = $0;
$676 = ((($675)) + 1024|0);
$677 = (($676) + ($674<<2)|0);
$678 = HEAP32[$677>>2]|0;
$679 = $d;
$680 = $679 >>> 8;
$681 = $680 & 255;
$682 = $0;
$683 = ((($682)) + 2048|0);
$684 = (($683) + ($681<<2)|0);
$685 = HEAP32[$684>>2]|0;
$686 = $678 ^ $685;
$687 = $d;
$688 = $687 >>> 16;
$689 = $688 & 255;
$690 = $0;
$691 = ((($690)) + 3072|0);
$692 = (($691) + ($689<<2)|0);
$693 = HEAP32[$692>>2]|0;
$694 = $686 ^ $693;
$695 = $d;
$696 = $695 >>> 24;
$697 = $0;
$698 = (($697) + ($696<<2)|0);
$699 = HEAP32[$698>>2]|0;
$700 = $694 ^ $699;
$y = $700;
$701 = $y;
$702 = $x;
$703 = (($702) + ($701))|0;
$x = $703;
$704 = $x;
$705 = $0;
$706 = ((($705)) + 4128|0);
$707 = ((($706)) + 60|0);
$708 = HEAP32[$707>>2]|0;
$709 = (($704) + ($708))|0;
$710 = $y;
$711 = (($710) + ($709))|0;
$y = $711;
$712 = $x;
$713 = $0;
$714 = ((($713)) + 4128|0);
$715 = ((($714)) + 56|0);
$716 = HEAP32[$715>>2]|0;
$717 = (($712) + ($716))|0;
$718 = $a;
$719 = $718 ^ $717;
$a = $719;
$720 = $a;
$721 = $720 >>> 1;
$722 = $a;
$723 = $722 << 31;
$724 = (($721) + ($723))|0;
$a = $724;
$725 = $b;
$726 = $725 << 1;
$727 = $b;
$728 = $727 >>> 31;
$729 = (($726) + ($728))|0;
$730 = $y;
$731 = $729 ^ $730;
$b = $731;
$732 = $a;
$733 = $732 & 255;
$734 = $0;
$735 = (($734) + ($733<<2)|0);
$736 = HEAP32[$735>>2]|0;
$737 = $a;
$738 = $737 >>> 8;
$739 = $738 & 255;
$740 = $0;
$741 = ((($740)) + 1024|0);
$742 = (($741) + ($739<<2)|0);
$743 = HEAP32[$742>>2]|0;
$744 = $736 ^ $743;
$745 = $a;
$746 = $745 >>> 16;
$747 = $746 & 255;
$748 = $0;
$749 = ((($748)) + 2048|0);
$750 = (($749) + ($747<<2)|0);
$751 = HEAP32[$750>>2]|0;
$752 = $744 ^ $751;
$753 = $a;
$754 = $753 >>> 24;
$755 = $0;
$756 = ((($755)) + 3072|0);
$757 = (($756) + ($754<<2)|0);
$758 = HEAP32[$757>>2]|0;
$759 = $752 ^ $758;
$x = $759;
$760 = $b;
$761 = $760 & 255;
$762 = $0;
$763 = ((($762)) + 1024|0);
$764 = (($763) + ($761<<2)|0);
$765 = HEAP32[$764>>2]|0;
$766 = $b;
$767 = $766 >>> 8;
$768 = $767 & 255;
$769 = $0;
$770 = ((($769)) + 2048|0);
$771 = (($770) + ($768<<2)|0);
$772 = HEAP32[$771>>2]|0;
$773 = $765 ^ $772;
$774 = $b;
$775 = $774 >>> 16;
$776 = $775 & 255;
$777 = $0;
$778 = ((($777)) + 3072|0);
$779 = (($778) + ($776<<2)|0);
$780 = HEAP32[$779>>2]|0;
$781 = $773 ^ $780;
$782 = $b;
$783 = $782 >>> 24;
$784 = $0;
$785 = (($784) + ($783<<2)|0);
$786 = HEAP32[$785>>2]|0;
$787 = $781 ^ $786;
$y = $787;
$788 = $y;
$789 = $x;
$790 = (($789) + ($788))|0;
$x = $790;
$791 = $x;
$792 = $0;
$793 = ((($792)) + 4128|0);
$794 = ((($793)) + 68|0);
$795 = HEAP32[$794>>2]|0;
$796 = (($791) + ($795))|0;
$797 = $y;
$798 = (($797) + ($796))|0;
$y = $798;
$799 = $x;
$800 = $0;
$801 = ((($800)) + 4128|0);
$802 = ((($801)) + 64|0);
$803 = HEAP32[$802>>2]|0;
$804 = (($799) + ($803))|0;
$805 = $c;
$806 = $805 ^ $804;
$c = $806;
$807 = $c;
$808 = $807 >>> 1;
$809 = $c;
$810 = $809 << 31;
$811 = (($808) + ($810))|0;
$c = $811;
$812 = $d;
$813 = $812 << 1;
$814 = $d;
$815 = $814 >>> 31;
$816 = (($813) + ($815))|0;
$817 = $y;
$818 = $816 ^ $817;
$d = $818;
$819 = $c;
$820 = $819 & 255;
$821 = $0;
$822 = (($821) + ($820<<2)|0);
$823 = HEAP32[$822>>2]|0;
$824 = $c;
$825 = $824 >>> 8;
$826 = $825 & 255;
$827 = $0;
$828 = ((($827)) + 1024|0);
$829 = (($828) + ($826<<2)|0);
$830 = HEAP32[$829>>2]|0;
$831 = $823 ^ $830;
$832 = $c;
$833 = $832 >>> 16;
$834 = $833 & 255;
$835 = $0;
$836 = ((($835)) + 2048|0);
$837 = (($836) + ($834<<2)|0);
$838 = HEAP32[$837>>2]|0;
$839 = $831 ^ $838;
$840 = $c;
$841 = $840 >>> 24;
$842 = $0;
$843 = ((($842)) + 3072|0);
$844 = (($843) + ($841<<2)|0);
$845 = HEAP32[$844>>2]|0;
$846 = $839 ^ $845;
$x = $846;
$847 = $d;
$848 = $847 & 255;
$849 = $0;
$850 = ((($849)) + 1024|0);
$851 = (($850) + ($848<<2)|0);
$852 = HEAP32[$851>>2]|0;
$853 = $d;
$854 = $853 >>> 8;
$855 = $854 & 255;
$856 = $0;
$857 = ((($856)) + 2048|0);
$858 = (($857) + ($855<<2)|0);
$859 = HEAP32[$858>>2]|0;
$860 = $852 ^ $859;
$861 = $d;
$862 = $861 >>> 16;
$863 = $862 & 255;
$864 = $0;
$865 = ((($864)) + 3072|0);
$866 = (($865) + ($863<<2)|0);
$867 = HEAP32[$866>>2]|0;
$868 = $860 ^ $867;
$869 = $d;
$870 = $869 >>> 24;
$871 = $0;
$872 = (($871) + ($870<<2)|0);
$873 = HEAP32[$872>>2]|0;
$874 = $868 ^ $873;
$y = $874;
$875 = $y;
$876 = $x;
$877 = (($876) + ($875))|0;
$x = $877;
$878 = $x;
$879 = $0;
$880 = ((($879)) + 4128|0);
$881 = ((($880)) + 76|0);
$882 = HEAP32[$881>>2]|0;
$883 = (($878) + ($882))|0;
$884 = $y;
$885 = (($884) + ($883))|0;
$y = $885;
$886 = $x;
$887 = $0;
$888 = ((($887)) + 4128|0);
$889 = ((($888)) + 72|0);
$890 = HEAP32[$889>>2]|0;
$891 = (($886) + ($890))|0;
$892 = $a;
$893 = $892 ^ $891;
$a = $893;
$894 = $a;
$895 = $894 >>> 1;
$896 = $a;
$897 = $896 << 31;
$898 = (($895) + ($897))|0;
$a = $898;
$899 = $b;
$900 = $899 << 1;
$901 = $b;
$902 = $901 >>> 31;
$903 = (($900) + ($902))|0;
$904 = $y;
$905 = $903 ^ $904;
$b = $905;
$906 = $a;
$907 = $906 & 255;
$908 = $0;
$909 = (($908) + ($907<<2)|0);
$910 = HEAP32[$909>>2]|0;
$911 = $a;
$912 = $911 >>> 8;
$913 = $912 & 255;
$914 = $0;
$915 = ((($914)) + 1024|0);
$916 = (($915) + ($913<<2)|0);
$917 = HEAP32[$916>>2]|0;
$918 = $910 ^ $917;
$919 = $a;
$920 = $919 >>> 16;
$921 = $920 & 255;
$922 = $0;
$923 = ((($922)) + 2048|0);
$924 = (($923) + ($921<<2)|0);
$925 = HEAP32[$924>>2]|0;
$926 = $918 ^ $925;
$927 = $a;
$928 = $927 >>> 24;
$929 = $0;
$930 = ((($929)) + 3072|0);
$931 = (($930) + ($928<<2)|0);
$932 = HEAP32[$931>>2]|0;
$933 = $926 ^ $932;
$x = $933;
$934 = $b;
$935 = $934 & 255;
$936 = $0;
$937 = ((($936)) + 1024|0);
$938 = (($937) + ($935<<2)|0);
$939 = HEAP32[$938>>2]|0;
$940 = $b;
$941 = $940 >>> 8;
$942 = $941 & 255;
$943 = $0;
$944 = ((($943)) + 2048|0);
$945 = (($944) + ($942<<2)|0);
$946 = HEAP32[$945>>2]|0;
$947 = $939 ^ $946;
$948 = $b;
$949 = $948 >>> 16;
$950 = $949 & 255;
$951 = $0;
$952 = ((($951)) + 3072|0);
$953 = (($952) + ($950<<2)|0);
$954 = HEAP32[$953>>2]|0;
$955 = $947 ^ $954;
$956 = $b;
$957 = $956 >>> 24;
$958 = $0;
$959 = (($958) + ($957<<2)|0);
$960 = HEAP32[$959>>2]|0;
$961 = $955 ^ $960;
$y = $961;
$962 = $y;
$963 = $x;
$964 = (($963) + ($962))|0;
$x = $964;
$965 = $x;
$966 = $0;
$967 = ((($966)) + 4128|0);
$968 = ((($967)) + 84|0);
$969 = HEAP32[$968>>2]|0;
$970 = (($965) + ($969))|0;
$971 = $y;
$972 = (($971) + ($970))|0;
$y = $972;
$973 = $x;
$974 = $0;
$975 = ((($974)) + 4128|0);
$976 = ((($975)) + 80|0);
$977 = HEAP32[$976>>2]|0;
$978 = (($973) + ($977))|0;
$979 = $c;
$980 = $979 ^ $978;
$c = $980;
$981 = $c;
$982 = $981 >>> 1;
$983 = $c;
$984 = $983 << 31;
$985 = (($982) + ($984))|0;
$c = $985;
$986 = $d;
$987 = $986 << 1;
$988 = $d;
$989 = $988 >>> 31;
$990 = (($987) + ($989))|0;
$991 = $y;
$992 = $990 ^ $991;
$d = $992;
$993 = $c;
$994 = $993 & 255;
$995 = $0;
$996 = (($995) + ($994<<2)|0);
$997 = HEAP32[$996>>2]|0;
$998 = $c;
$999 = $998 >>> 8;
$1000 = $999 & 255;
$1001 = $0;
$1002 = ((($1001)) + 1024|0);
$1003 = (($1002) + ($1000<<2)|0);
$1004 = HEAP32[$1003>>2]|0;
$1005 = $997 ^ $1004;
$1006 = $c;
$1007 = $1006 >>> 16;
$1008 = $1007 & 255;
$1009 = $0;
$1010 = ((($1009)) + 2048|0);
$1011 = (($1010) + ($1008<<2)|0);
$1012 = HEAP32[$1011>>2]|0;
$1013 = $1005 ^ $1012;
$1014 = $c;
$1015 = $1014 >>> 24;
$1016 = $0;
$1017 = ((($1016)) + 3072|0);
$1018 = (($1017) + ($1015<<2)|0);
$1019 = HEAP32[$1018>>2]|0;
$1020 = $1013 ^ $1019;
$x = $1020;
$1021 = $d;
$1022 = $1021 & 255;
$1023 = $0;
$1024 = ((($1023)) + 1024|0);
$1025 = (($1024) + ($1022<<2)|0);
$1026 = HEAP32[$1025>>2]|0;
$1027 = $d;
$1028 = $1027 >>> 8;
$1029 = $1028 & 255;
$1030 = $0;
$1031 = ((($1030)) + 2048|0);
$1032 = (($1031) + ($1029<<2)|0);
$1033 = HEAP32[$1032>>2]|0;
$1034 = $1026 ^ $1033;
$1035 = $d;
$1036 = $1035 >>> 16;
$1037 = $1036 & 255;
$1038 = $0;
$1039 = ((($1038)) + 3072|0);
$1040 = (($1039) + ($1037<<2)|0);
$1041 = HEAP32[$1040>>2]|0;
$1042 = $1034 ^ $1041;
$1043 = $d;
$1044 = $1043 >>> 24;
$1045 = $0;
$1046 = (($1045) + ($1044<<2)|0);
$1047 = HEAP32[$1046>>2]|0;
$1048 = $1042 ^ $1047;
$y = $1048;
$1049 = $y;
$1050 = $x;
$1051 = (($1050) + ($1049))|0;
$x = $1051;
$1052 = $x;
$1053 = $0;
$1054 = ((($1053)) + 4128|0);
$1055 = ((($1054)) + 92|0);
$1056 = HEAP32[$1055>>2]|0;
$1057 = (($1052) + ($1056))|0;
$1058 = $y;
$1059 = (($1058) + ($1057))|0;
$y = $1059;
$1060 = $x;
$1061 = $0;
$1062 = ((($1061)) + 4128|0);
$1063 = ((($1062)) + 88|0);
$1064 = HEAP32[$1063>>2]|0;
$1065 = (($1060) + ($1064))|0;
$1066 = $a;
$1067 = $1066 ^ $1065;
$a = $1067;
$1068 = $a;
$1069 = $1068 >>> 1;
$1070 = $a;
$1071 = $1070 << 31;
$1072 = (($1069) + ($1071))|0;
$a = $1072;
$1073 = $b;
$1074 = $1073 << 1;
$1075 = $b;
$1076 = $1075 >>> 31;
$1077 = (($1074) + ($1076))|0;
$1078 = $y;
$1079 = $1077 ^ $1078;
$b = $1079;
$1080 = $a;
$1081 = $1080 & 255;
$1082 = $0;
$1083 = (($1082) + ($1081<<2)|0);
$1084 = HEAP32[$1083>>2]|0;
$1085 = $a;
$1086 = $1085 >>> 8;
$1087 = $1086 & 255;
$1088 = $0;
$1089 = ((($1088)) + 1024|0);
$1090 = (($1089) + ($1087<<2)|0);
$1091 = HEAP32[$1090>>2]|0;
$1092 = $1084 ^ $1091;
$1093 = $a;
$1094 = $1093 >>> 16;
$1095 = $1094 & 255;
$1096 = $0;
$1097 = ((($1096)) + 2048|0);
$1098 = (($1097) + ($1095<<2)|0);
$1099 = HEAP32[$1098>>2]|0;
$1100 = $1092 ^ $1099;
$1101 = $a;
$1102 = $1101 >>> 24;
$1103 = $0;
$1104 = ((($1103)) + 3072|0);
$1105 = (($1104) + ($1102<<2)|0);
$1106 = HEAP32[$1105>>2]|0;
$1107 = $1100 ^ $1106;
$x = $1107;
$1108 = $b;
$1109 = $1108 & 255;
$1110 = $0;
$1111 = ((($1110)) + 1024|0);
$1112 = (($1111) + ($1109<<2)|0);
$1113 = HEAP32[$1112>>2]|0;
$1114 = $b;
$1115 = $1114 >>> 8;
$1116 = $1115 & 255;
$1117 = $0;
$1118 = ((($1117)) + 2048|0);
$1119 = (($1118) + ($1116<<2)|0);
$1120 = HEAP32[$1119>>2]|0;
$1121 = $1113 ^ $1120;
$1122 = $b;
$1123 = $1122 >>> 16;
$1124 = $1123 & 255;
$1125 = $0;
$1126 = ((($1125)) + 3072|0);
$1127 = (($1126) + ($1124<<2)|0);
$1128 = HEAP32[$1127>>2]|0;
$1129 = $1121 ^ $1128;
$1130 = $b;
$1131 = $1130 >>> 24;
$1132 = $0;
$1133 = (($1132) + ($1131<<2)|0);
$1134 = HEAP32[$1133>>2]|0;
$1135 = $1129 ^ $1134;
$y = $1135;
$1136 = $y;
$1137 = $x;
$1138 = (($1137) + ($1136))|0;
$x = $1138;
$1139 = $x;
$1140 = $0;
$1141 = ((($1140)) + 4128|0);
$1142 = ((($1141)) + 100|0);
$1143 = HEAP32[$1142>>2]|0;
$1144 = (($1139) + ($1143))|0;
$1145 = $y;
$1146 = (($1145) + ($1144))|0;
$y = $1146;
$1147 = $x;
$1148 = $0;
$1149 = ((($1148)) + 4128|0);
$1150 = ((($1149)) + 96|0);
$1151 = HEAP32[$1150>>2]|0;
$1152 = (($1147) + ($1151))|0;
$1153 = $c;
$1154 = $1153 ^ $1152;
$c = $1154;
$1155 = $c;
$1156 = $1155 >>> 1;
$1157 = $c;
$1158 = $1157 << 31;
$1159 = (($1156) + ($1158))|0;
$c = $1159;
$1160 = $d;
$1161 = $1160 << 1;
$1162 = $d;
$1163 = $1162 >>> 31;
$1164 = (($1161) + ($1163))|0;
$1165 = $y;
$1166 = $1164 ^ $1165;
$d = $1166;
$1167 = $c;
$1168 = $1167 & 255;
$1169 = $0;
$1170 = (($1169) + ($1168<<2)|0);
$1171 = HEAP32[$1170>>2]|0;
$1172 = $c;
$1173 = $1172 >>> 8;
$1174 = $1173 & 255;
$1175 = $0;
$1176 = ((($1175)) + 1024|0);
$1177 = (($1176) + ($1174<<2)|0);
$1178 = HEAP32[$1177>>2]|0;
$1179 = $1171 ^ $1178;
$1180 = $c;
$1181 = $1180 >>> 16;
$1182 = $1181 & 255;
$1183 = $0;
$1184 = ((($1183)) + 2048|0);
$1185 = (($1184) + ($1182<<2)|0);
$1186 = HEAP32[$1185>>2]|0;
$1187 = $1179 ^ $1186;
$1188 = $c;
$1189 = $1188 >>> 24;
$1190 = $0;
$1191 = ((($1190)) + 3072|0);
$1192 = (($1191) + ($1189<<2)|0);
$1193 = HEAP32[$1192>>2]|0;
$1194 = $1187 ^ $1193;
$x = $1194;
$1195 = $d;
$1196 = $1195 & 255;
$1197 = $0;
$1198 = ((($1197)) + 1024|0);
$1199 = (($1198) + ($1196<<2)|0);
$1200 = HEAP32[$1199>>2]|0;
$1201 = $d;
$1202 = $1201 >>> 8;
$1203 = $1202 & 255;
$1204 = $0;
$1205 = ((($1204)) + 2048|0);
$1206 = (($1205) + ($1203<<2)|0);
$1207 = HEAP32[$1206>>2]|0;
$1208 = $1200 ^ $1207;
$1209 = $d;
$1210 = $1209 >>> 16;
$1211 = $1210 & 255;
$1212 = $0;
$1213 = ((($1212)) + 3072|0);
$1214 = (($1213) + ($1211<<2)|0);
$1215 = HEAP32[$1214>>2]|0;
$1216 = $1208 ^ $1215;
$1217 = $d;
$1218 = $1217 >>> 24;
$1219 = $0;
$1220 = (($1219) + ($1218<<2)|0);
$1221 = HEAP32[$1220>>2]|0;
$1222 = $1216 ^ $1221;
$y = $1222;
$1223 = $y;
$1224 = $x;
$1225 = (($1224) + ($1223))|0;
$x = $1225;
$1226 = $x;
$1227 = $0;
$1228 = ((($1227)) + 4128|0);
$1229 = ((($1228)) + 108|0);
$1230 = HEAP32[$1229>>2]|0;
$1231 = (($1226) + ($1230))|0;
$1232 = $y;
$1233 = (($1232) + ($1231))|0;
$y = $1233;
$1234 = $x;
$1235 = $0;
$1236 = ((($1235)) + 4128|0);
$1237 = ((($1236)) + 104|0);
$1238 = HEAP32[$1237>>2]|0;
$1239 = (($1234) + ($1238))|0;
$1240 = $a;
$1241 = $1240 ^ $1239;
$a = $1241;
$1242 = $a;
$1243 = $1242 >>> 1;
$1244 = $a;
$1245 = $1244 << 31;
$1246 = (($1243) + ($1245))|0;
$a = $1246;
$1247 = $b;
$1248 = $1247 << 1;
$1249 = $b;
$1250 = $1249 >>> 31;
$1251 = (($1248) + ($1250))|0;
$1252 = $y;
$1253 = $1251 ^ $1252;
$b = $1253;
$1254 = $a;
$1255 = $1254 & 255;
$1256 = $0;
$1257 = (($1256) + ($1255<<2)|0);
$1258 = HEAP32[$1257>>2]|0;
$1259 = $a;
$1260 = $1259 >>> 8;
$1261 = $1260 & 255;
$1262 = $0;
$1263 = ((($1262)) + 1024|0);
$1264 = (($1263) + ($1261<<2)|0);
$1265 = HEAP32[$1264>>2]|0;
$1266 = $1258 ^ $1265;
$1267 = $a;
$1268 = $1267 >>> 16;
$1269 = $1268 & 255;
$1270 = $0;
$1271 = ((($1270)) + 2048|0);
$1272 = (($1271) + ($1269<<2)|0);
$1273 = HEAP32[$1272>>2]|0;
$1274 = $1266 ^ $1273;
$1275 = $a;
$1276 = $1275 >>> 24;
$1277 = $0;
$1278 = ((($1277)) + 3072|0);
$1279 = (($1278) + ($1276<<2)|0);
$1280 = HEAP32[$1279>>2]|0;
$1281 = $1274 ^ $1280;
$x = $1281;
$1282 = $b;
$1283 = $1282 & 255;
$1284 = $0;
$1285 = ((($1284)) + 1024|0);
$1286 = (($1285) + ($1283<<2)|0);
$1287 = HEAP32[$1286>>2]|0;
$1288 = $b;
$1289 = $1288 >>> 8;
$1290 = $1289 & 255;
$1291 = $0;
$1292 = ((($1291)) + 2048|0);
$1293 = (($1292) + ($1290<<2)|0);
$1294 = HEAP32[$1293>>2]|0;
$1295 = $1287 ^ $1294;
$1296 = $b;
$1297 = $1296 >>> 16;
$1298 = $1297 & 255;
$1299 = $0;
$1300 = ((($1299)) + 3072|0);
$1301 = (($1300) + ($1298<<2)|0);
$1302 = HEAP32[$1301>>2]|0;
$1303 = $1295 ^ $1302;
$1304 = $b;
$1305 = $1304 >>> 24;
$1306 = $0;
$1307 = (($1306) + ($1305<<2)|0);
$1308 = HEAP32[$1307>>2]|0;
$1309 = $1303 ^ $1308;
$y = $1309;
$1310 = $y;
$1311 = $x;
$1312 = (($1311) + ($1310))|0;
$x = $1312;
$1313 = $x;
$1314 = $0;
$1315 = ((($1314)) + 4128|0);
$1316 = ((($1315)) + 116|0);
$1317 = HEAP32[$1316>>2]|0;
$1318 = (($1313) + ($1317))|0;
$1319 = $y;
$1320 = (($1319) + ($1318))|0;
$y = $1320;
$1321 = $x;
$1322 = $0;
$1323 = ((($1322)) + 4128|0);
$1324 = ((($1323)) + 112|0);
$1325 = HEAP32[$1324>>2]|0;
$1326 = (($1321) + ($1325))|0;
$1327 = $c;
$1328 = $1327 ^ $1326;
$c = $1328;
$1329 = $c;
$1330 = $1329 >>> 1;
$1331 = $c;
$1332 = $1331 << 31;
$1333 = (($1330) + ($1332))|0;
$c = $1333;
$1334 = $d;
$1335 = $1334 << 1;
$1336 = $d;
$1337 = $1336 >>> 31;
$1338 = (($1335) + ($1337))|0;
$1339 = $y;
$1340 = $1338 ^ $1339;
$d = $1340;
$1341 = $c;
$1342 = $1341 & 255;
$1343 = $0;
$1344 = (($1343) + ($1342<<2)|0);
$1345 = HEAP32[$1344>>2]|0;
$1346 = $c;
$1347 = $1346 >>> 8;
$1348 = $1347 & 255;
$1349 = $0;
$1350 = ((($1349)) + 1024|0);
$1351 = (($1350) + ($1348<<2)|0);
$1352 = HEAP32[$1351>>2]|0;
$1353 = $1345 ^ $1352;
$1354 = $c;
$1355 = $1354 >>> 16;
$1356 = $1355 & 255;
$1357 = $0;
$1358 = ((($1357)) + 2048|0);
$1359 = (($1358) + ($1356<<2)|0);
$1360 = HEAP32[$1359>>2]|0;
$1361 = $1353 ^ $1360;
$1362 = $c;
$1363 = $1362 >>> 24;
$1364 = $0;
$1365 = ((($1364)) + 3072|0);
$1366 = (($1365) + ($1363<<2)|0);
$1367 = HEAP32[$1366>>2]|0;
$1368 = $1361 ^ $1367;
$x = $1368;
$1369 = $d;
$1370 = $1369 & 255;
$1371 = $0;
$1372 = ((($1371)) + 1024|0);
$1373 = (($1372) + ($1370<<2)|0);
$1374 = HEAP32[$1373>>2]|0;
$1375 = $d;
$1376 = $1375 >>> 8;
$1377 = $1376 & 255;
$1378 = $0;
$1379 = ((($1378)) + 2048|0);
$1380 = (($1379) + ($1377<<2)|0);
$1381 = HEAP32[$1380>>2]|0;
$1382 = $1374 ^ $1381;
$1383 = $d;
$1384 = $1383 >>> 16;
$1385 = $1384 & 255;
$1386 = $0;
$1387 = ((($1386)) + 3072|0);
$1388 = (($1387) + ($1385<<2)|0);
$1389 = HEAP32[$1388>>2]|0;
$1390 = $1382 ^ $1389;
$1391 = $d;
$1392 = $1391 >>> 24;
$1393 = $0;
$1394 = (($1393) + ($1392<<2)|0);
$1395 = HEAP32[$1394>>2]|0;
$1396 = $1390 ^ $1395;
$y = $1396;
$1397 = $y;
$1398 = $x;
$1399 = (($1398) + ($1397))|0;
$x = $1399;
$1400 = $x;
$1401 = $0;
$1402 = ((($1401)) + 4128|0);
$1403 = ((($1402)) + 124|0);
$1404 = HEAP32[$1403>>2]|0;
$1405 = (($1400) + ($1404))|0;
$1406 = $y;
$1407 = (($1406) + ($1405))|0;
$y = $1407;
$1408 = $x;
$1409 = $0;
$1410 = ((($1409)) + 4128|0);
$1411 = ((($1410)) + 120|0);
$1412 = HEAP32[$1411>>2]|0;
$1413 = (($1408) + ($1412))|0;
$1414 = $a;
$1415 = $1414 ^ $1413;
$a = $1415;
$1416 = $a;
$1417 = $1416 >>> 1;
$1418 = $a;
$1419 = $1418 << 31;
$1420 = (($1417) + ($1419))|0;
$a = $1420;
$1421 = $b;
$1422 = $1421 << 1;
$1423 = $b;
$1424 = $1423 >>> 31;
$1425 = (($1422) + ($1424))|0;
$1426 = $y;
$1427 = $1425 ^ $1426;
$b = $1427;
$1428 = $0;
$1429 = ((($1428)) + 4096|0);
$1430 = ((($1429)) + 16|0);
$1431 = HEAP32[$1430>>2]|0;
$1432 = $c;
$1433 = $1432 ^ $1431;
$c = $1433;
$1434 = $1;
$1435 = $c;
_buf_put_le32_1450($1434,$1435);
$1436 = $0;
$1437 = ((($1436)) + 4096|0);
$1438 = ((($1437)) + 20|0);
$1439 = HEAP32[$1438>>2]|0;
$1440 = $d;
$1441 = $1440 ^ $1439;
$d = $1441;
$1442 = $1;
$1443 = ((($1442)) + 4|0);
$1444 = $d;
_buf_put_le32_1450($1443,$1444);
$1445 = $0;
$1446 = ((($1445)) + 4096|0);
$1447 = ((($1446)) + 24|0);
$1448 = HEAP32[$1447>>2]|0;
$1449 = $a;
$1450 = $1449 ^ $1448;
$a = $1450;
$1451 = $1;
$1452 = ((($1451)) + 8|0);
$1453 = $a;
_buf_put_le32_1450($1452,$1453);
$1454 = $0;
$1455 = ((($1454)) + 4096|0);
$1456 = ((($1455)) + 28|0);
$1457 = HEAP32[$1456>>2]|0;
$1458 = $b;
$1459 = $1458 ^ $1457;
$b = $1459;
$1460 = $1;
$1461 = ((($1460)) + 12|0);
$1462 = $b;
_buf_put_le32_1450($1461,$1462);
STACKTOP = sp;return;
}
function _buf_get_le32_1449($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = ((($2)) + 3|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = $5 << 24;
$7 = $in;
$8 = ((($7)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 << 16;
$12 = $6 | $11;
$13 = $in;
$14 = ((($13)) + 1|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $12 | $17;
$19 = $in;
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $18 | $21;
STACKTOP = sp;return ($22|0);
}
function _buf_put_le32_1450($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
$7 = ((($6)) + 3|0);
HEAP8[$7>>0] = $5;
$8 = $1;
$9 = $8 >>> 16;
$10 = $9&255;
$11 = $out;
$12 = ((($11)) + 2|0);
HEAP8[$12>>0] = $10;
$13 = $1;
$14 = $13 >>> 8;
$15 = $14&255;
$16 = $out;
$17 = ((($16)) + 1|0);
HEAP8[$17>>0] = $15;
$18 = $1;
$19 = $18&255;
$20 = $out;
HEAP8[$20>>0] = $19;
STACKTOP = sp;return;
}
function _twofish_decrypt($context,$out,$in) {
$context = $context|0;
$out = $out|0;
$in = $in|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $out;
$2 = $in;
$3 = $0;
$ctx = $3;
$4 = $ctx;
$5 = $1;
$6 = $2;
_do_twofish_decrypt($4,$5,$6);
STACKTOP = sp;return 36;
}
function _do_twofish_decrypt($ctx,$out,$in) {
$ctx = $ctx|0;
$out = $out|0;
$in = $in|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0;
var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0;
var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0;
var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0;
var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0;
var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0;
var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0;
var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0;
var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0;
var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0;
var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0;
var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0;
var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0;
var $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0;
var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0;
var $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0;
var $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0;
var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0;
var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0;
var $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0;
var $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0;
var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0;
var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0;
var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0;
var $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0;
var $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0;
var $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0;
var $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0;
var $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0;
var $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0;
var $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0;
var $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0;
var $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0;
var $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0;
var $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0;
var $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0;
var $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0;
var $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0;
var $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0;
var $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0;
var $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0;
var $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0;
var $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0;
var $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0;
var $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0;
var $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0;
var $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0;
var $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $a = 0;
var $b = 0, $c = 0, $d = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $out;
$2 = $in;
$3 = $2;
$4 = (_buf_get_le32_1449($3)|0);
$c = $4;
$5 = $0;
$6 = ((($5)) + 4096|0);
$7 = ((($6)) + 16|0);
$8 = HEAP32[$7>>2]|0;
$9 = $c;
$10 = $9 ^ $8;
$c = $10;
$11 = $2;
$12 = ((($11)) + 4|0);
$13 = (_buf_get_le32_1449($12)|0);
$d = $13;
$14 = $0;
$15 = ((($14)) + 4096|0);
$16 = ((($15)) + 20|0);
$17 = HEAP32[$16>>2]|0;
$18 = $d;
$19 = $18 ^ $17;
$d = $19;
$20 = $2;
$21 = ((($20)) + 8|0);
$22 = (_buf_get_le32_1449($21)|0);
$a = $22;
$23 = $0;
$24 = ((($23)) + 4096|0);
$25 = ((($24)) + 24|0);
$26 = HEAP32[$25>>2]|0;
$27 = $a;
$28 = $27 ^ $26;
$a = $28;
$29 = $2;
$30 = ((($29)) + 12|0);
$31 = (_buf_get_le32_1449($30)|0);
$b = $31;
$32 = $0;
$33 = ((($32)) + 4096|0);
$34 = ((($33)) + 28|0);
$35 = HEAP32[$34>>2]|0;
$36 = $b;
$37 = $36 ^ $35;
$b = $37;
$38 = $c;
$39 = $38 & 255;
$40 = $0;
$41 = (($40) + ($39<<2)|0);
$42 = HEAP32[$41>>2]|0;
$43 = $c;
$44 = $43 >>> 8;
$45 = $44 & 255;
$46 = $0;
$47 = ((($46)) + 1024|0);
$48 = (($47) + ($45<<2)|0);
$49 = HEAP32[$48>>2]|0;
$50 = $42 ^ $49;
$51 = $c;
$52 = $51 >>> 16;
$53 = $52 & 255;
$54 = $0;
$55 = ((($54)) + 2048|0);
$56 = (($55) + ($53<<2)|0);
$57 = HEAP32[$56>>2]|0;
$58 = $50 ^ $57;
$59 = $c;
$60 = $59 >>> 24;
$61 = $0;
$62 = ((($61)) + 3072|0);
$63 = (($62) + ($60<<2)|0);
$64 = HEAP32[$63>>2]|0;
$65 = $58 ^ $64;
$x = $65;
$66 = $d;
$67 = $66 & 255;
$68 = $0;
$69 = ((($68)) + 1024|0);
$70 = (($69) + ($67<<2)|0);
$71 = HEAP32[$70>>2]|0;
$72 = $d;
$73 = $72 >>> 8;
$74 = $73 & 255;
$75 = $0;
$76 = ((($75)) + 2048|0);
$77 = (($76) + ($74<<2)|0);
$78 = HEAP32[$77>>2]|0;
$79 = $71 ^ $78;
$80 = $d;
$81 = $80 >>> 16;
$82 = $81 & 255;
$83 = $0;
$84 = ((($83)) + 3072|0);
$85 = (($84) + ($82<<2)|0);
$86 = HEAP32[$85>>2]|0;
$87 = $79 ^ $86;
$88 = $d;
$89 = $88 >>> 24;
$90 = $0;
$91 = (($90) + ($89<<2)|0);
$92 = HEAP32[$91>>2]|0;
$93 = $87 ^ $92;
$y = $93;
$94 = $y;
$95 = $x;
$96 = (($95) + ($94))|0;
$x = $96;
$97 = $x;
$98 = $y;
$99 = (($98) + ($97))|0;
$y = $99;
$100 = $y;
$101 = $0;
$102 = ((($101)) + 4128|0);
$103 = ((($102)) + 124|0);
$104 = HEAP32[$103>>2]|0;
$105 = (($100) + ($104))|0;
$106 = $b;
$107 = $106 ^ $105;
$b = $107;
$108 = $b;
$109 = $108 >>> 1;
$110 = $b;
$111 = $110 << 31;
$112 = (($109) + ($111))|0;
$b = $112;
$113 = $a;
$114 = $113 << 1;
$115 = $a;
$116 = $115 >>> 31;
$117 = (($114) + ($116))|0;
$a = $117;
$118 = $x;
$119 = $0;
$120 = ((($119)) + 4128|0);
$121 = ((($120)) + 120|0);
$122 = HEAP32[$121>>2]|0;
$123 = (($118) + ($122))|0;
$124 = $a;
$125 = $124 ^ $123;
$a = $125;
$126 = $a;
$127 = $126 & 255;
$128 = $0;
$129 = (($128) + ($127<<2)|0);
$130 = HEAP32[$129>>2]|0;
$131 = $a;
$132 = $131 >>> 8;
$133 = $132 & 255;
$134 = $0;
$135 = ((($134)) + 1024|0);
$136 = (($135) + ($133<<2)|0);
$137 = HEAP32[$136>>2]|0;
$138 = $130 ^ $137;
$139 = $a;
$140 = $139 >>> 16;
$141 = $140 & 255;
$142 = $0;
$143 = ((($142)) + 2048|0);
$144 = (($143) + ($141<<2)|0);
$145 = HEAP32[$144>>2]|0;
$146 = $138 ^ $145;
$147 = $a;
$148 = $147 >>> 24;
$149 = $0;
$150 = ((($149)) + 3072|0);
$151 = (($150) + ($148<<2)|0);
$152 = HEAP32[$151>>2]|0;
$153 = $146 ^ $152;
$x = $153;
$154 = $b;
$155 = $154 & 255;
$156 = $0;
$157 = ((($156)) + 1024|0);
$158 = (($157) + ($155<<2)|0);
$159 = HEAP32[$158>>2]|0;
$160 = $b;
$161 = $160 >>> 8;
$162 = $161 & 255;
$163 = $0;
$164 = ((($163)) + 2048|0);
$165 = (($164) + ($162<<2)|0);
$166 = HEAP32[$165>>2]|0;
$167 = $159 ^ $166;
$168 = $b;
$169 = $168 >>> 16;
$170 = $169 & 255;
$171 = $0;
$172 = ((($171)) + 3072|0);
$173 = (($172) + ($170<<2)|0);
$174 = HEAP32[$173>>2]|0;
$175 = $167 ^ $174;
$176 = $b;
$177 = $176 >>> 24;
$178 = $0;
$179 = (($178) + ($177<<2)|0);
$180 = HEAP32[$179>>2]|0;
$181 = $175 ^ $180;
$y = $181;
$182 = $y;
$183 = $x;
$184 = (($183) + ($182))|0;
$x = $184;
$185 = $x;
$186 = $y;
$187 = (($186) + ($185))|0;
$y = $187;
$188 = $y;
$189 = $0;
$190 = ((($189)) + 4128|0);
$191 = ((($190)) + 116|0);
$192 = HEAP32[$191>>2]|0;
$193 = (($188) + ($192))|0;
$194 = $d;
$195 = $194 ^ $193;
$d = $195;
$196 = $d;
$197 = $196 >>> 1;
$198 = $d;
$199 = $198 << 31;
$200 = (($197) + ($199))|0;
$d = $200;
$201 = $c;
$202 = $201 << 1;
$203 = $c;
$204 = $203 >>> 31;
$205 = (($202) + ($204))|0;
$c = $205;
$206 = $x;
$207 = $0;
$208 = ((($207)) + 4128|0);
$209 = ((($208)) + 112|0);
$210 = HEAP32[$209>>2]|0;
$211 = (($206) + ($210))|0;
$212 = $c;
$213 = $212 ^ $211;
$c = $213;
$214 = $c;
$215 = $214 & 255;
$216 = $0;
$217 = (($216) + ($215<<2)|0);
$218 = HEAP32[$217>>2]|0;
$219 = $c;
$220 = $219 >>> 8;
$221 = $220 & 255;
$222 = $0;
$223 = ((($222)) + 1024|0);
$224 = (($223) + ($221<<2)|0);
$225 = HEAP32[$224>>2]|0;
$226 = $218 ^ $225;
$227 = $c;
$228 = $227 >>> 16;
$229 = $228 & 255;
$230 = $0;
$231 = ((($230)) + 2048|0);
$232 = (($231) + ($229<<2)|0);
$233 = HEAP32[$232>>2]|0;
$234 = $226 ^ $233;
$235 = $c;
$236 = $235 >>> 24;
$237 = $0;
$238 = ((($237)) + 3072|0);
$239 = (($238) + ($236<<2)|0);
$240 = HEAP32[$239>>2]|0;
$241 = $234 ^ $240;
$x = $241;
$242 = $d;
$243 = $242 & 255;
$244 = $0;
$245 = ((($244)) + 1024|0);
$246 = (($245) + ($243<<2)|0);
$247 = HEAP32[$246>>2]|0;
$248 = $d;
$249 = $248 >>> 8;
$250 = $249 & 255;
$251 = $0;
$252 = ((($251)) + 2048|0);
$253 = (($252) + ($250<<2)|0);
$254 = HEAP32[$253>>2]|0;
$255 = $247 ^ $254;
$256 = $d;
$257 = $256 >>> 16;
$258 = $257 & 255;
$259 = $0;
$260 = ((($259)) + 3072|0);
$261 = (($260) + ($258<<2)|0);
$262 = HEAP32[$261>>2]|0;
$263 = $255 ^ $262;
$264 = $d;
$265 = $264 >>> 24;
$266 = $0;
$267 = (($266) + ($265<<2)|0);
$268 = HEAP32[$267>>2]|0;
$269 = $263 ^ $268;
$y = $269;
$270 = $y;
$271 = $x;
$272 = (($271) + ($270))|0;
$x = $272;
$273 = $x;
$274 = $y;
$275 = (($274) + ($273))|0;
$y = $275;
$276 = $y;
$277 = $0;
$278 = ((($277)) + 4128|0);
$279 = ((($278)) + 108|0);
$280 = HEAP32[$279>>2]|0;
$281 = (($276) + ($280))|0;
$282 = $b;
$283 = $282 ^ $281;
$b = $283;
$284 = $b;
$285 = $284 >>> 1;
$286 = $b;
$287 = $286 << 31;
$288 = (($285) + ($287))|0;
$b = $288;
$289 = $a;
$290 = $289 << 1;
$291 = $a;
$292 = $291 >>> 31;
$293 = (($290) + ($292))|0;
$a = $293;
$294 = $x;
$295 = $0;
$296 = ((($295)) + 4128|0);
$297 = ((($296)) + 104|0);
$298 = HEAP32[$297>>2]|0;
$299 = (($294) + ($298))|0;
$300 = $a;
$301 = $300 ^ $299;
$a = $301;
$302 = $a;
$303 = $302 & 255;
$304 = $0;
$305 = (($304) + ($303<<2)|0);
$306 = HEAP32[$305>>2]|0;
$307 = $a;
$308 = $307 >>> 8;
$309 = $308 & 255;
$310 = $0;
$311 = ((($310)) + 1024|0);
$312 = (($311) + ($309<<2)|0);
$313 = HEAP32[$312>>2]|0;
$314 = $306 ^ $313;
$315 = $a;
$316 = $315 >>> 16;
$317 = $316 & 255;
$318 = $0;
$319 = ((($318)) + 2048|0);
$320 = (($319) + ($317<<2)|0);
$321 = HEAP32[$320>>2]|0;
$322 = $314 ^ $321;
$323 = $a;
$324 = $323 >>> 24;
$325 = $0;
$326 = ((($325)) + 3072|0);
$327 = (($326) + ($324<<2)|0);
$328 = HEAP32[$327>>2]|0;
$329 = $322 ^ $328;
$x = $329;
$330 = $b;
$331 = $330 & 255;
$332 = $0;
$333 = ((($332)) + 1024|0);
$334 = (($333) + ($331<<2)|0);
$335 = HEAP32[$334>>2]|0;
$336 = $b;
$337 = $336 >>> 8;
$338 = $337 & 255;
$339 = $0;
$340 = ((($339)) + 2048|0);
$341 = (($340) + ($338<<2)|0);
$342 = HEAP32[$341>>2]|0;
$343 = $335 ^ $342;
$344 = $b;
$345 = $344 >>> 16;
$346 = $345 & 255;
$347 = $0;
$348 = ((($347)) + 3072|0);
$349 = (($348) + ($346<<2)|0);
$350 = HEAP32[$349>>2]|0;
$351 = $343 ^ $350;
$352 = $b;
$353 = $352 >>> 24;
$354 = $0;
$355 = (($354) + ($353<<2)|0);
$356 = HEAP32[$355>>2]|0;
$357 = $351 ^ $356;
$y = $357;
$358 = $y;
$359 = $x;
$360 = (($359) + ($358))|0;
$x = $360;
$361 = $x;
$362 = $y;
$363 = (($362) + ($361))|0;
$y = $363;
$364 = $y;
$365 = $0;
$366 = ((($365)) + 4128|0);
$367 = ((($366)) + 100|0);
$368 = HEAP32[$367>>2]|0;
$369 = (($364) + ($368))|0;
$370 = $d;
$371 = $370 ^ $369;
$d = $371;
$372 = $d;
$373 = $372 >>> 1;
$374 = $d;
$375 = $374 << 31;
$376 = (($373) + ($375))|0;
$d = $376;
$377 = $c;
$378 = $377 << 1;
$379 = $c;
$380 = $379 >>> 31;
$381 = (($378) + ($380))|0;
$c = $381;
$382 = $x;
$383 = $0;
$384 = ((($383)) + 4128|0);
$385 = ((($384)) + 96|0);
$386 = HEAP32[$385>>2]|0;
$387 = (($382) + ($386))|0;
$388 = $c;
$389 = $388 ^ $387;
$c = $389;
$390 = $c;
$391 = $390 & 255;
$392 = $0;
$393 = (($392) + ($391<<2)|0);
$394 = HEAP32[$393>>2]|0;
$395 = $c;
$396 = $395 >>> 8;
$397 = $396 & 255;
$398 = $0;
$399 = ((($398)) + 1024|0);
$400 = (($399) + ($397<<2)|0);
$401 = HEAP32[$400>>2]|0;
$402 = $394 ^ $401;
$403 = $c;
$404 = $403 >>> 16;
$405 = $404 & 255;
$406 = $0;
$407 = ((($406)) + 2048|0);
$408 = (($407) + ($405<<2)|0);
$409 = HEAP32[$408>>2]|0;
$410 = $402 ^ $409;
$411 = $c;
$412 = $411 >>> 24;
$413 = $0;
$414 = ((($413)) + 3072|0);
$415 = (($414) + ($412<<2)|0);
$416 = HEAP32[$415>>2]|0;
$417 = $410 ^ $416;
$x = $417;
$418 = $d;
$419 = $418 & 255;
$420 = $0;
$421 = ((($420)) + 1024|0);
$422 = (($421) + ($419<<2)|0);
$423 = HEAP32[$422>>2]|0;
$424 = $d;
$425 = $424 >>> 8;
$426 = $425 & 255;
$427 = $0;
$428 = ((($427)) + 2048|0);
$429 = (($428) + ($426<<2)|0);
$430 = HEAP32[$429>>2]|0;
$431 = $423 ^ $430;
$432 = $d;
$433 = $432 >>> 16;
$434 = $433 & 255;
$435 = $0;
$436 = ((($435)) + 3072|0);
$437 = (($436) + ($434<<2)|0);
$438 = HEAP32[$437>>2]|0;
$439 = $431 ^ $438;
$440 = $d;
$441 = $440 >>> 24;
$442 = $0;
$443 = (($442) + ($441<<2)|0);
$444 = HEAP32[$443>>2]|0;
$445 = $439 ^ $444;
$y = $445;
$446 = $y;
$447 = $x;
$448 = (($447) + ($446))|0;
$x = $448;
$449 = $x;
$450 = $y;
$451 = (($450) + ($449))|0;
$y = $451;
$452 = $y;
$453 = $0;
$454 = ((($453)) + 4128|0);
$455 = ((($454)) + 92|0);
$456 = HEAP32[$455>>2]|0;
$457 = (($452) + ($456))|0;
$458 = $b;
$459 = $458 ^ $457;
$b = $459;
$460 = $b;
$461 = $460 >>> 1;
$462 = $b;
$463 = $462 << 31;
$464 = (($461) + ($463))|0;
$b = $464;
$465 = $a;
$466 = $465 << 1;
$467 = $a;
$468 = $467 >>> 31;
$469 = (($466) + ($468))|0;
$a = $469;
$470 = $x;
$471 = $0;
$472 = ((($471)) + 4128|0);
$473 = ((($472)) + 88|0);
$474 = HEAP32[$473>>2]|0;
$475 = (($470) + ($474))|0;
$476 = $a;
$477 = $476 ^ $475;
$a = $477;
$478 = $a;
$479 = $478 & 255;
$480 = $0;
$481 = (($480) + ($479<<2)|0);
$482 = HEAP32[$481>>2]|0;
$483 = $a;
$484 = $483 >>> 8;
$485 = $484 & 255;
$486 = $0;
$487 = ((($486)) + 1024|0);
$488 = (($487) + ($485<<2)|0);
$489 = HEAP32[$488>>2]|0;
$490 = $482 ^ $489;
$491 = $a;
$492 = $491 >>> 16;
$493 = $492 & 255;
$494 = $0;
$495 = ((($494)) + 2048|0);
$496 = (($495) + ($493<<2)|0);
$497 = HEAP32[$496>>2]|0;
$498 = $490 ^ $497;
$499 = $a;
$500 = $499 >>> 24;
$501 = $0;
$502 = ((($501)) + 3072|0);
$503 = (($502) + ($500<<2)|0);
$504 = HEAP32[$503>>2]|0;
$505 = $498 ^ $504;
$x = $505;
$506 = $b;
$507 = $506 & 255;
$508 = $0;
$509 = ((($508)) + 1024|0);
$510 = (($509) + ($507<<2)|0);
$511 = HEAP32[$510>>2]|0;
$512 = $b;
$513 = $512 >>> 8;
$514 = $513 & 255;
$515 = $0;
$516 = ((($515)) + 2048|0);
$517 = (($516) + ($514<<2)|0);
$518 = HEAP32[$517>>2]|0;
$519 = $511 ^ $518;
$520 = $b;
$521 = $520 >>> 16;
$522 = $521 & 255;
$523 = $0;
$524 = ((($523)) + 3072|0);
$525 = (($524) + ($522<<2)|0);
$526 = HEAP32[$525>>2]|0;
$527 = $519 ^ $526;
$528 = $b;
$529 = $528 >>> 24;
$530 = $0;
$531 = (($530) + ($529<<2)|0);
$532 = HEAP32[$531>>2]|0;
$533 = $527 ^ $532;
$y = $533;
$534 = $y;
$535 = $x;
$536 = (($535) + ($534))|0;
$x = $536;
$537 = $x;
$538 = $y;
$539 = (($538) + ($537))|0;
$y = $539;
$540 = $y;
$541 = $0;
$542 = ((($541)) + 4128|0);
$543 = ((($542)) + 84|0);
$544 = HEAP32[$543>>2]|0;
$545 = (($540) + ($544))|0;
$546 = $d;
$547 = $546 ^ $545;
$d = $547;
$548 = $d;
$549 = $548 >>> 1;
$550 = $d;
$551 = $550 << 31;
$552 = (($549) + ($551))|0;
$d = $552;
$553 = $c;
$554 = $553 << 1;
$555 = $c;
$556 = $555 >>> 31;
$557 = (($554) + ($556))|0;
$c = $557;
$558 = $x;
$559 = $0;
$560 = ((($559)) + 4128|0);
$561 = ((($560)) + 80|0);
$562 = HEAP32[$561>>2]|0;
$563 = (($558) + ($562))|0;
$564 = $c;
$565 = $564 ^ $563;
$c = $565;
$566 = $c;
$567 = $566 & 255;
$568 = $0;
$569 = (($568) + ($567<<2)|0);
$570 = HEAP32[$569>>2]|0;
$571 = $c;
$572 = $571 >>> 8;
$573 = $572 & 255;
$574 = $0;
$575 = ((($574)) + 1024|0);
$576 = (($575) + ($573<<2)|0);
$577 = HEAP32[$576>>2]|0;
$578 = $570 ^ $577;
$579 = $c;
$580 = $579 >>> 16;
$581 = $580 & 255;
$582 = $0;
$583 = ((($582)) + 2048|0);
$584 = (($583) + ($581<<2)|0);
$585 = HEAP32[$584>>2]|0;
$586 = $578 ^ $585;
$587 = $c;
$588 = $587 >>> 24;
$589 = $0;
$590 = ((($589)) + 3072|0);
$591 = (($590) + ($588<<2)|0);
$592 = HEAP32[$591>>2]|0;
$593 = $586 ^ $592;
$x = $593;
$594 = $d;
$595 = $594 & 255;
$596 = $0;
$597 = ((($596)) + 1024|0);
$598 = (($597) + ($595<<2)|0);
$599 = HEAP32[$598>>2]|0;
$600 = $d;
$601 = $600 >>> 8;
$602 = $601 & 255;
$603 = $0;
$604 = ((($603)) + 2048|0);
$605 = (($604) + ($602<<2)|0);
$606 = HEAP32[$605>>2]|0;
$607 = $599 ^ $606;
$608 = $d;
$609 = $608 >>> 16;
$610 = $609 & 255;
$611 = $0;
$612 = ((($611)) + 3072|0);
$613 = (($612) + ($610<<2)|0);
$614 = HEAP32[$613>>2]|0;
$615 = $607 ^ $614;
$616 = $d;
$617 = $616 >>> 24;
$618 = $0;
$619 = (($618) + ($617<<2)|0);
$620 = HEAP32[$619>>2]|0;
$621 = $615 ^ $620;
$y = $621;
$622 = $y;
$623 = $x;
$624 = (($623) + ($622))|0;
$x = $624;
$625 = $x;
$626 = $y;
$627 = (($626) + ($625))|0;
$y = $627;
$628 = $y;
$629 = $0;
$630 = ((($629)) + 4128|0);
$631 = ((($630)) + 76|0);
$632 = HEAP32[$631>>2]|0;
$633 = (($628) + ($632))|0;
$634 = $b;
$635 = $634 ^ $633;
$b = $635;
$636 = $b;
$637 = $636 >>> 1;
$638 = $b;
$639 = $638 << 31;
$640 = (($637) + ($639))|0;
$b = $640;
$641 = $a;
$642 = $641 << 1;
$643 = $a;
$644 = $643 >>> 31;
$645 = (($642) + ($644))|0;
$a = $645;
$646 = $x;
$647 = $0;
$648 = ((($647)) + 4128|0);
$649 = ((($648)) + 72|0);
$650 = HEAP32[$649>>2]|0;
$651 = (($646) + ($650))|0;
$652 = $a;
$653 = $652 ^ $651;
$a = $653;
$654 = $a;
$655 = $654 & 255;
$656 = $0;
$657 = (($656) + ($655<<2)|0);
$658 = HEAP32[$657>>2]|0;
$659 = $a;
$660 = $659 >>> 8;
$661 = $660 & 255;
$662 = $0;
$663 = ((($662)) + 1024|0);
$664 = (($663) + ($661<<2)|0);
$665 = HEAP32[$664>>2]|0;
$666 = $658 ^ $665;
$667 = $a;
$668 = $667 >>> 16;
$669 = $668 & 255;
$670 = $0;
$671 = ((($670)) + 2048|0);
$672 = (($671) + ($669<<2)|0);
$673 = HEAP32[$672>>2]|0;
$674 = $666 ^ $673;
$675 = $a;
$676 = $675 >>> 24;
$677 = $0;
$678 = ((($677)) + 3072|0);
$679 = (($678) + ($676<<2)|0);
$680 = HEAP32[$679>>2]|0;
$681 = $674 ^ $680;
$x = $681;
$682 = $b;
$683 = $682 & 255;
$684 = $0;
$685 = ((($684)) + 1024|0);
$686 = (($685) + ($683<<2)|0);
$687 = HEAP32[$686>>2]|0;
$688 = $b;
$689 = $688 >>> 8;
$690 = $689 & 255;
$691 = $0;
$692 = ((($691)) + 2048|0);
$693 = (($692) + ($690<<2)|0);
$694 = HEAP32[$693>>2]|0;
$695 = $687 ^ $694;
$696 = $b;
$697 = $696 >>> 16;
$698 = $697 & 255;
$699 = $0;
$700 = ((($699)) + 3072|0);
$701 = (($700) + ($698<<2)|0);
$702 = HEAP32[$701>>2]|0;
$703 = $695 ^ $702;
$704 = $b;
$705 = $704 >>> 24;
$706 = $0;
$707 = (($706) + ($705<<2)|0);
$708 = HEAP32[$707>>2]|0;
$709 = $703 ^ $708;
$y = $709;
$710 = $y;
$711 = $x;
$712 = (($711) + ($710))|0;
$x = $712;
$713 = $x;
$714 = $y;
$715 = (($714) + ($713))|0;
$y = $715;
$716 = $y;
$717 = $0;
$718 = ((($717)) + 4128|0);
$719 = ((($718)) + 68|0);
$720 = HEAP32[$719>>2]|0;
$721 = (($716) + ($720))|0;
$722 = $d;
$723 = $722 ^ $721;
$d = $723;
$724 = $d;
$725 = $724 >>> 1;
$726 = $d;
$727 = $726 << 31;
$728 = (($725) + ($727))|0;
$d = $728;
$729 = $c;
$730 = $729 << 1;
$731 = $c;
$732 = $731 >>> 31;
$733 = (($730) + ($732))|0;
$c = $733;
$734 = $x;
$735 = $0;
$736 = ((($735)) + 4128|0);
$737 = ((($736)) + 64|0);
$738 = HEAP32[$737>>2]|0;
$739 = (($734) + ($738))|0;
$740 = $c;
$741 = $740 ^ $739;
$c = $741;
$742 = $c;
$743 = $742 & 255;
$744 = $0;
$745 = (($744) + ($743<<2)|0);
$746 = HEAP32[$745>>2]|0;
$747 = $c;
$748 = $747 >>> 8;
$749 = $748 & 255;
$750 = $0;
$751 = ((($750)) + 1024|0);
$752 = (($751) + ($749<<2)|0);
$753 = HEAP32[$752>>2]|0;
$754 = $746 ^ $753;
$755 = $c;
$756 = $755 >>> 16;
$757 = $756 & 255;
$758 = $0;
$759 = ((($758)) + 2048|0);
$760 = (($759) + ($757<<2)|0);
$761 = HEAP32[$760>>2]|0;
$762 = $754 ^ $761;
$763 = $c;
$764 = $763 >>> 24;
$765 = $0;
$766 = ((($765)) + 3072|0);
$767 = (($766) + ($764<<2)|0);
$768 = HEAP32[$767>>2]|0;
$769 = $762 ^ $768;
$x = $769;
$770 = $d;
$771 = $770 & 255;
$772 = $0;
$773 = ((($772)) + 1024|0);
$774 = (($773) + ($771<<2)|0);
$775 = HEAP32[$774>>2]|0;
$776 = $d;
$777 = $776 >>> 8;
$778 = $777 & 255;
$779 = $0;
$780 = ((($779)) + 2048|0);
$781 = (($780) + ($778<<2)|0);
$782 = HEAP32[$781>>2]|0;
$783 = $775 ^ $782;
$784 = $d;
$785 = $784 >>> 16;
$786 = $785 & 255;
$787 = $0;
$788 = ((($787)) + 3072|0);
$789 = (($788) + ($786<<2)|0);
$790 = HEAP32[$789>>2]|0;
$791 = $783 ^ $790;
$792 = $d;
$793 = $792 >>> 24;
$794 = $0;
$795 = (($794) + ($793<<2)|0);
$796 = HEAP32[$795>>2]|0;
$797 = $791 ^ $796;
$y = $797;
$798 = $y;
$799 = $x;
$800 = (($799) + ($798))|0;
$x = $800;
$801 = $x;
$802 = $y;
$803 = (($802) + ($801))|0;
$y = $803;
$804 = $y;
$805 = $0;
$806 = ((($805)) + 4128|0);
$807 = ((($806)) + 60|0);
$808 = HEAP32[$807>>2]|0;
$809 = (($804) + ($808))|0;
$810 = $b;
$811 = $810 ^ $809;
$b = $811;
$812 = $b;
$813 = $812 >>> 1;
$814 = $b;
$815 = $814 << 31;
$816 = (($813) + ($815))|0;
$b = $816;
$817 = $a;
$818 = $817 << 1;
$819 = $a;
$820 = $819 >>> 31;
$821 = (($818) + ($820))|0;
$a = $821;
$822 = $x;
$823 = $0;
$824 = ((($823)) + 4128|0);
$825 = ((($824)) + 56|0);
$826 = HEAP32[$825>>2]|0;
$827 = (($822) + ($826))|0;
$828 = $a;
$829 = $828 ^ $827;
$a = $829;
$830 = $a;
$831 = $830 & 255;
$832 = $0;
$833 = (($832) + ($831<<2)|0);
$834 = HEAP32[$833>>2]|0;
$835 = $a;
$836 = $835 >>> 8;
$837 = $836 & 255;
$838 = $0;
$839 = ((($838)) + 1024|0);
$840 = (($839) + ($837<<2)|0);
$841 = HEAP32[$840>>2]|0;
$842 = $834 ^ $841;
$843 = $a;
$844 = $843 >>> 16;
$845 = $844 & 255;
$846 = $0;
$847 = ((($846)) + 2048|0);
$848 = (($847) + ($845<<2)|0);
$849 = HEAP32[$848>>2]|0;
$850 = $842 ^ $849;
$851 = $a;
$852 = $851 >>> 24;
$853 = $0;
$854 = ((($853)) + 3072|0);
$855 = (($854) + ($852<<2)|0);
$856 = HEAP32[$855>>2]|0;
$857 = $850 ^ $856;
$x = $857;
$858 = $b;
$859 = $858 & 255;
$860 = $0;
$861 = ((($860)) + 1024|0);
$862 = (($861) + ($859<<2)|0);
$863 = HEAP32[$862>>2]|0;
$864 = $b;
$865 = $864 >>> 8;
$866 = $865 & 255;
$867 = $0;
$868 = ((($867)) + 2048|0);
$869 = (($868) + ($866<<2)|0);
$870 = HEAP32[$869>>2]|0;
$871 = $863 ^ $870;
$872 = $b;
$873 = $872 >>> 16;
$874 = $873 & 255;
$875 = $0;
$876 = ((($875)) + 3072|0);
$877 = (($876) + ($874<<2)|0);
$878 = HEAP32[$877>>2]|0;
$879 = $871 ^ $878;
$880 = $b;
$881 = $880 >>> 24;
$882 = $0;
$883 = (($882) + ($881<<2)|0);
$884 = HEAP32[$883>>2]|0;
$885 = $879 ^ $884;
$y = $885;
$886 = $y;
$887 = $x;
$888 = (($887) + ($886))|0;
$x = $888;
$889 = $x;
$890 = $y;
$891 = (($890) + ($889))|0;
$y = $891;
$892 = $y;
$893 = $0;
$894 = ((($893)) + 4128|0);
$895 = ((($894)) + 52|0);
$896 = HEAP32[$895>>2]|0;
$897 = (($892) + ($896))|0;
$898 = $d;
$899 = $898 ^ $897;
$d = $899;
$900 = $d;
$901 = $900 >>> 1;
$902 = $d;
$903 = $902 << 31;
$904 = (($901) + ($903))|0;
$d = $904;
$905 = $c;
$906 = $905 << 1;
$907 = $c;
$908 = $907 >>> 31;
$909 = (($906) + ($908))|0;
$c = $909;
$910 = $x;
$911 = $0;
$912 = ((($911)) + 4128|0);
$913 = ((($912)) + 48|0);
$914 = HEAP32[$913>>2]|0;
$915 = (($910) + ($914))|0;
$916 = $c;
$917 = $916 ^ $915;
$c = $917;
$918 = $c;
$919 = $918 & 255;
$920 = $0;
$921 = (($920) + ($919<<2)|0);
$922 = HEAP32[$921>>2]|0;
$923 = $c;
$924 = $923 >>> 8;
$925 = $924 & 255;
$926 = $0;
$927 = ((($926)) + 1024|0);
$928 = (($927) + ($925<<2)|0);
$929 = HEAP32[$928>>2]|0;
$930 = $922 ^ $929;
$931 = $c;
$932 = $931 >>> 16;
$933 = $932 & 255;
$934 = $0;
$935 = ((($934)) + 2048|0);
$936 = (($935) + ($933<<2)|0);
$937 = HEAP32[$936>>2]|0;
$938 = $930 ^ $937;
$939 = $c;
$940 = $939 >>> 24;
$941 = $0;
$942 = ((($941)) + 3072|0);
$943 = (($942) + ($940<<2)|0);
$944 = HEAP32[$943>>2]|0;
$945 = $938 ^ $944;
$x = $945;
$946 = $d;
$947 = $946 & 255;
$948 = $0;
$949 = ((($948)) + 1024|0);
$950 = (($949) + ($947<<2)|0);
$951 = HEAP32[$950>>2]|0;
$952 = $d;
$953 = $952 >>> 8;
$954 = $953 & 255;
$955 = $0;
$956 = ((($955)) + 2048|0);
$957 = (($956) + ($954<<2)|0);
$958 = HEAP32[$957>>2]|0;
$959 = $951 ^ $958;
$960 = $d;
$961 = $960 >>> 16;
$962 = $961 & 255;
$963 = $0;
$964 = ((($963)) + 3072|0);
$965 = (($964) + ($962<<2)|0);
$966 = HEAP32[$965>>2]|0;
$967 = $959 ^ $966;
$968 = $d;
$969 = $968 >>> 24;
$970 = $0;
$971 = (($970) + ($969<<2)|0);
$972 = HEAP32[$971>>2]|0;
$973 = $967 ^ $972;
$y = $973;
$974 = $y;
$975 = $x;
$976 = (($975) + ($974))|0;
$x = $976;
$977 = $x;
$978 = $y;
$979 = (($978) + ($977))|0;
$y = $979;
$980 = $y;
$981 = $0;
$982 = ((($981)) + 4128|0);
$983 = ((($982)) + 44|0);
$984 = HEAP32[$983>>2]|0;
$985 = (($980) + ($984))|0;
$986 = $b;
$987 = $986 ^ $985;
$b = $987;
$988 = $b;
$989 = $988 >>> 1;
$990 = $b;
$991 = $990 << 31;
$992 = (($989) + ($991))|0;
$b = $992;
$993 = $a;
$994 = $993 << 1;
$995 = $a;
$996 = $995 >>> 31;
$997 = (($994) + ($996))|0;
$a = $997;
$998 = $x;
$999 = $0;
$1000 = ((($999)) + 4128|0);
$1001 = ((($1000)) + 40|0);
$1002 = HEAP32[$1001>>2]|0;
$1003 = (($998) + ($1002))|0;
$1004 = $a;
$1005 = $1004 ^ $1003;
$a = $1005;
$1006 = $a;
$1007 = $1006 & 255;
$1008 = $0;
$1009 = (($1008) + ($1007<<2)|0);
$1010 = HEAP32[$1009>>2]|0;
$1011 = $a;
$1012 = $1011 >>> 8;
$1013 = $1012 & 255;
$1014 = $0;
$1015 = ((($1014)) + 1024|0);
$1016 = (($1015) + ($1013<<2)|0);
$1017 = HEAP32[$1016>>2]|0;
$1018 = $1010 ^ $1017;
$1019 = $a;
$1020 = $1019 >>> 16;
$1021 = $1020 & 255;
$1022 = $0;
$1023 = ((($1022)) + 2048|0);
$1024 = (($1023) + ($1021<<2)|0);
$1025 = HEAP32[$1024>>2]|0;
$1026 = $1018 ^ $1025;
$1027 = $a;
$1028 = $1027 >>> 24;
$1029 = $0;
$1030 = ((($1029)) + 3072|0);
$1031 = (($1030) + ($1028<<2)|0);
$1032 = HEAP32[$1031>>2]|0;
$1033 = $1026 ^ $1032;
$x = $1033;
$1034 = $b;
$1035 = $1034 & 255;
$1036 = $0;
$1037 = ((($1036)) + 1024|0);
$1038 = (($1037) + ($1035<<2)|0);
$1039 = HEAP32[$1038>>2]|0;
$1040 = $b;
$1041 = $1040 >>> 8;
$1042 = $1041 & 255;
$1043 = $0;
$1044 = ((($1043)) + 2048|0);
$1045 = (($1044) + ($1042<<2)|0);
$1046 = HEAP32[$1045>>2]|0;
$1047 = $1039 ^ $1046;
$1048 = $b;
$1049 = $1048 >>> 16;
$1050 = $1049 & 255;
$1051 = $0;
$1052 = ((($1051)) + 3072|0);
$1053 = (($1052) + ($1050<<2)|0);
$1054 = HEAP32[$1053>>2]|0;
$1055 = $1047 ^ $1054;
$1056 = $b;
$1057 = $1056 >>> 24;
$1058 = $0;
$1059 = (($1058) + ($1057<<2)|0);
$1060 = HEAP32[$1059>>2]|0;
$1061 = $1055 ^ $1060;
$y = $1061;
$1062 = $y;
$1063 = $x;
$1064 = (($1063) + ($1062))|0;
$x = $1064;
$1065 = $x;
$1066 = $y;
$1067 = (($1066) + ($1065))|0;
$y = $1067;
$1068 = $y;
$1069 = $0;
$1070 = ((($1069)) + 4128|0);
$1071 = ((($1070)) + 36|0);
$1072 = HEAP32[$1071>>2]|0;
$1073 = (($1068) + ($1072))|0;
$1074 = $d;
$1075 = $1074 ^ $1073;
$d = $1075;
$1076 = $d;
$1077 = $1076 >>> 1;
$1078 = $d;
$1079 = $1078 << 31;
$1080 = (($1077) + ($1079))|0;
$d = $1080;
$1081 = $c;
$1082 = $1081 << 1;
$1083 = $c;
$1084 = $1083 >>> 31;
$1085 = (($1082) + ($1084))|0;
$c = $1085;
$1086 = $x;
$1087 = $0;
$1088 = ((($1087)) + 4128|0);
$1089 = ((($1088)) + 32|0);
$1090 = HEAP32[$1089>>2]|0;
$1091 = (($1086) + ($1090))|0;
$1092 = $c;
$1093 = $1092 ^ $1091;
$c = $1093;
$1094 = $c;
$1095 = $1094 & 255;
$1096 = $0;
$1097 = (($1096) + ($1095<<2)|0);
$1098 = HEAP32[$1097>>2]|0;
$1099 = $c;
$1100 = $1099 >>> 8;
$1101 = $1100 & 255;
$1102 = $0;
$1103 = ((($1102)) + 1024|0);
$1104 = (($1103) + ($1101<<2)|0);
$1105 = HEAP32[$1104>>2]|0;
$1106 = $1098 ^ $1105;
$1107 = $c;
$1108 = $1107 >>> 16;
$1109 = $1108 & 255;
$1110 = $0;
$1111 = ((($1110)) + 2048|0);
$1112 = (($1111) + ($1109<<2)|0);
$1113 = HEAP32[$1112>>2]|0;
$1114 = $1106 ^ $1113;
$1115 = $c;
$1116 = $1115 >>> 24;
$1117 = $0;
$1118 = ((($1117)) + 3072|0);
$1119 = (($1118) + ($1116<<2)|0);
$1120 = HEAP32[$1119>>2]|0;
$1121 = $1114 ^ $1120;
$x = $1121;
$1122 = $d;
$1123 = $1122 & 255;
$1124 = $0;
$1125 = ((($1124)) + 1024|0);
$1126 = (($1125) + ($1123<<2)|0);
$1127 = HEAP32[$1126>>2]|0;
$1128 = $d;
$1129 = $1128 >>> 8;
$1130 = $1129 & 255;
$1131 = $0;
$1132 = ((($1131)) + 2048|0);
$1133 = (($1132) + ($1130<<2)|0);
$1134 = HEAP32[$1133>>2]|0;
$1135 = $1127 ^ $1134;
$1136 = $d;
$1137 = $1136 >>> 16;
$1138 = $1137 & 255;
$1139 = $0;
$1140 = ((($1139)) + 3072|0);
$1141 = (($1140) + ($1138<<2)|0);
$1142 = HEAP32[$1141>>2]|0;
$1143 = $1135 ^ $1142;
$1144 = $d;
$1145 = $1144 >>> 24;
$1146 = $0;
$1147 = (($1146) + ($1145<<2)|0);
$1148 = HEAP32[$1147>>2]|0;
$1149 = $1143 ^ $1148;
$y = $1149;
$1150 = $y;
$1151 = $x;
$1152 = (($1151) + ($1150))|0;
$x = $1152;
$1153 = $x;
$1154 = $y;
$1155 = (($1154) + ($1153))|0;
$y = $1155;
$1156 = $y;
$1157 = $0;
$1158 = ((($1157)) + 4128|0);
$1159 = ((($1158)) + 28|0);
$1160 = HEAP32[$1159>>2]|0;
$1161 = (($1156) + ($1160))|0;
$1162 = $b;
$1163 = $1162 ^ $1161;
$b = $1163;
$1164 = $b;
$1165 = $1164 >>> 1;
$1166 = $b;
$1167 = $1166 << 31;
$1168 = (($1165) + ($1167))|0;
$b = $1168;
$1169 = $a;
$1170 = $1169 << 1;
$1171 = $a;
$1172 = $1171 >>> 31;
$1173 = (($1170) + ($1172))|0;
$a = $1173;
$1174 = $x;
$1175 = $0;
$1176 = ((($1175)) + 4128|0);
$1177 = ((($1176)) + 24|0);
$1178 = HEAP32[$1177>>2]|0;
$1179 = (($1174) + ($1178))|0;
$1180 = $a;
$1181 = $1180 ^ $1179;
$a = $1181;
$1182 = $a;
$1183 = $1182 & 255;
$1184 = $0;
$1185 = (($1184) + ($1183<<2)|0);
$1186 = HEAP32[$1185>>2]|0;
$1187 = $a;
$1188 = $1187 >>> 8;
$1189 = $1188 & 255;
$1190 = $0;
$1191 = ((($1190)) + 1024|0);
$1192 = (($1191) + ($1189<<2)|0);
$1193 = HEAP32[$1192>>2]|0;
$1194 = $1186 ^ $1193;
$1195 = $a;
$1196 = $1195 >>> 16;
$1197 = $1196 & 255;
$1198 = $0;
$1199 = ((($1198)) + 2048|0);
$1200 = (($1199) + ($1197<<2)|0);
$1201 = HEAP32[$1200>>2]|0;
$1202 = $1194 ^ $1201;
$1203 = $a;
$1204 = $1203 >>> 24;
$1205 = $0;
$1206 = ((($1205)) + 3072|0);
$1207 = (($1206) + ($1204<<2)|0);
$1208 = HEAP32[$1207>>2]|0;
$1209 = $1202 ^ $1208;
$x = $1209;
$1210 = $b;
$1211 = $1210 & 255;
$1212 = $0;
$1213 = ((($1212)) + 1024|0);
$1214 = (($1213) + ($1211<<2)|0);
$1215 = HEAP32[$1214>>2]|0;
$1216 = $b;
$1217 = $1216 >>> 8;
$1218 = $1217 & 255;
$1219 = $0;
$1220 = ((($1219)) + 2048|0);
$1221 = (($1220) + ($1218<<2)|0);
$1222 = HEAP32[$1221>>2]|0;
$1223 = $1215 ^ $1222;
$1224 = $b;
$1225 = $1224 >>> 16;
$1226 = $1225 & 255;
$1227 = $0;
$1228 = ((($1227)) + 3072|0);
$1229 = (($1228) + ($1226<<2)|0);
$1230 = HEAP32[$1229>>2]|0;
$1231 = $1223 ^ $1230;
$1232 = $b;
$1233 = $1232 >>> 24;
$1234 = $0;
$1235 = (($1234) + ($1233<<2)|0);
$1236 = HEAP32[$1235>>2]|0;
$1237 = $1231 ^ $1236;
$y = $1237;
$1238 = $y;
$1239 = $x;
$1240 = (($1239) + ($1238))|0;
$x = $1240;
$1241 = $x;
$1242 = $y;
$1243 = (($1242) + ($1241))|0;
$y = $1243;
$1244 = $y;
$1245 = $0;
$1246 = ((($1245)) + 4128|0);
$1247 = ((($1246)) + 20|0);
$1248 = HEAP32[$1247>>2]|0;
$1249 = (($1244) + ($1248))|0;
$1250 = $d;
$1251 = $1250 ^ $1249;
$d = $1251;
$1252 = $d;
$1253 = $1252 >>> 1;
$1254 = $d;
$1255 = $1254 << 31;
$1256 = (($1253) + ($1255))|0;
$d = $1256;
$1257 = $c;
$1258 = $1257 << 1;
$1259 = $c;
$1260 = $1259 >>> 31;
$1261 = (($1258) + ($1260))|0;
$c = $1261;
$1262 = $x;
$1263 = $0;
$1264 = ((($1263)) + 4128|0);
$1265 = ((($1264)) + 16|0);
$1266 = HEAP32[$1265>>2]|0;
$1267 = (($1262) + ($1266))|0;
$1268 = $c;
$1269 = $1268 ^ $1267;
$c = $1269;
$1270 = $c;
$1271 = $1270 & 255;
$1272 = $0;
$1273 = (($1272) + ($1271<<2)|0);
$1274 = HEAP32[$1273>>2]|0;
$1275 = $c;
$1276 = $1275 >>> 8;
$1277 = $1276 & 255;
$1278 = $0;
$1279 = ((($1278)) + 1024|0);
$1280 = (($1279) + ($1277<<2)|0);
$1281 = HEAP32[$1280>>2]|0;
$1282 = $1274 ^ $1281;
$1283 = $c;
$1284 = $1283 >>> 16;
$1285 = $1284 & 255;
$1286 = $0;
$1287 = ((($1286)) + 2048|0);
$1288 = (($1287) + ($1285<<2)|0);
$1289 = HEAP32[$1288>>2]|0;
$1290 = $1282 ^ $1289;
$1291 = $c;
$1292 = $1291 >>> 24;
$1293 = $0;
$1294 = ((($1293)) + 3072|0);
$1295 = (($1294) + ($1292<<2)|0);
$1296 = HEAP32[$1295>>2]|0;
$1297 = $1290 ^ $1296;
$x = $1297;
$1298 = $d;
$1299 = $1298 & 255;
$1300 = $0;
$1301 = ((($1300)) + 1024|0);
$1302 = (($1301) + ($1299<<2)|0);
$1303 = HEAP32[$1302>>2]|0;
$1304 = $d;
$1305 = $1304 >>> 8;
$1306 = $1305 & 255;
$1307 = $0;
$1308 = ((($1307)) + 2048|0);
$1309 = (($1308) + ($1306<<2)|0);
$1310 = HEAP32[$1309>>2]|0;
$1311 = $1303 ^ $1310;
$1312 = $d;
$1313 = $1312 >>> 16;
$1314 = $1313 & 255;
$1315 = $0;
$1316 = ((($1315)) + 3072|0);
$1317 = (($1316) + ($1314<<2)|0);
$1318 = HEAP32[$1317>>2]|0;
$1319 = $1311 ^ $1318;
$1320 = $d;
$1321 = $1320 >>> 24;
$1322 = $0;
$1323 = (($1322) + ($1321<<2)|0);
$1324 = HEAP32[$1323>>2]|0;
$1325 = $1319 ^ $1324;
$y = $1325;
$1326 = $y;
$1327 = $x;
$1328 = (($1327) + ($1326))|0;
$x = $1328;
$1329 = $x;
$1330 = $y;
$1331 = (($1330) + ($1329))|0;
$y = $1331;
$1332 = $y;
$1333 = $0;
$1334 = ((($1333)) + 4128|0);
$1335 = ((($1334)) + 12|0);
$1336 = HEAP32[$1335>>2]|0;
$1337 = (($1332) + ($1336))|0;
$1338 = $b;
$1339 = $1338 ^ $1337;
$b = $1339;
$1340 = $b;
$1341 = $1340 >>> 1;
$1342 = $b;
$1343 = $1342 << 31;
$1344 = (($1341) + ($1343))|0;
$b = $1344;
$1345 = $a;
$1346 = $1345 << 1;
$1347 = $a;
$1348 = $1347 >>> 31;
$1349 = (($1346) + ($1348))|0;
$a = $1349;
$1350 = $x;
$1351 = $0;
$1352 = ((($1351)) + 4128|0);
$1353 = ((($1352)) + 8|0);
$1354 = HEAP32[$1353>>2]|0;
$1355 = (($1350) + ($1354))|0;
$1356 = $a;
$1357 = $1356 ^ $1355;
$a = $1357;
$1358 = $a;
$1359 = $1358 & 255;
$1360 = $0;
$1361 = (($1360) + ($1359<<2)|0);
$1362 = HEAP32[$1361>>2]|0;
$1363 = $a;
$1364 = $1363 >>> 8;
$1365 = $1364 & 255;
$1366 = $0;
$1367 = ((($1366)) + 1024|0);
$1368 = (($1367) + ($1365<<2)|0);
$1369 = HEAP32[$1368>>2]|0;
$1370 = $1362 ^ $1369;
$1371 = $a;
$1372 = $1371 >>> 16;
$1373 = $1372 & 255;
$1374 = $0;
$1375 = ((($1374)) + 2048|0);
$1376 = (($1375) + ($1373<<2)|0);
$1377 = HEAP32[$1376>>2]|0;
$1378 = $1370 ^ $1377;
$1379 = $a;
$1380 = $1379 >>> 24;
$1381 = $0;
$1382 = ((($1381)) + 3072|0);
$1383 = (($1382) + ($1380<<2)|0);
$1384 = HEAP32[$1383>>2]|0;
$1385 = $1378 ^ $1384;
$x = $1385;
$1386 = $b;
$1387 = $1386 & 255;
$1388 = $0;
$1389 = ((($1388)) + 1024|0);
$1390 = (($1389) + ($1387<<2)|0);
$1391 = HEAP32[$1390>>2]|0;
$1392 = $b;
$1393 = $1392 >>> 8;
$1394 = $1393 & 255;
$1395 = $0;
$1396 = ((($1395)) + 2048|0);
$1397 = (($1396) + ($1394<<2)|0);
$1398 = HEAP32[$1397>>2]|0;
$1399 = $1391 ^ $1398;
$1400 = $b;
$1401 = $1400 >>> 16;
$1402 = $1401 & 255;
$1403 = $0;
$1404 = ((($1403)) + 3072|0);
$1405 = (($1404) + ($1402<<2)|0);
$1406 = HEAP32[$1405>>2]|0;
$1407 = $1399 ^ $1406;
$1408 = $b;
$1409 = $1408 >>> 24;
$1410 = $0;
$1411 = (($1410) + ($1409<<2)|0);
$1412 = HEAP32[$1411>>2]|0;
$1413 = $1407 ^ $1412;
$y = $1413;
$1414 = $y;
$1415 = $x;
$1416 = (($1415) + ($1414))|0;
$x = $1416;
$1417 = $x;
$1418 = $y;
$1419 = (($1418) + ($1417))|0;
$y = $1419;
$1420 = $y;
$1421 = $0;
$1422 = ((($1421)) + 4128|0);
$1423 = ((($1422)) + 4|0);
$1424 = HEAP32[$1423>>2]|0;
$1425 = (($1420) + ($1424))|0;
$1426 = $d;
$1427 = $1426 ^ $1425;
$d = $1427;
$1428 = $d;
$1429 = $1428 >>> 1;
$1430 = $d;
$1431 = $1430 << 31;
$1432 = (($1429) + ($1431))|0;
$d = $1432;
$1433 = $c;
$1434 = $1433 << 1;
$1435 = $c;
$1436 = $1435 >>> 31;
$1437 = (($1434) + ($1436))|0;
$c = $1437;
$1438 = $x;
$1439 = $0;
$1440 = ((($1439)) + 4128|0);
$1441 = HEAP32[$1440>>2]|0;
$1442 = (($1438) + ($1441))|0;
$1443 = $c;
$1444 = $1443 ^ $1442;
$c = $1444;
$1445 = $0;
$1446 = ((($1445)) + 4096|0);
$1447 = HEAP32[$1446>>2]|0;
$1448 = $a;
$1449 = $1448 ^ $1447;
$a = $1449;
$1450 = $1;
$1451 = $a;
_buf_put_le32_1450($1450,$1451);
$1452 = $0;
$1453 = ((($1452)) + 4096|0);
$1454 = ((($1453)) + 4|0);
$1455 = HEAP32[$1454>>2]|0;
$1456 = $b;
$1457 = $1456 ^ $1455;
$b = $1457;
$1458 = $1;
$1459 = ((($1458)) + 4|0);
$1460 = $b;
_buf_put_le32_1450($1459,$1460);
$1461 = $0;
$1462 = ((($1461)) + 4096|0);
$1463 = ((($1462)) + 8|0);
$1464 = HEAP32[$1463>>2]|0;
$1465 = $c;
$1466 = $1465 ^ $1464;
$c = $1466;
$1467 = $1;
$1468 = ((($1467)) + 8|0);
$1469 = $c;
_buf_put_le32_1450($1468,$1469);
$1470 = $0;
$1471 = ((($1470)) + 4096|0);
$1472 = ((($1471)) + 12|0);
$1473 = HEAP32[$1472>>2]|0;
$1474 = $d;
$1475 = $1474 ^ $1473;
$d = $1475;
$1476 = $1;
$1477 = ((($1476)) + 12|0);
$1478 = $d;
_buf_put_le32_1450($1477,$1478);
STACKTOP = sp;return;
}
function _selftest_ctr() {
var $0 = 0, $blocksize = 0, $context_size = 0, $nblocks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nblocks = 4;
$blocksize = 16;
$context_size = 4256;
$0 = (__gcry_selftest_helper_ctr(43465,32,33,66,4,16,4256)|0);
STACKTOP = sp;return ($0|0);
}
function __gcry_twofish_ctr_enc($context,$ctr,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$ctr = $ctr|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $burn = 0, $burn_stack_depth = 0, $ctx = 0, $i = 0, $inbuf = 0, $outbuf = 0, $tmpbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmpbuf = sp + 72|0;
$_vset_long = sp;
$0 = $context;
$1 = $ctr;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_stack_depth = 0;
while(1) {
$8 = $4;
$9 = ($8|0)!=(0);
if (!($9)) {
break;
}
$10 = $ctx;
$11 = $1;
$12 = (_twofish_encrypt($10,$tmpbuf,$11)|0);
$burn = $12;
$13 = $burn;
$14 = $burn_stack_depth;
$15 = ($13>>>0)>($14>>>0);
if ($15) {
$16 = $burn;
$burn_stack_depth = $16;
}
$17 = $outbuf;
$18 = $inbuf;
_buf_xor_1457($17,$tmpbuf,$18,16);
$19 = $outbuf;
$20 = ((($19)) + 16|0);
$outbuf = $20;
$21 = $inbuf;
$22 = ((($21)) + 16|0);
$inbuf = $22;
$i = 16;
while(1) {
$23 = $i;
$24 = ($23|0)>(0);
if (!($24)) {
break;
}
$25 = $i;
$26 = (($25) - 1)|0;
$27 = $1;
$28 = (($27) + ($26)|0);
$29 = HEAP8[$28>>0]|0;
$30 = (($29) + 1)<<24>>24;
HEAP8[$28>>0] = $30;
$31 = $i;
$32 = (($31) - 1)|0;
$33 = $1;
$34 = (($33) + ($32)|0);
$35 = HEAP8[$34>>0]|0;
$36 = ($35<<24>>24)!=(0);
if ($36) {
break;
}
$37 = $i;
$38 = (($37) + -1)|0;
$i = $38;
}
$39 = $4;
$40 = (($39) + -1)|0;
$4 = $40;
}
$_vptr = $tmpbuf;
$_vlen = 16;
$_vset = 0;
$41 = $_vset;
$42 = $41&255;
$43 = $_vset_long;
$44 = $43;
HEAP32[$44>>2] = $42;
$45 = (($43) + 4)|0;
$46 = $45;
HEAP32[$46>>2] = 0;
while(1) {
$47 = $_vptr;
$48 = $47;
$49 = $48 & 7;
$50 = ($49|0)!=(0);
$51 = $_vlen;
$52 = ($51|0)!=(0);
$53 = $50 ? $52 : 0;
if (!($53)) {
break;
}
$54 = $_vset;
$55 = $_vptr;
HEAP8[$55>>0] = $54;
$56 = $_vptr;
$57 = ((($56)) + 1|0);
$_vptr = $57;
$58 = $_vlen;
$59 = (($58) + -1)|0;
$_vlen = $59;
}
$60 = $_vlen;
$61 = ($60>>>0)<(8);
if (!($61)) {
$62 = $_vset_long;
$63 = $62;
$64 = HEAP32[$63>>2]|0;
$65 = (($62) + 4)|0;
$66 = $65;
$67 = HEAP32[$66>>2]|0;
$68 = (___muldi3(($64|0),($67|0),16843009,16843009)|0);
$69 = tempRet0;
$70 = $_vset_long;
$71 = $70;
HEAP32[$71>>2] = $68;
$72 = (($70) + 4)|0;
$73 = $72;
HEAP32[$73>>2] = $69;
while(1) {
$74 = $_vptr;
$_vptr_long = $74;
$75 = $_vset_long;
$76 = $75;
$77 = HEAP32[$76>>2]|0;
$78 = (($75) + 4)|0;
$79 = $78;
$80 = HEAP32[$79>>2]|0;
$81 = $_vptr_long;
$82 = $81;
$83 = $82;
HEAP32[$83>>2] = $77;
$84 = (($82) + 4)|0;
$85 = $84;
HEAP32[$85>>2] = $80;
$86 = $_vlen;
$87 = (($86) - 8)|0;
$_vlen = $87;
$88 = $_vptr;
$89 = ((($88)) + 8|0);
$_vptr = $89;
$90 = $_vlen;
$91 = ($90>>>0)>=(8);
if (!($91)) {
break;
}
}
}
while(1) {
$92 = $_vlen;
$93 = ($92|0)!=(0);
if (!($93)) {
break;
}
$94 = $_vset;
$95 = $_vptr;
HEAP8[$95>>0] = $94;
$96 = $_vptr;
$97 = ((($96)) + 1|0);
$_vptr = $97;
$98 = $_vlen;
$99 = (($98) + -1)|0;
$_vlen = $99;
}
$100 = $burn_stack_depth;
___gcry_burn_stack($100);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor_1457($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _selftest_cbc() {
var $0 = 0, $blocksize = 0, $context_size = 0, $nblocks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nblocks = 5;
$blocksize = 16;
$context_size = 4256;
$0 = (__gcry_selftest_helper_cbc(43465,32,33,64,5,16,4256)|0);
STACKTOP = sp;return ($0|0);
}
function __gcry_twofish_cbc_dec($context,$iv,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$iv = $iv|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $burn = 0, $burn_stack_depth = 0, $ctx = 0, $inbuf = 0, $outbuf = 0, $savebuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$savebuf = sp + 64|0;
$_vset_long = sp;
$0 = $context;
$1 = $iv;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_stack_depth = 0;
while(1) {
$8 = $4;
$9 = ($8|0)!=(0);
if (!($9)) {
break;
}
$10 = $ctx;
$11 = $inbuf;
$12 = (_twofish_decrypt($10,$savebuf,$11)|0);
$burn = $12;
$13 = $burn;
$14 = $burn_stack_depth;
$15 = ($13>>>0)>($14>>>0);
if ($15) {
$16 = $burn;
$burn_stack_depth = $16;
}
$17 = $outbuf;
$18 = $1;
$19 = $inbuf;
_buf_xor_n_copy_2_1460($17,$savebuf,$18,$19,16);
$20 = $inbuf;
$21 = ((($20)) + 16|0);
$inbuf = $21;
$22 = $outbuf;
$23 = ((($22)) + 16|0);
$outbuf = $23;
$24 = $4;
$25 = (($24) + -1)|0;
$4 = $25;
}
$_vptr = $savebuf;
$_vlen = 16;
$_vset = 0;
$26 = $_vset;
$27 = $26&255;
$28 = $_vset_long;
$29 = $28;
HEAP32[$29>>2] = $27;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = 0;
while(1) {
$32 = $_vptr;
$33 = $32;
$34 = $33 & 7;
$35 = ($34|0)!=(0);
$36 = $_vlen;
$37 = ($36|0)!=(0);
$38 = $35 ? $37 : 0;
if (!($38)) {
break;
}
$39 = $_vset;
$40 = $_vptr;
HEAP8[$40>>0] = $39;
$41 = $_vptr;
$42 = ((($41)) + 1|0);
$_vptr = $42;
$43 = $_vlen;
$44 = (($43) + -1)|0;
$_vlen = $44;
}
$45 = $_vlen;
$46 = ($45>>>0)<(8);
if (!($46)) {
$47 = $_vset_long;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = (($47) + 4)|0;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = (___muldi3(($49|0),($52|0),16843009,16843009)|0);
$54 = tempRet0;
$55 = $_vset_long;
$56 = $55;
HEAP32[$56>>2] = $53;
$57 = (($55) + 4)|0;
$58 = $57;
HEAP32[$58>>2] = $54;
while(1) {
$59 = $_vptr;
$_vptr_long = $59;
$60 = $_vset_long;
$61 = $60;
$62 = HEAP32[$61>>2]|0;
$63 = (($60) + 4)|0;
$64 = $63;
$65 = HEAP32[$64>>2]|0;
$66 = $_vptr_long;
$67 = $66;
$68 = $67;
HEAP32[$68>>2] = $62;
$69 = (($67) + 4)|0;
$70 = $69;
HEAP32[$70>>2] = $65;
$71 = $_vlen;
$72 = (($71) - 8)|0;
$_vlen = $72;
$73 = $_vptr;
$74 = ((($73)) + 8|0);
$_vptr = $74;
$75 = $_vlen;
$76 = ($75>>>0)>=(8);
if (!($76)) {
break;
}
}
}
while(1) {
$77 = $_vlen;
$78 = ($77|0)!=(0);
if (!($78)) {
break;
}
$79 = $_vset;
$80 = $_vptr;
HEAP8[$80>>0] = $79;
$81 = $_vptr;
$82 = ((($81)) + 1|0);
$_vptr = $82;
$83 = $_vlen;
$84 = (($83) + -1)|0;
$_vlen = $84;
}
$85 = $burn_stack_depth;
___gcry_burn_stack($85);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor_n_copy_2_1460($_dst_xor,$_src_xor,$_srcdst_cpy,$_src_cpy,$len) {
$_dst_xor = $_dst_xor|0;
$_src_xor = $_src_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src_cpy = $_src_cpy|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $dst_xor = 0, $ldst_xor = 0, $longmask = 0, $lsrc_cpy = 0, $lsrc_xor = 0, $lsrcdst_cpy = 0, $ltemp = 0, $src_cpy = 0, $src_xor = 0, $srcdst_cpy = 0, $temp = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_src_xor;
$2 = $_srcdst_cpy;
$3 = $_src_cpy;
$4 = $len;
$5 = $0;
$dst_xor = $5;
$6 = $2;
$srcdst_cpy = $6;
$7 = $1;
$src_xor = $7;
$8 = $3;
$src_cpy = $8;
$longmask = 3;
$9 = $src_cpy;
$10 = $9;
$11 = $src_xor;
$12 = $11;
$13 = $10 | $12;
$14 = $dst_xor;
$15 = $14;
$16 = $13 | $15;
$17 = $srcdst_cpy;
$18 = $17;
$19 = $16 | $18;
$20 = $19 & 3;
$21 = ($20|0)!=(0);
if (!($21)) {
$22 = $dst_xor;
$ldst_xor = $22;
$23 = $src_xor;
$lsrc_xor = $23;
$24 = $srcdst_cpy;
$lsrcdst_cpy = $24;
$25 = $src_cpy;
$lsrc_cpy = $25;
while(1) {
$26 = $4;
$27 = ($26>>>0)>=(4);
if (!($27)) {
break;
}
$28 = $lsrc_cpy;
$29 = ((($28)) + 4|0);
$lsrc_cpy = $29;
$30 = HEAP32[$28>>2]|0;
$ltemp = $30;
$31 = $lsrcdst_cpy;
$32 = HEAP32[$31>>2]|0;
$33 = $lsrc_xor;
$34 = ((($33)) + 4|0);
$lsrc_xor = $34;
$35 = HEAP32[$33>>2]|0;
$36 = $32 ^ $35;
$37 = $ldst_xor;
$38 = ((($37)) + 4|0);
$ldst_xor = $38;
HEAP32[$37>>2] = $36;
$39 = $ltemp;
$40 = $lsrcdst_cpy;
$41 = ((($40)) + 4|0);
$lsrcdst_cpy = $41;
HEAP32[$40>>2] = $39;
$42 = $4;
$43 = (($42) - 4)|0;
$4 = $43;
}
$44 = $ldst_xor;
$dst_xor = $44;
$45 = $lsrc_xor;
$src_xor = $45;
$46 = $lsrcdst_cpy;
$srcdst_cpy = $46;
$47 = $lsrc_cpy;
$src_cpy = $47;
}
while(1) {
$48 = $4;
$49 = ($48|0)!=(0);
if (!($49)) {
break;
}
$50 = $src_cpy;
$51 = ((($50)) + 1|0);
$src_cpy = $51;
$52 = HEAP8[$50>>0]|0;
$temp = $52;
$53 = $srcdst_cpy;
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = $src_xor;
$57 = ((($56)) + 1|0);
$src_xor = $57;
$58 = HEAP8[$56>>0]|0;
$59 = $58&255;
$60 = $55 ^ $59;
$61 = $60&255;
$62 = $dst_xor;
$63 = ((($62)) + 1|0);
$dst_xor = $63;
HEAP8[$62>>0] = $61;
$64 = $temp;
$65 = $srcdst_cpy;
$66 = ((($65)) + 1|0);
$srcdst_cpy = $66;
HEAP8[$65>>0] = $64;
$67 = $4;
$68 = (($67) + -1)|0;
$4 = $68;
}
STACKTOP = sp;return;
}
function _selftest_cfb() {
var $0 = 0, $blocksize = 0, $context_size = 0, $nblocks = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nblocks = 5;
$blocksize = 16;
$context_size = 4256;
$0 = (__gcry_selftest_helper_cfb(43465,32,33,65,5,16,4256)|0);
STACKTOP = sp;return ($0|0);
}
function __gcry_twofish_cfb_dec($context,$iv,$outbuf_arg,$inbuf_arg,$nblocks) {
$context = $context|0;
$iv = $iv|0;
$outbuf_arg = $outbuf_arg|0;
$inbuf_arg = $inbuf_arg|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn = 0, $burn_stack_depth = 0, $ctx = 0, $inbuf = 0, $outbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $iv;
$2 = $outbuf_arg;
$3 = $inbuf_arg;
$4 = $nblocks;
$5 = $0;
$ctx = $5;
$6 = $2;
$outbuf = $6;
$7 = $3;
$inbuf = $7;
$burn_stack_depth = 0;
while(1) {
$8 = $4;
$9 = ($8|0)!=(0);
if (!($9)) {
break;
}
$10 = $ctx;
$11 = $1;
$12 = $1;
$13 = (_twofish_encrypt($10,$11,$12)|0);
$burn = $13;
$14 = $burn;
$15 = $burn_stack_depth;
$16 = ($14>>>0)>($15>>>0);
if ($16) {
$17 = $burn;
$burn_stack_depth = $17;
}
$18 = $outbuf;
$19 = $1;
$20 = $inbuf;
_buf_xor_n_copy_1463($18,$19,$20,16);
$21 = $outbuf;
$22 = ((($21)) + 16|0);
$outbuf = $22;
$23 = $inbuf;
$24 = ((($23)) + 16|0);
$inbuf = $24;
$25 = $4;
$26 = (($25) + -1)|0;
$4 = $26;
}
$27 = $burn_stack_depth;
___gcry_burn_stack($27);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_xor_n_copy_1463($_dst_xor,$_srcdst_cpy,$_src,$len) {
$_dst_xor = $_dst_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_srcdst_cpy;
$2 = $_src;
$3 = $len;
$4 = $0;
$5 = $2;
$6 = $1;
$7 = $2;
$8 = $3;
_buf_xor_n_copy_2_1460($4,$5,$6,$7,$8);
STACKTOP = sp;return;
}
function __gcry_register_random_progress($cb,$cb_data) {
$cb = $cb|0;
$cb_data = $cb_data|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $cb;
$1 = $cb_data;
$2 = $0;
HEAP32[17710] = $2;
$3 = $1;
HEAP32[17711] = $3;
STACKTOP = sp;return;
}
function __gcry_random_progress($what,$printchar,$current,$total) {
$what = $what|0;
$printchar = $printchar|0;
$current = $current|0;
$total = $total|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $what;
$1 = $printchar;
$2 = $current;
$3 = $total;
$4 = HEAP32[17710]|0;
$5 = ($4|0)!=(0|0);
if (!($5)) {
STACKTOP = sp;return;
}
$6 = HEAP32[17710]|0;
$7 = HEAP32[17711]|0;
$8 = $0;
$9 = $1;
$10 = $2;
$11 = $3;
FUNCTION_TABLE_viiiii[$6 & 127]($7,$8,$9,$10,$11);
STACKTOP = sp;return;
}
function __gcry_set_preferred_rng_type($type) {
$type = $type|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $type;
$1 = $0;
$2 = ($1|0)!=(0);
do {
if ($2) {
$3 = $0;
$4 = ($3|0)==(1);
if ($4) {
HEAP32[17713] = 1;
break;
}
$5 = HEAP32[17712]|0;
$6 = ($5|0)!=(0);
if (!($6)) {
$7 = $0;
$8 = ($7|0)==(2);
if ($8) {
HEAP32[(70856)>>2] = 1;
break;
}
$9 = $0;
$10 = ($9|0)==(3);
if ($10) {
HEAP32[(70860)>>2] = 1;
}
}
} else {
HEAP32[17712] = 1;
}
} while(0);
STACKTOP = sp;return;
}
function __gcry_random_initialize($full) {
$full = $full|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $full;
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
do {
if ($2) {
$3 = $0;
__gcry_rngfips_initialize($3);
} else {
$4 = HEAP32[17713]|0;
$5 = ($4|0)!=(0);
if ($5) {
$6 = $0;
__gcry_rngcsprng_initialize($6);
break;
}
$7 = HEAP32[(70856)>>2]|0;
$8 = ($7|0)!=(0);
if ($8) {
$9 = $0;
__gcry_rngfips_initialize($9);
break;
}
$10 = HEAP32[(70860)>>2]|0;
$11 = ($10|0)!=(0);
$12 = $0;
if ($11) {
__gcry_rngsystem_initialize($12);
break;
} else {
__gcry_rngcsprng_initialize($12);
break;
}
}
} while(0);
STACKTOP = sp;return;
}
function __gcry_random_close_fds() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
__gcry_rngfips_close_fds();
return;
}
$2 = HEAP32[17713]|0;
$3 = ($2|0)!=(0);
if ($3) {
__gcry_rngcsprng_close_fds();
return;
}
$4 = HEAP32[(70856)>>2]|0;
$5 = ($4|0)!=(0);
if ($5) {
__gcry_rngfips_close_fds();
return;
}
$6 = HEAP32[(70860)>>2]|0;
$7 = ($6|0)!=(0);
if ($7) {
__gcry_rngsystem_close_fds();
return;
} else {
__gcry_rngcsprng_close_fds();
return;
}
}
function __gcry_get_rng_type($ignore_fips_mode) {
$ignore_fips_mode = $ignore_fips_mode|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $ignore_fips_mode;
$2 = $1;
$3 = ($2|0)!=(0);
if ($3) {
label = 4;
} else {
$4 = (__gcry_fips_mode()|0);
$5 = ($4|0)!=(0);
if ($5) {
$0 = 2;
} else {
label = 4;
}
}
do {
if ((label|0) == 4) {
$6 = HEAP32[17713]|0;
$7 = ($6|0)!=(0);
if ($7) {
$0 = 1;
break;
}
$8 = HEAP32[(70856)>>2]|0;
$9 = ($8|0)!=(0);
if ($9) {
$0 = 2;
break;
}
$10 = HEAP32[(70860)>>2]|0;
$11 = ($10|0)!=(0);
if ($11) {
$0 = 3;
break;
} else {
$0 = 1;
break;
}
}
} while(0);
$12 = $0;
STACKTOP = sp;return ($12|0);
}
function __gcry_random_dump_stats() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
__gcry_rngfips_dump_stats();
return;
} else {
__gcry_rngcsprng_dump_stats();
return;
}
}
function __gcry_secure_random_alloc() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
return;
}
__gcry_rngcsprng_secure_alloc();
return;
}
function __gcry_enable_quick_random_gen() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
return;
}
__gcry_rngcsprng_enable_quick_gen();
return;
}
function __gcry_set_random_daemon_socket($socketname) {
$socketname = $socketname|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $socketname;
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if ($2) {
STACKTOP = sp;return;
}
$3 = $0;
__gcry_rngcsprng_set_daemon_socket($3);
STACKTOP = sp;return;
}
function __gcry_use_random_daemon($onoff) {
$onoff = $onoff|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $onoff;
$2 = (__gcry_fips_mode()|0);
$3 = ($2|0)!=(0);
if ($3) {
$0 = 0;
} else {
$4 = $1;
$5 = (__gcry_rngcsprng_use_daemon($4)|0);
$0 = $5;
}
$6 = $0;
STACKTOP = sp;return ($6|0);
}
function __gcry_random_is_faked() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if ($2) {
$3 = (__gcry_rngfips_is_faked()|0);
$0 = $3;
} else {
$4 = (__gcry_rngcsprng_is_faked()|0);
$0 = $4;
}
$5 = $0;
STACKTOP = sp;return ($5|0);
}
function __gcry_random_bytes($nbytes,$level) {
$nbytes = $nbytes|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbytes;
$1 = $level;
$2 = $0;
$3 = (__gcry_xmalloc($2)|0);
$buffer = $3;
$4 = $buffer;
$5 = $0;
$6 = $1;
_do_randomize($4,$5,$6);
$7 = $buffer;
STACKTOP = sp;return ($7|0);
}
function _do_randomize($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $level;
$3 = (__gcry_fips_mode()|0);
$4 = ($3|0)!=(0);
if ($4) {
$5 = $0;
$6 = $1;
$7 = $2;
__gcry_rngfips_randomize($5,$6,$7);
STACKTOP = sp;return;
}
$8 = HEAP32[17713]|0;
$9 = ($8|0)!=(0);
if ($9) {
$10 = $0;
$11 = $1;
$12 = $2;
__gcry_rngcsprng_randomize($10,$11,$12);
STACKTOP = sp;return;
}
$13 = HEAP32[(70856)>>2]|0;
$14 = ($13|0)!=(0);
if ($14) {
$15 = $0;
$16 = $1;
$17 = $2;
__gcry_rngfips_randomize($15,$16,$17);
STACKTOP = sp;return;
}
$18 = HEAP32[(70860)>>2]|0;
$19 = ($18|0)!=(0);
$20 = $0;
$21 = $1;
$22 = $2;
if ($19) {
__gcry_rngsystem_randomize($20,$21,$22);
STACKTOP = sp;return;
} else {
__gcry_rngcsprng_randomize($20,$21,$22);
STACKTOP = sp;return;
}
}
function __gcry_random_bytes_secure($nbytes,$level) {
$nbytes = $nbytes|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbytes;
$1 = $level;
$2 = $0;
$3 = (__gcry_xmalloc_secure($2)|0);
$buffer = $3;
$4 = $buffer;
$5 = $0;
$6 = $1;
_do_randomize($4,$5,$6);
$7 = $buffer;
STACKTOP = sp;return ($7|0);
}
function __gcry_randomize($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $level;
$3 = $0;
$4 = $1;
$5 = $2;
_do_randomize($3,$4,$5);
STACKTOP = sp;return;
}
function __gcry_set_random_seed_file($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
do {
if (!($2)) {
$3 = HEAP32[17713]|0;
$4 = ($3|0)!=(0);
if ($4) {
$5 = $0;
__gcry_rngcsprng_set_seed_file($5);
break;
}
$6 = HEAP32[(70856)>>2]|0;
$7 = ($6|0)!=(0);
$8 = HEAP32[(70860)>>2]|0;
$9 = ($8|0)!=(0);
$or$cond = $7 | $9;
if (!($or$cond)) {
$10 = $0;
__gcry_rngcsprng_set_seed_file($10);
}
}
} while(0);
STACKTOP = sp;return;
}
function __gcry_update_random_seed_file() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
return;
}
$2 = HEAP32[17713]|0;
$3 = ($2|0)!=(0);
if ($3) {
__gcry_rngcsprng_update_seed_file();
return;
}
$4 = HEAP32[(70856)>>2]|0;
$5 = ($4|0)!=(0);
$6 = HEAP32[(70860)>>2]|0;
$7 = ($6|0)!=(0);
$or$cond = $5 | $7;
if ($or$cond) {
return;
}
__gcry_rngcsprng_update_seed_file();
return;
}
function __gcry_fast_random_poll() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gcry_fips_mode()|0);
$1 = ($0|0)!=(0);
if ($1) {
return;
}
$2 = HEAP32[17713]|0;
$3 = ($2|0)!=(0);
if ($3) {
__gcry_rngcsprng_fast_poll();
return;
}
$4 = HEAP32[(70856)>>2]|0;
$5 = ($4|0)!=(0);
$6 = HEAP32[(70860)>>2]|0;
$7 = ($6|0)!=(0);
$or$cond = $5 | $7;
if ($or$cond) {
return;
}
__gcry_rngcsprng_fast_poll();
return;
}
function __gcry_create_nonce($buffer,$length) {
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $apid = 0, $atime = 0, $err = 0, $n = 0, $p = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $xpid = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$atime = sp + 16|0;
$xpid = sp + 12|0;
$0 = $buffer;
$1 = $length;
$2 = (__gcry_fips_mode()|0);
$3 = ($2|0)!=(0);
if ($3) {
$4 = $0;
$5 = $1;
__gcry_rngfips_create_nonce($4,$5);
STACKTOP = sp;return;
}
__gcry_random_initialize(1);
$6 = (_gpgrt_lock_lock(12536)|0);
$err = $6;
$7 = $err;
$8 = ($7|0)!=(0);
if ($8) {
$9 = $err;
$10 = (_gpg_strerror($9)|0);
HEAP32[$vararg_buffer>>2] = $10;
__gcry_log_fatal(45515,$vararg_buffer);
// unreachable;
}
$11 = (_getpid()|0);
$apid = $11;
$12 = HEAP32[17716]|0;
$13 = ($12|0)!=(0);
if ($13) {
$21 = HEAP32[17717]|0;
$22 = $apid;
$23 = ($21|0)!=($22|0);
if ($23) {
_do_randomize((76467),8,0);
$24 = $apid;
HEAP32[17717] = $24;
}
} else {
$14 = (_time((0|0))|0);
HEAP32[$atime>>2] = $14;
$15 = $apid;
HEAP32[$xpid>>2] = $15;
$16 = $apid;
HEAP32[17717] = $16;
$p = 76447;
$17 = $p;
;HEAP8[$17>>0]=HEAP8[$xpid>>0]|0;HEAP8[$17+1>>0]=HEAP8[$xpid+1>>0]|0;HEAP8[$17+2>>0]=HEAP8[$xpid+2>>0]|0;HEAP8[$17+3>>0]=HEAP8[$xpid+3>>0]|0;
$18 = $p;
$19 = ((($18)) + 4|0);
$p = $19;
$20 = $p;
;HEAP8[$20>>0]=HEAP8[$atime>>0]|0;HEAP8[$20+1>>0]=HEAP8[$atime+1>>0]|0;HEAP8[$20+2>>0]=HEAP8[$atime+2>>0]|0;HEAP8[$20+3>>0]=HEAP8[$atime+3>>0]|0;
__gcry_randomize((76467),8,0);
HEAP32[17716] = 1;
}
$25 = $0;
$p = $25;
while(1) {
$26 = $1;
$27 = ($26>>>0)>(0);
if (!($27)) {
break;
}
__gcry_sha1_hash_buffer(76447,76447,28);
$28 = $1;
$29 = ($28>>>0)>(20);
$30 = $1;
$31 = $29 ? 20 : $30;
$n = $31;
$32 = $p;
$33 = $n;
_memcpy(($32|0),(76447|0),($33|0))|0;
$34 = $n;
$35 = $1;
$36 = (($35) - ($34))|0;
$1 = $36;
$37 = $n;
$38 = $p;
$39 = (($38) + ($37)|0);
$p = $39;
}
$40 = (_gpgrt_lock_unlock(12536)|0);
$err = $40;
$41 = $err;
$42 = ($41|0)!=(0);
if ($42) {
$43 = $err;
$44 = (_gpg_strerror($43)|0);
HEAP32[$vararg_buffer1>>2] = $44;
__gcry_log_fatal(45560,$vararg_buffer1);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function __gcry_random_selftest($report) {
$report = $report|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $report;
$2 = (__gcry_fips_mode()|0);
$3 = ($2|0)!=(0);
if ($3) {
$4 = $1;
$5 = (__gcry_rngfips_selftest($4)|0);
$0 = $5;
} else {
$0 = 0;
}
$6 = $0;
STACKTOP = sp;return ($6|0);
}
function __gcry_random_init_external_test($r_context,$flags,$key,$keylen,$seed,$seedlen,$dt,$dtlen) {
$r_context = $r_context|0;
$flags = $flags|0;
$key = $key|0;
$keylen = $keylen|0;
$seed = $seed|0;
$seedlen = $seedlen|0;
$dt = $dt|0;
$dtlen = $dtlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $r_context;
$2 = $flags;
$3 = $key;
$4 = $keylen;
$5 = $seed;
$6 = $seedlen;
$7 = $dt;
$8 = $dtlen;
$9 = (__gcry_fips_mode()|0);
$10 = ($9|0)!=(0);
if ($10) {
$11 = $1;
$12 = $2;
$13 = $3;
$14 = $4;
$15 = $5;
$16 = $6;
$17 = $7;
$18 = $8;
$19 = (__gcry_rngfips_init_external_test($11,$12,$13,$14,$15,$16,$17,$18)|0);
$0 = $19;
$20 = $0;
STACKTOP = sp;return ($20|0);
} else {
$0 = 60;
$20 = $0;
STACKTOP = sp;return ($20|0);
}
return (0)|0;
}
function __gcry_random_run_external_test($context,$buffer,$buflen) {
$context = $context|0;
$buffer = $buffer|0;
$buflen = $buflen|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $context;
$2 = $buffer;
$3 = $buflen;
$4 = (__gcry_fips_mode()|0);
$5 = ($4|0)!=(0);
if ($5) {
$6 = $1;
$7 = $2;
$8 = $3;
$9 = (__gcry_rngfips_run_external_test($6,$7,$8)|0);
$0 = $9;
$10 = $0;
STACKTOP = sp;return ($10|0);
} else {
$0 = 60;
$10 = $0;
STACKTOP = sp;return ($10|0);
}
return (0)|0;
}
function __gcry_random_deinit_external_test($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = (__gcry_fips_mode()|0);
$2 = ($1|0)!=(0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
__gcry_rngfips_deinit_external_test($3);
STACKTOP = sp;return;
}
function __gcry_mpi_point_log($name,$point,$ctx) {
$name = $name|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $buf = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$buf = sp + 32|0;
$0 = $name;
$1 = $point;
$2 = $ctx;
$3 = $1;
$4 = ($3|0)!=(0|0);
$5 = $0;
if (!($4)) {
HEAP32[$vararg_buffer>>2] = $5;
(_snprintf($buf,99,45605,$vararg_buffer)|0);
__gcry_log_printmpi($buf,0);
STACKTOP = sp;return;
}
HEAP32[$vararg_buffer1>>2] = $5;
(_snprintf($buf,99,45610,$vararg_buffer1)|0);
$6 = $2;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = (__gcry_mpi_new(0)|0);
$x = $8;
$9 = (__gcry_mpi_new(0)|0);
$y = $9;
}
$10 = $2;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $x;
$13 = $y;
$14 = $1;
$15 = $2;
$16 = (__gcry_mpi_ec_get_affine($12,$13,$14,$15)|0);
$17 = ($16|0)!=(0);
if ($17) {
label = 7;
} else {
$32 = (_strlen($buf)|0);
$33 = (($32) - 1)|0;
$34 = (($buf) + ($33)|0);
HEAP8[$34>>0] = 120;
$35 = $x;
__gcry_log_printmpi($buf,$35);
$36 = (_strlen($buf)|0);
$37 = (($36) - 1)|0;
$38 = (($buf) + ($37)|0);
HEAP8[$38>>0] = 121;
$39 = $y;
__gcry_log_printmpi($buf,$39);
}
} else {
label = 7;
}
if ((label|0) == 7) {
$18 = $1;
$19 = HEAP32[$18>>2]|0;
__gcry_log_printmpi($buf,$19);
$20 = (_strlen($buf)|0);
$21 = (($20) - 1)|0;
$22 = (($buf) + ($21)|0);
HEAP8[$22>>0] = 89;
$23 = $1;
$24 = ((($23)) + 4|0);
$25 = HEAP32[$24>>2]|0;
__gcry_log_printmpi($buf,$25);
$26 = (_strlen($buf)|0);
$27 = (($26) - 1)|0;
$28 = (($buf) + ($27)|0);
HEAP8[$28>>0] = 90;
$29 = $1;
$30 = ((($29)) + 8|0);
$31 = HEAP32[$30>>2]|0;
__gcry_log_printmpi($buf,$31);
}
$40 = $2;
$41 = ($40|0)!=(0|0);
if (!($41)) {
STACKTOP = sp;return;
}
$42 = $x;
__gcry_mpi_release($42);
$43 = $y;
__gcry_mpi_release($43);
STACKTOP = sp;return;
}
function __gcry_mpi_ec_get_affine($x,$y,$point,$ctx) {
$x = $x|0;
$y = $y|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $z = 0, $z1 = 0;
var $z2 = 0, $z3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $x;
$2 = $y;
$3 = $point;
$4 = $ctx;
$5 = $3;
$6 = ((($5)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = (__gcry_mpi_cmp_ui($7,0)|0);
$9 = ($8|0)!=(0);
if (!($9)) {
$0 = -1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
$10 = $4;
$11 = HEAP32[$10>>2]|0;
switch ($11|0) {
case 0: {
$12 = (__gcry_mpi_new(0)|0);
$z1 = $12;
$13 = (__gcry_mpi_new(0)|0);
$z2 = $13;
$14 = $z1;
$15 = $3;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
$18 = $4;
_ec_invm($14,$17,$18);
$19 = $z2;
$20 = $z1;
$21 = $z1;
$22 = $4;
_ec_mulm($19,$20,$21,$22);
$23 = $1;
$24 = ($23|0)!=(0|0);
if ($24) {
$25 = $1;
$26 = $3;
$27 = HEAP32[$26>>2]|0;
$28 = $z2;
$29 = $4;
_ec_mulm($25,$27,$28,$29);
}
$30 = $2;
$31 = ($30|0)!=(0|0);
if ($31) {
$32 = (__gcry_mpi_new(0)|0);
$z3 = $32;
$33 = $z3;
$34 = $z2;
$35 = $z1;
$36 = $4;
_ec_mulm($33,$34,$35,$36);
$37 = $2;
$38 = $3;
$39 = ((($38)) + 4|0);
$40 = HEAP32[$39>>2]|0;
$41 = $z3;
$42 = $4;
_ec_mulm($37,$40,$41,$42);
$43 = $z3;
__gcry_mpi_free($43);
}
$44 = $z2;
__gcry_mpi_free($44);
$45 = $z1;
__gcry_mpi_free($45);
$0 = 0;
$75 = $0;
STACKTOP = sp;return ($75|0);
break;
}
case 1: {
$46 = $1;
$47 = ($46|0)!=(0|0);
if ($47) {
$48 = $1;
$49 = $3;
$50 = HEAP32[$49>>2]|0;
(__gcry_mpi_set($48,$50)|0);
}
$51 = $2;
$52 = ($51|0)!=(0|0);
if ($52) {
HEAP32[$vararg_buffer>>2] = 45706;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 45730;
__gcry_log_fatal(45657,$vararg_buffer);
// unreachable;
}
$0 = 0;
$75 = $0;
STACKTOP = sp;return ($75|0);
break;
}
case 2: {
$53 = (__gcry_mpi_new(0)|0);
$z = $53;
$54 = $z;
$55 = $3;
$56 = ((($55)) + 8|0);
$57 = HEAP32[$56>>2]|0;
$58 = $4;
_ec_invm($54,$57,$58);
$59 = $1;
$60 = ($59|0)!=(0|0);
if ($60) {
$61 = $1;
$62 = $3;
$63 = HEAP32[$62>>2]|0;
$64 = $z;
$65 = $4;
_ec_mulm($61,$63,$64,$65);
}
$66 = $2;
$67 = ($66|0)!=(0|0);
if ($67) {
$68 = $2;
$69 = $3;
$70 = ((($69)) + 4|0);
$71 = HEAP32[$70>>2]|0;
$72 = $z;
$73 = $4;
_ec_mulm($68,$71,$72,$73);
}
$74 = $z;
__gcry_mpi_release($74);
$0 = 0;
$75 = $0;
STACKTOP = sp;return ($75|0);
break;
}
default: {
$0 = -1;
$75 = $0;
STACKTOP = sp;return ($75|0);
}
}
return (0)|0;
}
function _ec_invm($x,$a,$ctx) {
$x = $x|0;
$a = $a|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $x;
$1 = $a;
$2 = $ctx;
$3 = $0;
$4 = $1;
$5 = $2;
$6 = ((($5)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$8 = (__gcry_mpi_invm($3,$4,$7)|0);
$9 = ($8|0)!=(0);
if ($9) {
STACKTOP = sp;return;
}
__gcry_log_error(45615,$vararg_buffer);
$10 = $1;
__gcry_log_printmpi(45649,$10);
$11 = $2;
$12 = ((($11)) + 16|0);
$13 = HEAP32[$12>>2]|0;
__gcry_log_printmpi(45653,$13);
STACKTOP = sp;return;
}
function _ec_mulm($w,$u,$v,$ctx) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $ctx;
$4 = $0;
$5 = $1;
$6 = $2;
__gcry_mpi_mul($4,$5,$6);
$7 = $0;
$8 = $3;
_ec_mod($7,$8);
STACKTOP = sp;return;
}
function _ec_mod($w,$ec) {
$w = $w|0;
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $ec;
$2 = $1;
$3 = ((($2)) + 48|0);
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)!=(0|0);
$7 = $0;
$8 = $0;
$9 = $1;
if ($6) {
$10 = ((($9)) + 48|0);
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
__gcry_mpi_mod_barrett($7,$8,$12);
STACKTOP = sp;return;
} else {
$13 = ((($9)) + 16|0);
$14 = HEAP32[$13>>2]|0;
__gcry_mpi_mod($7,$8,$14);
STACKTOP = sp;return;
}
}
function __gcry_mpi_point_new($nbits) {
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = (__gcry_xmalloc(12)|0);
$p = $1;
$2 = $p;
__gcry_mpi_point_init($2);
$3 = $p;
STACKTOP = sp;return ($3|0);
}
function __gcry_mpi_point_init($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = (__gcry_mpi_new(0)|0);
$2 = $0;
HEAP32[$2>>2] = $1;
$3 = (__gcry_mpi_new(0)|0);
$4 = $0;
$5 = ((($4)) + 4|0);
HEAP32[$5>>2] = $3;
$6 = (__gcry_mpi_new(0)|0);
$7 = $0;
$8 = ((($7)) + 8|0);
HEAP32[$8>>2] = $6;
STACKTOP = sp;return;
}
function __gcry_mpi_point_release($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
__gcry_mpi_point_free_parts($3);
$4 = $0;
__gcry_free($4);
STACKTOP = sp;return;
}
function __gcry_mpi_point_free_parts($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
__gcry_mpi_free($2);
$3 = $0;
HEAP32[$3>>2] = 0;
$4 = $0;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
__gcry_mpi_free($6);
$7 = $0;
$8 = ((($7)) + 4|0);
HEAP32[$8>>2] = 0;
$9 = $0;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
__gcry_mpi_free($11);
$12 = $0;
$13 = ((($12)) + 8|0);
HEAP32[$13>>2] = 0;
STACKTOP = sp;return;
}
function __gcry_mpi_point_set($point,$x,$y,$z) {
$point = $point|0;
$x = $x|0;
$y = $y|0;
$z = $z|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $point;
$1 = $x;
$2 = $y;
$3 = $z;
$4 = $0;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$6 = (__gcry_mpi_point_new(0)|0);
$0 = $6;
}
$7 = $1;
$8 = ($7|0)!=(0|0);
$9 = $0;
$10 = HEAP32[$9>>2]|0;
if ($8) {
$11 = $1;
(__gcry_mpi_set($10,$11)|0);
} else {
__gcry_mpi_clear($10);
}
$12 = $2;
$13 = ($12|0)!=(0|0);
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
if ($13) {
$17 = $2;
(__gcry_mpi_set($16,$17)|0);
} else {
__gcry_mpi_clear($16);
}
$18 = $3;
$19 = ($18|0)!=(0|0);
$20 = $0;
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
if ($19) {
$23 = $3;
(__gcry_mpi_set($22,$23)|0);
$24 = $0;
STACKTOP = sp;return ($24|0);
} else {
__gcry_mpi_clear($22);
$24 = $0;
STACKTOP = sp;return ($24|0);
}
return (0)|0;
}
function __gcry_mpi_point_snatch_set($point,$x,$y,$z) {
$point = $point|0;
$x = $x|0;
$y = $y|0;
$z = $z|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $point;
$1 = $x;
$2 = $y;
$3 = $z;
$4 = $0;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$6 = (__gcry_mpi_point_new(0)|0);
$0 = $6;
}
$7 = $1;
$8 = ($7|0)!=(0|0);
$9 = $0;
$10 = HEAP32[$9>>2]|0;
if ($8) {
$11 = $1;
__gcry_mpi_snatch($10,$11);
} else {
__gcry_mpi_clear($10);
}
$12 = $2;
$13 = ($12|0)!=(0|0);
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
if ($13) {
$17 = $2;
__gcry_mpi_snatch($16,$17);
} else {
__gcry_mpi_clear($16);
}
$18 = $3;
$19 = ($18|0)!=(0|0);
$20 = $0;
$21 = ((($20)) + 8|0);
$22 = HEAP32[$21>>2]|0;
if ($19) {
$23 = $3;
__gcry_mpi_snatch($22,$23);
$24 = $0;
STACKTOP = sp;return ($24|0);
} else {
__gcry_mpi_clear($22);
$24 = $0;
STACKTOP = sp;return ($24|0);
}
return (0)|0;
}
function __gcry_mpi_ec_get_reset($ec) {
$ec = $ec|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ec;
$1 = $0;
$2 = ((($1)) + 48|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3 & -2;
HEAP8[$2>>0] = $4;
$5 = $0;
$6 = ((($5)) + 48|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7 & -3;
HEAP8[$6>>0] = $8;
STACKTOP = sp;return;
}
function __gcry_mpi_ec_p_internal_new($model,$dialect,$flags,$p,$a,$b) {
$model = $model|0;
$dialect = $dialect|0;
$flags = $flags|0;
$p = $p|0;
$a = $a|0;
$b = $b|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $model;
$1 = $dialect;
$2 = $flags;
$3 = $p;
$4 = $a;
$5 = $b;
$6 = (__gcry_xcalloc(1,108)|0);
$ctx = $6;
$7 = $ctx;
$8 = $0;
$9 = $1;
$10 = $2;
$11 = $3;
$12 = $4;
$13 = $5;
_ec_p_init($7,$8,$9,$10,$11,$12,$13);
$14 = $ctx;
STACKTOP = sp;return ($14|0);
}
function _ec_p_init($ctx,$model,$dialect,$flags,$p,$a,$b) {
$ctx = $ctx|0;
$model = $model|0;
$dialect = $dialect|0;
$flags = $flags|0;
$p = $p|0;
$a = $a|0;
$b = $b|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $7 = 0, $8 = 0, $9 = 0, $i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $model;
$2 = $dialect;
$3 = $flags;
$4 = $p;
$5 = $a;
$6 = $b;
$7 = HEAP32[17718]|0;
$8 = ($7|0)!=(0);
do {
if (!($8)) {
$9 = (_getenv((45741|0))|0);
$10 = ($9|0)!=(0|0);
if ($10) {
HEAP32[17718] = 1;
break;
} else {
HEAP32[17718] = -1;
break;
}
}
} while(0);
$11 = $1;
$12 = $0;
HEAP32[$12>>2] = $11;
$13 = $2;
$14 = $0;
$15 = ((($14)) + 4|0);
HEAP32[$15>>2] = $13;
$16 = $3;
$17 = $0;
$18 = ((($17)) + 8|0);
HEAP32[$18>>2] = $16;
$19 = $2;
$20 = ($19|0)==(1);
if ($20) {
$21 = $0;
$22 = ((($21)) + 12|0);
HEAP32[$22>>2] = 256;
} else {
$23 = $4;
$24 = (__gcry_mpi_get_nbits($23)|0);
$25 = $0;
$26 = ((($25)) + 12|0);
HEAP32[$26>>2] = $24;
}
$27 = $4;
$28 = (__gcry_mpi_copy($27)|0);
$29 = $0;
$30 = ((($29)) + 16|0);
HEAP32[$30>>2] = $28;
$31 = $5;
$32 = (__gcry_mpi_copy($31)|0);
$33 = $0;
$34 = ((($33)) + 20|0);
HEAP32[$34>>2] = $32;
$35 = $6;
$36 = (__gcry_mpi_copy($35)|0);
$37 = $0;
$38 = ((($37)) + 24|0);
HEAP32[$38>>2] = $36;
$39 = HEAP32[17718]|0;
$40 = ($39|0)>(0);
if ($40) {
$41 = $0;
$42 = ((($41)) + 16|0);
$43 = HEAP32[$42>>2]|0;
$44 = (__gcry_mpi_barrett_init($43,0)|0);
$48 = $44;
} else {
$48 = 0;
}
$45 = $0;
$46 = ((($45)) + 48|0);
$47 = ((($46)) + 12|0);
HEAP32[$47>>2] = $48;
$49 = $0;
__gcry_mpi_ec_get_reset($49);
$i = 0;
while(1) {
$50 = $i;
$51 = ($50>>>0)<(11);
if (!($51)) {
break;
}
$52 = $0;
$53 = ((($52)) + 16|0);
$54 = HEAP32[$53>>2]|0;
$55 = (__gcry_mpi_alloc_like($54)|0);
$56 = $i;
$57 = $0;
$58 = ((($57)) + 48|0);
$59 = ((($58)) + 16|0);
$60 = (($59) + ($56<<2)|0);
HEAP32[$60>>2] = $55;
$61 = $i;
$62 = (($61) + 1)|0;
$i = $62;
}
STACKTOP = sp;return;
}
function __gcry_mpi_ec_p_new($r_ctx,$model,$dialect,$flags,$p,$a,$b) {
$r_ctx = $r_ctx|0;
$model = $model|0;
$dialect = $dialect|0;
$flags = $flags|0;
$p = $p|0;
$a = $a|0;
$b = $b|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0, $ec = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $r_ctx;
$2 = $model;
$3 = $dialect;
$4 = $flags;
$5 = $p;
$6 = $a;
$7 = $b;
$8 = $1;
HEAP32[$8>>2] = 0;
$9 = $5;
$10 = ($9|0)!=(0|0);
$11 = $6;
$12 = ($11|0)!=(0|0);
$or$cond = $10 & $12;
if (!($or$cond)) {
$0 = 32816;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
$13 = (__gcry_ctx_alloc(1,108,77)|0);
$ctx = $13;
$14 = $ctx;
$15 = ($14|0)!=(0|0);
if ($15) {
$17 = $ctx;
$18 = (__gcry_ctx_get_pointer($17,1)|0);
$ec = $18;
$19 = $ec;
$20 = $2;
$21 = $3;
$22 = $4;
$23 = $5;
$24 = $6;
$25 = $7;
_ec_p_init($19,$20,$21,$22,$23,$24,$25);
$26 = $ctx;
$27 = $1;
HEAP32[$27>>2] = $26;
$0 = 0;
$28 = $0;
STACKTOP = sp;return ($28|0);
} else {
$16 = (_gpg_err_code_from_syserror()|0);
$0 = $16;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
return (0)|0;
}
function _ec_deinit($opaque) {
$opaque = $opaque|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0, $i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $opaque;
$1 = $0;
$ctx = $1;
$2 = $ctx;
$3 = ((($2)) + 48|0);
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
__gcry_mpi_barrett_free($5);
$6 = $ctx;
$7 = ((($6)) + 16|0);
$8 = HEAP32[$7>>2]|0;
__gcry_mpi_free($8);
$9 = $ctx;
$10 = ((($9)) + 20|0);
$11 = HEAP32[$10>>2]|0;
__gcry_mpi_free($11);
$12 = $ctx;
$13 = ((($12)) + 24|0);
$14 = HEAP32[$13>>2]|0;
__gcry_mpi_free($14);
$15 = $ctx;
$16 = ((($15)) + 28|0);
$17 = HEAP32[$16>>2]|0;
__gcry_mpi_point_release($17);
$18 = $ctx;
$19 = ((($18)) + 32|0);
$20 = HEAP32[$19>>2]|0;
__gcry_mpi_free($20);
$21 = $ctx;
$22 = ((($21)) + 36|0);
$23 = HEAP32[$22>>2]|0;
__gcry_mpi_free($23);
$24 = $ctx;
$25 = ((($24)) + 40|0);
$26 = HEAP32[$25>>2]|0;
__gcry_mpi_point_release($26);
$27 = $ctx;
$28 = ((($27)) + 44|0);
$29 = HEAP32[$28>>2]|0;
__gcry_mpi_free($29);
$30 = $ctx;
$31 = ((($30)) + 48|0);
$32 = ((($31)) + 8|0);
$33 = HEAP32[$32>>2]|0;
__gcry_mpi_free($33);
$i = 0;
while(1) {
$34 = $i;
$35 = ($34>>>0)<(11);
if (!($35)) {
break;
}
$36 = $i;
$37 = $ctx;
$38 = ((($37)) + 48|0);
$39 = ((($38)) + 16|0);
$40 = (($39) + ($36<<2)|0);
$41 = HEAP32[$40>>2]|0;
__gcry_mpi_free($41);
$42 = $i;
$43 = (($42) + 1)|0;
$i = $43;
}
STACKTOP = sp;return;
}
function __gcry_mpi_ec_free($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
_ec_deinit($3);
$4 = $0;
__gcry_free($4);
STACKTOP = sp;return;
}
function __gcry_mpi_ec_get_mpi($name,$ctx,$copy) {
$name = $name|0;
$ctx = $ctx|0;
$copy = $copy|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = $ctx;
$2 = $copy;
$3 = $1;
$4 = (__gcry_ctx_get_pointer($3,1)|0);
$ec = $4;
$5 = $0;
$6 = $ec;
$7 = $2;
$8 = (__gcry_ecc_get_mpi($5,$6,$7)|0);
STACKTOP = sp;return ($8|0);
}
function __gcry_mpi_ec_get_point($name,$ctx,$copy) {
$name = $name|0;
$ctx = $ctx|0;
$copy = $copy|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = $ctx;
$2 = $copy;
$3 = $1;
$4 = (__gcry_ctx_get_pointer($3,1)|0);
$ec = $4;
$5 = $0;
$6 = $ec;
$7 = (__gcry_ecc_get_point($5,$6)|0);
STACKTOP = sp;return ($7|0);
}
function __gcry_mpi_ec_dup_point($result,$point,$ctx) {
$result = $result|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $point;
$2 = $ctx;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
switch ($4|0) {
case 0: {
$5 = $0;
$6 = $1;
$7 = $2;
_dup_point_weierstrass($5,$6,$7);
break;
}
case 1: {
$8 = $0;
$9 = $1;
$10 = $2;
_dup_point_montgomery($8,$9,$10);
break;
}
case 2: {
$11 = $0;
$12 = $1;
$13 = $2;
_dup_point_edwards($11,$12,$13);
break;
}
default: {
}
}
STACKTOP = sp;return;
}
function _dup_point_weierstrass($result,$point,$ctx) {
$result = $result|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0;
var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0;
var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $point;
$2 = $ctx;
$3 = $1;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (__gcry_mpi_cmp_ui($5,0)|0);
$7 = ($6|0)!=(0);
if ($7) {
$8 = $1;
$9 = ((($8)) + 8|0);
$10 = HEAP32[$9>>2]|0;
$11 = (__gcry_mpi_cmp_ui($10,0)|0);
$12 = ($11|0)!=(0);
if ($12) {
$21 = $2;
$22 = (_ec_get_a_is_pminus3($21)|0);
$23 = ($22|0)!=(0);
$24 = $2;
$25 = ((($24)) + 48|0);
$26 = ((($25)) + 16|0);
if ($23) {
$27 = HEAP32[$26>>2]|0;
$28 = $1;
$29 = ((($28)) + 8|0);
$30 = HEAP32[$29>>2]|0;
$31 = $2;
_ec_pow2($27,$30,$31);
$32 = $2;
$33 = ((($32)) + 48|0);
$34 = ((($33)) + 16|0);
$35 = ((($34)) + 12|0);
$36 = HEAP32[$35>>2]|0;
$37 = $1;
$38 = HEAP32[$37>>2]|0;
$39 = $2;
$40 = ((($39)) + 48|0);
$41 = ((($40)) + 16|0);
$42 = HEAP32[$41>>2]|0;
$43 = $2;
_ec_subm($36,$38,$42,$43);
$44 = $2;
$45 = ((($44)) + 48|0);
$46 = ((($45)) + 16|0);
$47 = ((($46)) + 12|0);
$48 = HEAP32[$47>>2]|0;
$49 = $2;
$50 = ((($49)) + 48|0);
$51 = ((($50)) + 16|0);
$52 = ((($51)) + 12|0);
$53 = HEAP32[$52>>2]|0;
$54 = (__gcry_mpi_const(3)|0);
$55 = $2;
_ec_mulm($48,$53,$54,$55);
$56 = $2;
$57 = ((($56)) + 48|0);
$58 = ((($57)) + 16|0);
$59 = ((($58)) + 4|0);
$60 = HEAP32[$59>>2]|0;
$61 = $1;
$62 = HEAP32[$61>>2]|0;
$63 = $2;
$64 = ((($63)) + 48|0);
$65 = ((($64)) + 16|0);
$66 = HEAP32[$65>>2]|0;
$67 = $2;
_ec_addm($60,$62,$66,$67);
$68 = $2;
$69 = ((($68)) + 48|0);
$70 = ((($69)) + 16|0);
$71 = ((($70)) + 12|0);
$72 = HEAP32[$71>>2]|0;
$73 = $2;
$74 = ((($73)) + 48|0);
$75 = ((($74)) + 16|0);
$76 = ((($75)) + 12|0);
$77 = HEAP32[$76>>2]|0;
$78 = $2;
$79 = ((($78)) + 48|0);
$80 = ((($79)) + 16|0);
$81 = ((($80)) + 4|0);
$82 = HEAP32[$81>>2]|0;
$83 = $2;
_ec_mulm($72,$77,$82,$83);
} else {
$84 = ((($26)) + 12|0);
$85 = HEAP32[$84>>2]|0;
$86 = $1;
$87 = HEAP32[$86>>2]|0;
$88 = $2;
_ec_pow2($85,$87,$88);
$89 = $2;
$90 = ((($89)) + 48|0);
$91 = ((($90)) + 16|0);
$92 = ((($91)) + 12|0);
$93 = HEAP32[$92>>2]|0;
$94 = $2;
$95 = ((($94)) + 48|0);
$96 = ((($95)) + 16|0);
$97 = ((($96)) + 12|0);
$98 = HEAP32[$97>>2]|0;
$99 = (__gcry_mpi_const(3)|0);
$100 = $2;
_ec_mulm($93,$98,$99,$100);
$101 = $2;
$102 = ((($101)) + 48|0);
$103 = ((($102)) + 16|0);
$104 = HEAP32[$103>>2]|0;
$105 = $1;
$106 = ((($105)) + 8|0);
$107 = HEAP32[$106>>2]|0;
$108 = (__gcry_mpi_const(4)|0);
$109 = $2;
_ec_powm($104,$107,$108,$109);
$110 = $2;
$111 = ((($110)) + 48|0);
$112 = ((($111)) + 16|0);
$113 = HEAP32[$112>>2]|0;
$114 = $2;
$115 = ((($114)) + 48|0);
$116 = ((($115)) + 16|0);
$117 = HEAP32[$116>>2]|0;
$118 = $2;
$119 = ((($118)) + 20|0);
$120 = HEAP32[$119>>2]|0;
$121 = $2;
_ec_mulm($113,$117,$120,$121);
$122 = $2;
$123 = ((($122)) + 48|0);
$124 = ((($123)) + 16|0);
$125 = ((($124)) + 12|0);
$126 = HEAP32[$125>>2]|0;
$127 = $2;
$128 = ((($127)) + 48|0);
$129 = ((($128)) + 16|0);
$130 = ((($129)) + 12|0);
$131 = HEAP32[$130>>2]|0;
$132 = $2;
$133 = ((($132)) + 48|0);
$134 = ((($133)) + 16|0);
$135 = HEAP32[$134>>2]|0;
$136 = $2;
_ec_addm($126,$131,$135,$136);
}
$137 = $0;
$138 = ((($137)) + 8|0);
$139 = HEAP32[$138>>2]|0;
$140 = $1;
$141 = ((($140)) + 4|0);
$142 = HEAP32[$141>>2]|0;
$143 = $1;
$144 = ((($143)) + 8|0);
$145 = HEAP32[$144>>2]|0;
$146 = $2;
_ec_mulm($139,$142,$145,$146);
$147 = $0;
$148 = ((($147)) + 8|0);
$149 = HEAP32[$148>>2]|0;
$150 = $0;
$151 = ((($150)) + 8|0);
$152 = HEAP32[$151>>2]|0;
$153 = $2;
_ec_mul2($149,$152,$153);
$154 = $2;
$155 = ((($154)) + 48|0);
$156 = ((($155)) + 16|0);
$157 = ((($156)) + 4|0);
$158 = HEAP32[$157>>2]|0;
$159 = $1;
$160 = ((($159)) + 4|0);
$161 = HEAP32[$160>>2]|0;
$162 = $2;
_ec_pow2($158,$161,$162);
$163 = $2;
$164 = ((($163)) + 48|0);
$165 = ((($164)) + 16|0);
$166 = ((($165)) + 16|0);
$167 = HEAP32[$166>>2]|0;
$168 = $2;
$169 = ((($168)) + 48|0);
$170 = ((($169)) + 16|0);
$171 = ((($170)) + 4|0);
$172 = HEAP32[$171>>2]|0;
$173 = $1;
$174 = HEAP32[$173>>2]|0;
$175 = $2;
_ec_mulm($167,$172,$174,$175);
$176 = $2;
$177 = ((($176)) + 48|0);
$178 = ((($177)) + 16|0);
$179 = ((($178)) + 16|0);
$180 = HEAP32[$179>>2]|0;
$181 = $2;
$182 = ((($181)) + 48|0);
$183 = ((($182)) + 16|0);
$184 = ((($183)) + 16|0);
$185 = HEAP32[$184>>2]|0;
$186 = (__gcry_mpi_const(4)|0);
$187 = $2;
_ec_mulm($180,$185,$186,$187);
$188 = $0;
$189 = HEAP32[$188>>2]|0;
$190 = $2;
$191 = ((($190)) + 48|0);
$192 = ((($191)) + 16|0);
$193 = ((($192)) + 12|0);
$194 = HEAP32[$193>>2]|0;
$195 = $2;
_ec_pow2($189,$194,$195);
$196 = $2;
$197 = ((($196)) + 48|0);
$198 = ((($197)) + 16|0);
$199 = HEAP32[$198>>2]|0;
$200 = $2;
$201 = ((($200)) + 48|0);
$202 = ((($201)) + 16|0);
$203 = ((($202)) + 16|0);
$204 = HEAP32[$203>>2]|0;
$205 = $2;
_ec_mul2($199,$204,$205);
$206 = $0;
$207 = HEAP32[$206>>2]|0;
$208 = $0;
$209 = HEAP32[$208>>2]|0;
$210 = $2;
$211 = ((($210)) + 48|0);
$212 = ((($211)) + 16|0);
$213 = HEAP32[$212>>2]|0;
$214 = $2;
_ec_subm($207,$209,$213,$214);
$215 = $2;
$216 = ((($215)) + 48|0);
$217 = ((($216)) + 16|0);
$218 = ((($217)) + 4|0);
$219 = HEAP32[$218>>2]|0;
$220 = $2;
$221 = ((($220)) + 48|0);
$222 = ((($221)) + 16|0);
$223 = ((($222)) + 4|0);
$224 = HEAP32[$223>>2]|0;
$225 = $2;
_ec_pow2($219,$224,$225);
$226 = $2;
$227 = ((($226)) + 48|0);
$228 = ((($227)) + 16|0);
$229 = ((($228)) + 20|0);
$230 = HEAP32[$229>>2]|0;
$231 = $2;
$232 = ((($231)) + 48|0);
$233 = ((($232)) + 16|0);
$234 = ((($233)) + 4|0);
$235 = HEAP32[$234>>2]|0;
$236 = (__gcry_mpi_const(5)|0);
$237 = $2;
_ec_mulm($230,$235,$236,$237);
$238 = $0;
$239 = ((($238)) + 4|0);
$240 = HEAP32[$239>>2]|0;
$241 = $2;
$242 = ((($241)) + 48|0);
$243 = ((($242)) + 16|0);
$244 = ((($243)) + 16|0);
$245 = HEAP32[$244>>2]|0;
$246 = $0;
$247 = HEAP32[$246>>2]|0;
$248 = $2;
_ec_subm($240,$245,$247,$248);
$249 = $0;
$250 = ((($249)) + 4|0);
$251 = HEAP32[$250>>2]|0;
$252 = $0;
$253 = ((($252)) + 4|0);
$254 = HEAP32[$253>>2]|0;
$255 = $2;
$256 = ((($255)) + 48|0);
$257 = ((($256)) + 16|0);
$258 = ((($257)) + 12|0);
$259 = HEAP32[$258>>2]|0;
$260 = $2;
_ec_mulm($251,$254,$259,$260);
$261 = $0;
$262 = ((($261)) + 4|0);
$263 = HEAP32[$262>>2]|0;
$264 = $0;
$265 = ((($264)) + 4|0);
$266 = HEAP32[$265>>2]|0;
$267 = $2;
$268 = ((($267)) + 48|0);
$269 = ((($268)) + 16|0);
$270 = ((($269)) + 20|0);
$271 = HEAP32[$270>>2]|0;
$272 = $2;
_ec_subm($263,$266,$271,$272);
STACKTOP = sp;return;
}
}
$13 = $0;
$14 = HEAP32[$13>>2]|0;
(__gcry_mpi_set_ui($14,1)|0);
$15 = $0;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
(__gcry_mpi_set_ui($17,1)|0);
$18 = $0;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
(__gcry_mpi_set_ui($20,0)|0);
STACKTOP = sp;return;
}
function _ec_get_a_is_pminus3($ec) {
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ec;
$1 = $0;
$2 = ((($1)) + 48|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3 & 1;
$5 = $4&255;
$6 = ($5|0)!=(0);
if ($6) {
$32 = $0;
$33 = ((($32)) + 48|0);
$34 = ((($33)) + 4|0);
$35 = HEAP32[$34>>2]|0;
STACKTOP = sp;return ($35|0);
}
$7 = $0;
$8 = ((($7)) + 48|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 & -2;
$11 = $10 | 1;
HEAP8[$8>>0] = $11;
$12 = $0;
$13 = ((($12)) + 16|0);
$14 = HEAP32[$13>>2]|0;
$15 = (__gcry_mpi_alloc_like($14)|0);
$tmp = $15;
$16 = $tmp;
$17 = $0;
$18 = ((($17)) + 16|0);
$19 = HEAP32[$18>>2]|0;
__gcry_mpi_sub_ui($16,$19,3);
$20 = $0;
$21 = ((($20)) + 20|0);
$22 = HEAP32[$21>>2]|0;
$23 = $tmp;
$24 = (__gcry_mpi_cmp($22,$23)|0);
$25 = ($24|0)!=(0);
$26 = $25 ^ 1;
$27 = $26&1;
$28 = $0;
$29 = ((($28)) + 48|0);
$30 = ((($29)) + 4|0);
HEAP32[$30>>2] = $27;
$31 = $tmp;
__gcry_mpi_free($31);
$32 = $0;
$33 = ((($32)) + 48|0);
$34 = ((($33)) + 4|0);
$35 = HEAP32[$34>>2]|0;
STACKTOP = sp;return ($35|0);
}
function _ec_pow2($w,$b,$ctx) {
$w = $w|0;
$b = $b|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $b;
$2 = $ctx;
$3 = $0;
$4 = $1;
$5 = $1;
$6 = $2;
_ec_mulm($3,$4,$5,$6);
STACKTOP = sp;return;
}
function _ec_subm($w,$u,$v,$ec) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$ec = $ec|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $ec;
$4 = $0;
$5 = $1;
$6 = $2;
__gcry_mpi_sub($4,$5,$6);
STACKTOP = sp;return;
}
function _ec_addm($w,$u,$v,$ctx) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $ctx;
$4 = $0;
$5 = $1;
$6 = $2;
__gcry_mpi_add($4,$5,$6);
$7 = $0;
$8 = $3;
_ec_mod($7,$8);
STACKTOP = sp;return;
}
function _ec_powm($w,$b,$e,$ctx) {
$w = $w|0;
$b = $b|0;
$e = $e|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $b;
$2 = $e;
$3 = $ctx;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = ((($7)) + 16|0);
$9 = HEAP32[$8>>2]|0;
__gcry_mpi_powm($4,$5,$6,$9);
STACKTOP = sp;return;
}
function _ec_mul2($w,$u,$ctx) {
$w = $w|0;
$u = $u|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $ctx;
$3 = $0;
$4 = $1;
__gcry_mpi_lshift($3,$4,1);
$5 = $0;
$6 = $2;
_ec_mod($5,$6);
STACKTOP = sp;return;
}
function _dup_point_montgomery($result,$point,$ctx) {
$result = $result|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $result;
$1 = $point;
$2 = $ctx;
HEAP32[$vararg_buffer>>2] = 45782;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 45730;
__gcry_log_fatal(45756,$vararg_buffer);
// unreachable;
}
function _dup_point_edwards($result,$point,$ctx) {
$result = $result|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $point;
$2 = $ctx;
$3 = $2;
$4 = ((($3)) + 48|0);
$5 = ((($4)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = $1;
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
$12 = $2;
_ec_addm($6,$8,$11,$12);
$13 = $2;
$14 = ((($13)) + 48|0);
$15 = ((($14)) + 16|0);
$16 = HEAP32[$15>>2]|0;
$17 = $2;
$18 = ((($17)) + 48|0);
$19 = ((($18)) + 16|0);
$20 = HEAP32[$19>>2]|0;
$21 = $2;
_ec_pow2($16,$20,$21);
$22 = $2;
$23 = ((($22)) + 48|0);
$24 = ((($23)) + 16|0);
$25 = ((($24)) + 4|0);
$26 = HEAP32[$25>>2]|0;
$27 = $1;
$28 = HEAP32[$27>>2]|0;
$29 = $2;
_ec_pow2($26,$28,$29);
$30 = $2;
$31 = ((($30)) + 48|0);
$32 = ((($31)) + 16|0);
$33 = ((($32)) + 8|0);
$34 = HEAP32[$33>>2]|0;
$35 = $1;
$36 = ((($35)) + 4|0);
$37 = HEAP32[$36>>2]|0;
$38 = $2;
_ec_pow2($34,$37,$38);
$39 = $2;
$40 = ((($39)) + 4|0);
$41 = HEAP32[$40>>2]|0;
$42 = ($41|0)==(1);
$43 = $2;
$44 = ((($43)) + 48|0);
$45 = ((($44)) + 16|0);
$46 = ((($45)) + 12|0);
$47 = HEAP32[$46>>2]|0;
$48 = $2;
if ($42) {
$49 = ((($48)) + 48|0);
$50 = ((($49)) + 16|0);
$51 = ((($50)) + 4|0);
$52 = HEAP32[$51>>2]|0;
(__gcry_mpi_set($47,$52)|0);
$53 = $2;
$54 = ((($53)) + 48|0);
$55 = ((($54)) + 16|0);
$56 = ((($55)) + 12|0);
$57 = HEAP32[$56>>2]|0;
$58 = $2;
$59 = ((($58)) + 48|0);
$60 = ((($59)) + 16|0);
$61 = ((($60)) + 12|0);
$62 = HEAP32[$61>>2]|0;
__gcry_mpi_neg($57,$62);
} else {
$63 = ((($48)) + 20|0);
$64 = HEAP32[$63>>2]|0;
$65 = $2;
$66 = ((($65)) + 48|0);
$67 = ((($66)) + 16|0);
$68 = ((($67)) + 4|0);
$69 = HEAP32[$68>>2]|0;
$70 = $2;
_ec_mulm($47,$64,$69,$70);
}
$71 = $2;
$72 = ((($71)) + 48|0);
$73 = ((($72)) + 16|0);
$74 = ((($73)) + 16|0);
$75 = HEAP32[$74>>2]|0;
$76 = $2;
$77 = ((($76)) + 48|0);
$78 = ((($77)) + 16|0);
$79 = ((($78)) + 12|0);
$80 = HEAP32[$79>>2]|0;
$81 = $2;
$82 = ((($81)) + 48|0);
$83 = ((($82)) + 16|0);
$84 = ((($83)) + 8|0);
$85 = HEAP32[$84>>2]|0;
$86 = $2;
_ec_addm($75,$80,$85,$86);
$87 = $2;
$88 = ((($87)) + 48|0);
$89 = ((($88)) + 16|0);
$90 = ((($89)) + 20|0);
$91 = HEAP32[$90>>2]|0;
$92 = $1;
$93 = ((($92)) + 8|0);
$94 = HEAP32[$93>>2]|0;
$95 = $2;
_ec_pow2($91,$94,$95);
$96 = $2;
$97 = ((($96)) + 48|0);
$98 = ((($97)) + 16|0);
$99 = ((($98)) + 24|0);
$100 = HEAP32[$99>>2]|0;
$101 = $2;
$102 = ((($101)) + 48|0);
$103 = ((($102)) + 16|0);
$104 = ((($103)) + 20|0);
$105 = HEAP32[$104>>2]|0;
$106 = $2;
_ec_mul2($100,$105,$106);
$107 = $2;
$108 = ((($107)) + 48|0);
$109 = ((($108)) + 16|0);
$110 = ((($109)) + 24|0);
$111 = HEAP32[$110>>2]|0;
$112 = $2;
$113 = ((($112)) + 48|0);
$114 = ((($113)) + 16|0);
$115 = ((($114)) + 16|0);
$116 = HEAP32[$115>>2]|0;
$117 = $2;
$118 = ((($117)) + 48|0);
$119 = ((($118)) + 16|0);
$120 = ((($119)) + 24|0);
$121 = HEAP32[$120>>2]|0;
$122 = $2;
_ec_subm($111,$116,$121,$122);
$123 = $0;
$124 = HEAP32[$123>>2]|0;
$125 = $2;
$126 = ((($125)) + 48|0);
$127 = ((($126)) + 16|0);
$128 = HEAP32[$127>>2]|0;
$129 = $2;
$130 = ((($129)) + 48|0);
$131 = ((($130)) + 16|0);
$132 = ((($131)) + 4|0);
$133 = HEAP32[$132>>2]|0;
$134 = $2;
_ec_subm($124,$128,$133,$134);
$135 = $0;
$136 = HEAP32[$135>>2]|0;
$137 = $0;
$138 = HEAP32[$137>>2]|0;
$139 = $2;
$140 = ((($139)) + 48|0);
$141 = ((($140)) + 16|0);
$142 = ((($141)) + 8|0);
$143 = HEAP32[$142>>2]|0;
$144 = $2;
_ec_subm($136,$138,$143,$144);
$145 = $0;
$146 = HEAP32[$145>>2]|0;
$147 = $0;
$148 = HEAP32[$147>>2]|0;
$149 = $2;
$150 = ((($149)) + 48|0);
$151 = ((($150)) + 16|0);
$152 = ((($151)) + 24|0);
$153 = HEAP32[$152>>2]|0;
$154 = $2;
_ec_mulm($146,$148,$153,$154);
$155 = $0;
$156 = ((($155)) + 4|0);
$157 = HEAP32[$156>>2]|0;
$158 = $2;
$159 = ((($158)) + 48|0);
$160 = ((($159)) + 16|0);
$161 = ((($160)) + 12|0);
$162 = HEAP32[$161>>2]|0;
$163 = $2;
$164 = ((($163)) + 48|0);
$165 = ((($164)) + 16|0);
$166 = ((($165)) + 8|0);
$167 = HEAP32[$166>>2]|0;
$168 = $2;
_ec_subm($157,$162,$167,$168);
$169 = $0;
$170 = ((($169)) + 4|0);
$171 = HEAP32[$170>>2]|0;
$172 = $0;
$173 = ((($172)) + 4|0);
$174 = HEAP32[$173>>2]|0;
$175 = $2;
$176 = ((($175)) + 48|0);
$177 = ((($176)) + 16|0);
$178 = ((($177)) + 16|0);
$179 = HEAP32[$178>>2]|0;
$180 = $2;
_ec_mulm($171,$174,$179,$180);
$181 = $0;
$182 = ((($181)) + 8|0);
$183 = HEAP32[$182>>2]|0;
$184 = $2;
$185 = ((($184)) + 48|0);
$186 = ((($185)) + 16|0);
$187 = ((($186)) + 16|0);
$188 = HEAP32[$187>>2]|0;
$189 = $2;
$190 = ((($189)) + 48|0);
$191 = ((($190)) + 16|0);
$192 = ((($191)) + 24|0);
$193 = HEAP32[$192>>2]|0;
$194 = $2;
_ec_mulm($183,$188,$193,$194);
STACKTOP = sp;return;
}
function __gcry_mpi_ec_add_points($result,$p1,$p2,$ctx) {
$result = $result|0;
$p1 = $p1|0;
$p2 = $p2|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $p1;
$2 = $p2;
$3 = $ctx;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
switch ($5|0) {
case 0: {
$6 = $0;
$7 = $1;
$8 = $2;
$9 = $3;
_add_points_weierstrass($6,$7,$8,$9);
STACKTOP = sp;return;
break;
}
case 1: {
$10 = $0;
$11 = $1;
$12 = $2;
$13 = $3;
_add_points_montgomery($10,$11,$12,$13);
STACKTOP = sp;return;
break;
}
case 2: {
$14 = $0;
$15 = $1;
$16 = $2;
$17 = $3;
_add_points_edwards($14,$15,$16,$17);
STACKTOP = sp;return;
break;
}
default: {
STACKTOP = sp;return;
}
}
}
function _add_points_weierstrass($result,$p1,$p2,$ctx) {
$result = $result|0;
$p1 = $p1|0;
$p2 = $p2|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $z1_is_one = 0, $z2_is_one = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $p1;
$2 = $p2;
$3 = $ctx;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
$6 = $2;
$7 = HEAP32[$6>>2]|0;
$8 = (__gcry_mpi_cmp($5,$7)|0);
$9 = ($8|0)!=(0);
if (!($9)) {
$10 = $1;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = $2;
$14 = ((($13)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = (__gcry_mpi_cmp($12,$15)|0);
$17 = ($16|0)!=(0);
if (!($17)) {
$18 = $1;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = $2;
$22 = ((($21)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = (__gcry_mpi_cmp($20,$23)|0);
$25 = ($24|0)!=(0);
if (!($25)) {
$26 = $0;
$27 = $1;
$28 = $3;
__gcry_mpi_ec_dup_point($26,$27,$28);
STACKTOP = sp;return;
}
}
}
$29 = $1;
$30 = ((($29)) + 8|0);
$31 = HEAP32[$30>>2]|0;
$32 = (__gcry_mpi_cmp_ui($31,0)|0);
$33 = ($32|0)!=(0);
if (!($33)) {
$34 = $0;
$35 = HEAP32[$34>>2]|0;
$36 = $2;
$37 = HEAP32[$36>>2]|0;
(__gcry_mpi_set($35,$37)|0);
$38 = $0;
$39 = ((($38)) + 4|0);
$40 = HEAP32[$39>>2]|0;
$41 = $2;
$42 = ((($41)) + 4|0);
$43 = HEAP32[$42>>2]|0;
(__gcry_mpi_set($40,$43)|0);
$44 = $0;
$45 = ((($44)) + 8|0);
$46 = HEAP32[$45>>2]|0;
$47 = $2;
$48 = ((($47)) + 8|0);
$49 = HEAP32[$48>>2]|0;
(__gcry_mpi_set($46,$49)|0);
STACKTOP = sp;return;
}
$50 = $2;
$51 = ((($50)) + 8|0);
$52 = HEAP32[$51>>2]|0;
$53 = (__gcry_mpi_cmp_ui($52,0)|0);
$54 = ($53|0)!=(0);
if (!($54)) {
$55 = $0;
$56 = HEAP32[$55>>2]|0;
$57 = $1;
$58 = HEAP32[$57>>2]|0;
(__gcry_mpi_set($56,$58)|0);
$59 = $0;
$60 = ((($59)) + 4|0);
$61 = HEAP32[$60>>2]|0;
$62 = $1;
$63 = ((($62)) + 4|0);
$64 = HEAP32[$63>>2]|0;
(__gcry_mpi_set($61,$64)|0);
$65 = $0;
$66 = ((($65)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = $1;
$69 = ((($68)) + 8|0);
$70 = HEAP32[$69>>2]|0;
(__gcry_mpi_set($67,$70)|0);
STACKTOP = sp;return;
}
$71 = $1;
$72 = ((($71)) + 8|0);
$73 = HEAP32[$72>>2]|0;
$74 = (__gcry_mpi_cmp_ui($73,1)|0);
$75 = ($74|0)!=(0);
$76 = $75 ^ 1;
$77 = $76&1;
$z1_is_one = $77;
$78 = $2;
$79 = ((($78)) + 8|0);
$80 = HEAP32[$79>>2]|0;
$81 = (__gcry_mpi_cmp_ui($80,1)|0);
$82 = ($81|0)!=(0);
$83 = $82 ^ 1;
$84 = $83&1;
$z2_is_one = $84;
$85 = $z2_is_one;
$86 = ($85|0)!=(0);
$87 = $3;
$88 = ((($87)) + 48|0);
$89 = ((($88)) + 16|0);
$90 = HEAP32[$89>>2]|0;
if ($86) {
$91 = $1;
$92 = HEAP32[$91>>2]|0;
(__gcry_mpi_set($90,$92)|0);
} else {
$93 = $2;
$94 = ((($93)) + 8|0);
$95 = HEAP32[$94>>2]|0;
$96 = $3;
_ec_pow2($90,$95,$96);
$97 = $3;
$98 = ((($97)) + 48|0);
$99 = ((($98)) + 16|0);
$100 = HEAP32[$99>>2]|0;
$101 = $3;
$102 = ((($101)) + 48|0);
$103 = ((($102)) + 16|0);
$104 = HEAP32[$103>>2]|0;
$105 = $1;
$106 = HEAP32[$105>>2]|0;
$107 = $3;
_ec_mulm($100,$104,$106,$107);
}
$108 = $z1_is_one;
$109 = ($108|0)!=(0);
$110 = $3;
$111 = ((($110)) + 48|0);
$112 = ((($111)) + 16|0);
$113 = ((($112)) + 4|0);
$114 = HEAP32[$113>>2]|0;
if ($109) {
$115 = $2;
$116 = HEAP32[$115>>2]|0;
(__gcry_mpi_set($114,$116)|0);
} else {
$117 = $1;
$118 = ((($117)) + 8|0);
$119 = HEAP32[$118>>2]|0;
$120 = $3;
_ec_pow2($114,$119,$120);
$121 = $3;
$122 = ((($121)) + 48|0);
$123 = ((($122)) + 16|0);
$124 = ((($123)) + 4|0);
$125 = HEAP32[$124>>2]|0;
$126 = $3;
$127 = ((($126)) + 48|0);
$128 = ((($127)) + 16|0);
$129 = ((($128)) + 4|0);
$130 = HEAP32[$129>>2]|0;
$131 = $2;
$132 = HEAP32[$131>>2]|0;
$133 = $3;
_ec_mulm($125,$130,$132,$133);
}
$134 = $3;
$135 = ((($134)) + 48|0);
$136 = ((($135)) + 16|0);
$137 = ((($136)) + 8|0);
$138 = HEAP32[$137>>2]|0;
$139 = $3;
$140 = ((($139)) + 48|0);
$141 = ((($140)) + 16|0);
$142 = HEAP32[$141>>2]|0;
$143 = $3;
$144 = ((($143)) + 48|0);
$145 = ((($144)) + 16|0);
$146 = ((($145)) + 4|0);
$147 = HEAP32[$146>>2]|0;
$148 = $3;
_ec_subm($138,$142,$147,$148);
$149 = $3;
$150 = ((($149)) + 48|0);
$151 = ((($150)) + 16|0);
$152 = ((($151)) + 12|0);
$153 = HEAP32[$152>>2]|0;
$154 = $2;
$155 = ((($154)) + 8|0);
$156 = HEAP32[$155>>2]|0;
$157 = (__gcry_mpi_const(3)|0);
$158 = $3;
_ec_powm($153,$156,$157,$158);
$159 = $3;
$160 = ((($159)) + 48|0);
$161 = ((($160)) + 16|0);
$162 = ((($161)) + 12|0);
$163 = HEAP32[$162>>2]|0;
$164 = $3;
$165 = ((($164)) + 48|0);
$166 = ((($165)) + 16|0);
$167 = ((($166)) + 12|0);
$168 = HEAP32[$167>>2]|0;
$169 = $1;
$170 = ((($169)) + 4|0);
$171 = HEAP32[$170>>2]|0;
$172 = $3;
_ec_mulm($163,$168,$171,$172);
$173 = $3;
$174 = ((($173)) + 48|0);
$175 = ((($174)) + 16|0);
$176 = ((($175)) + 16|0);
$177 = HEAP32[$176>>2]|0;
$178 = $1;
$179 = ((($178)) + 8|0);
$180 = HEAP32[$179>>2]|0;
$181 = (__gcry_mpi_const(3)|0);
$182 = $3;
_ec_powm($177,$180,$181,$182);
$183 = $3;
$184 = ((($183)) + 48|0);
$185 = ((($184)) + 16|0);
$186 = ((($185)) + 16|0);
$187 = HEAP32[$186>>2]|0;
$188 = $3;
$189 = ((($188)) + 48|0);
$190 = ((($189)) + 16|0);
$191 = ((($190)) + 16|0);
$192 = HEAP32[$191>>2]|0;
$193 = $2;
$194 = ((($193)) + 4|0);
$195 = HEAP32[$194>>2]|0;
$196 = $3;
_ec_mulm($187,$192,$195,$196);
$197 = $3;
$198 = ((($197)) + 48|0);
$199 = ((($198)) + 16|0);
$200 = ((($199)) + 20|0);
$201 = HEAP32[$200>>2]|0;
$202 = $3;
$203 = ((($202)) + 48|0);
$204 = ((($203)) + 16|0);
$205 = ((($204)) + 12|0);
$206 = HEAP32[$205>>2]|0;
$207 = $3;
$208 = ((($207)) + 48|0);
$209 = ((($208)) + 16|0);
$210 = ((($209)) + 16|0);
$211 = HEAP32[$210>>2]|0;
$212 = $3;
_ec_subm($201,$206,$211,$212);
$213 = $3;
$214 = ((($213)) + 48|0);
$215 = ((($214)) + 16|0);
$216 = ((($215)) + 8|0);
$217 = HEAP32[$216>>2]|0;
$218 = (__gcry_mpi_cmp_ui($217,0)|0);
$219 = ($218|0)!=(0);
$220 = $3;
$221 = ((($220)) + 48|0);
$222 = ((($221)) + 16|0);
if ($219) {
$237 = ((($222)) + 24|0);
$238 = HEAP32[$237>>2]|0;
$239 = $3;
$240 = ((($239)) + 48|0);
$241 = ((($240)) + 16|0);
$242 = HEAP32[$241>>2]|0;
$243 = $3;
$244 = ((($243)) + 48|0);
$245 = ((($244)) + 16|0);
$246 = ((($245)) + 4|0);
$247 = HEAP32[$246>>2]|0;
$248 = $3;
_ec_addm($238,$242,$247,$248);
$249 = $3;
$250 = ((($249)) + 48|0);
$251 = ((($250)) + 16|0);
$252 = ((($251)) + 28|0);
$253 = HEAP32[$252>>2]|0;
$254 = $3;
$255 = ((($254)) + 48|0);
$256 = ((($255)) + 16|0);
$257 = ((($256)) + 12|0);
$258 = HEAP32[$257>>2]|0;
$259 = $3;
$260 = ((($259)) + 48|0);
$261 = ((($260)) + 16|0);
$262 = ((($261)) + 16|0);
$263 = HEAP32[$262>>2]|0;
$264 = $3;
_ec_addm($253,$258,$263,$264);
$265 = $0;
$266 = ((($265)) + 8|0);
$267 = HEAP32[$266>>2]|0;
$268 = $1;
$269 = ((($268)) + 8|0);
$270 = HEAP32[$269>>2]|0;
$271 = $2;
$272 = ((($271)) + 8|0);
$273 = HEAP32[$272>>2]|0;
$274 = $3;
_ec_mulm($267,$270,$273,$274);
$275 = $0;
$276 = ((($275)) + 8|0);
$277 = HEAP32[$276>>2]|0;
$278 = $0;
$279 = ((($278)) + 8|0);
$280 = HEAP32[$279>>2]|0;
$281 = $3;
$282 = ((($281)) + 48|0);
$283 = ((($282)) + 16|0);
$284 = ((($283)) + 8|0);
$285 = HEAP32[$284>>2]|0;
$286 = $3;
_ec_mulm($277,$280,$285,$286);
$287 = $3;
$288 = ((($287)) + 48|0);
$289 = ((($288)) + 16|0);
$290 = ((($289)) + 36|0);
$291 = HEAP32[$290>>2]|0;
$292 = $3;
$293 = ((($292)) + 48|0);
$294 = ((($293)) + 16|0);
$295 = ((($294)) + 20|0);
$296 = HEAP32[$295>>2]|0;
$297 = $3;
_ec_pow2($291,$296,$297);
$298 = $3;
$299 = ((($298)) + 48|0);
$300 = ((($299)) + 16|0);
$301 = ((($300)) + 40|0);
$302 = HEAP32[$301>>2]|0;
$303 = $3;
$304 = ((($303)) + 48|0);
$305 = ((($304)) + 16|0);
$306 = ((($305)) + 8|0);
$307 = HEAP32[$306>>2]|0;
$308 = $3;
_ec_pow2($302,$307,$308);
$309 = $3;
$310 = ((($309)) + 48|0);
$311 = ((($310)) + 16|0);
$312 = ((($311)) + 40|0);
$313 = HEAP32[$312>>2]|0;
$314 = $3;
$315 = ((($314)) + 48|0);
$316 = ((($315)) + 16|0);
$317 = ((($316)) + 40|0);
$318 = HEAP32[$317>>2]|0;
$319 = $3;
$320 = ((($319)) + 48|0);
$321 = ((($320)) + 16|0);
$322 = ((($321)) + 24|0);
$323 = HEAP32[$322>>2]|0;
$324 = $3;
_ec_mulm($313,$318,$323,$324);
$325 = $0;
$326 = HEAP32[$325>>2]|0;
$327 = $3;
$328 = ((($327)) + 48|0);
$329 = ((($328)) + 16|0);
$330 = ((($329)) + 36|0);
$331 = HEAP32[$330>>2]|0;
$332 = $3;
$333 = ((($332)) + 48|0);
$334 = ((($333)) + 16|0);
$335 = ((($334)) + 40|0);
$336 = HEAP32[$335>>2]|0;
$337 = $3;
_ec_subm($326,$331,$336,$337);
$338 = $3;
$339 = ((($338)) + 48|0);
$340 = ((($339)) + 16|0);
$341 = ((($340)) + 36|0);
$342 = HEAP32[$341>>2]|0;
$343 = $0;
$344 = HEAP32[$343>>2]|0;
$345 = $3;
_ec_mul2($342,$344,$345);
$346 = $3;
$347 = ((($346)) + 48|0);
$348 = ((($347)) + 16|0);
$349 = ((($348)) + 32|0);
$350 = HEAP32[$349>>2]|0;
$351 = $3;
$352 = ((($351)) + 48|0);
$353 = ((($352)) + 16|0);
$354 = ((($353)) + 40|0);
$355 = HEAP32[$354>>2]|0;
$356 = $3;
$357 = ((($356)) + 48|0);
$358 = ((($357)) + 16|0);
$359 = ((($358)) + 36|0);
$360 = HEAP32[$359>>2]|0;
$361 = $3;
_ec_subm($350,$355,$360,$361);
$362 = $3;
$363 = ((($362)) + 48|0);
$364 = ((($363)) + 16|0);
$365 = ((($364)) + 32|0);
$366 = HEAP32[$365>>2]|0;
$367 = $3;
$368 = ((($367)) + 48|0);
$369 = ((($368)) + 16|0);
$370 = ((($369)) + 32|0);
$371 = HEAP32[$370>>2]|0;
$372 = $3;
$373 = ((($372)) + 48|0);
$374 = ((($373)) + 16|0);
$375 = ((($374)) + 20|0);
$376 = HEAP32[$375>>2]|0;
$377 = $3;
_ec_mulm($366,$371,$376,$377);
$378 = $3;
$379 = ((($378)) + 48|0);
$380 = ((($379)) + 16|0);
$381 = ((($380)) + 36|0);
$382 = HEAP32[$381>>2]|0;
$383 = $3;
$384 = ((($383)) + 48|0);
$385 = ((($384)) + 16|0);
$386 = ((($385)) + 8|0);
$387 = HEAP32[$386>>2]|0;
$388 = (__gcry_mpi_const(3)|0);
$389 = $3;
_ec_powm($382,$387,$388,$389);
$390 = $3;
$391 = ((($390)) + 48|0);
$392 = ((($391)) + 16|0);
$393 = ((($392)) + 36|0);
$394 = HEAP32[$393>>2]|0;
$395 = $3;
$396 = ((($395)) + 48|0);
$397 = ((($396)) + 16|0);
$398 = ((($397)) + 36|0);
$399 = HEAP32[$398>>2]|0;
$400 = $3;
$401 = ((($400)) + 48|0);
$402 = ((($401)) + 16|0);
$403 = ((($402)) + 28|0);
$404 = HEAP32[$403>>2]|0;
$405 = $3;
_ec_mulm($394,$399,$404,$405);
$406 = $0;
$407 = ((($406)) + 4|0);
$408 = HEAP32[$407>>2]|0;
$409 = $3;
$410 = ((($409)) + 48|0);
$411 = ((($410)) + 16|0);
$412 = ((($411)) + 32|0);
$413 = HEAP32[$412>>2]|0;
$414 = $3;
$415 = ((($414)) + 48|0);
$416 = ((($415)) + 16|0);
$417 = ((($416)) + 36|0);
$418 = HEAP32[$417>>2]|0;
$419 = $3;
_ec_subm($408,$413,$418,$419);
$420 = $0;
$421 = ((($420)) + 4|0);
$422 = HEAP32[$421>>2]|0;
$423 = $0;
$424 = ((($423)) + 4|0);
$425 = HEAP32[$424>>2]|0;
$426 = $3;
$427 = (_ec_get_two_inv_p($426)|0);
$428 = $3;
_ec_mulm($422,$425,$427,$428);
STACKTOP = sp;return;
}
$223 = ((($222)) + 20|0);
$224 = HEAP32[$223>>2]|0;
$225 = (__gcry_mpi_cmp_ui($224,0)|0);
$226 = ($225|0)!=(0);
$227 = $0;
if ($226) {
$230 = HEAP32[$227>>2]|0;
(__gcry_mpi_set_ui($230,1)|0);
$231 = $0;
$232 = ((($231)) + 4|0);
$233 = HEAP32[$232>>2]|0;
(__gcry_mpi_set_ui($233,1)|0);
$234 = $0;
$235 = ((($234)) + 8|0);
$236 = HEAP32[$235>>2]|0;
(__gcry_mpi_set_ui($236,0)|0);
STACKTOP = sp;return;
} else {
$228 = $1;
$229 = $3;
__gcry_mpi_ec_dup_point($227,$228,$229);
STACKTOP = sp;return;
}
}
function _ec_get_two_inv_p($ec) {
$ec = $ec|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ec;
$1 = $0;
$2 = ((($1)) + 48|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3&255) >>> 1;
$5 = $4 & 1;
$6 = $5&255;
$7 = ($6|0)!=(0);
if ($7) {
$28 = $0;
$29 = ((($28)) + 48|0);
$30 = ((($29)) + 8|0);
$31 = HEAP32[$30>>2]|0;
STACKTOP = sp;return ($31|0);
}
$8 = $0;
$9 = ((($8)) + 48|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10 & -3;
$12 = $11 | 2;
HEAP8[$9>>0] = $12;
$13 = $0;
$14 = ((($13)) + 48|0);
$15 = ((($14)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)!=(0|0);
if (!($17)) {
$18 = (__gcry_mpi_alloc(0)|0);
$19 = $0;
$20 = ((($19)) + 48|0);
$21 = ((($20)) + 8|0);
HEAP32[$21>>2] = $18;
}
$22 = $0;
$23 = ((($22)) + 48|0);
$24 = ((($23)) + 8|0);
$25 = HEAP32[$24>>2]|0;
$26 = (__gcry_mpi_const(2)|0);
$27 = $0;
_ec_invm($25,$26,$27);
$28 = $0;
$29 = ((($28)) + 48|0);
$30 = ((($29)) + 8|0);
$31 = HEAP32[$30>>2]|0;
STACKTOP = sp;return ($31|0);
}
function _add_points_montgomery($result,$p1,$p2,$ctx) {
$result = $result|0;
$p1 = $p1|0;
$p2 = $p2|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $result;
$1 = $p1;
$2 = $p2;
$3 = $ctx;
HEAP32[$vararg_buffer>>2] = 45805;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 45730;
__gcry_log_fatal(45756,$vararg_buffer);
// unreachable;
}
function _add_points_edwards($result,$p1,$p2,$ctx) {
$result = $result|0;
$p1 = $p1|0;
$p2 = $p2|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0;
var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0;
var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $result;
$1 = $p1;
$2 = $p2;
$3 = $ctx;
$4 = $3;
$5 = ((($4)) + 48|0);
$6 = ((($5)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$8 = $1;
$9 = ((($8)) + 8|0);
$10 = HEAP32[$9>>2]|0;
$11 = $2;
$12 = ((($11)) + 8|0);
$13 = HEAP32[$12>>2]|0;
$14 = $3;
_ec_mulm($7,$10,$13,$14);
$15 = $3;
$16 = ((($15)) + 48|0);
$17 = ((($16)) + 16|0);
$18 = ((($17)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = $3;
$21 = ((($20)) + 48|0);
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$24 = $3;
_ec_pow2($19,$23,$24);
$25 = $3;
$26 = ((($25)) + 48|0);
$27 = ((($26)) + 16|0);
$28 = ((($27)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$30 = $1;
$31 = HEAP32[$30>>2]|0;
$32 = $2;
$33 = HEAP32[$32>>2]|0;
$34 = $3;
_ec_mulm($29,$31,$33,$34);
$35 = $3;
$36 = ((($35)) + 48|0);
$37 = ((($36)) + 16|0);
$38 = ((($37)) + 12|0);
$39 = HEAP32[$38>>2]|0;
$40 = $1;
$41 = ((($40)) + 4|0);
$42 = HEAP32[$41>>2]|0;
$43 = $2;
$44 = ((($43)) + 4|0);
$45 = HEAP32[$44>>2]|0;
$46 = $3;
_ec_mulm($39,$42,$45,$46);
$47 = $3;
$48 = ((($47)) + 48|0);
$49 = ((($48)) + 16|0);
$50 = ((($49)) + 16|0);
$51 = HEAP32[$50>>2]|0;
$52 = $3;
$53 = ((($52)) + 24|0);
$54 = HEAP32[$53>>2]|0;
$55 = $3;
$56 = ((($55)) + 48|0);
$57 = ((($56)) + 16|0);
$58 = ((($57)) + 8|0);
$59 = HEAP32[$58>>2]|0;
$60 = $3;
_ec_mulm($51,$54,$59,$60);
$61 = $3;
$62 = ((($61)) + 48|0);
$63 = ((($62)) + 16|0);
$64 = ((($63)) + 16|0);
$65 = HEAP32[$64>>2]|0;
$66 = $3;
$67 = ((($66)) + 48|0);
$68 = ((($67)) + 16|0);
$69 = ((($68)) + 16|0);
$70 = HEAP32[$69>>2]|0;
$71 = $3;
$72 = ((($71)) + 48|0);
$73 = ((($72)) + 16|0);
$74 = ((($73)) + 12|0);
$75 = HEAP32[$74>>2]|0;
$76 = $3;
_ec_mulm($65,$70,$75,$76);
$77 = $3;
$78 = ((($77)) + 48|0);
$79 = ((($78)) + 16|0);
$80 = ((($79)) + 20|0);
$81 = HEAP32[$80>>2]|0;
$82 = $3;
$83 = ((($82)) + 48|0);
$84 = ((($83)) + 16|0);
$85 = ((($84)) + 4|0);
$86 = HEAP32[$85>>2]|0;
$87 = $3;
$88 = ((($87)) + 48|0);
$89 = ((($88)) + 16|0);
$90 = ((($89)) + 16|0);
$91 = HEAP32[$90>>2]|0;
$92 = $3;
_ec_subm($81,$86,$91,$92);
$93 = $3;
$94 = ((($93)) + 48|0);
$95 = ((($94)) + 16|0);
$96 = ((($95)) + 24|0);
$97 = HEAP32[$96>>2]|0;
$98 = $3;
$99 = ((($98)) + 48|0);
$100 = ((($99)) + 16|0);
$101 = ((($100)) + 4|0);
$102 = HEAP32[$101>>2]|0;
$103 = $3;
$104 = ((($103)) + 48|0);
$105 = ((($104)) + 16|0);
$106 = ((($105)) + 16|0);
$107 = HEAP32[$106>>2]|0;
$108 = $3;
_ec_addm($97,$102,$107,$108);
$109 = $3;
$110 = ((($109)) + 48|0);
$111 = ((($110)) + 16|0);
$112 = ((($111)) + 28|0);
$113 = HEAP32[$112>>2]|0;
$114 = $1;
$115 = HEAP32[$114>>2]|0;
$116 = $1;
$117 = ((($116)) + 4|0);
$118 = HEAP32[$117>>2]|0;
$119 = $3;
_ec_addm($113,$115,$118,$119);
$120 = $0;
$121 = HEAP32[$120>>2]|0;
$122 = $2;
$123 = HEAP32[$122>>2]|0;
$124 = $2;
$125 = ((($124)) + 4|0);
$126 = HEAP32[$125>>2]|0;
$127 = $3;
_ec_addm($121,$123,$126,$127);
$128 = $0;
$129 = HEAP32[$128>>2]|0;
$130 = $0;
$131 = HEAP32[$130>>2]|0;
$132 = $3;
$133 = ((($132)) + 48|0);
$134 = ((($133)) + 16|0);
$135 = ((($134)) + 28|0);
$136 = HEAP32[$135>>2]|0;
$137 = $3;
_ec_mulm($129,$131,$136,$137);
$138 = $0;
$139 = HEAP32[$138>>2]|0;
$140 = $0;
$141 = HEAP32[$140>>2]|0;
$142 = $3;
$143 = ((($142)) + 48|0);
$144 = ((($143)) + 16|0);
$145 = ((($144)) + 8|0);
$146 = HEAP32[$145>>2]|0;
$147 = $3;
_ec_subm($139,$141,$146,$147);
$148 = $0;
$149 = HEAP32[$148>>2]|0;
$150 = $0;
$151 = HEAP32[$150>>2]|0;
$152 = $3;
$153 = ((($152)) + 48|0);
$154 = ((($153)) + 16|0);
$155 = ((($154)) + 12|0);
$156 = HEAP32[$155>>2]|0;
$157 = $3;
_ec_subm($149,$151,$156,$157);
$158 = $0;
$159 = HEAP32[$158>>2]|0;
$160 = $0;
$161 = HEAP32[$160>>2]|0;
$162 = $3;
$163 = ((($162)) + 48|0);
$164 = ((($163)) + 16|0);
$165 = ((($164)) + 20|0);
$166 = HEAP32[$165>>2]|0;
$167 = $3;
_ec_mulm($159,$161,$166,$167);
$168 = $0;
$169 = HEAP32[$168>>2]|0;
$170 = $0;
$171 = HEAP32[$170>>2]|0;
$172 = $3;
$173 = ((($172)) + 48|0);
$174 = ((($173)) + 16|0);
$175 = HEAP32[$174>>2]|0;
$176 = $3;
_ec_mulm($169,$171,$175,$176);
$177 = $3;
$178 = ((($177)) + 4|0);
$179 = HEAP32[$178>>2]|0;
$180 = ($179|0)==(1);
$181 = $0;
$182 = ((($181)) + 4|0);
$183 = HEAP32[$182>>2]|0;
$184 = $3;
if ($180) {
$185 = ((($184)) + 48|0);
$186 = ((($185)) + 16|0);
$187 = ((($186)) + 8|0);
$188 = HEAP32[$187>>2]|0;
(__gcry_mpi_set($183,$188)|0);
$189 = $0;
$190 = ((($189)) + 4|0);
$191 = HEAP32[$190>>2]|0;
$192 = $0;
$193 = ((($192)) + 4|0);
$194 = HEAP32[$193>>2]|0;
__gcry_mpi_neg($191,$194);
$195 = $0;
$196 = ((($195)) + 4|0);
$197 = HEAP32[$196>>2]|0;
$198 = $3;
$199 = ((($198)) + 48|0);
$200 = ((($199)) + 16|0);
$201 = ((($200)) + 12|0);
$202 = HEAP32[$201>>2]|0;
$203 = $0;
$204 = ((($203)) + 4|0);
$205 = HEAP32[$204>>2]|0;
$206 = $3;
_ec_subm($197,$202,$205,$206);
$227 = $0;
$228 = ((($227)) + 4|0);
$229 = HEAP32[$228>>2]|0;
$230 = $0;
$231 = ((($230)) + 4|0);
$232 = HEAP32[$231>>2]|0;
$233 = $3;
$234 = ((($233)) + 48|0);
$235 = ((($234)) + 16|0);
$236 = ((($235)) + 24|0);
$237 = HEAP32[$236>>2]|0;
$238 = $3;
_ec_mulm($229,$232,$237,$238);
$239 = $0;
$240 = ((($239)) + 4|0);
$241 = HEAP32[$240>>2]|0;
$242 = $0;
$243 = ((($242)) + 4|0);
$244 = HEAP32[$243>>2]|0;
$245 = $3;
$246 = ((($245)) + 48|0);
$247 = ((($246)) + 16|0);
$248 = HEAP32[$247>>2]|0;
$249 = $3;
_ec_mulm($241,$244,$248,$249);
$250 = $0;
$251 = ((($250)) + 8|0);
$252 = HEAP32[$251>>2]|0;
$253 = $3;
$254 = ((($253)) + 48|0);
$255 = ((($254)) + 16|0);
$256 = ((($255)) + 20|0);
$257 = HEAP32[$256>>2]|0;
$258 = $3;
$259 = ((($258)) + 48|0);
$260 = ((($259)) + 16|0);
$261 = ((($260)) + 24|0);
$262 = HEAP32[$261>>2]|0;
$263 = $3;
_ec_mulm($252,$257,$262,$263);
STACKTOP = sp;return;
} else {
$207 = ((($184)) + 20|0);
$208 = HEAP32[$207>>2]|0;
$209 = $3;
$210 = ((($209)) + 48|0);
$211 = ((($210)) + 16|0);
$212 = ((($211)) + 8|0);
$213 = HEAP32[$212>>2]|0;
$214 = $3;
_ec_mulm($183,$208,$213,$214);
$215 = $0;
$216 = ((($215)) + 4|0);
$217 = HEAP32[$216>>2]|0;
$218 = $3;
$219 = ((($218)) + 48|0);
$220 = ((($219)) + 16|0);
$221 = ((($220)) + 12|0);
$222 = HEAP32[$221>>2]|0;
$223 = $0;
$224 = ((($223)) + 4|0);
$225 = HEAP32[$224>>2]|0;
$226 = $3;
_ec_subm($217,$222,$225,$226);
$227 = $0;
$228 = ((($227)) + 4|0);
$229 = HEAP32[$228>>2]|0;
$230 = $0;
$231 = ((($230)) + 4|0);
$232 = HEAP32[$231>>2]|0;
$233 = $3;
$234 = ((($233)) + 48|0);
$235 = ((($234)) + 16|0);
$236 = ((($235)) + 24|0);
$237 = HEAP32[$236>>2]|0;
$238 = $3;
_ec_mulm($229,$232,$237,$238);
$239 = $0;
$240 = ((($239)) + 4|0);
$241 = HEAP32[$240>>2]|0;
$242 = $0;
$243 = ((($242)) + 4|0);
$244 = HEAP32[$243>>2]|0;
$245 = $3;
$246 = ((($245)) + 48|0);
$247 = ((($246)) + 16|0);
$248 = HEAP32[$247>>2]|0;
$249 = $3;
_ec_mulm($241,$244,$248,$249);
$250 = $0;
$251 = ((($250)) + 8|0);
$252 = HEAP32[$251>>2]|0;
$253 = $3;
$254 = ((($253)) + 48|0);
$255 = ((($254)) + 16|0);
$256 = ((($255)) + 20|0);
$257 = HEAP32[$256>>2]|0;
$258 = $3;
$259 = ((($258)) + 48|0);
$260 = ((($259)) + 16|0);
$261 = ((($260)) + 24|0);
$262 = HEAP32[$261>>2]|0;
$263 = $3;
_ec_mulm($252,$257,$262,$263);
STACKTOP = sp;return;
}
}
function _point_set_1575($d,$s) {
$d = $d|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
(__gcry_mpi_set($3,$5)|0);
$6 = $0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
(__gcry_mpi_set($8,$11)|0);
$12 = $0;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
(__gcry_mpi_set($14,$17)|0);
STACKTOP = sp;return;
}
function __gcry_mpi_ec_mul_point($result,$scalar,$point,$ctx) {
$result = $result|0;
$scalar = $scalar|0;
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0;
var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $h = 0, $i = 0, $j = 0, $j2 = 0, $k = 0, $loops = 0, $nbits = 0;
var $nbits1 = 0, $nlimbs = 0, $p1 = 0, $p1_ = 0, $p1inv = 0, $p2 = 0, $p2_ = 0, $prd = 0, $q1 = 0, $q2 = 0, $sum = 0, $sw = 0, $t = 0, $tmppnt = 0, $x1 = 0, $y1 = 0, $yy = 0, $z1 = 0, $z2 = 0, $z3 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$p1 = sp + 112|0;
$p2 = sp + 100|0;
$p1inv = sp + 88|0;
$tmppnt = sp + 68|0;
$p1_ = sp + 48|0;
$p2_ = sp + 36|0;
$0 = $result;
$1 = $scalar;
$2 = $point;
$3 = $ctx;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(2);
if ($6) {
$7 = $1;
$8 = (__gcry_mpi_get_nbits($7)|0);
$nbits = $8;
$9 = $0;
$10 = HEAP32[$9>>2]|0;
(__gcry_mpi_set_ui($10,0)|0);
$11 = $0;
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
(__gcry_mpi_set_ui($13,1)|0);
$14 = $0;
$15 = ((($14)) + 8|0);
$16 = HEAP32[$15>>2]|0;
(__gcry_mpi_set_ui($16,1)|0);
$17 = $1;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = $1;
$20 = ((($19)) + 12|0);
$21 = HEAP32[$20>>2]|0;
$22 = $21 & 1;
$23 = ($22|0)!=(0);
if ($23) {
__gcry_mpi_point_init($tmppnt);
$24 = $nbits;
$25 = (($24) - 1)|0;
$j = $25;
while(1) {
$26 = $j;
$27 = ($26|0)>=(0);
if (!($27)) {
break;
}
$28 = $0;
$29 = $0;
$30 = $3;
__gcry_mpi_ec_dup_point($28,$29,$30);
$31 = $0;
$32 = $2;
$33 = $3;
__gcry_mpi_ec_add_points($tmppnt,$31,$32,$33);
$34 = $1;
$35 = $j;
$36 = (__gcry_mpi_test_bit($34,$35)|0);
$37 = ($36|0)!=(0);
if ($37) {
$38 = $0;
_point_set_1575($38,$tmppnt);
}
$39 = $j;
$40 = (($39) + -1)|0;
$j = $40;
}
__gcry_mpi_point_free_parts($tmppnt);
STACKTOP = sp;return;
}
}
$41 = $nbits;
$42 = (($41) - 1)|0;
$j = $42;
while(1) {
$43 = $j;
$44 = ($43|0)>=(0);
if (!($44)) {
break;
}
$45 = $0;
$46 = $0;
$47 = $3;
__gcry_mpi_ec_dup_point($45,$46,$47);
$48 = $1;
$49 = $j;
$50 = (__gcry_mpi_test_bit($48,$49)|0);
$51 = ($50|0)!=(0);
if ($51) {
$52 = $0;
$53 = $0;
$54 = $2;
$55 = $3;
__gcry_mpi_ec_add_points($52,$53,$54,$55);
}
$56 = $j;
$57 = (($56) + -1)|0;
$j = $57;
}
STACKTOP = sp;return;
}
$58 = $3;
$59 = HEAP32[$58>>2]|0;
$60 = ($59|0)==(1);
if ($60) {
$61 = $1;
$62 = (__gcry_mpi_get_nbits($61)|0);
$nbits1 = $62;
__gcry_mpi_point_init($p1);
__gcry_mpi_point_init($p2);
__gcry_mpi_point_init($p1_);
__gcry_mpi_point_init($p2_);
$63 = HEAP32[$p1>>2]|0;
(__gcry_mpi_set_ui($63,1)|0);
$64 = HEAP32[$p2>>2]|0;
__gcry_mpi_free($64);
$65 = $2;
$66 = HEAP32[$65>>2]|0;
$67 = (__gcry_mpi_copy($66)|0);
HEAP32[$p2>>2] = $67;
$68 = ((($p2)) + 8|0);
$69 = HEAP32[$68>>2]|0;
(__gcry_mpi_set_ui($69,1)|0);
$70 = $nbits1;
$71 = (($70) + 32)|0;
$72 = (($71) - 1)|0;
$73 = $72<<1;
$74 = (($73>>>0) / 32)&-1;
$75 = (($74) + 1)|0;
$nlimbs = $75;
$76 = HEAP32[$p1>>2]|0;
$77 = $nlimbs;
__gcry_mpi_resize($76,$77);
$78 = ((($p1)) + 8|0);
$79 = HEAP32[$78>>2]|0;
$80 = $nlimbs;
__gcry_mpi_resize($79,$80);
$81 = HEAP32[$p2>>2]|0;
$82 = $nlimbs;
__gcry_mpi_resize($81,$82);
$83 = ((($p2)) + 8|0);
$84 = HEAP32[$83>>2]|0;
$85 = $nlimbs;
__gcry_mpi_resize($84,$85);
$86 = HEAP32[$p1_>>2]|0;
$87 = $nlimbs;
__gcry_mpi_resize($86,$87);
$88 = ((($p1_)) + 8|0);
$89 = HEAP32[$88>>2]|0;
$90 = $nlimbs;
__gcry_mpi_resize($89,$90);
$91 = HEAP32[$p2_>>2]|0;
$92 = $nlimbs;
__gcry_mpi_resize($91,$92);
$93 = ((($p2_)) + 8|0);
$94 = HEAP32[$93>>2]|0;
$95 = $nlimbs;
__gcry_mpi_resize($94,$95);
$q1 = $p1;
$q2 = $p2;
$prd = $p1_;
$sum = $p2_;
$96 = $nbits1;
$97 = (($96) - 1)|0;
$j2 = $97;
while(1) {
$98 = $j2;
$99 = ($98|0)>=(0);
if (!($99)) {
break;
}
$100 = $1;
$101 = $j2;
$102 = (__gcry_mpi_test_bit($100,$101)|0);
$sw = $102;
$103 = $q1;
$104 = HEAP32[$103>>2]|0;
$105 = $q2;
$106 = HEAP32[$105>>2]|0;
$107 = $sw;
__gcry_mpi_swap_cond($104,$106,$107);
$108 = $q1;
$109 = ((($108)) + 8|0);
$110 = HEAP32[$109>>2]|0;
$111 = $q2;
$112 = ((($111)) + 8|0);
$113 = HEAP32[$112>>2]|0;
$114 = $sw;
__gcry_mpi_swap_cond($110,$113,$114);
$115 = $prd;
$116 = $sum;
$117 = $q1;
$118 = $q2;
$119 = $2;
$120 = HEAP32[$119>>2]|0;
$121 = $3;
_montgomery_ladder($115,$116,$117,$118,$120,$121);
$122 = $prd;
$123 = HEAP32[$122>>2]|0;
$124 = $sum;
$125 = HEAP32[$124>>2]|0;
$126 = $sw;
__gcry_mpi_swap_cond($123,$125,$126);
$127 = $prd;
$128 = ((($127)) + 8|0);
$129 = HEAP32[$128>>2]|0;
$130 = $sum;
$131 = ((($130)) + 8|0);
$132 = HEAP32[$131>>2]|0;
$133 = $sw;
__gcry_mpi_swap_cond($129,$132,$133);
$134 = $q1;
$t = $134;
$135 = $prd;
$q1 = $135;
$136 = $t;
$prd = $136;
$137 = $q2;
$t = $137;
$138 = $sum;
$q2 = $138;
$139 = $t;
$sum = $139;
$140 = $j2;
$141 = (($140) + -1)|0;
$j2 = $141;
}
$142 = $0;
$143 = ((($142)) + 4|0);
$144 = HEAP32[$143>>2]|0;
__gcry_mpi_clear($144);
$145 = $nbits1;
$146 = $145 & 1;
$sw = $146;
$147 = HEAP32[$p1>>2]|0;
$148 = HEAP32[$p1_>>2]|0;
$149 = $sw;
__gcry_mpi_swap_cond($147,$148,$149);
$150 = ((($p1)) + 8|0);
$151 = HEAP32[$150>>2]|0;
$152 = ((($p1_)) + 8|0);
$153 = HEAP32[$152>>2]|0;
$154 = $sw;
__gcry_mpi_swap_cond($151,$153,$154);
$155 = ((($p1)) + 8|0);
$156 = HEAP32[$155>>2]|0;
$157 = ((($156)) + 4|0);
$158 = HEAP32[$157>>2]|0;
$159 = ($158|0)==(0);
if ($159) {
$160 = $0;
$161 = HEAP32[$160>>2]|0;
(__gcry_mpi_set_ui($161,1)|0);
$162 = $0;
$163 = ((($162)) + 8|0);
$164 = HEAP32[$163>>2]|0;
(__gcry_mpi_set_ui($164,0)|0);
} else {
$165 = (__gcry_mpi_new(0)|0);
$z1 = $165;
$166 = $z1;
$167 = ((($p1)) + 8|0);
$168 = HEAP32[$167>>2]|0;
$169 = $3;
_ec_invm($166,$168,$169);
$170 = $0;
$171 = HEAP32[$170>>2]|0;
$172 = HEAP32[$p1>>2]|0;
$173 = $z1;
$174 = $3;
_ec_mulm($171,$172,$173,$174);
$175 = $0;
$176 = ((($175)) + 8|0);
$177 = HEAP32[$176>>2]|0;
(__gcry_mpi_set_ui($177,1)|0);
$178 = $z1;
__gcry_mpi_free($178);
}
__gcry_mpi_point_free_parts($p1);
__gcry_mpi_point_free_parts($p2);
__gcry_mpi_point_free_parts($p1_);
__gcry_mpi_point_free_parts($p2_);
STACKTOP = sp;return;
}
$179 = $3;
$180 = ((($179)) + 16|0);
$181 = HEAP32[$180>>2]|0;
$182 = (__gcry_mpi_alloc_like($181)|0);
$x1 = $182;
$183 = $3;
$184 = ((($183)) + 16|0);
$185 = HEAP32[$184>>2]|0;
$186 = (__gcry_mpi_alloc_like($185)|0);
$y1 = $186;
$187 = $3;
$188 = ((($187)) + 16|0);
$189 = HEAP32[$188>>2]|0;
$190 = (__gcry_mpi_alloc_like($189)|0);
$h = $190;
$191 = $1;
$192 = (__gcry_mpi_copy($191)|0);
$k = $192;
$193 = $2;
$194 = ((($193)) + 4|0);
$195 = HEAP32[$194>>2]|0;
$196 = (__gcry_mpi_copy($195)|0);
$yy = $196;
$197 = $k;
$198 = ((($197)) + 8|0);
$199 = HEAP32[$198>>2]|0;
$200 = ($199|0)!=(0);
if ($200) {
$201 = $k;
$202 = ((($201)) + 8|0);
HEAP32[$202>>2] = 0;
$203 = $yy;
$204 = $yy;
$205 = $3;
_ec_invm($203,$204,$205);
}
$206 = $2;
$207 = ((($206)) + 8|0);
$208 = HEAP32[$207>>2]|0;
$209 = (__gcry_mpi_cmp_ui($208,1)|0);
$210 = ($209|0)!=(0);
if ($210) {
$216 = $3;
$217 = ((($216)) + 16|0);
$218 = HEAP32[$217>>2]|0;
$219 = (__gcry_mpi_alloc_like($218)|0);
$z2 = $219;
$220 = $3;
$221 = ((($220)) + 16|0);
$222 = HEAP32[$221>>2]|0;
$223 = (__gcry_mpi_alloc_like($222)|0);
$z3 = $223;
$224 = $z2;
$225 = $2;
$226 = ((($225)) + 8|0);
$227 = HEAP32[$226>>2]|0;
$228 = $2;
$229 = ((($228)) + 8|0);
$230 = HEAP32[$229>>2]|0;
$231 = $3;
_ec_mulm($224,$227,$230,$231);
$232 = $z3;
$233 = $2;
$234 = ((($233)) + 8|0);
$235 = HEAP32[$234>>2]|0;
$236 = $z2;
$237 = $3;
_ec_mulm($232,$235,$236,$237);
$238 = $z2;
$239 = $z2;
$240 = $3;
_ec_invm($238,$239,$240);
$241 = $x1;
$242 = $2;
$243 = HEAP32[$242>>2]|0;
$244 = $z2;
$245 = $3;
_ec_mulm($241,$243,$244,$245);
$246 = $z3;
$247 = $z3;
$248 = $3;
_ec_invm($246,$247,$248);
$249 = $y1;
$250 = $yy;
$251 = $z3;
$252 = $3;
_ec_mulm($249,$250,$251,$252);
$253 = $z2;
__gcry_mpi_free($253);
$254 = $z3;
__gcry_mpi_free($254);
} else {
$211 = $x1;
$212 = $2;
$213 = HEAP32[$212>>2]|0;
(__gcry_mpi_set($211,$213)|0);
$214 = $y1;
$215 = $yy;
(__gcry_mpi_set($214,$215)|0);
}
$255 = (__gcry_mpi_const(1)|0);
$256 = (__gcry_mpi_copy($255)|0);
$z1 = $256;
$257 = $h;
$258 = $k;
$259 = (__gcry_mpi_const(3)|0);
__gcry_mpi_mul($257,$258,$259);
$260 = $h;
$261 = (__gcry_mpi_get_nbits($260)|0);
$loops = $261;
$262 = $loops;
$263 = ($262>>>0)<(2);
if ($263) {
$loops = 2;
$264 = $0;
$265 = HEAP32[$264>>2]|0;
__gcry_mpi_clear($265);
$266 = $0;
$267 = ((($266)) + 4|0);
$268 = HEAP32[$267>>2]|0;
__gcry_mpi_clear($268);
$269 = $0;
$270 = ((($269)) + 8|0);
$271 = HEAP32[$270>>2]|0;
__gcry_mpi_clear($271);
} else {
$272 = $0;
$273 = HEAP32[$272>>2]|0;
$274 = $2;
$275 = HEAP32[$274>>2]|0;
(__gcry_mpi_set($273,$275)|0);
$276 = $0;
$277 = ((($276)) + 4|0);
$278 = HEAP32[$277>>2]|0;
$279 = $yy;
(__gcry_mpi_set($278,$279)|0);
$280 = $0;
$281 = ((($280)) + 8|0);
$282 = HEAP32[$281>>2]|0;
$283 = $2;
$284 = ((($283)) + 8|0);
$285 = HEAP32[$284>>2]|0;
(__gcry_mpi_set($282,$285)|0);
}
$286 = $yy;
__gcry_mpi_free($286);
$yy = 0;
$287 = $x1;
HEAP32[$p1>>2] = $287;
$x1 = 0;
$288 = $y1;
$289 = ((($p1)) + 4|0);
HEAP32[$289>>2] = $288;
$y1 = 0;
$290 = $z1;
$291 = ((($p1)) + 8|0);
HEAP32[$291>>2] = $290;
$z1 = 0;
__gcry_mpi_point_init($p2);
__gcry_mpi_point_init($p1inv);
$292 = $loops;
$293 = (($292) - 2)|0;
$i = $293;
while(1) {
$294 = $i;
$295 = ($294>>>0)>(0);
if (!($295)) {
break;
}
$296 = $0;
$297 = $0;
$298 = $3;
__gcry_mpi_ec_dup_point($296,$297,$298);
$299 = $h;
$300 = $i;
$301 = (__gcry_mpi_test_bit($299,$300)|0);
$302 = ($301|0)==(1);
if ($302) {
$303 = $k;
$304 = $i;
$305 = (__gcry_mpi_test_bit($303,$304)|0);
$306 = ($305|0)==(0);
if ($306) {
$307 = $0;
_point_set_1575($p2,$307);
$308 = $0;
$309 = $3;
__gcry_mpi_ec_add_points($308,$p2,$p1,$309);
}
}
$310 = $h;
$311 = $i;
$312 = (__gcry_mpi_test_bit($310,$311)|0);
$313 = ($312|0)==(0);
if ($313) {
$314 = $k;
$315 = $i;
$316 = (__gcry_mpi_test_bit($314,$315)|0);
$317 = ($316|0)==(1);
if ($317) {
$318 = $0;
_point_set_1575($p2,$318);
_point_set_1575($p1inv,$p1);
$319 = ((($p1inv)) + 4|0);
$320 = HEAP32[$319>>2]|0;
$321 = $3;
$322 = ((($321)) + 16|0);
$323 = HEAP32[$322>>2]|0;
$324 = ((($p1inv)) + 4|0);
$325 = HEAP32[$324>>2]|0;
$326 = $3;
_ec_subm($320,$323,$325,$326);
$327 = $0;
$328 = $3;
__gcry_mpi_ec_add_points($327,$p2,$p1inv,$328);
}
}
$329 = $i;
$330 = (($329) + -1)|0;
$i = $330;
}
__gcry_mpi_point_free_parts($p1);
__gcry_mpi_point_free_parts($p2);
__gcry_mpi_point_free_parts($p1inv);
$331 = $h;
__gcry_mpi_free($331);
$332 = $k;
__gcry_mpi_free($332);
STACKTOP = sp;return;
}
function _montgomery_ladder($prd,$sum,$p1,$p2,$dif_x,$ctx) {
$prd = $prd|0;
$sum = $sum|0;
$p1 = $p1|0;
$p2 = $p2|0;
$dif_x = $dif_x|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $prd;
$1 = $sum;
$2 = $p1;
$3 = $p2;
$4 = $dif_x;
$5 = $ctx;
$6 = $1;
$7 = HEAP32[$6>>2]|0;
$8 = $3;
$9 = HEAP32[$8>>2]|0;
$10 = $3;
$11 = ((($10)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$13 = $5;
_ec_addm($7,$9,$12,$13);
$14 = $3;
$15 = ((($14)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = $3;
$18 = HEAP32[$17>>2]|0;
$19 = $3;
$20 = ((($19)) + 8|0);
$21 = HEAP32[$20>>2]|0;
$22 = $5;
_ec_subm($16,$18,$21,$22);
$23 = $0;
$24 = HEAP32[$23>>2]|0;
$25 = $2;
$26 = HEAP32[$25>>2]|0;
$27 = $2;
$28 = ((($27)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$30 = $5;
_ec_addm($24,$26,$29,$30);
$31 = $2;
$32 = ((($31)) + 8|0);
$33 = HEAP32[$32>>2]|0;
$34 = $2;
$35 = HEAP32[$34>>2]|0;
$36 = $2;
$37 = ((($36)) + 8|0);
$38 = HEAP32[$37>>2]|0;
$39 = $5;
_ec_subm($33,$35,$38,$39);
$40 = $3;
$41 = HEAP32[$40>>2]|0;
$42 = $2;
$43 = ((($42)) + 8|0);
$44 = HEAP32[$43>>2]|0;
$45 = $1;
$46 = HEAP32[$45>>2]|0;
$47 = $5;
_ec_mulm($41,$44,$46,$47);
$48 = $3;
$49 = ((($48)) + 8|0);
$50 = HEAP32[$49>>2]|0;
$51 = $0;
$52 = HEAP32[$51>>2]|0;
$53 = $3;
$54 = ((($53)) + 8|0);
$55 = HEAP32[$54>>2]|0;
$56 = $5;
_ec_mulm($50,$52,$55,$56);
$57 = $2;
$58 = HEAP32[$57>>2]|0;
$59 = $0;
$60 = HEAP32[$59>>2]|0;
$61 = $5;
_ec_pow2($58,$60,$61);
$62 = $2;
$63 = ((($62)) + 8|0);
$64 = HEAP32[$63>>2]|0;
$65 = $2;
$66 = ((($65)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = $5;
_ec_pow2($64,$67,$68);
$69 = $1;
$70 = HEAP32[$69>>2]|0;
$71 = $3;
$72 = HEAP32[$71>>2]|0;
$73 = $3;
$74 = ((($73)) + 8|0);
$75 = HEAP32[$74>>2]|0;
$76 = $5;
_ec_addm($70,$72,$75,$76);
$77 = $3;
$78 = ((($77)) + 8|0);
$79 = HEAP32[$78>>2]|0;
$80 = $3;
$81 = HEAP32[$80>>2]|0;
$82 = $3;
$83 = ((($82)) + 8|0);
$84 = HEAP32[$83>>2]|0;
$85 = $5;
_ec_subm($79,$81,$84,$85);
$86 = $0;
$87 = HEAP32[$86>>2]|0;
$88 = $2;
$89 = HEAP32[$88>>2]|0;
$90 = $2;
$91 = ((($90)) + 8|0);
$92 = HEAP32[$91>>2]|0;
$93 = $5;
_ec_mulm($87,$89,$92,$93);
$94 = $2;
$95 = ((($94)) + 8|0);
$96 = HEAP32[$95>>2]|0;
$97 = $2;
$98 = HEAP32[$97>>2]|0;
$99 = $2;
$100 = ((($99)) + 8|0);
$101 = HEAP32[$100>>2]|0;
$102 = $5;
_ec_subm($96,$98,$101,$102);
$103 = $1;
$104 = HEAP32[$103>>2]|0;
$105 = $1;
$106 = HEAP32[$105>>2]|0;
$107 = $5;
_ec_pow2($104,$106,$107);
$108 = $1;
$109 = ((($108)) + 8|0);
$110 = HEAP32[$109>>2]|0;
$111 = $3;
$112 = ((($111)) + 8|0);
$113 = HEAP32[$112>>2]|0;
$114 = $5;
_ec_pow2($110,$113,$114);
$115 = $0;
$116 = ((($115)) + 8|0);
$117 = HEAP32[$116>>2]|0;
$118 = $2;
$119 = ((($118)) + 8|0);
$120 = HEAP32[$119>>2]|0;
$121 = $5;
$122 = ((($121)) + 20|0);
$123 = HEAP32[$122>>2]|0;
$124 = $5;
_ec_mulm($117,$120,$123,$124);
$125 = $1;
$126 = ((($125)) + 8|0);
$127 = HEAP32[$126>>2]|0;
$128 = $1;
$129 = ((($128)) + 8|0);
$130 = HEAP32[$129>>2]|0;
$131 = $4;
$132 = $5;
_ec_mulm($127,$130,$131,$132);
$133 = $0;
$134 = ((($133)) + 8|0);
$135 = HEAP32[$134>>2]|0;
$136 = $2;
$137 = HEAP32[$136>>2]|0;
$138 = $0;
$139 = ((($138)) + 8|0);
$140 = HEAP32[$139>>2]|0;
$141 = $5;
_ec_addm($135,$137,$140,$141);
$142 = $0;
$143 = ((($142)) + 8|0);
$144 = HEAP32[$143>>2]|0;
$145 = $0;
$146 = ((($145)) + 8|0);
$147 = HEAP32[$146>>2]|0;
$148 = $2;
$149 = ((($148)) + 8|0);
$150 = HEAP32[$149>>2]|0;
$151 = $5;
_ec_mulm($144,$147,$150,$151);
STACKTOP = sp;return;
}
function __gcry_mpi_ec_curve_point($point,$ctx) {
$point = $point|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $16 = 0;
var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $res = 0, $w = 0, $x = 0, $xxx = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $point;
$2 = $ctx;
$res = 0;
$3 = (__gcry_mpi_new(0)|0);
$x = $3;
$4 = (__gcry_mpi_new(0)|0);
$y = $4;
$5 = (__gcry_mpi_new(0)|0);
$w = $5;
$6 = $2;
$7 = HEAP32[$6>>2]|0;
L1: do {
switch ($7|0) {
case 0: {
$8 = (__gcry_mpi_new(0)|0);
$xxx = $8;
$9 = $x;
$10 = $y;
$11 = $1;
$12 = $2;
$13 = (__gcry_mpi_ec_get_affine($9,$10,$11,$12)|0);
$14 = ($13|0)!=(0);
if ($14) {
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
}
$15 = $y;
$16 = $y;
$17 = $2;
_ec_pow2($15,$16,$17);
$18 = $xxx;
$19 = $x;
$20 = $2;
_ec_pow3($18,$19,$20);
$21 = $w;
$22 = $2;
$23 = ((($22)) + 20|0);
$24 = HEAP32[$23>>2]|0;
$25 = $x;
$26 = $2;
_ec_mulm($21,$24,$25,$26);
$27 = $w;
$28 = $w;
$29 = $2;
$30 = ((($29)) + 24|0);
$31 = HEAP32[$30>>2]|0;
$32 = $2;
_ec_addm($27,$28,$31,$32);
$33 = $w;
$34 = $w;
$35 = $xxx;
$36 = $2;
_ec_addm($33,$34,$35,$36);
$37 = $y;
$38 = $w;
$39 = (__gcry_mpi_cmp($37,$38)|0);
$40 = ($39|0)!=(0);
if (!($40)) {
$res = 1;
}
$41 = $xxx;
__gcry_mpi_release($41);
break;
}
case 1: {
$42 = $x;
$43 = $1;
$44 = $2;
$45 = (__gcry_mpi_ec_get_affine($42,0,$43,$44)|0);
$46 = ($45|0)!=(0);
if (!($46)) {
$47 = $w;
$48 = $2;
$49 = ((($48)) + 20|0);
$50 = HEAP32[$49>>2]|0;
$51 = (__gcry_mpi_const(4)|0);
$52 = $2;
_ec_mulm($47,$50,$51,$52);
$53 = $w;
$54 = $w;
$55 = (__gcry_mpi_const(2)|0);
$56 = $2;
_ec_addm($53,$54,$55,$56);
$57 = $w;
$58 = $w;
$59 = $x;
$60 = $2;
_ec_mulm($57,$58,$59,$60);
$61 = $y;
$62 = $x;
$63 = $2;
_ec_pow2($61,$62,$63);
$64 = $w;
$65 = $w;
$66 = $y;
$67 = $2;
_ec_addm($64,$65,$66,$67);
$68 = $w;
$69 = $w;
$70 = (__gcry_mpi_const(1)|0);
$71 = $2;
_ec_addm($68,$69,$70,$71);
$72 = $w;
$73 = $w;
$74 = $x;
$75 = $2;
_ec_mulm($72,$73,$74,$75);
$76 = $w;
$77 = $w;
$78 = $2;
$79 = ((($78)) + 24|0);
$80 = HEAP32[$79>>2]|0;
$81 = $2;
_ec_mulm($76,$77,$80,$81);
$82 = $y;
$83 = $2;
$84 = ((($83)) + 16|0);
$85 = HEAP32[$84>>2]|0;
$86 = (__gcry_mpi_const(1)|0);
$87 = $2;
_ec_subm($82,$85,$86,$87);
$88 = $y;
$89 = $y;
__gcry_mpi_rshift($88,$89,1);
$90 = $w;
$91 = $w;
$92 = $y;
$93 = $2;
_ec_powm($90,$91,$92,$93);
$94 = $w;
$95 = (__gcry_mpi_cmp_ui($94,1)|0);
$res = $95;
break L1;
}
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
break;
}
case 2: {
$96 = $x;
$97 = $y;
$98 = $1;
$99 = $2;
$100 = (__gcry_mpi_ec_get_affine($96,$97,$98,$99)|0);
$101 = ($100|0)!=(0);
if ($101) {
$0 = 0;
$150 = $0;
STACKTOP = sp;return ($150|0);
}
$102 = $x;
$103 = $x;
$104 = $2;
_ec_pow2($102,$103,$104);
$105 = $y;
$106 = $y;
$107 = $2;
_ec_pow2($105,$106,$107);
$108 = $2;
$109 = ((($108)) + 4|0);
$110 = HEAP32[$109>>2]|0;
$111 = ($110|0)==(1);
$112 = $w;
if ($111) {
$113 = $x;
(__gcry_mpi_set($112,$113)|0);
$114 = $w;
$115 = $w;
__gcry_mpi_neg($114,$115);
} else {
$116 = $2;
$117 = ((($116)) + 20|0);
$118 = HEAP32[$117>>2]|0;
$119 = $x;
$120 = $2;
_ec_mulm($112,$118,$119,$120);
}
$121 = $w;
$122 = $w;
$123 = $y;
$124 = $2;
_ec_addm($121,$122,$123,$124);
$125 = $w;
$126 = $w;
$127 = (__gcry_mpi_const(1)|0);
$128 = $2;
_ec_subm($125,$126,$127,$128);
$129 = $x;
$130 = $x;
$131 = $y;
$132 = $2;
_ec_mulm($129,$130,$131,$132);
$133 = $x;
$134 = $x;
$135 = $2;
$136 = ((($135)) + 24|0);
$137 = HEAP32[$136>>2]|0;
$138 = $2;
_ec_mulm($133,$134,$137,$138);
$139 = $w;
$140 = $w;
$141 = $x;
$142 = $2;
_ec_subm($139,$140,$141,$142);
$143 = $w;
$144 = (__gcry_mpi_cmp_ui($143,0)|0);
$145 = ($144|0)!=(0);
if (!($145)) {
$res = 1;
}
break;
}
default: {
}
}
} while(0);
$146 = $w;
__gcry_mpi_release($146);
$147 = $x;
__gcry_mpi_release($147);
$148 = $y;
__gcry_mpi_release($148);
$149 = $res;
$0 = $149;
$150 = $0;
STACKTOP = sp;return ($150|0);
}
function _ec_pow3($w,$b,$ctx) {
$w = $w|0;
$b = $b|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $b;
$2 = $ctx;
$3 = $0;
$4 = $1;
$5 = (__gcry_mpi_const(3)|0);
$6 = $2;
$7 = ((($6)) + 16|0);
$8 = HEAP32[$7>>2]|0;
__gcry_mpi_powm($3,$4,$5,$8);
STACKTOP = sp;return;
}
function __gcry_mpi_add_ui($w,$u,$v) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $cy = 0, $up = 0, $usign = 0, $usize = 0, $wp = 0, $wsign = 0;
var $wsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $1;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$usize = $5;
$6 = $1;
$7 = ((($6)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$usign = $8;
$wsign = 0;
$9 = $usize;
$10 = (($9) + 1)|0;
$wsize = $10;
$11 = $0;
$12 = HEAP32[$11>>2]|0;
$13 = $wsize;
$14 = ($12|0)<($13|0);
if ($14) {
$15 = $0;
$16 = $wsize;
__gcry_mpi_resize($15,$16);
}
$17 = $1;
$18 = ((($17)) + 16|0);
$19 = HEAP32[$18>>2]|0;
$up = $19;
$20 = $0;
$21 = ((($20)) + 16|0);
$22 = HEAP32[$21>>2]|0;
$wp = $22;
$23 = $usize;
$24 = ($23|0)!=(0);
do {
if ($24) {
$30 = $usign;
$31 = ($30|0)!=(0);
if (!($31)) {
$32 = $wp;
$33 = $up;
$34 = $usize;
$35 = $2;
$36 = (__gcry_mpih_add_1($32,$33,$34,$35)|0);
$cy = $36;
$37 = $cy;
$38 = $usize;
$39 = $wp;
$40 = (($39) + ($38<<2)|0);
HEAP32[$40>>2] = $37;
$41 = $usize;
$42 = $cy;
$43 = (($41) + ($42))|0;
$wsize = $43;
break;
}
$44 = $usize;
$45 = ($44|0)==(1);
if ($45) {
$46 = $up;
$47 = HEAP32[$46>>2]|0;
$48 = $2;
$49 = ($47>>>0)<($48>>>0);
if ($49) {
$50 = $2;
$51 = $up;
$52 = HEAP32[$51>>2]|0;
$53 = (($50) - ($52))|0;
$54 = $wp;
HEAP32[$54>>2] = $53;
$wsize = 1;
break;
}
}
$55 = $wp;
$56 = $up;
$57 = $usize;
$58 = $2;
(__gcry_mpih_sub_1($55,$56,$57,$58)|0);
$59 = $usize;
$60 = $usize;
$61 = (($60) - 1)|0;
$62 = $wp;
$63 = (($62) + ($61<<2)|0);
$64 = HEAP32[$63>>2]|0;
$65 = ($64|0)==(0);
$66 = $65&1;
$67 = (($59) - ($66))|0;
$wsize = $67;
$wsign = 1;
} else {
$25 = $2;
$26 = $wp;
HEAP32[$26>>2] = $25;
$27 = $2;
$28 = ($27|0)!=(0);
$29 = $28 ? 1 : 0;
$wsize = $29;
}
} while(0);
$68 = $wsize;
$69 = $0;
$70 = ((($69)) + 4|0);
HEAP32[$70>>2] = $68;
$71 = $wsign;
$72 = $0;
$73 = ((($72)) + 8|0);
HEAP32[$73>>2] = $71;
STACKTOP = sp;return;
}
function __gcry_mpi_add($w,$u,$v) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $_i = 0, $cy = 0, $up = 0, $usign = 0, $usize = 0, $vp = 0, $vsign = 0, $vsize = 0, $wp = 0, $wsign = 0, $wsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $1;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $2;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($5|0)<($8|0);
if ($9) {
$10 = $2;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$usize = $12;
$13 = $2;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$usign = $15;
$16 = $1;
$17 = ((($16)) + 4|0);
$18 = HEAP32[$17>>2]|0;
$vsize = $18;
$19 = $1;
$20 = ((($19)) + 8|0);
$21 = HEAP32[$20>>2]|0;
$vsign = $21;
$22 = $usize;
$23 = (($22) + 1)|0;
$wsize = $23;
$24 = $0;
$25 = HEAP32[$24>>2]|0;
$26 = $wsize;
$27 = ($25|0)<($26|0);
if ($27) {
$28 = $0;
$29 = $wsize;
__gcry_mpi_resize($28,$29);
}
$30 = $2;
$31 = ((($30)) + 16|0);
$32 = HEAP32[$31>>2]|0;
$up = $32;
$33 = $1;
$34 = ((($33)) + 16|0);
$35 = HEAP32[$34>>2]|0;
$vp = $35;
} else {
$36 = $1;
$37 = ((($36)) + 4|0);
$38 = HEAP32[$37>>2]|0;
$usize = $38;
$39 = $1;
$40 = ((($39)) + 8|0);
$41 = HEAP32[$40>>2]|0;
$usign = $41;
$42 = $2;
$43 = ((($42)) + 4|0);
$44 = HEAP32[$43>>2]|0;
$vsize = $44;
$45 = $2;
$46 = ((($45)) + 8|0);
$47 = HEAP32[$46>>2]|0;
$vsign = $47;
$48 = $usize;
$49 = (($48) + 1)|0;
$wsize = $49;
$50 = $0;
$51 = HEAP32[$50>>2]|0;
$52 = $wsize;
$53 = ($51|0)<($52|0);
if ($53) {
$54 = $0;
$55 = $wsize;
__gcry_mpi_resize($54,$55);
}
$56 = $1;
$57 = ((($56)) + 16|0);
$58 = HEAP32[$57>>2]|0;
$up = $58;
$59 = $2;
$60 = ((($59)) + 16|0);
$61 = HEAP32[$60>>2]|0;
$vp = $61;
}
$62 = $0;
$63 = ((($62)) + 16|0);
$64 = HEAP32[$63>>2]|0;
$wp = $64;
$wsign = 0;
$65 = $vsize;
$66 = ($65|0)!=(0);
do {
if ($66) {
$81 = $usign;
$82 = $vsign;
$83 = ($81|0)!=($82|0);
if (!($83)) {
$142 = $wp;
$143 = $up;
$144 = $usize;
$145 = $vp;
$146 = $vsize;
$147 = (__gcry_mpih_add($142,$143,$144,$145,$146)|0);
$cy = $147;
$148 = $cy;
$149 = $usize;
$150 = $wp;
$151 = (($150) + ($149<<2)|0);
HEAP32[$151>>2] = $148;
$152 = $usize;
$153 = $cy;
$154 = (($152) + ($153))|0;
$wsize = $154;
$155 = $usign;
$156 = ($155|0)!=(0);
if (!($156)) {
break;
}
$wsign = 1;
break;
}
$84 = $usize;
$85 = $vsize;
$86 = ($84|0)!=($85|0);
if ($86) {
$87 = $wp;
$88 = $up;
$89 = $usize;
$90 = $vp;
$91 = $vsize;
(__gcry_mpih_sub($87,$88,$89,$90,$91)|0);
$92 = $usize;
$wsize = $92;
while(1) {
$93 = $wsize;
$94 = ($93|0)>(0);
if (!($94)) {
break;
}
$95 = $wsize;
$96 = (($95) - 1)|0;
$97 = $wp;
$98 = (($97) + ($96<<2)|0);
$99 = HEAP32[$98>>2]|0;
$100 = ($99|0)!=(0);
if ($100) {
break;
}
$101 = $wsize;
$102 = (($101) + -1)|0;
$wsize = $102;
}
$103 = $usign;
$wsign = $103;
break;
}
$104 = $up;
$105 = $vp;
$106 = $usize;
$107 = (__gcry_mpih_cmp($104,$105,$106)|0);
$108 = ($107|0)<(0);
$109 = $wp;
if ($108) {
$110 = $vp;
$111 = $up;
$112 = $usize;
(__gcry_mpih_sub_n($109,$110,$111,$112)|0);
$113 = $usize;
$wsize = $113;
while(1) {
$114 = $wsize;
$115 = ($114|0)>(0);
if (!($115)) {
break;
}
$116 = $wsize;
$117 = (($116) - 1)|0;
$118 = $wp;
$119 = (($118) + ($117<<2)|0);
$120 = HEAP32[$119>>2]|0;
$121 = ($120|0)!=(0);
if ($121) {
break;
}
$122 = $wsize;
$123 = (($122) + -1)|0;
$wsize = $123;
}
$124 = $usign;
$125 = ($124|0)!=(0);
if ($125) {
break;
}
$wsign = 1;
break;
} else {
$126 = $up;
$127 = $vp;
$128 = $usize;
(__gcry_mpih_sub_n($109,$126,$127,$128)|0);
$129 = $usize;
$wsize = $129;
while(1) {
$130 = $wsize;
$131 = ($130|0)>(0);
if (!($131)) {
break;
}
$132 = $wsize;
$133 = (($132) - 1)|0;
$134 = $wp;
$135 = (($134) + ($133<<2)|0);
$136 = HEAP32[$135>>2]|0;
$137 = ($136|0)!=(0);
if ($137) {
break;
}
$138 = $wsize;
$139 = (($138) + -1)|0;
$wsize = $139;
}
$140 = $usign;
$141 = ($140|0)!=(0);
if (!($141)) {
break;
}
$wsign = 1;
break;
}
} else {
$_i = 0;
while(1) {
$67 = $_i;
$68 = $usize;
$69 = ($67|0)<($68|0);
if (!($69)) {
break;
}
$70 = $_i;
$71 = $up;
$72 = (($71) + ($70<<2)|0);
$73 = HEAP32[$72>>2]|0;
$74 = $_i;
$75 = $wp;
$76 = (($75) + ($74<<2)|0);
HEAP32[$76>>2] = $73;
$77 = $_i;
$78 = (($77) + 1)|0;
$_i = $78;
}
$79 = $usize;
$wsize = $79;
$80 = $usign;
$wsign = $80;
}
} while(0);
$157 = $wsize;
$158 = $0;
$159 = ((($158)) + 4|0);
HEAP32[$159>>2] = $157;
$160 = $wsign;
$161 = $0;
$162 = ((($161)) + 8|0);
HEAP32[$162>>2] = $160;
STACKTOP = sp;return;
}
function __gcry_mpi_sub_ui($w,$u,$v) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $cy = 0, $up = 0, $usign = 0, $usize = 0, $wp = 0, $wsign = 0;
var $wsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $1;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$usize = $5;
$6 = $1;
$7 = ((($6)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$usign = $8;
$wsign = 0;
$9 = $usize;
$10 = (($9) + 1)|0;
$wsize = $10;
$11 = $0;
$12 = HEAP32[$11>>2]|0;
$13 = $wsize;
$14 = ($12|0)<($13|0);
if ($14) {
$15 = $0;
$16 = $wsize;
__gcry_mpi_resize($15,$16);
}
$17 = $1;
$18 = ((($17)) + 16|0);
$19 = HEAP32[$18>>2]|0;
$up = $19;
$20 = $0;
$21 = ((($20)) + 16|0);
$22 = HEAP32[$21>>2]|0;
$wp = $22;
$23 = $usize;
$24 = ($23|0)!=(0);
do {
if ($24) {
$30 = $usign;
$31 = ($30|0)!=(0);
if ($31) {
$32 = $wp;
$33 = $up;
$34 = $usize;
$35 = $2;
$36 = (__gcry_mpih_add_1($32,$33,$34,$35)|0);
$cy = $36;
$37 = $cy;
$38 = $usize;
$39 = $wp;
$40 = (($39) + ($38<<2)|0);
HEAP32[$40>>2] = $37;
$41 = $usize;
$42 = $cy;
$43 = (($41) + ($42))|0;
$wsize = $43;
break;
}
$44 = $usize;
$45 = ($44|0)==(1);
if ($45) {
$46 = $up;
$47 = HEAP32[$46>>2]|0;
$48 = $2;
$49 = ($47>>>0)<($48>>>0);
if ($49) {
$50 = $2;
$51 = $up;
$52 = HEAP32[$51>>2]|0;
$53 = (($50) - ($52))|0;
$54 = $wp;
HEAP32[$54>>2] = $53;
$wsize = 1;
$wsign = 1;
break;
}
}
$55 = $wp;
$56 = $up;
$57 = $usize;
$58 = $2;
(__gcry_mpih_sub_1($55,$56,$57,$58)|0);
$59 = $usize;
$60 = $usize;
$61 = (($60) - 1)|0;
$62 = $wp;
$63 = (($62) + ($61<<2)|0);
$64 = HEAP32[$63>>2]|0;
$65 = ($64|0)==(0);
$66 = $65&1;
$67 = (($59) - ($66))|0;
$wsize = $67;
} else {
$25 = $2;
$26 = $wp;
HEAP32[$26>>2] = $25;
$27 = $2;
$28 = ($27|0)!=(0);
$29 = $28 ? 1 : 0;
$wsize = $29;
$wsign = 1;
}
} while(0);
$68 = $wsize;
$69 = $0;
$70 = ((($69)) + 4|0);
HEAP32[$70>>2] = $68;
$71 = $wsign;
$72 = $0;
$73 = ((($72)) + 8|0);
HEAP32[$73>>2] = $71;
STACKTOP = sp;return;
}
function __gcry_mpi_sub($w,$u,$v) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vv = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $2;
$4 = (__gcry_mpi_copy($3)|0);
$vv = $4;
$5 = $vv;
$6 = ((($5)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(0);
$9 = $8 ^ 1;
$10 = $9&1;
$11 = $vv;
$12 = ((($11)) + 8|0);
HEAP32[$12>>2] = $10;
$13 = $0;
$14 = $1;
$15 = $vv;
__gcry_mpi_add($13,$14,$15);
$16 = $vv;
__gcry_mpi_free($16);
STACKTOP = sp;return;
}
function __gcry_mpi_addm($w,$u,$v,$m) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$m = $m|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $m;
$4 = $0;
$5 = $1;
$6 = $2;
__gcry_mpi_add($4,$5,$6);
$7 = $0;
$8 = $0;
$9 = $3;
__gcry_mpi_mod($7,$8,$9);
STACKTOP = sp;return;
}
function __gcry_mpi_subm($w,$u,$v,$m) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$m = $m|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $m;
$4 = $0;
$5 = $1;
$6 = $2;
__gcry_mpi_sub($4,$5,$6);
$7 = $0;
$8 = $0;
$9 = $3;
__gcry_mpi_mod($7,$8,$9);
STACKTOP = sp;return;
}
function __gcry_mpi_normalize($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if ($2) {
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 4;
$7 = ($6|0)!=(0);
if ($7) {
STACKTOP = sp;return;
}
}
while(1) {
$8 = $0;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0);
if (!($11)) {
label = 6;
break;
}
$12 = $0;
$13 = ((($12)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$15 = (($14) - 1)|0;
$16 = $0;
$17 = ((($16)) + 16|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($18) + ($15<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)!=(0);
$22 = $21 ^ 1;
if (!($22)) {
label = 6;
break;
}
$23 = $0;
$24 = ((($23)) + 4|0);
$25 = HEAP32[$24>>2]|0;
$26 = (($25) + -1)|0;
HEAP32[$24>>2] = $26;
}
if ((label|0) == 6) {
STACKTOP = sp;return;
}
}
function __gcry_mpi_get_nbits($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $__a = 0, $__xr = 0, $alimb = 0, $n = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $1;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $1;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 4;
$8 = ($7|0)!=(0);
if ($8) {
$9 = $1;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$0 = $11;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
}
$12 = $1;
__gcry_mpi_normalize($12);
$13 = $1;
$14 = ((($13)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0);
if ($16) {
$17 = $1;
$18 = ((($17)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = (($19) - 1)|0;
$21 = $1;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$24 = (($23) + ($20<<2)|0);
$25 = HEAP32[$24>>2]|0;
$alimb = $25;
$26 = $alimb;
$27 = ($26|0)!=(0);
if ($27) {
$28 = $alimb;
$__xr = $28;
$29 = $__xr;
$30 = ($29>>>0)<(65536);
$31 = $__xr;
$32 = ($31>>>0)<(256);
$33 = $32 ? 0 : 8;
$34 = ($31>>>0)<(16777216);
$35 = $34 ? 16 : 24;
$36 = $30 ? $33 : $35;
$__a = $36;
$37 = $__xr;
$38 = $__a;
$39 = $37 >>> $38;
$40 = (45829 + ($39)|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41&255;
$43 = $__a;
$44 = (($42) + ($43))|0;
$45 = (32 - ($44))|0;
$n = $45;
} else {
$n = 32;
}
$46 = $n;
$47 = (32 - ($46))|0;
$48 = $1;
$49 = ((($48)) + 4|0);
$50 = HEAP32[$49>>2]|0;
$51 = (($50) - 1)|0;
$52 = $51<<5;
$53 = (($47) + ($52))|0;
$n = $53;
} else {
$n = 0;
}
$54 = $n;
$0 = $54;
$55 = $0;
STACKTOP = sp;return ($55|0);
}
function __gcry_mpi_test_bit($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $bitno = 0, $limb = 0, $limbno = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $n;
$3 = $2;
$4 = (($3>>>0) / 32)&-1;
$limbno = $4;
$5 = $2;
$6 = (($5>>>0) % 32)&-1;
$bitno = $6;
$7 = $limbno;
$8 = $1;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($7>>>0)>=($10>>>0);
if ($11) {
$0 = 0;
$24 = $0;
STACKTOP = sp;return ($24|0);
} else {
$12 = $limbno;
$13 = $1;
$14 = ((($13)) + 16|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + ($12<<2)|0);
$17 = HEAP32[$16>>2]|0;
$limb = $17;
$18 = $limb;
$19 = $bitno;
$20 = 1 << $19;
$21 = $18 & $20;
$22 = ($21|0)!=(0);
$23 = $22 ? 1 : 0;
$0 = $23;
$24 = $0;
STACKTOP = sp;return ($24|0);
}
return (0)|0;
}
function __gcry_mpi_set_bit($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $bitno = 0, $i = 0, $limbno = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $n;
$2 = $0;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $0;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 16;
$8 = ($7|0)!=(0);
if ($8) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$9 = $1;
$10 = (($9>>>0) / 32)&-1;
$limbno = $10;
$11 = $1;
$12 = (($11>>>0) % 32)&-1;
$bitno = $12;
$13 = $limbno;
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($13>>>0)>=($16>>>0);
if ($17) {
$18 = $0;
$19 = ((($18)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$i = $20;
while(1) {
$21 = $i;
$22 = $0;
$23 = HEAP32[$22>>2]|0;
$24 = ($21>>>0)<($23>>>0);
if (!($24)) {
break;
}
$25 = $i;
$26 = $0;
$27 = ((($26)) + 16|0);
$28 = HEAP32[$27>>2]|0;
$29 = (($28) + ($25<<2)|0);
HEAP32[$29>>2] = 0;
$30 = $i;
$31 = (($30) + 1)|0;
$i = $31;
}
$32 = $0;
$33 = $limbno;
$34 = (($33) + 1)|0;
__gcry_mpi_resize($32,$34);
$35 = $limbno;
$36 = (($35) + 1)|0;
$37 = $0;
$38 = ((($37)) + 4|0);
HEAP32[$38>>2] = $36;
}
$39 = $bitno;
$40 = 1 << $39;
$41 = $limbno;
$42 = $0;
$43 = ((($42)) + 16|0);
$44 = HEAP32[$43>>2]|0;
$45 = (($44) + ($41<<2)|0);
$46 = HEAP32[$45>>2]|0;
$47 = $46 | $40;
HEAP32[$45>>2] = $47;
STACKTOP = sp;return;
}
function __gcry_mpi_set_highbit($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, $bitno = 0, $i = 0, $limbno = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $n;
$2 = $0;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $0;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 16;
$8 = ($7|0)!=(0);
if ($8) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$9 = $1;
$10 = (($9>>>0) / 32)&-1;
$limbno = $10;
$11 = $1;
$12 = (($11>>>0) % 32)&-1;
$bitno = $12;
$13 = $limbno;
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($13>>>0)>=($16>>>0);
if ($17) {
$18 = $0;
$19 = ((($18)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$i = $20;
while(1) {
$21 = $i;
$22 = $0;
$23 = HEAP32[$22>>2]|0;
$24 = ($21>>>0)<($23>>>0);
if (!($24)) {
break;
}
$25 = $i;
$26 = $0;
$27 = ((($26)) + 16|0);
$28 = HEAP32[$27>>2]|0;
$29 = (($28) + ($25<<2)|0);
HEAP32[$29>>2] = 0;
$30 = $i;
$31 = (($30) + 1)|0;
$i = $31;
}
$32 = $0;
$33 = $limbno;
$34 = (($33) + 1)|0;
__gcry_mpi_resize($32,$34);
$35 = $limbno;
$36 = (($35) + 1)|0;
$37 = $0;
$38 = ((($37)) + 4|0);
HEAP32[$38>>2] = $36;
}
$39 = $bitno;
$40 = 1 << $39;
$41 = $limbno;
$42 = $0;
$43 = ((($42)) + 16|0);
$44 = HEAP32[$43>>2]|0;
$45 = (($44) + ($41<<2)|0);
$46 = HEAP32[$45>>2]|0;
$47 = $46 | $40;
HEAP32[$45>>2] = $47;
$48 = $bitno;
$49 = (($48) + 1)|0;
$bitno = $49;
while(1) {
$50 = $bitno;
$51 = ($50>>>0)<(32);
if (!($51)) {
break;
}
$52 = $bitno;
$53 = 1 << $52;
$54 = $53 ^ -1;
$55 = $limbno;
$56 = $0;
$57 = ((($56)) + 16|0);
$58 = HEAP32[$57>>2]|0;
$59 = (($58) + ($55<<2)|0);
$60 = HEAP32[$59>>2]|0;
$61 = $60 & $54;
HEAP32[$59>>2] = $61;
$62 = $bitno;
$63 = (($62) + 1)|0;
$bitno = $63;
}
$64 = $limbno;
$65 = (($64) + 1)|0;
$66 = $0;
$67 = ((($66)) + 4|0);
HEAP32[$67>>2] = $65;
STACKTOP = sp;return;
}
function __gcry_mpi_clear_highbit($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $bitno = 0, $limbno = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $n;
$2 = $0;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $0;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 16;
$8 = ($7|0)!=(0);
if ($8) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$9 = $1;
$10 = (($9>>>0) / 32)&-1;
$limbno = $10;
$11 = $1;
$12 = (($11>>>0) % 32)&-1;
$bitno = $12;
$13 = $limbno;
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($13>>>0)>=($16>>>0);
if ($17) {
STACKTOP = sp;return;
}
while(1) {
$18 = $bitno;
$19 = ($18>>>0)<(32);
if (!($19)) {
break;
}
$20 = $bitno;
$21 = 1 << $20;
$22 = $21 ^ -1;
$23 = $limbno;
$24 = $0;
$25 = ((($24)) + 16|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + ($23<<2)|0);
$28 = HEAP32[$27>>2]|0;
$29 = $28 & $22;
HEAP32[$27>>2] = $29;
$30 = $bitno;
$31 = (($30) + 1)|0;
$bitno = $31;
}
$32 = $limbno;
$33 = (($32) + 1)|0;
$34 = $0;
$35 = ((($34)) + 4|0);
HEAP32[$35>>2] = $33;
STACKTOP = sp;return;
}
function __gcry_mpi_clear_bit($a,$n) {
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $bitno = 0, $limbno = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $n;
$2 = $0;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $0;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 16;
$8 = ($7|0)!=(0);
if ($8) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$9 = $1;
$10 = (($9>>>0) / 32)&-1;
$limbno = $10;
$11 = $1;
$12 = (($11>>>0) % 32)&-1;
$bitno = $12;
$13 = $limbno;
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($13>>>0)>=($16>>>0);
if ($17) {
STACKTOP = sp;return;
}
$18 = $bitno;
$19 = 1 << $18;
$20 = $19 ^ -1;
$21 = $limbno;
$22 = $0;
$23 = ((($22)) + 16|0);
$24 = HEAP32[$23>>2]|0;
$25 = (($24) + ($21<<2)|0);
$26 = HEAP32[$25>>2]|0;
$27 = $26 & $20;
HEAP32[$25>>2] = $27;
STACKTOP = sp;return;
}
function __gcry_mpi_rshift_limbs($a,$count) {
$a = $a|0;
$count = $count|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $ap = 0, $i = 0, $n = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $count;
$2 = $0;
$3 = ((($2)) + 16|0);
$4 = HEAP32[$3>>2]|0;
$ap = $4;
$5 = $0;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$n = $7;
$8 = $0;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $0;
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = $12 & 16;
$14 = ($13|0)!=(0);
if ($14) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$15 = $1;
$16 = $n;
$17 = ($15>>>0)>=($16>>>0);
if ($17) {
$18 = $0;
$19 = ((($18)) + 4|0);
HEAP32[$19>>2] = 0;
STACKTOP = sp;return;
}
$i = 0;
while(1) {
$20 = $i;
$21 = $n;
$22 = $1;
$23 = (($21) - ($22))|0;
$24 = ($20>>>0)<($23>>>0);
$25 = $i;
if (!($24)) {
break;
}
$26 = $1;
$27 = (($25) + ($26))|0;
$28 = $ap;
$29 = (($28) + ($27<<2)|0);
$30 = HEAP32[$29>>2]|0;
$31 = $i;
$32 = $ap;
$33 = (($32) + ($31<<2)|0);
HEAP32[$33>>2] = $30;
$34 = $i;
$35 = (($34) + 1)|0;
$i = $35;
}
$36 = $ap;
$37 = (($36) + ($25<<2)|0);
HEAP32[$37>>2] = 0;
$38 = $1;
$39 = $0;
$40 = ((($39)) + 4|0);
$41 = HEAP32[$40>>2]|0;
$42 = (($41) - ($38))|0;
HEAP32[$40>>2] = $42;
STACKTOP = sp;return;
}
function __gcry_mpi_rshift($x,$a,$n) {
$x = $x|0;
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $i = 0, $nbits = 0, $nlimbs = 0, $or$cond = 0, $or$cond3 = 0, $xsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $a;
$2 = $n;
$3 = $2;
$4 = (($3>>>0) / 32)&-1;
$nlimbs = $4;
$5 = $2;
$6 = (($5>>>0) % 32)&-1;
$nbits = $6;
$7 = $0;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $0;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = $11 & 16;
$13 = ($12|0)!=(0);
if ($13) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$14 = $0;
$15 = $1;
$16 = ($14|0)==($15|0);
$17 = $nlimbs;
L6: do {
if ($16) {
$18 = $0;
$19 = ((($18)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($17>>>0)>=($20>>>0);
if ($21) {
$22 = $0;
$23 = ((($22)) + 4|0);
HEAP32[$23>>2] = 0;
STACKTOP = sp;return;
}
$24 = $nlimbs;
$25 = ($24|0)!=(0);
if ($25) {
$i = 0;
while(1) {
$26 = $i;
$27 = $0;
$28 = ((($27)) + 4|0);
$29 = HEAP32[$28>>2]|0;
$30 = $nlimbs;
$31 = (($29) - ($30))|0;
$32 = ($26>>>0)<($31>>>0);
$33 = $i;
if (!($32)) {
break;
}
$34 = $nlimbs;
$35 = (($33) + ($34))|0;
$36 = $0;
$37 = ((($36)) + 16|0);
$38 = HEAP32[$37>>2]|0;
$39 = (($38) + ($35<<2)|0);
$40 = HEAP32[$39>>2]|0;
$41 = $i;
$42 = $0;
$43 = ((($42)) + 16|0);
$44 = HEAP32[$43>>2]|0;
$45 = (($44) + ($41<<2)|0);
HEAP32[$45>>2] = $40;
$46 = $i;
$47 = (($46) + 1)|0;
$i = $47;
}
$48 = $0;
$49 = ((($48)) + 16|0);
$50 = HEAP32[$49>>2]|0;
$51 = (($50) + ($33<<2)|0);
HEAP32[$51>>2] = 0;
$52 = $nlimbs;
$53 = $0;
$54 = ((($53)) + 4|0);
$55 = HEAP32[$54>>2]|0;
$56 = (($55) - ($52))|0;
HEAP32[$54>>2] = $56;
}
$57 = $0;
$58 = ((($57)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = ($59|0)!=(0);
$61 = $nbits;
$62 = ($61|0)!=(0);
$or$cond = $60 & $62;
if ($or$cond) {
$63 = $0;
$64 = ((($63)) + 16|0);
$65 = HEAP32[$64>>2]|0;
$66 = $0;
$67 = ((($66)) + 16|0);
$68 = HEAP32[$67>>2]|0;
$69 = $0;
$70 = ((($69)) + 4|0);
$71 = HEAP32[$70>>2]|0;
$72 = $nbits;
(__gcry_mpih_rshift($65,$68,$71,$72)|0);
}
} else {
$73 = ($17|0)!=(0);
$74 = $1;
$75 = ((($74)) + 4|0);
$76 = HEAP32[$75>>2]|0;
$xsize = $76;
$77 = $1;
$78 = ((($77)) + 8|0);
$79 = HEAP32[$78>>2]|0;
$80 = $0;
$81 = ((($80)) + 8|0);
HEAP32[$81>>2] = $79;
$82 = $0;
$83 = HEAP32[$82>>2]|0;
$84 = $xsize;
$85 = ($83|0)<($84|0);
if (!($73)) {
if ($85) {
$167 = $0;
$168 = $xsize;
__gcry_mpi_resize($167,$168);
}
$169 = $xsize;
$170 = $0;
$171 = ((($170)) + 4|0);
HEAP32[$171>>2] = $169;
$172 = $xsize;
$173 = ($172|0)!=(0);
if (!($173)) {
break;
}
$174 = $nbits;
$175 = ($174|0)!=(0);
if ($175) {
$176 = $0;
$177 = ((($176)) + 16|0);
$178 = HEAP32[$177>>2]|0;
$179 = $1;
$180 = ((($179)) + 16|0);
$181 = HEAP32[$180>>2]|0;
$182 = $0;
$183 = ((($182)) + 4|0);
$184 = HEAP32[$183>>2]|0;
$185 = $nbits;
(__gcry_mpih_rshift($178,$181,$184,$185)|0);
break;
}
$i = 0;
while(1) {
$186 = $i;
$187 = $0;
$188 = ((($187)) + 4|0);
$189 = HEAP32[$188>>2]|0;
$190 = ($186>>>0)<($189>>>0);
if (!($190)) {
break L6;
}
$191 = $i;
$192 = $1;
$193 = ((($192)) + 16|0);
$194 = HEAP32[$193>>2]|0;
$195 = (($194) + ($191<<2)|0);
$196 = HEAP32[$195>>2]|0;
$197 = $i;
$198 = $0;
$199 = ((($198)) + 16|0);
$200 = HEAP32[$199>>2]|0;
$201 = (($200) + ($197<<2)|0);
HEAP32[$201>>2] = $196;
$202 = $i;
$203 = (($202) + 1)|0;
$i = $203;
}
}
if ($85) {
$86 = $0;
$87 = $xsize;
__gcry_mpi_resize($86,$87);
}
$88 = $xsize;
$89 = $0;
$90 = ((($89)) + 4|0);
HEAP32[$90>>2] = $88;
$i = 0;
while(1) {
$91 = $i;
$92 = $1;
$93 = ((($92)) + 4|0);
$94 = HEAP32[$93>>2]|0;
$95 = ($91>>>0)<($94>>>0);
$96 = $i;
if (!($95)) {
break;
}
$97 = $1;
$98 = ((($97)) + 16|0);
$99 = HEAP32[$98>>2]|0;
$100 = (($99) + ($96<<2)|0);
$101 = HEAP32[$100>>2]|0;
$102 = $i;
$103 = $0;
$104 = ((($103)) + 16|0);
$105 = HEAP32[$104>>2]|0;
$106 = (($105) + ($102<<2)|0);
HEAP32[$106>>2] = $101;
$107 = $i;
$108 = (($107) + 1)|0;
$i = $108;
}
$109 = $0;
$110 = ((($109)) + 4|0);
HEAP32[$110>>2] = $96;
$111 = $nlimbs;
$112 = $0;
$113 = ((($112)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = ($111>>>0)>=($114>>>0);
if ($115) {
$116 = $0;
$117 = ((($116)) + 4|0);
HEAP32[$117>>2] = 0;
STACKTOP = sp;return;
}
$118 = $nlimbs;
$119 = ($118|0)!=(0);
if ($119) {
$i = 0;
while(1) {
$120 = $i;
$121 = $0;
$122 = ((($121)) + 4|0);
$123 = HEAP32[$122>>2]|0;
$124 = $nlimbs;
$125 = (($123) - ($124))|0;
$126 = ($120>>>0)<($125>>>0);
$127 = $i;
if (!($126)) {
break;
}
$128 = $nlimbs;
$129 = (($127) + ($128))|0;
$130 = $0;
$131 = ((($130)) + 16|0);
$132 = HEAP32[$131>>2]|0;
$133 = (($132) + ($129<<2)|0);
$134 = HEAP32[$133>>2]|0;
$135 = $i;
$136 = $0;
$137 = ((($136)) + 16|0);
$138 = HEAP32[$137>>2]|0;
$139 = (($138) + ($135<<2)|0);
HEAP32[$139>>2] = $134;
$140 = $i;
$141 = (($140) + 1)|0;
$i = $141;
}
$142 = $0;
$143 = ((($142)) + 16|0);
$144 = HEAP32[$143>>2]|0;
$145 = (($144) + ($127<<2)|0);
HEAP32[$145>>2] = 0;
$146 = $nlimbs;
$147 = $0;
$148 = ((($147)) + 4|0);
$149 = HEAP32[$148>>2]|0;
$150 = (($149) - ($146))|0;
HEAP32[$148>>2] = $150;
}
$151 = $0;
$152 = ((($151)) + 4|0);
$153 = HEAP32[$152>>2]|0;
$154 = ($153|0)!=(0);
$155 = $nbits;
$156 = ($155|0)!=(0);
$or$cond3 = $154 & $156;
if ($or$cond3) {
$157 = $0;
$158 = ((($157)) + 16|0);
$159 = HEAP32[$158>>2]|0;
$160 = $0;
$161 = ((($160)) + 16|0);
$162 = HEAP32[$161>>2]|0;
$163 = $0;
$164 = ((($163)) + 4|0);
$165 = HEAP32[$164>>2]|0;
$166 = $nbits;
(__gcry_mpih_rshift($159,$162,$165,$166)|0);
}
}
} while(0);
while(1) {
$204 = $0;
$205 = ((($204)) + 4|0);
$206 = HEAP32[$205>>2]|0;
$207 = ($206|0)>(0);
if (!($207)) {
label = 40;
break;
}
$208 = $0;
$209 = ((($208)) + 4|0);
$210 = HEAP32[$209>>2]|0;
$211 = (($210) - 1)|0;
$212 = $0;
$213 = ((($212)) + 16|0);
$214 = HEAP32[$213>>2]|0;
$215 = (($214) + ($211<<2)|0);
$216 = HEAP32[$215>>2]|0;
$217 = ($216|0)!=(0);
if ($217) {
label = 40;
break;
}
$218 = $0;
$219 = ((($218)) + 4|0);
$220 = HEAP32[$219>>2]|0;
$221 = (($220) + -1)|0;
HEAP32[$219>>2] = $221;
}
if ((label|0) == 40) {
STACKTOP = sp;return;
}
}
function __gcry_mpi_lshift_limbs($a,$count) {
$a = $a|0;
$count = $count|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ap = 0, $i = 0, $n = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $count;
$2 = $0;
$3 = ((($2)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$n = $4;
$5 = $1;
$6 = ($5|0)!=(0);
$7 = $n;
$8 = ($7|0)!=(0);
$or$cond = $6 & $8;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$9 = $0;
$10 = HEAP32[$9>>2]|0;
$11 = $n;
$12 = $1;
$13 = (($11) + ($12))|0;
$14 = ($10>>>0)<($13>>>0);
if ($14) {
$15 = $0;
$16 = $n;
$17 = $1;
$18 = (($16) + ($17))|0;
__gcry_mpi_resize($15,$18);
}
$19 = $0;
$20 = ((($19)) + 16|0);
$21 = HEAP32[$20>>2]|0;
$ap = $21;
$22 = $n;
$23 = (($22) - 1)|0;
$i = $23;
while(1) {
$24 = $i;
$25 = ($24|0)>=(0);
if (!($25)) {
break;
}
$26 = $i;
$27 = $ap;
$28 = (($27) + ($26<<2)|0);
$29 = HEAP32[$28>>2]|0;
$30 = $i;
$31 = $1;
$32 = (($30) + ($31))|0;
$33 = $ap;
$34 = (($33) + ($32<<2)|0);
HEAP32[$34>>2] = $29;
$35 = $i;
$36 = (($35) + -1)|0;
$i = $36;
}
$i = 0;
while(1) {
$37 = $i;
$38 = $1;
$39 = ($37>>>0)<($38>>>0);
if (!($39)) {
break;
}
$40 = $i;
$41 = $ap;
$42 = (($41) + ($40<<2)|0);
HEAP32[$42>>2] = 0;
$43 = $i;
$44 = (($43) + 1)|0;
$i = $44;
}
$45 = $1;
$46 = $0;
$47 = ((($46)) + 4|0);
$48 = HEAP32[$47>>2]|0;
$49 = (($48) + ($45))|0;
HEAP32[$47>>2] = $49;
STACKTOP = sp;return;
}
function __gcry_mpi_lshift($x,$a,$n) {
$x = $x|0;
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $_i = 0, $alimbs = 0, $ap = 0, $asign = 0, $nbits = 0, $nlimbs = 0, $or$cond = 0, $or$cond3 = 0, $xp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $a;
$2 = $n;
$3 = $2;
$4 = (($3>>>0) / 32)&-1;
$nlimbs = $4;
$5 = $2;
$6 = (($5>>>0) % 32)&-1;
$nbits = $6;
$7 = $0;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $0;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = $11 & 16;
$13 = ($12|0)!=(0);
if ($13) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$14 = $0;
$15 = $1;
$16 = ($14|0)!=($15|0);
$17 = $2;
$18 = ($17|0)!=(0);
$or$cond = $16 | $18;
if (!($or$cond)) {
STACKTOP = sp;return;
}
$19 = $0;
$20 = $1;
$21 = ($19|0)!=($20|0);
if ($21) {
$22 = $1;
$23 = ((($22)) + 4|0);
$24 = HEAP32[$23>>2]|0;
$alimbs = $24;
$25 = $1;
$26 = ((($25)) + 8|0);
$27 = HEAP32[$26>>2]|0;
$asign = $27;
$28 = $0;
$29 = HEAP32[$28>>2]|0;
$30 = $alimbs;
$31 = $nlimbs;
$32 = (($30) + ($31))|0;
$33 = (($32) + 1)|0;
$34 = ($29>>>0)<($33>>>0);
if ($34) {
$35 = $0;
$36 = $alimbs;
$37 = $nlimbs;
$38 = (($36) + ($37))|0;
$39 = (($38) + 1)|0;
__gcry_mpi_resize($35,$39);
}
$40 = $0;
$41 = ((($40)) + 16|0);
$42 = HEAP32[$41>>2]|0;
$xp = $42;
$43 = $1;
$44 = ((($43)) + 16|0);
$45 = HEAP32[$44>>2]|0;
$ap = $45;
$_i = 0;
while(1) {
$46 = $_i;
$47 = $alimbs;
$48 = ($46>>>0)<($47>>>0);
if (!($48)) {
break;
}
$49 = $_i;
$50 = $ap;
$51 = (($50) + ($49<<2)|0);
$52 = HEAP32[$51>>2]|0;
$53 = $_i;
$54 = $xp;
$55 = (($54) + ($53<<2)|0);
HEAP32[$55>>2] = $52;
$56 = $_i;
$57 = (($56) + 1)|0;
$_i = $57;
}
$58 = $alimbs;
$59 = $0;
$60 = ((($59)) + 4|0);
HEAP32[$60>>2] = $58;
$61 = $1;
$62 = ((($61)) + 12|0);
$63 = HEAP32[$62>>2]|0;
$64 = $0;
$65 = ((($64)) + 12|0);
HEAP32[$65>>2] = $63;
$66 = $asign;
$67 = $0;
$68 = ((($67)) + 8|0);
HEAP32[$68>>2] = $66;
}
$69 = $nlimbs;
$70 = ($69|0)==(0);
$71 = $nbits;
$72 = ($71|0)!=(0);
$or$cond3 = $70 | $72;
if ($or$cond3) {
$75 = $2;
$76 = ($75|0)!=(0);
if ($76) {
$77 = $0;
$78 = $nlimbs;
$79 = (($78) + 1)|0;
__gcry_mpi_lshift_limbs($77,$79);
$80 = $0;
$81 = $0;
$82 = $nbits;
$83 = (32 - ($82))|0;
__gcry_mpi_rshift($80,$81,$83);
}
} else {
$73 = $0;
$74 = $nlimbs;
__gcry_mpi_lshift_limbs($73,$74);
}
while(1) {
$84 = $0;
$85 = ((($84)) + 4|0);
$86 = HEAP32[$85>>2]|0;
$87 = ($86|0)>(0);
if (!($87)) {
label = 19;
break;
}
$88 = $0;
$89 = ((($88)) + 4|0);
$90 = HEAP32[$89>>2]|0;
$91 = (($90) - 1)|0;
$92 = $0;
$93 = ((($92)) + 16|0);
$94 = HEAP32[$93>>2]|0;
$95 = (($94) + ($91<<2)|0);
$96 = HEAP32[$95>>2]|0;
$97 = ($96|0)!=(0);
if ($97) {
label = 19;
break;
}
$98 = $0;
$99 = ((($98)) + 4|0);
$100 = HEAP32[$99>>2]|0;
$101 = (($100) + -1)|0;
HEAP32[$99>>2] = $101;
}
if ((label|0) == 19) {
STACKTOP = sp;return;
}
}
function __gcry_mpi_cmp_ui($u,$v) {
$u = $u|0;
$v = $v|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $limb = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $u;
$2 = $v;
$3 = $2;
$limb = $3;
$4 = $1;
__gcry_mpi_normalize($4);
$5 = $1;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0);
do {
if ($8) {
$9 = $limb;
$10 = ($9|0)!=(0);
$11 = $10&1;
$12 = (0 - ($11))|0;
$0 = $12;
} else {
$13 = $1;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0);
if ($16) {
$0 = -1;
break;
}
$17 = $1;
$18 = ((($17)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)==(1);
if (!($20)) {
$0 = 1;
break;
}
$21 = $1;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$24 = HEAP32[$23>>2]|0;
$25 = $limb;
$26 = ($24>>>0)>($25>>>0);
if ($26) {
$0 = 1;
break;
}
$27 = $1;
$28 = ((($27)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = HEAP32[$29>>2]|0;
$31 = $limb;
$32 = ($30>>>0)<($31>>>0);
if ($32) {
$0 = -1;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$33 = $0;
STACKTOP = sp;return ($33|0);
}
function __gcry_mpi_cmp($u,$v) {
$u = $u|0;
$v = $v|0;
var $$old = 0, $$old1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
var $150 = 0, $151 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cmp = 0, $or$cond = 0, $usize = 0, $vsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $u;
$2 = $v;
$3 = $1;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $1;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7 & 4;
$9 = ($8|0)!=(0);
if (!($9)) {
label = 3;
}
} else {
label = 3;
}
do {
if ((label|0) == 3) {
$10 = $2;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $2;
$13 = ((($12)) + 12|0);
$14 = HEAP32[$13>>2]|0;
$15 = $14 & 4;
$16 = ($15|0)!=(0);
if ($16) {
break;
}
}
$79 = $1;
__gcry_mpi_normalize($79);
$80 = $2;
__gcry_mpi_normalize($80);
$81 = $1;
$82 = ((($81)) + 4|0);
$83 = HEAP32[$82>>2]|0;
$usize = $83;
$84 = $2;
$85 = ((($84)) + 4|0);
$86 = HEAP32[$85>>2]|0;
$vsize = $86;
$87 = $1;
$88 = ((($87)) + 8|0);
$89 = HEAP32[$88>>2]|0;
$90 = ($89|0)!=(0);
if (!($90)) {
$91 = $2;
$92 = ((($91)) + 8|0);
$93 = HEAP32[$92>>2]|0;
$94 = ($93|0)!=(0);
if ($94) {
$0 = 1;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
$95 = $1;
$96 = ((($95)) + 8|0);
$97 = HEAP32[$96>>2]|0;
$98 = ($97|0)!=(0);
if ($98) {
$99 = $2;
$100 = ((($99)) + 8|0);
$101 = HEAP32[$100>>2]|0;
$102 = ($101|0)!=(0);
if (!($102)) {
$0 = -1;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
$103 = $usize;
$104 = $vsize;
$105 = ($103|0)!=($104|0);
if ($105) {
$106 = $1;
$107 = ((($106)) + 8|0);
$108 = HEAP32[$107>>2]|0;
$109 = ($108|0)!=(0);
if (!($109)) {
$110 = $2;
$111 = ((($110)) + 8|0);
$112 = HEAP32[$111>>2]|0;
$113 = ($112|0)!=(0);
if (!($113)) {
$114 = $usize;
$115 = $vsize;
$116 = (($114) - ($115))|0;
$0 = $116;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
}
$117 = $usize;
$118 = $vsize;
$119 = ($117|0)!=($118|0);
if ($119) {
$120 = $1;
$121 = ((($120)) + 8|0);
$122 = HEAP32[$121>>2]|0;
$123 = ($122|0)!=(0);
if ($123) {
$124 = $2;
$125 = ((($124)) + 8|0);
$126 = HEAP32[$125>>2]|0;
$127 = ($126|0)!=(0);
if ($127) {
$128 = $vsize;
$129 = $usize;
$130 = (($128) + ($129))|0;
$0 = $130;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
}
$131 = $usize;
$132 = ($131|0)!=(0);
if (!($132)) {
$0 = 0;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
$133 = $1;
$134 = ((($133)) + 16|0);
$135 = HEAP32[$134>>2]|0;
$136 = $2;
$137 = ((($136)) + 16|0);
$138 = HEAP32[$137>>2]|0;
$139 = $usize;
$140 = (__gcry_mpih_cmp($135,$138,$139)|0);
$cmp = $140;
$141 = ($140|0)!=(0);
if (!($141)) {
$0 = 0;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
$142 = $cmp;
$143 = ($142|0)<(0);
$144 = $143 ? 1 : 0;
$145 = $1;
$146 = ((($145)) + 8|0);
$147 = HEAP32[$146>>2]|0;
$148 = ($147|0)!=(0);
$149 = $148 ? 1 : 0;
$150 = ($144|0)==($149|0);
if ($150) {
$0 = 1;
$151 = $0;
STACKTOP = sp;return ($151|0);
} else {
$0 = -1;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
} while(0);
$17 = $1;
$18 = ($17|0)!=(0|0);
do {
if ($18) {
$19 = $1;
$20 = ((($19)) + 12|0);
$21 = HEAP32[$20>>2]|0;
$22 = $21 & 4;
$23 = ($22|0)!=(0);
if ($23) {
$24 = $2;
$25 = ($24|0)!=(0|0);
if ($25) {
$26 = $2;
$27 = ((($26)) + 12|0);
$28 = HEAP32[$27>>2]|0;
$29 = $28 & 4;
$30 = ($29|0)!=(0);
if ($30) {
break;
}
}
$0 = -1;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
} while(0);
$31 = $1;
$32 = ($31|0)!=(0|0);
if ($32) {
$33 = $1;
$34 = ((($33)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = $35 & 4;
$37 = ($36|0)==(0);
$38 = $2;
$39 = ($38|0)!=(0|0);
$or$cond = $37 & $39;
if ($or$cond) {
label = 13;
}
} else {
$$old = $2;
$$old1 = ($$old|0)!=(0|0);
if ($$old1) {
label = 13;
}
}
if ((label|0) == 13) {
$40 = $2;
$41 = ((($40)) + 12|0);
$42 = HEAP32[$41>>2]|0;
$43 = $42 & 4;
$44 = ($43|0)!=(0);
if ($44) {
$0 = 1;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
$45 = $1;
$46 = ((($45)) + 8|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)!=(0);
if (!($48)) {
$49 = $2;
$50 = ((($49)) + 8|0);
$51 = HEAP32[$50>>2]|0;
$52 = ($51|0)!=(0);
if (!($52)) {
$0 = 0;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
}
$53 = $1;
$54 = ((($53)) + 8|0);
$55 = HEAP32[$54>>2]|0;
$56 = $2;
$57 = ((($56)) + 8|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($55|0)<($58|0);
if ($59) {
$0 = -1;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
$60 = $1;
$61 = ((($60)) + 8|0);
$62 = HEAP32[$61>>2]|0;
$63 = $2;
$64 = ((($63)) + 8|0);
$65 = HEAP32[$64>>2]|0;
$66 = ($62|0)>($65|0);
if ($66) {
$0 = 1;
$151 = $0;
STACKTOP = sp;return ($151|0);
} else {
$67 = $1;
$68 = ((($67)) + 16|0);
$69 = HEAP32[$68>>2]|0;
$70 = $2;
$71 = ((($70)) + 16|0);
$72 = HEAP32[$71>>2]|0;
$73 = $1;
$74 = ((($73)) + 8|0);
$75 = HEAP32[$74>>2]|0;
$76 = (($75) + 7)|0;
$77 = (($76|0) / 8)&-1;
$78 = (_memcmp($69,$72,$77)|0);
$0 = $78;
$151 = $0;
STACKTOP = sp;return ($151|0);
}
return (0)|0;
}
function __gcry_mpi_fdiv_r($rem,$dividend,$divisor) {
$rem = $rem|0;
$dividend = $dividend|0;
$divisor = $divisor|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $divisor_sign = 0, $temp_divisor = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rem;
$1 = $dividend;
$2 = $divisor;
$3 = $2;
$4 = ((($3)) + 8|0);
$5 = HEAP32[$4>>2]|0;
$divisor_sign = $5;
$temp_divisor = 0;
$6 = $0;
$7 = $2;
$8 = ($6|0)==($7|0);
if ($8) {
$9 = $2;
$10 = (__gcry_mpi_copy($9)|0);
$temp_divisor = $10;
$11 = $temp_divisor;
$2 = $11;
}
$12 = $0;
$13 = $1;
$14 = $2;
__gcry_mpi_tdiv_r($12,$13,$14);
$15 = $divisor_sign;
$16 = ($15|0)!=(0);
$17 = $16 ? 1 : 0;
$18 = $1;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)!=(0);
$22 = $21 ? 1 : 0;
$23 = $17 ^ $22;
$24 = ($23|0)!=(0);
if ($24) {
$25 = $0;
$26 = ((($25)) + 4|0);
$27 = HEAP32[$26>>2]|0;
$28 = ($27|0)!=(0);
if ($28) {
$29 = $0;
$30 = $0;
$31 = $2;
__gcry_mpi_add($29,$30,$31);
}
}
$32 = $temp_divisor;
$33 = ($32|0)!=(0|0);
if (!($33)) {
STACKTOP = sp;return;
}
$34 = $temp_divisor;
__gcry_mpi_free($34);
STACKTOP = sp;return;
}
function __gcry_mpi_tdiv_r($rem,$num,$den) {
$rem = $rem|0;
$num = $num|0;
$den = $den|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rem;
$1 = $num;
$2 = $den;
$3 = $0;
$4 = $1;
$5 = $2;
__gcry_mpi_tdiv_qr(0,$3,$4,$5);
STACKTOP = sp;return;
}
function __gcry_mpi_tdiv_qr($quot,$rem,$num,$den) {
$quot = $quot|0;
$rem = $rem|0;
$num = $num|0;
$den = $den|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $__a = 0, $__xr = 0, $_i = 0, $_i1 = 0, $_i3 = 0, $_i4 = 0, $dp = 0, $dsize = 0, $marker = 0, $marker_nlimbs = 0, $markidx = 0, $nlimb = 0, $normalization_steps = 0, $np = 0, $nsize = 0, $or$cond = 0, $q_limb = 0, $qp = 0;
var $qsize = 0, $rlimb = 0, $rp = 0, $rsize = 0, $sign_quotient = 0, $sign_remainder = 0, $tp = 0, $tp2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$marker = sp + 64|0;
$marker_nlimbs = sp + 44|0;
$0 = $quot;
$1 = $rem;
$2 = $num;
$3 = $den;
$4 = $2;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$nsize = $6;
$7 = $3;
$8 = ((($7)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$dsize = $9;
$10 = $2;
$11 = ((($10)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$sign_remainder = $12;
$13 = $2;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = $3;
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = $15 ^ $18;
$sign_quotient = $19;
$markidx = 0;
$20 = $nsize;
$21 = (($20) + 1)|0;
$rsize = $21;
$22 = $1;
$23 = $rsize;
__gcry_mpi_resize($22,$23);
$24 = $rsize;
$25 = $dsize;
$26 = (($24) - ($25))|0;
$qsize = $26;
$27 = $qsize;
$28 = ($27|0)<=(0);
if ($28) {
$29 = $2;
$30 = $1;
$31 = ($29|0)!=($30|0);
L3: do {
if ($31) {
$32 = $2;
$33 = ((($32)) + 4|0);
$34 = HEAP32[$33>>2]|0;
$35 = $1;
$36 = ((($35)) + 4|0);
HEAP32[$36>>2] = $34;
$37 = $2;
$38 = ((($37)) + 8|0);
$39 = HEAP32[$38>>2]|0;
$40 = $1;
$41 = ((($40)) + 8|0);
HEAP32[$41>>2] = $39;
$_i = 0;
while(1) {
$42 = $_i;
$43 = $nsize;
$44 = ($42|0)<($43|0);
if (!($44)) {
break L3;
}
$45 = $_i;
$46 = $2;
$47 = ((($46)) + 16|0);
$48 = HEAP32[$47>>2]|0;
$49 = (($48) + ($45<<2)|0);
$50 = HEAP32[$49>>2]|0;
$51 = $_i;
$52 = $1;
$53 = ((($52)) + 16|0);
$54 = HEAP32[$53>>2]|0;
$55 = (($54) + ($51<<2)|0);
HEAP32[$55>>2] = $50;
$56 = $_i;
$57 = (($56) + 1)|0;
$_i = $57;
}
}
} while(0);
$58 = $0;
$59 = ($58|0)!=(0|0);
if (!($59)) {
STACKTOP = sp;return;
}
$60 = $0;
$61 = ((($60)) + 4|0);
HEAP32[$61>>2] = 0;
$62 = $0;
$63 = ((($62)) + 8|0);
HEAP32[$63>>2] = 0;
STACKTOP = sp;return;
}
$64 = $0;
$65 = ($64|0)!=(0|0);
if ($65) {
$66 = $0;
$67 = $qsize;
__gcry_mpi_resize($66,$67);
}
$68 = $2;
$69 = ((($68)) + 16|0);
$70 = HEAP32[$69>>2]|0;
$np = $70;
$71 = $3;
$72 = ((($71)) + 16|0);
$73 = HEAP32[$72>>2]|0;
$dp = $73;
$74 = $1;
$75 = ((($74)) + 16|0);
$76 = HEAP32[$75>>2]|0;
$rp = $76;
$77 = $dsize;
$78 = ($77|0)==(1);
$79 = $0;
$80 = ($79|0)!=(0|0);
if ($78) {
if ($80) {
$81 = $0;
$82 = ((($81)) + 16|0);
$83 = HEAP32[$82>>2]|0;
$qp = $83;
$84 = $qp;
$85 = $np;
$86 = $nsize;
$87 = $dp;
$88 = HEAP32[$87>>2]|0;
$89 = (__gcry_mpih_divmod_1($84,$85,$86,$88)|0);
$rlimb = $89;
$90 = $qsize;
$91 = (($90) - 1)|0;
$92 = $qp;
$93 = (($92) + ($91<<2)|0);
$94 = HEAP32[$93>>2]|0;
$95 = ($94|0)==(0);
$96 = $95&1;
$97 = $qsize;
$98 = (($97) - ($96))|0;
$qsize = $98;
$99 = $qsize;
$100 = $0;
$101 = ((($100)) + 4|0);
HEAP32[$101>>2] = $99;
$102 = $sign_quotient;
$103 = $0;
$104 = ((($103)) + 8|0);
HEAP32[$104>>2] = $102;
} else {
$105 = $np;
$106 = $nsize;
$107 = $dp;
$108 = HEAP32[$107>>2]|0;
$109 = (__gcry_mpih_mod_1($105,$106,$108)|0);
$rlimb = $109;
}
$110 = $rlimb;
$111 = $rp;
HEAP32[$111>>2] = $110;
$112 = $rlimb;
$113 = ($112|0)!=(0);
$114 = $113 ? 1 : 0;
$rsize = $114;
$115 = $rsize;
$116 = $1;
$117 = ((($116)) + 4|0);
HEAP32[$117>>2] = $115;
$118 = $sign_remainder;
$119 = $1;
$120 = ((($119)) + 8|0);
HEAP32[$120>>2] = $118;
STACKTOP = sp;return;
}
L25: do {
if ($80) {
$121 = $0;
$122 = ((($121)) + 16|0);
$123 = HEAP32[$122>>2]|0;
$qp = $123;
$124 = $qp;
$125 = $np;
$126 = ($124|0)==($125|0);
if ($126) {
$127 = $nsize;
$128 = $markidx;
$129 = (($marker_nlimbs) + ($128<<2)|0);
HEAP32[$129>>2] = $127;
$130 = $nsize;
$131 = $0;
$132 = ($131|0)!=(0|0);
if ($132) {
$133 = $0;
$134 = ((($133)) + 12|0);
$135 = HEAP32[$134>>2]|0;
$136 = $135 & 1;
$137 = ($136|0)!=(0);
$139 = $137;
} else {
$139 = 0;
}
$138 = $139&1;
$140 = (__gcry_mpi_alloc_limb_space($130,$138)|0);
$141 = $markidx;
$142 = (($141) + 1)|0;
$markidx = $142;
$143 = (($marker) + ($141<<2)|0);
HEAP32[$143>>2] = $140;
$np = $140;
$_i1 = 0;
while(1) {
$144 = $_i1;
$145 = $nsize;
$146 = ($144|0)<($145|0);
if (!($146)) {
break L25;
}
$147 = $_i1;
$148 = $qp;
$149 = (($148) + ($147<<2)|0);
$150 = HEAP32[$149>>2]|0;
$151 = $_i1;
$152 = $np;
$153 = (($152) + ($151<<2)|0);
HEAP32[$153>>2] = $150;
$154 = $_i1;
$155 = (($154) + 1)|0;
$_i1 = $155;
}
}
} else {
$156 = $rp;
$157 = $dsize;
$158 = (($156) + ($157<<2)|0);
$qp = $158;
}
} while(0);
$159 = $dsize;
$160 = (($159) - 1)|0;
$161 = $dp;
$162 = (($161) + ($160<<2)|0);
$163 = HEAP32[$162>>2]|0;
$__xr = $163;
$164 = $__xr;
$165 = ($164>>>0)<(65536);
$166 = $__xr;
$167 = ($166>>>0)<(256);
$168 = $167 ? 0 : 8;
$169 = ($166>>>0)<(16777216);
$170 = $169 ? 16 : 24;
$171 = $165 ? $168 : $170;
$__a = $171;
$172 = $__xr;
$173 = $__a;
$174 = $172 >>> $173;
$175 = (45829 + ($174)|0);
$176 = HEAP8[$175>>0]|0;
$177 = $176&255;
$178 = $__a;
$179 = (($177) + ($178))|0;
$180 = (32 - ($179))|0;
$normalization_steps = $180;
$181 = $normalization_steps;
$182 = ($181|0)!=(0);
do {
if ($182) {
$183 = $dsize;
$184 = $markidx;
$185 = (($marker_nlimbs) + ($184<<2)|0);
HEAP32[$185>>2] = $183;
$186 = $dsize;
$187 = $3;
$188 = ($187|0)!=(0|0);
if ($188) {
$189 = $3;
$190 = ((($189)) + 12|0);
$191 = HEAP32[$190>>2]|0;
$192 = $191 & 1;
$193 = ($192|0)!=(0);
$195 = $193;
} else {
$195 = 0;
}
$194 = $195&1;
$196 = (__gcry_mpi_alloc_limb_space($186,$194)|0);
$197 = $markidx;
$198 = (($197) + 1)|0;
$markidx = $198;
$199 = (($marker) + ($197<<2)|0);
HEAP32[$199>>2] = $196;
$tp = $196;
$200 = $tp;
$201 = $dp;
$202 = $dsize;
$203 = $normalization_steps;
(__gcry_mpih_lshift($200,$201,$202,$203)|0);
$204 = $tp;
$dp = $204;
$205 = $rp;
$206 = $np;
$207 = $nsize;
$208 = $normalization_steps;
$209 = (__gcry_mpih_lshift($205,$206,$207,$208)|0);
$nlimb = $209;
$210 = $nlimb;
$211 = ($210|0)!=(0);
if ($211) {
$212 = $nlimb;
$213 = $nsize;
$214 = $rp;
$215 = (($214) + ($213<<2)|0);
HEAP32[$215>>2] = $212;
$216 = $nsize;
$217 = (($216) + 1)|0;
$rsize = $217;
break;
} else {
$218 = $nsize;
$rsize = $218;
break;
}
} else {
$219 = $dp;
$220 = $rp;
$221 = ($219|0)==($220|0);
if ($221) {
label = 32;
} else {
$222 = $0;
$223 = ($222|0)!=(0|0);
if ($223) {
$224 = $dp;
$225 = $qp;
$226 = ($224|0)==($225|0);
if ($226) {
label = 32;
}
}
}
if ((label|0) == 32) {
$227 = $dsize;
$228 = $markidx;
$229 = (($marker_nlimbs) + ($228<<2)|0);
HEAP32[$229>>2] = $227;
$230 = $dsize;
$231 = $3;
$232 = ($231|0)!=(0|0);
if ($232) {
$233 = $3;
$234 = ((($233)) + 12|0);
$235 = HEAP32[$234>>2]|0;
$236 = $235 & 1;
$237 = ($236|0)!=(0);
$239 = $237;
} else {
$239 = 0;
}
$238 = $239&1;
$240 = (__gcry_mpi_alloc_limb_space($230,$238)|0);
$241 = $markidx;
$242 = (($241) + 1)|0;
$markidx = $242;
$243 = (($marker) + ($241<<2)|0);
HEAP32[$243>>2] = $240;
$tp2 = $240;
$_i3 = 0;
while(1) {
$244 = $_i3;
$245 = $dsize;
$246 = ($244|0)<($245|0);
if (!($246)) {
break;
}
$247 = $_i3;
$248 = $dp;
$249 = (($248) + ($247<<2)|0);
$250 = HEAP32[$249>>2]|0;
$251 = $_i3;
$252 = $tp2;
$253 = (($252) + ($251<<2)|0);
HEAP32[$253>>2] = $250;
$254 = $_i3;
$255 = (($254) + 1)|0;
$_i3 = $255;
}
$256 = $tp2;
$dp = $256;
}
$257 = $rp;
$258 = $np;
$259 = ($257|0)!=($258|0);
L58: do {
if ($259) {
$_i4 = 0;
while(1) {
$260 = $_i4;
$261 = $nsize;
$262 = ($260|0)<($261|0);
if (!($262)) {
break L58;
}
$263 = $_i4;
$264 = $np;
$265 = (($264) + ($263<<2)|0);
$266 = HEAP32[$265>>2]|0;
$267 = $_i4;
$268 = $rp;
$269 = (($268) + ($267<<2)|0);
HEAP32[$269>>2] = $266;
$270 = $_i4;
$271 = (($270) + 1)|0;
$_i4 = $271;
}
}
} while(0);
$272 = $nsize;
$rsize = $272;
}
} while(0);
$273 = $qp;
$274 = $rp;
$275 = $rsize;
$276 = $dp;
$277 = $dsize;
$278 = (__gcry_mpih_divrem($273,0,$274,$275,$276,$277)|0);
$q_limb = $278;
$279 = $0;
$280 = ($279|0)!=(0|0);
if ($280) {
$281 = $rsize;
$282 = $dsize;
$283 = (($281) - ($282))|0;
$qsize = $283;
$284 = $q_limb;
$285 = ($284|0)!=(0);
if ($285) {
$286 = $q_limb;
$287 = $qsize;
$288 = $qp;
$289 = (($288) + ($287<<2)|0);
HEAP32[$289>>2] = $286;
$290 = $qsize;
$291 = (($290) + 1)|0;
$qsize = $291;
}
$292 = $qsize;
$293 = $0;
$294 = ((($293)) + 4|0);
HEAP32[$294>>2] = $292;
$295 = $sign_quotient;
$296 = $0;
$297 = ((($296)) + 8|0);
HEAP32[$297>>2] = $295;
}
$298 = $dsize;
$rsize = $298;
while(1) {
$299 = $rsize;
$300 = ($299|0)>(0);
if (!($300)) {
break;
}
$301 = $rsize;
$302 = (($301) - 1)|0;
$303 = $rp;
$304 = (($303) + ($302<<2)|0);
$305 = HEAP32[$304>>2]|0;
$306 = ($305|0)!=(0);
if ($306) {
break;
}
$307 = $rsize;
$308 = (($307) + -1)|0;
$rsize = $308;
}
$309 = $normalization_steps;
$310 = ($309|0)!=(0);
$311 = $rsize;
$312 = ($311|0)!=(0);
$or$cond = $310 & $312;
if ($or$cond) {
$313 = $rp;
$314 = $rp;
$315 = $rsize;
$316 = $normalization_steps;
(__gcry_mpih_rshift($313,$314,$315,$316)|0);
$317 = $rsize;
$318 = (($317) - 1)|0;
$319 = $rp;
$320 = (($319) + ($318<<2)|0);
$321 = HEAP32[$320>>2]|0;
$322 = ($321|0)==(0);
$323 = $322 ? 1 : 0;
$324 = $rsize;
$325 = (($324) - ($323))|0;
$rsize = $325;
}
$326 = $rsize;
$327 = $1;
$328 = ((($327)) + 4|0);
HEAP32[$328>>2] = $326;
$329 = $sign_remainder;
$330 = $1;
$331 = ((($330)) + 8|0);
HEAP32[$331>>2] = $329;
while(1) {
$332 = $markidx;
$333 = ($332|0)!=(0);
if (!($333)) {
break;
}
$334 = $markidx;
$335 = (($334) + -1)|0;
$markidx = $335;
$336 = $markidx;
$337 = (($marker) + ($336<<2)|0);
$338 = HEAP32[$337>>2]|0;
$339 = $markidx;
$340 = (($marker_nlimbs) + ($339<<2)|0);
$341 = HEAP32[$340>>2]|0;
__gcry_mpi_free_limb_space($338,$341);
}
STACKTOP = sp;return;
}
function __gcry_mpi_fdiv_r_ui($rem,$dividend,$divisor) {
$rem = $rem|0;
$dividend = $dividend|0;
$divisor = $divisor|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rlimb = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rem;
$1 = $dividend;
$2 = $divisor;
$3 = $1;
$4 = ((($3)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = $1;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $2;
$10 = (__gcry_mpih_mod_1($5,$8,$9)|0);
$rlimb = $10;
$11 = $rlimb;
$12 = ($11|0)!=(0);
if ($12) {
$13 = $1;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0);
if ($16) {
$17 = $2;
$18 = $rlimb;
$19 = (($17) - ($18))|0;
$rlimb = $19;
}
}
$20 = $0;
$21 = ($20|0)!=(0|0);
if (!($21)) {
$31 = $rlimb;
STACKTOP = sp;return ($31|0);
}
$22 = $rlimb;
$23 = $0;
$24 = ((($23)) + 16|0);
$25 = HEAP32[$24>>2]|0;
HEAP32[$25>>2] = $22;
$26 = $rlimb;
$27 = ($26|0)!=(0);
$28 = $27 ? 1 : 0;
$29 = $0;
$30 = ((($29)) + 4|0);
HEAP32[$30>>2] = $28;
$31 = $rlimb;
STACKTOP = sp;return ($31|0);
}
function __gcry_mpi_fdiv_q($quot,$dividend,$divisor) {
$quot = $quot|0;
$dividend = $dividend|0;
$divisor = $divisor|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $quot;
$1 = $dividend;
$2 = $divisor;
$3 = $0;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (__gcry_mpi_alloc($5)|0);
$tmp = $6;
$7 = $0;
$8 = $tmp;
$9 = $1;
$10 = $2;
__gcry_mpi_fdiv_qr($7,$8,$9,$10);
$11 = $tmp;
__gcry_mpi_free($11);
STACKTOP = sp;return;
}
function __gcry_mpi_fdiv_qr($quot,$rem,$dividend,$divisor) {
$quot = $quot|0;
$rem = $rem|0;
$dividend = $dividend|0;
$divisor = $divisor|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $divisor_sign = 0, $temp_divisor = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $quot;
$1 = $rem;
$2 = $dividend;
$3 = $divisor;
$4 = $3;
$5 = ((($4)) + 8|0);
$6 = HEAP32[$5>>2]|0;
$divisor_sign = $6;
$temp_divisor = 0;
$7 = $0;
$8 = $3;
$9 = ($7|0)==($8|0);
if ($9) {
label = 3;
} else {
$10 = $1;
$11 = $3;
$12 = ($10|0)==($11|0);
if ($12) {
label = 3;
}
}
if ((label|0) == 3) {
$13 = $3;
$14 = (__gcry_mpi_copy($13)|0);
$temp_divisor = $14;
$15 = $temp_divisor;
$3 = $15;
}
$16 = $0;
$17 = $1;
$18 = $2;
$19 = $3;
__gcry_mpi_tdiv_qr($16,$17,$18,$19);
$20 = $divisor_sign;
$21 = $2;
$22 = ((($21)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = $20 ^ $23;
$25 = ($24|0)!=(0);
if ($25) {
$26 = $1;
$27 = ((($26)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)!=(0);
if ($29) {
$30 = $0;
$31 = $0;
__gcry_mpi_sub_ui($30,$31,1);
$32 = $1;
$33 = $1;
$34 = $3;
__gcry_mpi_add($32,$33,$34);
}
}
$35 = $temp_divisor;
$36 = ($35|0)!=(0|0);
if (!($36)) {
STACKTOP = sp;return;
}
$37 = $temp_divisor;
__gcry_mpi_free($37);
STACKTOP = sp;return;
}
function __gcry_mpi_tdiv_q_2exp($w,$u,$count) {
$w = $w|0;
$u = $u|0;
$count = $count|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $7 = 0, $8 = 0, $9 = 0, $_i = 0, $limb_cnt = 0, $up = 0, $usize = 0, $wp = 0, $wsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $count;
$3 = $1;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$usize = $5;
$6 = $2;
$7 = (($6>>>0) / 32)&-1;
$limb_cnt = $7;
$8 = $usize;
$9 = $limb_cnt;
$10 = (($8) - ($9))|0;
$wsize = $10;
$11 = $limb_cnt;
$12 = $usize;
$13 = ($11|0)>=($12|0);
$14 = $0;
if ($13) {
$15 = ((($14)) + 4|0);
HEAP32[$15>>2] = 0;
STACKTOP = sp;return;
}
$16 = HEAP32[$14>>2]|0;
$17 = $wsize;
$18 = ($16|0)<($17|0);
if ($18) {
$19 = $0;
$20 = $wsize;
__gcry_mpi_resize($19,$20);
}
$21 = $0;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$wp = $23;
$24 = $1;
$25 = ((($24)) + 16|0);
$26 = HEAP32[$25>>2]|0;
$up = $26;
$27 = $2;
$28 = (($27>>>0) % 32)&-1;
$2 = $28;
$29 = $2;
$30 = ($29|0)!=(0);
L8: do {
if ($30) {
$31 = $wp;
$32 = $up;
$33 = $limb_cnt;
$34 = (($32) + ($33<<2)|0);
$35 = $wsize;
$36 = $2;
(__gcry_mpih_rshift($31,$34,$35,$36)|0);
$37 = $wsize;
$38 = (($37) - 1)|0;
$39 = $wp;
$40 = (($39) + ($38<<2)|0);
$41 = HEAP32[$40>>2]|0;
$42 = ($41|0)!=(0);
$43 = $42 ^ 1;
$44 = $43&1;
$45 = $wsize;
$46 = (($45) - ($44))|0;
$wsize = $46;
} else {
$_i = 0;
while(1) {
$47 = $_i;
$48 = $wsize;
$49 = ($47|0)<($48|0);
if (!($49)) {
break L8;
}
$50 = $_i;
$51 = $up;
$52 = $limb_cnt;
$53 = (($51) + ($52<<2)|0);
$54 = (($53) + ($50<<2)|0);
$55 = HEAP32[$54>>2]|0;
$56 = $_i;
$57 = $wp;
$58 = (($57) + ($56<<2)|0);
HEAP32[$58>>2] = $55;
$59 = $_i;
$60 = (($59) + 1)|0;
$_i = $60;
}
}
} while(0);
$61 = $wsize;
$62 = $0;
$63 = ((($62)) + 4|0);
HEAP32[$63>>2] = $61;
STACKTOP = sp;return;
}
function __gcry_mpi_divisible_ui($dividend,$divisor) {
$dividend = $dividend|0;
$divisor = $divisor|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $dividend;
$1 = $divisor;
$2 = $0;
$3 = ((($2)) + 16|0);
$4 = HEAP32[$3>>2]|0;
$5 = $0;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$8 = $1;
$9 = (__gcry_mpih_mod_1($4,$7,$8)|0);
$10 = ($9|0)!=(0);
$11 = $10 ^ 1;
$12 = $11&1;
STACKTOP = sp;return ($12|0);
}
function __gcry_mpi_gcd($g,$xa,$xb) {
$g = $g|0;
$xa = $xa|0;
$xb = $xb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $a = 0, $b = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $g;
$1 = $xa;
$2 = $xb;
$3 = $1;
$4 = (__gcry_mpi_copy($3)|0);
$a = $4;
$5 = $2;
$6 = (__gcry_mpi_copy($5)|0);
$b = $6;
$7 = $a;
$8 = ((($7)) + 8|0);
HEAP32[$8>>2] = 0;
$9 = $b;
$10 = ((($9)) + 8|0);
HEAP32[$10>>2] = 0;
while(1) {
$11 = $b;
$12 = (__gcry_mpi_cmp_ui($11,0)|0);
$13 = ($12|0)!=(0);
$14 = $0;
$15 = $a;
if (!($13)) {
break;
}
$16 = $b;
__gcry_mpi_fdiv_r($14,$15,$16);
$17 = $a;
$18 = $b;
(__gcry_mpi_set($17,$18)|0);
$19 = $b;
$20 = $0;
(__gcry_mpi_set($19,$20)|0);
}
(__gcry_mpi_set($14,$15)|0);
$21 = $a;
__gcry_mpi_free($21);
$22 = $b;
__gcry_mpi_free($22);
$23 = $0;
$24 = (__gcry_mpi_cmp_ui($23,1)|0);
$25 = ($24|0)!=(0);
$26 = $25 ^ 1;
$27 = $26&1;
STACKTOP = sp;return ($27|0);
}
function __gcry_mpih_add_1($res_ptr,$s1_ptr,$s1_size,$s2_limb) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_limb = $s2_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $res_ptr;
$2 = $s1_ptr;
$3 = $s1_size;
$4 = $s2_limb;
$5 = $2;
$6 = ((($5)) + 4|0);
$2 = $6;
$7 = HEAP32[$5>>2]|0;
$x = $7;
$8 = $x;
$9 = $4;
$10 = (($9) + ($8))|0;
$4 = $10;
$11 = $4;
$12 = $1;
$13 = ((($12)) + 4|0);
$1 = $13;
HEAP32[$12>>2] = $11;
$14 = $4;
$15 = $x;
$16 = ($14>>>0)<($15>>>0);
L1: do {
if ($16) {
while(1) {
$17 = $3;
$18 = (($17) + -1)|0;
$3 = $18;
$19 = ($18|0)!=(0);
if (!($19)) {
break;
}
$20 = $2;
$21 = ((($20)) + 4|0);
$2 = $21;
$22 = HEAP32[$20>>2]|0;
$23 = (($22) + 1)|0;
$x = $23;
$24 = $x;
$25 = $1;
$26 = ((($25)) + 4|0);
$1 = $26;
HEAP32[$25>>2] = $24;
$27 = $x;
$28 = ($27|0)!=(0);
if ($28) {
break L1;
}
}
$0 = 1;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
} while(0);
$29 = $1;
$30 = $2;
$31 = ($29|0)!=($30|0);
L8: do {
if ($31) {
$i = 0;
while(1) {
$32 = $i;
$33 = $3;
$34 = (($33) - 1)|0;
$35 = ($32|0)<($34|0);
if (!($35)) {
break L8;
}
$36 = $i;
$37 = $2;
$38 = (($37) + ($36<<2)|0);
$39 = HEAP32[$38>>2]|0;
$40 = $i;
$41 = $1;
$42 = (($41) + ($40<<2)|0);
HEAP32[$42>>2] = $39;
$43 = $i;
$44 = (($43) + 1)|0;
$i = $44;
}
}
} while(0);
$0 = 0;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
function __gcry_mpih_add($res_ptr,$s1_ptr,$s1_size,$s2_ptr,$s2_size) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_ptr = $s2_ptr|0;
$s2_size = $s2_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s1_size;
$3 = $s2_ptr;
$4 = $s2_size;
$cy = 0;
$5 = $4;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $0;
$8 = $1;
$9 = $3;
$10 = $4;
$11 = (__gcry_mpih_add_n($7,$8,$9,$10)|0);
$cy = $11;
}
$12 = $2;
$13 = $4;
$14 = (($12) - ($13))|0;
$15 = ($14|0)!=(0);
if (!($15)) {
$27 = $cy;
STACKTOP = sp;return ($27|0);
}
$16 = $0;
$17 = $4;
$18 = (($16) + ($17<<2)|0);
$19 = $1;
$20 = $4;
$21 = (($19) + ($20<<2)|0);
$22 = $2;
$23 = $4;
$24 = (($22) - ($23))|0;
$25 = $cy;
$26 = (__gcry_mpih_add_1($18,$21,$24,$25)|0);
$cy = $26;
$27 = $cy;
STACKTOP = sp;return ($27|0);
}
function __gcry_mpih_sub_1($res_ptr,$s1_ptr,$s1_size,$s2_limb) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_limb = $s2_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $res_ptr;
$2 = $s1_ptr;
$3 = $s1_size;
$4 = $s2_limb;
$5 = $2;
$6 = ((($5)) + 4|0);
$2 = $6;
$7 = HEAP32[$5>>2]|0;
$x = $7;
$8 = $x;
$9 = $4;
$10 = (($8) - ($9))|0;
$4 = $10;
$11 = $4;
$12 = $1;
$13 = ((($12)) + 4|0);
$1 = $13;
HEAP32[$12>>2] = $11;
$14 = $4;
$15 = $x;
$16 = ($14>>>0)>($15>>>0);
L1: do {
if ($16) {
while(1) {
$17 = $3;
$18 = (($17) + -1)|0;
$3 = $18;
$19 = ($18|0)!=(0);
if (!($19)) {
break;
}
$20 = $2;
$21 = ((($20)) + 4|0);
$2 = $21;
$22 = HEAP32[$20>>2]|0;
$x = $22;
$23 = $x;
$24 = (($23) - 1)|0;
$25 = $1;
$26 = ((($25)) + 4|0);
$1 = $26;
HEAP32[$25>>2] = $24;
$27 = $x;
$28 = ($27|0)!=(0);
if ($28) {
break L1;
}
}
$0 = 1;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
} while(0);
$29 = $1;
$30 = $2;
$31 = ($29|0)!=($30|0);
L8: do {
if ($31) {
$i = 0;
while(1) {
$32 = $i;
$33 = $3;
$34 = (($33) - 1)|0;
$35 = ($32|0)<($34|0);
if (!($35)) {
break L8;
}
$36 = $i;
$37 = $2;
$38 = (($37) + ($36<<2)|0);
$39 = HEAP32[$38>>2]|0;
$40 = $i;
$41 = $1;
$42 = (($41) + ($40<<2)|0);
HEAP32[$42>>2] = $39;
$43 = $i;
$44 = (($43) + 1)|0;
$i = $44;
}
}
} while(0);
$0 = 0;
$45 = $0;
STACKTOP = sp;return ($45|0);
}
function __gcry_mpih_sub($res_ptr,$s1_ptr,$s1_size,$s2_ptr,$s2_size) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_ptr = $s2_ptr|0;
$s2_size = $s2_size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s1_size;
$3 = $s2_ptr;
$4 = $s2_size;
$cy = 0;
$5 = $4;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $0;
$8 = $1;
$9 = $3;
$10 = $4;
$11 = (__gcry_mpih_sub_n($7,$8,$9,$10)|0);
$cy = $11;
}
$12 = $2;
$13 = $4;
$14 = (($12) - ($13))|0;
$15 = ($14|0)!=(0);
if (!($15)) {
$27 = $cy;
STACKTOP = sp;return ($27|0);
}
$16 = $0;
$17 = $4;
$18 = (($16) + ($17<<2)|0);
$19 = $1;
$20 = $4;
$21 = (($19) + ($20<<2)|0);
$22 = $2;
$23 = $4;
$24 = (($22) - ($23))|0;
$25 = $cy;
$26 = (__gcry_mpih_sub_1($18,$21,$24,$25)|0);
$cy = $26;
$27 = $cy;
STACKTOP = sp;return ($27|0);
}
function __gcry_mpih_cmp($op1_ptr,$op2_ptr,$size) {
$op1_ptr = $op1_ptr|0;
$op2_ptr = $op2_ptr|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $op1_word = 0, $op2_word = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $op1_ptr;
$2 = $op2_ptr;
$3 = $size;
$4 = $3;
$5 = (($4) - 1)|0;
$i = $5;
while(1) {
$6 = $i;
$7 = ($6|0)>=(0);
if (!($7)) {
label = 5;
break;
}
$8 = $i;
$9 = $1;
$10 = (($9) + ($8<<2)|0);
$11 = HEAP32[$10>>2]|0;
$op1_word = $11;
$12 = $i;
$13 = $2;
$14 = (($13) + ($12<<2)|0);
$15 = HEAP32[$14>>2]|0;
$op2_word = $15;
$16 = $op1_word;
$17 = $op2_word;
$18 = ($16|0)!=($17|0);
if ($18) {
label = 6;
break;
}
$19 = $i;
$20 = (($19) + -1)|0;
$i = $20;
}
if ((label|0) == 5) {
$0 = 0;
$25 = $0;
STACKTOP = sp;return ($25|0);
}
else if ((label|0) == 6) {
$21 = $op1_word;
$22 = $op2_word;
$23 = ($21>>>0)>($22>>>0);
$24 = $23 ? 1 : -1;
$0 = $24;
$25 = $0;
STACKTOP = sp;return ($25|0);
}
return (0)|0;
}
function __gcry_mpi_invm($x,$a,$n) {
$x = $x|0;
$a = $a|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $k = 0, $odd = 0, $sign = 0, $t1 = 0;
var $t2 = 0, $t3 = 0, $u = 0, $u1 = 0, $u2 = 0, $u3 = 0, $v = 0, $v1 = 0, $v2 = 0, $v3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $x;
$2 = $a;
$3 = $n;
$u2 = 0;
$v2 = 0;
$t2 = 0;
$4 = $2;
$5 = (__gcry_mpi_cmp_ui($4,0)|0);
$6 = ($5|0)!=(0);
if (!($6)) {
$0 = 0;
$195 = $0;
STACKTOP = sp;return ($195|0);
}
$7 = $3;
$8 = (__gcry_mpi_cmp_ui($7,1)|0);
$9 = ($8|0)!=(0);
if (!($9)) {
$0 = 0;
$195 = $0;
STACKTOP = sp;return ($195|0);
}
$10 = $2;
$11 = (__gcry_mpi_copy($10)|0);
$u = $11;
$12 = $3;
$13 = (__gcry_mpi_copy($12)|0);
$v = $13;
$k = 0;
while(1) {
$14 = $u;
$15 = (__gcry_mpi_test_bit($14,0)|0);
$16 = ($15|0)!=(0);
if ($16) {
break;
}
$17 = $v;
$18 = (__gcry_mpi_test_bit($17,0)|0);
$19 = ($18|0)!=(0);
$20 = $19 ^ 1;
if (!($20)) {
break;
}
$21 = $u;
$22 = $u;
__gcry_mpi_rshift($21,$22,1);
$23 = $v;
$24 = $v;
__gcry_mpi_rshift($23,$24,1);
$25 = $k;
$26 = (($25) + 1)|0;
$k = $26;
}
$27 = $v;
$28 = (__gcry_mpi_test_bit($27,0)|0);
$odd = $28;
$29 = (__gcry_mpi_alloc_set_ui(1)|0);
$u1 = $29;
$30 = $odd;
$31 = ($30|0)!=(0);
if (!($31)) {
$32 = (__gcry_mpi_alloc_set_ui(0)|0);
$u2 = $32;
}
$33 = $u;
$34 = (__gcry_mpi_copy($33)|0);
$u3 = $34;
$35 = $v;
$36 = (__gcry_mpi_copy($35)|0);
$v1 = $36;
$37 = $odd;
$38 = ($37|0)!=(0);
if (!($38)) {
$39 = $u;
$40 = ((($39)) + 4|0);
$41 = HEAP32[$40>>2]|0;
$42 = (__gcry_mpi_alloc($41)|0);
$v2 = $42;
$43 = $v2;
$44 = $u1;
$45 = $u;
__gcry_mpi_sub($43,$44,$45);
}
$46 = $v;
$47 = (__gcry_mpi_copy($46)|0);
$v3 = $47;
$48 = $u;
$49 = (__gcry_mpi_test_bit($48,0)|0);
$50 = ($49|0)!=(0);
if ($50) {
$51 = (__gcry_mpi_alloc_set_ui(0)|0);
$t1 = $51;
$52 = $odd;
$53 = ($52|0)!=(0);
if (!($53)) {
$54 = (__gcry_mpi_alloc_set_ui(1)|0);
$t2 = $54;
$55 = $t2;
$56 = ((($55)) + 8|0);
HEAP32[$56>>2] = 1;
}
$57 = $v;
$58 = (__gcry_mpi_copy($57)|0);
$t3 = $58;
$59 = $t3;
$60 = ((($59)) + 8|0);
$61 = HEAP32[$60>>2]|0;
$62 = ($61|0)!=(0);
$63 = $62 ^ 1;
$64 = $63&1;
$65 = $t3;
$66 = ((($65)) + 8|0);
HEAP32[$66>>2] = $64;
} else {
$67 = (__gcry_mpi_alloc_set_ui(1)|0);
$t1 = $67;
$68 = $odd;
$69 = ($68|0)!=(0);
if (!($69)) {
$70 = (__gcry_mpi_alloc_set_ui(0)|0);
$t2 = $70;
}
$71 = $u;
$72 = (__gcry_mpi_copy($71)|0);
$t3 = $72;
label = 20;
}
while(1) {
if ((label|0) == 20) {
label = 0;
$73 = $odd;
$74 = ($73|0)!=(0);
$75 = $t1;
$76 = (__gcry_mpi_test_bit($75,0)|0);
$77 = ($76|0)!=(0);
if ($74) {
if ($77) {
$93 = $t1;
$94 = $t1;
$95 = $v;
__gcry_mpi_add($93,$94,$95);
}
$96 = $t1;
$97 = $t1;
__gcry_mpi_rshift($96,$97,1);
$98 = $t3;
$99 = $t3;
__gcry_mpi_rshift($98,$99,1);
continue;
}
if ($77) {
label = 23;
} else {
$78 = $t2;
$79 = (__gcry_mpi_test_bit($78,0)|0);
$80 = ($79|0)!=(0);
if ($80) {
label = 23;
}
}
if ((label|0) == 23) {
label = 0;
$81 = $t1;
$82 = $t1;
$83 = $v;
__gcry_mpi_add($81,$82,$83);
$84 = $t2;
$85 = $t2;
$86 = $u;
__gcry_mpi_sub($84,$85,$86);
}
$87 = $t1;
$88 = $t1;
__gcry_mpi_rshift($87,$88,1);
$89 = $t2;
$90 = $t2;
__gcry_mpi_rshift($89,$90,1);
$91 = $t3;
$92 = $t3;
__gcry_mpi_rshift($91,$92,1);
}
$100 = $t3;
$101 = (__gcry_mpi_test_bit($100,0)|0);
$102 = ($101|0)!=(0);
$103 = $102 ^ 1;
if ($103) {
label = 20;
continue;
}
$104 = $t3;
$105 = ((($104)) + 8|0);
$106 = HEAP32[$105>>2]|0;
$107 = ($106|0)!=(0);
if ($107) {
$116 = $v1;
$117 = $v;
$118 = $t1;
__gcry_mpi_sub($116,$117,$118);
$119 = $u;
$120 = ((($119)) + 8|0);
$121 = HEAP32[$120>>2]|0;
$sign = $121;
$122 = $u;
$123 = ((($122)) + 8|0);
$124 = HEAP32[$123>>2]|0;
$125 = ($124|0)!=(0);
$126 = $125 ^ 1;
$127 = $126&1;
$128 = $u;
$129 = ((($128)) + 8|0);
HEAP32[$129>>2] = $127;
$130 = $odd;
$131 = ($130|0)!=(0);
if (!($131)) {
$132 = $v2;
$133 = $u;
$134 = $t2;
__gcry_mpi_sub($132,$133,$134);
}
$135 = $sign;
$136 = $u;
$137 = ((($136)) + 8|0);
HEAP32[$137>>2] = $135;
$138 = $t3;
$139 = ((($138)) + 8|0);
$140 = HEAP32[$139>>2]|0;
$sign = $140;
$141 = $t3;
$142 = ((($141)) + 8|0);
$143 = HEAP32[$142>>2]|0;
$144 = ($143|0)!=(0);
$145 = $144 ^ 1;
$146 = $145&1;
$147 = $t3;
$148 = ((($147)) + 8|0);
HEAP32[$148>>2] = $146;
$149 = $v3;
$150 = $t3;
(__gcry_mpi_set($149,$150)|0);
$151 = $sign;
$152 = $t3;
$153 = ((($152)) + 8|0);
HEAP32[$153>>2] = $151;
} else {
$108 = $u1;
$109 = $t1;
(__gcry_mpi_set($108,$109)|0);
$110 = $odd;
$111 = ($110|0)!=(0);
if (!($111)) {
$112 = $u2;
$113 = $t2;
(__gcry_mpi_set($112,$113)|0);
}
$114 = $u3;
$115 = $t3;
(__gcry_mpi_set($114,$115)|0);
}
$154 = $t1;
$155 = $u1;
$156 = $v1;
__gcry_mpi_sub($154,$155,$156);
$157 = $odd;
$158 = ($157|0)!=(0);
if (!($158)) {
$159 = $t2;
$160 = $u2;
$161 = $v2;
__gcry_mpi_sub($159,$160,$161);
}
$162 = $t3;
$163 = $u3;
$164 = $v3;
__gcry_mpi_sub($162,$163,$164);
$165 = $t1;
$166 = ((($165)) + 8|0);
$167 = HEAP32[$166>>2]|0;
$168 = ($167|0)!=(0);
if ($168) {
$169 = $t1;
$170 = $t1;
$171 = $v;
__gcry_mpi_add($169,$170,$171);
$172 = $odd;
$173 = ($172|0)!=(0);
if (!($173)) {
$174 = $t2;
$175 = $t2;
$176 = $u;
__gcry_mpi_sub($174,$175,$176);
}
}
$177 = $t3;
$178 = (__gcry_mpi_cmp_ui($177,0)|0);
$179 = ($178|0)!=(0);
if ($179) {
label = 20;
} else {
break;
}
}
$180 = $1;
$181 = $u1;
(__gcry_mpi_set($180,$181)|0);
$182 = $u1;
__gcry_mpi_free($182);
$183 = $v1;
__gcry_mpi_free($183);
$184 = $t1;
__gcry_mpi_free($184);
$185 = $odd;
$186 = ($185|0)!=(0);
if (!($186)) {
$187 = $u2;
__gcry_mpi_free($187);
$188 = $v2;
__gcry_mpi_free($188);
$189 = $t2;
__gcry_mpi_free($189);
}
$190 = $u3;
__gcry_mpi_free($190);
$191 = $v3;
__gcry_mpi_free($191);
$192 = $t3;
__gcry_mpi_free($192);
$193 = $u;
__gcry_mpi_free($193);
$194 = $v;
__gcry_mpi_free($194);
$0 = 1;
$195 = $0;
STACKTOP = sp;return ($195|0);
}
function __gcry_mpi_mod($rem,$dividend,$divisor) {
$rem = $rem|0;
$dividend = $dividend|0;
$divisor = $divisor|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rem;
$1 = $dividend;
$2 = $divisor;
$3 = $0;
$4 = $1;
$5 = $2;
__gcry_mpi_fdiv_r($3,$4,$5);
STACKTOP = sp;return;
}
function __gcry_mpi_barrett_init($m,$copy) {
$m = $m|0;
$copy = $copy|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $m;
$1 = $copy;
$2 = $0;
__gcry_mpi_normalize($2);
$3 = (__gcry_xcalloc(1,28)|0);
$ctx = $3;
$4 = $1;
$5 = ($4|0)!=(0);
$6 = $0;
if ($5) {
$7 = (__gcry_mpi_copy($6)|0);
$8 = $ctx;
HEAP32[$8>>2] = $7;
$9 = $ctx;
$10 = ((($9)) + 4|0);
HEAP32[$10>>2] = 1;
} else {
$11 = $ctx;
HEAP32[$11>>2] = $6;
}
$12 = $0;
$13 = ((($12)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$15 = $ctx;
$16 = ((($15)) + 8|0);
HEAP32[$16>>2] = $14;
$17 = $ctx;
$18 = ((($17)) + 8|0);
$19 = HEAP32[$18>>2]|0;
$20 = (($19) + 1)|0;
$21 = (__gcry_mpi_alloc($20)|0);
$tmp = $21;
$22 = $tmp;
(__gcry_mpi_set_ui($22,1)|0);
$23 = $tmp;
$24 = $ctx;
$25 = ((($24)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = $26<<1;
__gcry_mpi_lshift_limbs($23,$27);
$28 = $tmp;
$29 = $tmp;
$30 = $0;
__gcry_mpi_fdiv_q($28,$29,$30);
$31 = $tmp;
$32 = $ctx;
$33 = ((($32)) + 12|0);
HEAP32[$33>>2] = $31;
$34 = $ctx;
$35 = ((($34)) + 8|0);
$36 = HEAP32[$35>>2]|0;
$37 = $36<<1;
$38 = (($37) + 1)|0;
$39 = (__gcry_mpi_alloc($38)|0);
$40 = $ctx;
$41 = ((($40)) + 16|0);
HEAP32[$41>>2] = $39;
$42 = $ctx;
$43 = ((($42)) + 8|0);
$44 = HEAP32[$43>>2]|0;
$45 = $44<<1;
$46 = (($45) + 1)|0;
$47 = (__gcry_mpi_alloc($46)|0);
$48 = $ctx;
$49 = ((($48)) + 20|0);
HEAP32[$49>>2] = $47;
$50 = $ctx;
STACKTOP = sp;return ($50|0);
}
function __gcry_mpi_barrett_free($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
__gcry_mpi_free($5);
$6 = $0;
$7 = ((($6)) + 16|0);
$8 = HEAP32[$7>>2]|0;
__gcry_mpi_free($8);
$9 = $0;
$10 = ((($9)) + 20|0);
$11 = HEAP32[$10>>2]|0;
__gcry_mpi_free($11);
$12 = $0;
$13 = ((($12)) + 24|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $0;
$17 = ((($16)) + 24|0);
$18 = HEAP32[$17>>2]|0;
__gcry_mpi_free($18);
}
$19 = $0;
$20 = ((($19)) + 4|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)!=(0);
if ($22) {
$23 = $0;
$24 = HEAP32[$23>>2]|0;
__gcry_mpi_free($24);
}
$25 = $0;
__gcry_free($25);
STACKTOP = sp;return;
}
function __gcry_mpi_mod_barrett($r,$x,$ctx) {
$r = $r|0;
$x = $x|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $k = 0, $m = 0, $r1 = 0, $r2 = 0, $sign = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $r;
$1 = $x;
$2 = $ctx;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$m = $4;
$5 = $2;
$6 = ((($5)) + 8|0);
$7 = HEAP32[$6>>2]|0;
$k = $7;
$8 = $2;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$y = $10;
$11 = $2;
$12 = ((($11)) + 16|0);
$13 = HEAP32[$12>>2]|0;
$r1 = $13;
$14 = $2;
$15 = ((($14)) + 20|0);
$16 = HEAP32[$15>>2]|0;
$r2 = $16;
$17 = $1;
__gcry_mpi_normalize($17);
$18 = $1;
$19 = ((($18)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = $k;
$22 = $21<<1;
$23 = ($20|0)>($22|0);
if ($23) {
$24 = $0;
$25 = $1;
$26 = $m;
__gcry_mpi_mod($24,$25,$26);
STACKTOP = sp;return;
}
$27 = $1;
$28 = ((($27)) + 8|0);
$29 = HEAP32[$28>>2]|0;
$sign = $29;
$30 = $1;
$31 = ((($30)) + 8|0);
HEAP32[$31>>2] = 0;
$32 = $r2;
$33 = $1;
(__gcry_mpi_set($32,$33)|0);
$34 = $r2;
$35 = $k;
$36 = (($35) - 1)|0;
__gcry_mpi_rshift_limbs($34,$36);
$37 = $r2;
$38 = $r2;
$39 = $y;
__gcry_mpi_mul($37,$38,$39);
$40 = $r2;
$41 = $k;
$42 = (($41) + 1)|0;
__gcry_mpi_rshift_limbs($40,$42);
$43 = $r1;
$44 = $1;
(__gcry_mpi_set($43,$44)|0);
$45 = $r1;
$46 = ((($45)) + 4|0);
$47 = HEAP32[$46>>2]|0;
$48 = $k;
$49 = (($48) + 1)|0;
$50 = ($47|0)>($49|0);
if ($50) {
$51 = $k;
$52 = (($51) + 1)|0;
$53 = $r1;
$54 = ((($53)) + 4|0);
HEAP32[$54>>2] = $52;
}
$55 = $r2;
$56 = $r2;
$57 = $m;
__gcry_mpi_mul($55,$56,$57);
$58 = $r2;
$59 = ((($58)) + 4|0);
$60 = HEAP32[$59>>2]|0;
$61 = $k;
$62 = (($61) + 1)|0;
$63 = ($60|0)>($62|0);
if ($63) {
$64 = $k;
$65 = (($64) + 1)|0;
$66 = $r2;
$67 = ((($66)) + 4|0);
HEAP32[$67>>2] = $65;
}
$68 = $0;
$69 = $r1;
$70 = $r2;
__gcry_mpi_sub($68,$69,$70);
$71 = $0;
$72 = ((($71)) + 8|0);
$73 = HEAP32[$72>>2]|0;
$74 = ($73|0)!=(0);
if ($74) {
$75 = $2;
$76 = ((($75)) + 24|0);
$77 = HEAP32[$76>>2]|0;
$78 = ($77|0)!=(0|0);
if (!($78)) {
$79 = $k;
$80 = (($79) + 2)|0;
$81 = (__gcry_mpi_alloc($80)|0);
$82 = $2;
$83 = ((($82)) + 24|0);
HEAP32[$83>>2] = $81;
$84 = $2;
$85 = ((($84)) + 24|0);
$86 = HEAP32[$85>>2]|0;
(__gcry_mpi_set_ui($86,1)|0);
$87 = $2;
$88 = ((($87)) + 24|0);
$89 = HEAP32[$88>>2]|0;
$90 = $k;
$91 = (($90) + 1)|0;
__gcry_mpi_lshift_limbs($89,$91);
}
$92 = $0;
$93 = $0;
$94 = $2;
$95 = ((($94)) + 24|0);
$96 = HEAP32[$95>>2]|0;
__gcry_mpi_add($92,$93,$96);
}
while(1) {
$97 = $0;
$98 = $m;
$99 = (__gcry_mpi_cmp($97,$98)|0);
$100 = ($99|0)>=(0);
if (!($100)) {
break;
}
$101 = $0;
$102 = $0;
$103 = $m;
__gcry_mpi_sub($101,$102,$103);
}
$104 = $sign;
$105 = $1;
$106 = ((($105)) + 8|0);
HEAP32[$106>>2] = $104;
STACKTOP = sp;return;
}
function __gcry_mpi_mul($w,$u,$v) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_i = 0, $_i1 = 0, $_i2 = 0, $assign_wp = 0, $cy = 0, $sign_product = 0, $tmp_limb = 0, $tmp_limb_nlimbs = 0, $tmp_wp = 0, $up = 0, $usecure = 0, $usign = 0, $usize = 0, $vp = 0, $vsecure = 0;
var $vsign = 0, $vsize = 0, $wp = 0, $wsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$assign_wp = 0;
$tmp_limb = 0;
$tmp_limb_nlimbs = 0;
$3 = $1;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $2;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($5|0)<($8|0);
if ($9) {
$10 = $2;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$usize = $12;
$13 = $2;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$usign = $15;
$16 = $2;
$17 = ($16|0)!=(0|0);
if ($17) {
$18 = $2;
$19 = ((($18)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = $20 & 1;
$22 = ($21|0)!=(0);
$24 = $22;
} else {
$24 = 0;
}
$23 = $24&1;
$usecure = $23;
$25 = $2;
$26 = ((($25)) + 16|0);
$27 = HEAP32[$26>>2]|0;
$up = $27;
$28 = $1;
$29 = ((($28)) + 4|0);
$30 = HEAP32[$29>>2]|0;
$vsize = $30;
$31 = $1;
$32 = ((($31)) + 8|0);
$33 = HEAP32[$32>>2]|0;
$vsign = $33;
$34 = $1;
$35 = ($34|0)!=(0|0);
if ($35) {
$36 = $1;
$37 = ((($36)) + 12|0);
$38 = HEAP32[$37>>2]|0;
$39 = $38 & 1;
$40 = ($39|0)!=(0);
$42 = $40;
} else {
$42 = 0;
}
$41 = $42&1;
$vsecure = $41;
$43 = $1;
$44 = ((($43)) + 16|0);
$45 = HEAP32[$44>>2]|0;
$vp = $45;
} else {
$46 = $1;
$47 = ((($46)) + 4|0);
$48 = HEAP32[$47>>2]|0;
$usize = $48;
$49 = $1;
$50 = ((($49)) + 8|0);
$51 = HEAP32[$50>>2]|0;
$usign = $51;
$52 = $1;
$53 = ($52|0)!=(0|0);
if ($53) {
$54 = $1;
$55 = ((($54)) + 12|0);
$56 = HEAP32[$55>>2]|0;
$57 = $56 & 1;
$58 = ($57|0)!=(0);
$60 = $58;
} else {
$60 = 0;
}
$59 = $60&1;
$usecure = $59;
$61 = $1;
$62 = ((($61)) + 16|0);
$63 = HEAP32[$62>>2]|0;
$up = $63;
$64 = $2;
$65 = ((($64)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$vsize = $66;
$67 = $2;
$68 = ((($67)) + 8|0);
$69 = HEAP32[$68>>2]|0;
$vsign = $69;
$70 = $2;
$71 = ($70|0)!=(0|0);
if ($71) {
$72 = $2;
$73 = ((($72)) + 12|0);
$74 = HEAP32[$73>>2]|0;
$75 = $74 & 1;
$76 = ($75|0)!=(0);
$78 = $76;
} else {
$78 = 0;
}
$77 = $78&1;
$vsecure = $77;
$79 = $2;
$80 = ((($79)) + 16|0);
$81 = HEAP32[$80>>2]|0;
$vp = $81;
}
$82 = $usign;
$83 = $vsign;
$84 = $82 ^ $83;
$sign_product = $84;
$85 = $0;
$86 = ((($85)) + 16|0);
$87 = HEAP32[$86>>2]|0;
$wp = $87;
$88 = $usize;
$89 = $vsize;
$90 = (($88) + ($89))|0;
$wsize = $90;
$91 = $0;
$92 = ($91|0)!=(0|0);
if ($92) {
$93 = $0;
$94 = ((($93)) + 12|0);
$95 = HEAP32[$94>>2]|0;
$96 = $95 & 1;
$97 = ($96|0)!=(0);
if ($97) {
label = 19;
} else {
label = 14;
}
} else {
label = 14;
}
do {
if ((label|0) == 14) {
$98 = $1;
$99 = ($98|0)!=(0|0);
if ($99) {
$100 = $1;
$101 = ((($100)) + 12|0);
$102 = HEAP32[$101>>2]|0;
$103 = $102 & 1;
$104 = ($103|0)!=(0);
if (!($104)) {
label = 16;
}
} else {
label = 16;
}
if ((label|0) == 16) {
$105 = $2;
$106 = ($105|0)!=(0|0);
if (!($106)) {
label = 19;
break;
}
$107 = $2;
$108 = ((($107)) + 12|0);
$109 = HEAP32[$108>>2]|0;
$110 = $109 & 1;
$111 = ($110|0)!=(0);
if (!($111)) {
label = 19;
break;
}
}
$112 = $wsize;
$113 = (__gcry_mpi_alloc_limb_space($112,1)|0);
$wp = $113;
$assign_wp = 2;
}
} while(0);
L27: do {
if ((label|0) == 19) {
$114 = $0;
$115 = HEAP32[$114>>2]|0;
$116 = $wsize;
$117 = ($115|0)<($116|0);
$118 = $wp;
$119 = $up;
$120 = ($118|0)==($119|0);
if ($117) {
if (!($120)) {
$121 = $wp;
$122 = $vp;
$123 = ($121|0)==($122|0);
if (!($123)) {
$135 = $0;
$136 = $wsize;
__gcry_mpi_resize($135,$136);
$137 = $0;
$138 = ((($137)) + 16|0);
$139 = HEAP32[$138>>2]|0;
$wp = $139;
break;
}
}
$124 = $wsize;
$125 = $0;
$126 = ($125|0)!=(0|0);
if ($126) {
$127 = $0;
$128 = ((($127)) + 12|0);
$129 = HEAP32[$128>>2]|0;
$130 = $129 & 1;
$131 = ($130|0)!=(0);
$133 = $131;
} else {
$133 = 0;
}
$132 = $133&1;
$134 = (__gcry_mpi_alloc_limb_space($124,$132)|0);
$wp = $134;
$assign_wp = 1;
break;
}
if (!($120)) {
$160 = $wp;
$161 = $vp;
$162 = ($160|0)==($161|0);
if (!($162)) {
break;
}
$163 = $vsize;
$tmp_limb_nlimbs = $163;
$164 = $vsize;
$165 = $vsecure;
$166 = (__gcry_mpi_alloc_limb_space($164,$165)|0);
$tmp_limb = $166;
$vp = $166;
$_i1 = 0;
while(1) {
$167 = $_i1;
$168 = $vsize;
$169 = ($167|0)<($168|0);
if (!($169)) {
break L27;
}
$170 = $_i1;
$171 = $wp;
$172 = (($171) + ($170<<2)|0);
$173 = HEAP32[$172>>2]|0;
$174 = $_i1;
$175 = $vp;
$176 = (($175) + ($174<<2)|0);
HEAP32[$176>>2] = $173;
$177 = $_i1;
$178 = (($177) + 1)|0;
$_i1 = $178;
}
}
$140 = $usize;
$tmp_limb_nlimbs = $140;
$141 = $usize;
$142 = $usecure;
$143 = (__gcry_mpi_alloc_limb_space($141,$142)|0);
$tmp_limb = $143;
$up = $143;
$144 = $wp;
$145 = $vp;
$146 = ($144|0)==($145|0);
if ($146) {
$147 = $up;
$vp = $147;
}
$_i = 0;
while(1) {
$148 = $_i;
$149 = $usize;
$150 = ($148|0)<($149|0);
if (!($150)) {
break L27;
}
$151 = $_i;
$152 = $wp;
$153 = (($152) + ($151<<2)|0);
$154 = HEAP32[$153>>2]|0;
$155 = $_i;
$156 = $up;
$157 = (($156) + ($155<<2)|0);
HEAP32[$157>>2] = $154;
$158 = $_i;
$159 = (($158) + 1)|0;
$_i = $159;
}
}
} while(0);
$179 = $vsize;
$180 = ($179|0)!=(0);
if ($180) {
$181 = $wp;
$182 = $up;
$183 = $usize;
$184 = $vp;
$185 = $vsize;
$186 = (__gcry_mpih_mul($181,$182,$183,$184,$185)|0);
$cy = $186;
$187 = $cy;
$188 = ($187|0)!=(0);
$189 = $188 ? 0 : 1;
$190 = $wsize;
$191 = (($190) - ($189))|0;
$wsize = $191;
} else {
$wsize = 0;
}
$192 = $assign_wp;
$193 = ($192|0)!=(0);
if ($193) {
$194 = $assign_wp;
$195 = ($194|0)==(2);
if ($195) {
$196 = $wsize;
$197 = (__gcry_mpi_alloc_limb_space($196,0)|0);
$tmp_wp = $197;
$_i2 = 0;
while(1) {
$198 = $_i2;
$199 = $wsize;
$200 = ($198|0)<($199|0);
if (!($200)) {
break;
}
$201 = $_i2;
$202 = $wp;
$203 = (($202) + ($201<<2)|0);
$204 = HEAP32[$203>>2]|0;
$205 = $_i2;
$206 = $tmp_wp;
$207 = (($206) + ($205<<2)|0);
HEAP32[$207>>2] = $204;
$208 = $_i2;
$209 = (($208) + 1)|0;
$_i2 = $209;
}
$210 = $wp;
__gcry_mpi_free_limb_space($210,0);
$211 = $tmp_wp;
$wp = $211;
}
$212 = $0;
$213 = $wp;
$214 = $wsize;
__gcry_mpi_assign_limb_space($212,$213,$214);
}
$215 = $wsize;
$216 = $0;
$217 = ((($216)) + 4|0);
HEAP32[$217>>2] = $215;
$218 = $sign_product;
$219 = $0;
$220 = ((($219)) + 8|0);
HEAP32[$220>>2] = $218;
$221 = $tmp_limb;
$222 = ($221|0)!=(0|0);
if (!($222)) {
STACKTOP = sp;return;
}
$223 = $tmp_limb;
$224 = $tmp_limb_nlimbs;
__gcry_mpi_free_limb_space($223,$224);
STACKTOP = sp;return;
}
function __gcry_mpi_mulm($w,$u,$v,$m) {
$w = $w|0;
$u = $u|0;
$v = $v|0;
$m = $m|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $v;
$3 = $m;
$4 = $0;
$5 = $1;
$6 = $2;
__gcry_mpi_mul($4,$5,$6);
$7 = $0;
$8 = $0;
$9 = $3;
__gcry_mpi_tdiv_r($7,$8,$9);
STACKTOP = sp;return;
}
function __gcry_mpi_powm($res,$base,$expo,$mod) {
$res = $res|0;
$base = $base|0;
$expo = $expo|0;
$mod = $mod|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0;
var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0;
var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0;
var $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0;
var $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0;
var $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0;
var $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0;
var $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0;
var $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0;
var $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $W = 0, $__a = 0, $__a10 = 0, $__a12 = 0, $__a14 = 0, $__a18 = 0, $__ctz_c = 0, $__ctz_c16 = 0, $__ctz_x = 0, $__ctz_x15 = 0, $__xr = 0, $__xr11 = 0, $__xr13 = 0, $__xr17 = 0, $__xr9 = 0, $_i = 0, $_i1 = 0, $_i2 = 0, $_i21 = 0;
var $_i3 = 0, $_i4 = 0, $_i5 = 0, $_i6 = 0, $_i7 = 0, $_i8 = 0, $base_u = 0, $base_u_size = 0, $bp = 0, $bp_marker = 0, $bp_nlimbs = 0, $bsec = 0, $bsign = 0, $bsize = 0, $c = 0, $c0 = 0, $carry_limb = 0, $e = 0, $e0 = 0, $ep = 0;
var $ep_marker = 0, $ep_nlimbs = 0, $esec = 0, $esize = 0, $i = 0, $j = 0, $k = 0, $karactx = 0, $max_u_size = 0, $mod_shift_cnt = 0, $mp = 0, $mp_marker = 0, $mp_nlimbs = 0, $msec = 0, $msign = 0, $msize = 0, $negative_result = 0, $or$cond = 0, $precomp = 0, $precomp_size = 0;
var $rp = 0, $rsign = 0, $rsize = 0, $size = 0, $tp = 0, $u = 0, $u20 = 0, $w = 0, $w19 = 0, $xp = 0, $xp_marker = 0, $xp_nlimbs = 0, $xsize = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 512|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$rsize = sp + 460|0;
$precomp = sp + 328|0;
$precomp_size = sp + 264|0;
$xsize = sp + 204|0;
$karactx = sp + 164|0;
$w = sp + 80|0;
$u = sp + 60|0;
$w19 = sp + 24|0;
$u20 = sp + 4|0;
$0 = $res;
$1 = $base;
$2 = $expo;
$3 = $mod;
$mp_marker = 0;
$bp_marker = 0;
$ep_marker = 0;
$xp_marker = 0;
$mp_nlimbs = 0;
$bp_nlimbs = 0;
$ep_nlimbs = 0;
$xp_nlimbs = 0;
$4 = $2;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
$esize = $6;
$7 = $3;
$8 = ((($7)) + 4|0);
$9 = HEAP32[$8>>2]|0;
$msize = $9;
$10 = $msize;
$11 = $10<<1;
$size = $11;
$12 = $3;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$msign = $14;
$15 = $esize;
$16 = $15<<5;
$17 = ($16|0)>(512);
do {
if ($17) {
$W = 5;
} else {
$18 = $esize;
$19 = $18<<5;
$20 = ($19|0)>(256);
if ($20) {
$W = 4;
break;
}
$21 = $esize;
$22 = $21<<5;
$23 = ($22|0)>(128);
if ($23) {
$W = 3;
break;
}
$24 = $esize;
$25 = $24<<5;
$26 = ($25|0)>(64);
if ($26) {
$W = 2;
break;
} else {
$W = 1;
break;
}
}
} while(0);
$27 = $2;
$28 = ($27|0)!=(0|0);
if ($28) {
$29 = $2;
$30 = ((($29)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = $31 & 1;
$33 = ($32|0)!=(0);
$35 = $33;
} else {
$35 = 0;
}
$34 = $35&1;
$esec = $34;
$36 = $3;
$37 = ($36|0)!=(0|0);
if ($37) {
$38 = $3;
$39 = ((($38)) + 12|0);
$40 = HEAP32[$39>>2]|0;
$41 = $40 & 1;
$42 = ($41|0)!=(0);
$44 = $42;
} else {
$44 = 0;
}
$43 = $44&1;
$msec = $43;
$45 = $1;
$46 = ($45|0)!=(0|0);
if ($46) {
$47 = $1;
$48 = ((($47)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = $49 & 1;
$51 = ($50|0)!=(0);
$53 = $51;
} else {
$53 = 0;
}
$52 = $53&1;
$bsec = $52;
$54 = $0;
$55 = ((($54)) + 16|0);
$56 = HEAP32[$55>>2]|0;
$rp = $56;
$57 = $2;
$58 = ((($57)) + 16|0);
$59 = HEAP32[$58>>2]|0;
$ep = $59;
$60 = $msize;
$61 = ($60|0)!=(0);
if (!($61)) {
__gcry_divide_by_zero();
// unreachable;
}
$62 = $esize;
$63 = ($62|0)!=(0);
do {
if ($63) {
$89 = $msec;
$90 = ($89|0)!=(0);
$91 = $msize;
$92 = $90 ? $91 : 0;
$mp_nlimbs = $92;
$93 = $msize;
$94 = $msec;
$95 = (__gcry_mpi_alloc_limb_space($93,$94)|0);
$mp_marker = $95;
$mp = $95;
$96 = $msize;
$97 = (($96) - 1)|0;
$98 = $3;
$99 = ((($98)) + 16|0);
$100 = HEAP32[$99>>2]|0;
$101 = (($100) + ($97<<2)|0);
$102 = HEAP32[$101>>2]|0;
$__xr = $102;
$103 = $__xr;
$104 = ($103>>>0)<(65536);
$105 = $__xr;
$106 = ($105>>>0)<(256);
$107 = $106 ? 0 : 8;
$108 = ($105>>>0)<(16777216);
$109 = $108 ? 16 : 24;
$110 = $104 ? $107 : $109;
$__a = $110;
$111 = $__xr;
$112 = $__a;
$113 = $111 >>> $112;
$114 = (45829 + ($113)|0);
$115 = HEAP8[$114>>0]|0;
$116 = $115&255;
$117 = $__a;
$118 = (($116) + ($117))|0;
$119 = (32 - ($118))|0;
$mod_shift_cnt = $119;
$120 = $mod_shift_cnt;
$121 = ($120|0)!=(0);
L28: do {
if ($121) {
$122 = $mp;
$123 = $3;
$124 = ((($123)) + 16|0);
$125 = HEAP32[$124>>2]|0;
$126 = $msize;
$127 = $mod_shift_cnt;
(__gcry_mpih_lshift($122,$125,$126,$127)|0);
} else {
$_i = 0;
while(1) {
$128 = $_i;
$129 = $msize;
$130 = ($128|0)<($129|0);
if (!($130)) {
break L28;
}
$131 = $_i;
$132 = $3;
$133 = ((($132)) + 16|0);
$134 = HEAP32[$133>>2]|0;
$135 = (($134) + ($131<<2)|0);
$136 = HEAP32[$135>>2]|0;
$137 = $_i;
$138 = $mp;
$139 = (($138) + ($137<<2)|0);
HEAP32[$139>>2] = $136;
$140 = $_i;
$141 = (($140) + 1)|0;
$_i = $141;
}
}
} while(0);
$142 = $1;
$143 = ((($142)) + 4|0);
$144 = HEAP32[$143>>2]|0;
$bsize = $144;
$145 = $1;
$146 = ((($145)) + 8|0);
$147 = HEAP32[$146>>2]|0;
$bsign = $147;
$148 = $bsize;
$149 = $msize;
$150 = ($148|0)>($149|0);
L35: do {
if ($150) {
$151 = $bsec;
$152 = ($151|0)!=(0);
$153 = $bsize;
$154 = (($153) + 1)|0;
$155 = $152 ? $154 : 0;
$bp_nlimbs = $155;
$156 = $bsize;
$157 = (($156) + 1)|0;
$158 = $bsec;
$159 = (__gcry_mpi_alloc_limb_space($157,$158)|0);
$bp_marker = $159;
$bp = $159;
$_i1 = 0;
while(1) {
$160 = $_i1;
$161 = $bsize;
$162 = ($160|0)<($161|0);
if (!($162)) {
break;
}
$163 = $_i1;
$164 = $1;
$165 = ((($164)) + 16|0);
$166 = HEAP32[$165>>2]|0;
$167 = (($166) + ($163<<2)|0);
$168 = HEAP32[$167>>2]|0;
$169 = $_i1;
$170 = $bp;
$171 = (($170) + ($169<<2)|0);
HEAP32[$171>>2] = $168;
$172 = $_i1;
$173 = (($172) + 1)|0;
$_i1 = $173;
}
$174 = $bp;
$175 = $msize;
$176 = (($174) + ($175<<2)|0);
$177 = $bp;
$178 = $bsize;
$179 = $mp;
$180 = $msize;
(__gcry_mpih_divrem($176,0,$177,$178,$179,$180)|0);
$181 = $msize;
$bsize = $181;
while(1) {
$182 = $bsize;
$183 = ($182|0)>(0);
if (!($183)) {
break L35;
}
$184 = $bsize;
$185 = (($184) - 1)|0;
$186 = $bp;
$187 = (($186) + ($185<<2)|0);
$188 = HEAP32[$187>>2]|0;
$189 = ($188|0)!=(0);
if ($189) {
break L35;
}
$190 = $bsize;
$191 = (($190) + -1)|0;
$bsize = $191;
}
} else {
$192 = $1;
$193 = ((($192)) + 16|0);
$194 = HEAP32[$193>>2]|0;
$bp = $194;
}
} while(0);
$195 = $bsize;
$196 = ($195|0)!=(0);
if (!($196)) {
$197 = $0;
$198 = ((($197)) + 4|0);
HEAP32[$198>>2] = 0;
$199 = $0;
$200 = ((($199)) + 8|0);
HEAP32[$200>>2] = 0;
break;
}
$201 = $rp;
$202 = $bp;
$203 = ($201|0)==($202|0);
L50: do {
if ($203) {
$204 = $bp_marker;
$205 = ($204|0)!=(0|0);
if ($205) {
__gcry_assert_failed(46085,46096,515,46106);
// unreachable;
}
$206 = $bsec;
$207 = ($206|0)!=(0);
$208 = $bsize;
$209 = $207 ? $208 : 0;
$bp_nlimbs = $209;
$210 = $bsize;
$211 = $bsec;
$212 = (__gcry_mpi_alloc_limb_space($210,$211)|0);
$bp_marker = $212;
$bp = $212;
$_i2 = 0;
while(1) {
$213 = $_i2;
$214 = $bsize;
$215 = ($213|0)<($214|0);
if (!($215)) {
break L50;
}
$216 = $_i2;
$217 = $rp;
$218 = (($217) + ($216<<2)|0);
$219 = HEAP32[$218>>2]|0;
$220 = $_i2;
$221 = $bp;
$222 = (($221) + ($220<<2)|0);
HEAP32[$222>>2] = $219;
$223 = $_i2;
$224 = (($223) + 1)|0;
$_i2 = $224;
}
}
} while(0);
$225 = $rp;
$226 = $ep;
$227 = ($225|0)==($226|0);
L59: do {
if ($227) {
$228 = $esec;
$229 = ($228|0)!=(0);
$230 = $esize;
$231 = $229 ? $230 : 0;
$ep_nlimbs = $231;
$232 = $esize;
$233 = $esec;
$234 = (__gcry_mpi_alloc_limb_space($232,$233)|0);
$ep_marker = $234;
$ep = $234;
$_i3 = 0;
while(1) {
$235 = $_i3;
$236 = $esize;
$237 = ($235|0)<($236|0);
if (!($237)) {
break L59;
}
$238 = $_i3;
$239 = $rp;
$240 = (($239) + ($238<<2)|0);
$241 = HEAP32[$240>>2]|0;
$242 = $_i3;
$243 = $ep;
$244 = (($243) + ($242<<2)|0);
HEAP32[$244>>2] = $241;
$245 = $_i3;
$246 = (($245) + 1)|0;
$_i3 = $246;
}
}
} while(0);
$247 = $0;
$248 = HEAP32[$247>>2]|0;
$249 = $size;
$250 = ($248|0)<($249|0);
if ($250) {
$251 = $0;
$252 = $size;
__gcry_mpi_resize($251,$252);
$253 = $0;
$254 = ((($253)) + 16|0);
$255 = HEAP32[$254>>2]|0;
$rp = $255;
}
$256 = $msec;
$257 = ($256|0)!=(0);
if ($257) {
$258 = $msize;
$259 = (($258) + 1)|0;
$260 = $259<<1;
$261 = $260;
} else {
$261 = 0;
}
$xp_nlimbs = $261;
$262 = $msize;
$263 = (($262) + 1)|0;
$264 = $263<<1;
$265 = $msec;
$266 = (__gcry_mpi_alloc_limb_space($264,$265)|0);
$xp_marker = $266;
$xp = $266;
;HEAP32[$karactx>>2]=0|0;HEAP32[$karactx+4>>2]=0|0;HEAP32[$karactx+8>>2]=0|0;HEAP32[$karactx+12>>2]=0|0;HEAP32[$karactx+16>>2]=0|0;HEAP32[$karactx+20>>2]=0|0;HEAP32[$karactx+24>>2]=0|0;
$267 = $ep;
$268 = HEAP32[$267>>2]|0;
$269 = $268 & 1;
$270 = ($269|0)!=(0);
$271 = $bsign;
$272 = ($271|0)!=(0);
$273 = $270 ? $272 : 0;
$274 = $273&1;
$negative_result = $274;
$275 = $W;
$276 = ($275|0)>(1);
if ($276) {
$277 = $xp;
$278 = $bp;
$279 = $bsize;
$280 = $bp;
$281 = $bsize;
$282 = $mp;
$283 = $msize;
_mul_mod($277,$xsize,$278,$279,$280,$281,$282,$283,$karactx);
}
$284 = $bsize;
$285 = $esec;
$286 = (__gcry_mpi_alloc_limb_space($284,$285)|0);
HEAP32[$precomp>>2] = $286;
$base_u = $286;
$287 = $bsize;
HEAP32[$precomp_size>>2] = $287;
$max_u_size = $287;
$base_u_size = $287;
$_i4 = 0;
while(1) {
$288 = $_i4;
$289 = $bsize;
$290 = ($288|0)<($289|0);
if (!($290)) {
break;
}
$291 = $_i4;
$292 = $bp;
$293 = (($292) + ($291<<2)|0);
$294 = HEAP32[$293>>2]|0;
$295 = $_i4;
$296 = HEAP32[$precomp>>2]|0;
$297 = (($296) + ($295<<2)|0);
HEAP32[$297>>2] = $294;
$298 = $_i4;
$299 = (($298) + 1)|0;
$_i4 = $299;
}
$i = 1;
while(1) {
$300 = $i;
$301 = $W;
$302 = (($301) - 1)|0;
$303 = 1 << $302;
$304 = ($300|0)<($303|0);
if (!($304)) {
break;
}
$305 = HEAP32[$xsize>>2]|0;
$306 = $base_u_size;
$307 = ($305|0)>=($306|0);
$308 = $rp;
if ($307) {
$309 = $xp;
$310 = HEAP32[$xsize>>2]|0;
$311 = $base_u;
$312 = $base_u_size;
$313 = $mp;
$314 = $msize;
_mul_mod($308,$rsize,$309,$310,$311,$312,$313,$314,$karactx);
} else {
$315 = $base_u;
$316 = $base_u_size;
$317 = $xp;
$318 = HEAP32[$xsize>>2]|0;
$319 = $mp;
$320 = $msize;
_mul_mod($308,$rsize,$315,$316,$317,$318,$319,$320,$karactx);
}
$321 = HEAP32[$rsize>>2]|0;
$322 = $esec;
$323 = (__gcry_mpi_alloc_limb_space($321,$322)|0);
$324 = $i;
$325 = (($precomp) + ($324<<2)|0);
HEAP32[$325>>2] = $323;
$base_u = $323;
$326 = HEAP32[$rsize>>2]|0;
$327 = $i;
$328 = (($precomp_size) + ($327<<2)|0);
HEAP32[$328>>2] = $326;
$base_u_size = $326;
$329 = $max_u_size;
$330 = $base_u_size;
$331 = ($329|0)<($330|0);
if ($331) {
$332 = $base_u_size;
$max_u_size = $332;
}
$_i5 = 0;
while(1) {
$333 = $_i5;
$334 = HEAP32[$rsize>>2]|0;
$335 = ($333|0)<($334|0);
if (!($335)) {
break;
}
$336 = $_i5;
$337 = $rp;
$338 = (($337) + ($336<<2)|0);
$339 = HEAP32[$338>>2]|0;
$340 = $_i5;
$341 = $i;
$342 = (($precomp) + ($341<<2)|0);
$343 = HEAP32[$342>>2]|0;
$344 = (($343) + ($340<<2)|0);
HEAP32[$344>>2] = $339;
$345 = $_i5;
$346 = (($345) + 1)|0;
$_i5 = $346;
}
$347 = $i;
$348 = (($347) + 1)|0;
$i = $348;
}
$349 = $max_u_size;
$350 = $esec;
$351 = (__gcry_mpi_alloc_limb_space($349,$350)|0);
$base_u = $351;
$_i6 = 0;
while(1) {
$352 = $_i6;
$353 = $max_u_size;
$354 = ($352|0)<($353|0);
if (!($354)) {
break;
}
$355 = $_i6;
$356 = $base_u;
$357 = (($356) + ($355<<2)|0);
HEAP32[$357>>2] = 0;
$358 = $_i6;
$359 = (($358) + 1)|0;
$_i6 = $359;
}
$360 = $esize;
$361 = (($360) - 1)|0;
$i = $361;
$rsign = 0;
$362 = $W;
$363 = ($362|0)==(1);
L97: do {
if ($363) {
$364 = $bsize;
HEAP32[$rsize>>2] = $364;
} else {
$365 = $msize;
HEAP32[$rsize>>2] = $365;
$_i7 = 0;
while(1) {
$366 = $_i7;
$367 = HEAP32[$rsize>>2]|0;
$368 = ($366|0)<($367|0);
if (!($368)) {
break L97;
}
$369 = $_i7;
$370 = $rp;
$371 = (($370) + ($369<<2)|0);
HEAP32[$371>>2] = 0;
$372 = $_i7;
$373 = (($372) + 1)|0;
$_i7 = $373;
}
}
} while(0);
$_i8 = 0;
while(1) {
$374 = $_i8;
$375 = $bsize;
$376 = ($374|0)<($375|0);
if (!($376)) {
break;
}
$377 = $_i8;
$378 = $bp;
$379 = (($378) + ($377<<2)|0);
$380 = HEAP32[$379>>2]|0;
$381 = $_i8;
$382 = $rp;
$383 = (($382) + ($381<<2)|0);
HEAP32[$383>>2] = $380;
$384 = $_i8;
$385 = (($384) + 1)|0;
$_i8 = $385;
}
$386 = $i;
$387 = $ep;
$388 = (($387) + ($386<<2)|0);
$389 = HEAP32[$388>>2]|0;
$e = $389;
$390 = $e;
$__xr9 = $390;
$391 = $__xr9;
$392 = ($391>>>0)<(65536);
$393 = $__xr9;
$394 = ($393>>>0)<(256);
$395 = $394 ? 0 : 8;
$396 = ($393>>>0)<(16777216);
$397 = $396 ? 16 : 24;
$398 = $392 ? $395 : $397;
$__a10 = $398;
$399 = $__xr9;
$400 = $__a10;
$401 = $399 >>> $400;
$402 = (45829 + ($401)|0);
$403 = HEAP8[$402>>0]|0;
$404 = $403&255;
$405 = $__a10;
$406 = (($404) + ($405))|0;
$407 = (32 - ($406))|0;
$c = $407;
$408 = $e;
$409 = $c;
$410 = $408 << $409;
$411 = $410 << 1;
$e = $411;
$412 = $c;
$413 = (31 - ($412))|0;
$c = $413;
$j = 0;
while(1) {
$414 = $e;
$415 = ($414|0)==(0);
if ($415) {
$416 = $c;
$417 = $j;
$418 = (($417) + ($416))|0;
$j = $418;
$419 = $i;
$420 = (($419) + -1)|0;
$i = $420;
$421 = $i;
$422 = ($421|0)<(0);
if ($422) {
label = 86;
break;
}
$423 = $i;
$424 = $ep;
$425 = (($424) + ($423<<2)|0);
$426 = HEAP32[$425>>2]|0;
$e = $426;
$c = 32;
continue;
}
$427 = $e;
$__xr11 = $427;
$428 = $__xr11;
$429 = ($428>>>0)<(65536);
$430 = $__xr11;
$431 = ($430>>>0)<(256);
$432 = $431 ? 0 : 8;
$433 = ($430>>>0)<(16777216);
$434 = $433 ? 16 : 24;
$435 = $429 ? $432 : $434;
$__a12 = $435;
$436 = $__xr11;
$437 = $__a12;
$438 = $436 >>> $437;
$439 = (45829 + ($438)|0);
$440 = HEAP8[$439>>0]|0;
$441 = $440&255;
$442 = $__a12;
$443 = (($441) + ($442))|0;
$444 = (32 - ($443))|0;
$c0 = $444;
$445 = $e;
$446 = $c0;
$447 = $445 << $446;
$e = $447;
$448 = $c0;
$449 = $c;
$450 = (($449) - ($448))|0;
$c = $450;
$451 = $c0;
$452 = $j;
$453 = (($452) + ($451))|0;
$j = $453;
$454 = $c;
$455 = $W;
$456 = ($454|0)>=($455|0);
if ($456) {
$457 = $e;
$458 = $W;
$459 = (32 - ($458))|0;
$460 = $457 >>> $459;
$e0 = $460;
$461 = $e;
$462 = $W;
$463 = $461 << $462;
$e = $463;
$464 = $W;
$465 = $c;
$466 = (($465) - ($464))|0;
$c = $466;
} else {
$467 = $i;
$468 = (($467) + -1)|0;
$i = $468;
$469 = $i;
$470 = ($469|0)<(0);
if ($470) {
label = 91;
break;
}
$475 = $c;
$c0 = $475;
$476 = $e;
$477 = $W;
$478 = (32 - ($477))|0;
$479 = $476 >>> $478;
$480 = $i;
$481 = $ep;
$482 = (($481) + ($480<<2)|0);
$483 = HEAP32[$482>>2]|0;
$484 = $W;
$485 = (32 - ($484))|0;
$486 = $c0;
$487 = (($485) + ($486))|0;
$488 = $483 >>> $487;
$489 = $479 | $488;
$e0 = $489;
$490 = $i;
$491 = $ep;
$492 = (($491) + ($490<<2)|0);
$493 = HEAP32[$492>>2]|0;
$494 = $W;
$495 = $c0;
$496 = (($494) - ($495))|0;
$497 = $493 << $496;
$e = $497;
$498 = $W;
$499 = (32 - ($498))|0;
$500 = $c0;
$501 = (($499) + ($500))|0;
$c = $501;
}
$502 = $e0;
$__ctz_x = $502;
$503 = $__ctz_x;
$504 = $__ctz_x;
$505 = (0 - ($504))|0;
$506 = $503 & $505;
$__xr13 = $506;
$507 = $__xr13;
$508 = ($507>>>0)<(65536);
$509 = $__xr13;
$510 = ($509>>>0)<(256);
$511 = $510 ? 0 : 8;
$512 = ($509>>>0)<(16777216);
$513 = $512 ? 16 : 24;
$514 = $508 ? $511 : $513;
$__a14 = $514;
$515 = $__xr13;
$516 = $__a14;
$517 = $515 >>> $516;
$518 = (45829 + ($517)|0);
$519 = HEAP8[$518>>0]|0;
$520 = $519&255;
$521 = $__a14;
$522 = (($520) + ($521))|0;
$523 = (32 - ($522))|0;
$__ctz_c = $523;
$524 = $__ctz_c;
$525 = (31 - ($524))|0;
$c0 = $525;
$526 = $e0;
$527 = $c0;
$528 = $526 >>> $527;
$529 = $528 >>> 1;
$e0 = $529;
$530 = $W;
$531 = $c0;
$532 = (($530) - ($531))|0;
$533 = $j;
$534 = (($533) + ($532))|0;
$j = $534;
while(1) {
$535 = $j;
$536 = ($535|0)!=(0);
if (!($536)) {
break;
}
$537 = $xp;
$538 = $rp;
$539 = HEAP32[$rsize>>2]|0;
$540 = $rp;
$541 = HEAP32[$rsize>>2]|0;
$542 = $mp;
$543 = $msize;
_mul_mod($537,$xsize,$538,$539,$540,$541,$542,$543,$karactx);
$544 = $rp;
$tp = $544;
$545 = $xp;
$rp = $545;
$546 = $tp;
$xp = $546;
$547 = HEAP32[$xsize>>2]|0;
HEAP32[$rsize>>2] = $547;
$548 = $j;
$549 = (($548) + -1)|0;
$j = $549;
}
$base_u_size = 0;
$k = 0;
while(1) {
$550 = $k;
$551 = $W;
$552 = (($551) - 1)|0;
$553 = 1 << $552;
$554 = ($550|0)<($553|0);
if (!($554)) {
break;
}
$555 = $k;
$556 = (($precomp_size) + ($555<<2)|0);
$557 = HEAP32[$556>>2]|0;
$558 = ((($w)) + 4|0);
HEAP32[$558>>2] = $557;
HEAP32[$w>>2] = $557;
$559 = $k;
$560 = (($precomp_size) + ($559<<2)|0);
$561 = HEAP32[$560>>2]|0;
$562 = ((($u)) + 4|0);
HEAP32[$562>>2] = $561;
HEAP32[$u>>2] = $561;
$563 = ((($u)) + 8|0);
HEAP32[$563>>2] = 0;
$564 = ((($w)) + 8|0);
HEAP32[$564>>2] = 0;
$565 = ((($u)) + 12|0);
HEAP32[$565>>2] = 0;
$566 = ((($w)) + 12|0);
HEAP32[$566>>2] = 0;
$567 = $base_u;
$568 = ((($w)) + 16|0);
HEAP32[$568>>2] = $567;
$569 = $k;
$570 = (($precomp) + ($569<<2)|0);
$571 = HEAP32[$570>>2]|0;
$572 = ((($u)) + 16|0);
HEAP32[$572>>2] = $571;
$573 = $k;
$574 = $e0;
$575 = ($573|0)==($574|0);
$576 = $575&1;
(__gcry_mpi_set_cond($w,$u,$576)|0);
$577 = $k;
$578 = (($precomp_size) + ($577<<2)|0);
$579 = HEAP32[$578>>2]|0;
$580 = $k;
$581 = $e0;
$582 = ($580|0)==($581|0);
$583 = $582&1;
$584 = (0 - ($583))|0;
$585 = $579 & $584;
$586 = $base_u_size;
$587 = $586 | $585;
$base_u_size = $587;
$588 = $k;
$589 = (($588) + 1)|0;
$k = $589;
}
$590 = $xp;
$591 = $rp;
$592 = HEAP32[$rsize>>2]|0;
$593 = $base_u;
$594 = $base_u_size;
$595 = $mp;
$596 = $msize;
_mul_mod($590,$xsize,$591,$592,$593,$594,$595,$596,$karactx);
$597 = $rp;
$tp = $597;
$598 = $xp;
$rp = $598;
$599 = $tp;
$xp = $599;
$600 = HEAP32[$xsize>>2]|0;
HEAP32[$rsize>>2] = $600;
$601 = $c0;
$j = $601;
}
if ((label|0) == 86) {
$c = 0;
}
else if ((label|0) == 91) {
$471 = $e;
$472 = $c;
$473 = (32 - ($472))|0;
$474 = $471 >>> $473;
$e = $474;
}
$602 = $c;
$603 = ($602|0)!=(0);
if ($603) {
$604 = $c;
$605 = $j;
$606 = (($605) + ($604))|0;
$j = $606;
$607 = $e;
$__ctz_x15 = $607;
$608 = $__ctz_x15;
$609 = $__ctz_x15;
$610 = (0 - ($609))|0;
$611 = $608 & $610;
$__xr17 = $611;
$612 = $__xr17;
$613 = ($612>>>0)<(65536);
$614 = $__xr17;
$615 = ($614>>>0)<(256);
$616 = $615 ? 0 : 8;
$617 = ($614>>>0)<(16777216);
$618 = $617 ? 16 : 24;
$619 = $613 ? $616 : $618;
$__a18 = $619;
$620 = $__xr17;
$621 = $__a18;
$622 = $620 >>> $621;
$623 = (45829 + ($622)|0);
$624 = HEAP8[$623>>0]|0;
$625 = $624&255;
$626 = $__a18;
$627 = (($625) + ($626))|0;
$628 = (32 - ($627))|0;
$__ctz_c16 = $628;
$629 = $__ctz_c16;
$630 = (31 - ($629))|0;
$c = $630;
$631 = $e;
$632 = $c;
$633 = $631 >>> $632;
$e = $633;
$634 = $c;
$635 = $j;
$636 = (($635) - ($634))|0;
$j = $636;
}
while(1) {
$637 = $j;
$638 = (($637) + -1)|0;
$j = $638;
$639 = ($637|0)!=(0);
if (!($639)) {
break;
}
$640 = $xp;
$641 = $rp;
$642 = HEAP32[$rsize>>2]|0;
$643 = $rp;
$644 = HEAP32[$rsize>>2]|0;
$645 = $mp;
$646 = $msize;
_mul_mod($640,$xsize,$641,$642,$643,$644,$645,$646,$karactx);
$647 = $rp;
$tp = $647;
$648 = $xp;
$rp = $648;
$649 = $tp;
$xp = $649;
$650 = HEAP32[$xsize>>2]|0;
HEAP32[$rsize>>2] = $650;
}
$651 = $e;
$652 = ($651|0)!=(0);
L137: do {
if ($652) {
$base_u_size = 0;
$k = 0;
while(1) {
$653 = $k;
$654 = $W;
$655 = (($654) - 1)|0;
$656 = 1 << $655;
$657 = ($653|0)<($656|0);
if (!($657)) {
break;
}
$658 = $k;
$659 = (($precomp_size) + ($658<<2)|0);
$660 = HEAP32[$659>>2]|0;
$661 = ((($w19)) + 4|0);
HEAP32[$661>>2] = $660;
HEAP32[$w19>>2] = $660;
$662 = $k;
$663 = (($precomp_size) + ($662<<2)|0);
$664 = HEAP32[$663>>2]|0;
$665 = ((($u20)) + 4|0);
HEAP32[$665>>2] = $664;
HEAP32[$u20>>2] = $664;
$666 = ((($u20)) + 8|0);
HEAP32[$666>>2] = 0;
$667 = ((($w19)) + 8|0);
HEAP32[$667>>2] = 0;
$668 = ((($u20)) + 12|0);
HEAP32[$668>>2] = 0;
$669 = ((($w19)) + 12|0);
HEAP32[$669>>2] = 0;
$670 = $base_u;
$671 = ((($w19)) + 16|0);
HEAP32[$671>>2] = $670;
$672 = $k;
$673 = (($precomp) + ($672<<2)|0);
$674 = HEAP32[$673>>2]|0;
$675 = ((($u20)) + 16|0);
HEAP32[$675>>2] = $674;
$676 = $k;
$677 = $e;
$678 = $677 >>> 1;
$679 = ($676|0)==($678|0);
$680 = $679&1;
(__gcry_mpi_set_cond($w19,$u20,$680)|0);
$681 = $k;
$682 = (($precomp_size) + ($681<<2)|0);
$683 = HEAP32[$682>>2]|0;
$684 = $k;
$685 = $e;
$686 = $685 >>> 1;
$687 = ($684|0)==($686|0);
$688 = $687&1;
$689 = (0 - ($688))|0;
$690 = $683 & $689;
$691 = $base_u_size;
$692 = $691 | $690;
$base_u_size = $692;
$693 = $k;
$694 = (($693) + 1)|0;
$k = $694;
}
$695 = $xp;
$696 = $rp;
$697 = HEAP32[$rsize>>2]|0;
$698 = $base_u;
$699 = $base_u_size;
$700 = $mp;
$701 = $msize;
_mul_mod($695,$xsize,$696,$697,$698,$699,$700,$701,$karactx);
$702 = $rp;
$tp = $702;
$703 = $xp;
$rp = $703;
$704 = $tp;
$xp = $704;
$705 = HEAP32[$xsize>>2]|0;
HEAP32[$rsize>>2] = $705;
while(1) {
$706 = $c;
$707 = ($706|0)!=(0);
if (!($707)) {
break L137;
}
$708 = $xp;
$709 = $rp;
$710 = HEAP32[$rsize>>2]|0;
$711 = $rp;
$712 = HEAP32[$rsize>>2]|0;
$713 = $mp;
$714 = $msize;
_mul_mod($708,$xsize,$709,$710,$711,$712,$713,$714,$karactx);
$715 = $rp;
$tp = $715;
$716 = $xp;
$rp = $716;
$717 = $tp;
$xp = $717;
$718 = HEAP32[$xsize>>2]|0;
HEAP32[$rsize>>2] = $718;
$719 = $c;
$720 = (($719) + -1)|0;
$c = $720;
}
}
} while(0);
$721 = $mod_shift_cnt;
$722 = ($721|0)!=(0);
$723 = $0;
$724 = ((($723)) + 16|0);
$725 = HEAP32[$724>>2]|0;
$726 = $rp;
do {
if ($722) {
$727 = HEAP32[$rsize>>2]|0;
$728 = $mod_shift_cnt;
$729 = (__gcry_mpih_lshift($725,$726,$727,$728)|0);
$carry_limb = $729;
$730 = $0;
$731 = ((($730)) + 16|0);
$732 = HEAP32[$731>>2]|0;
$rp = $732;
$733 = $carry_limb;
$734 = ($733|0)!=(0);
if (!($734)) {
break;
}
$735 = $carry_limb;
$736 = HEAP32[$rsize>>2]|0;
$737 = $rp;
$738 = (($737) + ($736<<2)|0);
HEAP32[$738>>2] = $735;
$739 = HEAP32[$rsize>>2]|0;
$740 = (($739) + 1)|0;
HEAP32[$rsize>>2] = $740;
} else {
$741 = ($725|0)!=($726|0);
if (!($741)) {
break;
}
$_i21 = 0;
while(1) {
$742 = $_i21;
$743 = HEAP32[$rsize>>2]|0;
$744 = ($742|0)<($743|0);
if (!($744)) {
break;
}
$745 = $_i21;
$746 = $rp;
$747 = (($746) + ($745<<2)|0);
$748 = HEAP32[$747>>2]|0;
$749 = $_i21;
$750 = $0;
$751 = ((($750)) + 16|0);
$752 = HEAP32[$751>>2]|0;
$753 = (($752) + ($749<<2)|0);
HEAP32[$753>>2] = $748;
$754 = $_i21;
$755 = (($754) + 1)|0;
$_i21 = $755;
}
$756 = $0;
$757 = ((($756)) + 16|0);
$758 = HEAP32[$757>>2]|0;
$rp = $758;
}
} while(0);
$759 = HEAP32[$rsize>>2]|0;
$760 = $msize;
$761 = ($759|0)>=($760|0);
if ($761) {
$762 = $rp;
$763 = $msize;
$764 = (($762) + ($763<<2)|0);
$765 = $rp;
$766 = HEAP32[$rsize>>2]|0;
$767 = $mp;
$768 = $msize;
(__gcry_mpih_divrem($764,0,$765,$766,$767,$768)|0);
$769 = $msize;
HEAP32[$rsize>>2] = $769;
}
$770 = $mod_shift_cnt;
$771 = ($770|0)!=(0);
if ($771) {
$772 = $rp;
$773 = $rp;
$774 = HEAP32[$rsize>>2]|0;
$775 = $mod_shift_cnt;
(__gcry_mpih_rshift($772,$773,$774,$775)|0);
}
while(1) {
$776 = HEAP32[$rsize>>2]|0;
$777 = ($776|0)>(0);
if (!($777)) {
break;
}
$778 = HEAP32[$rsize>>2]|0;
$779 = (($778) - 1)|0;
$780 = $rp;
$781 = (($780) + ($779<<2)|0);
$782 = HEAP32[$781>>2]|0;
$783 = ($782|0)!=(0);
if ($783) {
break;
}
$784 = HEAP32[$rsize>>2]|0;
$785 = (($784) + -1)|0;
HEAP32[$rsize>>2] = $785;
}
__gcry_mpih_release_karatsuba_ctx($karactx);
$i = 0;
while(1) {
$786 = $i;
$787 = $W;
$788 = (($787) - 1)|0;
$789 = 1 << $788;
$790 = ($786|0)<($789|0);
if (!($790)) {
break;
}
$791 = $i;
$792 = (($precomp) + ($791<<2)|0);
$793 = HEAP32[$792>>2]|0;
$794 = $esec;
$795 = ($794|0)!=(0);
if ($795) {
$796 = $i;
$797 = (($precomp_size) + ($796<<2)|0);
$798 = HEAP32[$797>>2]|0;
$799 = $798;
} else {
$799 = 0;
}
__gcry_mpi_free_limb_space($793,$799);
$800 = $i;
$801 = (($800) + 1)|0;
$i = $801;
}
$802 = $base_u;
$803 = $esec;
$804 = ($803|0)!=(0);
$805 = $max_u_size;
$806 = $804 ? $805 : 0;
__gcry_mpi_free_limb_space($802,$806);
$807 = $negative_result;
$808 = ($807|0)!=(0);
$809 = HEAP32[$rsize>>2]|0;
$810 = ($809|0)!=(0);
$or$cond = $808 & $810;
L174: do {
if ($or$cond) {
$811 = $mod_shift_cnt;
$812 = ($811|0)!=(0);
if ($812) {
$813 = $mp;
$814 = $mp;
$815 = $msize;
$816 = $mod_shift_cnt;
(__gcry_mpih_rshift($813,$814,$815,$816)|0);
}
$817 = $rp;
$818 = $mp;
$819 = $msize;
$820 = $rp;
$821 = HEAP32[$rsize>>2]|0;
(__gcry_mpih_sub($817,$818,$819,$820,$821)|0);
$822 = $msize;
HEAP32[$rsize>>2] = $822;
$823 = $msign;
$rsign = $823;
while(1) {
$824 = HEAP32[$rsize>>2]|0;
$825 = ($824|0)>(0);
if (!($825)) {
break L174;
}
$826 = HEAP32[$rsize>>2]|0;
$827 = (($826) - 1)|0;
$828 = $rp;
$829 = (($828) + ($827<<2)|0);
$830 = HEAP32[$829>>2]|0;
$831 = ($830|0)!=(0);
if ($831) {
break L174;
}
$832 = HEAP32[$rsize>>2]|0;
$833 = (($832) + -1)|0;
HEAP32[$rsize>>2] = $833;
}
}
} while(0);
$834 = $0;
$835 = ((($834)) + 16|0);
$836 = HEAP32[$835>>2]|0;
$837 = $rp;
$838 = ($836|0)==($837|0);
if ($838) {
$839 = HEAP32[$rsize>>2]|0;
$840 = $0;
$841 = ((($840)) + 4|0);
HEAP32[$841>>2] = $839;
$842 = $rsign;
$843 = $0;
$844 = ((($843)) + 8|0);
HEAP32[$844>>2] = $842;
break;
} else {
__gcry_assert_failed(46121,46096,786,46106);
// unreachable;
}
} else {
$64 = $msize;
$65 = ($64|0)==(1);
if ($65) {
$66 = $3;
$67 = ((($66)) + 16|0);
$68 = HEAP32[$67>>2]|0;
$69 = HEAP32[$68>>2]|0;
$70 = ($69|0)==(1);
$71 = $70;
} else {
$71 = 0;
}
$72 = $71 ? 0 : 1;
$73 = $0;
$74 = ((($73)) + 4|0);
HEAP32[$74>>2] = $72;
$75 = $0;
$76 = ((($75)) + 4|0);
$77 = HEAP32[$76>>2]|0;
$78 = ($77|0)!=(0);
if ($78) {
$79 = $0;
$80 = HEAP32[$79>>2]|0;
$81 = ($80|0)<(1);
if ($81) {
$82 = $0;
__gcry_mpi_resize($82,1);
}
$83 = $0;
$84 = ((($83)) + 16|0);
$85 = HEAP32[$84>>2]|0;
$rp = $85;
$86 = $rp;
HEAP32[$86>>2] = 1;
}
$87 = $0;
$88 = ((($87)) + 8|0);
HEAP32[$88>>2] = 0;
}
} while(0);
$845 = $mp_marker;
$846 = ($845|0)!=(0|0);
if ($846) {
$847 = $mp_marker;
$848 = $mp_nlimbs;
__gcry_mpi_free_limb_space($847,$848);
}
$849 = $bp_marker;
$850 = ($849|0)!=(0|0);
if ($850) {
$851 = $bp_marker;
$852 = $bp_nlimbs;
__gcry_mpi_free_limb_space($851,$852);
}
$853 = $ep_marker;
$854 = ($853|0)!=(0|0);
if ($854) {
$855 = $ep_marker;
$856 = $ep_nlimbs;
__gcry_mpi_free_limb_space($855,$856);
}
$857 = $xp_marker;
$858 = ($857|0)!=(0|0);
if (!($858)) {
STACKTOP = sp;return;
}
$859 = $xp_marker;
$860 = $xp_nlimbs;
__gcry_mpi_free_limb_space($859,$860);
STACKTOP = sp;return;
}
function _mul_mod($xp,$xsize_p,$rp,$rsize,$sp,$ssize,$mp,$msize,$karactx_p) {
$xp = $xp|0;
$xsize_p = $xsize_p|0;
$rp = $rp|0;
$rsize = $rsize|0;
$sp = $sp|0;
$ssize = $ssize|0;
$mp = $mp|0;
$msize = $msize|0;
$karactx_p = $karactx_p|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $xp;
$1 = $xsize_p;
$2 = $rp;
$3 = $rsize;
$4 = $sp;
$5 = $ssize;
$6 = $mp;
$7 = $msize;
$8 = $karactx_p;
$9 = $5;
$10 = ($9|0)<(16);
$11 = $0;
$12 = $2;
$13 = $3;
$14 = $4;
$15 = $5;
if ($10) {
(__gcry_mpih_mul($11,$12,$13,$14,$15)|0);
} else {
$16 = $8;
__gcry_mpih_mul_karatsuba_case($11,$12,$13,$14,$15,$16);
}
$17 = $3;
$18 = $5;
$19 = (($17) + ($18))|0;
$20 = $7;
$21 = ($19|0)>($20|0);
if ($21) {
$22 = $0;
$23 = $7;
$24 = (($22) + ($23<<2)|0);
$25 = $0;
$26 = $3;
$27 = $5;
$28 = (($26) + ($27))|0;
$29 = $6;
$30 = $7;
(__gcry_mpih_divrem($24,0,$25,$28,$29,$30)|0);
$31 = $7;
$32 = $1;
HEAP32[$32>>2] = $31;
STACKTOP = sp;return;
} else {
$33 = $3;
$34 = $5;
$35 = (($33) + ($34))|0;
$36 = $1;
HEAP32[$36>>2] = $35;
STACKTOP = sp;return;
}
}
function __gcry_mpi_trailing_zeros($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $__a = 0, $__ctz_c = 0, $__ctz_x = 0, $__xr = 0, $alimb = 0, $count = 0, $n = 0, $nn = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$count = 0;
$n = 0;
while(1) {
$1 = $n;
$2 = $0;
$3 = ((($2)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($1>>>0)<($4>>>0);
if (!($5)) {
label = 6;
break;
}
$6 = $n;
$7 = $0;
$8 = ((($7)) + 16|0);
$9 = HEAP32[$8>>2]|0;
$10 = (($9) + ($6<<2)|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)!=(0);
if ($12) {
break;
}
$46 = $count;
$47 = (($46) + 32)|0;
$count = $47;
$48 = $n;
$49 = (($48) + 1)|0;
$n = $49;
}
if ((label|0) == 6) {
$50 = $count;
STACKTOP = sp;return ($50|0);
}
$13 = $n;
$14 = $0;
$15 = ((($14)) + 16|0);
$16 = HEAP32[$15>>2]|0;
$17 = (($16) + ($13<<2)|0);
$18 = HEAP32[$17>>2]|0;
$alimb = $18;
$19 = $alimb;
$__ctz_x = $19;
$20 = $__ctz_x;
$21 = $__ctz_x;
$22 = (0 - ($21))|0;
$23 = $20 & $22;
$__xr = $23;
$24 = $__xr;
$25 = ($24>>>0)<(65536);
$26 = $__xr;
$27 = ($26>>>0)<(256);
$28 = $27 ? 0 : 8;
$29 = ($26>>>0)<(16777216);
$30 = $29 ? 16 : 24;
$31 = $25 ? $28 : $30;
$__a = $31;
$32 = $__xr;
$33 = $__a;
$34 = $32 >>> $33;
$35 = (45829 + ($34)|0);
$36 = HEAP8[$35>>0]|0;
$37 = $36&255;
$38 = $__a;
$39 = (($37) + ($38))|0;
$40 = (32 - ($39))|0;
$__ctz_c = $40;
$41 = $__ctz_c;
$42 = (31 - ($41))|0;
$nn = $42;
$43 = $nn;
$44 = $count;
$45 = (($44) + ($43))|0;
$count = $45;
$50 = $count;
STACKTOP = sp;return ($50|0);
}
function __gcry_mpi_get_buffer($a,$fill_le,$r_nbytes,$sign) {
$a = $a|0;
$fill_le = $fill_le|0;
$r_nbytes = $r_nbytes|0;
$sign = $sign|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $fill_le;
$2 = $r_nbytes;
$3 = $sign;
$4 = $0;
$5 = $1;
$6 = $2;
$7 = $3;
$8 = (_do_get_buffer($4,$5,0,$6,$7,0)|0);
STACKTOP = sp;return ($8|0);
}
function _do_get_buffer($a,$fill_le,$extraalloc,$nbytes,$sign,$force_secure) {
$a = $a|0;
$fill_le = $fill_le|0;
$extraalloc = $extraalloc|0;
$nbytes = $nbytes|0;
$sign = $sign|0;
$force_secure = $force_secure|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $alimb = 0;
var $buffer = 0, $i = 0, $length = 0, $n = 0, $n2 = 0, $p = 0, $retbuffer = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $fill_le;
$3 = $extraalloc;
$4 = $nbytes;
$5 = $sign;
$6 = $force_secure;
$7 = $5;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $1;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$12 = $5;
HEAP32[$12>>2] = $11;
}
$13 = $1;
$14 = ((($13)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = $15<<2;
$17 = $4;
HEAP32[$17>>2] = $16;
$18 = $4;
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)!=(0);
if ($20) {
$21 = $4;
$22 = HEAP32[$21>>2]|0;
$23 = $22;
} else {
$23 = 1;
}
$n = $23;
$24 = $n;
$25 = $2;
$26 = ($24>>>0)<($25>>>0);
if ($26) {
$27 = $2;
$n = $27;
}
$28 = $3;
$29 = ($28|0)<(0);
$30 = $n;
$31 = $3;
if ($29) {
$32 = (0 - ($31))|0;
$33 = (($30) + ($32))|0;
$n2 = $33;
} else {
$34 = (($30) + ($31))|0;
$n2 = $34;
}
$35 = $6;
$36 = ($35|0)!=(0);
do {
if ($36) {
label = 13;
} else {
$37 = $1;
$38 = ($37|0)!=(0|0);
if ($38) {
$39 = $1;
$40 = ((($39)) + 12|0);
$41 = HEAP32[$40>>2]|0;
$42 = $41 & 1;
$43 = ($42|0)!=(0);
if ($43) {
label = 13;
break;
}
}
$46 = $n2;
$47 = (__gcry_malloc($46)|0);
$48 = $47;
}
} while(0);
if ((label|0) == 13) {
$44 = $n2;
$45 = (__gcry_malloc_secure($44)|0);
$48 = $45;
}
$retbuffer = $48;
$49 = $retbuffer;
$50 = ($49|0)!=(0|0);
if (!($50)) {
$0 = 0;
$158 = $0;
STACKTOP = sp;return ($158|0);
}
$51 = $3;
$52 = ($51|0)<(0);
$53 = $retbuffer;
if ($52) {
$54 = $3;
$55 = (0 - ($54))|0;
$56 = (($53) + ($55)|0);
$buffer = $56;
} else {
$buffer = $53;
}
$57 = $buffer;
$p = $57;
$58 = $1;
$59 = ((($58)) + 4|0);
$60 = HEAP32[$59>>2]|0;
$61 = (($60) - 1)|0;
$i = $61;
while(1) {
$62 = $i;
$63 = ($62|0)>=(0);
if (!($63)) {
break;
}
$64 = $i;
$65 = $1;
$66 = ((($65)) + 16|0);
$67 = HEAP32[$66>>2]|0;
$68 = (($67) + ($64<<2)|0);
$69 = HEAP32[$68>>2]|0;
$alimb = $69;
$70 = $alimb;
$71 = $70 >>> 24;
$72 = $71&255;
$73 = $p;
$74 = ((($73)) + 1|0);
$p = $74;
HEAP8[$73>>0] = $72;
$75 = $alimb;
$76 = $75 >>> 16;
$77 = $76&255;
$78 = $p;
$79 = ((($78)) + 1|0);
$p = $79;
HEAP8[$78>>0] = $77;
$80 = $alimb;
$81 = $80 >>> 8;
$82 = $81&255;
$83 = $p;
$84 = ((($83)) + 1|0);
$p = $84;
HEAP8[$83>>0] = $82;
$85 = $alimb;
$86 = $85&255;
$87 = $p;
$88 = ((($87)) + 1|0);
$p = $88;
HEAP8[$87>>0] = $86;
$89 = $i;
$90 = (($89) + -1)|0;
$i = $90;
}
$91 = $2;
$92 = ($91|0)!=(0);
if ($92) {
$93 = $4;
$94 = HEAP32[$93>>2]|0;
$length = $94;
$i = 0;
while(1) {
$95 = $i;
$96 = $length;
$97 = (($96>>>0) / 2)&-1;
$98 = ($95>>>0)<($97>>>0);
if (!($98)) {
break;
}
$99 = $i;
$100 = $buffer;
$101 = (($100) + ($99)|0);
$102 = HEAP8[$101>>0]|0;
$103 = $102&255;
$tmp = $103;
$104 = $length;
$105 = (($104) - 1)|0;
$106 = $i;
$107 = (($105) - ($106))|0;
$108 = $buffer;
$109 = (($108) + ($107)|0);
$110 = HEAP8[$109>>0]|0;
$111 = $i;
$112 = $buffer;
$113 = (($112) + ($111)|0);
HEAP8[$113>>0] = $110;
$114 = $tmp;
$115 = $114&255;
$116 = $length;
$117 = (($116) - 1)|0;
$118 = $i;
$119 = (($117) - ($118))|0;
$120 = $buffer;
$121 = (($120) + ($119)|0);
HEAP8[$121>>0] = $115;
$122 = $i;
$123 = (($122) + 1)|0;
$i = $123;
}
$124 = $buffer;
$125 = $length;
$126 = (($124) + ($125)|0);
$p = $126;
while(1) {
$127 = $length;
$128 = $2;
$129 = ($127>>>0)<($128>>>0);
if (!($129)) {
break;
}
$130 = $p;
$131 = ((($130)) + 1|0);
$p = $131;
HEAP8[$130>>0] = 0;
$132 = $length;
$133 = (($132) + 1)|0;
$length = $133;
}
$134 = $length;
$135 = $4;
HEAP32[$135>>2] = $134;
$136 = $retbuffer;
$0 = $136;
$158 = $0;
STACKTOP = sp;return ($158|0);
} else {
$137 = $buffer;
$p = $137;
while(1) {
$138 = $4;
$139 = HEAP32[$138>>2]|0;
$140 = ($139|0)!=(0);
if (!($140)) {
break;
}
$141 = $p;
$142 = HEAP8[$141>>0]|0;
$143 = ($142<<24>>24)!=(0);
$144 = $143 ^ 1;
if (!($144)) {
break;
}
$145 = $p;
$146 = ((($145)) + 1|0);
$p = $146;
$147 = $4;
$148 = HEAP32[$147>>2]|0;
$149 = (($148) + -1)|0;
HEAP32[$147>>2] = $149;
}
$150 = $p;
$151 = $buffer;
$152 = ($150|0)!=($151|0);
if ($152) {
$153 = $buffer;
$154 = $p;
$155 = $4;
$156 = HEAP32[$155>>2]|0;
_memmove(($153|0),($154|0),($156|0))|0;
}
$157 = $retbuffer;
$0 = $157;
$158 = $0;
STACKTOP = sp;return ($158|0);
}
return (0)|0;
}
function __gcry_mpi_get_buffer_extra($a,$fill_le,$extraalloc,$r_nbytes,$sign) {
$a = $a|0;
$fill_le = $fill_le|0;
$extraalloc = $extraalloc|0;
$r_nbytes = $r_nbytes|0;
$sign = $sign|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $fill_le;
$2 = $extraalloc;
$3 = $r_nbytes;
$4 = $sign;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = (_do_get_buffer($5,$6,$7,$8,$9,0)|0);
STACKTOP = sp;return ($10|0);
}
function __gcry_mpi_set_buffer($a,$buffer_arg,$nbytes,$sign) {
$a = $a|0;
$buffer_arg = $buffer_arg|0;
$nbytes = $nbytes|0;
$sign = $sign|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0;
var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $alimb = 0, $buffer = 0, $i = 0, $nlimbs = 0, $p = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $buffer_arg;
$2 = $nbytes;
$3 = $sign;
$4 = $1;
$buffer = $4;
$5 = $0;
$6 = ($5|0)!=(0|0);
if ($6) {
$7 = $0;
$8 = ((($7)) + 12|0);
$9 = HEAP32[$8>>2]|0;
$10 = $9 & 16;
$11 = ($10|0)!=(0);
if ($11) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$12 = $2;
$13 = (($12) + 4)|0;
$14 = (($13) - 1)|0;
$15 = (($14>>>0) / 4)&-1;
$nlimbs = $15;
$16 = $0;
$17 = HEAP32[$16>>2]|0;
$18 = $nlimbs;
$19 = ($17|0)<($18|0);
if ($19) {
$20 = $0;
$21 = $nlimbs;
__gcry_mpi_resize($20,$21);
}
$22 = $3;
$23 = $0;
$24 = ((($23)) + 8|0);
HEAP32[$24>>2] = $22;
$i = 0;
$25 = $buffer;
$26 = $2;
$27 = (($25) + ($26)|0);
$28 = ((($27)) + -1|0);
$p = $28;
while(1) {
$29 = $p;
$30 = $buffer;
$31 = ((($30)) + 4|0);
$32 = ($29>>>0)>=($31>>>0);
$33 = $p;
if (!($32)) {
break;
}
$34 = ((($33)) + -1|0);
$p = $34;
$35 = HEAP8[$33>>0]|0;
$36 = $35&255;
$alimb = $36;
$37 = $p;
$38 = ((($37)) + -1|0);
$p = $38;
$39 = HEAP8[$37>>0]|0;
$40 = $39&255;
$41 = $40 << 8;
$42 = $alimb;
$43 = $42 | $41;
$alimb = $43;
$44 = $p;
$45 = ((($44)) + -1|0);
$p = $45;
$46 = HEAP8[$44>>0]|0;
$47 = $46&255;
$48 = $47 << 16;
$49 = $alimb;
$50 = $49 | $48;
$alimb = $50;
$51 = $p;
$52 = ((($51)) + -1|0);
$p = $52;
$53 = HEAP8[$51>>0]|0;
$54 = $53&255;
$55 = $54 << 24;
$56 = $alimb;
$57 = $56 | $55;
$alimb = $57;
$58 = $alimb;
$59 = $i;
$60 = (($59) + 1)|0;
$i = $60;
$61 = $0;
$62 = ((($61)) + 16|0);
$63 = HEAP32[$62>>2]|0;
$64 = (($63) + ($59<<2)|0);
HEAP32[$64>>2] = $58;
}
$65 = $buffer;
$66 = ($33>>>0)>=($65>>>0);
if ($66) {
$67 = $p;
$68 = ((($67)) + -1|0);
$p = $68;
$69 = HEAP8[$67>>0]|0;
$70 = $69&255;
$alimb = $70;
$71 = $p;
$72 = $buffer;
$73 = ($71>>>0)>=($72>>>0);
if ($73) {
$74 = $p;
$75 = ((($74)) + -1|0);
$p = $75;
$76 = HEAP8[$74>>0]|0;
$77 = $76&255;
$78 = $77 << 8;
$79 = $alimb;
$80 = $79 | $78;
$alimb = $80;
}
$81 = $p;
$82 = $buffer;
$83 = ($81>>>0)>=($82>>>0);
if ($83) {
$84 = $p;
$85 = ((($84)) + -1|0);
$p = $85;
$86 = HEAP8[$84>>0]|0;
$87 = $86&255;
$88 = $87 << 16;
$89 = $alimb;
$90 = $89 | $88;
$alimb = $90;
}
$91 = $p;
$92 = $buffer;
$93 = ($91>>>0)>=($92>>>0);
if ($93) {
$94 = $p;
$95 = ((($94)) + -1|0);
$p = $95;
$96 = HEAP8[$94>>0]|0;
$97 = $96&255;
$98 = $97 << 24;
$99 = $alimb;
$100 = $99 | $98;
$alimb = $100;
}
$101 = $alimb;
$102 = $i;
$103 = (($102) + 1)|0;
$i = $103;
$104 = $0;
$105 = ((($104)) + 16|0);
$106 = HEAP32[$105>>2]|0;
$107 = (($106) + ($102<<2)|0);
HEAP32[$107>>2] = $101;
}
$108 = $i;
$109 = $0;
$110 = ((($109)) + 4|0);
HEAP32[$110>>2] = $108;
$111 = $i;
$112 = $nlimbs;
$113 = ($111|0)==($112|0);
if ($113) {
STACKTOP = sp;return;
} else {
__gcry_assert_failed(46134,46146,377,46157);
// unreachable;
}
}
function __gcry_mpi_scan($ret_mpi,$format,$buffer_arg,$buflen,$nscanned) {
$ret_mpi = $ret_mpi|0;
$format = $format|0;
$buffer_arg = $buffer_arg|0;
$buflen = $buflen|0;
$nscanned = $nscanned|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a = 0, $buffer = 0, $len = 0, $n = 0, $or$cond = 0;
var $or$cond3 = 0, $s = 0, $s1 = 0, $secure = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$len = sp + 16|0;
$1 = $ret_mpi;
$2 = $format;
$3 = $buffer_arg;
$4 = $buflen;
$5 = $nscanned;
$6 = $3;
$buffer = $6;
$a = 0;
$7 = $buffer;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $buffer;
$10 = (__gcry_is_secure($9)|0);
$11 = ($10|0)!=(0);
$13 = $11;
} else {
$13 = 0;
}
$12 = $13&1;
$secure = $12;
$14 = $2;
$15 = ($14|0)==(3);
if ($15) {
HEAP32[$len>>2] = 0;
} else {
$16 = $4;
HEAP32[$len>>2] = $16;
}
$17 = $2;
$18 = ($17|0)==(1);
if ($18) {
$19 = $buffer;
$s = $19;
$20 = $secure;
$21 = ($20|0)!=(0);
$22 = HEAP32[$len>>2]|0;
$23 = (($22) + 4)|0;
$24 = (($23) - 1)|0;
$25 = (($24>>>0) / 4)&-1;
if ($21) {
$26 = (__gcry_mpi_alloc_secure($25)|0);
$28 = $26;
} else {
$27 = (__gcry_mpi_alloc($25)|0);
$28 = $27;
}
$a = $28;
$29 = HEAP32[$len>>2]|0;
$30 = ($29|0)!=(0);
if ($30) {
$31 = $a;
$32 = $s;
$33 = HEAP32[$len>>2]|0;
__gcry_mpi_set_buffer($31,$32,$33,0);
$34 = $s;
$35 = HEAP8[$34>>0]|0;
$36 = $35&255;
$37 = $36 & 128;
$38 = ($37|0)!=(0);
$39 = $38 ^ 1;
$40 = $39 ^ 1;
$41 = $40&1;
$42 = $a;
$43 = ((($42)) + 8|0);
HEAP32[$43>>2] = $41;
$44 = $a;
$45 = ((($44)) + 8|0);
$46 = HEAP32[$45>>2]|0;
$47 = ($46|0)!=(0);
if ($47) {
$48 = $a;
_onecompl($48);
$49 = $a;
$50 = $a;
__gcry_mpi_add_ui($49,$50,1);
$51 = $a;
$52 = ((($51)) + 8|0);
HEAP32[$52>>2] = 1;
}
}
$53 = $1;
$54 = ($53|0)!=(0|0);
$55 = $a;
if ($54) {
__gcry_mpi_normalize($55);
$56 = $a;
$57 = $1;
HEAP32[$57>>2] = $56;
} else {
__gcry_mpi_free($55);
}
$58 = $5;
$59 = ($58|0)!=(0|0);
if ($59) {
$60 = HEAP32[$len>>2]|0;
$61 = $5;
HEAP32[$61>>2] = $60;
}
$0 = 0;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$62 = $2;
$63 = ($62|0)==(5);
if ($63) {
$64 = $secure;
$65 = ($64|0)!=(0);
$66 = HEAP32[$len>>2]|0;
$67 = (($66) + 4)|0;
$68 = (($67) - 1)|0;
$69 = (($68>>>0) / 4)&-1;
if ($65) {
$70 = (__gcry_mpi_alloc_secure($69)|0);
$72 = $70;
} else {
$71 = (__gcry_mpi_alloc($69)|0);
$72 = $71;
}
$a = $72;
$73 = HEAP32[$len>>2]|0;
$74 = ($73|0)!=(0);
if ($74) {
$75 = $a;
$76 = $buffer;
$77 = HEAP32[$len>>2]|0;
__gcry_mpi_set_buffer($75,$76,$77,0);
}
$78 = $1;
$79 = ($78|0)!=(0|0);
$80 = $a;
if ($79) {
__gcry_mpi_normalize($80);
$81 = $a;
$82 = $1;
HEAP32[$82>>2] = $81;
} else {
__gcry_mpi_free($80);
}
$83 = $5;
$84 = ($83|0)!=(0|0);
if ($84) {
$85 = HEAP32[$len>>2]|0;
$86 = $5;
HEAP32[$86>>2] = $85;
}
$0 = 0;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$87 = $2;
$88 = ($87|0)==(2);
if ($88) {
$89 = $buffer;
$90 = $secure;
$91 = (_mpi_read_from_buffer($89,$len,$90)|0);
$a = $91;
$92 = $5;
$93 = ($92|0)!=(0|0);
if ($93) {
$94 = HEAP32[$len>>2]|0;
$95 = $5;
HEAP32[$95>>2] = $94;
}
$96 = $1;
$97 = ($96|0)!=(0|0);
$98 = $a;
$99 = ($98|0)!=(0|0);
$or$cond = $97 & $99;
$100 = $a;
if ($or$cond) {
__gcry_mpi_normalize($100);
$101 = $a;
$102 = $1;
HEAP32[$102>>2] = $101;
} else {
$103 = ($100|0)!=(0|0);
if ($103) {
$104 = $a;
__gcry_mpi_free($104);
$a = 0;
}
}
$105 = $a;
$106 = ($105|0)!=(0|0);
$107 = $106 ? 0 : 65;
$0 = $107;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$108 = $2;
$109 = ($108|0)==(3);
if (!($109)) {
$190 = $2;
$191 = ($190|0)==(4);
if (!($191)) {
$0 = 45;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$192 = $4;
$193 = ($192|0)!=(0);
if ($193) {
$0 = 45;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$194 = $secure;
$195 = ($194|0)!=(0);
if ($195) {
$196 = (__gcry_mpi_alloc_secure(0)|0);
$198 = $196;
} else {
$197 = (__gcry_mpi_alloc(0)|0);
$198 = $197;
}
$a = $198;
$199 = $a;
$200 = $buffer;
$201 = (_mpi_fromstr($199,$200)|0);
$202 = ($201|0)!=(0);
if ($202) {
$203 = $a;
__gcry_mpi_free($203);
$0 = 65;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$204 = $1;
$205 = ($204|0)!=(0|0);
$206 = $a;
if ($205) {
__gcry_mpi_normalize($206);
$207 = $a;
$208 = $1;
HEAP32[$208>>2] = $207;
} else {
__gcry_mpi_free($206);
}
$209 = $5;
$210 = ($209|0)!=(0|0);
if ($210) {
$211 = $buffer;
$212 = (_strlen($211)|0);
$213 = $5;
HEAP32[$213>>2] = $212;
}
$0 = 0;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$110 = $buffer;
$s1 = $110;
$111 = HEAP32[$len>>2]|0;
$112 = ($111|0)!=(0);
$113 = HEAP32[$len>>2]|0;
$114 = ($113>>>0)<(4);
$or$cond3 = $112 & $114;
if ($or$cond3) {
$0 = 66;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
$115 = $s1;
$116 = HEAP8[$115>>0]|0;
$117 = $116&255;
$118 = $117 << 24;
$119 = $s1;
$120 = ((($119)) + 1|0);
$121 = HEAP8[$120>>0]|0;
$122 = $121&255;
$123 = $122 << 16;
$124 = $118 | $123;
$125 = $s1;
$126 = ((($125)) + 2|0);
$127 = HEAP8[$126>>0]|0;
$128 = $127&255;
$129 = $128 << 8;
$130 = $124 | $129;
$131 = $s1;
$132 = ((($131)) + 3|0);
$133 = HEAP8[$132>>0]|0;
$134 = $133&255;
$135 = $130 | $134;
$n = $135;
$136 = $s1;
$137 = ((($136)) + 4|0);
$s1 = $137;
$138 = HEAP32[$len>>2]|0;
$139 = ($138|0)!=(0);
if ($139) {
$140 = HEAP32[$len>>2]|0;
$141 = (($140) - 4)|0;
HEAP32[$len>>2] = $141;
}
$142 = HEAP32[$len>>2]|0;
$143 = ($142|0)!=(0);
if ($143) {
$144 = $n;
$145 = HEAP32[$len>>2]|0;
$146 = ($144>>>0)>($145>>>0);
if ($146) {
$0 = 67;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
}
$147 = $secure;
$148 = ($147|0)!=(0);
$149 = $n;
$150 = (($149) + 4)|0;
$151 = (($150) - 1)|0;
$152 = (($151>>>0) / 4)&-1;
if ($148) {
$153 = (__gcry_mpi_alloc_secure($152)|0);
$155 = $153;
} else {
$154 = (__gcry_mpi_alloc($152)|0);
$155 = $154;
}
$a = $155;
$156 = $n;
$157 = ($156|0)!=(0);
if ($157) {
$158 = $a;
$159 = $s1;
$160 = $n;
__gcry_mpi_set_buffer($158,$159,$160,0);
$161 = $s1;
$162 = HEAP8[$161>>0]|0;
$163 = $162&255;
$164 = $163 & 128;
$165 = ($164|0)!=(0);
$166 = $165 ^ 1;
$167 = $166 ^ 1;
$168 = $167&1;
$169 = $a;
$170 = ((($169)) + 8|0);
HEAP32[$170>>2] = $168;
$171 = $a;
$172 = ((($171)) + 8|0);
$173 = HEAP32[$172>>2]|0;
$174 = ($173|0)!=(0);
if ($174) {
$175 = $a;
_onecompl($175);
$176 = $a;
$177 = $a;
__gcry_mpi_add_ui($176,$177,1);
$178 = $a;
$179 = ((($178)) + 8|0);
HEAP32[$179>>2] = 1;
}
}
$180 = $5;
$181 = ($180|0)!=(0|0);
if ($181) {
$182 = $n;
$183 = (($182) + 4)|0;
$184 = $5;
HEAP32[$184>>2] = $183;
}
$185 = $1;
$186 = ($185|0)!=(0|0);
$187 = $a;
if ($186) {
__gcry_mpi_normalize($187);
$188 = $a;
$189 = $1;
HEAP32[$189>>2] = $188;
} else {
__gcry_mpi_free($187);
}
$0 = 0;
$214 = $0;
STACKTOP = sp;return ($214|0);
}
function _onecompl($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ap = 0, $i = 0, $n = 0, $nbits = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = (__gcry_mpi_get_nbits($1)|0);
$nbits = $2;
$3 = $0;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $0;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = $7 & 16;
$9 = ($8|0)!=(0);
if ($9) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$10 = $0;
__gcry_mpi_normalize($10);
$11 = $0;
$12 = ((($11)) + 16|0);
$13 = HEAP32[$12>>2]|0;
$ap = $13;
$14 = $0;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$n = $16;
$i = 0;
while(1) {
$17 = $i;
$18 = $n;
$19 = ($17>>>0)<($18>>>0);
if (!($19)) {
break;
}
$20 = $i;
$21 = $ap;
$22 = (($21) + ($20<<2)|0);
$23 = HEAP32[$22>>2]|0;
$24 = $23 ^ -1;
HEAP32[$22>>2] = $24;
$25 = $i;
$26 = (($25) + 1)|0;
$i = $26;
}
$27 = $0;
$28 = ((($27)) + 8|0);
HEAP32[$28>>2] = 0;
$29 = $0;
$30 = $nbits;
$31 = (($30) - 1)|0;
__gcry_mpi_clear_highbit($29,$31);
STACKTOP = sp;return;
}
function _mpi_read_from_buffer($buffer,$ret_nread,$secure) {
$buffer = $buffer|0;
$ret_nread = $ret_nread|0;
$secure = $secure|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $a = 0, $i = 0, $j = 0, $nbits = 0, $nbytes = 0, $nlimbs = 0;
var $nread = 0, $val = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $ret_nread;
$2 = $secure;
$nread = 0;
$val = 0;
$3 = $1;
$4 = HEAP32[$3>>2]|0;
$5 = ($4>>>0)<(2);
if ($5) {
$71 = $nread;
$72 = $1;
HEAP32[$72>>2] = $71;
$73 = $val;
STACKTOP = sp;return ($73|0);
}
$6 = $0;
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $8 << 8;
$10 = $0;
$11 = ((($10)) + 1|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = $9 | $13;
$nbits = $14;
$15 = $nbits;
$16 = ($15>>>0)>(16384);
if ($16) {
$71 = $nread;
$72 = $1;
HEAP32[$72>>2] = $71;
$73 = $val;
STACKTOP = sp;return ($73|0);
}
$17 = $0;
$18 = ((($17)) + 2|0);
$0 = $18;
$nread = 2;
$19 = $nbits;
$20 = (($19) + 7)|0;
$21 = (($20>>>0) / 8)&-1;
$nbytes = $21;
$22 = $nbytes;
$23 = (($22) + 4)|0;
$24 = (($23) - 1)|0;
$25 = (($24>>>0) / 4)&-1;
$nlimbs = $25;
$26 = $2;
$27 = ($26|0)!=(0);
$28 = $nlimbs;
if ($27) {
$29 = (__gcry_mpi_alloc_secure($28)|0);
$31 = $29;
} else {
$30 = (__gcry_mpi_alloc($28)|0);
$31 = $30;
}
$val = $31;
$32 = $nbytes;
$33 = (($32>>>0) % 4)&-1;
$34 = (4 - ($33))|0;
$i = $34;
$35 = $i;
$36 = (($35|0) % 4)&-1;
$i = $36;
$37 = $nlimbs;
$38 = $val;
$39 = ((($38)) + 4|0);
HEAP32[$39>>2] = $37;
$j = $37;
$40 = $val;
$41 = ((($40)) + 8|0);
HEAP32[$41>>2] = 0;
L11: while(1) {
$42 = $j;
$43 = ($42|0)>(0);
if (!($43)) {
label = 14;
break;
}
$a = 0;
while(1) {
$44 = $i;
$45 = ($44|0)<(4);
if (!($45)) {
break;
}
$46 = $nread;
$47 = (($46) + 1)|0;
$nread = $47;
$48 = $1;
$49 = HEAP32[$48>>2]|0;
$50 = ($47>>>0)>($49>>>0);
if ($50) {
break L11;
}
$52 = $a;
$53 = $52 << 8;
$a = $53;
$54 = $0;
$55 = ((($54)) + 1|0);
$0 = $55;
$56 = HEAP8[$54>>0]|0;
$57 = $56&255;
$58 = $a;
$59 = $58 | $57;
$a = $59;
$60 = $i;
$61 = (($60) + 1)|0;
$i = $61;
}
$i = 0;
$62 = $a;
$63 = $j;
$64 = (($63) - 1)|0;
$65 = $val;
$66 = ((($65)) + 16|0);
$67 = HEAP32[$66>>2]|0;
$68 = (($67) + ($64<<2)|0);
HEAP32[$68>>2] = $62;
$69 = $j;
$70 = (($69) + -1)|0;
$j = $70;
}
if ((label|0) == 14) {
$71 = $nread;
$72 = $1;
HEAP32[$72>>2] = $71;
$73 = $val;
STACKTOP = sp;return ($73|0);
}
$51 = $val;
__gcry_mpi_free($51);
$val = 0;
$71 = $nread;
$72 = $1;
HEAP32[$72>>2] = $71;
$73 = $val;
STACKTOP = sp;return ($73|0);
}
function _mpi_fromstr($val,$str) {
$val = $val|0;
$str = $str|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $14 = 0;
var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0;
var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0;
var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a = 0, $c = 0, $c1 = 0, $c2 = 0, $i = 0, $j = 0, $nbits = 0;
var $nbytes = 0, $nlimbs = 0, $or$cond = 0, $or$cond11 = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, $prepend_zero = 0, $sign = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $val;
$2 = $str;
$sign = 0;
$prepend_zero = 0;
$3 = $2;
$4 = HEAP8[$3>>0]|0;
$5 = $4 << 24 >> 24;
$6 = ($5|0)==(45);
if ($6) {
$sign = 1;
$7 = $2;
$8 = ((($7)) + 1|0);
$2 = $8;
}
$9 = $2;
$10 = HEAP8[$9>>0]|0;
$11 = $10 << 24 >> 24;
$12 = ($11|0)==(48);
if ($12) {
$13 = $2;
$14 = ((($13)) + 1|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15 << 24 >> 24;
$17 = ($16|0)==(120);
if ($17) {
$18 = $2;
$19 = ((($18)) + 2|0);
$2 = $19;
}
}
$20 = $2;
$21 = (_strlen($20)|0);
$22 = $21<<2;
$nbits = $22;
$23 = $nbits;
$24 = (($23>>>0) % 8)&-1;
$25 = ($24|0)!=(0);
if ($25) {
$prepend_zero = 1;
}
$26 = $nbits;
$27 = (($26) + 7)|0;
$28 = (($27>>>0) / 8)&-1;
$nbytes = $28;
$29 = $nbytes;
$30 = (($29) + 4)|0;
$31 = (($30) - 1)|0;
$32 = (($31>>>0) / 4)&-1;
$nlimbs = $32;
$33 = $1;
$34 = HEAP32[$33>>2]|0;
$35 = $nlimbs;
$36 = ($34>>>0)<($35>>>0);
if ($36) {
$37 = $1;
$38 = $nlimbs;
__gcry_mpi_resize($37,$38);
}
$39 = $nbytes;
$40 = (($39>>>0) % 4)&-1;
$41 = (4 - ($40))|0;
$i = $41;
$42 = $i;
$43 = (($42|0) % 4)&-1;
$i = $43;
$44 = $nlimbs;
$45 = $1;
$46 = ((($45)) + 4|0);
HEAP32[$46>>2] = $44;
$j = $44;
$47 = $sign;
$48 = $1;
$49 = ((($48)) + 8|0);
HEAP32[$49>>2] = $47;
L14: while(1) {
$50 = $j;
$51 = ($50|0)>(0);
if (!($51)) {
label = 37;
break;
}
$a = 0;
while(1) {
$52 = $i;
$53 = ($52|0)<(4);
if (!($53)) {
break;
}
$54 = $prepend_zero;
$55 = ($54|0)!=(0);
if ($55) {
$c1 = 48;
$prepend_zero = 0;
} else {
$56 = $2;
$57 = ((($56)) + 1|0);
$2 = $57;
$58 = HEAP8[$56>>0]|0;
$59 = $58 << 24 >> 24;
$c1 = $59;
}
$60 = $c1;
$61 = ($60|0)!=(0);
if (!($61)) {
label = 18;
break L14;
}
$63 = $2;
$64 = ((($63)) + 1|0);
$2 = $64;
$65 = HEAP8[$63>>0]|0;
$66 = $65 << 24 >> 24;
$c2 = $66;
$67 = $c2;
$68 = ($67|0)!=(0);
if (!($68)) {
label = 20;
break L14;
}
$70 = $c1;
$71 = ($70|0)>=(48);
$72 = $c1;
$73 = ($72|0)<=(57);
$or$cond = $71 & $73;
$74 = $c1;
do {
if ($or$cond) {
$75 = (($74) - 48)|0;
$c = $75;
} else {
$76 = ($74|0)>=(97);
$77 = $c1;
$78 = ($77|0)<=(102);
$or$cond3 = $76 & $78;
$79 = $c1;
if ($or$cond3) {
$80 = (($79) - 97)|0;
$81 = (($80) + 10)|0;
$c = $81;
break;
}
$82 = ($79|0)>=(65);
$83 = $c1;
$84 = ($83|0)<=(70);
$or$cond5 = $82 & $84;
if (!($or$cond5)) {
label = 27;
break L14;
}
$85 = $c1;
$86 = (($85) - 65)|0;
$87 = (($86) + 10)|0;
$c = $87;
}
} while(0);
$89 = $c;
$90 = $89 << 4;
$c = $90;
$91 = $c2;
$92 = ($91|0)>=(48);
$93 = $c2;
$94 = ($93|0)<=(57);
$or$cond7 = $92 & $94;
$95 = $c2;
do {
if ($or$cond7) {
$96 = (($95) - 48)|0;
$97 = $c;
$98 = $97 | $96;
$c = $98;
} else {
$99 = ($95|0)>=(97);
$100 = $c2;
$101 = ($100|0)<=(102);
$or$cond9 = $99 & $101;
$102 = $c2;
if ($or$cond9) {
$103 = (($102) - 97)|0;
$104 = (($103) + 10)|0;
$105 = $c;
$106 = $105 | $104;
$c = $106;
break;
}
$107 = ($102|0)>=(65);
$108 = $c2;
$109 = ($108|0)<=(70);
$or$cond11 = $107 & $109;
if (!($or$cond11)) {
label = 34;
break L14;
}
$110 = $c2;
$111 = (($110) - 65)|0;
$112 = (($111) + 10)|0;
$113 = $c;
$114 = $113 | $112;
$c = $114;
}
} while(0);
$116 = $a;
$117 = $116 << 8;
$a = $117;
$118 = $c;
$119 = $a;
$120 = $119 | $118;
$a = $120;
$121 = $i;
$122 = (($121) + 1)|0;
$i = $122;
}
$i = 0;
$123 = $a;
$124 = $j;
$125 = (($124) - 1)|0;
$126 = $1;
$127 = ((($126)) + 16|0);
$128 = HEAP32[$127>>2]|0;
$129 = (($128) + ($125<<2)|0);
HEAP32[$129>>2] = $123;
$130 = $j;
$131 = (($130) + -1)|0;
$j = $131;
}
if ((label|0) == 18) {
$62 = $1;
__gcry_mpi_clear($62);
$0 = 1;
$132 = $0;
STACKTOP = sp;return ($132|0);
}
else if ((label|0) == 20) {
$69 = $1;
__gcry_mpi_clear($69);
$0 = 1;
$132 = $0;
STACKTOP = sp;return ($132|0);
}
else if ((label|0) == 27) {
$88 = $1;
__gcry_mpi_clear($88);
$0 = 1;
$132 = $0;
STACKTOP = sp;return ($132|0);
}
else if ((label|0) == 34) {
$115 = $1;
__gcry_mpi_clear($115);
$0 = 1;
$132 = $0;
STACKTOP = sp;return ($132|0);
}
else if ((label|0) == 37) {
$0 = 0;
$132 = $0;
STACKTOP = sp;return ($132|0);
}
return (0)|0;
}
function __gcry_mpi_print($format,$buffer,$buflen,$nwritten,$a) {
$format = $format|0;
$buffer = $buffer|0;
$buflen = $buflen|0;
$nwritten = $nwritten|0;
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $c = 0, $dummy_nwritten = 0, $extra = 0, $extra11 = 0, $extra7 = 0, $i = 0, $len = 0, $n = 0, $n1 = 0, $n12 = 0, $n3 = 0, $n8 = 0, $nbits = 0, $negative = 0, $s = 0, $s13 = 0, $s5 = 0;
var $s9 = 0, $tmp = 0, $tmp10 = 0, $tmp2 = 0, $tmp4 = 0, $tmp6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$dummy_nwritten = sp + 80|0;
$n = sp + 64|0;
$n1 = sp + 56|0;
$n3 = sp + 48|0;
$n8 = sp + 28|0;
$n12 = sp + 8|0;
$1 = $format;
$2 = $buffer;
$3 = $buflen;
$4 = $nwritten;
$5 = $a;
$6 = $5;
$7 = (__gcry_mpi_get_nbits($6)|0);
$nbits = $7;
$8 = $4;
$9 = ($8|0)!=(0|0);
if (!($9)) {
$4 = $dummy_nwritten;
}
$10 = $5;
$11 = ((($10)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)!=(0);
if ($13) {
$14 = $5;
$15 = (__gcry_mpi_cmp_ui($14,0)|0);
$16 = ($15|0)!=(0);
if ($16) {
$negative = 1;
} else {
label = 6;
}
} else {
label = 6;
}
if ((label|0) == 6) {
$negative = 0;
}
$17 = $3;
$len = $17;
$18 = $4;
HEAP32[$18>>2] = 0;
$19 = $1;
$20 = ($19|0)==(1);
if ($20) {
$extra = 0;
$21 = $5;
$22 = (__gcry_mpi_get_buffer($21,0,$n,0)|0);
$tmp = $22;
$23 = $tmp;
$24 = ($23|0)!=(0|0);
if (!($24)) {
$25 = (_gpg_err_code_from_syserror()|0);
$0 = $25;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$26 = $negative;
$27 = ($26|0)!=(0);
if ($27) {
$28 = $tmp;
$29 = HEAP32[$n>>2]|0;
_twocompl($28,$29);
$30 = $tmp;
$31 = HEAP8[$30>>0]|0;
$32 = $31&255;
$33 = $32 & 128;
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = HEAP32[$n>>2]|0;
$36 = (($35) + 1)|0;
HEAP32[$n>>2] = $36;
$extra = 2;
}
} else {
$37 = HEAP32[$n>>2]|0;
$38 = ($37|0)!=(0);
if ($38) {
$39 = $tmp;
$40 = HEAP8[$39>>0]|0;
$41 = $40&255;
$42 = $41 & 128;
$43 = ($42|0)!=(0);
if ($43) {
$44 = HEAP32[$n>>2]|0;
$45 = (($44) + 1)|0;
HEAP32[$n>>2] = $45;
$extra = 1;
}
}
}
$46 = $2;
$47 = ($46|0)!=(0|0);
if ($47) {
$48 = HEAP32[$n>>2]|0;
$49 = $len;
$50 = ($48>>>0)>($49>>>0);
if ($50) {
$51 = $tmp;
__gcry_free($51);
$0 = 66;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
}
$52 = $2;
$53 = ($52|0)!=(0|0);
if ($53) {
$54 = $2;
$s = $54;
$55 = $extra;
$56 = ($55|0)==(1);
if ($56) {
$57 = $s;
$58 = ((($57)) + 1|0);
$s = $58;
HEAP8[$57>>0] = 0;
} else {
$59 = $extra;
$60 = ($59|0)!=(0);
if ($60) {
$61 = $s;
$62 = ((($61)) + 1|0);
$s = $62;
HEAP8[$61>>0] = -1;
}
}
$63 = $s;
$64 = $tmp;
$65 = HEAP32[$n>>2]|0;
$66 = $extra;
$67 = ($66|0)!=(0);
$68 = $67 ^ 1;
$69 = $68 ^ 1;
$70 = $69&1;
$71 = (($65) - ($70))|0;
_memcpy(($63|0),($64|0),($71|0))|0;
}
$72 = $tmp;
__gcry_free($72);
$73 = HEAP32[$n>>2]|0;
$74 = $4;
HEAP32[$74>>2] = $73;
$0 = 0;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$75 = $1;
$76 = ($75|0)==(5);
if ($76) {
$77 = $nbits;
$78 = (($77) + 7)|0;
$79 = (($78>>>0) / 8)&-1;
HEAP32[$n1>>2] = $79;
$80 = $2;
$81 = ($80|0)!=(0|0);
if ($81) {
$82 = HEAP32[$n1>>2]|0;
$83 = $len;
$84 = ($82>>>0)>($83>>>0);
if ($84) {
$0 = 66;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
}
$85 = $2;
$86 = ($85|0)!=(0|0);
do {
if ($86) {
$87 = $5;
$88 = (__gcry_mpi_get_buffer($87,0,$n1,0)|0);
$tmp2 = $88;
$89 = $tmp2;
$90 = ($89|0)!=(0|0);
if ($90) {
$92 = $2;
$93 = $tmp2;
$94 = HEAP32[$n1>>2]|0;
_memcpy(($92|0),($93|0),($94|0))|0;
$95 = $tmp2;
__gcry_free($95);
break;
}
$91 = (_gpg_err_code_from_syserror()|0);
$0 = $91;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
} while(0);
$96 = HEAP32[$n1>>2]|0;
$97 = $4;
HEAP32[$97>>2] = $96;
$0 = 0;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$98 = $1;
$99 = ($98|0)==(2);
if ($99) {
$100 = $nbits;
$101 = (($100) + 7)|0;
$102 = (($101>>>0) / 8)&-1;
HEAP32[$n3>>2] = $102;
$103 = $negative;
$104 = ($103|0)!=(0);
if ($104) {
$0 = 45;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$105 = $2;
$106 = ($105|0)!=(0|0);
if ($106) {
$107 = HEAP32[$n3>>2]|0;
$108 = (($107) + 2)|0;
$109 = $len;
$110 = ($108>>>0)>($109>>>0);
if ($110) {
$0 = 66;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
}
$111 = $2;
$112 = ($111|0)!=(0|0);
do {
if ($112) {
$113 = $2;
$s5 = $113;
$114 = $nbits;
$115 = $114 >>> 8;
$116 = $115&255;
$117 = $s5;
HEAP8[$117>>0] = $116;
$118 = $nbits;
$119 = $118&255;
$120 = $s5;
$121 = ((($120)) + 1|0);
HEAP8[$121>>0] = $119;
$122 = $5;
$123 = (__gcry_mpi_get_buffer($122,0,$n3,0)|0);
$tmp4 = $123;
$124 = $tmp4;
$125 = ($124|0)!=(0|0);
if ($125) {
$127 = $s5;
$128 = ((($127)) + 2|0);
$129 = $tmp4;
$130 = HEAP32[$n3>>2]|0;
_memcpy(($128|0),($129|0),($130|0))|0;
$131 = $tmp4;
__gcry_free($131);
break;
}
$126 = (_gpg_err_code_from_syserror()|0);
$0 = $126;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
} while(0);
$132 = HEAP32[$n3>>2]|0;
$133 = (($132) + 2)|0;
$134 = $4;
HEAP32[$134>>2] = $133;
$0 = 0;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$135 = $1;
$136 = ($135|0)==(3);
if ($136) {
$extra7 = 0;
$137 = $5;
$138 = (__gcry_mpi_get_buffer($137,0,$n8,0)|0);
$tmp6 = $138;
$139 = $tmp6;
$140 = ($139|0)!=(0|0);
if (!($140)) {
$141 = (_gpg_err_code_from_syserror()|0);
$0 = $141;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$142 = $negative;
$143 = ($142|0)!=(0);
if ($143) {
$144 = $tmp6;
$145 = HEAP32[$n8>>2]|0;
_twocompl($144,$145);
$146 = $tmp6;
$147 = HEAP8[$146>>0]|0;
$148 = $147&255;
$149 = $148 & 128;
$150 = ($149|0)!=(0);
if (!($150)) {
$151 = HEAP32[$n8>>2]|0;
$152 = (($151) + 1)|0;
HEAP32[$n8>>2] = $152;
$extra7 = 2;
}
} else {
$153 = HEAP32[$n8>>2]|0;
$154 = ($153|0)!=(0);
if ($154) {
$155 = $tmp6;
$156 = HEAP8[$155>>0]|0;
$157 = $156&255;
$158 = $157 & 128;
$159 = ($158|0)!=(0);
if ($159) {
$160 = HEAP32[$n8>>2]|0;
$161 = (($160) + 1)|0;
HEAP32[$n8>>2] = $161;
$extra7 = 1;
}
}
}
$162 = $2;
$163 = ($162|0)!=(0|0);
if ($163) {
$164 = HEAP32[$n8>>2]|0;
$165 = (($164) + 4)|0;
$166 = $len;
$167 = ($165>>>0)>($166>>>0);
if ($167) {
$168 = $tmp6;
__gcry_free($168);
$0 = 66;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
}
$169 = $2;
$170 = ($169|0)!=(0|0);
if ($170) {
$171 = $2;
$s9 = $171;
$172 = HEAP32[$n8>>2]|0;
$173 = $172 >>> 24;
$174 = $173&255;
$175 = $s9;
$176 = ((($175)) + 1|0);
$s9 = $176;
HEAP8[$175>>0] = $174;
$177 = HEAP32[$n8>>2]|0;
$178 = $177 >>> 16;
$179 = $178&255;
$180 = $s9;
$181 = ((($180)) + 1|0);
$s9 = $181;
HEAP8[$180>>0] = $179;
$182 = HEAP32[$n8>>2]|0;
$183 = $182 >>> 8;
$184 = $183&255;
$185 = $s9;
$186 = ((($185)) + 1|0);
$s9 = $186;
HEAP8[$185>>0] = $184;
$187 = HEAP32[$n8>>2]|0;
$188 = $187&255;
$189 = $s9;
$190 = ((($189)) + 1|0);
$s9 = $190;
HEAP8[$189>>0] = $188;
$191 = $extra7;
$192 = ($191|0)==(1);
if ($192) {
$193 = $s9;
$194 = ((($193)) + 1|0);
$s9 = $194;
HEAP8[$193>>0] = 0;
} else {
$195 = $extra7;
$196 = ($195|0)!=(0);
if ($196) {
$197 = $s9;
$198 = ((($197)) + 1|0);
$s9 = $198;
HEAP8[$197>>0] = -1;
}
}
$199 = $s9;
$200 = $tmp6;
$201 = HEAP32[$n8>>2]|0;
$202 = $extra7;
$203 = ($202|0)!=(0);
$204 = $203 ^ 1;
$205 = $204 ^ 1;
$206 = $205&1;
$207 = (($201) - ($206))|0;
_memcpy(($199|0),($200|0),($207|0))|0;
}
$208 = $tmp6;
__gcry_free($208);
$209 = HEAP32[$n8>>2]|0;
$210 = (4 + ($209))|0;
$211 = $4;
HEAP32[$211>>2] = $210;
$0 = 0;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$212 = $1;
$213 = ($212|0)==(4);
if (!($213)) {
$0 = 45;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$extra11 = 0;
HEAP32[$n12>>2] = 0;
$214 = $5;
$215 = (__gcry_mpi_get_buffer($214,0,$n12,0)|0);
$tmp10 = $215;
$216 = $tmp10;
$217 = ($216|0)!=(0|0);
if (!($217)) {
$218 = (_gpg_err_code_from_syserror()|0);
$0 = $218;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
$219 = HEAP32[$n12>>2]|0;
$220 = ($219|0)!=(0);
if ($220) {
$221 = $tmp10;
$222 = HEAP8[$221>>0]|0;
$223 = $222&255;
$224 = $223 & 128;
$225 = ($224|0)!=(0);
if ($225) {
label = 70;
}
} else {
label = 70;
}
if ((label|0) == 70) {
$extra11 = 2;
}
$226 = $2;
$227 = ($226|0)!=(0|0);
if ($227) {
$228 = HEAP32[$n12>>2]|0;
$229 = $228<<1;
$230 = $extra11;
$231 = (($229) + ($230))|0;
$232 = $negative;
$233 = (($231) + ($232))|0;
$234 = (($233) + 1)|0;
$235 = $len;
$236 = ($234>>>0)>($235>>>0);
if ($236) {
$237 = $tmp10;
__gcry_free($237);
$0 = 66;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
}
$238 = $2;
$239 = ($238|0)!=(0|0);
if ($239) {
$240 = $2;
$s13 = $240;
$241 = $negative;
$242 = ($241|0)!=(0);
if ($242) {
$243 = $s13;
$244 = ((($243)) + 1|0);
$s13 = $244;
HEAP8[$243>>0] = 45;
}
$245 = $extra11;
$246 = ($245|0)!=(0);
if ($246) {
$247 = $s13;
$248 = ((($247)) + 1|0);
$s13 = $248;
HEAP8[$247>>0] = 48;
$249 = $s13;
$250 = ((($249)) + 1|0);
$s13 = $250;
HEAP8[$249>>0] = 48;
}
$i = 0;
while(1) {
$251 = $i;
$252 = HEAP32[$n12>>2]|0;
$253 = ($251>>>0)<($252>>>0);
if (!($253)) {
break;
}
$254 = $i;
$255 = $tmp10;
$256 = (($255) + ($254)|0);
$257 = HEAP8[$256>>0]|0;
$258 = $257&255;
$c = $258;
$259 = $c;
$260 = $259 >>> 4;
$261 = ($260>>>0)<(10);
$262 = $c;
$263 = $262 >>> 4;
$264 = (48 + ($263))|0;
$265 = (65 + ($263))|0;
$266 = (($265) - 10)|0;
$267 = $261 ? $264 : $266;
$268 = $267&255;
$269 = $s13;
$270 = ((($269)) + 1|0);
$s13 = $270;
HEAP8[$269>>0] = $268;
$271 = $c;
$272 = $271 & 15;
$c = $272;
$273 = $c;
$274 = ($273>>>0)<(10);
$275 = $c;
$276 = (48 + ($275))|0;
$277 = (65 + ($275))|0;
$278 = (($277) - 10)|0;
$279 = $274 ? $276 : $278;
$280 = $279&255;
$281 = $s13;
$282 = ((($281)) + 1|0);
$s13 = $282;
HEAP8[$281>>0] = $280;
$283 = $i;
$284 = (($283) + 1)|0;
$i = $284;
}
$285 = $s13;
$286 = ((($285)) + 1|0);
$s13 = $286;
HEAP8[$285>>0] = 0;
$287 = $s13;
$288 = $2;
$289 = $287;
$290 = $288;
$291 = (($289) - ($290))|0;
$292 = $4;
HEAP32[$292>>2] = $291;
} else {
$293 = HEAP32[$n12>>2]|0;
$294 = $293<<1;
$295 = $extra11;
$296 = (($294) + ($295))|0;
$297 = $negative;
$298 = (($296) + ($297))|0;
$299 = (($298) + 1)|0;
$300 = $4;
HEAP32[$300>>2] = $299;
}
$301 = $tmp10;
__gcry_free($301);
$0 = 0;
$302 = $0;
STACKTOP = sp;return ($302|0);
}
function _twocompl($p,$n) {
$p = $p|0;
$n = $n|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $p;
$1 = $n;
$2 = $1;
$3 = (($2) - 1)|0;
$i = $3;
while(1) {
$4 = $i;
$5 = ($4|0)>=(0);
if (!($5)) {
break;
}
$6 = $i;
$7 = $0;
$8 = (($7) + ($6)|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)!=(0);
$11 = $10 ^ 1;
if (!($11)) {
break;
}
$12 = $i;
$13 = (($12) + -1)|0;
$i = $13;
}
$14 = $i;
$15 = ($14|0)>=(0);
if (!($15)) {
STACKTOP = sp;return;
}
$16 = $i;
$17 = $0;
$18 = (($17) + ($16)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$21 = $20 & 1;
$22 = ($21|0)!=(0);
$23 = $i;
$24 = $0;
$25 = (($24) + ($23)|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26&255;
do {
if ($22) {
$28 = $27 ^ 254;
$29 = $28 | 1;
$30 = $29 & 255;
$31 = $30&255;
$32 = $i;
$33 = $0;
$34 = (($33) + ($32)|0);
HEAP8[$34>>0] = $31;
} else {
$35 = $27 & 2;
$36 = ($35|0)!=(0);
$37 = $i;
$38 = $0;
$39 = (($38) + ($37)|0);
$40 = HEAP8[$39>>0]|0;
$41 = $40&255;
if ($36) {
$42 = $41 ^ 252;
$43 = $42 | 2;
$44 = $43 & 254;
$45 = $44&255;
$46 = $i;
$47 = $0;
$48 = (($47) + ($46)|0);
HEAP8[$48>>0] = $45;
break;
}
$49 = $41 & 4;
$50 = ($49|0)!=(0);
$51 = $i;
$52 = $0;
$53 = (($52) + ($51)|0);
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
if ($50) {
$56 = $55 ^ 248;
$57 = $56 | 4;
$58 = $57 & 252;
$59 = $58&255;
$60 = $i;
$61 = $0;
$62 = (($61) + ($60)|0);
HEAP8[$62>>0] = $59;
break;
}
$63 = $55 & 8;
$64 = ($63|0)!=(0);
$65 = $i;
$66 = $0;
$67 = (($66) + ($65)|0);
$68 = HEAP8[$67>>0]|0;
$69 = $68&255;
if ($64) {
$70 = $69 ^ 240;
$71 = $70 | 8;
$72 = $71 & 248;
$73 = $72&255;
$74 = $i;
$75 = $0;
$76 = (($75) + ($74)|0);
HEAP8[$76>>0] = $73;
break;
}
$77 = $69 & 16;
$78 = ($77|0)!=(0);
$79 = $i;
$80 = $0;
$81 = (($80) + ($79)|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82&255;
if ($78) {
$84 = $83 ^ 224;
$85 = $84 | 16;
$86 = $85 & 240;
$87 = $86&255;
$88 = $i;
$89 = $0;
$90 = (($89) + ($88)|0);
HEAP8[$90>>0] = $87;
break;
}
$91 = $83 & 32;
$92 = ($91|0)!=(0);
$93 = $i;
$94 = $0;
$95 = (($94) + ($93)|0);
$96 = HEAP8[$95>>0]|0;
$97 = $96&255;
if ($92) {
$98 = $97 ^ 192;
$99 = $98 | 32;
$100 = $99 & 224;
$101 = $100&255;
$102 = $i;
$103 = $0;
$104 = (($103) + ($102)|0);
HEAP8[$104>>0] = $101;
break;
}
$105 = $97 & 64;
$106 = ($105|0)!=(0);
$107 = $i;
$108 = $0;
$109 = (($108) + ($107)|0);
if ($106) {
$110 = HEAP8[$109>>0]|0;
$111 = $110&255;
$112 = $111 ^ 128;
$113 = $112 | 64;
$114 = $113 & 192;
$115 = $114&255;
$116 = $i;
$117 = $0;
$118 = (($117) + ($116)|0);
HEAP8[$118>>0] = $115;
break;
} else {
HEAP8[$109>>0] = -128;
break;
}
}
} while(0);
$119 = $i;
$120 = (($119) + -1)|0;
$i = $120;
while(1) {
$121 = $i;
$122 = ($121|0)>=(0);
if (!($122)) {
break;
}
$123 = $i;
$124 = $0;
$125 = (($124) + ($123)|0);
$126 = HEAP8[$125>>0]|0;
$127 = $126&255;
$128 = $127 ^ 255;
$129 = $128&255;
HEAP8[$125>>0] = $129;
$130 = $i;
$131 = (($130) + -1)|0;
$i = $131;
}
STACKTOP = sp;return;
}
function __gcry_mpi_to_octet_string($r_frame,$space,$value,$nbytes) {
$r_frame = $r_frame|0;
$space = $space|0;
$value = $value|0;
$nbytes = $nbytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, $frame = 0, $n = 0;
var $nframe = 0, $noff = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nframe = sp + 12|0;
$1 = $r_frame;
$2 = $space;
$3 = $value;
$4 = $nbytes;
$5 = $1;
$6 = ($5|0)!=(0|0);
$7 = $6 ^ 1;
$8 = $7&1;
$9 = $2;
$10 = ($9|0)!=(0|0);
$11 = $10 ^ 1;
$12 = $11&1;
$13 = ($8|0)==($12|0);
if ($13) {
$0 = 45;
$77 = $0;
STACKTOP = sp;return ($77|0);
}
$14 = $1;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $1;
HEAP32[$16>>2] = 0;
}
$17 = $3;
$18 = (__gcry_mpi_print(5,0,0,$nframe,$17)|0);
$rc = $18;
$19 = $rc;
$20 = ($19|0)!=(0);
if ($20) {
$21 = $rc;
$0 = $21;
$77 = $0;
STACKTOP = sp;return ($77|0);
}
$22 = HEAP32[$nframe>>2]|0;
$23 = $4;
$24 = ($22>>>0)>($23>>>0);
if ($24) {
$0 = 67;
$77 = $0;
STACKTOP = sp;return ($77|0);
}
$25 = HEAP32[$nframe>>2]|0;
$26 = $4;
$27 = ($25>>>0)<($26>>>0);
if ($27) {
$28 = $4;
$29 = HEAP32[$nframe>>2]|0;
$30 = (($28) - ($29))|0;
$31 = $30;
} else {
$31 = 0;
}
$noff = $31;
$32 = HEAP32[$nframe>>2]|0;
$33 = $noff;
$34 = (($32) + ($33))|0;
$n = $34;
$35 = $2;
$36 = ($35|0)!=(0|0);
if ($36) {
$37 = $2;
$frame = $37;
} else {
$38 = $3;
$39 = ($38|0)!=(0|0);
if ($39) {
$40 = $3;
$41 = ((($40)) + 12|0);
$42 = HEAP32[$41>>2]|0;
$43 = $42 & 1;
$44 = ($43|0)!=(0);
if ($44) {
$45 = $n;
$46 = (__gcry_malloc_secure($45)|0);
$49 = $46;
} else {
label = 16;
}
} else {
label = 16;
}
if ((label|0) == 16) {
$47 = $n;
$48 = (__gcry_malloc($47)|0);
$49 = $48;
}
$frame = $49;
$50 = $frame;
$51 = ($50|0)!=(0|0);
if (!($51)) {
$52 = (_gpg_err_code_from_syserror()|0);
$rc = $52;
$53 = $rc;
$0 = $53;
$77 = $0;
STACKTOP = sp;return ($77|0);
}
}
$54 = $noff;
$55 = ($54|0)!=(0);
if ($55) {
$56 = $frame;
$57 = $noff;
_memset(($56|0),0,($57|0))|0;
}
$58 = $noff;
$59 = HEAP32[$nframe>>2]|0;
$60 = (($59) + ($58))|0;
HEAP32[$nframe>>2] = $60;
$61 = $frame;
$62 = $noff;
$63 = (($61) + ($62)|0);
$64 = HEAP32[$nframe>>2]|0;
$65 = $noff;
$66 = (($64) - ($65))|0;
$67 = $3;
$68 = (__gcry_mpi_print(5,$63,$66,0,$67)|0);
$rc = $68;
$69 = $rc;
$70 = ($69|0)!=(0);
if ($70) {
$71 = $frame;
__gcry_free($71);
$72 = $rc;
$0 = $72;
$77 = $0;
STACKTOP = sp;return ($77|0);
}
$73 = $1;
$74 = ($73|0)!=(0|0);
if ($74) {
$75 = $frame;
$76 = $1;
HEAP32[$76>>2] = $75;
}
$0 = 0;
$77 = $0;
STACKTOP = sp;return ($77|0);
}
function __gcry_mpih_add_n($res_ptr,$s1_ptr,$s2_ptr,$size) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s2_ptr = $s2_ptr|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy = 0, $j = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s2_ptr;
$3 = $size;
$4 = $3;
$5 = (0 - ($4))|0;
$j = $5;
$6 = $j;
$7 = $1;
$8 = (0 - ($6))|0;
$9 = (($7) + ($8<<2)|0);
$1 = $9;
$10 = $j;
$11 = $2;
$12 = (0 - ($10))|0;
$13 = (($11) + ($12<<2)|0);
$2 = $13;
$14 = $j;
$15 = $0;
$16 = (0 - ($14))|0;
$17 = (($15) + ($16<<2)|0);
$0 = $17;
$cy = 0;
while(1) {
$18 = $j;
$19 = $2;
$20 = (($19) + ($18<<2)|0);
$21 = HEAP32[$20>>2]|0;
$y = $21;
$22 = $j;
$23 = $1;
$24 = (($23) + ($22<<2)|0);
$25 = HEAP32[$24>>2]|0;
$x = $25;
$26 = $cy;
$27 = $y;
$28 = (($27) + ($26))|0;
$y = $28;
$29 = $y;
$30 = $cy;
$31 = ($29>>>0)<($30>>>0);
$32 = $31&1;
$cy = $32;
$33 = $x;
$34 = $y;
$35 = (($34) + ($33))|0;
$y = $35;
$36 = $y;
$37 = $x;
$38 = ($36>>>0)<($37>>>0);
$39 = $38&1;
$40 = $cy;
$41 = (($40) + ($39))|0;
$cy = $41;
$42 = $y;
$43 = $j;
$44 = $0;
$45 = (($44) + ($43<<2)|0);
HEAP32[$45>>2] = $42;
$46 = $j;
$47 = (($46) + 1)|0;
$j = $47;
$48 = ($47|0)!=(0);
if (!($48)) {
break;
}
}
$49 = $cy;
STACKTOP = sp;return ($49|0);
}
function __gcry_mpih_mod_1($dividend_ptr,$dividend_size,$divisor_limb) {
$dividend_ptr = $dividend_ptr|0;
$dividend_size = $dividend_size|0;
$divisor_limb = $divisor_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__a = 0, $__d0 = 0, $__d02 = 0, $__d09 = 0, $__d1 = 0, $__d11 = 0;
var $__d18 = 0, $__m = 0, $__m14 = 0, $__m7 = 0, $__q0 = 0, $__q011 = 0, $__q04 = 0, $__q1 = 0, $__q110 = 0, $__q13 = 0, $__r0 = 0, $__r013 = 0, $__r06 = 0, $__r1 = 0, $__r112 = 0, $__r15 = 0, $__xr = 0, $dummy = 0, $i = 0, $n0 = 0;
var $n1 = 0, $normalization_steps = 0, $r = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $dividend_ptr;
$2 = $dividend_size;
$3 = $divisor_limb;
$4 = $2;
$5 = ($4|0)!=(0);
if (!($5)) {
$0 = 0;
$333 = $0;
STACKTOP = sp;return ($333|0);
}
$6 = $3;
$__xr = $6;
$7 = $__xr;
$8 = ($7>>>0)<(65536);
$9 = $__xr;
$10 = ($9>>>0)<(256);
$11 = $10 ? 0 : 8;
$12 = ($9>>>0)<(16777216);
$13 = $12 ? 16 : 24;
$14 = $8 ? $11 : $13;
$__a = $14;
$15 = $__xr;
$16 = $__a;
$17 = $15 >>> $16;
$18 = (45829 + ($17)|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19&255;
$21 = $__a;
$22 = (($20) + ($21))|0;
$23 = (32 - ($22))|0;
$normalization_steps = $23;
$24 = $normalization_steps;
$25 = ($24|0)!=(0);
if (!($25)) {
$232 = $2;
$233 = (($232) - 1)|0;
$i = $233;
$234 = $i;
$235 = $1;
$236 = (($235) + ($234<<2)|0);
$237 = HEAP32[$236>>2]|0;
$r = $237;
$238 = $r;
$239 = $3;
$240 = ($238>>>0)>=($239>>>0);
if ($240) {
$r = 0;
} else {
$241 = $i;
$242 = (($241) + -1)|0;
$i = $242;
}
while(1) {
$243 = $i;
$244 = ($243|0)>=(0);
if (!($244)) {
break;
}
$245 = $i;
$246 = $1;
$247 = (($246) + ($245<<2)|0);
$248 = HEAP32[$247>>2]|0;
$n0 = $248;
$249 = $3;
$250 = $249 >>> 16;
$__d18 = $250;
$251 = $3;
$252 = $251 & 65535;
$__d09 = $252;
$253 = $r;
$254 = $__d18;
$255 = (($253>>>0) % ($254>>>0))&-1;
$__r112 = $255;
$256 = $r;
$257 = $__d18;
$258 = (($256>>>0) / ($257>>>0))&-1;
$__q110 = $258;
$259 = $__q110;
$260 = $__d09;
$261 = Math_imul($259, $260)|0;
$__m14 = $261;
$262 = $__r112;
$263 = $262<<16;
$264 = $n0;
$265 = $264 >>> 16;
$266 = $263 | $265;
$__r112 = $266;
$267 = $__r112;
$268 = $__m14;
$269 = ($267>>>0)<($268>>>0);
if ($269) {
$270 = $__q110;
$271 = (($270) + -1)|0;
$__q110 = $271;
$272 = $3;
$273 = $__r112;
$274 = (($273) + ($272))|0;
$__r112 = $274;
$275 = $__r112;
$276 = $3;
$277 = ($275>>>0)>=($276>>>0);
if ($277) {
$278 = $__r112;
$279 = $__m14;
$280 = ($278>>>0)<($279>>>0);
if ($280) {
$281 = $__q110;
$282 = (($281) + -1)|0;
$__q110 = $282;
$283 = $3;
$284 = $__r112;
$285 = (($284) + ($283))|0;
$__r112 = $285;
}
}
}
$286 = $__m14;
$287 = $__r112;
$288 = (($287) - ($286))|0;
$__r112 = $288;
$289 = $__r112;
$290 = $__d18;
$291 = (($289>>>0) % ($290>>>0))&-1;
$__r013 = $291;
$292 = $__r112;
$293 = $__d18;
$294 = (($292>>>0) / ($293>>>0))&-1;
$__q011 = $294;
$295 = $__q011;
$296 = $__d09;
$297 = Math_imul($295, $296)|0;
$__m14 = $297;
$298 = $__r013;
$299 = $298<<16;
$300 = $n0;
$301 = $300 & 65535;
$302 = $299 | $301;
$__r013 = $302;
$303 = $__r013;
$304 = $__m14;
$305 = ($303>>>0)<($304>>>0);
if ($305) {
$306 = $__q011;
$307 = (($306) + -1)|0;
$__q011 = $307;
$308 = $3;
$309 = $__r013;
$310 = (($309) + ($308))|0;
$__r013 = $310;
$311 = $__r013;
$312 = $3;
$313 = ($311>>>0)>=($312>>>0);
if ($313) {
$314 = $__r013;
$315 = $__m14;
$316 = ($314>>>0)<($315>>>0);
if ($316) {
$317 = $__q011;
$318 = (($317) + -1)|0;
$__q011 = $318;
$319 = $3;
$320 = $__r013;
$321 = (($320) + ($319))|0;
$__r013 = $321;
}
}
}
$322 = $__m14;
$323 = $__r013;
$324 = (($323) - ($322))|0;
$__r013 = $324;
$325 = $__q110;
$326 = $325<<16;
$327 = $__q011;
$328 = $326 | $327;
$dummy = $328;
$329 = $__r013;
$r = $329;
$330 = $i;
$331 = (($330) + -1)|0;
$i = $331;
}
$332 = $r;
$0 = $332;
$333 = $0;
STACKTOP = sp;return ($333|0);
}
$26 = $normalization_steps;
$27 = $3;
$28 = $27 << $26;
$3 = $28;
$29 = $2;
$30 = (($29) - 1)|0;
$31 = $1;
$32 = (($31) + ($30<<2)|0);
$33 = HEAP32[$32>>2]|0;
$n1 = $33;
$34 = $n1;
$35 = $normalization_steps;
$36 = (32 - ($35))|0;
$37 = $34 >>> $36;
$r = $37;
$38 = $2;
$39 = (($38) - 2)|0;
$i = $39;
while(1) {
$40 = $i;
$41 = ($40|0)>=(0);
if (!($41)) {
break;
}
$42 = $i;
$43 = $1;
$44 = (($43) + ($42<<2)|0);
$45 = HEAP32[$44>>2]|0;
$n0 = $45;
$46 = $3;
$47 = $46 >>> 16;
$__d1 = $47;
$48 = $3;
$49 = $48 & 65535;
$__d0 = $49;
$50 = $r;
$51 = $__d1;
$52 = (($50>>>0) % ($51>>>0))&-1;
$__r1 = $52;
$53 = $r;
$54 = $__d1;
$55 = (($53>>>0) / ($54>>>0))&-1;
$__q1 = $55;
$56 = $__q1;
$57 = $__d0;
$58 = Math_imul($56, $57)|0;
$__m = $58;
$59 = $__r1;
$60 = $59<<16;
$61 = $n1;
$62 = $normalization_steps;
$63 = $61 << $62;
$64 = $n0;
$65 = $normalization_steps;
$66 = (32 - ($65))|0;
$67 = $64 >>> $66;
$68 = $63 | $67;
$69 = $68 >>> 16;
$70 = $60 | $69;
$__r1 = $70;
$71 = $__r1;
$72 = $__m;
$73 = ($71>>>0)<($72>>>0);
if ($73) {
$74 = $__q1;
$75 = (($74) + -1)|0;
$__q1 = $75;
$76 = $3;
$77 = $__r1;
$78 = (($77) + ($76))|0;
$__r1 = $78;
$79 = $__r1;
$80 = $3;
$81 = ($79>>>0)>=($80>>>0);
if ($81) {
$82 = $__r1;
$83 = $__m;
$84 = ($82>>>0)<($83>>>0);
if ($84) {
$85 = $__q1;
$86 = (($85) + -1)|0;
$__q1 = $86;
$87 = $3;
$88 = $__r1;
$89 = (($88) + ($87))|0;
$__r1 = $89;
}
}
}
$90 = $__m;
$91 = $__r1;
$92 = (($91) - ($90))|0;
$__r1 = $92;
$93 = $__r1;
$94 = $__d1;
$95 = (($93>>>0) % ($94>>>0))&-1;
$__r0 = $95;
$96 = $__r1;
$97 = $__d1;
$98 = (($96>>>0) / ($97>>>0))&-1;
$__q0 = $98;
$99 = $__q0;
$100 = $__d0;
$101 = Math_imul($99, $100)|0;
$__m = $101;
$102 = $__r0;
$103 = $102<<16;
$104 = $n1;
$105 = $normalization_steps;
$106 = $104 << $105;
$107 = $n0;
$108 = $normalization_steps;
$109 = (32 - ($108))|0;
$110 = $107 >>> $109;
$111 = $106 | $110;
$112 = $111 & 65535;
$113 = $103 | $112;
$__r0 = $113;
$114 = $__r0;
$115 = $__m;
$116 = ($114>>>0)<($115>>>0);
if ($116) {
$117 = $__q0;
$118 = (($117) + -1)|0;
$__q0 = $118;
$119 = $3;
$120 = $__r0;
$121 = (($120) + ($119))|0;
$__r0 = $121;
$122 = $__r0;
$123 = $3;
$124 = ($122>>>0)>=($123>>>0);
if ($124) {
$125 = $__r0;
$126 = $__m;
$127 = ($125>>>0)<($126>>>0);
if ($127) {
$128 = $__q0;
$129 = (($128) + -1)|0;
$__q0 = $129;
$130 = $3;
$131 = $__r0;
$132 = (($131) + ($130))|0;
$__r0 = $132;
}
}
}
$133 = $__m;
$134 = $__r0;
$135 = (($134) - ($133))|0;
$__r0 = $135;
$136 = $__q1;
$137 = $136<<16;
$138 = $__q0;
$139 = $137 | $138;
$dummy = $139;
$140 = $__r0;
$r = $140;
$141 = $n0;
$n1 = $141;
$142 = $i;
$143 = (($142) + -1)|0;
$i = $143;
}
$144 = $3;
$145 = $144 >>> 16;
$__d11 = $145;
$146 = $3;
$147 = $146 & 65535;
$__d02 = $147;
$148 = $r;
$149 = $__d11;
$150 = (($148>>>0) % ($149>>>0))&-1;
$__r15 = $150;
$151 = $r;
$152 = $__d11;
$153 = (($151>>>0) / ($152>>>0))&-1;
$__q13 = $153;
$154 = $__q13;
$155 = $__d02;
$156 = Math_imul($154, $155)|0;
$__m7 = $156;
$157 = $__r15;
$158 = $157<<16;
$159 = $n1;
$160 = $normalization_steps;
$161 = $159 << $160;
$162 = $161 >>> 16;
$163 = $158 | $162;
$__r15 = $163;
$164 = $__r15;
$165 = $__m7;
$166 = ($164>>>0)<($165>>>0);
if ($166) {
$167 = $__q13;
$168 = (($167) + -1)|0;
$__q13 = $168;
$169 = $3;
$170 = $__r15;
$171 = (($170) + ($169))|0;
$__r15 = $171;
$172 = $__r15;
$173 = $3;
$174 = ($172>>>0)>=($173>>>0);
if ($174) {
$175 = $__r15;
$176 = $__m7;
$177 = ($175>>>0)<($176>>>0);
if ($177) {
$178 = $__q13;
$179 = (($178) + -1)|0;
$__q13 = $179;
$180 = $3;
$181 = $__r15;
$182 = (($181) + ($180))|0;
$__r15 = $182;
}
}
}
$183 = $__m7;
$184 = $__r15;
$185 = (($184) - ($183))|0;
$__r15 = $185;
$186 = $__r15;
$187 = $__d11;
$188 = (($186>>>0) % ($187>>>0))&-1;
$__r06 = $188;
$189 = $__r15;
$190 = $__d11;
$191 = (($189>>>0) / ($190>>>0))&-1;
$__q04 = $191;
$192 = $__q04;
$193 = $__d02;
$194 = Math_imul($192, $193)|0;
$__m7 = $194;
$195 = $__r06;
$196 = $195<<16;
$197 = $n1;
$198 = $normalization_steps;
$199 = $197 << $198;
$200 = $199 & 65535;
$201 = $196 | $200;
$__r06 = $201;
$202 = $__r06;
$203 = $__m7;
$204 = ($202>>>0)<($203>>>0);
if ($204) {
$205 = $__q04;
$206 = (($205) + -1)|0;
$__q04 = $206;
$207 = $3;
$208 = $__r06;
$209 = (($208) + ($207))|0;
$__r06 = $209;
$210 = $__r06;
$211 = $3;
$212 = ($210>>>0)>=($211>>>0);
if ($212) {
$213 = $__r06;
$214 = $__m7;
$215 = ($213>>>0)<($214>>>0);
if ($215) {
$216 = $__q04;
$217 = (($216) + -1)|0;
$__q04 = $217;
$218 = $3;
$219 = $__r06;
$220 = (($219) + ($218))|0;
$__r06 = $220;
}
}
}
$221 = $__m7;
$222 = $__r06;
$223 = (($222) - ($221))|0;
$__r06 = $223;
$224 = $__q13;
$225 = $224<<16;
$226 = $__q04;
$227 = $225 | $226;
$dummy = $227;
$228 = $__r06;
$r = $228;
$229 = $r;
$230 = $normalization_steps;
$231 = $229 >>> $230;
$0 = $231;
$333 = $0;
STACKTOP = sp;return ($333|0);
}
function __gcry_mpih_divrem($qp,$qextra_limbs,$np,$nsize,$dp,$dsize) {
$qp = $qp|0;
$qextra_limbs = $qextra_limbs|0;
$np = $np|0;
$nsize = $nsize|0;
$dp = $dp|0;
$dsize = $dsize|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0;
var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0;
var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $__d0 = 0, $__d012 = 0, $__d02 = 0, $__d028 = 0, $__d1 = 0, $__d11 = 0, $__d111 = 0, $__d127 = 0, $__m = 0, $__m17 = 0, $__m33 = 0, $__m7 = 0, $__q0 = 0, $__q014 = 0, $__q030 = 0, $__q04 = 0, $__q1 = 0, $__q113 = 0, $__q129 = 0, $__q13 = 0;
var $__r0 = 0, $__r016 = 0, $__r032 = 0, $__r06 = 0, $__r1 = 0, $__r115 = 0, $__r131 = 0, $__r15 = 0, $__u = 0, $__u42 = 0, $__uh = 0, $__uh40 = 0, $__ul = 0, $__ul38 = 0, $__v = 0, $__v43 = 0, $__vh = 0, $__vh41 = 0, $__vl = 0, $__vl39 = 0;
var $__x = 0, $__x0 = 0, $__x034 = 0, $__x1 = 0, $__x10 = 0, $__x135 = 0, $__x18 = 0, $__x19 = 0, $__x2 = 0, $__x236 = 0, $__x3 = 0, $__x337 = 0, $_i = 0, $cy_limb = 0, $d = 0, $d0 = 0, $d1 = 0, $d121 = 0, $dX = 0, $i = 0;
var $i20 = 0, $i8 = 0, $most_significant_q_limb = 0, $n0 = 0, $n022 = 0, $n1 = 0, $n124 = 0, $n19 = 0, $n2 = 0, $n225 = 0, $q = 0, $q23 = 0, $r = 0, $r26 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 320|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $qp;
$1 = $qextra_limbs;
$2 = $np;
$3 = $nsize;
$4 = $dp;
$5 = $dsize;
$most_significant_q_limb = 0;
$6 = $5;
switch ($6|0) {
case 0: {
__gcry_divide_by_zero();
// unreachable;
break;
}
case 1: {
$7 = $4;
$8 = HEAP32[$7>>2]|0;
$d = $8;
$9 = $3;
$10 = (($9) - 1)|0;
$11 = $2;
$12 = (($11) + ($10<<2)|0);
$13 = HEAP32[$12>>2]|0;
$n1 = $13;
$14 = $n1;
$15 = $d;
$16 = ($14>>>0)>=($15>>>0);
if ($16) {
$17 = $d;
$18 = $n1;
$19 = (($18) - ($17))|0;
$n1 = $19;
$most_significant_q_limb = 1;
}
$20 = $1;
$21 = $0;
$22 = (($21) + ($20<<2)|0);
$0 = $22;
$23 = $3;
$24 = (($23) - 2)|0;
$i = $24;
while(1) {
$25 = $i;
$26 = ($25|0)>=(0);
if (!($26)) {
break;
}
$27 = $d;
$28 = $27 >>> 16;
$__d1 = $28;
$29 = $d;
$30 = $29 & 65535;
$__d0 = $30;
$31 = $n1;
$32 = $__d1;
$33 = (($31>>>0) % ($32>>>0))&-1;
$__r1 = $33;
$34 = $n1;
$35 = $__d1;
$36 = (($34>>>0) / ($35>>>0))&-1;
$__q1 = $36;
$37 = $__q1;
$38 = $__d0;
$39 = Math_imul($37, $38)|0;
$__m = $39;
$40 = $__r1;
$41 = $40<<16;
$42 = $i;
$43 = $2;
$44 = (($43) + ($42<<2)|0);
$45 = HEAP32[$44>>2]|0;
$46 = $45 >>> 16;
$47 = $41 | $46;
$__r1 = $47;
$48 = $__r1;
$49 = $__m;
$50 = ($48>>>0)<($49>>>0);
if ($50) {
$51 = $__q1;
$52 = (($51) + -1)|0;
$__q1 = $52;
$53 = $d;
$54 = $__r1;
$55 = (($54) + ($53))|0;
$__r1 = $55;
$56 = $__r1;
$57 = $d;
$58 = ($56>>>0)>=($57>>>0);
if ($58) {
$59 = $__r1;
$60 = $__m;
$61 = ($59>>>0)<($60>>>0);
if ($61) {
$62 = $__q1;
$63 = (($62) + -1)|0;
$__q1 = $63;
$64 = $d;
$65 = $__r1;
$66 = (($65) + ($64))|0;
$__r1 = $66;
}
}
}
$67 = $__m;
$68 = $__r1;
$69 = (($68) - ($67))|0;
$__r1 = $69;
$70 = $__r1;
$71 = $__d1;
$72 = (($70>>>0) % ($71>>>0))&-1;
$__r0 = $72;
$73 = $__r1;
$74 = $__d1;
$75 = (($73>>>0) / ($74>>>0))&-1;
$__q0 = $75;
$76 = $__q0;
$77 = $__d0;
$78 = Math_imul($76, $77)|0;
$__m = $78;
$79 = $__r0;
$80 = $79<<16;
$81 = $i;
$82 = $2;
$83 = (($82) + ($81<<2)|0);
$84 = HEAP32[$83>>2]|0;
$85 = $84 & 65535;
$86 = $80 | $85;
$__r0 = $86;
$87 = $__r0;
$88 = $__m;
$89 = ($87>>>0)<($88>>>0);
if ($89) {
$90 = $__q0;
$91 = (($90) + -1)|0;
$__q0 = $91;
$92 = $d;
$93 = $__r0;
$94 = (($93) + ($92))|0;
$__r0 = $94;
$95 = $__r0;
$96 = $d;
$97 = ($95>>>0)>=($96>>>0);
if ($97) {
$98 = $__r0;
$99 = $__m;
$100 = ($98>>>0)<($99>>>0);
if ($100) {
$101 = $__q0;
$102 = (($101) + -1)|0;
$__q0 = $102;
$103 = $d;
$104 = $__r0;
$105 = (($104) + ($103))|0;
$__r0 = $105;
}
}
}
$106 = $__m;
$107 = $__r0;
$108 = (($107) - ($106))|0;
$__r0 = $108;
$109 = $__q1;
$110 = $109<<16;
$111 = $__q0;
$112 = $110 | $111;
$113 = $i;
$114 = $0;
$115 = (($114) + ($113<<2)|0);
HEAP32[$115>>2] = $112;
$116 = $__r0;
$n1 = $116;
$117 = $i;
$118 = (($117) + -1)|0;
$i = $118;
}
$119 = $1;
$120 = $0;
$121 = (0 - ($119))|0;
$122 = (($120) + ($121<<2)|0);
$0 = $122;
$123 = $1;
$124 = (($123) - 1)|0;
$i = $124;
while(1) {
$125 = $i;
$126 = ($125|0)>=(0);
if (!($126)) {
break;
}
$127 = $d;
$128 = $127 >>> 16;
$__d11 = $128;
$129 = $d;
$130 = $129 & 65535;
$__d02 = $130;
$131 = $n1;
$132 = $__d11;
$133 = (($131>>>0) % ($132>>>0))&-1;
$__r15 = $133;
$134 = $n1;
$135 = $__d11;
$136 = (($134>>>0) / ($135>>>0))&-1;
$__q13 = $136;
$137 = $__q13;
$138 = $__d02;
$139 = Math_imul($137, $138)|0;
$__m7 = $139;
$140 = $__r15;
$141 = $140<<16;
$__r15 = $141;
$142 = $__r15;
$143 = $__m7;
$144 = ($142>>>0)<($143>>>0);
if ($144) {
$145 = $__q13;
$146 = (($145) + -1)|0;
$__q13 = $146;
$147 = $d;
$148 = $__r15;
$149 = (($148) + ($147))|0;
$__r15 = $149;
$150 = $__r15;
$151 = $d;
$152 = ($150>>>0)>=($151>>>0);
if ($152) {
$153 = $__r15;
$154 = $__m7;
$155 = ($153>>>0)<($154>>>0);
if ($155) {
$156 = $__q13;
$157 = (($156) + -1)|0;
$__q13 = $157;
$158 = $d;
$159 = $__r15;
$160 = (($159) + ($158))|0;
$__r15 = $160;
}
}
}
$161 = $__m7;
$162 = $__r15;
$163 = (($162) - ($161))|0;
$__r15 = $163;
$164 = $__r15;
$165 = $__d11;
$166 = (($164>>>0) % ($165>>>0))&-1;
$__r06 = $166;
$167 = $__r15;
$168 = $__d11;
$169 = (($167>>>0) / ($168>>>0))&-1;
$__q04 = $169;
$170 = $__q04;
$171 = $__d02;
$172 = Math_imul($170, $171)|0;
$__m7 = $172;
$173 = $__r06;
$174 = $173<<16;
$__r06 = $174;
$175 = $__r06;
$176 = $__m7;
$177 = ($175>>>0)<($176>>>0);
if ($177) {
$178 = $__q04;
$179 = (($178) + -1)|0;
$__q04 = $179;
$180 = $d;
$181 = $__r06;
$182 = (($181) + ($180))|0;
$__r06 = $182;
$183 = $__r06;
$184 = $d;
$185 = ($183>>>0)>=($184>>>0);
if ($185) {
$186 = $__r06;
$187 = $__m7;
$188 = ($186>>>0)<($187>>>0);
if ($188) {
$189 = $__q04;
$190 = (($189) + -1)|0;
$__q04 = $190;
$191 = $d;
$192 = $__r06;
$193 = (($192) + ($191))|0;
$__r06 = $193;
}
}
}
$194 = $__m7;
$195 = $__r06;
$196 = (($195) - ($194))|0;
$__r06 = $196;
$197 = $__q13;
$198 = $197<<16;
$199 = $__q04;
$200 = $198 | $199;
$201 = $i;
$202 = $0;
$203 = (($202) + ($201<<2)|0);
HEAP32[$203>>2] = $200;
$204 = $__r06;
$n1 = $204;
$205 = $i;
$206 = (($205) + -1)|0;
$i = $206;
}
$207 = $n1;
$208 = $2;
HEAP32[$208>>2] = $207;
$739 = $most_significant_q_limb;
STACKTOP = sp;return ($739|0);
break;
}
case 2: {
$209 = $3;
$210 = (($209) - 2)|0;
$211 = $2;
$212 = (($211) + ($210<<2)|0);
$2 = $212;
$213 = $4;
$214 = ((($213)) + 4|0);
$215 = HEAP32[$214>>2]|0;
$d1 = $215;
$216 = $4;
$217 = HEAP32[$216>>2]|0;
$d0 = $217;
$218 = $2;
$219 = ((($218)) + 4|0);
$220 = HEAP32[$219>>2]|0;
$n19 = $220;
$221 = $2;
$222 = HEAP32[$221>>2]|0;
$n0 = $222;
$223 = $n19;
$224 = $d1;
$225 = ($223>>>0)>=($224>>>0);
do {
if ($225) {
$226 = $n19;
$227 = $d1;
$228 = ($226>>>0)>($227>>>0);
if (!($228)) {
$229 = $n0;
$230 = $d0;
$231 = ($229>>>0)>=($230>>>0);
if (!($231)) {
break;
}
}
$232 = $n0;
$233 = $d0;
$234 = (($232) - ($233))|0;
$__x = $234;
$235 = $n19;
$236 = $d1;
$237 = (($235) - ($236))|0;
$238 = $__x;
$239 = $n0;
$240 = ($238>>>0)>($239>>>0);
$241 = $240&1;
$242 = (($237) - ($241))|0;
$n19 = $242;
$243 = $__x;
$n0 = $243;
$most_significant_q_limb = 1;
}
} while(0);
$244 = $1;
$245 = $3;
$246 = (($244) + ($245))|0;
$247 = (($246) - 2)|0;
$248 = (($247) - 1)|0;
$i8 = $248;
while(1) {
$249 = $i8;
$250 = ($249|0)>=(0);
if (!($250)) {
break;
}
$251 = $i8;
$252 = $1;
$253 = ($251|0)>=($252|0);
$254 = $2;
if ($253) {
$255 = ((($254)) + -4|0);
$2 = $255;
} else {
HEAP32[$254>>2] = 0;
}
$256 = $n19;
$257 = $d1;
$258 = ($256|0)==($257|0);
do {
if ($258) {
$q = -1;
$259 = $n0;
$260 = $d1;
$261 = (($259) + ($260))|0;
$r = $261;
$262 = $r;
$263 = $d1;
$264 = ($262>>>0)<($263>>>0);
if ($264) {
$265 = $2;
$266 = HEAP32[$265>>2]|0;
$267 = $d0;
$268 = (($266) + ($267))|0;
$__x10 = $268;
$269 = $r;
$270 = $d0;
$271 = (($269) - ($270))|0;
$272 = (($271) + 0)|0;
$273 = $__x10;
$274 = $2;
$275 = HEAP32[$274>>2]|0;
$276 = ($273>>>0)<($275>>>0);
$277 = $276&1;
$278 = (($272) + ($277))|0;
$n19 = $278;
$279 = $__x10;
$n0 = $279;
$280 = $q;
$281 = $i8;
$282 = $0;
$283 = (($282) + ($281<<2)|0);
HEAP32[$283>>2] = $280;
break;
} else {
$284 = $d0;
$285 = $d0;
$286 = ($285|0)!=(0);
$287 = $286 ? 1 : 0;
$288 = (($284) - ($287))|0;
$n19 = $288;
$289 = $d0;
$290 = (0 - ($289))|0;
$n0 = $290;
label = 52;
break;
}
} else {
$291 = $d1;
$292 = $291 >>> 16;
$__d111 = $292;
$293 = $d1;
$294 = $293 & 65535;
$__d012 = $294;
$295 = $n19;
$296 = $__d111;
$297 = (($295>>>0) % ($296>>>0))&-1;
$__r115 = $297;
$298 = $n19;
$299 = $__d111;
$300 = (($298>>>0) / ($299>>>0))&-1;
$__q113 = $300;
$301 = $__q113;
$302 = $__d012;
$303 = Math_imul($301, $302)|0;
$__m17 = $303;
$304 = $__r115;
$305 = $304<<16;
$306 = $n0;
$307 = $306 >>> 16;
$308 = $305 | $307;
$__r115 = $308;
$309 = $__r115;
$310 = $__m17;
$311 = ($309>>>0)<($310>>>0);
if ($311) {
$312 = $__q113;
$313 = (($312) + -1)|0;
$__q113 = $313;
$314 = $d1;
$315 = $__r115;
$316 = (($315) + ($314))|0;
$__r115 = $316;
$317 = $__r115;
$318 = $d1;
$319 = ($317>>>0)>=($318>>>0);
if ($319) {
$320 = $__r115;
$321 = $__m17;
$322 = ($320>>>0)<($321>>>0);
if ($322) {
$323 = $__q113;
$324 = (($323) + -1)|0;
$__q113 = $324;
$325 = $d1;
$326 = $__r115;
$327 = (($326) + ($325))|0;
$__r115 = $327;
}
}
}
$328 = $__m17;
$329 = $__r115;
$330 = (($329) - ($328))|0;
$__r115 = $330;
$331 = $__r115;
$332 = $__d111;
$333 = (($331>>>0) % ($332>>>0))&-1;
$__r016 = $333;
$334 = $__r115;
$335 = $__d111;
$336 = (($334>>>0) / ($335>>>0))&-1;
$__q014 = $336;
$337 = $__q014;
$338 = $__d012;
$339 = Math_imul($337, $338)|0;
$__m17 = $339;
$340 = $__r016;
$341 = $340<<16;
$342 = $n0;
$343 = $342 & 65535;
$344 = $341 | $343;
$__r016 = $344;
$345 = $__r016;
$346 = $__m17;
$347 = ($345>>>0)<($346>>>0);
if ($347) {
$348 = $__q014;
$349 = (($348) + -1)|0;
$__q014 = $349;
$350 = $d1;
$351 = $__r016;
$352 = (($351) + ($350))|0;
$__r016 = $352;
$353 = $__r016;
$354 = $d1;
$355 = ($353>>>0)>=($354>>>0);
if ($355) {
$356 = $__r016;
$357 = $__m17;
$358 = ($356>>>0)<($357>>>0);
if ($358) {
$359 = $__q014;
$360 = (($359) + -1)|0;
$__q014 = $360;
$361 = $d1;
$362 = $__r016;
$363 = (($362) + ($361))|0;
$__r016 = $363;
}
}
}
$364 = $__m17;
$365 = $__r016;
$366 = (($365) - ($364))|0;
$__r016 = $366;
$367 = $__q113;
$368 = $367<<16;
$369 = $__q014;
$370 = $368 | $369;
$q = $370;
$371 = $__r016;
$r = $371;
$372 = $d0;
$__u = $372;
$373 = $q;
$__v = $373;
$374 = $__u;
$375 = $374 & 65535;
$__ul = $375;
$376 = $__u;
$377 = $376 >>> 16;
$__uh = $377;
$378 = $__v;
$379 = $378 & 65535;
$__vl = $379;
$380 = $__v;
$381 = $380 >>> 16;
$__vh = $381;
$382 = $__ul;
$383 = $__vl;
$384 = Math_imul($382, $383)|0;
$__x0 = $384;
$385 = $__ul;
$386 = $__vh;
$387 = Math_imul($385, $386)|0;
$__x1 = $387;
$388 = $__uh;
$389 = $__vl;
$390 = Math_imul($388, $389)|0;
$__x2 = $390;
$391 = $__uh;
$392 = $__vh;
$393 = Math_imul($391, $392)|0;
$__x3 = $393;
$394 = $__x0;
$395 = $394 >>> 16;
$396 = $__x1;
$397 = (($396) + ($395))|0;
$__x1 = $397;
$398 = $__x2;
$399 = $__x1;
$400 = (($399) + ($398))|0;
$__x1 = $400;
$401 = $__x1;
$402 = $__x2;
$403 = ($401>>>0)<($402>>>0);
if ($403) {
$404 = $__x3;
$405 = (($404) + 65536)|0;
$__x3 = $405;
}
$406 = $__x3;
$407 = $__x1;
$408 = $407 >>> 16;
$409 = (($406) + ($408))|0;
$n19 = $409;
$410 = $__x1;
$411 = $410 & 65535;
$412 = $411 << 16;
$413 = $__x0;
$414 = $413 & 65535;
$415 = (($412) + ($414))|0;
$n0 = $415;
label = 52;
}
} while(0);
if ((label|0) == 52) {
label = 0;
$416 = $2;
$417 = HEAP32[$416>>2]|0;
$n2 = $417;
while(1) {
$418 = $n19;
$419 = $r;
$420 = ($418>>>0)>($419>>>0);
if (!($420)) {
$421 = $n19;
$422 = $r;
$423 = ($421|0)==($422|0);
if (!($423)) {
break;
}
$424 = $n0;
$425 = $n2;
$426 = ($424>>>0)>($425>>>0);
if (!($426)) {
break;
}
}
$427 = $q;
$428 = (($427) + -1)|0;
$q = $428;
$429 = $n0;
$430 = $d0;
$431 = (($429) - ($430))|0;
$__x18 = $431;
$432 = $n19;
$433 = (($432) - 0)|0;
$434 = $__x18;
$435 = $n0;
$436 = ($434>>>0)>($435>>>0);
$437 = $436&1;
$438 = (($433) - ($437))|0;
$n19 = $438;
$439 = $__x18;
$n0 = $439;
$440 = $d1;
$441 = $r;
$442 = (($441) + ($440))|0;
$r = $442;
$443 = $r;
$444 = $d1;
$445 = ($443>>>0)>=($444>>>0);
if (!($445)) {
break;
}
}
$446 = $q;
$447 = $i8;
$448 = $0;
$449 = (($448) + ($447<<2)|0);
HEAP32[$449>>2] = $446;
$450 = $n2;
$451 = $n0;
$452 = (($450) - ($451))|0;
$__x19 = $452;
$453 = $r;
$454 = $n19;
$455 = (($453) - ($454))|0;
$456 = $__x19;
$457 = $n2;
$458 = ($456>>>0)>($457>>>0);
$459 = $458&1;
$460 = (($455) - ($459))|0;
$n19 = $460;
$461 = $__x19;
$n0 = $461;
}
$462 = $i8;
$463 = (($462) + -1)|0;
$i8 = $463;
}
$464 = $n19;
$465 = $2;
$466 = ((($465)) + 4|0);
HEAP32[$466>>2] = $464;
$467 = $n0;
$468 = $2;
HEAP32[$468>>2] = $467;
$739 = $most_significant_q_limb;
STACKTOP = sp;return ($739|0);
break;
}
default: {
$469 = $3;
$470 = $5;
$471 = (($469) - ($470))|0;
$472 = $2;
$473 = (($472) + ($471<<2)|0);
$2 = $473;
$474 = $5;
$475 = (($474) - 1)|0;
$476 = $4;
$477 = (($476) + ($475<<2)|0);
$478 = HEAP32[$477>>2]|0;
$dX = $478;
$479 = $5;
$480 = (($479) - 2)|0;
$481 = $4;
$482 = (($481) + ($480<<2)|0);
$483 = HEAP32[$482>>2]|0;
$d121 = $483;
$484 = $5;
$485 = (($484) - 1)|0;
$486 = $2;
$487 = (($486) + ($485<<2)|0);
$488 = HEAP32[$487>>2]|0;
$n022 = $488;
$489 = $n022;
$490 = $dX;
$491 = ($489>>>0)>=($490>>>0);
do {
if ($491) {
$492 = $n022;
$493 = $dX;
$494 = ($492>>>0)>($493>>>0);
if (!($494)) {
$495 = $2;
$496 = $4;
$497 = $5;
$498 = (($497) - 1)|0;
$499 = (__gcry_mpih_cmp($495,$496,$498)|0);
$500 = ($499|0)>=(0);
if (!($500)) {
break;
}
}
$501 = $2;
$502 = $2;
$503 = $4;
$504 = $5;
(__gcry_mpih_sub_n($501,$502,$503,$504)|0);
$505 = $5;
$506 = (($505) - 1)|0;
$507 = $2;
$508 = (($507) + ($506<<2)|0);
$509 = HEAP32[$508>>2]|0;
$n022 = $509;
$most_significant_q_limb = 1;
}
} while(0);
$510 = $1;
$511 = $3;
$512 = (($510) + ($511))|0;
$513 = $5;
$514 = (($512) - ($513))|0;
$515 = (($514) - 1)|0;
$i20 = $515;
while(1) {
$516 = $i20;
$517 = ($516|0)>=(0);
if (!($517)) {
break;
}
$518 = $i20;
$519 = $1;
$520 = ($518|0)>=($519|0);
if ($520) {
$521 = $2;
$522 = ((($521)) + -4|0);
$2 = $522;
$523 = $5;
$524 = $2;
$525 = (($524) + ($523<<2)|0);
$526 = HEAP32[$525>>2]|0;
$n225 = $526;
} else {
$527 = $5;
$528 = (($527) - 1)|0;
$529 = $2;
$530 = (($529) + ($528<<2)|0);
$531 = HEAP32[$530>>2]|0;
$n225 = $531;
$532 = $5;
$533 = (($532) - 1)|0;
$534 = (($533) - 1)|0;
$_i = $534;
while(1) {
$535 = $_i;
$536 = ($535|0)>=(0);
if (!($536)) {
break;
}
$537 = $_i;
$538 = $2;
$539 = (($538) + ($537<<2)|0);
$540 = HEAP32[$539>>2]|0;
$541 = $_i;
$542 = $2;
$543 = ((($542)) + 4|0);
$544 = (($543) + ($541<<2)|0);
HEAP32[$544>>2] = $540;
$545 = $_i;
$546 = (($545) + -1)|0;
$_i = $546;
}
$547 = $2;
HEAP32[$547>>2] = 0;
}
$548 = $n022;
$549 = $dX;
$550 = ($548|0)==($549|0);
L20: do {
if ($550) {
$q23 = -1;
} else {
$551 = $dX;
$552 = $551 >>> 16;
$__d127 = $552;
$553 = $dX;
$554 = $553 & 65535;
$__d028 = $554;
$555 = $n022;
$556 = $__d127;
$557 = (($555>>>0) % ($556>>>0))&-1;
$__r131 = $557;
$558 = $n022;
$559 = $__d127;
$560 = (($558>>>0) / ($559>>>0))&-1;
$__q129 = $560;
$561 = $__q129;
$562 = $__d028;
$563 = Math_imul($561, $562)|0;
$__m33 = $563;
$564 = $__r131;
$565 = $564<<16;
$566 = $5;
$567 = (($566) - 1)|0;
$568 = $2;
$569 = (($568) + ($567<<2)|0);
$570 = HEAP32[$569>>2]|0;
$571 = $570 >>> 16;
$572 = $565 | $571;
$__r131 = $572;
$573 = $__r131;
$574 = $__m33;
$575 = ($573>>>0)<($574>>>0);
if ($575) {
$576 = $__q129;
$577 = (($576) + -1)|0;
$__q129 = $577;
$578 = $dX;
$579 = $__r131;
$580 = (($579) + ($578))|0;
$__r131 = $580;
$581 = $__r131;
$582 = $dX;
$583 = ($581>>>0)>=($582>>>0);
if ($583) {
$584 = $__r131;
$585 = $__m33;
$586 = ($584>>>0)<($585>>>0);
if ($586) {
$587 = $__q129;
$588 = (($587) + -1)|0;
$__q129 = $588;
$589 = $dX;
$590 = $__r131;
$591 = (($590) + ($589))|0;
$__r131 = $591;
}
}
}
$592 = $__m33;
$593 = $__r131;
$594 = (($593) - ($592))|0;
$__r131 = $594;
$595 = $__r131;
$596 = $__d127;
$597 = (($595>>>0) % ($596>>>0))&-1;
$__r032 = $597;
$598 = $__r131;
$599 = $__d127;
$600 = (($598>>>0) / ($599>>>0))&-1;
$__q030 = $600;
$601 = $__q030;
$602 = $__d028;
$603 = Math_imul($601, $602)|0;
$__m33 = $603;
$604 = $__r032;
$605 = $604<<16;
$606 = $5;
$607 = (($606) - 1)|0;
$608 = $2;
$609 = (($608) + ($607<<2)|0);
$610 = HEAP32[$609>>2]|0;
$611 = $610 & 65535;
$612 = $605 | $611;
$__r032 = $612;
$613 = $__r032;
$614 = $__m33;
$615 = ($613>>>0)<($614>>>0);
if ($615) {
$616 = $__q030;
$617 = (($616) + -1)|0;
$__q030 = $617;
$618 = $dX;
$619 = $__r032;
$620 = (($619) + ($618))|0;
$__r032 = $620;
$621 = $__r032;
$622 = $dX;
$623 = ($621>>>0)>=($622>>>0);
if ($623) {
$624 = $__r032;
$625 = $__m33;
$626 = ($624>>>0)<($625>>>0);
if ($626) {
$627 = $__q030;
$628 = (($627) + -1)|0;
$__q030 = $628;
$629 = $dX;
$630 = $__r032;
$631 = (($630) + ($629))|0;
$__r032 = $631;
}
}
}
$632 = $__m33;
$633 = $__r032;
$634 = (($633) - ($632))|0;
$__r032 = $634;
$635 = $__q129;
$636 = $635<<16;
$637 = $__q030;
$638 = $636 | $637;
$q23 = $638;
$639 = $__r032;
$r26 = $639;
$640 = $d121;
$__u42 = $640;
$641 = $q23;
$__v43 = $641;
$642 = $__u42;
$643 = $642 & 65535;
$__ul38 = $643;
$644 = $__u42;
$645 = $644 >>> 16;
$__uh40 = $645;
$646 = $__v43;
$647 = $646 & 65535;
$__vl39 = $647;
$648 = $__v43;
$649 = $648 >>> 16;
$__vh41 = $649;
$650 = $__ul38;
$651 = $__vl39;
$652 = Math_imul($650, $651)|0;
$__x034 = $652;
$653 = $__ul38;
$654 = $__vh41;
$655 = Math_imul($653, $654)|0;
$__x135 = $655;
$656 = $__uh40;
$657 = $__vl39;
$658 = Math_imul($656, $657)|0;
$__x236 = $658;
$659 = $__uh40;
$660 = $__vh41;
$661 = Math_imul($659, $660)|0;
$__x337 = $661;
$662 = $__x034;
$663 = $662 >>> 16;
$664 = $__x135;
$665 = (($664) + ($663))|0;
$__x135 = $665;
$666 = $__x236;
$667 = $__x135;
$668 = (($667) + ($666))|0;
$__x135 = $668;
$669 = $__x135;
$670 = $__x236;
$671 = ($669>>>0)<($670>>>0);
if ($671) {
$672 = $__x337;
$673 = (($672) + 65536)|0;
$__x337 = $673;
}
$674 = $__x337;
$675 = $__x135;
$676 = $675 >>> 16;
$677 = (($674) + ($676))|0;
$n124 = $677;
$678 = $__x135;
$679 = $678 & 65535;
$680 = $679 << 16;
$681 = $__x034;
$682 = $681 & 65535;
$683 = (($680) + ($682))|0;
$n022 = $683;
while(1) {
$684 = $n124;
$685 = $r26;
$686 = ($684>>>0)>($685>>>0);
if (!($686)) {
$687 = $n124;
$688 = $r26;
$689 = ($687|0)==($688|0);
if (!($689)) {
break L20;
}
$690 = $n022;
$691 = $5;
$692 = (($691) - 2)|0;
$693 = $2;
$694 = (($693) + ($692<<2)|0);
$695 = HEAP32[$694>>2]|0;
$696 = ($690>>>0)>($695>>>0);
if (!($696)) {
break L20;
}
}
$697 = $q23;
$698 = (($697) + -1)|0;
$q23 = $698;
$699 = $dX;
$700 = $r26;
$701 = (($700) + ($699))|0;
$r26 = $701;
$702 = $r26;
$703 = $dX;
$704 = ($702>>>0)<($703>>>0);
if ($704) {
break L20;
}
$705 = $n022;
$706 = $d121;
$707 = ($705>>>0)<($706>>>0);
$708 = $707&1;
$709 = $n124;
$710 = (($709) - ($708))|0;
$n124 = $710;
$711 = $d121;
$712 = $n022;
$713 = (($712) - ($711))|0;
$n022 = $713;
}
}
} while(0);
$714 = $2;
$715 = $4;
$716 = $5;
$717 = $q23;
$718 = (__gcry_mpih_submul_1($714,$715,$716,$717)|0);
$cy_limb = $718;
$719 = $n225;
$720 = $cy_limb;
$721 = ($719|0)!=($720|0);
if ($721) {
$722 = $2;
$723 = $2;
$724 = $4;
$725 = $5;
(__gcry_mpih_add_n($722,$723,$724,$725)|0);
$726 = $q23;
$727 = (($726) + -1)|0;
$q23 = $727;
}
$728 = $q23;
$729 = $i20;
$730 = $0;
$731 = (($730) + ($729<<2)|0);
HEAP32[$731>>2] = $728;
$732 = $5;
$733 = (($732) - 1)|0;
$734 = $2;
$735 = (($734) + ($733<<2)|0);
$736 = HEAP32[$735>>2]|0;
$n022 = $736;
$737 = $i20;
$738 = (($737) + -1)|0;
$i20 = $738;
}
$739 = $most_significant_q_limb;
STACKTOP = sp;return ($739|0);
}
}
return (0)|0;
}
function __gcry_mpih_divmod_1($quot_ptr,$dividend_ptr,$dividend_size,$divisor_limb) {
$quot_ptr = $quot_ptr|0;
$dividend_ptr = $dividend_ptr|0;
$dividend_size = $dividend_size|0;
$divisor_limb = $divisor_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__a = 0, $__d0 = 0, $__d02 = 0, $__d09 = 0, $__d1 = 0, $__d11 = 0, $__d18 = 0, $__m = 0, $__m14 = 0, $__m7 = 0, $__q0 = 0, $__q011 = 0, $__q04 = 0, $__q1 = 0, $__q110 = 0;
var $__q13 = 0, $__r0 = 0, $__r013 = 0, $__r06 = 0, $__r1 = 0, $__r112 = 0, $__r15 = 0, $__xr = 0, $i = 0, $n0 = 0, $n1 = 0, $normalization_steps = 0, $r = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $quot_ptr;
$2 = $dividend_ptr;
$3 = $dividend_size;
$4 = $divisor_limb;
$5 = $3;
$6 = ($5|0)!=(0);
if (!($6)) {
$0 = 0;
$344 = $0;
STACKTOP = sp;return ($344|0);
}
$7 = $4;
$__xr = $7;
$8 = $__xr;
$9 = ($8>>>0)<(65536);
$10 = $__xr;
$11 = ($10>>>0)<(256);
$12 = $11 ? 0 : 8;
$13 = ($10>>>0)<(16777216);
$14 = $13 ? 16 : 24;
$15 = $9 ? $12 : $14;
$__a = $15;
$16 = $__xr;
$17 = $__a;
$18 = $16 >>> $17;
$19 = (45829 + ($18)|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $__a;
$23 = (($21) + ($22))|0;
$24 = (32 - ($23))|0;
$normalization_steps = $24;
$25 = $normalization_steps;
$26 = ($25|0)!=(0);
if (!($26)) {
$238 = $3;
$239 = (($238) - 1)|0;
$i = $239;
$240 = $i;
$241 = $2;
$242 = (($241) + ($240<<2)|0);
$243 = HEAP32[$242>>2]|0;
$r = $243;
$244 = $r;
$245 = $4;
$246 = ($244>>>0)>=($245>>>0);
if ($246) {
$r = 0;
} else {
$247 = $i;
$248 = (($247) + -1)|0;
$i = $248;
$249 = $1;
$250 = (($249) + ($247<<2)|0);
HEAP32[$250>>2] = 0;
}
while(1) {
$251 = $i;
$252 = ($251|0)>=(0);
if (!($252)) {
break;
}
$253 = $i;
$254 = $2;
$255 = (($254) + ($253<<2)|0);
$256 = HEAP32[$255>>2]|0;
$n0 = $256;
$257 = $4;
$258 = $257 >>> 16;
$__d18 = $258;
$259 = $4;
$260 = $259 & 65535;
$__d09 = $260;
$261 = $r;
$262 = $__d18;
$263 = (($261>>>0) % ($262>>>0))&-1;
$__r112 = $263;
$264 = $r;
$265 = $__d18;
$266 = (($264>>>0) / ($265>>>0))&-1;
$__q110 = $266;
$267 = $__q110;
$268 = $__d09;
$269 = Math_imul($267, $268)|0;
$__m14 = $269;
$270 = $__r112;
$271 = $270<<16;
$272 = $n0;
$273 = $272 >>> 16;
$274 = $271 | $273;
$__r112 = $274;
$275 = $__r112;
$276 = $__m14;
$277 = ($275>>>0)<($276>>>0);
if ($277) {
$278 = $__q110;
$279 = (($278) + -1)|0;
$__q110 = $279;
$280 = $4;
$281 = $__r112;
$282 = (($281) + ($280))|0;
$__r112 = $282;
$283 = $__r112;
$284 = $4;
$285 = ($283>>>0)>=($284>>>0);
if ($285) {
$286 = $__r112;
$287 = $__m14;
$288 = ($286>>>0)<($287>>>0);
if ($288) {
$289 = $__q110;
$290 = (($289) + -1)|0;
$__q110 = $290;
$291 = $4;
$292 = $__r112;
$293 = (($292) + ($291))|0;
$__r112 = $293;
}
}
}
$294 = $__m14;
$295 = $__r112;
$296 = (($295) - ($294))|0;
$__r112 = $296;
$297 = $__r112;
$298 = $__d18;
$299 = (($297>>>0) % ($298>>>0))&-1;
$__r013 = $299;
$300 = $__r112;
$301 = $__d18;
$302 = (($300>>>0) / ($301>>>0))&-1;
$__q011 = $302;
$303 = $__q011;
$304 = $__d09;
$305 = Math_imul($303, $304)|0;
$__m14 = $305;
$306 = $__r013;
$307 = $306<<16;
$308 = $n0;
$309 = $308 & 65535;
$310 = $307 | $309;
$__r013 = $310;
$311 = $__r013;
$312 = $__m14;
$313 = ($311>>>0)<($312>>>0);
if ($313) {
$314 = $__q011;
$315 = (($314) + -1)|0;
$__q011 = $315;
$316 = $4;
$317 = $__r013;
$318 = (($317) + ($316))|0;
$__r013 = $318;
$319 = $__r013;
$320 = $4;
$321 = ($319>>>0)>=($320>>>0);
if ($321) {
$322 = $__r013;
$323 = $__m14;
$324 = ($322>>>0)<($323>>>0);
if ($324) {
$325 = $__q011;
$326 = (($325) + -1)|0;
$__q011 = $326;
$327 = $4;
$328 = $__r013;
$329 = (($328) + ($327))|0;
$__r013 = $329;
}
}
}
$330 = $__m14;
$331 = $__r013;
$332 = (($331) - ($330))|0;
$__r013 = $332;
$333 = $__q110;
$334 = $333<<16;
$335 = $__q011;
$336 = $334 | $335;
$337 = $i;
$338 = $1;
$339 = (($338) + ($337<<2)|0);
HEAP32[$339>>2] = $336;
$340 = $__r013;
$r = $340;
$341 = $i;
$342 = (($341) + -1)|0;
$i = $342;
}
$343 = $r;
$0 = $343;
$344 = $0;
STACKTOP = sp;return ($344|0);
}
$27 = $normalization_steps;
$28 = $4;
$29 = $28 << $27;
$4 = $29;
$30 = $3;
$31 = (($30) - 1)|0;
$32 = $2;
$33 = (($32) + ($31<<2)|0);
$34 = HEAP32[$33>>2]|0;
$n1 = $34;
$35 = $n1;
$36 = $normalization_steps;
$37 = (32 - ($36))|0;
$38 = $35 >>> $37;
$r = $38;
$39 = $3;
$40 = (($39) - 2)|0;
$i = $40;
while(1) {
$41 = $i;
$42 = ($41|0)>=(0);
if (!($42)) {
break;
}
$43 = $i;
$44 = $2;
$45 = (($44) + ($43<<2)|0);
$46 = HEAP32[$45>>2]|0;
$n0 = $46;
$47 = $4;
$48 = $47 >>> 16;
$__d1 = $48;
$49 = $4;
$50 = $49 & 65535;
$__d0 = $50;
$51 = $r;
$52 = $__d1;
$53 = (($51>>>0) % ($52>>>0))&-1;
$__r1 = $53;
$54 = $r;
$55 = $__d1;
$56 = (($54>>>0) / ($55>>>0))&-1;
$__q1 = $56;
$57 = $__q1;
$58 = $__d0;
$59 = Math_imul($57, $58)|0;
$__m = $59;
$60 = $__r1;
$61 = $60<<16;
$62 = $n1;
$63 = $normalization_steps;
$64 = $62 << $63;
$65 = $n0;
$66 = $normalization_steps;
$67 = (32 - ($66))|0;
$68 = $65 >>> $67;
$69 = $64 | $68;
$70 = $69 >>> 16;
$71 = $61 | $70;
$__r1 = $71;
$72 = $__r1;
$73 = $__m;
$74 = ($72>>>0)<($73>>>0);
if ($74) {
$75 = $__q1;
$76 = (($75) + -1)|0;
$__q1 = $76;
$77 = $4;
$78 = $__r1;
$79 = (($78) + ($77))|0;
$__r1 = $79;
$80 = $__r1;
$81 = $4;
$82 = ($80>>>0)>=($81>>>0);
if ($82) {
$83 = $__r1;
$84 = $__m;
$85 = ($83>>>0)<($84>>>0);
if ($85) {
$86 = $__q1;
$87 = (($86) + -1)|0;
$__q1 = $87;
$88 = $4;
$89 = $__r1;
$90 = (($89) + ($88))|0;
$__r1 = $90;
}
}
}
$91 = $__m;
$92 = $__r1;
$93 = (($92) - ($91))|0;
$__r1 = $93;
$94 = $__r1;
$95 = $__d1;
$96 = (($94>>>0) % ($95>>>0))&-1;
$__r0 = $96;
$97 = $__r1;
$98 = $__d1;
$99 = (($97>>>0) / ($98>>>0))&-1;
$__q0 = $99;
$100 = $__q0;
$101 = $__d0;
$102 = Math_imul($100, $101)|0;
$__m = $102;
$103 = $__r0;
$104 = $103<<16;
$105 = $n1;
$106 = $normalization_steps;
$107 = $105 << $106;
$108 = $n0;
$109 = $normalization_steps;
$110 = (32 - ($109))|0;
$111 = $108 >>> $110;
$112 = $107 | $111;
$113 = $112 & 65535;
$114 = $104 | $113;
$__r0 = $114;
$115 = $__r0;
$116 = $__m;
$117 = ($115>>>0)<($116>>>0);
if ($117) {
$118 = $__q0;
$119 = (($118) + -1)|0;
$__q0 = $119;
$120 = $4;
$121 = $__r0;
$122 = (($121) + ($120))|0;
$__r0 = $122;
$123 = $__r0;
$124 = $4;
$125 = ($123>>>0)>=($124>>>0);
if ($125) {
$126 = $__r0;
$127 = $__m;
$128 = ($126>>>0)<($127>>>0);
if ($128) {
$129 = $__q0;
$130 = (($129) + -1)|0;
$__q0 = $130;
$131 = $4;
$132 = $__r0;
$133 = (($132) + ($131))|0;
$__r0 = $133;
}
}
}
$134 = $__m;
$135 = $__r0;
$136 = (($135) - ($134))|0;
$__r0 = $136;
$137 = $__q1;
$138 = $137<<16;
$139 = $__q0;
$140 = $138 | $139;
$141 = $i;
$142 = (($141) + 1)|0;
$143 = $1;
$144 = (($143) + ($142<<2)|0);
HEAP32[$144>>2] = $140;
$145 = $__r0;
$r = $145;
$146 = $n0;
$n1 = $146;
$147 = $i;
$148 = (($147) + -1)|0;
$i = $148;
}
$149 = $4;
$150 = $149 >>> 16;
$__d11 = $150;
$151 = $4;
$152 = $151 & 65535;
$__d02 = $152;
$153 = $r;
$154 = $__d11;
$155 = (($153>>>0) % ($154>>>0))&-1;
$__r15 = $155;
$156 = $r;
$157 = $__d11;
$158 = (($156>>>0) / ($157>>>0))&-1;
$__q13 = $158;
$159 = $__q13;
$160 = $__d02;
$161 = Math_imul($159, $160)|0;
$__m7 = $161;
$162 = $__r15;
$163 = $162<<16;
$164 = $n1;
$165 = $normalization_steps;
$166 = $164 << $165;
$167 = $166 >>> 16;
$168 = $163 | $167;
$__r15 = $168;
$169 = $__r15;
$170 = $__m7;
$171 = ($169>>>0)<($170>>>0);
if ($171) {
$172 = $__q13;
$173 = (($172) + -1)|0;
$__q13 = $173;
$174 = $4;
$175 = $__r15;
$176 = (($175) + ($174))|0;
$__r15 = $176;
$177 = $__r15;
$178 = $4;
$179 = ($177>>>0)>=($178>>>0);
if ($179) {
$180 = $__r15;
$181 = $__m7;
$182 = ($180>>>0)<($181>>>0);
if ($182) {
$183 = $__q13;
$184 = (($183) + -1)|0;
$__q13 = $184;
$185 = $4;
$186 = $__r15;
$187 = (($186) + ($185))|0;
$__r15 = $187;
}
}
}
$188 = $__m7;
$189 = $__r15;
$190 = (($189) - ($188))|0;
$__r15 = $190;
$191 = $__r15;
$192 = $__d11;
$193 = (($191>>>0) % ($192>>>0))&-1;
$__r06 = $193;
$194 = $__r15;
$195 = $__d11;
$196 = (($194>>>0) / ($195>>>0))&-1;
$__q04 = $196;
$197 = $__q04;
$198 = $__d02;
$199 = Math_imul($197, $198)|0;
$__m7 = $199;
$200 = $__r06;
$201 = $200<<16;
$202 = $n1;
$203 = $normalization_steps;
$204 = $202 << $203;
$205 = $204 & 65535;
$206 = $201 | $205;
$__r06 = $206;
$207 = $__r06;
$208 = $__m7;
$209 = ($207>>>0)<($208>>>0);
if ($209) {
$210 = $__q04;
$211 = (($210) + -1)|0;
$__q04 = $211;
$212 = $4;
$213 = $__r06;
$214 = (($213) + ($212))|0;
$__r06 = $214;
$215 = $__r06;
$216 = $4;
$217 = ($215>>>0)>=($216>>>0);
if ($217) {
$218 = $__r06;
$219 = $__m7;
$220 = ($218>>>0)<($219>>>0);
if ($220) {
$221 = $__q04;
$222 = (($221) + -1)|0;
$__q04 = $222;
$223 = $4;
$224 = $__r06;
$225 = (($224) + ($223))|0;
$__r06 = $225;
}
}
}
$226 = $__m7;
$227 = $__r06;
$228 = (($227) - ($226))|0;
$__r06 = $228;
$229 = $__q13;
$230 = $229<<16;
$231 = $__q04;
$232 = $230 | $231;
$233 = $1;
HEAP32[$233>>2] = $232;
$234 = $__r06;
$r = $234;
$235 = $r;
$236 = $normalization_steps;
$237 = $235 >>> $236;
$0 = $237;
$344 = $0;
STACKTOP = sp;return ($344|0);
}
function __gcry_mpih_lshift($wp,$up,$usize,$cnt) {
$wp = $wp|0;
$up = $up|0;
$usize = $usize|0;
$cnt = $cnt|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $high_limb = 0, $i = 0, $low_limb = 0, $retval = 0, $sh_1 = 0, $sh_2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $wp;
$1 = $up;
$2 = $usize;
$3 = $cnt;
$4 = $3;
$sh_1 = $4;
$5 = $0;
$6 = ((($5)) + 4|0);
$0 = $6;
$7 = $sh_1;
$8 = (32 - ($7))|0;
$sh_2 = $8;
$9 = $2;
$10 = (($9) - 1)|0;
$i = $10;
$11 = $i;
$12 = $1;
$13 = (($12) + ($11<<2)|0);
$14 = HEAP32[$13>>2]|0;
$low_limb = $14;
$15 = $low_limb;
$16 = $sh_2;
$17 = $15 >>> $16;
$retval = $17;
$18 = $low_limb;
$high_limb = $18;
while(1) {
$19 = $i;
$20 = (($19) + -1)|0;
$i = $20;
$21 = ($20|0)>=(0);
if (!($21)) {
break;
}
$22 = $i;
$23 = $1;
$24 = (($23) + ($22<<2)|0);
$25 = HEAP32[$24>>2]|0;
$low_limb = $25;
$26 = $high_limb;
$27 = $sh_1;
$28 = $26 << $27;
$29 = $low_limb;
$30 = $sh_2;
$31 = $29 >>> $30;
$32 = $28 | $31;
$33 = $i;
$34 = $0;
$35 = (($34) + ($33<<2)|0);
HEAP32[$35>>2] = $32;
$36 = $low_limb;
$high_limb = $36;
}
$37 = $high_limb;
$38 = $sh_1;
$39 = $37 << $38;
$40 = $i;
$41 = $0;
$42 = (($41) + ($40<<2)|0);
HEAP32[$42>>2] = $39;
$43 = $retval;
STACKTOP = sp;return ($43|0);
}
function __gcry_mpih_mul_1($res_ptr,$s1_ptr,$s1_size,$s2_limb) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_limb = $s2_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, $__u = 0, $__uh = 0;
var $__ul = 0, $__v = 0, $__vh = 0, $__vl = 0, $__x0 = 0, $__x1 = 0, $__x2 = 0, $__x3 = 0, $cy_limb = 0, $j = 0, $prod_high = 0, $prod_low = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s1_size;
$3 = $s2_limb;
$4 = $2;
$5 = (0 - ($4))|0;
$j = $5;
$6 = $j;
$7 = $1;
$8 = (0 - ($6))|0;
$9 = (($7) + ($8<<2)|0);
$1 = $9;
$10 = $j;
$11 = $0;
$12 = (0 - ($10))|0;
$13 = (($11) + ($12<<2)|0);
$0 = $13;
$cy_limb = 0;
while(1) {
$14 = $j;
$15 = $1;
$16 = (($15) + ($14<<2)|0);
$17 = HEAP32[$16>>2]|0;
$__u = $17;
$18 = $3;
$__v = $18;
$19 = $__u;
$20 = $19 & 65535;
$__ul = $20;
$21 = $__u;
$22 = $21 >>> 16;
$__uh = $22;
$23 = $__v;
$24 = $23 & 65535;
$__vl = $24;
$25 = $__v;
$26 = $25 >>> 16;
$__vh = $26;
$27 = $__ul;
$28 = $__vl;
$29 = Math_imul($27, $28)|0;
$__x0 = $29;
$30 = $__ul;
$31 = $__vh;
$32 = Math_imul($30, $31)|0;
$__x1 = $32;
$33 = $__uh;
$34 = $__vl;
$35 = Math_imul($33, $34)|0;
$__x2 = $35;
$36 = $__uh;
$37 = $__vh;
$38 = Math_imul($36, $37)|0;
$__x3 = $38;
$39 = $__x0;
$40 = $39 >>> 16;
$41 = $__x1;
$42 = (($41) + ($40))|0;
$__x1 = $42;
$43 = $__x2;
$44 = $__x1;
$45 = (($44) + ($43))|0;
$__x1 = $45;
$46 = $__x1;
$47 = $__x2;
$48 = ($46>>>0)<($47>>>0);
if ($48) {
$49 = $__x3;
$50 = (($49) + 65536)|0;
$__x3 = $50;
}
$51 = $__x3;
$52 = $__x1;
$53 = $52 >>> 16;
$54 = (($51) + ($53))|0;
$prod_high = $54;
$55 = $__x1;
$56 = $55 & 65535;
$57 = $56 << 16;
$58 = $__x0;
$59 = $58 & 65535;
$60 = (($57) + ($59))|0;
$prod_low = $60;
$61 = $cy_limb;
$62 = $prod_low;
$63 = (($62) + ($61))|0;
$prod_low = $63;
$64 = $prod_low;
$65 = $cy_limb;
$66 = ($64>>>0)<($65>>>0);
$67 = $66 ? 1 : 0;
$68 = $prod_high;
$69 = (($67) + ($68))|0;
$cy_limb = $69;
$70 = $prod_low;
$71 = $j;
$72 = $0;
$73 = (($72) + ($71<<2)|0);
HEAP32[$73>>2] = $70;
$74 = $j;
$75 = (($74) + 1)|0;
$j = $75;
$76 = ($75|0)!=(0);
if (!($76)) {
break;
}
}
$77 = $cy_limb;
STACKTOP = sp;return ($77|0);
}
function __gcry_mpih_submul_1($res_ptr,$s1_ptr,$s1_size,$s2_limb) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_limb = $s2_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $__u = 0, $__uh = 0, $__ul = 0, $__v = 0, $__vh = 0, $__vl = 0, $__x0 = 0, $__x1 = 0, $__x2 = 0;
var $__x3 = 0, $cy_limb = 0, $j = 0, $prod_high = 0, $prod_low = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s1_size;
$3 = $s2_limb;
$4 = $2;
$5 = (0 - ($4))|0;
$j = $5;
$6 = $j;
$7 = $0;
$8 = (0 - ($6))|0;
$9 = (($7) + ($8<<2)|0);
$0 = $9;
$10 = $j;
$11 = $1;
$12 = (0 - ($10))|0;
$13 = (($11) + ($12<<2)|0);
$1 = $13;
$cy_limb = 0;
while(1) {
$14 = $j;
$15 = $1;
$16 = (($15) + ($14<<2)|0);
$17 = HEAP32[$16>>2]|0;
$__u = $17;
$18 = $3;
$__v = $18;
$19 = $__u;
$20 = $19 & 65535;
$__ul = $20;
$21 = $__u;
$22 = $21 >>> 16;
$__uh = $22;
$23 = $__v;
$24 = $23 & 65535;
$__vl = $24;
$25 = $__v;
$26 = $25 >>> 16;
$__vh = $26;
$27 = $__ul;
$28 = $__vl;
$29 = Math_imul($27, $28)|0;
$__x0 = $29;
$30 = $__ul;
$31 = $__vh;
$32 = Math_imul($30, $31)|0;
$__x1 = $32;
$33 = $__uh;
$34 = $__vl;
$35 = Math_imul($33, $34)|0;
$__x2 = $35;
$36 = $__uh;
$37 = $__vh;
$38 = Math_imul($36, $37)|0;
$__x3 = $38;
$39 = $__x0;
$40 = $39 >>> 16;
$41 = $__x1;
$42 = (($41) + ($40))|0;
$__x1 = $42;
$43 = $__x2;
$44 = $__x1;
$45 = (($44) + ($43))|0;
$__x1 = $45;
$46 = $__x1;
$47 = $__x2;
$48 = ($46>>>0)<($47>>>0);
if ($48) {
$49 = $__x3;
$50 = (($49) + 65536)|0;
$__x3 = $50;
}
$51 = $__x3;
$52 = $__x1;
$53 = $52 >>> 16;
$54 = (($51) + ($53))|0;
$prod_high = $54;
$55 = $__x1;
$56 = $55 & 65535;
$57 = $56 << 16;
$58 = $__x0;
$59 = $58 & 65535;
$60 = (($57) + ($59))|0;
$prod_low = $60;
$61 = $cy_limb;
$62 = $prod_low;
$63 = (($62) + ($61))|0;
$prod_low = $63;
$64 = $prod_low;
$65 = $cy_limb;
$66 = ($64>>>0)<($65>>>0);
$67 = $66 ? 1 : 0;
$68 = $prod_high;
$69 = (($67) + ($68))|0;
$cy_limb = $69;
$70 = $j;
$71 = $0;
$72 = (($71) + ($70<<2)|0);
$73 = HEAP32[$72>>2]|0;
$x = $73;
$74 = $x;
$75 = $prod_low;
$76 = (($74) - ($75))|0;
$prod_low = $76;
$77 = $prod_low;
$78 = $x;
$79 = ($77>>>0)>($78>>>0);
$80 = $79 ? 1 : 0;
$81 = $cy_limb;
$82 = (($81) + ($80))|0;
$cy_limb = $82;
$83 = $prod_low;
$84 = $j;
$85 = $0;
$86 = (($85) + ($84<<2)|0);
HEAP32[$86>>2] = $83;
$87 = $j;
$88 = (($87) + 1)|0;
$j = $88;
$89 = ($88|0)!=(0);
if (!($89)) {
break;
}
}
$90 = $cy_limb;
STACKTOP = sp;return ($90|0);
}
function _mul_n_basecase($prodp,$up,$vp,$size) {
$prodp = $prodp|0;
$up = $up|0;
$vp = $vp|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0, $9 = 0, $_i = 0, $_i1 = 0, $cy = 0, $i = 0, $v_limb = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $prodp;
$1 = $up;
$2 = $vp;
$3 = $size;
$4 = $2;
$5 = HEAP32[$4>>2]|0;
$v_limb = $5;
$6 = $v_limb;
$7 = ($6>>>0)<=(1);
if ($7) {
$8 = $v_limb;
$9 = ($8|0)==(1);
L3: do {
if ($9) {
$_i = 0;
while(1) {
$10 = $_i;
$11 = $3;
$12 = ($10|0)<($11|0);
if (!($12)) {
break L3;
}
$13 = $_i;
$14 = $1;
$15 = (($14) + ($13<<2)|0);
$16 = HEAP32[$15>>2]|0;
$17 = $_i;
$18 = $0;
$19 = (($18) + ($17<<2)|0);
HEAP32[$19>>2] = $16;
$20 = $_i;
$21 = (($20) + 1)|0;
$_i = $21;
}
} else {
$_i1 = 0;
while(1) {
$22 = $_i1;
$23 = $3;
$24 = ($22|0)<($23|0);
if (!($24)) {
break L3;
}
$25 = $_i1;
$26 = $0;
$27 = (($26) + ($25<<2)|0);
HEAP32[$27>>2] = 0;
$28 = $_i1;
$29 = (($28) + 1)|0;
$_i1 = $29;
}
}
} while(0);
$cy = 0;
} else {
$30 = $0;
$31 = $1;
$32 = $3;
$33 = $v_limb;
$34 = (__gcry_mpih_mul_1($30,$31,$32,$33)|0);
$cy = $34;
}
$35 = $cy;
$36 = $3;
$37 = $0;
$38 = (($37) + ($36<<2)|0);
HEAP32[$38>>2] = $35;
$39 = $0;
$40 = ((($39)) + 4|0);
$0 = $40;
$i = 1;
while(1) {
$41 = $i;
$42 = $3;
$43 = ($41|0)<($42|0);
if (!($43)) {
break;
}
$44 = $i;
$45 = $2;
$46 = (($45) + ($44<<2)|0);
$47 = HEAP32[$46>>2]|0;
$v_limb = $47;
$48 = $v_limb;
$49 = ($48>>>0)<=(1);
if ($49) {
$cy = 0;
$50 = $v_limb;
$51 = ($50|0)==(1);
if ($51) {
$52 = $0;
$53 = $0;
$54 = $1;
$55 = $3;
$56 = (__gcry_mpih_add_n($52,$53,$54,$55)|0);
$cy = $56;
}
} else {
$57 = $0;
$58 = $1;
$59 = $3;
$60 = $v_limb;
$61 = (__gcry_mpih_addmul_1($57,$58,$59,$60)|0);
$cy = $61;
}
$62 = $cy;
$63 = $3;
$64 = $0;
$65 = (($64) + ($63<<2)|0);
HEAP32[$65>>2] = $62;
$66 = $0;
$67 = ((($66)) + 4|0);
$0 = $67;
$68 = $i;
$69 = (($68) + 1)|0;
$i = $69;
}
$70 = $cy;
STACKTOP = sp;return ($70|0);
}
function _mul_n($prodp,$up,$vp,$size,$tspace) {
$prodp = $prodp|0;
$up = $up|0;
$vp = $vp|0;
$size = $size|0;
$tspace = $tspace|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $_i = 0, $_i1 = 0, $cy = 0, $cy_limb = 0, $esize = 0, $hsize = 0, $negflg = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $prodp;
$1 = $up;
$2 = $vp;
$3 = $size;
$4 = $tspace;
$5 = $3;
$6 = $5 & 1;
$7 = ($6|0)!=(0);
$8 = $3;
if ($7) {
$9 = (($8) - 1)|0;
$esize = $9;
$10 = $esize;
$11 = ($10|0)<(16);
$12 = $0;
$13 = $1;
$14 = $2;
$15 = $esize;
if ($11) {
(_mul_n_basecase($12,$13,$14,$15)|0);
} else {
$16 = $4;
_mul_n($12,$13,$14,$15,$16);
}
$17 = $0;
$18 = $esize;
$19 = (($17) + ($18<<2)|0);
$20 = $1;
$21 = $esize;
$22 = $esize;
$23 = $2;
$24 = (($23) + ($22<<2)|0);
$25 = HEAP32[$24>>2]|0;
$26 = (__gcry_mpih_addmul_1($19,$20,$21,$25)|0);
$cy_limb = $26;
$27 = $cy_limb;
$28 = $esize;
$29 = $esize;
$30 = (($28) + ($29))|0;
$31 = $0;
$32 = (($31) + ($30<<2)|0);
HEAP32[$32>>2] = $27;
$33 = $0;
$34 = $esize;
$35 = (($33) + ($34<<2)|0);
$36 = $2;
$37 = $3;
$38 = $esize;
$39 = $1;
$40 = (($39) + ($38<<2)|0);
$41 = HEAP32[$40>>2]|0;
$42 = (__gcry_mpih_addmul_1($35,$36,$37,$41)|0);
$cy_limb = $42;
$43 = $cy_limb;
$44 = $esize;
$45 = $3;
$46 = (($44) + ($45))|0;
$47 = $0;
$48 = (($47) + ($46<<2)|0);
HEAP32[$48>>2] = $43;
STACKTOP = sp;return;
}
$49 = $8 >> 1;
$hsize = $49;
$50 = $hsize;
$51 = ($50|0)<(16);
$52 = $0;
$53 = $3;
$54 = (($52) + ($53<<2)|0);
$55 = $1;
$56 = $hsize;
$57 = (($55) + ($56<<2)|0);
$58 = $2;
$59 = $hsize;
$60 = (($58) + ($59<<2)|0);
$61 = $hsize;
if ($51) {
(_mul_n_basecase($54,$57,$60,$61)|0);
} else {
$62 = $4;
_mul_n($54,$57,$60,$61,$62);
}
$63 = $1;
$64 = $hsize;
$65 = (($63) + ($64<<2)|0);
$66 = $1;
$67 = $hsize;
$68 = (__gcry_mpih_cmp($65,$66,$67)|0);
$69 = ($68|0)>=(0);
$70 = $0;
$71 = $1;
if ($69) {
$72 = $hsize;
$73 = (($71) + ($72<<2)|0);
$74 = $1;
$75 = $hsize;
(__gcry_mpih_sub_n($70,$73,$74,$75)|0);
$negflg = 0;
} else {
$76 = $1;
$77 = $hsize;
$78 = (($76) + ($77<<2)|0);
$79 = $hsize;
(__gcry_mpih_sub_n($70,$71,$78,$79)|0);
$negflg = 1;
}
$80 = $2;
$81 = $hsize;
$82 = (($80) + ($81<<2)|0);
$83 = $2;
$84 = $hsize;
$85 = (__gcry_mpih_cmp($82,$83,$84)|0);
$86 = ($85|0)>=(0);
$87 = $0;
$88 = $hsize;
$89 = (($87) + ($88<<2)|0);
$90 = $2;
if ($86) {
$91 = $hsize;
$92 = (($90) + ($91<<2)|0);
$93 = $2;
$94 = $hsize;
(__gcry_mpih_sub_n($89,$92,$93,$94)|0);
$95 = $negflg;
$96 = $95 ^ 1;
$negflg = $96;
} else {
$97 = $2;
$98 = $hsize;
$99 = (($97) + ($98<<2)|0);
$100 = $hsize;
(__gcry_mpih_sub_n($89,$90,$99,$100)|0);
}
$101 = $hsize;
$102 = ($101|0)<(16);
$103 = $4;
$104 = $0;
$105 = $0;
$106 = $hsize;
$107 = (($105) + ($106<<2)|0);
$108 = $hsize;
if ($102) {
(_mul_n_basecase($103,$104,$107,$108)|0);
} else {
$109 = $4;
$110 = $3;
$111 = (($109) + ($110<<2)|0);
_mul_n($103,$104,$107,$108,$111);
}
$_i = 0;
while(1) {
$112 = $_i;
$113 = $hsize;
$114 = ($112|0)<($113|0);
if (!($114)) {
break;
}
$115 = $_i;
$116 = $0;
$117 = $3;
$118 = (($116) + ($117<<2)|0);
$119 = (($118) + ($115<<2)|0);
$120 = HEAP32[$119>>2]|0;
$121 = $_i;
$122 = $0;
$123 = $hsize;
$124 = (($122) + ($123<<2)|0);
$125 = (($124) + ($121<<2)|0);
HEAP32[$125>>2] = $120;
$126 = $_i;
$127 = (($126) + 1)|0;
$_i = $127;
}
$128 = $0;
$129 = $3;
$130 = (($128) + ($129<<2)|0);
$131 = $0;
$132 = $3;
$133 = (($131) + ($132<<2)|0);
$134 = $0;
$135 = $3;
$136 = (($134) + ($135<<2)|0);
$137 = $hsize;
$138 = (($136) + ($137<<2)|0);
$139 = $hsize;
$140 = (__gcry_mpih_add_n($130,$133,$138,$139)|0);
$cy = $140;
$141 = $negflg;
$142 = ($141|0)!=(0);
$143 = $0;
$144 = $hsize;
$145 = (($143) + ($144<<2)|0);
$146 = $0;
$147 = $hsize;
$148 = (($146) + ($147<<2)|0);
$149 = $4;
$150 = $3;
if ($142) {
$151 = (__gcry_mpih_sub_n($145,$148,$149,$150)|0);
$152 = $cy;
$153 = (($152) - ($151))|0;
$cy = $153;
} else {
$154 = (__gcry_mpih_add_n($145,$148,$149,$150)|0);
$155 = $cy;
$156 = (($155) + ($154))|0;
$cy = $156;
}
$157 = $hsize;
$158 = ($157|0)<(16);
$159 = $4;
$160 = $1;
$161 = $2;
$162 = $hsize;
if ($158) {
(_mul_n_basecase($159,$160,$161,$162)|0);
} else {
$163 = $4;
$164 = $3;
$165 = (($163) + ($164<<2)|0);
_mul_n($159,$160,$161,$162,$165);
}
$166 = $0;
$167 = $hsize;
$168 = (($166) + ($167<<2)|0);
$169 = $0;
$170 = $hsize;
$171 = (($169) + ($170<<2)|0);
$172 = $4;
$173 = $3;
$174 = (__gcry_mpih_add_n($168,$171,$172,$173)|0);
$175 = $cy;
$176 = (($175) + ($174))|0;
$cy = $176;
$177 = $cy;
$178 = ($177|0)!=(0);
if ($178) {
$179 = $0;
$180 = $hsize;
$181 = (($179) + ($180<<2)|0);
$182 = $3;
$183 = (($181) + ($182<<2)|0);
$184 = $0;
$185 = $hsize;
$186 = (($184) + ($185<<2)|0);
$187 = $3;
$188 = (($186) + ($187<<2)|0);
$189 = $hsize;
$190 = $cy;
(__gcry_mpih_add_1($183,$188,$189,$190)|0);
}
$_i1 = 0;
while(1) {
$191 = $_i1;
$192 = $hsize;
$193 = ($191|0)<($192|0);
if (!($193)) {
break;
}
$194 = $_i1;
$195 = $4;
$196 = (($195) + ($194<<2)|0);
$197 = HEAP32[$196>>2]|0;
$198 = $_i1;
$199 = $0;
$200 = (($199) + ($198<<2)|0);
HEAP32[$200>>2] = $197;
$201 = $_i1;
$202 = (($201) + 1)|0;
$_i1 = $202;
}
$203 = $0;
$204 = $hsize;
$205 = (($203) + ($204<<2)|0);
$206 = $0;
$207 = $hsize;
$208 = (($206) + ($207<<2)|0);
$209 = $4;
$210 = $hsize;
$211 = (($209) + ($210<<2)|0);
$212 = $hsize;
$213 = (__gcry_mpih_add_n($205,$208,$211,$212)|0);
$cy = $213;
$214 = $cy;
$215 = ($214|0)!=(0);
if (!($215)) {
STACKTOP = sp;return;
}
$216 = $0;
$217 = $3;
$218 = (($216) + ($217<<2)|0);
$219 = $0;
$220 = $3;
$221 = (($219) + ($220<<2)|0);
$222 = $3;
(__gcry_mpih_add_1($218,$221,$222,1)|0);
STACKTOP = sp;return;
}
function __gcry_mpih_mul_karatsuba_case($prodp,$up,$usize,$vp,$vsize,$ctx) {
$prodp = $prodp|0;
$up = $up|0;
$usize = $usize|0;
$vp = $vp|0;
$vsize = $vsize|0;
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cy = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $prodp;
$1 = $up;
$2 = $usize;
$3 = $vp;
$4 = $vsize;
$5 = $ctx;
$6 = $5;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = $5;
$11 = ((($10)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = $4;
$14 = ($12|0)<($13|0);
if ($14) {
label = 3;
}
} else {
label = 3;
}
if ((label|0) == 3) {
$15 = $5;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = $5;
$20 = ((($19)) + 4|0);
$21 = HEAP32[$20>>2]|0;
$22 = $5;
$23 = ((($22)) + 8|0);
$24 = HEAP32[$23>>2]|0;
__gcry_mpi_free_limb_space($21,$24);
}
$25 = $4;
$26 = $25<<1;
$27 = $5;
$28 = ((($27)) + 8|0);
HEAP32[$28>>2] = $26;
$29 = $4;
$30 = $29<<1;
$31 = $1;
$32 = (__gcry_is_secure($31)|0);
$33 = ($32|0)!=(0);
if ($33) {
$38 = 1;
} else {
$34 = $3;
$35 = (__gcry_is_secure($34)|0);
$36 = ($35|0)!=(0);
$38 = $36;
}
$37 = $38&1;
$39 = (__gcry_mpi_alloc_limb_space($30,$37)|0);
$40 = $5;
$41 = ((($40)) + 4|0);
HEAP32[$41>>2] = $39;
$42 = $4;
$43 = $5;
$44 = ((($43)) + 12|0);
HEAP32[$44>>2] = $42;
}
$45 = $4;
$46 = ($45|0)<(16);
$47 = $0;
$48 = $1;
$49 = $3;
$50 = $4;
if ($46) {
(_mul_n_basecase($47,$48,$49,$50)|0);
} else {
$51 = $5;
$52 = ((($51)) + 4|0);
$53 = HEAP32[$52>>2]|0;
_mul_n($47,$48,$49,$50,$53);
}
$54 = $4;
$55 = $0;
$56 = (($55) + ($54<<2)|0);
$0 = $56;
$57 = $4;
$58 = $1;
$59 = (($58) + ($57<<2)|0);
$1 = $59;
$60 = $4;
$61 = $2;
$62 = (($61) - ($60))|0;
$2 = $62;
$63 = $2;
$64 = $4;
$65 = ($63|0)>=($64|0);
if ($65) {
$66 = $5;
$67 = ((($66)) + 16|0);
$68 = HEAP32[$67>>2]|0;
$69 = ($68|0)!=(0|0);
if ($69) {
$70 = $5;
$71 = ((($70)) + 24|0);
$72 = HEAP32[$71>>2]|0;
$73 = $4;
$74 = ($72|0)<($73|0);
if ($74) {
label = 14;
}
} else {
label = 14;
}
if ((label|0) == 14) {
$75 = $5;
$76 = ((($75)) + 16|0);
$77 = HEAP32[$76>>2]|0;
$78 = ($77|0)!=(0|0);
if ($78) {
$79 = $5;
$80 = ((($79)) + 16|0);
$81 = HEAP32[$80>>2]|0;
$82 = $5;
$83 = ((($82)) + 20|0);
$84 = HEAP32[$83>>2]|0;
__gcry_mpi_free_limb_space($81,$84);
}
$85 = $4;
$86 = $85<<1;
$87 = $5;
$88 = ((($87)) + 20|0);
HEAP32[$88>>2] = $86;
$89 = $4;
$90 = $89<<1;
$91 = $1;
$92 = (__gcry_is_secure($91)|0);
$93 = ($92|0)!=(0);
if ($93) {
$98 = 1;
} else {
$94 = $3;
$95 = (__gcry_is_secure($94)|0);
$96 = ($95|0)!=(0);
$98 = $96;
}
$97 = $98&1;
$99 = (__gcry_mpi_alloc_limb_space($90,$97)|0);
$100 = $5;
$101 = ((($100)) + 16|0);
HEAP32[$101>>2] = $99;
$102 = $4;
$103 = $5;
$104 = ((($103)) + 24|0);
HEAP32[$104>>2] = $102;
}
while(1) {
$105 = $4;
$106 = ($105|0)<(16);
$107 = $5;
$108 = ((($107)) + 16|0);
$109 = HEAP32[$108>>2]|0;
$110 = $1;
$111 = $3;
$112 = $4;
if ($106) {
(_mul_n_basecase($109,$110,$111,$112)|0);
} else {
$113 = $5;
$114 = ((($113)) + 4|0);
$115 = HEAP32[$114>>2]|0;
_mul_n($109,$110,$111,$112,$115);
}
$116 = $0;
$117 = $0;
$118 = $5;
$119 = ((($118)) + 16|0);
$120 = HEAP32[$119>>2]|0;
$121 = $4;
$122 = (__gcry_mpih_add_n($116,$117,$120,$121)|0);
$cy = $122;
$123 = $0;
$124 = $4;
$125 = (($123) + ($124<<2)|0);
$126 = $5;
$127 = ((($126)) + 16|0);
$128 = HEAP32[$127>>2]|0;
$129 = $4;
$130 = (($128) + ($129<<2)|0);
$131 = $4;
$132 = $cy;
(__gcry_mpih_add_1($125,$130,$131,$132)|0);
$133 = $4;
$134 = $0;
$135 = (($134) + ($133<<2)|0);
$0 = $135;
$136 = $4;
$137 = $1;
$138 = (($137) + ($136<<2)|0);
$1 = $138;
$139 = $4;
$140 = $2;
$141 = (($140) - ($139))|0;
$2 = $141;
$142 = $2;
$143 = $4;
$144 = ($142|0)>=($143|0);
if (!($144)) {
break;
}
}
}
$145 = $2;
$146 = ($145|0)!=(0);
if (!($146)) {
STACKTOP = sp;return;
}
$147 = $2;
$148 = ($147|0)<(16);
$149 = $5;
if ($148) {
$150 = ((($149)) + 4|0);
$151 = HEAP32[$150>>2]|0;
$152 = $3;
$153 = $4;
$154 = $1;
$155 = $2;
(__gcry_mpih_mul($151,$152,$153,$154,$155)|0);
} else {
$156 = HEAP32[$149>>2]|0;
$157 = ($156|0)!=(0|0);
if (!($157)) {
$158 = (__gcry_xcalloc(1,28)|0);
$159 = $5;
HEAP32[$159>>2] = $158;
}
$160 = $5;
$161 = ((($160)) + 4|0);
$162 = HEAP32[$161>>2]|0;
$163 = $3;
$164 = $4;
$165 = $1;
$166 = $2;
$167 = $5;
$168 = HEAP32[$167>>2]|0;
__gcry_mpih_mul_karatsuba_case($162,$163,$164,$165,$166,$168);
}
$169 = $0;
$170 = $0;
$171 = $5;
$172 = ((($171)) + 4|0);
$173 = HEAP32[$172>>2]|0;
$174 = $4;
$175 = (__gcry_mpih_add_n($169,$170,$173,$174)|0);
$cy = $175;
$176 = $0;
$177 = $4;
$178 = (($176) + ($177<<2)|0);
$179 = $5;
$180 = ((($179)) + 4|0);
$181 = HEAP32[$180>>2]|0;
$182 = $4;
$183 = (($181) + ($182<<2)|0);
$184 = $2;
$185 = $cy;
(__gcry_mpih_add_1($178,$183,$184,$185)|0);
STACKTOP = sp;return;
}
function __gcry_mpih_mul($prodp,$up,$usize,$vp,$vsize) {
$prodp = $prodp|0;
$up = $up|0;
$usize = $usize|0;
$vp = $vp|0;
$vsize = $vsize|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $_i = 0, $_i1 = 0, $ctx = 0, $cy = 0, $i = 0, $prod_endp = 0, $v_limb = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp + 16|0;
$1 = $prodp;
$2 = $up;
$3 = $usize;
$4 = $vp;
$5 = $vsize;
$6 = $1;
$7 = $3;
$8 = (($6) + ($7<<2)|0);
$9 = $5;
$10 = (($8) + ($9<<2)|0);
$11 = ((($10)) + -4|0);
$prod_endp = $11;
$12 = $5;
$13 = ($12|0)<(16);
if (!($13)) {
;HEAP32[$ctx>>2]=0|0;HEAP32[$ctx+4>>2]=0|0;HEAP32[$ctx+8>>2]=0|0;HEAP32[$ctx+12>>2]=0|0;HEAP32[$ctx+16>>2]=0|0;HEAP32[$ctx+20>>2]=0|0;HEAP32[$ctx+24>>2]=0|0;
$83 = $1;
$84 = $2;
$85 = $3;
$86 = $4;
$87 = $5;
__gcry_mpih_mul_karatsuba_case($83,$84,$85,$86,$87,$ctx);
__gcry_mpih_release_karatsuba_ctx($ctx);
$88 = $prod_endp;
$89 = HEAP32[$88>>2]|0;
$0 = $89;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
$14 = $5;
$15 = ($14|0)!=(0);
if (!($15)) {
$0 = 0;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
$16 = $4;
$17 = HEAP32[$16>>2]|0;
$v_limb = $17;
$18 = $v_limb;
$19 = ($18>>>0)<=(1);
if ($19) {
$20 = $v_limb;
$21 = ($20|0)==(1);
L11: do {
if ($21) {
$_i = 0;
while(1) {
$22 = $_i;
$23 = $3;
$24 = ($22|0)<($23|0);
if (!($24)) {
break L11;
}
$25 = $_i;
$26 = $2;
$27 = (($26) + ($25<<2)|0);
$28 = HEAP32[$27>>2]|0;
$29 = $_i;
$30 = $1;
$31 = (($30) + ($29<<2)|0);
HEAP32[$31>>2] = $28;
$32 = $_i;
$33 = (($32) + 1)|0;
$_i = $33;
}
} else {
$_i1 = 0;
while(1) {
$34 = $_i1;
$35 = $3;
$36 = ($34|0)<($35|0);
if (!($36)) {
break L11;
}
$37 = $_i1;
$38 = $1;
$39 = (($38) + ($37<<2)|0);
HEAP32[$39>>2] = 0;
$40 = $_i1;
$41 = (($40) + 1)|0;
$_i1 = $41;
}
}
} while(0);
$cy = 0;
} else {
$42 = $1;
$43 = $2;
$44 = $3;
$45 = $v_limb;
$46 = (__gcry_mpih_mul_1($42,$43,$44,$45)|0);
$cy = $46;
}
$47 = $cy;
$48 = $3;
$49 = $1;
$50 = (($49) + ($48<<2)|0);
HEAP32[$50>>2] = $47;
$51 = $1;
$52 = ((($51)) + 4|0);
$1 = $52;
$i = 1;
while(1) {
$53 = $i;
$54 = $5;
$55 = ($53|0)<($54|0);
if (!($55)) {
break;
}
$56 = $i;
$57 = $4;
$58 = (($57) + ($56<<2)|0);
$59 = HEAP32[$58>>2]|0;
$v_limb = $59;
$60 = $v_limb;
$61 = ($60>>>0)<=(1);
if ($61) {
$cy = 0;
$62 = $v_limb;
$63 = ($62|0)==(1);
if ($63) {
$64 = $1;
$65 = $1;
$66 = $2;
$67 = $3;
$68 = (__gcry_mpih_add_n($64,$65,$66,$67)|0);
$cy = $68;
}
} else {
$69 = $1;
$70 = $2;
$71 = $3;
$72 = $v_limb;
$73 = (__gcry_mpih_addmul_1($69,$70,$71,$72)|0);
$cy = $73;
}
$74 = $cy;
$75 = $3;
$76 = $1;
$77 = (($76) + ($75<<2)|0);
HEAP32[$77>>2] = $74;
$78 = $1;
$79 = ((($78)) + 4|0);
$1 = $79;
$80 = $i;
$81 = (($80) + 1)|0;
$i = $81;
}
$82 = $cy;
$0 = $82;
$90 = $0;
STACKTOP = sp;return ($90|0);
}
function __gcry_mpih_release_karatsuba_ctx($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ctx2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$2 = ((($1)) + 16|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(0|0);
if ($4) {
$5 = $0;
$6 = ((($5)) + 16|0);
$7 = HEAP32[$6>>2]|0;
$8 = $0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
__gcry_mpi_free_limb_space($7,$10);
}
$11 = $0;
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(0|0);
if ($14) {
$15 = $0;
$16 = ((($15)) + 4|0);
$17 = HEAP32[$16>>2]|0;
$18 = $0;
$19 = ((($18)) + 8|0);
$20 = HEAP32[$19>>2]|0;
__gcry_mpi_free_limb_space($17,$20);
}
$21 = $0;
$22 = HEAP32[$21>>2]|0;
$0 = $22;
while(1) {
$23 = $0;
$24 = ($23|0)!=(0|0);
if (!($24)) {
break;
}
$25 = $0;
$26 = HEAP32[$25>>2]|0;
$ctx2 = $26;
$27 = $0;
$28 = ((($27)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = ($29|0)!=(0|0);
if ($30) {
$31 = $0;
$32 = ((($31)) + 16|0);
$33 = HEAP32[$32>>2]|0;
$34 = $0;
$35 = ((($34)) + 20|0);
$36 = HEAP32[$35>>2]|0;
__gcry_mpi_free_limb_space($33,$36);
}
$37 = $0;
$38 = ((($37)) + 4|0);
$39 = HEAP32[$38>>2]|0;
$40 = ($39|0)!=(0|0);
if ($40) {
$41 = $0;
$42 = ((($41)) + 4|0);
$43 = HEAP32[$42>>2]|0;
$44 = $0;
$45 = ((($44)) + 8|0);
$46 = HEAP32[$45>>2]|0;
__gcry_mpi_free_limb_space($43,$46);
}
$47 = $0;
__gcry_free($47);
$48 = $ctx2;
$0 = $48;
}
STACKTOP = sp;return;
}
function __gcry_mpih_rshift($wp,$up,$usize,$cnt) {
$wp = $wp|0;
$up = $up|0;
$usize = $usize|0;
$cnt = $cnt|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $high_limb = 0, $i = 0, $low_limb = 0, $retval = 0, $sh_1 = 0, $sh_2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $wp;
$1 = $up;
$2 = $usize;
$3 = $cnt;
$4 = $3;
$sh_1 = $4;
$5 = $0;
$6 = ((($5)) + -4|0);
$0 = $6;
$7 = $sh_1;
$8 = (32 - ($7))|0;
$sh_2 = $8;
$9 = $1;
$10 = HEAP32[$9>>2]|0;
$high_limb = $10;
$11 = $high_limb;
$12 = $sh_2;
$13 = $11 << $12;
$retval = $13;
$14 = $high_limb;
$low_limb = $14;
$i = 1;
while(1) {
$15 = $i;
$16 = $2;
$17 = ($15|0)<($16|0);
if (!($17)) {
break;
}
$18 = $i;
$19 = $1;
$20 = (($19) + ($18<<2)|0);
$21 = HEAP32[$20>>2]|0;
$high_limb = $21;
$22 = $low_limb;
$23 = $sh_1;
$24 = $22 >>> $23;
$25 = $high_limb;
$26 = $sh_2;
$27 = $25 << $26;
$28 = $24 | $27;
$29 = $i;
$30 = $0;
$31 = (($30) + ($29<<2)|0);
HEAP32[$31>>2] = $28;
$32 = $high_limb;
$low_limb = $32;
$33 = $i;
$34 = (($33) + 1)|0;
$i = $34;
}
$35 = $low_limb;
$36 = $sh_1;
$37 = $35 >>> $36;
$38 = $i;
$39 = $0;
$40 = (($39) + ($38<<2)|0);
HEAP32[$40>>2] = $37;
$41 = $retval;
STACKTOP = sp;return ($41|0);
}
function __gcry_mpih_sub_n($res_ptr,$s1_ptr,$s2_ptr,$size) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s2_ptr = $s2_ptr|0;
$size = $size|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy = 0, $j = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s2_ptr;
$3 = $size;
$4 = $3;
$5 = (0 - ($4))|0;
$j = $5;
$6 = $j;
$7 = $1;
$8 = (0 - ($6))|0;
$9 = (($7) + ($8<<2)|0);
$1 = $9;
$10 = $j;
$11 = $2;
$12 = (0 - ($10))|0;
$13 = (($11) + ($12<<2)|0);
$2 = $13;
$14 = $j;
$15 = $0;
$16 = (0 - ($14))|0;
$17 = (($15) + ($16<<2)|0);
$0 = $17;
$cy = 0;
while(1) {
$18 = $j;
$19 = $2;
$20 = (($19) + ($18<<2)|0);
$21 = HEAP32[$20>>2]|0;
$y = $21;
$22 = $j;
$23 = $1;
$24 = (($23) + ($22<<2)|0);
$25 = HEAP32[$24>>2]|0;
$x = $25;
$26 = $cy;
$27 = $y;
$28 = (($27) + ($26))|0;
$y = $28;
$29 = $y;
$30 = $cy;
$31 = ($29>>>0)<($30>>>0);
$32 = $31&1;
$cy = $32;
$33 = $x;
$34 = $y;
$35 = (($33) - ($34))|0;
$y = $35;
$36 = $y;
$37 = $x;
$38 = ($36>>>0)>($37>>>0);
$39 = $38&1;
$40 = $cy;
$41 = (($40) + ($39))|0;
$cy = $41;
$42 = $y;
$43 = $j;
$44 = $0;
$45 = (($44) + ($43<<2)|0);
HEAP32[$45>>2] = $42;
$46 = $j;
$47 = (($46) + 1)|0;
$j = $47;
$48 = ($47|0)!=(0);
if (!($48)) {
break;
}
}
$49 = $cy;
STACKTOP = sp;return ($49|0);
}
function __gcry_mpi_get_hw_config() {
var label = 0, sp = 0;
sp = STACKTOP;
return ((46179)|0);
}
function __gcry_mpi_init() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $value = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$idx = 0;
L1: while(1) {
$0 = $idx;
$1 = ($0|0)<(6);
if (!($1)) {
label = 12;
break;
}
$2 = $idx;
switch ($2|0) {
case 0: {
$value = 0;
break;
}
case 1: {
$value = 1;
break;
}
case 2: {
$value = 2;
break;
}
case 3: {
$value = 3;
break;
}
case 4: {
$value = 4;
break;
}
case 5: {
$value = 8;
break;
}
default: {
label = 10;
break L1;
}
}
$4 = $value;
$5 = (__gcry_mpi_alloc_set_ui($4)|0);
$6 = $idx;
$7 = (70876 + ($6<<2)|0);
HEAP32[$7>>2] = $5;
$8 = $idx;
$9 = (70876 + ($8<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($10)) + 12|0);
HEAP32[$11>>2] = 48;
$12 = $idx;
$13 = (($12) + 1)|0;
$idx = $13;
}
if ((label|0) == 10) {
$3 = $idx;
HEAP32[$vararg_buffer>>2] = $3;
__gcry_log_bug(46323,$vararg_buffer);
// unreachable;
}
else if ((label|0) == 12) {
STACKTOP = sp;return 0;
}
return (0)|0;
}
function __gcry_mpi_alloc_set_ui($u) {
$u = $u|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $w = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $u;
$1 = (__gcry_mpi_alloc(1)|0);
$w = $1;
$2 = $0;
$3 = $w;
$4 = ((($3)) + 16|0);
$5 = HEAP32[$4>>2]|0;
HEAP32[$5>>2] = $2;
$6 = $0;
$7 = ($6|0)!=(0);
$8 = $7 ? 1 : 0;
$9 = $w;
$10 = ((($9)) + 4|0);
HEAP32[$10>>2] = $8;
$11 = $w;
$12 = ((($11)) + 8|0);
HEAP32[$12>>2] = 0;
$13 = $w;
STACKTOP = sp;return ($13|0);
}
function __gcry_mpi_alloc($nlimbs) {
$nlimbs = $nlimbs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $a = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nlimbs;
$1 = (__gcry_xmalloc(20)|0);
$a = $1;
$2 = $0;
$3 = ($2|0)!=(0);
if ($3) {
$4 = $0;
$5 = (__gcry_mpi_alloc_limb_space($4,0)|0);
$8 = $5;
} else {
$8 = 0;
}
$6 = $a;
$7 = ((($6)) + 16|0);
HEAP32[$7>>2] = $8;
$9 = $0;
$10 = $a;
HEAP32[$10>>2] = $9;
$11 = $a;
$12 = ((($11)) + 4|0);
HEAP32[$12>>2] = 0;
$13 = $a;
$14 = ((($13)) + 8|0);
HEAP32[$14>>2] = 0;
$15 = $a;
$16 = ((($15)) + 12|0);
HEAP32[$16>>2] = 0;
$17 = $a;
STACKTOP = sp;return ($17|0);
}
function __gcry_mpi_alloc_limb_space($nlimbs,$secure) {
$nlimbs = $nlimbs|0;
$secure = $secure|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $len = 0, $p = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nlimbs;
$1 = $secure;
$2 = $0;
$3 = ($2|0)!=(0);
$4 = $0;
$5 = $3 ? $4 : 1;
$6 = $5<<2;
$len = $6;
$7 = $1;
$8 = ($7|0)!=(0);
$9 = $len;
if ($8) {
$10 = (__gcry_xmalloc_secure($9)|0);
$12 = $10;
} else {
$11 = (__gcry_xmalloc($9)|0);
$12 = $11;
}
$p = $12;
$13 = $0;
$14 = ($13|0)!=(0);
if ($14) {
$16 = $p;
STACKTOP = sp;return ($16|0);
}
$15 = $p;
HEAP32[$15>>2] = 0;
$16 = $p;
STACKTOP = sp;return ($16|0);
}
function __gcry_mpi_alloc_secure($nlimbs) {
$nlimbs = $nlimbs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $a = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nlimbs;
$1 = (__gcry_xmalloc(20)|0);
$a = $1;
$2 = $0;
$3 = ($2|0)!=(0);
if ($3) {
$4 = $0;
$5 = (__gcry_mpi_alloc_limb_space($4,1)|0);
$8 = $5;
} else {
$8 = 0;
}
$6 = $a;
$7 = ((($6)) + 16|0);
HEAP32[$7>>2] = $8;
$9 = $0;
$10 = $a;
HEAP32[$10>>2] = $9;
$11 = $a;
$12 = ((($11)) + 12|0);
HEAP32[$12>>2] = 1;
$13 = $a;
$14 = ((($13)) + 4|0);
HEAP32[$14>>2] = 0;
$15 = $a;
$16 = ((($15)) + 8|0);
HEAP32[$16>>2] = 0;
$17 = $a;
STACKTOP = sp;return ($17|0);
}
function __gcry_mpi_free_limb_space($a,$nlimbs) {
$a = $a|0;
$nlimbs = $nlimbs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $len = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp;
$0 = $a;
$1 = $nlimbs;
$2 = $0;
$3 = ($2|0)!=(0|0);
if (!($3)) {
STACKTOP = sp;return;
}
$4 = $1;
$5 = $4<<2;
$len = $5;
$6 = $len;
$7 = ($6|0)!=(0);
L4: do {
if ($7) {
$8 = $0;
$_vptr = $8;
$9 = $len;
$_vlen = $9;
$_vset = 0;
$10 = $_vset;
$11 = $10&255;
$12 = $_vset_long;
$13 = $12;
HEAP32[$13>>2] = $11;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = 0;
while(1) {
$16 = $_vptr;
$17 = $16;
$18 = $17 & 7;
$19 = ($18|0)!=(0);
$20 = $_vlen;
$21 = ($20|0)!=(0);
$22 = $19 ? $21 : 0;
if (!($22)) {
break;
}
$23 = $_vset;
$24 = $_vptr;
HEAP8[$24>>0] = $23;
$25 = $_vptr;
$26 = ((($25)) + 1|0);
$_vptr = $26;
$27 = $_vlen;
$28 = (($27) + -1)|0;
$_vlen = $28;
}
$29 = $_vlen;
$30 = ($29>>>0)<(8);
if (!($30)) {
$31 = $_vset_long;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = (($31) + 4)|0;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (___muldi3(($33|0),($36|0),16843009,16843009)|0);
$38 = tempRet0;
$39 = $_vset_long;
$40 = $39;
HEAP32[$40>>2] = $37;
$41 = (($39) + 4)|0;
$42 = $41;
HEAP32[$42>>2] = $38;
while(1) {
$43 = $_vptr;
$_vptr_long = $43;
$44 = $_vset_long;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = (($44) + 4)|0;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = $_vptr_long;
$51 = $50;
$52 = $51;
HEAP32[$52>>2] = $46;
$53 = (($51) + 4)|0;
$54 = $53;
HEAP32[$54>>2] = $49;
$55 = $_vlen;
$56 = (($55) - 8)|0;
$_vlen = $56;
$57 = $_vptr;
$58 = ((($57)) + 8|0);
$_vptr = $58;
$59 = $_vlen;
$60 = ($59>>>0)>=(8);
if (!($60)) {
break;
}
}
}
while(1) {
$61 = $_vlen;
$62 = ($61|0)!=(0);
if (!($62)) {
break L4;
}
$63 = $_vset;
$64 = $_vptr;
HEAP8[$64>>0] = $63;
$65 = $_vptr;
$66 = ((($65)) + 1|0);
$_vptr = $66;
$67 = $_vlen;
$68 = (($67) + -1)|0;
$_vlen = $68;
}
}
} while(0);
$69 = $0;
__gcry_free($69);
STACKTOP = sp;return;
}
function __gcry_mpi_assign_limb_space($a,$ap,$nlimbs) {
$a = $a|0;
$ap = $ap|0;
$nlimbs = $nlimbs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $ap;
$2 = $nlimbs;
$3 = $0;
$4 = ((($3)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = $0;
$7 = HEAP32[$6>>2]|0;
__gcry_mpi_free_limb_space($5,$7);
$8 = $1;
$9 = $0;
$10 = ((($9)) + 16|0);
HEAP32[$10>>2] = $8;
$11 = $2;
$12 = $0;
HEAP32[$12>>2] = $11;
STACKTOP = sp;return;
}
function __gcry_mpi_resize($a,$nlimbs) {
$a = $a|0;
$nlimbs = $nlimbs|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $nlimbs;
$2 = $1;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = ($2>>>0)<=($4>>>0);
$6 = $0;
if ($5) {
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$i = $8;
while(1) {
$9 = $i;
$10 = $0;
$11 = HEAP32[$10>>2]|0;
$12 = ($9>>>0)<($11>>>0);
if (!($12)) {
break;
}
$13 = $i;
$14 = $0;
$15 = ((($14)) + 16|0);
$16 = HEAP32[$15>>2]|0;
$17 = (($16) + ($13<<2)|0);
HEAP32[$17>>2] = 0;
$18 = $i;
$19 = (($18) + 1)|0;
$i = $19;
}
STACKTOP = sp;return;
}
$20 = ((($6)) + 16|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)!=(0|0);
$23 = $0;
L8: do {
if ($22) {
$24 = ((($23)) + 16|0);
$25 = HEAP32[$24>>2]|0;
$26 = $1;
$27 = $26<<2;
$28 = (__gcry_xrealloc($25,$27)|0);
$29 = $0;
$30 = ((($29)) + 16|0);
HEAP32[$30>>2] = $28;
$31 = $0;
$32 = HEAP32[$31>>2]|0;
$i = $32;
while(1) {
$33 = $i;
$34 = $1;
$35 = ($33>>>0)<($34>>>0);
if (!($35)) {
break L8;
}
$36 = $i;
$37 = $0;
$38 = ((($37)) + 16|0);
$39 = HEAP32[$38>>2]|0;
$40 = (($39) + ($36<<2)|0);
HEAP32[$40>>2] = 0;
$41 = $i;
$42 = (($41) + 1)|0;
$i = $42;
}
} else {
$43 = ((($23)) + 12|0);
$44 = HEAP32[$43>>2]|0;
$45 = $44 & 1;
$46 = ($45|0)!=(0);
$47 = $1;
if ($46) {
$48 = (__gcry_xcalloc_secure($47,4)|0);
$49 = $0;
$50 = ((($49)) + 16|0);
HEAP32[$50>>2] = $48;
break;
} else {
$51 = (__gcry_xcalloc($47,4)|0);
$52 = $0;
$53 = ((($52)) + 16|0);
HEAP32[$53>>2] = $51;
break;
}
}
} while(0);
$54 = $1;
$55 = $0;
HEAP32[$55>>2] = $54;
STACKTOP = sp;return;
}
function __gcry_mpi_clear($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if ($2) {
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 16;
$7 = ($6|0)!=(0);
if ($7) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$8 = $0;
$9 = ((($8)) + 4|0);
HEAP32[$9>>2] = 0;
$10 = $0;
$11 = ((($10)) + 12|0);
HEAP32[$11>>2] = 0;
STACKTOP = sp;return;
}
function __gcry_mpi_immutable_failed() {
var $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
__gcry_log_info(46354,$vararg_buffer);
STACKTOP = sp;return;
}
function __gcry_mpi_free($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 32;
$7 = ($6|0)!=(0);
if ($7) {
STACKTOP = sp;return;
}
$8 = $0;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10 & 4;
$12 = ($11|0)!=(0);
$13 = $0;
$14 = ((($13)) + 16|0);
$15 = HEAP32[$14>>2]|0;
if ($12) {
__gcry_free($15);
} else {
$16 = $0;
$17 = HEAP32[$16>>2]|0;
__gcry_mpi_free_limb_space($15,$17);
}
$18 = $0;
$19 = ((($18)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = $20 & -3864;
$22 = ($21|0)!=(0);
if ($22) {
__gcry_log_bug(46398,$vararg_buffer);
// unreachable;
}
$23 = $0;
__gcry_free($23);
STACKTOP = sp;return;
}
function __gcry_mpi_set_opaque($a,$p,$nbits) {
$a = $a|0;
$p = $p|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $p;
$3 = $nbits;
$4 = $1;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$6 = (__gcry_mpi_alloc(0)|0);
$1 = $6;
}
$7 = $1;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $1;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = $11 & 16;
$13 = ($12|0)!=(0);
if ($13) {
__gcry_mpi_immutable_failed();
$14 = $1;
$0 = $14;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
}
$15 = $1;
$16 = ((($15)) + 12|0);
$17 = HEAP32[$16>>2]|0;
$18 = $17 & 4;
$19 = ($18|0)!=(0);
$20 = $1;
$21 = ((($20)) + 16|0);
$22 = HEAP32[$21>>2]|0;
if ($19) {
__gcry_free($22);
} else {
$23 = $1;
$24 = HEAP32[$23>>2]|0;
__gcry_mpi_free_limb_space($22,$24);
}
$25 = $2;
$26 = $1;
$27 = ((($26)) + 16|0);
HEAP32[$27>>2] = $25;
$28 = $1;
HEAP32[$28>>2] = 0;
$29 = $1;
$30 = ((($29)) + 4|0);
HEAP32[$30>>2] = 0;
$31 = $3;
$32 = $1;
$33 = ((($32)) + 8|0);
HEAP32[$33>>2] = $31;
$34 = $1;
$35 = ((($34)) + 12|0);
$36 = HEAP32[$35>>2]|0;
$37 = $36 & 3840;
$38 = 4 | $37;
$39 = $1;
$40 = ((($39)) + 12|0);
HEAP32[$40>>2] = $38;
$41 = $1;
$42 = ((($41)) + 16|0);
$43 = HEAP32[$42>>2]|0;
$44 = (__gcry_is_secure($43)|0);
$45 = ($44|0)!=(0);
if ($45) {
$46 = $1;
$47 = ((($46)) + 12|0);
$48 = HEAP32[$47>>2]|0;
$49 = $48 | 1;
HEAP32[$47>>2] = $49;
}
$50 = $1;
$0 = $50;
$51 = $0;
STACKTOP = sp;return ($51|0);
}
function __gcry_mpi_set_opaque_copy($a,$p,$nbits) {
$a = $a|0;
$p = $p|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $d = 0, $n = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $p;
$3 = $nbits;
$4 = $3;
$5 = (($4) + 7)|0;
$6 = (($5>>>0) / 8)&-1;
$n = $6;
$7 = $2;
$8 = (__gcry_is_secure($7)|0);
$9 = ($8|0)!=(0);
$10 = $n;
if ($9) {
$11 = (__gcry_malloc_secure($10)|0);
$13 = $11;
} else {
$12 = (__gcry_malloc($10)|0);
$13 = $12;
}
$d = $13;
$14 = $d;
$15 = ($14|0)!=(0|0);
if ($15) {
$16 = $d;
$17 = $2;
$18 = $n;
_memcpy(($16|0),($17|0),($18|0))|0;
$19 = $1;
$20 = $d;
$21 = $3;
$22 = (__gcry_mpi_set_opaque($19,$20,$21)|0);
$0 = $22;
$23 = $0;
STACKTOP = sp;return ($23|0);
} else {
$0 = 0;
$23 = $0;
STACKTOP = sp;return ($23|0);
}
return (0)|0;
}
function __gcry_mpi_get_opaque($a,$nbits) {
$a = $a|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $a;
$1 = $nbits;
$2 = $0;
$3 = ((($2)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = $4 & 4;
$6 = ($5|0)!=(0);
if (!($6)) {
__gcry_log_bug(46430,$vararg_buffer);
// unreachable;
}
$7 = $1;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $0;
$10 = ((($9)) + 8|0);
$11 = HEAP32[$10>>2]|0;
$12 = $1;
HEAP32[$12>>2] = $11;
}
$13 = $0;
$14 = ((($13)) + 16|0);
$15 = HEAP32[$14>>2]|0;
STACKTOP = sp;return ($15|0);
}
function __gcry_mpi_get_opaque_copy($a,$nbits) {
$a = $a|0;
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $d = 0, $n = 0, $or$cond = 0, $s = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a;
$2 = $nbits;
$3 = $1;
$4 = $2;
$5 = (__gcry_mpi_get_opaque($3,$4)|0);
$s = $5;
$6 = $s;
$7 = ($6|0)==(0|0);
$8 = $2;
$9 = ($8|0)!=(0|0);
$or$cond = $7 & $9;
if ($or$cond) {
$0 = 0;
$27 = $0;
STACKTOP = sp;return ($27|0);
}
$10 = $2;
$11 = HEAP32[$10>>2]|0;
$12 = (($11) + 7)|0;
$13 = (($12>>>0) / 8)&-1;
$n = $13;
$14 = $s;
$15 = (__gcry_is_secure($14)|0);
$16 = ($15|0)!=(0);
$17 = $n;
if ($16) {
$18 = (__gcry_malloc_secure($17)|0);
$20 = $18;
} else {
$19 = (__gcry_malloc($17)|0);
$20 = $19;
}
$d = $20;
$21 = $d;
$22 = ($21|0)!=(0|0);
if ($22) {
$23 = $d;
$24 = $s;
$25 = $n;
_memcpy(($23|0),($24|0),($25|0))|0;
}
$26 = $d;
$0 = $26;
$27 = $0;
STACKTOP = sp;return ($27|0);
}
function __gcry_mpi_copy($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $b = 0;
var $i = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if ($2) {
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 4;
$7 = ($6|0)!=(0);
if ($7) {
$8 = $0;
$9 = ((($8)) + 16|0);
$10 = HEAP32[$9>>2]|0;
$11 = (__gcry_is_secure($10)|0);
$12 = ($11|0)!=(0);
$13 = $0;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = (($15) + 7)|0;
$17 = (($16|0) / 8)&-1;
if ($12) {
$18 = (__gcry_xmalloc_secure($17)|0);
$20 = $18;
} else {
$19 = (__gcry_xmalloc($17)|0);
$20 = $19;
}
$p = $20;
$21 = $0;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$24 = ($23|0)!=(0|0);
if ($24) {
$25 = $p;
$26 = $0;
$27 = ((($26)) + 16|0);
$28 = HEAP32[$27>>2]|0;
$29 = $0;
$30 = ((($29)) + 8|0);
$31 = HEAP32[$30>>2]|0;
$32 = (($31) + 7)|0;
$33 = (($32|0) / 8)&-1;
_memcpy(($25|0),($28|0),($33|0))|0;
}
$34 = $p;
$35 = $0;
$36 = ((($35)) + 8|0);
$37 = HEAP32[$36>>2]|0;
$38 = (__gcry_mpi_set_opaque(0,$34,$37)|0);
$b = $38;
$39 = $b;
$40 = ((($39)) + 12|0);
$41 = HEAP32[$40>>2]|0;
$42 = $41 & -49;
HEAP32[$40>>2] = $42;
$98 = $b;
STACKTOP = sp;return ($98|0);
}
}
$43 = $0;
$44 = ($43|0)!=(0|0);
if (!($44)) {
$b = 0;
$98 = $b;
STACKTOP = sp;return ($98|0);
}
$45 = $0;
$46 = ($45|0)!=(0|0);
if ($46) {
$47 = $0;
$48 = ((($47)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = $49 & 1;
$51 = ($50|0)!=(0);
if ($51) {
$52 = $0;
$53 = ((($52)) + 4|0);
$54 = HEAP32[$53>>2]|0;
$55 = (__gcry_mpi_alloc_secure($54)|0);
$60 = $55;
} else {
label = 13;
}
} else {
label = 13;
}
if ((label|0) == 13) {
$56 = $0;
$57 = ((($56)) + 4|0);
$58 = HEAP32[$57>>2]|0;
$59 = (__gcry_mpi_alloc($58)|0);
$60 = $59;
}
$b = $60;
$61 = $0;
$62 = ((($61)) + 4|0);
$63 = HEAP32[$62>>2]|0;
$64 = $b;
$65 = ((($64)) + 4|0);
HEAP32[$65>>2] = $63;
$66 = $0;
$67 = ((($66)) + 8|0);
$68 = HEAP32[$67>>2]|0;
$69 = $b;
$70 = ((($69)) + 8|0);
HEAP32[$70>>2] = $68;
$71 = $0;
$72 = ((($71)) + 12|0);
$73 = HEAP32[$72>>2]|0;
$74 = $b;
$75 = ((($74)) + 12|0);
HEAP32[$75>>2] = $73;
$76 = $b;
$77 = ((($76)) + 12|0);
$78 = HEAP32[$77>>2]|0;
$79 = $78 & -49;
HEAP32[$77>>2] = $79;
$i = 0;
while(1) {
$80 = $i;
$81 = $b;
$82 = ((($81)) + 4|0);
$83 = HEAP32[$82>>2]|0;
$84 = ($80|0)<($83|0);
if (!($84)) {
break;
}
$85 = $i;
$86 = $0;
$87 = ((($86)) + 16|0);
$88 = HEAP32[$87>>2]|0;
$89 = (($88) + ($85<<2)|0);
$90 = HEAP32[$89>>2]|0;
$91 = $i;
$92 = $b;
$93 = ((($92)) + 16|0);
$94 = HEAP32[$93>>2]|0;
$95 = (($94) + ($91<<2)|0);
HEAP32[$95>>2] = $90;
$96 = $i;
$97 = (($96) + 1)|0;
$i = $97;
}
$98 = $b;
STACKTOP = sp;return ($98|0);
}
function __gcry_mpi_neg($w,$u) {
$w = $w|0;
$u = $u|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $0;
$3 = $1;
$4 = ($2|0)!=($3|0);
$5 = $0;
if ($4) {
$6 = $1;
(__gcry_mpi_set($5,$6)|0);
} else {
$7 = ($5|0)!=(0|0);
if ($7) {
$8 = $0;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10 & 16;
$12 = ($11|0)!=(0);
if ($12) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
}
$13 = $1;
$14 = ((($13)) + 8|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)!=(0);
$17 = $16 ^ 1;
$18 = $17&1;
$19 = $0;
$20 = ((($19)) + 8|0);
HEAP32[$20>>2] = $18;
STACKTOP = sp;return;
}
function __gcry_mpi_set($w,$u) {
$w = $w|0;
$u = $u|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $7 = 0, $8 = 0, $9 = 0, $_i = 0, $up = 0, $usign = 0, $usize = 0, $wp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $w;
$2 = $u;
$3 = $2;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$usize = $5;
$6 = $2;
$7 = ((($6)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$usign = $8;
$9 = $1;
$10 = ($9|0)!=(0|0);
if (!($10)) {
$11 = $2;
$12 = ((($11)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = (__gcry_mpi_alloc($13)|0);
$1 = $14;
}
$15 = $1;
$16 = ($15|0)!=(0|0);
if ($16) {
$17 = $1;
$18 = ((($17)) + 12|0);
$19 = HEAP32[$18>>2]|0;
$20 = $19 & 16;
$21 = ($20|0)!=(0);
if ($21) {
__gcry_mpi_immutable_failed();
$22 = $1;
$0 = $22;
$63 = $0;
STACKTOP = sp;return ($63|0);
}
}
$23 = $1;
$24 = HEAP32[$23>>2]|0;
$25 = $usize;
$26 = ($24|0)<($25|0);
if ($26) {
$27 = $1;
$28 = $usize;
__gcry_mpi_resize($27,$28);
}
$29 = $1;
$30 = ((($29)) + 16|0);
$31 = HEAP32[$30>>2]|0;
$wp = $31;
$32 = $2;
$33 = ((($32)) + 16|0);
$34 = HEAP32[$33>>2]|0;
$up = $34;
$_i = 0;
while(1) {
$35 = $_i;
$36 = $usize;
$37 = ($35|0)<($36|0);
if (!($37)) {
break;
}
$38 = $_i;
$39 = $up;
$40 = (($39) + ($38<<2)|0);
$41 = HEAP32[$40>>2]|0;
$42 = $_i;
$43 = $wp;
$44 = (($43) + ($42<<2)|0);
HEAP32[$44>>2] = $41;
$45 = $_i;
$46 = (($45) + 1)|0;
$_i = $46;
}
$47 = $usize;
$48 = $1;
$49 = ((($48)) + 4|0);
HEAP32[$49>>2] = $47;
$50 = $2;
$51 = ((($50)) + 12|0);
$52 = HEAP32[$51>>2]|0;
$53 = $1;
$54 = ((($53)) + 12|0);
HEAP32[$54>>2] = $52;
$55 = $1;
$56 = ((($55)) + 12|0);
$57 = HEAP32[$56>>2]|0;
$58 = $57 & -49;
HEAP32[$56>>2] = $58;
$59 = $usign;
$60 = $1;
$61 = ((($60)) + 8|0);
HEAP32[$61>>2] = $59;
$62 = $1;
$0 = $62;
$63 = $0;
STACKTOP = sp;return ($63|0);
}
function __gcry_mpi_alloc_like($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $b = 0, $n = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ($1|0)!=(0|0);
if ($2) {
$3 = $0;
$4 = ((($3)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 4;
$7 = ($6|0)!=(0);
if ($7) {
$8 = $0;
$9 = ((($8)) + 8|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) + 7)|0;
$12 = (($11|0) / 8)&-1;
$n = $12;
$13 = $0;
$14 = ((($13)) + 16|0);
$15 = HEAP32[$14>>2]|0;
$16 = (__gcry_is_secure($15)|0);
$17 = ($16|0)!=(0);
$18 = $n;
if ($17) {
$19 = (__gcry_malloc_secure($18)|0);
$21 = $19;
} else {
$20 = (__gcry_malloc($18)|0);
$21 = $20;
}
$p = $21;
$22 = $p;
$23 = $0;
$24 = ((($23)) + 16|0);
$25 = HEAP32[$24>>2]|0;
$26 = $n;
_memcpy(($22|0),($25|0),($26|0))|0;
$27 = $p;
$28 = $0;
$29 = ((($28)) + 8|0);
$30 = HEAP32[$29>>2]|0;
$31 = (__gcry_mpi_set_opaque(0,$27,$30)|0);
$b = $31;
$59 = $b;
STACKTOP = sp;return ($59|0);
}
}
$32 = $0;
$33 = ($32|0)!=(0|0);
if (!($33)) {
$b = 0;
$59 = $b;
STACKTOP = sp;return ($59|0);
}
$34 = $0;
$35 = ($34|0)!=(0|0);
if ($35) {
$36 = $0;
$37 = ((($36)) + 12|0);
$38 = HEAP32[$37>>2]|0;
$39 = $38 & 1;
$40 = ($39|0)!=(0);
if ($40) {
$41 = $0;
$42 = ((($41)) + 4|0);
$43 = HEAP32[$42>>2]|0;
$44 = (__gcry_mpi_alloc_secure($43)|0);
$49 = $44;
} else {
label = 11;
}
} else {
label = 11;
}
if ((label|0) == 11) {
$45 = $0;
$46 = ((($45)) + 4|0);
$47 = HEAP32[$46>>2]|0;
$48 = (__gcry_mpi_alloc($47)|0);
$49 = $48;
}
$b = $49;
$50 = $b;
$51 = ((($50)) + 4|0);
HEAP32[$51>>2] = 0;
$52 = $b;
$53 = ((($52)) + 8|0);
HEAP32[$53>>2] = 0;
$54 = $0;
$55 = ((($54)) + 12|0);
$56 = HEAP32[$55>>2]|0;
$57 = $b;
$58 = ((($57)) + 12|0);
HEAP32[$58>>2] = $56;
$59 = $b;
STACKTOP = sp;return ($59|0);
}
function __gcry_mpi_snatch($w,$u) {
$w = $w|0;
$u = $u|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $u;
$2 = $0;
$3 = ($2|0)!=(0|0);
if ($3) {
$4 = $0;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $0;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 & 16;
$10 = ($9|0)!=(0);
if ($10) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$11 = $0;
$12 = $1;
$13 = ((($12)) + 16|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = HEAP32[$15>>2]|0;
__gcry_mpi_assign_limb_space($11,$14,$16);
$17 = $1;
$18 = ((($17)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = $0;
$21 = ((($20)) + 4|0);
HEAP32[$21>>2] = $19;
$22 = $1;
$23 = ((($22)) + 8|0);
$24 = HEAP32[$23>>2]|0;
$25 = $0;
$26 = ((($25)) + 8|0);
HEAP32[$26>>2] = $24;
$27 = $1;
$28 = ((($27)) + 12|0);
$29 = HEAP32[$28>>2]|0;
$30 = $0;
$31 = ((($30)) + 12|0);
HEAP32[$31>>2] = $29;
$32 = $1;
HEAP32[$32>>2] = 0;
$33 = $1;
$34 = ((($33)) + 4|0);
HEAP32[$34>>2] = 0;
$35 = $1;
$36 = ((($35)) + 16|0);
HEAP32[$36>>2] = 0;
}
$37 = $1;
__gcry_mpi_free($37);
STACKTOP = sp;return;
}
function __gcry_mpi_set_cond($w,$u,$set) {
$w = $w|0;
$u = $u|0;
$set = $set|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $9 = 0, $i = 0, $mask = 0, $nlimbs = 0, $vararg_buffer = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $w;
$1 = $u;
$2 = $set;
$3 = $1;
$4 = HEAP32[$3>>2]|0;
$nlimbs = $4;
$5 = $2;
$6 = ($5|0)!=(0);
$7 = $6 ^ 1;
$8 = $7 ^ 1;
$9 = $8&1;
$10 = (0 - ($9))|0;
$mask = $10;
$11 = $0;
$12 = HEAP32[$11>>2]|0;
$13 = $1;
$14 = HEAP32[$13>>2]|0;
$15 = ($12|0)!=($14|0);
if ($15) {
__gcry_log_bug(46460,$vararg_buffer);
// unreachable;
}
$i = 0;
while(1) {
$16 = $i;
$17 = $nlimbs;
$18 = ($16|0)<($17|0);
$19 = $mask;
if (!($18)) {
break;
}
$20 = $i;
$21 = $0;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$24 = (($23) + ($20<<2)|0);
$25 = HEAP32[$24>>2]|0;
$26 = $i;
$27 = $1;
$28 = ((($27)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = (($29) + ($26<<2)|0);
$31 = HEAP32[$30>>2]|0;
$32 = $25 ^ $31;
$33 = $19 & $32;
$x = $33;
$34 = $i;
$35 = $0;
$36 = ((($35)) + 16|0);
$37 = HEAP32[$36>>2]|0;
$38 = (($37) + ($34<<2)|0);
$39 = HEAP32[$38>>2]|0;
$40 = $x;
$41 = $39 ^ $40;
$42 = $i;
$43 = $0;
$44 = ((($43)) + 16|0);
$45 = HEAP32[$44>>2]|0;
$46 = (($45) + ($42<<2)|0);
HEAP32[$46>>2] = $41;
$47 = $i;
$48 = (($47) + 1)|0;
$i = $48;
}
$49 = $0;
$50 = ((($49)) + 4|0);
$51 = HEAP32[$50>>2]|0;
$52 = $1;
$53 = ((($52)) + 4|0);
$54 = HEAP32[$53>>2]|0;
$55 = $51 ^ $54;
$56 = $19 & $55;
$x = $56;
$57 = $0;
$58 = ((($57)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = $x;
$61 = $59 ^ $60;
$62 = $0;
$63 = ((($62)) + 4|0);
HEAP32[$63>>2] = $61;
$64 = $mask;
$65 = $0;
$66 = ((($65)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = $1;
$69 = ((($68)) + 8|0);
$70 = HEAP32[$69>>2]|0;
$71 = $67 ^ $70;
$72 = $64 & $71;
$x = $72;
$73 = $0;
$74 = ((($73)) + 8|0);
$75 = HEAP32[$74>>2]|0;
$76 = $x;
$77 = $75 ^ $76;
$78 = $0;
$79 = ((($78)) + 8|0);
HEAP32[$79>>2] = $77;
$80 = $0;
STACKTOP = sp;return ($80|0);
}
function __gcry_mpi_set_ui($w,$u) {
$w = $w|0;
$u = $u|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $w;
$2 = $u;
$3 = $1;
$4 = ($3|0)!=(0|0);
if (!($4)) {
$5 = (__gcry_mpi_alloc(1)|0);
$1 = $5;
}
$6 = $1;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $1;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10 & 16;
$12 = ($11|0)!=(0);
if ($12) {
__gcry_mpi_immutable_failed();
$13 = $1;
$0 = $13;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
}
$14 = $1;
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)<(1);
if ($16) {
$17 = $1;
__gcry_mpi_resize($17,1);
}
$18 = $2;
$19 = $1;
$20 = ((($19)) + 16|0);
$21 = HEAP32[$20>>2]|0;
HEAP32[$21>>2] = $18;
$22 = $2;
$23 = ($22|0)!=(0);
$24 = $23 ? 1 : 0;
$25 = $1;
$26 = ((($25)) + 4|0);
HEAP32[$26>>2] = $24;
$27 = $1;
$28 = ((($27)) + 8|0);
HEAP32[$28>>2] = 0;
$29 = $1;
$30 = ((($29)) + 12|0);
HEAP32[$30>>2] = 0;
$31 = $1;
$0 = $31;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
function __gcry_mpi_swap($a,$b) {
$a = $a|0;
$b = $b|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp;
$0 = $a;
$1 = $b;
$2 = $0;
;HEAP32[$tmp>>2]=HEAP32[$2>>2]|0;HEAP32[$tmp+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$tmp+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$tmp+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$tmp+16>>2]=HEAP32[$2+16>>2]|0;
$3 = $0;
$4 = $1;
;HEAP32[$3>>2]=HEAP32[$4>>2]|0;HEAP32[$3+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$3+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$3+16>>2]=HEAP32[$4+16>>2]|0;
$5 = $1;
;HEAP32[$5>>2]=HEAP32[$tmp>>2]|0;HEAP32[$5+4>>2]=HEAP32[$tmp+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$tmp+8>>2]|0;HEAP32[$5+12>>2]=HEAP32[$tmp+12>>2]|0;HEAP32[$5+16>>2]=HEAP32[$tmp+16>>2]|0;
STACKTOP = sp;return;
}
function __gcry_mpi_swap_cond($a,$b,$swap) {
$a = $a|0;
$b = $b|0;
$swap = $swap|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i = 0, $mask = 0, $nlimbs = 0, $vararg_buffer = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $a;
$1 = $b;
$2 = $swap;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$nlimbs = $4;
$5 = $2;
$6 = ($5|0)!=(0);
$7 = $6 ^ 1;
$8 = $7 ^ 1;
$9 = $8&1;
$10 = (0 - ($9))|0;
$mask = $10;
$11 = $0;
$12 = HEAP32[$11>>2]|0;
$13 = $1;
$14 = HEAP32[$13>>2]|0;
$15 = ($12|0)!=($14|0);
if ($15) {
__gcry_log_bug(46491,$vararg_buffer);
// unreachable;
}
$i = 0;
while(1) {
$16 = $i;
$17 = $nlimbs;
$18 = ($16|0)<($17|0);
$19 = $mask;
if (!($18)) {
break;
}
$20 = $i;
$21 = $0;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$24 = (($23) + ($20<<2)|0);
$25 = HEAP32[$24>>2]|0;
$26 = $i;
$27 = $1;
$28 = ((($27)) + 16|0);
$29 = HEAP32[$28>>2]|0;
$30 = (($29) + ($26<<2)|0);
$31 = HEAP32[$30>>2]|0;
$32 = $25 ^ $31;
$33 = $19 & $32;
$x = $33;
$34 = $i;
$35 = $0;
$36 = ((($35)) + 16|0);
$37 = HEAP32[$36>>2]|0;
$38 = (($37) + ($34<<2)|0);
$39 = HEAP32[$38>>2]|0;
$40 = $x;
$41 = $39 ^ $40;
$42 = $i;
$43 = $0;
$44 = ((($43)) + 16|0);
$45 = HEAP32[$44>>2]|0;
$46 = (($45) + ($42<<2)|0);
HEAP32[$46>>2] = $41;
$47 = $i;
$48 = $1;
$49 = ((($48)) + 16|0);
$50 = HEAP32[$49>>2]|0;
$51 = (($50) + ($47<<2)|0);
$52 = HEAP32[$51>>2]|0;
$53 = $x;
$54 = $52 ^ $53;
$55 = $i;
$56 = $1;
$57 = ((($56)) + 16|0);
$58 = HEAP32[$57>>2]|0;
$59 = (($58) + ($55<<2)|0);
HEAP32[$59>>2] = $54;
$60 = $i;
$61 = (($60) + 1)|0;
$i = $61;
}
$62 = $0;
$63 = ((($62)) + 4|0);
$64 = HEAP32[$63>>2]|0;
$65 = $1;
$66 = ((($65)) + 4|0);
$67 = HEAP32[$66>>2]|0;
$68 = $64 ^ $67;
$69 = $19 & $68;
$x = $69;
$70 = $0;
$71 = ((($70)) + 4|0);
$72 = HEAP32[$71>>2]|0;
$73 = $x;
$74 = $72 ^ $73;
$75 = $0;
$76 = ((($75)) + 4|0);
HEAP32[$76>>2] = $74;
$77 = $1;
$78 = ((($77)) + 4|0);
$79 = HEAP32[$78>>2]|0;
$80 = $x;
$81 = $79 ^ $80;
$82 = $1;
$83 = ((($82)) + 4|0);
HEAP32[$83>>2] = $81;
$84 = $mask;
$85 = $0;
$86 = ((($85)) + 8|0);
$87 = HEAP32[$86>>2]|0;
$88 = $1;
$89 = ((($88)) + 8|0);
$90 = HEAP32[$89>>2]|0;
$91 = $87 ^ $90;
$92 = $84 & $91;
$x = $92;
$93 = $0;
$94 = ((($93)) + 8|0);
$95 = HEAP32[$94>>2]|0;
$96 = $x;
$97 = $95 ^ $96;
$98 = $0;
$99 = ((($98)) + 8|0);
HEAP32[$99>>2] = $97;
$100 = $1;
$101 = ((($100)) + 8|0);
$102 = HEAP32[$101>>2]|0;
$103 = $x;
$104 = $102 ^ $103;
$105 = $1;
$106 = ((($105)) + 8|0);
HEAP32[$106>>2] = $104;
STACKTOP = sp;return;
}
function __gcry_mpi_new($nbits) {
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = $0;
$2 = (($1) + 32)|0;
$3 = (($2) - 1)|0;
$4 = (($3>>>0) / 32)&-1;
$5 = (__gcry_mpi_alloc($4)|0);
STACKTOP = sp;return ($5|0);
}
function __gcry_mpi_snew($nbits) {
$nbits = $nbits|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $nbits;
$1 = $0;
$2 = (($1) + 32)|0;
$3 = (($2) - 1)|0;
$4 = (($3>>>0) / 32)&-1;
$5 = (__gcry_mpi_alloc_secure($4)|0);
STACKTOP = sp;return ($5|0);
}
function __gcry_mpi_release($a) {
$a = $a|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
__gcry_mpi_free($1);
STACKTOP = sp;return;
}
function __gcry_mpi_randomize($w,$nbits,$level) {
$w = $w|0;
$nbits = $nbits|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $nbytes = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $w;
$1 = $nbits;
$2 = $level;
$3 = $1;
$4 = (($3) + 7)|0;
$5 = (($4>>>0) / 8)&-1;
$nbytes = $5;
$6 = $0;
$7 = ($6|0)!=(0|0);
if ($7) {
$8 = $0;
$9 = ((($8)) + 12|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10 & 16;
$12 = ($11|0)!=(0);
if ($12) {
__gcry_mpi_immutable_failed();
STACKTOP = sp;return;
}
}
$13 = $2;
$14 = ($13|0)==(0);
$15 = $0;
$16 = ($15|0)!=(0|0);
if ($14) {
if ($16) {
$17 = $0;
$18 = ((($17)) + 12|0);
$19 = HEAP32[$18>>2]|0;
$20 = $19 & 1;
$21 = ($20|0)!=(0);
if ($21) {
$22 = $nbytes;
$23 = (__gcry_xmalloc_secure($22)|0);
$26 = $23;
} else {
label = 8;
}
} else {
label = 8;
}
if ((label|0) == 8) {
$24 = $nbytes;
$25 = (__gcry_xmalloc($24)|0);
$26 = $25;
}
$p = $26;
$27 = $p;
$28 = $nbytes;
__gcry_create_nonce($27,$28);
} else {
if ($16) {
$29 = $0;
$30 = ((($29)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = $31 & 1;
$33 = ($32|0)!=(0);
if ($33) {
$34 = $nbytes;
$35 = $2;
$36 = (__gcry_random_bytes_secure($34,$35)|0);
$40 = $36;
} else {
label = 13;
}
} else {
label = 13;
}
if ((label|0) == 13) {
$37 = $nbytes;
$38 = $2;
$39 = (__gcry_random_bytes($37,$38)|0);
$40 = $39;
}
$p = $40;
}
$41 = $0;
$42 = $p;
$43 = $nbytes;
__gcry_mpi_set_buffer($41,$42,$43,0);
$44 = $p;
__gcry_free($44);
STACKTOP = sp;return;
}
function __gcry_mpi_get_flag($a,$flag) {
$a = $a|0;
$flag = $flag|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$1 = $a;
$2 = $flag;
$3 = $2;
switch ($3|0) {
case 1: {
$4 = $1;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = $6 & 1;
$8 = ($7|0)!=(0);
$9 = $8 ^ 1;
$10 = $9 ^ 1;
$11 = $10&1;
$0 = $11;
$45 = $0;
STACKTOP = sp;return ($45|0);
break;
}
case 2: {
$12 = $1;
$13 = ((($12)) + 12|0);
$14 = HEAP32[$13>>2]|0;
$15 = $14 & 4;
$16 = ($15|0)!=(0);
$17 = $16 ^ 1;
$18 = $17 ^ 1;
$19 = $18&1;
$0 = $19;
$45 = $0;
STACKTOP = sp;return ($45|0);
break;
}
case 4: {
$20 = $1;
$21 = ((($20)) + 12|0);
$22 = HEAP32[$21>>2]|0;
$23 = $22 & 16;
$24 = ($23|0)!=(0);
$25 = $24 ^ 1;
$26 = $25 ^ 1;
$27 = $26&1;
$0 = $27;
$45 = $0;
STACKTOP = sp;return ($45|0);
break;
}
case 8: {
$28 = $1;
$29 = ((($28)) + 12|0);
$30 = HEAP32[$29>>2]|0;
$31 = $30 & 32;
$32 = ($31|0)!=(0);
$33 = $32 ^ 1;
$34 = $33 ^ 1;
$35 = $34&1;
$0 = $35;
$45 = $0;
STACKTOP = sp;return ($45|0);
break;
}
case 2048: case 1024: case 512: case 256: {
$36 = $1;
$37 = ((($36)) + 12|0);
$38 = HEAP32[$37>>2]|0;
$39 = $2;
$40 = $38 & $39;
$41 = ($40|0)!=(0);
$42 = $41 ^ 1;
$43 = $42 ^ 1;
$44 = $43&1;
$0 = $44;
$45 = $0;
STACKTOP = sp;return ($45|0);
break;
}
default: {
__gcry_log_bug(46523,$vararg_buffer);
// unreachable;
}
}
return (0)|0;
}
function __gcry_mpi_const($no) {
$no = $no|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$0 = $no;
$1 = $0;
$2 = ($1|0)<(0);
$3 = $0;
$4 = ($3>>>0)>(6);
$or$cond = $2 | $4;
$5 = $0;
if ($or$cond) {
HEAP32[$vararg_buffer>>2] = $5;
__gcry_log_bug(46323,$vararg_buffer);
// unreachable;
}
$6 = (70876 + ($5<<2)|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(0|0);
if ($8) {
$9 = $0;
$10 = (70876 + ($9<<2)|0);
$11 = HEAP32[$10>>2]|0;
STACKTOP = sp;return ($11|0);
} else {
__gcry_log_bug(46543,$vararg_buffer2);
// unreachable;
}
return (0)|0;
}
function __gcry_compat_identification() {
var label = 0, sp = 0;
sp = STACKTOP;
return (46574|0);
}
function __gcry_hmac256_new($key,$keylen) {
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $_vlen = 0, $_vptr = 0, $hd = 0, $i = 0, $ipad = 0, $tmphd = 0, dest = 0;
var label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ipad = sp + 32|0;
$1 = $key;
$2 = $keylen;
$3 = (_malloc(172)|0);
$hd = $3;
$4 = $hd;
$5 = ($4|0)!=(0|0);
if (!($5)) {
$0 = 0;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$6 = $hd;
HEAP32[$6>>2] = 1779033703;
$7 = $hd;
$8 = ((($7)) + 4|0);
HEAP32[$8>>2] = -1150833019;
$9 = $hd;
$10 = ((($9)) + 8|0);
HEAP32[$10>>2] = 1013904242;
$11 = $hd;
$12 = ((($11)) + 12|0);
HEAP32[$12>>2] = -1521486534;
$13 = $hd;
$14 = ((($13)) + 16|0);
HEAP32[$14>>2] = 1359893119;
$15 = $hd;
$16 = ((($15)) + 20|0);
HEAP32[$16>>2] = -1694144372;
$17 = $hd;
$18 = ((($17)) + 24|0);
HEAP32[$18>>2] = 528734635;
$19 = $hd;
$20 = ((($19)) + 28|0);
HEAP32[$20>>2] = 1541459225;
$21 = $hd;
$22 = ((($21)) + 32|0);
HEAP32[$22>>2] = 0;
$23 = $hd;
$24 = ((($23)) + 36|0);
HEAP32[$24>>2] = 0;
$25 = $hd;
$26 = ((($25)) + 40|0);
$27 = HEAP8[$26>>0]|0;
$28 = $27 & -2;
HEAP8[$26>>0] = $28;
$29 = $hd;
$30 = ((($29)) + 40|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31 & -3;
HEAP8[$30>>0] = $32;
$33 = $1;
$34 = ($33|0)!=(0|0);
L5: do {
if ($34) {
dest=$ipad; stop=dest+64|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$35 = $hd;
$36 = ((($35)) + 105|0);
dest=$36; stop=dest+64|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$37 = $2;
$38 = ($37>>>0)<=(64);
do {
if ($38) {
$39 = $1;
$40 = $2;
_memcpy(($ipad|0),($39|0),($40|0))|0;
$41 = $hd;
$42 = ((($41)) + 105|0);
$43 = $1;
$44 = $2;
_memcpy(($42|0),($43|0),($44|0))|0;
} else {
$45 = (__gcry_hmac256_new(0,0)|0);
$tmphd = $45;
$46 = $tmphd;
$47 = ($46|0)!=(0|0);
if ($47) {
$49 = $tmphd;
$50 = $1;
$51 = $2;
__gcry_hmac256_update($49,$50,$51);
$52 = $tmphd;
_finalize($52);
$53 = $tmphd;
$54 = ((($53)) + 41|0);
dest=$ipad; src=$54; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$55 = $hd;
$56 = ((($55)) + 105|0);
$57 = $tmphd;
$58 = ((($57)) + 41|0);
dest=$56; src=$58; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$59 = $tmphd;
__gcry_hmac256_release($59);
break;
}
$48 = $hd;
_free($48);
$0 = 0;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
} while(0);
$i = 0;
while(1) {
$60 = $i;
$61 = ($60|0)<(64);
if (!($61)) {
break;
}
$62 = $i;
$63 = (($ipad) + ($62)|0);
$64 = HEAP8[$63>>0]|0;
$65 = $64&255;
$66 = $65 ^ 54;
$67 = $66&255;
HEAP8[$63>>0] = $67;
$68 = $i;
$69 = $hd;
$70 = ((($69)) + 105|0);
$71 = (($70) + ($68)|0);
$72 = HEAP8[$71>>0]|0;
$73 = $72&255;
$74 = $73 ^ 92;
$75 = $74&255;
HEAP8[$71>>0] = $75;
$76 = $i;
$77 = (($76) + 1)|0;
$i = $77;
}
$78 = $hd;
$79 = ((($78)) + 40|0);
$80 = HEAP8[$79>>0]|0;
$81 = $80 & -3;
$82 = $81 | 2;
HEAP8[$79>>0] = $82;
$83 = $hd;
__gcry_hmac256_update($83,$ipad,64);
$_vptr = $ipad;
$_vlen = 64;
while(1) {
$84 = $_vlen;
$85 = ($84|0)!=(0);
if (!($85)) {
break L5;
}
$86 = $_vptr;
HEAP8[$86>>0] = 0;
$87 = $_vptr;
$88 = ((($87)) + 1|0);
$_vptr = $88;
$89 = $_vlen;
$90 = (($89) + -1)|0;
$_vlen = $90;
}
}
} while(0);
$91 = $hd;
$0 = $91;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
function __gcry_hmac256_update($hd,$buffer,$length) {
$hd = $hd|0;
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $9 = 0, $inbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $buffer;
$2 = $length;
$3 = $1;
$inbuf = $3;
$4 = $0;
$5 = ((($4)) + 40|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6 << 7)&255;
$8 = ($7<<24>>24) >> 7;
$9 = $8 << 24 >> 24;
$10 = ($9|0)!=(0);
if ($10) {
STACKTOP = sp;return;
}
$11 = $0;
$12 = ((($11)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)==(64);
if ($14) {
$15 = $0;
$16 = $0;
$17 = ((($16)) + 41|0);
_transform_1792($15,$17);
$18 = $0;
$19 = ((($18)) + 36|0);
HEAP32[$19>>2] = 0;
$20 = $0;
$21 = ((($20)) + 32|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($22) + 1)|0;
HEAP32[$21>>2] = $23;
}
$24 = $inbuf;
$25 = ($24|0)!=(0|0);
if (!($25)) {
STACKTOP = sp;return;
}
$26 = $0;
$27 = ((($26)) + 36|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)!=(0);
if ($29) {
while(1) {
$30 = $2;
$31 = ($30|0)!=(0);
if (!($31)) {
break;
}
$32 = $0;
$33 = ((($32)) + 36|0);
$34 = HEAP32[$33>>2]|0;
$35 = ($34|0)<(64);
if (!($35)) {
break;
}
$36 = $inbuf;
$37 = ((($36)) + 1|0);
$inbuf = $37;
$38 = HEAP8[$36>>0]|0;
$39 = $0;
$40 = ((($39)) + 36|0);
$41 = HEAP32[$40>>2]|0;
$42 = (($41) + 1)|0;
HEAP32[$40>>2] = $42;
$43 = $0;
$44 = ((($43)) + 41|0);
$45 = (($44) + ($41)|0);
HEAP8[$45>>0] = $38;
$46 = $2;
$47 = (($46) + -1)|0;
$2 = $47;
}
$48 = $0;
__gcry_hmac256_update($48,0,0);
$49 = $2;
$50 = ($49|0)!=(0);
if (!($50)) {
STACKTOP = sp;return;
}
}
while(1) {
$51 = $2;
$52 = ($51>>>0)>=(64);
if (!($52)) {
break;
}
$53 = $0;
$54 = $inbuf;
_transform_1792($53,$54);
$55 = $0;
$56 = ((($55)) + 36|0);
HEAP32[$56>>2] = 0;
$57 = $0;
$58 = ((($57)) + 32|0);
$59 = HEAP32[$58>>2]|0;
$60 = (($59) + 1)|0;
HEAP32[$58>>2] = $60;
$61 = $2;
$62 = (($61) - 64)|0;
$2 = $62;
$63 = $inbuf;
$64 = ((($63)) + 64|0);
$inbuf = $64;
}
while(1) {
$65 = $2;
$66 = ($65|0)!=(0);
if (!($66)) {
label = 15;
break;
}
$67 = $0;
$68 = ((($67)) + 36|0);
$69 = HEAP32[$68>>2]|0;
$70 = ($69|0)<(64);
if (!($70)) {
label = 15;
break;
}
$71 = $inbuf;
$72 = ((($71)) + 1|0);
$inbuf = $72;
$73 = HEAP8[$71>>0]|0;
$74 = $0;
$75 = ((($74)) + 36|0);
$76 = HEAP32[$75>>2]|0;
$77 = (($76) + 1)|0;
HEAP32[$75>>2] = $77;
$78 = $0;
$79 = ((($78)) + 41|0);
$80 = (($79) + ($76)|0);
HEAP8[$80>>0] = $73;
$81 = $2;
$82 = (($81) + -1)|0;
$2 = $82;
}
if ((label|0) == 15) {
STACKTOP = sp;return;
}
}
function _transform_1792($hd,$data_arg) {
$hd = $hd|0;
$data_arg = $data_arg|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a = 0, $b = 0, $c = 0, $d = 0, $data = 0, $e = 0, $f = 0, $g = 0, $h = 0, $i = 0;
var $p2 = 0, $t1 = 0, $t2 = 0, $w = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$x = sp + 264|0;
$w = sp + 8|0;
$0 = $hd;
$1 = $data_arg;
$2 = $1;
$data = $2;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$a = $4;
$5 = $0;
$6 = ((($5)) + 4|0);
$7 = HEAP32[$6>>2]|0;
$b = $7;
$8 = $0;
$9 = ((($8)) + 8|0);
$10 = HEAP32[$9>>2]|0;
$c = $10;
$11 = $0;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$d = $13;
$14 = $0;
$15 = ((($14)) + 16|0);
$16 = HEAP32[$15>>2]|0;
$e = $16;
$17 = $0;
$18 = ((($17)) + 20|0);
$19 = HEAP32[$18>>2]|0;
$f = $19;
$20 = $0;
$21 = ((($20)) + 24|0);
$22 = HEAP32[$21>>2]|0;
$g = $22;
$23 = $0;
$24 = ((($23)) + 28|0);
$25 = HEAP32[$24>>2]|0;
$h = $25;
$i = 0;
$p2 = $x;
while(1) {
$26 = $i;
$27 = ($26|0)<(16);
if (!($27)) {
break;
}
$28 = $data;
$29 = ((($28)) + 1|0);
$data = $29;
$30 = HEAP8[$28>>0]|0;
$31 = $p2;
$32 = ((($31)) + 3|0);
HEAP8[$32>>0] = $30;
$33 = $data;
$34 = ((($33)) + 1|0);
$data = $34;
$35 = HEAP8[$33>>0]|0;
$36 = $p2;
$37 = ((($36)) + 2|0);
HEAP8[$37>>0] = $35;
$38 = $data;
$39 = ((($38)) + 1|0);
$data = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $p2;
$42 = ((($41)) + 1|0);
HEAP8[$42>>0] = $40;
$43 = $data;
$44 = ((($43)) + 1|0);
$data = $44;
$45 = HEAP8[$43>>0]|0;
$46 = $p2;
HEAP8[$46>>0] = $45;
$47 = $i;
$48 = (($47) + 1)|0;
$i = $48;
$49 = $p2;
$50 = ((($49)) + 4|0);
$p2 = $50;
}
$i = 0;
while(1) {
$51 = $i;
$52 = ($51|0)<(16);
if (!($52)) {
break;
}
$53 = $i;
$54 = (($x) + ($53<<2)|0);
$55 = HEAP32[$54>>2]|0;
$56 = $i;
$57 = (($w) + ($56<<2)|0);
HEAP32[$57>>2] = $55;
$58 = $i;
$59 = (($58) + 1)|0;
$i = $59;
}
while(1) {
$60 = $i;
$61 = ($60|0)<(64);
if (!($61)) {
break;
}
$62 = $i;
$63 = (($62) - 2)|0;
$64 = (($w) + ($63<<2)|0);
$65 = HEAP32[$64>>2]|0;
$66 = (_ror_1793($65,17)|0);
$67 = $i;
$68 = (($67) - 2)|0;
$69 = (($w) + ($68<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = (_ror_1793($70,19)|0);
$72 = $66 ^ $71;
$73 = $i;
$74 = (($73) - 2)|0;
$75 = (($w) + ($74<<2)|0);
$76 = HEAP32[$75>>2]|0;
$77 = $76 >>> 10;
$78 = $72 ^ $77;
$79 = $i;
$80 = (($79) - 7)|0;
$81 = (($w) + ($80<<2)|0);
$82 = HEAP32[$81>>2]|0;
$83 = (($78) + ($82))|0;
$84 = $i;
$85 = (($84) - 15)|0;
$86 = (($w) + ($85<<2)|0);
$87 = HEAP32[$86>>2]|0;
$88 = (_ror_1793($87,7)|0);
$89 = $i;
$90 = (($89) - 15)|0;
$91 = (($w) + ($90<<2)|0);
$92 = HEAP32[$91>>2]|0;
$93 = (_ror_1793($92,18)|0);
$94 = $88 ^ $93;
$95 = $i;
$96 = (($95) - 15)|0;
$97 = (($w) + ($96<<2)|0);
$98 = HEAP32[$97>>2]|0;
$99 = $98 >>> 3;
$100 = $94 ^ $99;
$101 = (($83) + ($100))|0;
$102 = $i;
$103 = (($102) - 16)|0;
$104 = (($w) + ($103<<2)|0);
$105 = HEAP32[$104>>2]|0;
$106 = (($101) + ($105))|0;
$107 = $i;
$108 = (($w) + ($107<<2)|0);
HEAP32[$108>>2] = $106;
$109 = $i;
$110 = (($109) + 1)|0;
$i = $110;
}
$i = 0;
while(1) {
$111 = $i;
$112 = ($111|0)<(64);
if (!($112)) {
break;
}
$113 = $h;
$114 = $e;
$115 = (_ror_1793($114,6)|0);
$116 = $e;
$117 = (_ror_1793($116,11)|0);
$118 = $115 ^ $117;
$119 = $e;
$120 = (_ror_1793($119,25)|0);
$121 = $118 ^ $120;
$122 = (($113) + ($121))|0;
$123 = $g;
$124 = $e;
$125 = $f;
$126 = $g;
$127 = $125 ^ $126;
$128 = $124 & $127;
$129 = $123 ^ $128;
$130 = (($122) + ($129))|0;
$131 = $i;
$132 = (12580 + ($131<<2)|0);
$133 = HEAP32[$132>>2]|0;
$134 = (($130) + ($133))|0;
$135 = $i;
$136 = (($w) + ($135<<2)|0);
$137 = HEAP32[$136>>2]|0;
$138 = (($134) + ($137))|0;
$t1 = $138;
$139 = $a;
$140 = (_ror_1793($139,2)|0);
$141 = $a;
$142 = (_ror_1793($141,13)|0);
$143 = $140 ^ $142;
$144 = $a;
$145 = (_ror_1793($144,22)|0);
$146 = $143 ^ $145;
$147 = $a;
$148 = $b;
$149 = $147 & $148;
$150 = $c;
$151 = $a;
$152 = $b;
$153 = $151 | $152;
$154 = $150 & $153;
$155 = $149 | $154;
$156 = (($146) + ($155))|0;
$t2 = $156;
$157 = $g;
$h = $157;
$158 = $f;
$g = $158;
$159 = $e;
$f = $159;
$160 = $d;
$161 = $t1;
$162 = (($160) + ($161))|0;
$e = $162;
$163 = $c;
$d = $163;
$164 = $b;
$c = $164;
$165 = $a;
$b = $165;
$166 = $t1;
$167 = $t2;
$168 = (($166) + ($167))|0;
$a = $168;
$169 = $i;
$170 = (($169) + 1)|0;
$i = $170;
}
$171 = $a;
$172 = $0;
$173 = HEAP32[$172>>2]|0;
$174 = (($173) + ($171))|0;
HEAP32[$172>>2] = $174;
$175 = $b;
$176 = $0;
$177 = ((($176)) + 4|0);
$178 = HEAP32[$177>>2]|0;
$179 = (($178) + ($175))|0;
HEAP32[$177>>2] = $179;
$180 = $c;
$181 = $0;
$182 = ((($181)) + 8|0);
$183 = HEAP32[$182>>2]|0;
$184 = (($183) + ($180))|0;
HEAP32[$182>>2] = $184;
$185 = $d;
$186 = $0;
$187 = ((($186)) + 12|0);
$188 = HEAP32[$187>>2]|0;
$189 = (($188) + ($185))|0;
HEAP32[$187>>2] = $189;
$190 = $e;
$191 = $0;
$192 = ((($191)) + 16|0);
$193 = HEAP32[$192>>2]|0;
$194 = (($193) + ($190))|0;
HEAP32[$192>>2] = $194;
$195 = $f;
$196 = $0;
$197 = ((($196)) + 20|0);
$198 = HEAP32[$197>>2]|0;
$199 = (($198) + ($195))|0;
HEAP32[$197>>2] = $199;
$200 = $g;
$201 = $0;
$202 = ((($201)) + 24|0);
$203 = HEAP32[$202>>2]|0;
$204 = (($203) + ($200))|0;
HEAP32[$202>>2] = $204;
$205 = $h;
$206 = $0;
$207 = ((($206)) + 28|0);
$208 = HEAP32[$207>>2]|0;
$209 = (($208) + ($205))|0;
HEAP32[$207>>2] = $209;
STACKTOP = sp;return;
}
function _ror_1793($x,$n) {
$x = $x|0;
$n = $n|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $n;
$2 = $0;
$3 = $1;
$4 = $2 >>> $3;
$5 = $0;
$6 = $1;
$7 = (32 - ($6))|0;
$8 = $5 << $7;
$9 = $4 | $8;
STACKTOP = sp;return ($9|0);
}
function _finalize($hd) {
$hd = $hd|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $lsb = 0, $msb = 0;
var $p = 0, $t = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $hd;
$1 = $0;
$2 = ((($1)) + 40|0);
$3 = HEAP8[$2>>0]|0;
$4 = ($3 << 7)&255;
$5 = ($4<<24>>24) >> 7;
$6 = $5 << 24 >> 24;
$7 = ($6|0)!=(0);
if ($7) {
STACKTOP = sp;return;
}
$8 = $0;
__gcry_hmac256_update($8,0,0);
$9 = $0;
$10 = ((($9)) + 32|0);
$11 = HEAP32[$10>>2]|0;
$t = $11;
$12 = $t;
$13 = $12 << 6;
$lsb = $13;
$14 = $t;
$15 = $14 >>> 26;
$msb = $15;
$16 = $lsb;
$t = $16;
$17 = $0;
$18 = ((($17)) + 36|0);
$19 = HEAP32[$18>>2]|0;
$20 = $lsb;
$21 = (($20) + ($19))|0;
$lsb = $21;
$22 = $t;
$23 = ($21>>>0)<($22>>>0);
if ($23) {
$24 = $msb;
$25 = (($24) + 1)|0;
$msb = $25;
}
$26 = $lsb;
$t = $26;
$27 = $lsb;
$28 = $27 << 3;
$lsb = $28;
$29 = $msb;
$30 = $29 << 3;
$msb = $30;
$31 = $t;
$32 = $31 >>> 29;
$33 = $msb;
$34 = $33 | $32;
$msb = $34;
$35 = $0;
$36 = ((($35)) + 36|0);
$37 = HEAP32[$36>>2]|0;
$38 = ($37|0)<(56);
$39 = $0;
$40 = ((($39)) + 36|0);
$41 = HEAP32[$40>>2]|0;
$42 = (($41) + 1)|0;
HEAP32[$40>>2] = $42;
$43 = $0;
$44 = ((($43)) + 41|0);
$45 = (($44) + ($41)|0);
HEAP8[$45>>0] = -128;
L7: do {
if ($38) {
while(1) {
$46 = $0;
$47 = ((($46)) + 36|0);
$48 = HEAP32[$47>>2]|0;
$49 = ($48|0)<(56);
if (!($49)) {
break L7;
}
$50 = $0;
$51 = ((($50)) + 36|0);
$52 = HEAP32[$51>>2]|0;
$53 = (($52) + 1)|0;
HEAP32[$51>>2] = $53;
$54 = $0;
$55 = ((($54)) + 41|0);
$56 = (($55) + ($52)|0);
HEAP8[$56>>0] = 0;
}
} else {
while(1) {
$57 = $0;
$58 = ((($57)) + 36|0);
$59 = HEAP32[$58>>2]|0;
$60 = ($59|0)<(64);
$61 = $0;
if (!($60)) {
break;
}
$62 = ((($61)) + 36|0);
$63 = HEAP32[$62>>2]|0;
$64 = (($63) + 1)|0;
HEAP32[$62>>2] = $64;
$65 = $0;
$66 = ((($65)) + 41|0);
$67 = (($66) + ($63)|0);
HEAP8[$67>>0] = 0;
}
__gcry_hmac256_update($61,0,0);
$68 = $0;
$69 = ((($68)) + 41|0);
dest=$69; stop=dest+56|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
}
} while(0);
$70 = $msb;
$71 = $70 >>> 24;
$72 = $71&255;
$73 = $0;
$74 = ((($73)) + 41|0);
$75 = ((($74)) + 56|0);
HEAP8[$75>>0] = $72;
$76 = $msb;
$77 = $76 >>> 16;
$78 = $77&255;
$79 = $0;
$80 = ((($79)) + 41|0);
$81 = ((($80)) + 57|0);
HEAP8[$81>>0] = $78;
$82 = $msb;
$83 = $82 >>> 8;
$84 = $83&255;
$85 = $0;
$86 = ((($85)) + 41|0);
$87 = ((($86)) + 58|0);
HEAP8[$87>>0] = $84;
$88 = $msb;
$89 = $88&255;
$90 = $0;
$91 = ((($90)) + 41|0);
$92 = ((($91)) + 59|0);
HEAP8[$92>>0] = $89;
$93 = $lsb;
$94 = $93 >>> 24;
$95 = $94&255;
$96 = $0;
$97 = ((($96)) + 41|0);
$98 = ((($97)) + 60|0);
HEAP8[$98>>0] = $95;
$99 = $lsb;
$100 = $99 >>> 16;
$101 = $100&255;
$102 = $0;
$103 = ((($102)) + 41|0);
$104 = ((($103)) + 61|0);
HEAP8[$104>>0] = $101;
$105 = $lsb;
$106 = $105 >>> 8;
$107 = $106&255;
$108 = $0;
$109 = ((($108)) + 41|0);
$110 = ((($109)) + 62|0);
HEAP8[$110>>0] = $107;
$111 = $lsb;
$112 = $111&255;
$113 = $0;
$114 = ((($113)) + 41|0);
$115 = ((($114)) + 63|0);
HEAP8[$115>>0] = $112;
$116 = $0;
$117 = $0;
$118 = ((($117)) + 41|0);
_transform_1792($116,$118);
$119 = $0;
$120 = ((($119)) + 41|0);
$p = $120;
$121 = $0;
$122 = HEAP32[$121>>2]|0;
$123 = $122 >>> 24;
$124 = $123&255;
$125 = $p;
$126 = ((($125)) + 1|0);
$p = $126;
HEAP8[$125>>0] = $124;
$127 = $0;
$128 = HEAP32[$127>>2]|0;
$129 = $128 >>> 16;
$130 = $129&255;
$131 = $p;
$132 = ((($131)) + 1|0);
$p = $132;
HEAP8[$131>>0] = $130;
$133 = $0;
$134 = HEAP32[$133>>2]|0;
$135 = $134 >>> 8;
$136 = $135&255;
$137 = $p;
$138 = ((($137)) + 1|0);
$p = $138;
HEAP8[$137>>0] = $136;
$139 = $0;
$140 = HEAP32[$139>>2]|0;
$141 = $140&255;
$142 = $p;
$143 = ((($142)) + 1|0);
$p = $143;
HEAP8[$142>>0] = $141;
$144 = $0;
$145 = ((($144)) + 4|0);
$146 = HEAP32[$145>>2]|0;
$147 = $146 >>> 24;
$148 = $147&255;
$149 = $p;
$150 = ((($149)) + 1|0);
$p = $150;
HEAP8[$149>>0] = $148;
$151 = $0;
$152 = ((($151)) + 4|0);
$153 = HEAP32[$152>>2]|0;
$154 = $153 >>> 16;
$155 = $154&255;
$156 = $p;
$157 = ((($156)) + 1|0);
$p = $157;
HEAP8[$156>>0] = $155;
$158 = $0;
$159 = ((($158)) + 4|0);
$160 = HEAP32[$159>>2]|0;
$161 = $160 >>> 8;
$162 = $161&255;
$163 = $p;
$164 = ((($163)) + 1|0);
$p = $164;
HEAP8[$163>>0] = $162;
$165 = $0;
$166 = ((($165)) + 4|0);
$167 = HEAP32[$166>>2]|0;
$168 = $167&255;
$169 = $p;
$170 = ((($169)) + 1|0);
$p = $170;
HEAP8[$169>>0] = $168;
$171 = $0;
$172 = ((($171)) + 8|0);
$173 = HEAP32[$172>>2]|0;
$174 = $173 >>> 24;
$175 = $174&255;
$176 = $p;
$177 = ((($176)) + 1|0);
$p = $177;
HEAP8[$176>>0] = $175;
$178 = $0;
$179 = ((($178)) + 8|0);
$180 = HEAP32[$179>>2]|0;
$181 = $180 >>> 16;
$182 = $181&255;
$183 = $p;
$184 = ((($183)) + 1|0);
$p = $184;
HEAP8[$183>>0] = $182;
$185 = $0;
$186 = ((($185)) + 8|0);
$187 = HEAP32[$186>>2]|0;
$188 = $187 >>> 8;
$189 = $188&255;
$190 = $p;
$191 = ((($190)) + 1|0);
$p = $191;
HEAP8[$190>>0] = $189;
$192 = $0;
$193 = ((($192)) + 8|0);
$194 = HEAP32[$193>>2]|0;
$195 = $194&255;
$196 = $p;
$197 = ((($196)) + 1|0);
$p = $197;
HEAP8[$196>>0] = $195;
$198 = $0;
$199 = ((($198)) + 12|0);
$200 = HEAP32[$199>>2]|0;
$201 = $200 >>> 24;
$202 = $201&255;
$203 = $p;
$204 = ((($203)) + 1|0);
$p = $204;
HEAP8[$203>>0] = $202;
$205 = $0;
$206 = ((($205)) + 12|0);
$207 = HEAP32[$206>>2]|0;
$208 = $207 >>> 16;
$209 = $208&255;
$210 = $p;
$211 = ((($210)) + 1|0);
$p = $211;
HEAP8[$210>>0] = $209;
$212 = $0;
$213 = ((($212)) + 12|0);
$214 = HEAP32[$213>>2]|0;
$215 = $214 >>> 8;
$216 = $215&255;
$217 = $p;
$218 = ((($217)) + 1|0);
$p = $218;
HEAP8[$217>>0] = $216;
$219 = $0;
$220 = ((($219)) + 12|0);
$221 = HEAP32[$220>>2]|0;
$222 = $221&255;
$223 = $p;
$224 = ((($223)) + 1|0);
$p = $224;
HEAP8[$223>>0] = $222;
$225 = $0;
$226 = ((($225)) + 16|0);
$227 = HEAP32[$226>>2]|0;
$228 = $227 >>> 24;
$229 = $228&255;
$230 = $p;
$231 = ((($230)) + 1|0);
$p = $231;
HEAP8[$230>>0] = $229;
$232 = $0;
$233 = ((($232)) + 16|0);
$234 = HEAP32[$233>>2]|0;
$235 = $234 >>> 16;
$236 = $235&255;
$237 = $p;
$238 = ((($237)) + 1|0);
$p = $238;
HEAP8[$237>>0] = $236;
$239 = $0;
$240 = ((($239)) + 16|0);
$241 = HEAP32[$240>>2]|0;
$242 = $241 >>> 8;
$243 = $242&255;
$244 = $p;
$245 = ((($244)) + 1|0);
$p = $245;
HEAP8[$244>>0] = $243;
$246 = $0;
$247 = ((($246)) + 16|0);
$248 = HEAP32[$247>>2]|0;
$249 = $248&255;
$250 = $p;
$251 = ((($250)) + 1|0);
$p = $251;
HEAP8[$250>>0] = $249;
$252 = $0;
$253 = ((($252)) + 20|0);
$254 = HEAP32[$253>>2]|0;
$255 = $254 >>> 24;
$256 = $255&255;
$257 = $p;
$258 = ((($257)) + 1|0);
$p = $258;
HEAP8[$257>>0] = $256;
$259 = $0;
$260 = ((($259)) + 20|0);
$261 = HEAP32[$260>>2]|0;
$262 = $261 >>> 16;
$263 = $262&255;
$264 = $p;
$265 = ((($264)) + 1|0);
$p = $265;
HEAP8[$264>>0] = $263;
$266 = $0;
$267 = ((($266)) + 20|0);
$268 = HEAP32[$267>>2]|0;
$269 = $268 >>> 8;
$270 = $269&255;
$271 = $p;
$272 = ((($271)) + 1|0);
$p = $272;
HEAP8[$271>>0] = $270;
$273 = $0;
$274 = ((($273)) + 20|0);
$275 = HEAP32[$274>>2]|0;
$276 = $275&255;
$277 = $p;
$278 = ((($277)) + 1|0);
$p = $278;
HEAP8[$277>>0] = $276;
$279 = $0;
$280 = ((($279)) + 24|0);
$281 = HEAP32[$280>>2]|0;
$282 = $281 >>> 24;
$283 = $282&255;
$284 = $p;
$285 = ((($284)) + 1|0);
$p = $285;
HEAP8[$284>>0] = $283;
$286 = $0;
$287 = ((($286)) + 24|0);
$288 = HEAP32[$287>>2]|0;
$289 = $288 >>> 16;
$290 = $289&255;
$291 = $p;
$292 = ((($291)) + 1|0);
$p = $292;
HEAP8[$291>>0] = $290;
$293 = $0;
$294 = ((($293)) + 24|0);
$295 = HEAP32[$294>>2]|0;
$296 = $295 >>> 8;
$297 = $296&255;
$298 = $p;
$299 = ((($298)) + 1|0);
$p = $299;
HEAP8[$298>>0] = $297;
$300 = $0;
$301 = ((($300)) + 24|0);
$302 = HEAP32[$301>>2]|0;
$303 = $302&255;
$304 = $p;
$305 = ((($304)) + 1|0);
$p = $305;
HEAP8[$304>>0] = $303;
$306 = $0;
$307 = ((($306)) + 28|0);
$308 = HEAP32[$307>>2]|0;
$309 = $308 >>> 24;
$310 = $309&255;
$311 = $p;
$312 = ((($311)) + 1|0);
$p = $312;
HEAP8[$311>>0] = $310;
$313 = $0;
$314 = ((($313)) + 28|0);
$315 = HEAP32[$314>>2]|0;
$316 = $315 >>> 16;
$317 = $316&255;
$318 = $p;
$319 = ((($318)) + 1|0);
$p = $319;
HEAP8[$318>>0] = $317;
$320 = $0;
$321 = ((($320)) + 28|0);
$322 = HEAP32[$321>>2]|0;
$323 = $322 >>> 8;
$324 = $323&255;
$325 = $p;
$326 = ((($325)) + 1|0);
$p = $326;
HEAP8[$325>>0] = $324;
$327 = $0;
$328 = ((($327)) + 28|0);
$329 = HEAP32[$328>>2]|0;
$330 = $329&255;
$331 = $p;
$332 = ((($331)) + 1|0);
$p = $332;
HEAP8[$331>>0] = $330;
$333 = $0;
$334 = ((($333)) + 40|0);
$335 = HEAP8[$334>>0]|0;
$336 = $335 & -2;
$337 = $336 | 1;
HEAP8[$334>>0] = $337;
STACKTOP = sp;return;
}
function __gcry_hmac256_release($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $_vlen = 0, $_vptr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
STACKTOP = sp;return;
}
$3 = $0;
$4 = ((($3)) + 40|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5 << 6)&255;
$7 = ($6<<24>>24) >> 7;
$8 = $7 << 24 >> 24;
$9 = ($8|0)!=(0);
L4: do {
if ($9) {
$10 = $0;
$11 = ((($10)) + 105|0);
$_vptr = $11;
$_vlen = 64;
while(1) {
$12 = $_vlen;
$13 = ($12|0)!=(0);
if (!($13)) {
break L4;
}
$14 = $_vptr;
HEAP8[$14>>0] = 0;
$15 = $_vptr;
$16 = ((($15)) + 1|0);
$_vptr = $16;
$17 = $_vlen;
$18 = (($17) + -1)|0;
$_vlen = $18;
}
}
} while(0);
$19 = $0;
_free($19);
STACKTOP = sp;return;
}
function __gcry_hmac256_finalize($hd,$r_dlen) {
$hd = $hd|0;
$r_dlen = $r_dlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tmphd = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $hd;
$2 = $r_dlen;
$3 = $1;
_finalize($3);
$4 = $1;
$5 = ((($4)) + 40|0);
$6 = HEAP8[$5>>0]|0;
$7 = ($6 << 6)&255;
$8 = ($7<<24>>24) >> 7;
$9 = $8 << 24 >> 24;
$10 = ($9|0)!=(0);
do {
if ($10) {
$11 = (__gcry_hmac256_new(0,0)|0);
$tmphd = $11;
$12 = $tmphd;
$13 = ($12|0)!=(0|0);
if ($13) {
$15 = $tmphd;
$16 = $1;
$17 = ((($16)) + 105|0);
__gcry_hmac256_update($15,$17,64);
$18 = $tmphd;
$19 = $1;
$20 = ((($19)) + 41|0);
__gcry_hmac256_update($18,$20,32);
$21 = $tmphd;
_finalize($21);
$22 = $1;
$23 = ((($22)) + 41|0);
$24 = $tmphd;
$25 = ((($24)) + 41|0);
dest=$23; src=$25; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$26 = $tmphd;
__gcry_hmac256_release($26);
break;
}
$14 = $1;
_free($14);
$0 = 0;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
} while(0);
$27 = $2;
$28 = ($27|0)!=(0|0);
if ($28) {
$29 = $2;
HEAP32[$29>>2] = 32;
}
$30 = $1;
$31 = ((($30)) + 41|0);
$0 = $31;
$32 = $0;
STACKTOP = sp;return ($32|0);
}
function __gcry_cipher_aeswrap_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $a = 0;
var $b = 0, $burn = 0, $i = 0, $j = 0, $n = 0, $nburn = 0, $r = 0, $t = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$t = sp + 64|0;
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(16);
if ($11) {
$0 = 139;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$12 = $3;
$13 = $5;
$14 = (($13) + 8)|0;
$15 = ($12>>>0)<($14>>>0);
if ($15) {
$0 = 200;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$16 = $5;
$17 = (($16>>>0) % 8)&-1;
$18 = ($17|0)!=(0);
if ($18) {
$0 = 45;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$19 = $5;
$20 = (($19>>>0) / 8)&-1;
$n = $20;
$21 = $n;
$22 = ($21>>>0)<(2);
if ($22) {
$0 = 45;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$burn = 0;
$23 = $2;
$r = $23;
$24 = $2;
$a = $24;
$25 = $1;
$26 = ((($25)) + 80|0);
$b = $26;
$27 = $1;
$28 = ((($27)) + 56|0);
$29 = HEAP8[$28>>0]|0;
$30 = ($29&255) >>> 1;
$31 = $30 & 1;
$32 = $31&255;
$33 = ($32|0)!=(0);
$34 = $a;
if ($33) {
$35 = $1;
$36 = ((($35)) + 64|0);
;HEAP8[$34>>0]=HEAP8[$36>>0]|0;HEAP8[$34+1>>0]=HEAP8[$36+1>>0]|0;HEAP8[$34+2>>0]=HEAP8[$36+2>>0]|0;HEAP8[$34+3>>0]=HEAP8[$36+3>>0]|0;HEAP8[$34+4>>0]=HEAP8[$36+4>>0]|0;HEAP8[$34+5>>0]=HEAP8[$36+5>>0]|0;HEAP8[$34+6>>0]=HEAP8[$36+6>>0]|0;HEAP8[$34+7>>0]=HEAP8[$36+7>>0]|0;
} else {
;HEAP8[$34>>0]=166|0;HEAP8[$34+1>>0]=166|0;HEAP8[$34+2>>0]=166|0;HEAP8[$34+3>>0]=166|0;HEAP8[$34+4>>0]=166|0;HEAP8[$34+5>>0]=166|0;HEAP8[$34+6>>0]=166|0;HEAP8[$34+7>>0]=166|0;
}
$37 = $r;
$38 = ((($37)) + 8|0);
$39 = $4;
$40 = $5;
_memmove(($38|0),($39|0),($40|0))|0;
;HEAP8[$t>>0]=0|0;HEAP8[$t+1>>0]=0|0;HEAP8[$t+2>>0]=0|0;HEAP8[$t+3>>0]=0|0;HEAP8[$t+4>>0]=0|0;HEAP8[$t+5>>0]=0|0;HEAP8[$t+6>>0]=0|0;HEAP8[$t+7>>0]=0|0;
$j = 0;
while(1) {
$41 = $j;
$42 = ($41|0)<=(5);
if (!($42)) {
break;
}
$i = 1;
while(1) {
$43 = $i;
$44 = $n;
$45 = ($43>>>0)<=($44>>>0);
if (!($45)) {
break;
}
$46 = $b;
$47 = $a;
;HEAP8[$46>>0]=HEAP8[$47>>0]|0;HEAP8[$46+1>>0]=HEAP8[$47+1>>0]|0;HEAP8[$46+2>>0]=HEAP8[$47+2>>0]|0;HEAP8[$46+3>>0]=HEAP8[$47+3>>0]|0;HEAP8[$46+4>>0]=HEAP8[$47+4>>0]|0;HEAP8[$46+5>>0]=HEAP8[$47+5>>0]|0;HEAP8[$46+6>>0]=HEAP8[$47+6>>0]|0;HEAP8[$46+7>>0]=HEAP8[$47+7>>0]|0;
$48 = $b;
$49 = ((($48)) + 8|0);
$50 = $r;
$51 = $i;
$52 = $51<<3;
$53 = (($50) + ($52)|0);
;HEAP8[$49>>0]=HEAP8[$53>>0]|0;HEAP8[$49+1>>0]=HEAP8[$53+1>>0]|0;HEAP8[$49+2>>0]=HEAP8[$53+2>>0]|0;HEAP8[$49+3>>0]=HEAP8[$53+3>>0]|0;HEAP8[$49+4>>0]=HEAP8[$53+4>>0]|0;HEAP8[$49+5>>0]=HEAP8[$53+5>>0]|0;HEAP8[$49+6>>0]=HEAP8[$53+6>>0]|0;HEAP8[$49+7>>0]=HEAP8[$53+7>>0]|0;
$54 = $1;
$55 = ((($54)) + 12|0);
$56 = HEAP32[$55>>2]|0;
$57 = ((($56)) + 36|0);
$58 = HEAP32[$57>>2]|0;
$59 = $1;
$60 = ((($59)) + 496|0);
$61 = $b;
$62 = $b;
$63 = (FUNCTION_TABLE_iiii[$58 & 127]($60,$61,$62)|0);
$nburn = $63;
$64 = $nburn;
$65 = $burn;
$66 = ($64>>>0)>($65>>>0);
$67 = $nburn;
$68 = $burn;
$69 = $66 ? $67 : $68;
$burn = $69;
$x = 7;
while(1) {
$70 = $x;
$71 = ($70|0)>=(0);
if (!($71)) {
break;
}
$72 = $x;
$73 = (($t) + ($72)|0);
$74 = HEAP8[$73>>0]|0;
$75 = (($74) + 1)<<24>>24;
HEAP8[$73>>0] = $75;
$76 = $x;
$77 = (($t) + ($76)|0);
$78 = HEAP8[$77>>0]|0;
$79 = ($78<<24>>24)!=(0);
if ($79) {
break;
}
$80 = $x;
$81 = (($80) + -1)|0;
$x = $81;
}
$82 = $a;
$83 = $b;
_buf_xor_1801($82,$83,$t,8);
$84 = $r;
$85 = $i;
$86 = $85<<3;
$87 = (($84) + ($86)|0);
$88 = $b;
$89 = ((($88)) + 8|0);
;HEAP8[$87>>0]=HEAP8[$89>>0]|0;HEAP8[$87+1>>0]=HEAP8[$89+1>>0]|0;HEAP8[$87+2>>0]=HEAP8[$89+2>>0]|0;HEAP8[$87+3>>0]=HEAP8[$89+3>>0]|0;HEAP8[$87+4>>0]=HEAP8[$89+4>>0]|0;HEAP8[$87+5>>0]=HEAP8[$89+5>>0]|0;HEAP8[$87+6>>0]=HEAP8[$89+6>>0]|0;HEAP8[$87+7>>0]=HEAP8[$89+7>>0]|0;
$90 = $i;
$91 = (($90) + 1)|0;
$i = $91;
}
$92 = $j;
$93 = (($92) + 1)|0;
$j = $93;
}
$94 = $burn;
$95 = ($94>>>0)>(0);
if ($95) {
$96 = $burn;
$97 = (($96) + 16)|0;
___gcry_burn_stack($97);
___gcry_burn_stack_dummy();
}
$0 = 0;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
function _buf_xor_1801($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function __gcry_cipher_aeswrap_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a = 0, $b = 0, $burn = 0, $i = 0, $j = 0, $n = 0, $nburn = 0, $r = 0, $t = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$t = sp + 64|0;
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(16);
if ($11) {
$0 = 139;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$12 = $3;
$13 = (($12) + 8)|0;
$14 = $5;
$15 = ($13>>>0)<($14>>>0);
if ($15) {
$0 = 200;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$16 = $5;
$17 = (($16>>>0) % 8)&-1;
$18 = ($17|0)!=(0);
if ($18) {
$0 = 45;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$19 = $5;
$20 = (($19>>>0) / 8)&-1;
$n = $20;
$21 = $n;
$22 = ($21>>>0)<(3);
if ($22) {
$0 = 45;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
$burn = 0;
$23 = $2;
$r = $23;
$24 = $1;
$25 = ((($24)) + 96|0);
$a = $25;
$26 = $1;
$27 = ((($26)) + 80|0);
$b = $27;
$28 = $a;
$29 = $4;
;HEAP8[$28>>0]=HEAP8[$29>>0]|0;HEAP8[$28+1>>0]=HEAP8[$29+1>>0]|0;HEAP8[$28+2>>0]=HEAP8[$29+2>>0]|0;HEAP8[$28+3>>0]=HEAP8[$29+3>>0]|0;HEAP8[$28+4>>0]=HEAP8[$29+4>>0]|0;HEAP8[$28+5>>0]=HEAP8[$29+5>>0]|0;HEAP8[$28+6>>0]=HEAP8[$29+6>>0]|0;HEAP8[$28+7>>0]=HEAP8[$29+7>>0]|0;
$30 = $r;
$31 = $4;
$32 = ((($31)) + 8|0);
$33 = $5;
$34 = (($33) - 8)|0;
_memmove(($30|0),($32|0),($34|0))|0;
$35 = $n;
$36 = (($35) + -1)|0;
$n = $36;
$37 = $n;
$38 = ($37*6)|0;
$i = $38;
$x = 0;
while(1) {
$39 = $x;
$40 = ($39|0)<(8);
$41 = $x;
$42 = ($41>>>0)<(4);
$43 = $40 ? $42 : 0;
if (!($43)) {
break;
}
$44 = $i;
$45 = $x;
$46 = $45<<3;
$47 = $44 >>> $46;
$48 = $47&255;
$49 = $x;
$50 = (7 - ($49))|0;
$51 = (($t) + ($50)|0);
HEAP8[$51>>0] = $48;
$52 = $x;
$53 = (($52) + 1)|0;
$x = $53;
}
while(1) {
$54 = $x;
$55 = ($54|0)<(8);
if (!($55)) {
break;
}
$56 = $x;
$57 = (7 - ($56))|0;
$58 = (($t) + ($57)|0);
HEAP8[$58>>0] = 0;
$59 = $x;
$60 = (($59) + 1)|0;
$x = $60;
}
$j = 5;
while(1) {
$61 = $j;
$62 = ($61|0)>=(0);
if (!($62)) {
break;
}
$63 = $n;
$i = $63;
while(1) {
$64 = $i;
$65 = ($64>>>0)>=(1);
if (!($65)) {
break;
}
$66 = $b;
$67 = $a;
_buf_xor_1801($66,$67,$t,8);
$68 = $b;
$69 = ((($68)) + 8|0);
$70 = $r;
$71 = $i;
$72 = (($71) - 1)|0;
$73 = $72<<3;
$74 = (($70) + ($73)|0);
;HEAP8[$69>>0]=HEAP8[$74>>0]|0;HEAP8[$69+1>>0]=HEAP8[$74+1>>0]|0;HEAP8[$69+2>>0]=HEAP8[$74+2>>0]|0;HEAP8[$69+3>>0]=HEAP8[$74+3>>0]|0;HEAP8[$69+4>>0]=HEAP8[$74+4>>0]|0;HEAP8[$69+5>>0]=HEAP8[$74+5>>0]|0;HEAP8[$69+6>>0]=HEAP8[$74+6>>0]|0;HEAP8[$69+7>>0]=HEAP8[$74+7>>0]|0;
$75 = $1;
$76 = ((($75)) + 12|0);
$77 = HEAP32[$76>>2]|0;
$78 = ((($77)) + 40|0);
$79 = HEAP32[$78>>2]|0;
$80 = $1;
$81 = ((($80)) + 496|0);
$82 = $b;
$83 = $b;
$84 = (FUNCTION_TABLE_iiii[$79 & 127]($81,$82,$83)|0);
$nburn = $84;
$85 = $nburn;
$86 = $burn;
$87 = ($85>>>0)>($86>>>0);
$88 = $nburn;
$89 = $burn;
$90 = $87 ? $88 : $89;
$burn = $90;
$x = 7;
while(1) {
$91 = $x;
$92 = ($91|0)>=(0);
if (!($92)) {
break;
}
$93 = $x;
$94 = (($t) + ($93)|0);
$95 = HEAP8[$94>>0]|0;
$96 = (($95) + -1)<<24>>24;
HEAP8[$94>>0] = $96;
$97 = $x;
$98 = (($t) + ($97)|0);
$99 = HEAP8[$98>>0]|0;
$100 = $99&255;
$101 = ($100|0)!=(255);
if ($101) {
break;
}
$102 = $x;
$103 = (($102) + -1)|0;
$x = $103;
}
$104 = $a;
$105 = $b;
;HEAP8[$104>>0]=HEAP8[$105>>0]|0;HEAP8[$104+1>>0]=HEAP8[$105+1>>0]|0;HEAP8[$104+2>>0]=HEAP8[$105+2>>0]|0;HEAP8[$104+3>>0]=HEAP8[$105+3>>0]|0;HEAP8[$104+4>>0]=HEAP8[$105+4>>0]|0;HEAP8[$104+5>>0]=HEAP8[$105+5>>0]|0;HEAP8[$104+6>>0]=HEAP8[$105+6>>0]|0;HEAP8[$104+7>>0]=HEAP8[$105+7>>0]|0;
$106 = $r;
$107 = $i;
$108 = (($107) - 1)|0;
$109 = $108<<3;
$110 = (($106) + ($109)|0);
$111 = $b;
$112 = ((($111)) + 8|0);
;HEAP8[$110>>0]=HEAP8[$112>>0]|0;HEAP8[$110+1>>0]=HEAP8[$112+1>>0]|0;HEAP8[$110+2>>0]=HEAP8[$112+2>>0]|0;HEAP8[$110+3>>0]=HEAP8[$112+3>>0]|0;HEAP8[$110+4>>0]=HEAP8[$112+4>>0]|0;HEAP8[$110+5>>0]=HEAP8[$112+5>>0]|0;HEAP8[$110+6>>0]=HEAP8[$112+6>>0]|0;HEAP8[$110+7>>0]=HEAP8[$112+7>>0]|0;
$113 = $i;
$114 = (($113) + -1)|0;
$i = $114;
}
$115 = $j;
$116 = (($115) + -1)|0;
$j = $116;
}
$117 = $1;
$118 = ((($117)) + 56|0);
$119 = HEAP8[$118>>0]|0;
$120 = ($119&255) >>> 1;
$121 = $120 & 1;
$122 = $121&255;
$123 = ($122|0)!=(0);
L37: do {
if ($123) {
$124 = $a;
$125 = $1;
$126 = ((($125)) + 64|0);
$127 = (_memcmp($124,$126,8)|0);
$j = $127;
} else {
$j = 0;
$x = 0;
while(1) {
$128 = $x;
$129 = ($128|0)<(8);
if (!($129)) {
break L37;
}
$130 = $x;
$131 = $a;
$132 = (($131) + ($130)|0);
$133 = HEAP8[$132>>0]|0;
$134 = $133&255;
$135 = ($134|0)!=(166);
if ($135) {
break;
}
$136 = $x;
$137 = (($136) + 1)|0;
$x = $137;
}
$j = 1;
}
} while(0);
$138 = $burn;
$139 = ($138>>>0)>(0);
if ($139) {
$140 = $burn;
$141 = (($140) + 16)|0;
___gcry_burn_stack($141);
___gcry_burn_stack_dummy();
}
$142 = $j;
$143 = ($142|0)!=(0);
$144 = $143 ? 10 : 0;
$0 = $144;
$145 = $0;
STACKTOP = sp;return ($145|0);
}
function __gcry_cipher_cbc_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $b = 0, $blocksize = 0;
var $burn = 0, $enc_fn = 0, $i = 0, $ivp = 0, $n = 0, $nblocks = 0, $nburn = 0, $restbytes = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
$blocksize = $10;
$11 = $1;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 36|0);
$15 = HEAP32[$14>>2]|0;
$enc_fn = $15;
$16 = $5;
$17 = $blocksize;
$18 = (($16>>>0) / ($17>>>0))&-1;
$nblocks = $18;
$19 = $3;
$20 = $1;
$21 = ((($20)) + 52|0);
$22 = HEAP32[$21>>2]|0;
$23 = $22 & 8;
$24 = ($23|0)!=(0);
$25 = $blocksize;
$26 = $5;
$27 = $24 ? $25 : $26;
$28 = ($19>>>0)<($27>>>0);
if ($28) {
$0 = 200;
$217 = $0;
STACKTOP = sp;return ($217|0);
}
$29 = $5;
$30 = $blocksize;
$31 = (($29>>>0) % ($30>>>0))&-1;
$32 = ($31|0)!=(0);
do {
if ($32) {
$33 = $5;
$34 = $blocksize;
$35 = ($33>>>0)>($34>>>0);
if ($35) {
$36 = $1;
$37 = ((($36)) + 52|0);
$38 = HEAP32[$37>>2]|0;
$39 = $38 & 4;
$40 = ($39|0)!=(0);
if ($40) {
break;
}
}
$0 = 139;
$217 = $0;
STACKTOP = sp;return ($217|0);
}
} while(0);
$burn = 0;
$41 = $1;
$42 = ((($41)) + 52|0);
$43 = HEAP32[$42>>2]|0;
$44 = $43 & 4;
$45 = ($44|0)!=(0);
if ($45) {
$46 = $5;
$47 = $blocksize;
$48 = ($46>>>0)>($47>>>0);
if ($48) {
$49 = $5;
$50 = $blocksize;
$51 = (($49>>>0) % ($50>>>0))&-1;
$52 = ($51|0)==(0);
if ($52) {
$53 = $nblocks;
$54 = (($53) + -1)|0;
$nblocks = $54;
}
}
}
$55 = $1;
$56 = ((($55)) + 20|0);
$57 = ((($56)) + 8|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)!=(0|0);
$60 = $1;
if ($59) {
$61 = ((($60)) + 20|0);
$62 = ((($61)) + 8|0);
$63 = HEAP32[$62>>2]|0;
$64 = $1;
$65 = ((($64)) + 496|0);
$66 = $1;
$67 = ((($66)) + 64|0);
$68 = $2;
$69 = $4;
$70 = $nblocks;
$71 = $1;
$72 = ((($71)) + 52|0);
$73 = HEAP32[$72>>2]|0;
$74 = $73 & 8;
FUNCTION_TABLE_viiiiii[$63 & 63]($65,$67,$68,$69,$70,$74);
$75 = $nblocks;
$76 = $blocksize;
$77 = Math_imul($75, $76)|0;
$78 = $4;
$79 = (($78) + ($77)|0);
$4 = $79;
$80 = $1;
$81 = ((($80)) + 52|0);
$82 = HEAP32[$81>>2]|0;
$83 = $82 & 8;
$84 = ($83|0)!=(0);
if (!($84)) {
$85 = $nblocks;
$86 = $blocksize;
$87 = Math_imul($85, $86)|0;
$88 = $2;
$89 = (($88) + ($87)|0);
$2 = $89;
}
} else {
$90 = ((($60)) + 64|0);
$ivp = $90;
$n = 0;
while(1) {
$91 = $n;
$92 = $nblocks;
$93 = ($91>>>0)<($92>>>0);
if (!($93)) {
break;
}
$94 = $2;
$95 = $4;
$96 = $ivp;
$97 = $blocksize;
_buf_xor_1806($94,$95,$96,$97);
$98 = $enc_fn;
$99 = $1;
$100 = ((($99)) + 496|0);
$101 = $2;
$102 = $2;
$103 = (FUNCTION_TABLE_iiii[$98 & 127]($100,$101,$102)|0);
$nburn = $103;
$104 = $nburn;
$105 = $burn;
$106 = ($104>>>0)>($105>>>0);
$107 = $nburn;
$108 = $burn;
$109 = $106 ? $107 : $108;
$burn = $109;
$110 = $2;
$ivp = $110;
$111 = $blocksize;
$112 = $4;
$113 = (($112) + ($111)|0);
$4 = $113;
$114 = $1;
$115 = ((($114)) + 52|0);
$116 = HEAP32[$115>>2]|0;
$117 = $116 & 8;
$118 = ($117|0)!=(0);
if (!($118)) {
$119 = $blocksize;
$120 = $2;
$121 = (($120) + ($119)|0);
$2 = $121;
}
$122 = $n;
$123 = (($122) + 1)|0;
$n = $123;
}
$124 = $ivp;
$125 = $1;
$126 = ((($125)) + 64|0);
$127 = ($124|0)!=($126|0);
if ($127) {
$128 = $1;
$129 = ((($128)) + 64|0);
$130 = $ivp;
$131 = $blocksize;
_buf_cpy_1807($129,$130,$131);
}
}
$132 = $1;
$133 = ((($132)) + 52|0);
$134 = HEAP32[$133>>2]|0;
$135 = $134 & 4;
$136 = ($135|0)!=(0);
if ($136) {
$137 = $5;
$138 = $blocksize;
$139 = ($137>>>0)>($138>>>0);
if ($139) {
$140 = $5;
$141 = $blocksize;
$142 = (($140>>>0) % ($141>>>0))&-1;
$143 = ($142|0)==(0);
if ($143) {
$144 = $blocksize;
$restbytes = $144;
} else {
$145 = $5;
$146 = $blocksize;
$147 = (($145>>>0) % ($146>>>0))&-1;
$restbytes = $147;
}
$148 = $blocksize;
$149 = $2;
$150 = (0 - ($148))|0;
$151 = (($149) + ($150)|0);
$2 = $151;
$152 = $1;
$153 = ((($152)) + 64|0);
$ivp = $153;
$i = 0;
while(1) {
$154 = $i;
$155 = $restbytes;
$156 = ($154>>>0)<($155>>>0);
if (!($156)) {
break;
}
$157 = $i;
$158 = $4;
$159 = (($158) + ($157)|0);
$160 = HEAP8[$159>>0]|0;
$b = $160;
$161 = $i;
$162 = $2;
$163 = (($162) + ($161)|0);
$164 = HEAP8[$163>>0]|0;
$165 = $blocksize;
$166 = $i;
$167 = (($165) + ($166))|0;
$168 = $2;
$169 = (($168) + ($167)|0);
HEAP8[$169>>0] = $164;
$170 = $b;
$171 = $170&255;
$172 = $ivp;
$173 = ((($172)) + 1|0);
$ivp = $173;
$174 = HEAP8[$172>>0]|0;
$175 = $174&255;
$176 = $171 ^ $175;
$177 = $176&255;
$178 = $i;
$179 = $2;
$180 = (($179) + ($178)|0);
HEAP8[$180>>0] = $177;
$181 = $i;
$182 = (($181) + 1)|0;
$i = $182;
}
while(1) {
$183 = $i;
$184 = $blocksize;
$185 = ($183>>>0)<($184>>>0);
if (!($185)) {
break;
}
$186 = $ivp;
$187 = ((($186)) + 1|0);
$ivp = $187;
$188 = HEAP8[$186>>0]|0;
$189 = $188&255;
$190 = 0 ^ $189;
$191 = $190&255;
$192 = $i;
$193 = $2;
$194 = (($193) + ($192)|0);
HEAP8[$194>>0] = $191;
$195 = $i;
$196 = (($195) + 1)|0;
$i = $196;
}
$197 = $enc_fn;
$198 = $1;
$199 = ((($198)) + 496|0);
$200 = $2;
$201 = $2;
$202 = (FUNCTION_TABLE_iiii[$197 & 127]($199,$200,$201)|0);
$nburn = $202;
$203 = $nburn;
$204 = $burn;
$205 = ($203>>>0)>($204>>>0);
$206 = $nburn;
$207 = $burn;
$208 = $205 ? $206 : $207;
$burn = $208;
$209 = $1;
$210 = ((($209)) + 64|0);
$211 = $2;
$212 = $blocksize;
_buf_cpy_1807($210,$211,$212);
}
}
$213 = $burn;
$214 = ($213>>>0)>(0);
if ($214) {
$215 = $burn;
$216 = (($215) + 16)|0;
___gcry_burn_stack($216);
___gcry_burn_stack_dummy();
}
$0 = 0;
$217 = $0;
STACKTOP = sp;return ($217|0);
}
function _buf_xor_1806($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _buf_cpy_1807($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function __gcry_cipher_cbc_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $blocksize = 0, $burn = 0;
var $dec_fn = 0, $i = 0, $n = 0, $nblocks = 0, $nburn = 0, $restbytes = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
$blocksize = $10;
$11 = $1;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 40|0);
$15 = HEAP32[$14>>2]|0;
$dec_fn = $15;
$16 = $5;
$17 = $blocksize;
$18 = (($16>>>0) / ($17>>>0))&-1;
$nblocks = $18;
$19 = $3;
$20 = $5;
$21 = ($19>>>0)<($20>>>0);
if ($21) {
$0 = 200;
$197 = $0;
STACKTOP = sp;return ($197|0);
}
$22 = $5;
$23 = $blocksize;
$24 = (($22>>>0) % ($23>>>0))&-1;
$25 = ($24|0)!=(0);
do {
if ($25) {
$26 = $5;
$27 = $blocksize;
$28 = ($26>>>0)>($27>>>0);
if ($28) {
$29 = $1;
$30 = ((($29)) + 52|0);
$31 = HEAP32[$30>>2]|0;
$32 = $31 & 4;
$33 = ($32|0)!=(0);
if ($33) {
break;
}
}
$0 = 139;
$197 = $0;
STACKTOP = sp;return ($197|0);
}
} while(0);
$burn = 0;
$34 = $1;
$35 = ((($34)) + 52|0);
$36 = HEAP32[$35>>2]|0;
$37 = $36 & 4;
$38 = ($37|0)!=(0);
if ($38) {
$39 = $5;
$40 = $blocksize;
$41 = ($39>>>0)>($40>>>0);
if ($41) {
$42 = $nblocks;
$43 = (($42) + -1)|0;
$nblocks = $43;
$44 = $5;
$45 = $blocksize;
$46 = (($44>>>0) % ($45>>>0))&-1;
$47 = ($46|0)==(0);
if ($47) {
$48 = $nblocks;
$49 = (($48) + -1)|0;
$nblocks = $49;
}
$50 = $1;
$51 = ((($50)) + 96|0);
$52 = $1;
$53 = ((($52)) + 64|0);
$54 = $blocksize;
_buf_cpy_1807($51,$53,$54);
}
}
$55 = $1;
$56 = ((($55)) + 20|0);
$57 = ((($56)) + 12|0);
$58 = HEAP32[$57>>2]|0;
$59 = ($58|0)!=(0|0);
L19: do {
if ($59) {
$60 = $1;
$61 = ((($60)) + 20|0);
$62 = ((($61)) + 12|0);
$63 = HEAP32[$62>>2]|0;
$64 = $1;
$65 = ((($64)) + 496|0);
$66 = $1;
$67 = ((($66)) + 64|0);
$68 = $2;
$69 = $4;
$70 = $nblocks;
FUNCTION_TABLE_viiiii[$63 & 127]($65,$67,$68,$69,$70);
$71 = $nblocks;
$72 = $blocksize;
$73 = Math_imul($71, $72)|0;
$74 = $4;
$75 = (($74) + ($73)|0);
$4 = $75;
$76 = $nblocks;
$77 = $blocksize;
$78 = Math_imul($76, $77)|0;
$79 = $2;
$80 = (($79) + ($78)|0);
$2 = $80;
} else {
$n = 0;
while(1) {
$81 = $n;
$82 = $nblocks;
$83 = ($81>>>0)<($82>>>0);
if (!($83)) {
break L19;
}
$84 = $dec_fn;
$85 = $1;
$86 = ((($85)) + 496|0);
$87 = $1;
$88 = ((($87)) + 96|0);
$89 = $4;
$90 = (FUNCTION_TABLE_iiii[$84 & 127]($86,$88,$89)|0);
$nburn = $90;
$91 = $nburn;
$92 = $burn;
$93 = ($91>>>0)>($92>>>0);
$94 = $nburn;
$95 = $burn;
$96 = $93 ? $94 : $95;
$burn = $96;
$97 = $2;
$98 = $1;
$99 = ((($98)) + 96|0);
$100 = $1;
$101 = ((($100)) + 64|0);
$102 = $4;
$103 = $blocksize;
_buf_xor_n_copy_2_1810($97,$99,$101,$102,$103);
$104 = $blocksize;
$105 = $4;
$106 = (($105) + ($104)|0);
$4 = $106;
$107 = $blocksize;
$108 = $2;
$109 = (($108) + ($107)|0);
$2 = $109;
$110 = $n;
$111 = (($110) + 1)|0;
$n = $111;
}
}
} while(0);
$112 = $1;
$113 = ((($112)) + 52|0);
$114 = HEAP32[$113>>2]|0;
$115 = $114 & 4;
$116 = ($115|0)!=(0);
if ($116) {
$117 = $5;
$118 = $blocksize;
$119 = ($117>>>0)>($118>>>0);
if ($119) {
$120 = $5;
$121 = $blocksize;
$122 = (($120>>>0) % ($121>>>0))&-1;
$123 = ($122|0)==(0);
if ($123) {
$124 = $blocksize;
$restbytes = $124;
} else {
$125 = $5;
$126 = $blocksize;
$127 = (($125>>>0) % ($126>>>0))&-1;
$restbytes = $127;
}
$128 = $1;
$129 = ((($128)) + 96|0);
$130 = $1;
$131 = ((($130)) + 64|0);
$132 = $blocksize;
_buf_cpy_1807($129,$131,$132);
$133 = $1;
$134 = ((($133)) + 64|0);
$135 = $4;
$136 = $blocksize;
$137 = (($135) + ($136)|0);
$138 = $restbytes;
_buf_cpy_1807($134,$137,$138);
$139 = $dec_fn;
$140 = $1;
$141 = ((($140)) + 496|0);
$142 = $2;
$143 = $4;
$144 = (FUNCTION_TABLE_iiii[$139 & 127]($141,$142,$143)|0);
$nburn = $144;
$145 = $nburn;
$146 = $burn;
$147 = ($145>>>0)>($146>>>0);
$148 = $nburn;
$149 = $burn;
$150 = $147 ? $148 : $149;
$burn = $150;
$151 = $2;
$152 = $2;
$153 = $1;
$154 = ((($153)) + 64|0);
$155 = $restbytes;
_buf_xor_1806($151,$152,$154,$155);
$156 = $2;
$157 = $blocksize;
$158 = (($156) + ($157)|0);
$159 = $2;
$160 = $restbytes;
_buf_cpy_1807($158,$159,$160);
$161 = $restbytes;
$i = $161;
while(1) {
$162 = $i;
$163 = $blocksize;
$164 = ($162>>>0)<($163>>>0);
if (!($164)) {
break;
}
$165 = $i;
$166 = $2;
$167 = (($166) + ($165)|0);
$168 = HEAP8[$167>>0]|0;
$169 = $i;
$170 = $1;
$171 = ((($170)) + 64|0);
$172 = (($171) + ($169)|0);
HEAP8[$172>>0] = $168;
$173 = $i;
$174 = (($173) + 1)|0;
$i = $174;
}
$175 = $dec_fn;
$176 = $1;
$177 = ((($176)) + 496|0);
$178 = $2;
$179 = $1;
$180 = ((($179)) + 64|0);
$181 = (FUNCTION_TABLE_iiii[$175 & 127]($177,$178,$180)|0);
$nburn = $181;
$182 = $nburn;
$183 = $burn;
$184 = ($182>>>0)>($183>>>0);
$185 = $nburn;
$186 = $burn;
$187 = $184 ? $185 : $186;
$burn = $187;
$188 = $2;
$189 = $2;
$190 = $1;
$191 = ((($190)) + 96|0);
$192 = $blocksize;
_buf_xor_1806($188,$189,$191,$192);
}
}
$193 = $burn;
$194 = ($193>>>0)>(0);
if ($194) {
$195 = $burn;
$196 = (($195) + 16)|0;
___gcry_burn_stack($196);
___gcry_burn_stack_dummy();
}
$0 = 0;
$197 = $0;
STACKTOP = sp;return ($197|0);
}
function _buf_xor_n_copy_2_1810($_dst_xor,$_src_xor,$_srcdst_cpy,$_src_cpy,$len) {
$_dst_xor = $_dst_xor|0;
$_src_xor = $_src_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src_cpy = $_src_cpy|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $dst_xor = 0, $ldst_xor = 0, $longmask = 0, $lsrc_cpy = 0, $lsrc_xor = 0, $lsrcdst_cpy = 0, $ltemp = 0, $src_cpy = 0, $src_xor = 0, $srcdst_cpy = 0, $temp = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_src_xor;
$2 = $_srcdst_cpy;
$3 = $_src_cpy;
$4 = $len;
$5 = $0;
$dst_xor = $5;
$6 = $2;
$srcdst_cpy = $6;
$7 = $1;
$src_xor = $7;
$8 = $3;
$src_cpy = $8;
$longmask = 3;
$9 = $src_cpy;
$10 = $9;
$11 = $src_xor;
$12 = $11;
$13 = $10 | $12;
$14 = $dst_xor;
$15 = $14;
$16 = $13 | $15;
$17 = $srcdst_cpy;
$18 = $17;
$19 = $16 | $18;
$20 = $19 & 3;
$21 = ($20|0)!=(0);
if (!($21)) {
$22 = $dst_xor;
$ldst_xor = $22;
$23 = $src_xor;
$lsrc_xor = $23;
$24 = $srcdst_cpy;
$lsrcdst_cpy = $24;
$25 = $src_cpy;
$lsrc_cpy = $25;
while(1) {
$26 = $4;
$27 = ($26>>>0)>=(4);
if (!($27)) {
break;
}
$28 = $lsrc_cpy;
$29 = ((($28)) + 4|0);
$lsrc_cpy = $29;
$30 = HEAP32[$28>>2]|0;
$ltemp = $30;
$31 = $lsrcdst_cpy;
$32 = HEAP32[$31>>2]|0;
$33 = $lsrc_xor;
$34 = ((($33)) + 4|0);
$lsrc_xor = $34;
$35 = HEAP32[$33>>2]|0;
$36 = $32 ^ $35;
$37 = $ldst_xor;
$38 = ((($37)) + 4|0);
$ldst_xor = $38;
HEAP32[$37>>2] = $36;
$39 = $ltemp;
$40 = $lsrcdst_cpy;
$41 = ((($40)) + 4|0);
$lsrcdst_cpy = $41;
HEAP32[$40>>2] = $39;
$42 = $4;
$43 = (($42) - 4)|0;
$4 = $43;
}
$44 = $ldst_xor;
$dst_xor = $44;
$45 = $lsrc_xor;
$src_xor = $45;
$46 = $lsrcdst_cpy;
$srcdst_cpy = $46;
$47 = $lsrc_cpy;
$src_cpy = $47;
}
while(1) {
$48 = $4;
$49 = ($48|0)!=(0);
if (!($49)) {
break;
}
$50 = $src_cpy;
$51 = ((($50)) + 1|0);
$src_cpy = $51;
$52 = HEAP8[$50>>0]|0;
$temp = $52;
$53 = $srcdst_cpy;
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = $src_xor;
$57 = ((($56)) + 1|0);
$src_xor = $57;
$58 = HEAP8[$56>>0]|0;
$59 = $58&255;
$60 = $55 ^ $59;
$61 = $60&255;
$62 = $dst_xor;
$63 = ((($62)) + 1|0);
$dst_xor = $63;
HEAP8[$62>>0] = $61;
$64 = $temp;
$65 = $srcdst_cpy;
$66 = ((($65)) + 1|0);
$srcdst_cpy = $66;
HEAP8[$65>>0] = $64;
$67 = $4;
$68 = (($67) + -1)|0;
$4 = $68;
}
STACKTOP = sp;return;
}
function __gcry_cipher_ccm_set_nonce($c,$nonce,$noncelen) {
$c = $c|0;
$nonce = $nonce|0;
$noncelen = $noncelen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $7 = 0, $8 = 0, $9 = 0, $L = 0, $L_ = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $nonce;
$3 = $noncelen;
$4 = $3;
$5 = (15 - ($4))|0;
$L = $5;
$6 = $L;
$7 = (($6) - 1)|0;
$L_ = $7;
$8 = $2;
$9 = ($8|0)!=(0|0);
if (!($9)) {
$0 = 45;
$62 = $0;
STACKTOP = sp;return ($62|0);
}
$10 = $L;
$11 = ($10>>>0)<(2);
$12 = $L;
$13 = ($12>>>0)>(8);
$or$cond = $11 | $13;
if ($or$cond) {
$0 = 139;
$62 = $0;
STACKTOP = sp;return ($62|0);
} else {
$14 = $1;
$15 = ((($14)) + 128|0);
_memset(($15|0),0,368)|0;
$16 = $1;
$17 = ((($16)) + 56|0);
;HEAP32[$17>>2]=0|0;
$18 = $1;
$19 = ((($18)) + 64|0);
;HEAP32[$19>>2]=0|0;HEAP32[$19+4>>2]=0|0;HEAP32[$19+8>>2]=0|0;HEAP32[$19+12>>2]=0|0;
$20 = $1;
$21 = ((($20)) + 80|0);
;HEAP32[$21>>2]=0|0;HEAP32[$21+4>>2]=0|0;HEAP32[$21+8>>2]=0|0;HEAP32[$21+12>>2]=0|0;
$22 = $1;
$23 = ((($22)) + 96|0);
;HEAP32[$23>>2]=0|0;HEAP32[$23+4>>2]=0|0;HEAP32[$23+8>>2]=0|0;HEAP32[$23+12>>2]=0|0;
$24 = $1;
$25 = ((($24)) + 112|0);
HEAP32[$25>>2] = 0;
$26 = $L_;
$27 = $26&255;
$28 = $1;
$29 = ((($28)) + 80|0);
HEAP8[$29>>0] = $27;
$30 = $1;
$31 = ((($30)) + 80|0);
$32 = ((($31)) + 1|0);
$33 = $2;
$34 = $3;
_memcpy(($32|0),($33|0),($34|0))|0;
$35 = $3;
$36 = (1 + ($35))|0;
$37 = $1;
$38 = ((($37)) + 80|0);
$39 = (($38) + ($36)|0);
$40 = $L;
_memset(($39|0),0,($40|0))|0;
$41 = $L_;
$42 = $41&255;
$43 = $1;
$44 = ((($43)) + 64|0);
HEAP8[$44>>0] = $42;
$45 = $1;
$46 = ((($45)) + 64|0);
$47 = ((($46)) + 1|0);
$48 = $2;
$49 = $3;
_memcpy(($47|0),($48|0),($49|0))|0;
$50 = $3;
$51 = (1 + ($50))|0;
$52 = $1;
$53 = ((($52)) + 64|0);
$54 = (($53) + ($51)|0);
$55 = $L;
_memset(($54|0),0,($55|0))|0;
$56 = $1;
$57 = ((($56)) + 128|0);
$58 = ((($57)) + 56|0);
$59 = HEAP8[$58>>0]|0;
$60 = $59 & -2;
$61 = $60 | 1;
HEAP8[$58>>0] = $61;
$0 = 0;
$62 = $0;
STACKTOP = sp;return ($62|0);
}
return (0)|0;
}
function _do_cbc_mac($c,$inbuf,$inlen,$do_padding) {
$c = $c|0;
$inbuf = $inbuf|0;
$inlen = $inlen|0;
$do_padding = $do_padding|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__nburn = 0, $__nburn1 = 0;
var $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $blocksize = 0, $burn = 0, $enc_fn = 0, $nblocks = 0, $or$cond = 0, $or$cond3 = 0, $tmp = 0, $unused = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp + 72|0;
$_vset_long = sp;
$1 = $c;
$2 = $inbuf;
$3 = $inlen;
$4 = $do_padding;
$blocksize = 16;
$5 = $1;
$6 = ((($5)) + 12|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($7)) + 36|0);
$9 = HEAP32[$8>>2]|0;
$enc_fn = $9;
$burn = 0;
$10 = $1;
$11 = ((($10)) + 128|0);
$12 = ((($11)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$unused = $13;
$14 = $3;
$15 = ($14|0)==(0);
if ($15) {
$16 = $unused;
$17 = ($16|0)!=(0);
$18 = $4;
$19 = ($18|0)!=(0);
$or$cond = $17 & $19;
if (!($or$cond)) {
$0 = 0;
$197 = $0;
STACKTOP = sp;return ($197|0);
}
}
L5: while(1) {
$20 = $3;
$21 = $unused;
$22 = (($20) + ($21))|0;
$23 = ($22>>>0)<(16);
$24 = $unused;
$25 = ($24>>>0)>(0);
$or$cond3 = $23 | $25;
L7: do {
if ($or$cond3) {
while(1) {
$26 = $3;
$27 = ($26|0)!=(0);
$28 = $unused;
$29 = ($28>>>0)<(16);
$30 = $27 ? $29 : 0;
if (!($30)) {
break L7;
}
$31 = $2;
$32 = ((($31)) + 1|0);
$2 = $32;
$33 = HEAP8[$31>>0]|0;
$34 = $unused;
$35 = (($34) + 1)|0;
$unused = $35;
$36 = $1;
$37 = ((($36)) + 128|0);
$38 = ((($37)) + 20|0);
$39 = (($38) + ($34)|0);
HEAP8[$39>>0] = $33;
$40 = $3;
$41 = (($40) + -1)|0;
$3 = $41;
}
}
} while(0);
$42 = $3;
$43 = ($42|0)!=(0);
L12: do {
if (!($43)) {
$44 = $4;
$45 = ($44|0)!=(0);
if (!($45)) {
break L5;
}
while(1) {
$46 = $unused;
$47 = ($46>>>0)<(16);
if (!($47)) {
break L12;
}
$48 = $unused;
$49 = (($48) + 1)|0;
$unused = $49;
$50 = $1;
$51 = ((($50)) + 128|0);
$52 = ((($51)) + 20|0);
$53 = (($52) + ($48)|0);
HEAP8[$53>>0] = 0;
}
}
} while(0);
$54 = $unused;
$55 = ($54>>>0)>(0);
if ($55) {
$56 = $1;
$57 = ((($56)) + 64|0);
$58 = $1;
$59 = ((($58)) + 64|0);
$60 = $1;
$61 = ((($60)) + 128|0);
$62 = ((($61)) + 20|0);
_buf_xor_1815($57,$59,$62,16);
$63 = $enc_fn;
$64 = $1;
$65 = ((($64)) + 496|0);
$66 = $1;
$67 = ((($66)) + 64|0);
$68 = $1;
$69 = ((($68)) + 64|0);
$70 = (FUNCTION_TABLE_iiii[$63 & 127]($65,$67,$69)|0);
$__nburn = $70;
$71 = $burn;
$72 = $__nburn;
$73 = ($71>>>0)>($72>>>0);
$74 = $burn;
$75 = $__nburn;
$76 = $73 ? $74 : $75;
$burn = $76;
$unused = 0;
}
$77 = $1;
$78 = ((($77)) + 20|0);
$79 = ((($78)) + 8|0);
$80 = HEAP32[$79>>2]|0;
$81 = ($80|0)!=(0|0);
L21: do {
if ($81) {
$82 = $3;
$83 = (($82>>>0) / 16)&-1;
$nblocks = $83;
$84 = $1;
$85 = ((($84)) + 20|0);
$86 = ((($85)) + 8|0);
$87 = HEAP32[$86>>2]|0;
$88 = $1;
$89 = ((($88)) + 496|0);
$90 = $1;
$91 = ((($90)) + 64|0);
$92 = $2;
$93 = $nblocks;
FUNCTION_TABLE_viiiiii[$87 & 63]($89,$91,$tmp,$92,$93,1);
$94 = $nblocks;
$95 = $94<<4;
$96 = $2;
$97 = (($96) + ($95)|0);
$2 = $97;
$98 = $nblocks;
$99 = $98<<4;
$100 = $3;
$101 = (($100) - ($99))|0;
$3 = $101;
$_vptr = $tmp;
$_vlen = 16;
$_vset = 0;
$102 = $_vset;
$103 = $102&255;
$104 = $_vset_long;
$105 = $104;
HEAP32[$105>>2] = $103;
$106 = (($104) + 4)|0;
$107 = $106;
HEAP32[$107>>2] = 0;
while(1) {
$108 = $_vptr;
$109 = $108;
$110 = $109 & 7;
$111 = ($110|0)!=(0);
$112 = $_vlen;
$113 = ($112|0)!=(0);
$114 = $111 ? $113 : 0;
if (!($114)) {
break;
}
$115 = $_vset;
$116 = $_vptr;
HEAP8[$116>>0] = $115;
$117 = $_vptr;
$118 = ((($117)) + 1|0);
$_vptr = $118;
$119 = $_vlen;
$120 = (($119) + -1)|0;
$_vlen = $120;
}
$121 = $_vlen;
$122 = ($121>>>0)<(8);
if (!($122)) {
$123 = $_vset_long;
$124 = $123;
$125 = HEAP32[$124>>2]|0;
$126 = (($123) + 4)|0;
$127 = $126;
$128 = HEAP32[$127>>2]|0;
$129 = (___muldi3(($125|0),($128|0),16843009,16843009)|0);
$130 = tempRet0;
$131 = $_vset_long;
$132 = $131;
HEAP32[$132>>2] = $129;
$133 = (($131) + 4)|0;
$134 = $133;
HEAP32[$134>>2] = $130;
while(1) {
$135 = $_vptr;
$_vptr_long = $135;
$136 = $_vset_long;
$137 = $136;
$138 = HEAP32[$137>>2]|0;
$139 = (($136) + 4)|0;
$140 = $139;
$141 = HEAP32[$140>>2]|0;
$142 = $_vptr_long;
$143 = $142;
$144 = $143;
HEAP32[$144>>2] = $138;
$145 = (($143) + 4)|0;
$146 = $145;
HEAP32[$146>>2] = $141;
$147 = $_vlen;
$148 = (($147) - 8)|0;
$_vlen = $148;
$149 = $_vptr;
$150 = ((($149)) + 8|0);
$_vptr = $150;
$151 = $_vlen;
$152 = ($151>>>0)>=(8);
if (!($152)) {
break;
}
}
}
while(1) {
$153 = $_vlen;
$154 = ($153|0)!=(0);
if (!($154)) {
break L21;
}
$155 = $_vset;
$156 = $_vptr;
HEAP8[$156>>0] = $155;
$157 = $_vptr;
$158 = ((($157)) + 1|0);
$_vptr = $158;
$159 = $_vlen;
$160 = (($159) + -1)|0;
$_vlen = $160;
}
} else {
while(1) {
$161 = $3;
$162 = ($161>>>0)>=(16);
if (!($162)) {
break L21;
}
$163 = $1;
$164 = ((($163)) + 64|0);
$165 = $1;
$166 = ((($165)) + 64|0);
$167 = $2;
_buf_xor_1815($164,$166,$167,16);
$168 = $enc_fn;
$169 = $1;
$170 = ((($169)) + 496|0);
$171 = $1;
$172 = ((($171)) + 64|0);
$173 = $1;
$174 = ((($173)) + 64|0);
$175 = (FUNCTION_TABLE_iiii[$168 & 127]($170,$172,$174)|0);
$__nburn1 = $175;
$176 = $burn;
$177 = $__nburn1;
$178 = ($176>>>0)>($177>>>0);
$179 = $burn;
$180 = $__nburn1;
$181 = $178 ? $179 : $180;
$burn = $181;
$182 = $3;
$183 = (($182) - 16)|0;
$3 = $183;
$184 = $2;
$185 = ((($184)) + 16|0);
$2 = $185;
}
}
} while(0);
$186 = $3;
$187 = ($186>>>0)>(0);
if (!($187)) {
break;
}
}
$188 = $unused;
$189 = $1;
$190 = ((($189)) + 128|0);
$191 = ((($190)) + 36|0);
HEAP32[$191>>2] = $188;
$192 = $burn;
$193 = ($192|0)!=(0);
if ($193) {
$194 = $burn;
$195 = (($194) + 16)|0;
$burn = $195;
}
$196 = $burn;
$0 = $196;
$197 = $0;
STACKTOP = sp;return ($197|0);
}
function _buf_xor_1815($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function __gcry_cipher_ccm_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $burn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $3;
$7 = $5;
$8 = ($6>>>0)<($7>>>0);
if ($8) {
$0 = 200;
$88 = $0;
STACKTOP = sp;return ($88|0);
}
$9 = $1;
$10 = ((($9)) + 128|0);
$11 = ((($10)) + 56|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 & 1;
$14 = $13&255;
$15 = ($14|0)!=(0);
if ($15) {
$16 = $1;
$17 = ((($16)) + 56|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18&255) >>> 2;
$20 = $19 & 1;
$21 = $20&255;
$22 = ($21|0)!=(0);
if (!($22)) {
$23 = $1;
$24 = ((($23)) + 128|0);
$25 = ((($24)) + 56|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26&255) >>> 1;
$28 = $27 & 1;
$29 = $28&255;
$30 = ($29|0)!=(0);
if ($30) {
$31 = $1;
$32 = ((($31)) + 128|0);
$33 = ((($32)) + 8|0);
$34 = $33;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = ($39>>>0)>(0);
$41 = ($36>>>0)>(0);
$42 = ($39|0)==(0);
$43 = $42 & $41;
$44 = $40 | $43;
if (!($44)) {
$45 = $5;
$46 = $1;
$47 = ((($46)) + 128|0);
$48 = $47;
$49 = $48;
$50 = HEAP32[$49>>2]|0;
$51 = (($48) + 4)|0;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (0)>($53>>>0);
$55 = ($45>>>0)>($50>>>0);
$56 = (0)==($53|0);
$57 = $56 & $55;
$58 = $54 | $57;
if ($58) {
$0 = 139;
$88 = $0;
STACKTOP = sp;return ($88|0);
}
$59 = $5;
$60 = $1;
$61 = ((($60)) + 128|0);
$62 = $61;
$63 = $62;
$64 = HEAP32[$63>>2]|0;
$65 = (($62) + 4)|0;
$66 = $65;
$67 = HEAP32[$66>>2]|0;
$68 = (_i64Subtract(($64|0),($67|0),($59|0),0)|0);
$69 = tempRet0;
$70 = $61;
$71 = $70;
HEAP32[$71>>2] = $68;
$72 = (($70) + 4)|0;
$73 = $72;
HEAP32[$73>>2] = $69;
$74 = $1;
$75 = $4;
$76 = $5;
$77 = (_do_cbc_mac($74,$75,$76,0)|0);
$burn = $77;
$78 = $burn;
$79 = ($78|0)!=(0);
if ($79) {
$80 = $burn;
$81 = (($80) + 20)|0;
___gcry_burn_stack($81);
___gcry_burn_stack_dummy();
}
$82 = $1;
$83 = $2;
$84 = $3;
$85 = $4;
$86 = $5;
$87 = (__gcry_cipher_ctr_encrypt($82,$83,$84,$85,$86)|0);
$0 = $87;
$88 = $0;
STACKTOP = sp;return ($88|0);
}
}
}
}
$0 = 156;
$88 = $0;
STACKTOP = sp;return ($88|0);
}
function __gcry_cipher_ccm_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $burn = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $3;
$7 = $5;
$8 = ($6>>>0)<($7>>>0);
if ($8) {
$0 = 200;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$9 = $1;
$10 = ((($9)) + 128|0);
$11 = ((($10)) + 56|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12 & 1;
$14 = $13&255;
$15 = ($14|0)!=(0);
if ($15) {
$16 = $1;
$17 = ((($16)) + 56|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18&255) >>> 2;
$20 = $19 & 1;
$21 = $20&255;
$22 = ($21|0)!=(0);
if (!($22)) {
$23 = $1;
$24 = ((($23)) + 128|0);
$25 = ((($24)) + 56|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26&255) >>> 1;
$28 = $27 & 1;
$29 = $28&255;
$30 = ($29|0)!=(0);
if ($30) {
$31 = $1;
$32 = ((($31)) + 128|0);
$33 = ((($32)) + 8|0);
$34 = $33;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = ($39>>>0)>(0);
$41 = ($36>>>0)>(0);
$42 = ($39|0)==(0);
$43 = $42 & $41;
$44 = $40 | $43;
if (!($44)) {
$45 = $5;
$46 = $1;
$47 = ((($46)) + 128|0);
$48 = $47;
$49 = $48;
$50 = HEAP32[$49>>2]|0;
$51 = (($48) + 4)|0;
$52 = $51;
$53 = HEAP32[$52>>2]|0;
$54 = (0)>($53>>>0);
$55 = ($45>>>0)>($50>>>0);
$56 = (0)==($53|0);
$57 = $56 & $55;
$58 = $54 | $57;
if ($58) {
$0 = 139;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$59 = $1;
$60 = $2;
$61 = $3;
$62 = $4;
$63 = $5;
$64 = (__gcry_cipher_ctr_encrypt($59,$60,$61,$62,$63)|0);
$err = $64;
$65 = $err;
$66 = ($65|0)!=(0);
if ($66) {
$67 = $err;
$0 = $67;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
$68 = $5;
$69 = $1;
$70 = ((($69)) + 128|0);
$71 = $70;
$72 = $71;
$73 = HEAP32[$72>>2]|0;
$74 = (($71) + 4)|0;
$75 = $74;
$76 = HEAP32[$75>>2]|0;
$77 = (_i64Subtract(($73|0),($76|0),($68|0),0)|0);
$78 = tempRet0;
$79 = $70;
$80 = $79;
HEAP32[$80>>2] = $77;
$81 = (($79) + 4)|0;
$82 = $81;
HEAP32[$82>>2] = $78;
$83 = $1;
$84 = $2;
$85 = $5;
$86 = (_do_cbc_mac($83,$84,$85,0)|0);
$burn = $86;
$87 = $burn;
$88 = ($87|0)!=(0);
if ($88) {
$89 = $burn;
$90 = (($89) + 20)|0;
___gcry_burn_stack($90);
___gcry_burn_stack_dummy();
}
$91 = $err;
$0 = $91;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
}
}
}
$0 = 156;
$92 = $0;
STACKTOP = sp;return ($92|0);
}
function __gcry_cipher_cfb_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0;
var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0;
var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $blocksize = 0, $blocksize_x_2 = 0, $burn = 0, $enc_fn = 0, $ivp = 0, $nblocks = 0, $nburn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$enc_fn = $10;
$11 = $1;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$blocksize = $15;
$16 = $blocksize;
$17 = $blocksize;
$18 = (($16) + ($17))|0;
$blocksize_x_2 = $18;
$19 = $3;
$20 = $5;
$21 = ($19>>>0)<($20>>>0);
if ($21) {
$0 = 200;
$227 = $0;
STACKTOP = sp;return ($227|0);
}
$22 = $5;
$23 = $1;
$24 = ((($23)) + 112|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($22>>>0)<=($25>>>0);
if ($26) {
$27 = $1;
$28 = ((($27)) + 64|0);
$29 = $blocksize;
$30 = (($28) + ($29)|0);
$31 = $1;
$32 = ((($31)) + 112|0);
$33 = HEAP32[$32>>2]|0;
$34 = (0 - ($33))|0;
$35 = (($30) + ($34)|0);
$ivp = $35;
$36 = $2;
$37 = $ivp;
$38 = $4;
$39 = $5;
_buf_xor_2dst_1830($36,$37,$38,$39);
$40 = $5;
$41 = $1;
$42 = ((($41)) + 112|0);
$43 = HEAP32[$42>>2]|0;
$44 = (($43) - ($40))|0;
HEAP32[$42>>2] = $44;
$0 = 0;
$227 = $0;
STACKTOP = sp;return ($227|0);
}
$burn = 0;
$45 = $1;
$46 = ((($45)) + 112|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)!=(0);
if ($48) {
$49 = $1;
$50 = ((($49)) + 112|0);
$51 = HEAP32[$50>>2]|0;
$52 = $5;
$53 = (($52) - ($51))|0;
$5 = $53;
$54 = $1;
$55 = ((($54)) + 64|0);
$56 = $blocksize;
$57 = (($55) + ($56)|0);
$58 = $1;
$59 = ((($58)) + 112|0);
$60 = HEAP32[$59>>2]|0;
$61 = (0 - ($60))|0;
$62 = (($57) + ($61)|0);
$ivp = $62;
$63 = $2;
$64 = $ivp;
$65 = $4;
$66 = $1;
$67 = ((($66)) + 112|0);
$68 = HEAP32[$67>>2]|0;
_buf_xor_2dst_1830($63,$64,$65,$68);
$69 = $1;
$70 = ((($69)) + 112|0);
$71 = HEAP32[$70>>2]|0;
$72 = $2;
$73 = (($72) + ($71)|0);
$2 = $73;
$74 = $1;
$75 = ((($74)) + 112|0);
$76 = HEAP32[$75>>2]|0;
$77 = $4;
$78 = (($77) + ($76)|0);
$4 = $78;
$79 = $1;
$80 = ((($79)) + 112|0);
HEAP32[$80>>2] = 0;
}
$81 = $5;
$82 = $blocksize_x_2;
$83 = ($81>>>0)>=($82>>>0);
if ($83) {
$84 = $1;
$85 = ((($84)) + 20|0);
$86 = HEAP32[$85>>2]|0;
$87 = ($86|0)!=(0|0);
if ($87) {
$88 = $5;
$89 = $blocksize;
$90 = (($88>>>0) / ($89>>>0))&-1;
$nblocks = $90;
$91 = $1;
$92 = ((($91)) + 20|0);
$93 = HEAP32[$92>>2]|0;
$94 = $1;
$95 = ((($94)) + 496|0);
$96 = $1;
$97 = ((($96)) + 64|0);
$98 = $2;
$99 = $4;
$100 = $nblocks;
FUNCTION_TABLE_viiiii[$93 & 127]($95,$97,$98,$99,$100);
$101 = $nblocks;
$102 = $blocksize;
$103 = Math_imul($101, $102)|0;
$104 = $2;
$105 = (($104) + ($103)|0);
$2 = $105;
$106 = $nblocks;
$107 = $blocksize;
$108 = Math_imul($106, $107)|0;
$109 = $4;
$110 = (($109) + ($108)|0);
$4 = $110;
$111 = $nblocks;
$112 = $blocksize;
$113 = Math_imul($111, $112)|0;
$114 = $5;
$115 = (($114) - ($113))|0;
$5 = $115;
} else {
label = 10;
}
} else {
label = 10;
}
L15: do {
if ((label|0) == 10) {
while(1) {
label = 0;
$116 = $5;
$117 = $blocksize_x_2;
$118 = ($116>>>0)>=($117>>>0);
if (!($118)) {
break L15;
}
$119 = $enc_fn;
$120 = $1;
$121 = ((($120)) + 496|0);
$122 = $1;
$123 = ((($122)) + 64|0);
$124 = $1;
$125 = ((($124)) + 64|0);
$126 = (FUNCTION_TABLE_iiii[$119 & 127]($121,$123,$125)|0);
$nburn = $126;
$127 = $nburn;
$128 = $burn;
$129 = ($127>>>0)>($128>>>0);
$130 = $nburn;
$131 = $burn;
$132 = $129 ? $130 : $131;
$burn = $132;
$133 = $2;
$134 = $1;
$135 = ((($134)) + 64|0);
$136 = $4;
$137 = $blocksize;
_buf_xor_2dst_1830($133,$135,$136,$137);
$138 = $blocksize;
$139 = $2;
$140 = (($139) + ($138)|0);
$2 = $140;
$141 = $blocksize;
$142 = $4;
$143 = (($142) + ($141)|0);
$4 = $143;
$144 = $blocksize;
$145 = $5;
$146 = (($145) - ($144))|0;
$5 = $146;
label = 10;
}
}
} while(0);
$147 = $5;
$148 = $blocksize;
$149 = ($147>>>0)>=($148>>>0);
if ($149) {
$150 = $1;
$151 = ((($150)) + 96|0);
$152 = $1;
$153 = ((($152)) + 64|0);
$154 = $blocksize;
_buf_cpy_1831($151,$153,$154);
$155 = $enc_fn;
$156 = $1;
$157 = ((($156)) + 496|0);
$158 = $1;
$159 = ((($158)) + 64|0);
$160 = $1;
$161 = ((($160)) + 64|0);
$162 = (FUNCTION_TABLE_iiii[$155 & 127]($157,$159,$161)|0);
$nburn = $162;
$163 = $nburn;
$164 = $burn;
$165 = ($163>>>0)>($164>>>0);
$166 = $nburn;
$167 = $burn;
$168 = $165 ? $166 : $167;
$burn = $168;
$169 = $2;
$170 = $1;
$171 = ((($170)) + 64|0);
$172 = $4;
$173 = $blocksize;
_buf_xor_2dst_1830($169,$171,$172,$173);
$174 = $blocksize;
$175 = $2;
$176 = (($175) + ($174)|0);
$2 = $176;
$177 = $blocksize;
$178 = $4;
$179 = (($178) + ($177)|0);
$4 = $179;
$180 = $blocksize;
$181 = $5;
$182 = (($181) - ($180))|0;
$5 = $182;
}
$183 = $5;
$184 = ($183|0)!=(0);
if ($184) {
$185 = $1;
$186 = ((($185)) + 96|0);
$187 = $1;
$188 = ((($187)) + 64|0);
$189 = $blocksize;
_buf_cpy_1831($186,$188,$189);
$190 = $enc_fn;
$191 = $1;
$192 = ((($191)) + 496|0);
$193 = $1;
$194 = ((($193)) + 64|0);
$195 = $1;
$196 = ((($195)) + 64|0);
$197 = (FUNCTION_TABLE_iiii[$190 & 127]($192,$194,$196)|0);
$nburn = $197;
$198 = $nburn;
$199 = $burn;
$200 = ($198>>>0)>($199>>>0);
$201 = $nburn;
$202 = $burn;
$203 = $200 ? $201 : $202;
$burn = $203;
$204 = $blocksize;
$205 = $1;
$206 = ((($205)) + 112|0);
HEAP32[$206>>2] = $204;
$207 = $5;
$208 = $1;
$209 = ((($208)) + 112|0);
$210 = HEAP32[$209>>2]|0;
$211 = (($210) - ($207))|0;
HEAP32[$209>>2] = $211;
$212 = $2;
$213 = $1;
$214 = ((($213)) + 64|0);
$215 = $4;
$216 = $5;
_buf_xor_2dst_1830($212,$214,$215,$216);
$217 = $5;
$218 = $2;
$219 = (($218) + ($217)|0);
$2 = $219;
$220 = $5;
$221 = $4;
$222 = (($221) + ($220)|0);
$4 = $222;
$5 = 0;
}
$223 = $burn;
$224 = ($223>>>0)>(0);
if ($224) {
$225 = $burn;
$226 = (($225) + 16)|0;
___gcry_burn_stack($226);
___gcry_burn_stack_dummy();
}
$0 = 0;
$227 = $0;
STACKTOP = sp;return ($227|0);
}
function _buf_xor_2dst_1830($_dst1,$_dst2,$_src,$len) {
$_dst1 = $_dst1|0;
$_dst2 = $_dst2|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst1 = 0, $dst2 = 0, $ldst1 = 0, $ldst2 = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst1;
$1 = $_dst2;
$2 = $_src;
$3 = $len;
$4 = $0;
$dst1 = $4;
$5 = $1;
$dst2 = $5;
$6 = $2;
$src = $6;
$longmask = 3;
$7 = $src;
$8 = $7;
$9 = $dst1;
$10 = $9;
$11 = $8 | $10;
$12 = $dst2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst1;
$ldst1 = $17;
$18 = $dst2;
$ldst2 = $18;
$19 = $src;
$lsrc = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc;
$23 = ((($22)) + 4|0);
$lsrc = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $ldst2;
$26 = ((($25)) + 4|0);
$ldst2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $27 ^ $24;
HEAP32[$25>>2] = $28;
$29 = $ldst1;
$30 = ((($29)) + 4|0);
$ldst1 = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst1;
$dst1 = $33;
$34 = $ldst2;
$dst2 = $34;
$35 = $lsrc;
$src = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src;
$39 = ((($38)) + 1|0);
$src = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $dst2;
$43 = ((($42)) + 1|0);
$dst2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $45 ^ $41;
$47 = $46&255;
HEAP8[$42>>0] = $47;
$48 = $dst1;
$49 = ((($48)) + 1|0);
$dst1 = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _buf_cpy_1831($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function __gcry_cipher_cfb_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $blocksize = 0, $blocksize_x_2 = 0, $burn = 0, $enc_fn = 0, $ivp = 0, $nblocks = 0, $nburn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$enc_fn = $10;
$11 = $1;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$blocksize = $15;
$16 = $blocksize;
$17 = $blocksize;
$18 = (($16) + ($17))|0;
$blocksize_x_2 = $18;
$19 = $3;
$20 = $5;
$21 = ($19>>>0)<($20>>>0);
if ($21) {
$0 = 200;
$229 = $0;
STACKTOP = sp;return ($229|0);
}
$22 = $5;
$23 = $1;
$24 = ((($23)) + 112|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($22>>>0)<=($25>>>0);
if ($26) {
$27 = $1;
$28 = ((($27)) + 64|0);
$29 = $blocksize;
$30 = (($28) + ($29)|0);
$31 = $1;
$32 = ((($31)) + 112|0);
$33 = HEAP32[$32>>2]|0;
$34 = (0 - ($33))|0;
$35 = (($30) + ($34)|0);
$ivp = $35;
$36 = $2;
$37 = $ivp;
$38 = $4;
$39 = $5;
_buf_xor_n_copy_1834($36,$37,$38,$39);
$40 = $5;
$41 = $1;
$42 = ((($41)) + 112|0);
$43 = HEAP32[$42>>2]|0;
$44 = (($43) - ($40))|0;
HEAP32[$42>>2] = $44;
$0 = 0;
$229 = $0;
STACKTOP = sp;return ($229|0);
}
$burn = 0;
$45 = $1;
$46 = ((($45)) + 112|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)!=(0);
if ($48) {
$49 = $1;
$50 = ((($49)) + 112|0);
$51 = HEAP32[$50>>2]|0;
$52 = $5;
$53 = (($52) - ($51))|0;
$5 = $53;
$54 = $1;
$55 = ((($54)) + 64|0);
$56 = $blocksize;
$57 = (($55) + ($56)|0);
$58 = $1;
$59 = ((($58)) + 112|0);
$60 = HEAP32[$59>>2]|0;
$61 = (0 - ($60))|0;
$62 = (($57) + ($61)|0);
$ivp = $62;
$63 = $2;
$64 = $ivp;
$65 = $4;
$66 = $1;
$67 = ((($66)) + 112|0);
$68 = HEAP32[$67>>2]|0;
_buf_xor_n_copy_1834($63,$64,$65,$68);
$69 = $1;
$70 = ((($69)) + 112|0);
$71 = HEAP32[$70>>2]|0;
$72 = $2;
$73 = (($72) + ($71)|0);
$2 = $73;
$74 = $1;
$75 = ((($74)) + 112|0);
$76 = HEAP32[$75>>2]|0;
$77 = $4;
$78 = (($77) + ($76)|0);
$4 = $78;
$79 = $1;
$80 = ((($79)) + 112|0);
HEAP32[$80>>2] = 0;
}
$81 = $5;
$82 = $blocksize_x_2;
$83 = ($81>>>0)>=($82>>>0);
if ($83) {
$84 = $1;
$85 = ((($84)) + 20|0);
$86 = ((($85)) + 4|0);
$87 = HEAP32[$86>>2]|0;
$88 = ($87|0)!=(0|0);
if ($88) {
$89 = $5;
$90 = $blocksize;
$91 = (($89>>>0) / ($90>>>0))&-1;
$nblocks = $91;
$92 = $1;
$93 = ((($92)) + 20|0);
$94 = ((($93)) + 4|0);
$95 = HEAP32[$94>>2]|0;
$96 = $1;
$97 = ((($96)) + 496|0);
$98 = $1;
$99 = ((($98)) + 64|0);
$100 = $2;
$101 = $4;
$102 = $nblocks;
FUNCTION_TABLE_viiiii[$95 & 127]($97,$99,$100,$101,$102);
$103 = $nblocks;
$104 = $blocksize;
$105 = Math_imul($103, $104)|0;
$106 = $2;
$107 = (($106) + ($105)|0);
$2 = $107;
$108 = $nblocks;
$109 = $blocksize;
$110 = Math_imul($108, $109)|0;
$111 = $4;
$112 = (($111) + ($110)|0);
$4 = $112;
$113 = $nblocks;
$114 = $blocksize;
$115 = Math_imul($113, $114)|0;
$116 = $5;
$117 = (($116) - ($115))|0;
$5 = $117;
} else {
label = 10;
}
} else {
label = 10;
}
L15: do {
if ((label|0) == 10) {
while(1) {
label = 0;
$118 = $5;
$119 = $blocksize_x_2;
$120 = ($118>>>0)>=($119>>>0);
if (!($120)) {
break L15;
}
$121 = $enc_fn;
$122 = $1;
$123 = ((($122)) + 496|0);
$124 = $1;
$125 = ((($124)) + 64|0);
$126 = $1;
$127 = ((($126)) + 64|0);
$128 = (FUNCTION_TABLE_iiii[$121 & 127]($123,$125,$127)|0);
$nburn = $128;
$129 = $nburn;
$130 = $burn;
$131 = ($129>>>0)>($130>>>0);
$132 = $nburn;
$133 = $burn;
$134 = $131 ? $132 : $133;
$burn = $134;
$135 = $2;
$136 = $1;
$137 = ((($136)) + 64|0);
$138 = $4;
$139 = $blocksize;
_buf_xor_n_copy_1834($135,$137,$138,$139);
$140 = $blocksize;
$141 = $2;
$142 = (($141) + ($140)|0);
$2 = $142;
$143 = $blocksize;
$144 = $4;
$145 = (($144) + ($143)|0);
$4 = $145;
$146 = $blocksize;
$147 = $5;
$148 = (($147) - ($146))|0;
$5 = $148;
label = 10;
}
}
} while(0);
$149 = $5;
$150 = $blocksize;
$151 = ($149>>>0)>=($150>>>0);
if ($151) {
$152 = $1;
$153 = ((($152)) + 96|0);
$154 = $1;
$155 = ((($154)) + 64|0);
$156 = $blocksize;
_buf_cpy_1831($153,$155,$156);
$157 = $enc_fn;
$158 = $1;
$159 = ((($158)) + 496|0);
$160 = $1;
$161 = ((($160)) + 64|0);
$162 = $1;
$163 = ((($162)) + 64|0);
$164 = (FUNCTION_TABLE_iiii[$157 & 127]($159,$161,$163)|0);
$nburn = $164;
$165 = $nburn;
$166 = $burn;
$167 = ($165>>>0)>($166>>>0);
$168 = $nburn;
$169 = $burn;
$170 = $167 ? $168 : $169;
$burn = $170;
$171 = $2;
$172 = $1;
$173 = ((($172)) + 64|0);
$174 = $4;
$175 = $blocksize;
_buf_xor_n_copy_1834($171,$173,$174,$175);
$176 = $blocksize;
$177 = $2;
$178 = (($177) + ($176)|0);
$2 = $178;
$179 = $blocksize;
$180 = $4;
$181 = (($180) + ($179)|0);
$4 = $181;
$182 = $blocksize;
$183 = $5;
$184 = (($183) - ($182))|0;
$5 = $184;
}
$185 = $5;
$186 = ($185|0)!=(0);
if ($186) {
$187 = $1;
$188 = ((($187)) + 96|0);
$189 = $1;
$190 = ((($189)) + 64|0);
$191 = $blocksize;
_buf_cpy_1831($188,$190,$191);
$192 = $enc_fn;
$193 = $1;
$194 = ((($193)) + 496|0);
$195 = $1;
$196 = ((($195)) + 64|0);
$197 = $1;
$198 = ((($197)) + 64|0);
$199 = (FUNCTION_TABLE_iiii[$192 & 127]($194,$196,$198)|0);
$nburn = $199;
$200 = $nburn;
$201 = $burn;
$202 = ($200>>>0)>($201>>>0);
$203 = $nburn;
$204 = $burn;
$205 = $202 ? $203 : $204;
$burn = $205;
$206 = $blocksize;
$207 = $1;
$208 = ((($207)) + 112|0);
HEAP32[$208>>2] = $206;
$209 = $5;
$210 = $1;
$211 = ((($210)) + 112|0);
$212 = HEAP32[$211>>2]|0;
$213 = (($212) - ($209))|0;
HEAP32[$211>>2] = $213;
$214 = $2;
$215 = $1;
$216 = ((($215)) + 64|0);
$217 = $4;
$218 = $5;
_buf_xor_n_copy_1834($214,$216,$217,$218);
$219 = $5;
$220 = $2;
$221 = (($220) + ($219)|0);
$2 = $221;
$222 = $5;
$223 = $4;
$224 = (($223) + ($222)|0);
$4 = $224;
$5 = 0;
}
$225 = $burn;
$226 = ($225>>>0)>(0);
if ($226) {
$227 = $burn;
$228 = (($227) + 16)|0;
___gcry_burn_stack($228);
___gcry_burn_stack_dummy();
}
$0 = 0;
$229 = $0;
STACKTOP = sp;return ($229|0);
}
function _buf_xor_n_copy_1834($_dst_xor,$_srcdst_cpy,$_src,$len) {
$_dst_xor = $_dst_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_srcdst_cpy;
$2 = $_src;
$3 = $len;
$4 = $0;
$5 = $2;
$6 = $1;
$7 = $2;
$8 = $3;
_buf_xor_n_copy_2_1835($4,$5,$6,$7,$8);
STACKTOP = sp;return;
}
function _buf_xor_n_copy_2_1835($_dst_xor,$_src_xor,$_srcdst_cpy,$_src_cpy,$len) {
$_dst_xor = $_dst_xor|0;
$_src_xor = $_src_xor|0;
$_srcdst_cpy = $_srcdst_cpy|0;
$_src_cpy = $_src_cpy|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $dst_xor = 0, $ldst_xor = 0, $longmask = 0, $lsrc_cpy = 0, $lsrc_xor = 0, $lsrcdst_cpy = 0, $ltemp = 0, $src_cpy = 0, $src_xor = 0, $srcdst_cpy = 0, $temp = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst_xor;
$1 = $_src_xor;
$2 = $_srcdst_cpy;
$3 = $_src_cpy;
$4 = $len;
$5 = $0;
$dst_xor = $5;
$6 = $2;
$srcdst_cpy = $6;
$7 = $1;
$src_xor = $7;
$8 = $3;
$src_cpy = $8;
$longmask = 3;
$9 = $src_cpy;
$10 = $9;
$11 = $src_xor;
$12 = $11;
$13 = $10 | $12;
$14 = $dst_xor;
$15 = $14;
$16 = $13 | $15;
$17 = $srcdst_cpy;
$18 = $17;
$19 = $16 | $18;
$20 = $19 & 3;
$21 = ($20|0)!=(0);
if (!($21)) {
$22 = $dst_xor;
$ldst_xor = $22;
$23 = $src_xor;
$lsrc_xor = $23;
$24 = $srcdst_cpy;
$lsrcdst_cpy = $24;
$25 = $src_cpy;
$lsrc_cpy = $25;
while(1) {
$26 = $4;
$27 = ($26>>>0)>=(4);
if (!($27)) {
break;
}
$28 = $lsrc_cpy;
$29 = ((($28)) + 4|0);
$lsrc_cpy = $29;
$30 = HEAP32[$28>>2]|0;
$ltemp = $30;
$31 = $lsrcdst_cpy;
$32 = HEAP32[$31>>2]|0;
$33 = $lsrc_xor;
$34 = ((($33)) + 4|0);
$lsrc_xor = $34;
$35 = HEAP32[$33>>2]|0;
$36 = $32 ^ $35;
$37 = $ldst_xor;
$38 = ((($37)) + 4|0);
$ldst_xor = $38;
HEAP32[$37>>2] = $36;
$39 = $ltemp;
$40 = $lsrcdst_cpy;
$41 = ((($40)) + 4|0);
$lsrcdst_cpy = $41;
HEAP32[$40>>2] = $39;
$42 = $4;
$43 = (($42) - 4)|0;
$4 = $43;
}
$44 = $ldst_xor;
$dst_xor = $44;
$45 = $lsrc_xor;
$src_xor = $45;
$46 = $lsrcdst_cpy;
$srcdst_cpy = $46;
$47 = $lsrc_cpy;
$src_cpy = $47;
}
while(1) {
$48 = $4;
$49 = ($48|0)!=(0);
if (!($49)) {
break;
}
$50 = $src_cpy;
$51 = ((($50)) + 1|0);
$src_cpy = $51;
$52 = HEAP8[$50>>0]|0;
$temp = $52;
$53 = $srcdst_cpy;
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = $src_xor;
$57 = ((($56)) + 1|0);
$src_xor = $57;
$58 = HEAP8[$56>>0]|0;
$59 = $58&255;
$60 = $55 ^ $59;
$61 = $60&255;
$62 = $dst_xor;
$63 = ((($62)) + 1|0);
$dst_xor = $63;
HEAP8[$62>>0] = $61;
$64 = $temp;
$65 = $srcdst_cpy;
$66 = ((($65)) + 1|0);
$srcdst_cpy = $66;
HEAP8[$65>>0] = $64;
$67 = $4;
$68 = (($67) + -1)|0;
$4 = $68;
}
STACKTOP = sp;return;
}
function __gcry_cipher_cmac_set_subkeys($c) {
$c = $c|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $0;
_cmac_generate_subkeys($1);
STACKTOP = sp;return 0;
}
function _cmac_generate_subkeys($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $bi = 0, $blocksize = 0, $burn = 0, $carry = 0, $i = 0, $j = 0;
var $rb = 0, $t = 0, $u = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$u = sp + 24|0;
$_vset_long = sp;
$0 = $c;
$1 = $0;
$2 = ((($1)) + 12|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 20|0);
$5 = HEAP32[$4>>2]|0;
$blocksize = $5;
$6 = $blocksize;
$7 = (16)<($6>>>0);
if ($7) {
__gcry_bug(46802,113,46816);
// unreachable;
}
$8 = $blocksize;
_memset(($u|0),0,($8|0))|0;
$9 = $0;
$10 = ((($9)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = ((($11)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$14 = $0;
$15 = ((($14)) + 496|0);
$16 = (FUNCTION_TABLE_iiii[$13 & 127]($15,$u,$u)|0);
$burn = $16;
$17 = $blocksize;
$18 = ($17|0)==(16);
$19 = $18 ? 135 : 27;
$20 = $19&255;
$rb = $20;
$j = 0;
while(1) {
$21 = $j;
$22 = ($21|0)<(2);
if (!($22)) {
break;
}
$carry = 0;
$23 = $blocksize;
$24 = (($23) - 1)|0;
$i = $24;
while(1) {
$25 = $i;
$26 = ($25|0)>=(0);
if (!($26)) {
break;
}
$27 = $i;
$28 = (($u) + ($27)|0);
$29 = HEAP8[$28>>0]|0;
$bi = $29;
$30 = $carry;
$31 = $30&255;
$32 = $bi;
$33 = $32&255;
$34 = $33 << 1;
$35 = $31 | $34;
$36 = $35&255;
$t = $36;
$37 = $bi;
$38 = $37&255;
$39 = $38 >> 7;
$40 = $39&255;
$carry = $40;
$41 = $t;
$42 = $41&255;
$43 = $42 & 255;
$44 = $43&255;
$45 = $i;
$46 = (($u) + ($45)|0);
HEAP8[$46>>0] = $44;
$47 = $i;
$48 = (($u) + ($47)|0);
$49 = HEAP8[$48>>0]|0;
$50 = $i;
$51 = $j;
$52 = $0;
$53 = ((($52)) + 128|0);
$54 = ((($53)) + 1|0);
$55 = (($54) + ($51<<4)|0);
$56 = (($55) + ($50)|0);
HEAP8[$56>>0] = $49;
$57 = $i;
$58 = (($57) + -1)|0;
$i = $58;
}
$59 = $carry;
$60 = $59&255;
$61 = ($60|0)!=(0);
$62 = $rb;
$63 = $62&255;
$64 = $61 ? $63 : 0;
$65 = $blocksize;
$66 = (($65) - 1)|0;
$67 = (($u) + ($66)|0);
$68 = HEAP8[$67>>0]|0;
$69 = $68&255;
$70 = $69 ^ $64;
$71 = $70&255;
HEAP8[$67>>0] = $71;
$72 = $blocksize;
$73 = (($72) - 1)|0;
$74 = (($u) + ($73)|0);
$75 = HEAP8[$74>>0]|0;
$76 = $blocksize;
$77 = (($76) - 1)|0;
$78 = $j;
$79 = $0;
$80 = ((($79)) + 128|0);
$81 = ((($80)) + 1|0);
$82 = (($81) + ($78<<4)|0);
$83 = (($82) + ($77)|0);
HEAP8[$83>>0] = $75;
$84 = $j;
$85 = (($84) + 1)|0;
$j = $85;
}
$_vptr = $u;
$_vlen = 16;
$_vset = 0;
$86 = $_vset;
$87 = $86&255;
$88 = $_vset_long;
$89 = $88;
HEAP32[$89>>2] = $87;
$90 = (($88) + 4)|0;
$91 = $90;
HEAP32[$91>>2] = 0;
while(1) {
$92 = $_vptr;
$93 = $92;
$94 = $93 & 7;
$95 = ($94|0)!=(0);
$96 = $_vlen;
$97 = ($96|0)!=(0);
$98 = $95 ? $97 : 0;
if (!($98)) {
break;
}
$99 = $_vset;
$100 = $_vptr;
HEAP8[$100>>0] = $99;
$101 = $_vptr;
$102 = ((($101)) + 1|0);
$_vptr = $102;
$103 = $_vlen;
$104 = (($103) + -1)|0;
$_vlen = $104;
}
$105 = $_vlen;
$106 = ($105>>>0)<(8);
if (!($106)) {
$107 = $_vset_long;
$108 = $107;
$109 = HEAP32[$108>>2]|0;
$110 = (($107) + 4)|0;
$111 = $110;
$112 = HEAP32[$111>>2]|0;
$113 = (___muldi3(($109|0),($112|0),16843009,16843009)|0);
$114 = tempRet0;
$115 = $_vset_long;
$116 = $115;
HEAP32[$116>>2] = $113;
$117 = (($115) + 4)|0;
$118 = $117;
HEAP32[$118>>2] = $114;
while(1) {
$119 = $_vptr;
$_vptr_long = $119;
$120 = $_vset_long;
$121 = $120;
$122 = HEAP32[$121>>2]|0;
$123 = (($120) + 4)|0;
$124 = $123;
$125 = HEAP32[$124>>2]|0;
$126 = $_vptr_long;
$127 = $126;
$128 = $127;
HEAP32[$128>>2] = $122;
$129 = (($127) + 4)|0;
$130 = $129;
HEAP32[$130>>2] = $125;
$131 = $_vlen;
$132 = (($131) - 8)|0;
$_vlen = $132;
$133 = $_vptr;
$134 = ((($133)) + 8|0);
$_vptr = $134;
$135 = $_vlen;
$136 = ($135>>>0)>=(8);
if (!($136)) {
break;
}
}
}
while(1) {
$137 = $_vlen;
$138 = ($137|0)!=(0);
if (!($138)) {
break;
}
$139 = $_vset;
$140 = $_vptr;
HEAP8[$140>>0] = $139;
$141 = $_vptr;
$142 = ((($141)) + 1|0);
$_vptr = $142;
$143 = $_vlen;
$144 = (($143) + -1)|0;
$_vlen = $144;
}
$145 = $burn;
$146 = ($145|0)!=(0);
if (!($146)) {
STACKTOP = sp;return;
}
$147 = $burn;
$148 = (($147) + 16)|0;
___gcry_burn_stack($148);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function __gcry_cipher_ctr_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0;
var $_vset_long = 0, $blocksize = 0, $burn = 0, $enc_fn = 0, $i = 0, $n = 0, $nblocks = 0, $nburn = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp + 80|0;
$_vset_long = sp;
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$enc_fn = $10;
$11 = $1;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$blocksize = $15;
$16 = $3;
$17 = $5;
$18 = ($16>>>0)<($17>>>0);
if ($18) {
$0 = 200;
$235 = $0;
STACKTOP = sp;return ($235|0);
}
$burn = 0;
$19 = $1;
$20 = ((($19)) + 112|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)!=(0);
if ($22) {
$23 = $1;
$24 = ((($23)) + 112|0);
$25 = HEAP32[$24>>2]|0;
$26 = $blocksize;
$27 = ($25>>>0)<($26>>>0);
if (!($27)) {
__gcry_assert_failed(46838,46860,53,46873);
// unreachable;
}
$28 = $blocksize;
$29 = $1;
$30 = ((($29)) + 112|0);
$31 = HEAP32[$30>>2]|0;
$32 = (($28) - ($31))|0;
$i = $32;
$33 = $1;
$34 = ((($33)) + 112|0);
$35 = HEAP32[$34>>2]|0;
$36 = $5;
$37 = ($35>>>0)>($36>>>0);
if ($37) {
$38 = $5;
$42 = $38;
} else {
$39 = $1;
$40 = ((($39)) + 112|0);
$41 = HEAP32[$40>>2]|0;
$42 = $41;
}
$n = $42;
$43 = $2;
$44 = $4;
$45 = $i;
$46 = $1;
$47 = ((($46)) + 96|0);
$48 = (($47) + ($45)|0);
$49 = $n;
_buf_xor_1851($43,$44,$48,$49);
$50 = $n;
$51 = $1;
$52 = ((($51)) + 112|0);
$53 = HEAP32[$52>>2]|0;
$54 = (($53) - ($50))|0;
HEAP32[$52>>2] = $54;
$55 = $n;
$56 = $4;
$57 = (($56) + ($55)|0);
$4 = $57;
$58 = $n;
$59 = $2;
$60 = (($59) + ($58)|0);
$2 = $60;
$61 = $n;
$62 = $5;
$63 = (($62) - ($61))|0;
$5 = $63;
}
$64 = $5;
$65 = $blocksize;
$66 = (($64>>>0) / ($65>>>0))&-1;
$nblocks = $66;
$67 = $nblocks;
$68 = ($67|0)!=(0);
if ($68) {
$69 = $1;
$70 = ((($69)) + 20|0);
$71 = ((($70)) + 16|0);
$72 = HEAP32[$71>>2]|0;
$73 = ($72|0)!=(0|0);
if ($73) {
$74 = $1;
$75 = ((($74)) + 20|0);
$76 = ((($75)) + 16|0);
$77 = HEAP32[$76>>2]|0;
$78 = $1;
$79 = ((($78)) + 496|0);
$80 = $1;
$81 = ((($80)) + 80|0);
$82 = $2;
$83 = $4;
$84 = $nblocks;
FUNCTION_TABLE_viiiii[$77 & 127]($79,$81,$82,$83,$84);
$85 = $nblocks;
$86 = $blocksize;
$87 = Math_imul($85, $86)|0;
$88 = $4;
$89 = (($88) + ($87)|0);
$4 = $89;
$90 = $nblocks;
$91 = $blocksize;
$92 = Math_imul($90, $91)|0;
$93 = $2;
$94 = (($93) + ($92)|0);
$2 = $94;
$95 = $nblocks;
$96 = $blocksize;
$97 = Math_imul($95, $96)|0;
$98 = $5;
$99 = (($98) - ($97))|0;
$5 = $99;
}
}
$100 = $5;
$101 = ($100|0)!=(0);
L19: do {
if ($101) {
while(1) {
$102 = $enc_fn;
$103 = $1;
$104 = ((($103)) + 496|0);
$105 = $1;
$106 = ((($105)) + 80|0);
$107 = (FUNCTION_TABLE_iiii[$102 & 127]($104,$tmp,$106)|0);
$nburn = $107;
$108 = $nburn;
$109 = $burn;
$110 = ($108>>>0)>($109>>>0);
$111 = $nburn;
$112 = $burn;
$113 = $110 ? $111 : $112;
$burn = $113;
$114 = $blocksize;
$i = $114;
while(1) {
$115 = $i;
$116 = ($115|0)>(0);
if (!($116)) {
break;
}
$117 = $i;
$118 = (($117) - 1)|0;
$119 = $1;
$120 = ((($119)) + 80|0);
$121 = (($120) + ($118)|0);
$122 = HEAP8[$121>>0]|0;
$123 = (($122) + 1)<<24>>24;
HEAP8[$121>>0] = $123;
$124 = $i;
$125 = (($124) - 1)|0;
$126 = $1;
$127 = ((($126)) + 80|0);
$128 = (($127) + ($125)|0);
$129 = HEAP8[$128>>0]|0;
$130 = $129&255;
$131 = ($130|0)!=(0);
if ($131) {
break;
}
$132 = $i;
$133 = (($132) + -1)|0;
$i = $133;
}
$134 = $blocksize;
$135 = $5;
$136 = ($134>>>0)<($135>>>0);
$137 = $blocksize;
$138 = $5;
$139 = $136 ? $137 : $138;
$n = $139;
$140 = $2;
$141 = $4;
$142 = $n;
_buf_xor_1851($140,$141,$tmp,$142);
$143 = $n;
$144 = $5;
$145 = (($144) - ($143))|0;
$5 = $145;
$146 = $n;
$147 = $2;
$148 = (($147) + ($146)|0);
$2 = $148;
$149 = $n;
$150 = $4;
$151 = (($150) + ($149)|0);
$4 = $151;
$152 = $5;
$153 = ($152|0)!=(0);
if (!($153)) {
break;
}
}
$154 = $blocksize;
$155 = $n;
$156 = (($154) - ($155))|0;
$157 = $1;
$158 = ((($157)) + 112|0);
HEAP32[$158>>2] = $156;
$159 = $1;
$160 = ((($159)) + 112|0);
$161 = HEAP32[$160>>2]|0;
$162 = ($161|0)!=(0);
if ($162) {
$163 = $1;
$164 = ((($163)) + 96|0);
$165 = $n;
$166 = (($164) + ($165)|0);
$167 = $n;
$168 = (($tmp) + ($167)|0);
$169 = $1;
$170 = ((($169)) + 112|0);
$171 = HEAP32[$170>>2]|0;
_buf_cpy_1852($166,$168,$171);
}
$_vptr = $tmp;
$_vlen = 16;
$_vset = 0;
$172 = $_vset;
$173 = $172&255;
$174 = $_vset_long;
$175 = $174;
HEAP32[$175>>2] = $173;
$176 = (($174) + 4)|0;
$177 = $176;
HEAP32[$177>>2] = 0;
while(1) {
$178 = $_vptr;
$179 = $178;
$180 = $179 & 7;
$181 = ($180|0)!=(0);
$182 = $_vlen;
$183 = ($182|0)!=(0);
$184 = $181 ? $183 : 0;
if (!($184)) {
break;
}
$185 = $_vset;
$186 = $_vptr;
HEAP8[$186>>0] = $185;
$187 = $_vptr;
$188 = ((($187)) + 1|0);
$_vptr = $188;
$189 = $_vlen;
$190 = (($189) + -1)|0;
$_vlen = $190;
}
$191 = $_vlen;
$192 = ($191>>>0)<(8);
if (!($192)) {
$193 = $_vset_long;
$194 = $193;
$195 = HEAP32[$194>>2]|0;
$196 = (($193) + 4)|0;
$197 = $196;
$198 = HEAP32[$197>>2]|0;
$199 = (___muldi3(($195|0),($198|0),16843009,16843009)|0);
$200 = tempRet0;
$201 = $_vset_long;
$202 = $201;
HEAP32[$202>>2] = $199;
$203 = (($201) + 4)|0;
$204 = $203;
HEAP32[$204>>2] = $200;
while(1) {
$205 = $_vptr;
$_vptr_long = $205;
$206 = $_vset_long;
$207 = $206;
$208 = HEAP32[$207>>2]|0;
$209 = (($206) + 4)|0;
$210 = $209;
$211 = HEAP32[$210>>2]|0;
$212 = $_vptr_long;
$213 = $212;
$214 = $213;
HEAP32[$214>>2] = $208;
$215 = (($213) + 4)|0;
$216 = $215;
HEAP32[$216>>2] = $211;
$217 = $_vlen;
$218 = (($217) - 8)|0;
$_vlen = $218;
$219 = $_vptr;
$220 = ((($219)) + 8|0);
$_vptr = $220;
$221 = $_vlen;
$222 = ($221>>>0)>=(8);
if (!($222)) {
break;
}
}
}
while(1) {
$223 = $_vlen;
$224 = ($223|0)!=(0);
if (!($224)) {
break L19;
}
$225 = $_vset;
$226 = $_vptr;
HEAP8[$226>>0] = $225;
$227 = $_vptr;
$228 = ((($227)) + 1|0);
$_vptr = $228;
$229 = $_vlen;
$230 = (($229) + -1)|0;
$_vlen = $230;
}
}
} while(0);
$231 = $burn;
$232 = ($231>>>0)>(0);
if ($232) {
$233 = $burn;
$234 = (($233) + 16)|0;
___gcry_burn_stack($234);
___gcry_burn_stack_dummy();
}
$0 = 0;
$235 = $0;
STACKTOP = sp;return ($235|0);
}
function _buf_xor_1851($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _buf_cpy_1852($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function __gcry_cipher_gcm_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $err = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(16);
if ($11) {
$0 = 12;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$12 = $3;
$13 = $5;
$14 = ($12>>>0)<($13>>>0);
if ($14) {
$0 = 200;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$15 = $1;
$16 = ((($15)) + 128|0);
$17 = ((($16)) + 68|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18&255) >>> 2;
$20 = $19 & 1;
$21 = $20&255;
$22 = ($21|0)!=(0);
if ($22) {
$0 = 139;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$23 = $1;
$24 = ((($23)) + 56|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25&255) >>> 2;
$27 = $26 & 1;
$28 = $27&255;
$29 = ($28|0)!=(0);
if (!($29)) {
$30 = $1;
$31 = ((($30)) + 128|0);
$32 = ((($31)) + 68|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33 & 1;
$35 = $34&255;
$36 = ($35|0)!=(0);
if (!($36)) {
$37 = $1;
$38 = ((($37)) + 56|0);
$39 = HEAP8[$38>>0]|0;
$40 = ($39&255) >>> 1;
$41 = $40 & 1;
$42 = $41&255;
$43 = ($42|0)!=(0);
if (!($43)) {
$44 = $1;
(__gcry_cipher_gcm_setiv($44,76475,16)|0);
}
$45 = $1;
$46 = ((($45)) + 128|0);
$47 = ((($46)) + 68|0);
$48 = HEAP8[$47>>0]|0;
$49 = ($48&255) >>> 3;
$50 = $49 & 1;
$51 = $50&255;
$52 = ($51|0)!=(0);
if ($52) {
$0 = 156;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$53 = $1;
$54 = ((($53)) + 128|0);
$55 = ((($54)) + 68|0);
$56 = HEAP8[$55>>0]|0;
$57 = ($56&255) >>> 1;
$58 = $57 & 1;
$59 = $58&255;
$60 = ($59|0)!=(0);
if (!($60)) {
$61 = $1;
$62 = $1;
$63 = ((($62)) + 128|0);
_do_ghash_buf($61,$63,0,0,1);
$64 = $1;
$65 = ((($64)) + 128|0);
$66 = ((($65)) + 68|0);
$67 = HEAP8[$66>>0]|0;
$68 = $67 & -3;
$69 = $68 | 2;
HEAP8[$66>>0] = $69;
}
$70 = $1;
$71 = ((($70)) + 128|0);
$72 = ((($71)) + 44|0);
$73 = $5;
_gcm_bytecounter_add($72,$73);
$74 = $1;
$75 = ((($74)) + 128|0);
$76 = ((($75)) + 44|0);
$77 = (_gcm_check_datalen($76)|0);
$78 = ($77|0)!=(0);
$79 = $1;
if (!($78)) {
$80 = ((($79)) + 128|0);
$81 = ((($80)) + 68|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82 & -5;
$84 = $83 | 4;
HEAP8[$81>>0] = $84;
$0 = 139;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
$85 = $2;
$86 = $3;
$87 = $4;
$88 = $5;
$89 = (__gcry_cipher_ctr_encrypt($79,$85,$86,$87,$88)|0);
$err = $89;
$90 = $err;
$91 = ($90|0)!=(0);
if ($91) {
$92 = $err;
$0 = $92;
$98 = $0;
STACKTOP = sp;return ($98|0);
} else {
$93 = $1;
$94 = $1;
$95 = ((($94)) + 128|0);
$96 = $2;
$97 = $5;
_do_ghash_buf($93,$95,$96,$97,0);
$0 = 0;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
}
}
$0 = 156;
$98 = $0;
STACKTOP = sp;return ($98|0);
}
function __gcry_cipher_gcm_setiv($c,$iv,$ivlen) {
$c = $c|0;
$iv = $iv|0;
$ivlen = $ivlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $iv;
$2 = $ivlen;
$3 = $0;
$4 = ((($3)) + 56|0);
$5 = HEAP8[$4>>0]|0;
$6 = $5 & -3;
HEAP8[$4>>0] = $6;
$7 = $0;
$8 = ((($7)) + 56|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9 & -5;
HEAP8[$8>>0] = $10;
$11 = $0;
$12 = ((($11)) + 128|0);
$13 = ((($12)) + 68|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14 & -9;
HEAP8[$13>>0] = $15;
$16 = (__gcry_fips_mode()|0);
$17 = ($16|0)!=(0);
if (!($17)) {
$24 = $0;
$25 = $1;
$26 = $2;
$27 = (__gcry_cipher_gcm_initiv($24,$25,$26)|0);
STACKTOP = sp;return ($27|0);
}
$18 = $0;
$19 = ((($18)) + 128|0);
$20 = ((($19)) + 68|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21 & -9;
$23 = $22 | 8;
HEAP8[$20>>0] = $23;
$24 = $0;
$25 = $1;
$26 = $2;
$27 = (__gcry_cipher_gcm_initiv($24,$25,$26)|0);
STACKTOP = sp;return ($27|0);
}
function __gcry_cipher_gcm_initiv($c,$iv,$ivlen) {
$c = $c|0;
$iv = $iv|0;
$ivlen = $ivlen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vlen2 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr_long = 0, $_vptr_long5 = 0, $_vset = 0, $_vset3 = 0, $_vset_long = 0, $_vset_long4 = 0, $bitlengths = 0, $iv_bytes = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$iv_bytes = sp + 56|0;
$bitlengths = sp + 40|0;
$_vset_long = sp + 8|0;
$_vset_long4 = sp;
$1 = $c;
$2 = $iv;
$3 = $ivlen;
$4 = $1;
$5 = ((($4)) + 128|0);
$6 = ((($5)) + 36|0);
;HEAP32[$6>>2]=0|0;HEAP32[$6+4>>2]=0|0;
$7 = $1;
$8 = ((($7)) + 128|0);
$9 = ((($8)) + 44|0);
;HEAP32[$9>>2]=0|0;HEAP32[$9+4>>2]=0|0;
$10 = $1;
$11 = ((($10)) + 128|0);
;HEAP32[$11>>2]=0|0;HEAP32[$11+4>>2]=0|0;HEAP32[$11+8>>2]=0|0;HEAP32[$11+12>>2]=0|0;
$12 = $1;
$13 = ((($12)) + 128|0);
$14 = ((($13)) + 68|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15 & -5;
HEAP8[$14>>0] = $16;
$17 = $1;
$18 = ((($17)) + 128|0);
$19 = ((($18)) + 68|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20 & -2;
HEAP8[$19>>0] = $21;
$22 = $1;
$23 = ((($22)) + 128|0);
$24 = ((($23)) + 68|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25 & -3;
HEAP8[$24>>0] = $26;
$27 = $3;
$28 = ($27|0)==(0);
if ($28) {
$0 = 139;
$222 = $0;
STACKTOP = sp;return ($222|0);
}
$29 = $3;
$30 = ($29|0)!=(12);
L5: do {
if ($30) {
;HEAP32[$iv_bytes>>2]=0|0;HEAP32[$iv_bytes+4>>2]=0|0;
$31 = $1;
$32 = ((($31)) + 80|0);
;HEAP32[$32>>2]=0|0;HEAP32[$32+4>>2]=0|0;HEAP32[$32+8>>2]=0|0;HEAP32[$32+12>>2]=0|0;
$33 = $3;
_gcm_bytecounter_add($iv_bytes,$33);
$34 = (_gcm_check_aadlen_or_ivlen($iv_bytes)|0);
$35 = ($34|0)!=(0);
$36 = $1;
if (!($35)) {
$37 = ((($36)) + 128|0);
$38 = ((($37)) + 68|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39 & -5;
$41 = $40 | 4;
HEAP8[$38>>0] = $41;
$0 = 139;
$222 = $0;
STACKTOP = sp;return ($222|0);
}
$42 = $1;
$43 = ((($42)) + 80|0);
$44 = $2;
$45 = $3;
_do_ghash_buf($36,$43,$44,$45,1);
$46 = HEAP32[$iv_bytes>>2]|0;
$47 = $46 << 3;
$48 = (_llvm_bswap_i32(($47|0))|0);
$49 = ((($bitlengths)) + 8|0);
$50 = ((($49)) + 4|0);
HEAP32[$50>>2] = $48;
$51 = HEAP32[$iv_bytes>>2]|0;
$52 = $51 >>> 29;
$53 = ((($iv_bytes)) + 4|0);
$54 = HEAP32[$53>>2]|0;
$55 = $54 << 3;
$56 = $52 | $55;
$57 = (_llvm_bswap_i32(($56|0))|0);
$58 = ((($bitlengths)) + 8|0);
HEAP32[$58>>2] = $57;
$59 = ((($bitlengths)) + 4|0);
HEAP32[$59>>2] = 0;
HEAP32[$bitlengths>>2] = 0;
$60 = $1;
$61 = $1;
$62 = ((($61)) + 80|0);
_do_ghash_buf($60,$62,$bitlengths,16,1);
$_vptr = $iv_bytes;
$_vlen = 8;
$_vset = 0;
$63 = $_vset;
$64 = $63&255;
$65 = $_vset_long;
$66 = $65;
HEAP32[$66>>2] = $64;
$67 = (($65) + 4)|0;
$68 = $67;
HEAP32[$68>>2] = 0;
while(1) {
$69 = $_vptr;
$70 = $69;
$71 = $70 & 7;
$72 = ($71|0)!=(0);
$73 = $_vlen;
$74 = ($73|0)!=(0);
$75 = $72 ? $74 : 0;
if (!($75)) {
break;
}
$76 = $_vset;
$77 = $_vptr;
HEAP8[$77>>0] = $76;
$78 = $_vptr;
$79 = ((($78)) + 1|0);
$_vptr = $79;
$80 = $_vlen;
$81 = (($80) + -1)|0;
$_vlen = $81;
}
$82 = $_vlen;
$83 = ($82>>>0)<(8);
if (!($83)) {
$84 = $_vset_long;
$85 = $84;
$86 = HEAP32[$85>>2]|0;
$87 = (($84) + 4)|0;
$88 = $87;
$89 = HEAP32[$88>>2]|0;
$90 = (___muldi3(($86|0),($89|0),16843009,16843009)|0);
$91 = tempRet0;
$92 = $_vset_long;
$93 = $92;
HEAP32[$93>>2] = $90;
$94 = (($92) + 4)|0;
$95 = $94;
HEAP32[$95>>2] = $91;
while(1) {
$96 = $_vptr;
$_vptr_long = $96;
$97 = $_vset_long;
$98 = $97;
$99 = HEAP32[$98>>2]|0;
$100 = (($97) + 4)|0;
$101 = $100;
$102 = HEAP32[$101>>2]|0;
$103 = $_vptr_long;
$104 = $103;
$105 = $104;
HEAP32[$105>>2] = $99;
$106 = (($104) + 4)|0;
$107 = $106;
HEAP32[$107>>2] = $102;
$108 = $_vlen;
$109 = (($108) - 8)|0;
$_vlen = $109;
$110 = $_vptr;
$111 = ((($110)) + 8|0);
$_vptr = $111;
$112 = $_vlen;
$113 = ($112>>>0)>=(8);
if (!($113)) {
break;
}
}
}
while(1) {
$114 = $_vlen;
$115 = ($114|0)!=(0);
if (!($115)) {
break;
}
$116 = $_vset;
$117 = $_vptr;
HEAP8[$117>>0] = $116;
$118 = $_vptr;
$119 = ((($118)) + 1|0);
$_vptr = $119;
$120 = $_vlen;
$121 = (($120) + -1)|0;
$_vlen = $121;
}
$_vptr1 = $bitlengths;
$_vlen2 = 16;
$_vset3 = 0;
$122 = $_vset3;
$123 = $122&255;
$124 = $_vset_long4;
$125 = $124;
HEAP32[$125>>2] = $123;
$126 = (($124) + 4)|0;
$127 = $126;
HEAP32[$127>>2] = 0;
while(1) {
$128 = $_vptr1;
$129 = $128;
$130 = $129 & 7;
$131 = ($130|0)!=(0);
$132 = $_vlen2;
$133 = ($132|0)!=(0);
$134 = $131 ? $133 : 0;
if (!($134)) {
break;
}
$135 = $_vset3;
$136 = $_vptr1;
HEAP8[$136>>0] = $135;
$137 = $_vptr1;
$138 = ((($137)) + 1|0);
$_vptr1 = $138;
$139 = $_vlen2;
$140 = (($139) + -1)|0;
$_vlen2 = $140;
}
$141 = $_vlen2;
$142 = ($141>>>0)<(8);
if (!($142)) {
$143 = $_vset_long4;
$144 = $143;
$145 = HEAP32[$144>>2]|0;
$146 = (($143) + 4)|0;
$147 = $146;
$148 = HEAP32[$147>>2]|0;
$149 = (___muldi3(($145|0),($148|0),16843009,16843009)|0);
$150 = tempRet0;
$151 = $_vset_long4;
$152 = $151;
HEAP32[$152>>2] = $149;
$153 = (($151) + 4)|0;
$154 = $153;
HEAP32[$154>>2] = $150;
while(1) {
$155 = $_vptr1;
$_vptr_long5 = $155;
$156 = $_vset_long4;
$157 = $156;
$158 = HEAP32[$157>>2]|0;
$159 = (($156) + 4)|0;
$160 = $159;
$161 = HEAP32[$160>>2]|0;
$162 = $_vptr_long5;
$163 = $162;
$164 = $163;
HEAP32[$164>>2] = $158;
$165 = (($163) + 4)|0;
$166 = $165;
HEAP32[$166>>2] = $161;
$167 = $_vlen2;
$168 = (($167) - 8)|0;
$_vlen2 = $168;
$169 = $_vptr1;
$170 = ((($169)) + 8|0);
$_vptr1 = $170;
$171 = $_vlen2;
$172 = ($171>>>0)>=(8);
if (!($172)) {
break;
}
}
}
while(1) {
$173 = $_vlen2;
$174 = ($173|0)!=(0);
if (!($174)) {
break L5;
}
$175 = $_vset3;
$176 = $_vptr1;
HEAP8[$176>>0] = $175;
$177 = $_vptr1;
$178 = ((($177)) + 1|0);
$_vptr1 = $178;
$179 = $_vlen2;
$180 = (($179) + -1)|0;
$_vlen2 = $180;
}
} else {
$181 = $1;
$182 = ((($181)) + 80|0);
$183 = $2;
$184 = $3;
_memcpy(($182|0),($183|0),($184|0))|0;
$185 = $1;
$186 = ((($185)) + 80|0);
$187 = ((($186)) + 14|0);
HEAP8[$187>>0] = 0;
$188 = $1;
$189 = ((($188)) + 80|0);
$190 = ((($189)) + 13|0);
HEAP8[$190>>0] = 0;
$191 = $1;
$192 = ((($191)) + 80|0);
$193 = ((($192)) + 12|0);
HEAP8[$193>>0] = 0;
$194 = $1;
$195 = ((($194)) + 80|0);
$196 = ((($195)) + 15|0);
HEAP8[$196>>0] = 1;
}
} while(0);
$197 = $1;
$198 = ((($197)) + 12|0);
$199 = HEAP32[$198>>2]|0;
$200 = ((($199)) + 36|0);
$201 = HEAP32[$200>>2]|0;
$202 = $1;
$203 = ((($202)) + 496|0);
$204 = $1;
$205 = ((($204)) + 128|0);
$206 = ((($205)) + 52|0);
$207 = $1;
$208 = ((($207)) + 80|0);
(FUNCTION_TABLE_iiii[$201 & 127]($203,$206,$208)|0);
$209 = $1;
$210 = ((($209)) + 80|0);
(_gcm_add32_be128($210,1)|0);
$211 = $1;
$212 = ((($211)) + 112|0);
HEAP32[$212>>2] = 0;
$213 = $1;
$214 = ((($213)) + 56|0);
$215 = HEAP8[$214>>0]|0;
$216 = $215 & -3;
$217 = $216 | 2;
HEAP8[$214>>0] = $217;
$218 = $1;
$219 = ((($218)) + 56|0);
$220 = HEAP8[$219>>0]|0;
$221 = $220 & -5;
HEAP8[$219>>0] = $221;
$0 = 0;
$222 = $0;
STACKTOP = sp;return ($222|0);
}
function _gcm_bytecounter_add($ctr,$add) {
$ctr = $ctr|0;
$add = $add|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctr;
$1 = $add;
$2 = $1;
$3 = $0;
$4 = HEAP32[$3>>2]|0;
$5 = (($4) + ($2))|0;
HEAP32[$3>>2] = $5;
$6 = $0;
$7 = HEAP32[$6>>2]|0;
$8 = $1;
$9 = ($7>>>0)>=($8>>>0);
if ($9) {
STACKTOP = sp;return;
}
$10 = $0;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = (($12) + 1)|0;
HEAP32[$11>>2] = $13;
STACKTOP = sp;return;
}
function _gcm_check_aadlen_or_ivlen($ctr) {
$ctr = $ctr|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $ctr;
$2 = $1;
$3 = ((($2)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4>>>0)>(536870911);
do {
if ($5) {
$0 = 0;
} else {
$6 = $1;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8>>>0)<(536870911);
if ($9) {
$0 = 1;
break;
}
$10 = $1;
$11 = HEAP32[$10>>2]|0;
$12 = ($11>>>0)<=(4294967295);
if ($12) {
$0 = 1;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$13 = $0;
STACKTOP = sp;return ($13|0);
}
function _do_ghash_buf($c,$hash,$buf,$buflen,$do_padding) {
$c = $c|0;
$hash = $hash|0;
$buf = $buf|0;
$buflen = $buflen|0;
$do_padding = $do_padding|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0;
var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $blocksize = 0, $burn = 0, $ghash_fn = 0, $n = 0, $nblocks = 0, $or$cond = 0, $or$cond3 = 0, $unused = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $hash;
$2 = $buf;
$3 = $buflen;
$4 = $do_padding;
$blocksize = 16;
$5 = $0;
$6 = ((($5)) + 128|0);
$7 = ((($6)) + 32|0);
$8 = HEAP32[$7>>2]|0;
$unused = $8;
$9 = $0;
$10 = ((($9)) + 128|0);
$11 = ((($10)) + 96|0);
$12 = HEAP32[$11>>2]|0;
$ghash_fn = $12;
$burn = 0;
$13 = $3;
$14 = ($13|0)==(0);
if ($14) {
$15 = $unused;
$16 = ($15|0)!=(0);
$17 = $4;
$18 = ($17|0)!=(0);
$or$cond = $16 & $18;
if (!($or$cond)) {
STACKTOP = sp;return;
}
}
L4: while(1) {
$19 = $3;
$20 = $unused;
$21 = (($19) + ($20))|0;
$22 = $blocksize;
$23 = ($21>>>0)<($22>>>0);
$24 = $unused;
$25 = ($24>>>0)>(0);
$or$cond3 = $23 | $25;
if ($or$cond3) {
$26 = $blocksize;
$27 = $unused;
$28 = (($26) - ($27))|0;
$n = $28;
$29 = $n;
$30 = $3;
$31 = ($29>>>0)<($30>>>0);
$32 = $n;
$33 = $3;
$34 = $31 ? $32 : $33;
$n = $34;
$35 = $unused;
$36 = $0;
$37 = ((($36)) + 128|0);
$38 = ((($37)) + 16|0);
$39 = (($38) + ($35)|0);
$40 = $2;
$41 = $n;
_buf_cpy_1857($39,$40,$41);
$42 = $n;
$43 = $unused;
$44 = (($43) + ($42))|0;
$unused = $44;
$45 = $n;
$46 = $2;
$47 = (($46) + ($45)|0);
$2 = $47;
$48 = $n;
$49 = $3;
$50 = (($49) - ($48))|0;
$3 = $50;
}
$51 = $3;
$52 = ($51|0)!=(0);
L9: do {
if (!($52)) {
$53 = $4;
$54 = ($53|0)!=(0);
if (!($54)) {
break L4;
}
while(1) {
$55 = $unused;
$56 = $blocksize;
$57 = ($55>>>0)<($56>>>0);
if (!($57)) {
break L9;
}
$58 = $unused;
$59 = (($58) + 1)|0;
$unused = $59;
$60 = $0;
$61 = ((($60)) + 128|0);
$62 = ((($61)) + 16|0);
$63 = (($62) + ($58)|0);
HEAP8[$63>>0] = 0;
}
}
} while(0);
$64 = $unused;
$65 = ($64>>>0)>(0);
if ($65) {
$66 = $unused;
$67 = $blocksize;
$68 = ($66|0)==($67|0);
if (!($68)) {
label = 11;
break;
}
$69 = $ghash_fn;
$70 = $0;
$71 = $1;
$72 = $0;
$73 = ((($72)) + 128|0);
$74 = ((($73)) + 16|0);
$75 = (FUNCTION_TABLE_iiiii[$69 & 127]($70,$71,$74,1)|0);
$burn = $75;
$unused = 0;
}
$76 = $3;
$77 = $blocksize;
$78 = (($76>>>0) / ($77>>>0))&-1;
$nblocks = $78;
$79 = $nblocks;
$80 = ($79|0)!=(0);
if ($80) {
$81 = $ghash_fn;
$82 = $0;
$83 = $1;
$84 = $2;
$85 = $nblocks;
$86 = (FUNCTION_TABLE_iiiii[$81 & 127]($82,$83,$84,$85)|0);
$burn = $86;
$87 = $blocksize;
$88 = $nblocks;
$89 = Math_imul($87, $88)|0;
$90 = $2;
$91 = (($90) + ($89)|0);
$2 = $91;
$92 = $blocksize;
$93 = $nblocks;
$94 = Math_imul($92, $93)|0;
$95 = $3;
$96 = (($95) - ($94))|0;
$3 = $96;
}
$97 = $3;
$98 = ($97>>>0)>(0);
if (!($98)) {
break;
}
}
if ((label|0) == 11) {
__gcry_assert_failed(46898,46918,499,46931);
// unreachable;
}
$99 = $unused;
$100 = $0;
$101 = ((($100)) + 128|0);
$102 = ((($101)) + 32|0);
HEAP32[$102>>2] = $99;
$103 = $burn;
$104 = ($103|0)!=(0);
if (!($104)) {
STACKTOP = sp;return;
}
$105 = $burn;
___gcry_burn_stack($105);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _buf_cpy_1857($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function _gcm_add32_be128($ctr,$add) {
$ctr = $ctr|0;
$add = $add|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $blocksize = 0, $pval = 0, $val = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctr;
$1 = $add;
$blocksize = 16;
$2 = $0;
$3 = ((($2)) + 16|0);
$4 = ((($3)) + -4|0);
$pval = $4;
$5 = $pval;
$6 = HEAP32[$5>>2]|0;
$7 = (_llvm_bswap_i32(($6|0))|0);
$8 = $1;
$9 = (($7) + ($8))|0;
$val = $9;
$10 = $val;
$11 = (_llvm_bswap_i32(($10|0))|0);
$12 = $pval;
HEAP32[$12>>2] = $11;
$13 = $val;
STACKTOP = sp;return ($13|0);
}
function _gcm_check_datalen($ctr) {
$ctr = $ctr|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $ctr;
$2 = $1;
$3 = ((($2)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4>>>0)>(15);
do {
if ($5) {
$0 = 0;
} else {
$6 = $1;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8>>>0)<(15);
if ($9) {
$0 = 1;
break;
}
$10 = $1;
$11 = HEAP32[$10>>2]|0;
$12 = ($11>>>0)<=(4294967264);
if ($12) {
$0 = 1;
break;
} else {
$0 = 0;
break;
}
}
} while(0);
$13 = $0;
STACKTOP = sp;return ($13|0);
}
function __gcry_cipher_gcm_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 20|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(16);
if ($11) {
$0 = 12;
$87 = $0;
STACKTOP = sp;return ($87|0);
}
$12 = $3;
$13 = $5;
$14 = ($12>>>0)<($13>>>0);
if ($14) {
$0 = 200;
$87 = $0;
STACKTOP = sp;return ($87|0);
}
$15 = $1;
$16 = ((($15)) + 128|0);
$17 = ((($16)) + 68|0);
$18 = HEAP8[$17>>0]|0;
$19 = ($18&255) >>> 2;
$20 = $19 & 1;
$21 = $20&255;
$22 = ($21|0)!=(0);
if ($22) {
$0 = 139;
$87 = $0;
STACKTOP = sp;return ($87|0);
}
$23 = $1;
$24 = ((($23)) + 56|0);
$25 = HEAP8[$24>>0]|0;
$26 = ($25&255) >>> 2;
$27 = $26 & 1;
$28 = $27&255;
$29 = ($28|0)!=(0);
if (!($29)) {
$30 = $1;
$31 = ((($30)) + 128|0);
$32 = ((($31)) + 68|0);
$33 = HEAP8[$32>>0]|0;
$34 = $33 & 1;
$35 = $34&255;
$36 = ($35|0)!=(0);
if (!($36)) {
$37 = $1;
$38 = ((($37)) + 56|0);
$39 = HEAP8[$38>>0]|0;
$40 = ($39&255) >>> 1;
$41 = $40 & 1;
$42 = $41&255;
$43 = ($42|0)!=(0);
if (!($43)) {
$44 = $1;
(__gcry_cipher_gcm_setiv($44,76491,16)|0);
}
$45 = $1;
$46 = ((($45)) + 128|0);
$47 = ((($46)) + 68|0);
$48 = HEAP8[$47>>0]|0;
$49 = ($48&255) >>> 1;
$50 = $49 & 1;
$51 = $50&255;
$52 = ($51|0)!=(0);
if (!($52)) {
$53 = $1;
$54 = $1;
$55 = ((($54)) + 128|0);
_do_ghash_buf($53,$55,0,0,1);
$56 = $1;
$57 = ((($56)) + 128|0);
$58 = ((($57)) + 68|0);
$59 = HEAP8[$58>>0]|0;
$60 = $59 & -3;
$61 = $60 | 2;
HEAP8[$58>>0] = $61;
}
$62 = $1;
$63 = ((($62)) + 128|0);
$64 = ((($63)) + 44|0);
$65 = $5;
_gcm_bytecounter_add($64,$65);
$66 = $1;
$67 = ((($66)) + 128|0);
$68 = ((($67)) + 44|0);
$69 = (_gcm_check_datalen($68)|0);
$70 = ($69|0)!=(0);
$71 = $1;
if ($70) {
$77 = $1;
$78 = ((($77)) + 128|0);
$79 = $4;
$80 = $5;
_do_ghash_buf($71,$78,$79,$80,0);
$81 = $1;
$82 = $2;
$83 = $3;
$84 = $4;
$85 = $5;
$86 = (__gcry_cipher_ctr_encrypt($81,$82,$83,$84,$85)|0);
$0 = $86;
$87 = $0;
STACKTOP = sp;return ($87|0);
} else {
$72 = ((($71)) + 128|0);
$73 = ((($72)) + 68|0);
$74 = HEAP8[$73>>0]|0;
$75 = $74 & -5;
$76 = $75 | 4;
HEAP8[$73>>0] = $76;
$0 = 139;
$87 = $0;
STACKTOP = sp;return ($87|0);
}
}
}
$0 = 156;
$87 = $0;
STACKTOP = sp;return ($87|0);
}
function __gcry_cipher_gcm_setkey($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $0;
$2 = ((($1)) + 128|0);
$3 = ((($2)) + 80|0);
;HEAP32[$3>>2]=0|0;HEAP32[$3+4>>2]=0|0;HEAP32[$3+8>>2]=0|0;HEAP32[$3+12>>2]=0|0;
$4 = $0;
$5 = ((($4)) + 12|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 36|0);
$8 = HEAP32[$7>>2]|0;
$9 = $0;
$10 = ((($9)) + 496|0);
$11 = $0;
$12 = ((($11)) + 128|0);
$13 = ((($12)) + 80|0);
$14 = $0;
$15 = ((($14)) + 128|0);
$16 = ((($15)) + 80|0);
(FUNCTION_TABLE_iiii[$8 & 127]($10,$13,$16)|0);
$17 = $0;
_setupM($17);
STACKTOP = sp;return;
}
function _setupM($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $0;
$2 = ((($1)) + 128|0);
$3 = ((($2)) + 96|0);
HEAP32[$3>>2] = 78;
$4 = $0;
$5 = ((($4)) + 128|0);
$6 = ((($5)) + 80|0);
$7 = $0;
$8 = ((($7)) + 128|0);
$9 = ((($8)) + 100|0);
_do_fillM($6,$9);
STACKTOP = sp;return;
}
function _ghash_internal($c,$result,$buf,$nblocks) {
$c = $c|0;
$result = $result|0;
$buf = $buf|0;
$nblocks = $nblocks|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $blocksize = 0, $burn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $result;
$2 = $buf;
$3 = $nblocks;
$blocksize = 16;
$burn = 0;
while(1) {
$4 = $3;
$5 = ($4|0)!=(0);
if (!($5)) {
break;
}
$6 = $1;
$7 = $2;
$8 = $0;
$9 = ((($8)) + 128|0);
$10 = ((($9)) + 100|0);
$11 = (_do_ghash($6,$7,$10)|0);
$burn = $11;
$12 = $2;
$13 = ((($12)) + 16|0);
$2 = $13;
$14 = $3;
$15 = (($14) + -1)|0;
$3 = $15;
}
$16 = $burn;
$17 = $burn;
$18 = ($17|0)!=(0);
$19 = $18 ? 20 : 0;
$20 = (($16) + ($19))|0;
STACKTOP = sp;return ($20|0);
}
function _do_ghash($result,$buf,$gcmM) {
$result = $result|0;
$buf = $buf|0;
$gcmM = $gcmM|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $M = 0, $T = 0, $V = 0, $i = 0, $m = 0, $tmp = 0, $v = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$V = sp + 64|0;
$tmp = sp + 32|0;
$T = sp + 4|0;
$0 = $result;
$1 = $buf;
$2 = $gcmM;
$3 = $0;
$4 = $1;
_buf_xor_1866($V,$3,$4,16);
$i = 15;
$5 = $i;
$6 = (($V) + ($5)|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$v = $8;
$9 = $v;
$10 = $9 & 15;
$11 = $10<<2;
$12 = $2;
$13 = (($12) + ($11<<2)|0);
$M = $13;
$14 = $v;
$15 = $14 & 240;
$16 = $15 >>> 4;
$v = $16;
$17 = $v;
$18 = $17<<2;
$19 = $2;
$20 = (($19) + ($18<<2)|0);
$m = $20;
$21 = $i;
$22 = (($21) + -1)|0;
$i = $22;
$23 = (($V) + ($22)|0);
$24 = HEAP8[$23>>0]|0;
$25 = $24&255;
$v = $25;
$26 = $M;
$27 = HEAP32[$26>>2]|0;
$28 = $27 >>> 4;
$29 = $M;
$30 = ((($29)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = $31 << 4;
$33 = $32 & 240;
$34 = (17850 + ($33<<1)|0);
$35 = HEAP16[$34>>1]|0;
$36 = $35&65535;
$37 = (_bitshift64Shl(($36|0),0,16)|0);
$38 = tempRet0;
$39 = $28 ^ $37;
$40 = $m;
$41 = HEAP32[$40>>2]|0;
$42 = $39 ^ $41;
HEAP32[$tmp>>2] = $42;
$43 = $M;
$44 = ((($43)) + 4|0);
$45 = HEAP32[$44>>2]|0;
$46 = $45 >>> 4;
$47 = $M;
$48 = HEAP32[$47>>2]|0;
$49 = $48 << 28;
$50 = $46 ^ $49;
$51 = $m;
$52 = ((($51)) + 4|0);
$53 = HEAP32[$52>>2]|0;
$54 = $50 ^ $53;
$55 = ((($tmp)) + 4|0);
HEAP32[$55>>2] = $54;
$56 = $M;
$57 = ((($56)) + 8|0);
$58 = HEAP32[$57>>2]|0;
$59 = $58 >>> 4;
$60 = $M;
$61 = ((($60)) + 4|0);
$62 = HEAP32[$61>>2]|0;
$63 = $62 << 28;
$64 = $59 ^ $63;
$65 = $m;
$66 = ((($65)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = $64 ^ $67;
$69 = ((($tmp)) + 8|0);
HEAP32[$69>>2] = $68;
$70 = $M;
$71 = ((($70)) + 12|0);
$72 = HEAP32[$71>>2]|0;
$73 = $72 >>> 4;
$74 = $M;
$75 = ((($74)) + 8|0);
$76 = HEAP32[$75>>2]|0;
$77 = $76 << 28;
$78 = $73 ^ $77;
$79 = $m;
$80 = ((($79)) + 12|0);
$81 = HEAP32[$80>>2]|0;
$82 = $78 ^ $81;
$83 = ((($tmp)) + 12|0);
HEAP32[$83>>2] = $82;
while(1) {
$84 = $v;
$85 = $84 & 15;
$86 = $85<<2;
$87 = $2;
$88 = (($87) + ($86<<2)|0);
$M = $88;
$89 = $v;
$90 = $89 & 240;
$91 = $90 >>> 4;
$v = $91;
$92 = $v;
$93 = $92<<2;
$94 = $2;
$95 = (($94) + ($93<<2)|0);
$m = $95;
$96 = HEAP32[$tmp>>2]|0;
HEAP32[$T>>2] = $96;
$97 = ((($tmp)) + 4|0);
$98 = HEAP32[$97>>2]|0;
$99 = ((($T)) + 4|0);
HEAP32[$99>>2] = $98;
$100 = ((($tmp)) + 8|0);
$101 = HEAP32[$100>>2]|0;
$102 = ((($T)) + 8|0);
HEAP32[$102>>2] = $101;
$103 = HEAP32[$T>>2]|0;
$104 = $103 >>> 8;
$105 = ((($tmp)) + 12|0);
$106 = HEAP32[$105>>2]|0;
$107 = $106 & 255;
$108 = (17850 + ($107<<1)|0);
$109 = HEAP16[$108>>1]|0;
$110 = $109&65535;
$111 = $110 << 16;
$112 = $104 ^ $111;
$113 = $m;
$114 = HEAP32[$113>>2]|0;
$115 = $112 ^ $114;
HEAP32[$tmp>>2] = $115;
$116 = HEAP32[$T>>2]|0;
$117 = $116 << 24;
$118 = ((($tmp)) + 4|0);
$119 = HEAP32[$118>>2]|0;
$120 = $119 >>> 8;
$121 = $117 ^ $120;
$122 = $m;
$123 = ((($122)) + 4|0);
$124 = HEAP32[$123>>2]|0;
$125 = $121 ^ $124;
$126 = ((($tmp)) + 4|0);
HEAP32[$126>>2] = $125;
$127 = ((($T)) + 4|0);
$128 = HEAP32[$127>>2]|0;
$129 = $128 << 24;
$130 = ((($tmp)) + 8|0);
$131 = HEAP32[$130>>2]|0;
$132 = $131 >>> 8;
$133 = $129 ^ $132;
$134 = $m;
$135 = ((($134)) + 8|0);
$136 = HEAP32[$135>>2]|0;
$137 = $133 ^ $136;
$138 = ((($tmp)) + 8|0);
HEAP32[$138>>2] = $137;
$139 = ((($T)) + 8|0);
$140 = HEAP32[$139>>2]|0;
$141 = $140 << 24;
$142 = ((($tmp)) + 12|0);
$143 = HEAP32[$142>>2]|0;
$144 = $143 >>> 8;
$145 = $141 ^ $144;
$146 = $m;
$147 = ((($146)) + 12|0);
$148 = HEAP32[$147>>2]|0;
$149 = $145 ^ $148;
$150 = ((($tmp)) + 12|0);
HEAP32[$150>>2] = $149;
$151 = $M;
$152 = HEAP32[$151>>2]|0;
$153 = $152 >>> 4;
$154 = $M;
$155 = ((($154)) + 12|0);
$156 = HEAP32[$155>>2]|0;
$157 = $156 << 4;
$158 = $157 & 240;
$159 = (17850 + ($158<<1)|0);
$160 = HEAP16[$159>>1]|0;
$161 = $160&65535;
$162 = (_bitshift64Shl(($161|0),0,16)|0);
$163 = tempRet0;
$164 = $153 ^ $162;
$165 = HEAP32[$tmp>>2]|0;
$166 = $165 ^ $164;
HEAP32[$tmp>>2] = $166;
$167 = $M;
$168 = ((($167)) + 4|0);
$169 = HEAP32[$168>>2]|0;
$170 = $169 >>> 4;
$171 = $M;
$172 = HEAP32[$171>>2]|0;
$173 = $172 << 28;
$174 = $170 ^ $173;
$175 = ((($tmp)) + 4|0);
$176 = HEAP32[$175>>2]|0;
$177 = $176 ^ $174;
HEAP32[$175>>2] = $177;
$178 = $M;
$179 = ((($178)) + 8|0);
$180 = HEAP32[$179>>2]|0;
$181 = $180 >>> 4;
$182 = $M;
$183 = ((($182)) + 4|0);
$184 = HEAP32[$183>>2]|0;
$185 = $184 << 28;
$186 = $181 ^ $185;
$187 = ((($tmp)) + 8|0);
$188 = HEAP32[$187>>2]|0;
$189 = $188 ^ $186;
HEAP32[$187>>2] = $189;
$190 = $M;
$191 = ((($190)) + 12|0);
$192 = HEAP32[$191>>2]|0;
$193 = $192 >>> 4;
$194 = $M;
$195 = ((($194)) + 8|0);
$196 = HEAP32[$195>>2]|0;
$197 = $196 << 28;
$198 = $193 ^ $197;
$199 = ((($tmp)) + 12|0);
$200 = HEAP32[$199>>2]|0;
$201 = $200 ^ $198;
HEAP32[$199>>2] = $201;
$202 = $i;
$203 = ($202|0)==(0);
if ($203) {
break;
}
$204 = $i;
$205 = (($204) + -1)|0;
$i = $205;
$206 = (($V) + ($205)|0);
$207 = HEAP8[$206>>0]|0;
$208 = $207&255;
$v = $208;
}
$209 = $0;
$210 = HEAP32[$tmp>>2]|0;
_buf_put_be32_1867($209,$210);
$211 = $0;
$212 = ((($211)) + 4|0);
$213 = ((($tmp)) + 4|0);
$214 = HEAP32[$213>>2]|0;
_buf_put_be32_1867($212,$214);
$215 = $0;
$216 = ((($215)) + 8|0);
$217 = ((($tmp)) + 8|0);
$218 = HEAP32[$217>>2]|0;
_buf_put_be32_1867($216,$218);
$219 = $0;
$220 = ((($219)) + 12|0);
$221 = ((($tmp)) + 12|0);
$222 = HEAP32[$221>>2]|0;
_buf_put_be32_1867($220,$222);
STACKTOP = sp;return 76;
}
function _buf_xor_1866($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _buf_put_be32_1867($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
HEAP8[$6>>0] = $5;
$7 = $1;
$8 = $7 >>> 16;
$9 = $8&255;
$10 = $out;
$11 = ((($10)) + 1|0);
HEAP8[$11>>0] = $9;
$12 = $1;
$13 = $12 >>> 8;
$14 = $13&255;
$15 = $out;
$16 = ((($15)) + 2|0);
HEAP8[$16>>0] = $14;
$17 = $1;
$18 = $17&255;
$19 = $out;
$20 = ((($19)) + 3|0);
HEAP8[$20>>0] = $18;
STACKTOP = sp;return;
}
function _do_fillM($h,$M) {
$h = $h|0;
$M = $M|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0;
var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i = 0, $j = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $h;
$1 = $M;
$2 = $1;
HEAP32[$2>>2] = 0;
$3 = $1;
$4 = ((($3)) + 4|0);
HEAP32[$4>>2] = 0;
$5 = $1;
$6 = ((($5)) + 8|0);
HEAP32[$6>>2] = 0;
$7 = $1;
$8 = ((($7)) + 12|0);
HEAP32[$8>>2] = 0;
$9 = $0;
$10 = (_buf_get_be32_1868($9)|0);
$11 = $1;
$12 = ((($11)) + 128|0);
HEAP32[$12>>2] = $10;
$13 = $0;
$14 = ((($13)) + 4|0);
$15 = (_buf_get_be32_1868($14)|0);
$16 = $1;
$17 = ((($16)) + 132|0);
HEAP32[$17>>2] = $15;
$18 = $0;
$19 = ((($18)) + 8|0);
$20 = (_buf_get_be32_1868($19)|0);
$21 = $1;
$22 = ((($21)) + 136|0);
HEAP32[$22>>2] = $20;
$23 = $0;
$24 = ((($23)) + 12|0);
$25 = (_buf_get_be32_1868($24)|0);
$26 = $1;
$27 = ((($26)) + 140|0);
HEAP32[$27>>2] = $25;
$i = 4;
while(1) {
$28 = $i;
$29 = ($28|0)>(0);
if (!($29)) {
break;
}
$30 = $i;
$31 = $30<<1;
$32 = $31<<2;
$33 = (($32) + 0)|0;
$34 = $1;
$35 = (($34) + ($33<<2)|0);
$36 = HEAP32[$35>>2]|0;
$37 = $i;
$38 = $37<<2;
$39 = (($38) + 0)|0;
$40 = $1;
$41 = (($40) + ($39<<2)|0);
HEAP32[$41>>2] = $36;
$42 = $i;
$43 = $42<<1;
$44 = $43<<2;
$45 = (($44) + 1)|0;
$46 = $1;
$47 = (($46) + ($45<<2)|0);
$48 = HEAP32[$47>>2]|0;
$49 = $i;
$50 = $49<<2;
$51 = (($50) + 1)|0;
$52 = $1;
$53 = (($52) + ($51<<2)|0);
HEAP32[$53>>2] = $48;
$54 = $i;
$55 = $54<<1;
$56 = $55<<2;
$57 = (($56) + 2)|0;
$58 = $1;
$59 = (($58) + ($57<<2)|0);
$60 = HEAP32[$59>>2]|0;
$61 = $i;
$62 = $61<<2;
$63 = (($62) + 2)|0;
$64 = $1;
$65 = (($64) + ($63<<2)|0);
HEAP32[$65>>2] = $60;
$66 = $i;
$67 = $66<<1;
$68 = $67<<2;
$69 = (($68) + 3)|0;
$70 = $1;
$71 = (($70) + ($69<<2)|0);
$72 = HEAP32[$71>>2]|0;
$73 = $i;
$74 = $73<<2;
$75 = (($74) + 3)|0;
$76 = $1;
$77 = (($76) + ($75<<2)|0);
HEAP32[$77>>2] = $72;
$78 = $1;
$79 = $i;
_bshift($78,$79);
$80 = $i;
$81 = (($80|0) / 2)&-1;
$i = $81;
}
$i = 2;
while(1) {
$82 = $i;
$83 = ($82|0)<(16);
if (!($83)) {
break;
}
$j = 1;
while(1) {
$84 = $j;
$85 = $i;
$86 = ($84|0)<($85|0);
$87 = $i;
if (!($86)) {
break;
}
$88 = $87<<2;
$89 = (($88) + 0)|0;
$90 = $1;
$91 = (($90) + ($89<<2)|0);
$92 = HEAP32[$91>>2]|0;
$93 = $j;
$94 = $93<<2;
$95 = (($94) + 0)|0;
$96 = $1;
$97 = (($96) + ($95<<2)|0);
$98 = HEAP32[$97>>2]|0;
$99 = $92 ^ $98;
$100 = $i;
$101 = $j;
$102 = (($100) + ($101))|0;
$103 = $102<<2;
$104 = (($103) + 0)|0;
$105 = $1;
$106 = (($105) + ($104<<2)|0);
HEAP32[$106>>2] = $99;
$107 = $i;
$108 = $107<<2;
$109 = (($108) + 1)|0;
$110 = $1;
$111 = (($110) + ($109<<2)|0);
$112 = HEAP32[$111>>2]|0;
$113 = $j;
$114 = $113<<2;
$115 = (($114) + 1)|0;
$116 = $1;
$117 = (($116) + ($115<<2)|0);
$118 = HEAP32[$117>>2]|0;
$119 = $112 ^ $118;
$120 = $i;
$121 = $j;
$122 = (($120) + ($121))|0;
$123 = $122<<2;
$124 = (($123) + 1)|0;
$125 = $1;
$126 = (($125) + ($124<<2)|0);
HEAP32[$126>>2] = $119;
$127 = $i;
$128 = $127<<2;
$129 = (($128) + 2)|0;
$130 = $1;
$131 = (($130) + ($129<<2)|0);
$132 = HEAP32[$131>>2]|0;
$133 = $j;
$134 = $133<<2;
$135 = (($134) + 2)|0;
$136 = $1;
$137 = (($136) + ($135<<2)|0);
$138 = HEAP32[$137>>2]|0;
$139 = $132 ^ $138;
$140 = $i;
$141 = $j;
$142 = (($140) + ($141))|0;
$143 = $142<<2;
$144 = (($143) + 2)|0;
$145 = $1;
$146 = (($145) + ($144<<2)|0);
HEAP32[$146>>2] = $139;
$147 = $i;
$148 = $147<<2;
$149 = (($148) + 3)|0;
$150 = $1;
$151 = (($150) + ($149<<2)|0);
$152 = HEAP32[$151>>2]|0;
$153 = $j;
$154 = $153<<2;
$155 = (($154) + 3)|0;
$156 = $1;
$157 = (($156) + ($155<<2)|0);
$158 = HEAP32[$157>>2]|0;
$159 = $152 ^ $158;
$160 = $i;
$161 = $j;
$162 = (($160) + ($161))|0;
$163 = $162<<2;
$164 = (($163) + 3)|0;
$165 = $1;
$166 = (($165) + ($164<<2)|0);
HEAP32[$166>>2] = $159;
$167 = $j;
$168 = (($167) + 1)|0;
$j = $168;
}
$169 = $87<<1;
$i = $169;
}
STACKTOP = sp;return;
}
function _buf_get_be32_1868($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = $4 << 24;
$6 = $in;
$7 = ((($6)) + 1|0);
$8 = HEAP8[$7>>0]|0;
$9 = $8&255;
$10 = $9 << 16;
$11 = $5 | $10;
$12 = $in;
$13 = ((($12)) + 2|0);
$14 = HEAP8[$13>>0]|0;
$15 = $14&255;
$16 = $15 << 8;
$17 = $11 | $16;
$18 = $in;
$19 = ((($18)) + 3|0);
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $17 | $21;
STACKTOP = sp;return ($22|0);
}
function _bshift($M,$i) {
$M = $M|0;
$i = $i|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $8 = 0, $9 = 0, $mask = 0;
var $t = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$t = sp + 8|0;
$0 = $M;
$1 = $i;
$2 = $1;
$3 = $2<<2;
$4 = (($3) + 0)|0;
$5 = $0;
$6 = (($5) + ($4<<2)|0);
$7 = HEAP32[$6>>2]|0;
HEAP32[$t>>2] = $7;
$8 = $1;
$9 = $8<<2;
$10 = (($9) + 1)|0;
$11 = $0;
$12 = (($11) + ($10<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($t)) + 4|0);
HEAP32[$14>>2] = $13;
$15 = $1;
$16 = $15<<2;
$17 = (($16) + 2)|0;
$18 = $0;
$19 = (($18) + ($17<<2)|0);
$20 = HEAP32[$19>>2]|0;
$21 = ((($t)) + 8|0);
HEAP32[$21>>2] = $20;
$22 = $1;
$23 = $22<<2;
$24 = (($23) + 3)|0;
$25 = $0;
$26 = (($25) + ($24<<2)|0);
$27 = HEAP32[$26>>2]|0;
$28 = ((($t)) + 12|0);
HEAP32[$28>>2] = $27;
$29 = ((($t)) + 12|0);
$30 = HEAP32[$29>>2]|0;
$31 = $30 & 1;
$32 = ($31|0)!=(0);
$33 = $32 ? 225 : 0;
$mask = $33;
$34 = ((($t)) + 12|0);
$35 = HEAP32[$34>>2]|0;
$36 = $35 >>> 1;
$37 = ((($t)) + 8|0);
$38 = HEAP32[$37>>2]|0;
$39 = $38 << 31;
$40 = $36 ^ $39;
$41 = $1;
$42 = $41<<2;
$43 = (($42) + 3)|0;
$44 = $0;
$45 = (($44) + ($43<<2)|0);
HEAP32[$45>>2] = $40;
$46 = ((($t)) + 8|0);
$47 = HEAP32[$46>>2]|0;
$48 = $47 >>> 1;
$49 = ((($t)) + 4|0);
$50 = HEAP32[$49>>2]|0;
$51 = $50 << 31;
$52 = $48 ^ $51;
$53 = $1;
$54 = $53<<2;
$55 = (($54) + 2)|0;
$56 = $0;
$57 = (($56) + ($55<<2)|0);
HEAP32[$57>>2] = $52;
$58 = ((($t)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = $59 >>> 1;
$61 = HEAP32[$t>>2]|0;
$62 = $61 << 31;
$63 = $60 ^ $62;
$64 = $1;
$65 = $64<<2;
$66 = (($65) + 1)|0;
$67 = $0;
$68 = (($67) + ($66<<2)|0);
HEAP32[$68>>2] = $63;
$69 = HEAP32[$t>>2]|0;
$70 = $69 >>> 1;
$71 = $mask;
$72 = $71 << 24;
$73 = $70 ^ $72;
$74 = $1;
$75 = $74<<2;
$76 = (($75) + 0)|0;
$77 = $0;
$78 = (($77) + ($76<<2)|0);
HEAP32[$78>>2] = $73;
STACKTOP = sp;return;
}
function __gcry_cipher_ocb_get_l($c,$l_tmp,$0,$1) {
$c = $c|0;
$l_tmp = $l_tmp|0;
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ntz = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$5 = sp;
$3 = $c;
$4 = $l_tmp;
$6 = $5;
$7 = $6;
HEAP32[$7>>2] = $0;
$8 = (($6) + 4)|0;
$9 = $8;
HEAP32[$9>>2] = $1;
$10 = $5;
$11 = $10;
$12 = HEAP32[$11>>2]|0;
$13 = (($10) + 4)|0;
$14 = $13;
$15 = HEAP32[$14>>2]|0;
$16 = (__gcry_ctz64_1876($12,$15)|0);
$ntz = $16;
$17 = $ntz;
$18 = ($17|0)<(16);
if ($18) {
$19 = $ntz;
$20 = $3;
$21 = ((($20)) + 128|0);
$22 = ((($21)) + 32|0);
$23 = (($22) + ($19<<4)|0);
$2 = $23;
$36 = $2;
STACKTOP = sp;return ($36|0);
}
$24 = $4;
$25 = $3;
$26 = ((($25)) + 128|0);
$27 = ((($26)) + 32|0);
$28 = ((($27)) + 240|0);
_double_block_cpy($24,$28);
$29 = $ntz;
$30 = (($29) - 16)|0;
$ntz = $30;
while(1) {
$31 = $ntz;
$32 = ($31|0)!=(0);
$33 = $4;
if (!($32)) {
break;
}
_double_block($33);
$34 = $ntz;
$35 = (($34) + -1)|0;
$ntz = $35;
}
$2 = $33;
$36 = $2;
STACKTOP = sp;return ($36|0);
}
function __gcry_ctz64_1876($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$3 = sp;
$4 = $3;
$5 = $4;
HEAP32[$5>>2] = $0;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $1;
$8 = $3;
$9 = $8;
$10 = HEAP32[$9>>2]|0;
$11 = (($8) + 4)|0;
$12 = $11;
$13 = HEAP32[$12>>2]|0;
$14 = ($10|0)!=(0);
$15 = (0)!=(0);
$16 = $14 | $15;
$17 = $3;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (($17) + 4)|0;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
if ($16) {
$23 = (__gcry_ctz_1877($19)|0);
$2 = $23;
$26 = $2;
STACKTOP = sp;return ($26|0);
} else {
$24 = (__gcry_ctz_1877($22)|0);
$25 = (32 + ($24))|0;
$2 = $25;
$26 = $2;
STACKTOP = sp;return ($26|0);
}
return (0)|0;
}
function __gcry_ctz_1877($x) {
$x = $x|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $x;
$1 = $0;
$2 = ($1|0)!=(0);
$3 = $0;
$4 = (_llvm_cttz_i32(($3|0))|0);
$5 = $2 ? $4 : 32;
STACKTOP = sp;return ($5|0);
}
function _double_block_cpy($d,$s) {
$d = $d|0;
$s = $s|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $0;
$3 = $1;
$4 = ($2|0)!=($3|0);
if ($4) {
$5 = $0;
$6 = $1;
_buf_cpy_1878($5,$6,16);
}
$7 = $0;
_double_block($7);
STACKTOP = sp;return;
}
function _buf_cpy_1878($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function _double_block($b) {
$b = $b|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $l = 0, $l_0 = 0, $r = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$l_0 = sp + 16|0;
$l = sp + 8|0;
$r = sp;
$0 = $b;
$1 = $0;
$2 = (_buf_get_be64_1879($1)|0);
$3 = tempRet0;
$4 = $l;
$5 = $4;
HEAP32[$5>>2] = $2;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $3;
$8 = $0;
$9 = ((($8)) + 8|0);
$10 = (_buf_get_be64_1879($9)|0);
$11 = tempRet0;
$12 = $r;
$13 = $12;
HEAP32[$13>>2] = $10;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $11;
$16 = $l;
$17 = $16;
$18 = HEAP32[$17>>2]|0;
$19 = (($16) + 4)|0;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (_bitshift64Ashr(($18|0),($21|0),63)|0);
$23 = tempRet0;
$24 = $l_0;
$25 = $24;
HEAP32[$25>>2] = $22;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = $23;
$28 = $l;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 4)|0;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = $l;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (_i64Add(($30|0),($33|0),($36|0),($39|0))|0);
$41 = tempRet0;
$42 = $r;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = (($42) + 4)|0;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$48 = (_bitshift64Lshr(($44|0),($47|0),63)|0);
$49 = tempRet0;
$50 = $40 ^ $48;
$51 = $41 ^ $49;
$52 = $l;
$53 = $52;
HEAP32[$53>>2] = $50;
$54 = (($52) + 4)|0;
$55 = $54;
HEAP32[$55>>2] = $51;
$56 = $r;
$57 = $56;
$58 = HEAP32[$57>>2]|0;
$59 = (($56) + 4)|0;
$60 = $59;
$61 = HEAP32[$60>>2]|0;
$62 = $r;
$63 = $62;
$64 = HEAP32[$63>>2]|0;
$65 = (($62) + 4)|0;
$66 = $65;
$67 = HEAP32[$66>>2]|0;
$68 = (_i64Add(($58|0),($61|0),($64|0),($67|0))|0);
$69 = tempRet0;
$70 = $l_0;
$71 = $70;
$72 = HEAP32[$71>>2]|0;
$73 = (($70) + 4)|0;
$74 = $73;
$75 = HEAP32[$74>>2]|0;
$76 = $72 & 135;
$77 = $68 ^ $76;
$78 = $r;
$79 = $78;
HEAP32[$79>>2] = $77;
$80 = (($78) + 4)|0;
$81 = $80;
HEAP32[$81>>2] = $69;
$82 = $0;
$83 = $l;
$84 = $83;
$85 = HEAP32[$84>>2]|0;
$86 = (($83) + 4)|0;
$87 = $86;
$88 = HEAP32[$87>>2]|0;
_buf_put_be64_1880($82,$85,$88);
$89 = $0;
$90 = ((($89)) + 8|0);
$91 = $r;
$92 = $91;
$93 = HEAP32[$92>>2]|0;
$94 = (($91) + 4)|0;
$95 = $94;
$96 = HEAP32[$95>>2]|0;
_buf_put_be64_1880($90,$93,$96);
STACKTOP = sp;return;
}
function _buf_get_be64_1879($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = (_bitshift64Shl(($4|0),0,56)|0);
$6 = tempRet0;
$7 = $in;
$8 = ((($7)) + 1|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = (_bitshift64Shl(($10|0),0,48)|0);
$12 = tempRet0;
$13 = $5 | $11;
$14 = $6 | $12;
$15 = $in;
$16 = ((($15)) + 2|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = (_bitshift64Shl(($18|0),0,40)|0);
$20 = tempRet0;
$21 = $13 | $19;
$22 = $14 | $20;
$23 = $in;
$24 = ((($23)) + 3|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = $22 | $26;
$28 = $in;
$29 = ((($28)) + 4|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
$32 = (_bitshift64Shl(($31|0),0,24)|0);
$33 = tempRet0;
$34 = $21 | $32;
$35 = $27 | $33;
$36 = $in;
$37 = ((($36)) + 5|0);
$38 = HEAP8[$37>>0]|0;
$39 = $38&255;
$40 = (_bitshift64Shl(($39|0),0,16)|0);
$41 = tempRet0;
$42 = $34 | $40;
$43 = $35 | $41;
$44 = $in;
$45 = ((($44)) + 6|0);
$46 = HEAP8[$45>>0]|0;
$47 = $46&255;
$48 = (_bitshift64Shl(($47|0),0,8)|0);
$49 = tempRet0;
$50 = $42 | $48;
$51 = $43 | $49;
$52 = $in;
$53 = ((($52)) + 7|0);
$54 = HEAP8[$53>>0]|0;
$55 = $54&255;
$56 = $50 | $55;
tempRet0 = ($51);
STACKTOP = sp;return ($56|0);
}
function _buf_put_be64_1880($_buf,$0,$1) {
$_buf = $_buf|0;
$0 = $0|0;
$1 = $1|0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$3 = sp;
$2 = $_buf;
$4 = $3;
$5 = $4;
HEAP32[$5>>2] = $0;
$6 = (($4) + 4)|0;
$7 = $6;
HEAP32[$7>>2] = $1;
$8 = $2;
$out = $8;
$9 = $3;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$15 = (_bitshift64Lshr(($11|0),($14|0),56)|0);
$16 = tempRet0;
$17 = $15&255;
$18 = $out;
HEAP8[$18>>0] = $17;
$19 = $3;
$20 = $19;
$21 = HEAP32[$20>>2]|0;
$22 = (($19) + 4)|0;
$23 = $22;
$24 = HEAP32[$23>>2]|0;
$25 = (_bitshift64Lshr(($21|0),($24|0),48)|0);
$26 = tempRet0;
$27 = $25&255;
$28 = $out;
$29 = ((($28)) + 1|0);
HEAP8[$29>>0] = $27;
$30 = $3;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = (($30) + 4)|0;
$34 = $33;
$35 = HEAP32[$34>>2]|0;
$36 = (_bitshift64Lshr(($32|0),($35|0),40)|0);
$37 = tempRet0;
$38 = $36&255;
$39 = $out;
$40 = ((($39)) + 2|0);
HEAP8[$40>>0] = $38;
$41 = $3;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$44 = (($41) + 4)|0;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = $46&255;
$48 = $out;
$49 = ((($48)) + 3|0);
HEAP8[$49>>0] = $47;
$50 = $3;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = (($50) + 4)|0;
$54 = $53;
$55 = HEAP32[$54>>2]|0;
$56 = (_bitshift64Lshr(($52|0),($55|0),24)|0);
$57 = tempRet0;
$58 = $56&255;
$59 = $out;
$60 = ((($59)) + 4|0);
HEAP8[$60>>0] = $58;
$61 = $3;
$62 = $61;
$63 = HEAP32[$62>>2]|0;
$64 = (($61) + 4)|0;
$65 = $64;
$66 = HEAP32[$65>>2]|0;
$67 = (_bitshift64Lshr(($63|0),($66|0),16)|0);
$68 = tempRet0;
$69 = $67&255;
$70 = $out;
$71 = ((($70)) + 5|0);
HEAP8[$71>>0] = $69;
$72 = $3;
$73 = $72;
$74 = HEAP32[$73>>2]|0;
$75 = (($72) + 4)|0;
$76 = $75;
$77 = HEAP32[$76>>2]|0;
$78 = (_bitshift64Lshr(($74|0),($77|0),8)|0);
$79 = tempRet0;
$80 = $78&255;
$81 = $out;
$82 = ((($81)) + 6|0);
HEAP8[$82>>0] = $80;
$83 = $3;
$84 = $83;
$85 = HEAP32[$84>>2]|0;
$86 = (($83) + 4)|0;
$87 = $86;
$88 = HEAP32[$87>>2]|0;
$89 = $85&255;
$90 = $out;
$91 = ((($90)) + 7|0);
HEAP8[$91>>0] = $89;
STACKTOP = sp;return;
}
function __gcry_cipher_ocb_set_nonce($c,$nonce,$noncelen) {
$c = $c|0;
$nonce = $nonce|0;
$noncelen = $noncelen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vlen2 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr_long = 0;
var $_vptr_long5 = 0, $_vset = 0, $_vset3 = 0, $_vset_long = 0, $_vset_long4 = 0, $bottom = 0, $burn = 0, $i = 0, $ktop = 0, $nburn = 0, $or$cond = 0, $or$cond3 = 0, $stretch = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ktop = sp + 104|0;
$stretch = sp + 80|0;
$_vset_long = sp + 8|0;
$_vset_long4 = sp;
$1 = $c;
$2 = $nonce;
$3 = $noncelen;
$burn = 0;
$4 = $1;
$5 = ((($4)) + 56|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6 & 1;
$8 = $7&255;
$9 = ($8|0)!=(0);
if (!($9)) {
$0 = 156;
$294 = $0;
STACKTOP = sp;return ($294|0);
}
$10 = $1;
$11 = ((($10)) + 128|0);
$12 = ((($11)) + 352|0);
$13 = HEAP8[$12>>0]|0;
$14 = $13&255;
switch ($14|0) {
case 16: case 12: case 8: {
break;
}
default: {
$0 = 59;
$294 = $0;
STACKTOP = sp;return ($294|0);
}
}
$15 = $1;
$16 = ((($15)) + 12|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($17)) + 20|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($19|0)!=(16);
if ($20) {
$0 = 12;
$294 = $0;
STACKTOP = sp;return ($294|0);
}
$21 = $2;
$22 = ($21|0)!=(0|0);
if (!($22)) {
$0 = 45;
$294 = $0;
STACKTOP = sp;return ($294|0);
}
$23 = $3;
$24 = ($23>>>0)>(15);
$25 = $3;
$26 = ($25>>>0)<(8);
$or$cond = $24 | $26;
$27 = $3;
$28 = ($27>>>0)>=(16);
$or$cond3 = $or$cond | $28;
if ($or$cond3) {
$0 = 139;
$294 = $0;
STACKTOP = sp;return ($294|0);
}
dest=$ktop; stop=dest+16|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$29 = $1;
$30 = ((($29)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = ((($31)) + 36|0);
$33 = HEAP32[$32>>2]|0;
$34 = $1;
$35 = ((($34)) + 496|0);
$36 = $1;
$37 = ((($36)) + 128|0);
$38 = (FUNCTION_TABLE_iiii[$33 & 127]($35,$37,$ktop)|0);
$nburn = $38;
$39 = $nburn;
$40 = $burn;
$41 = ($39>>>0)>($40>>>0);
$42 = $nburn;
$43 = $burn;
$44 = $41 ? $42 : $43;
$burn = $44;
$45 = $1;
$46 = ((($45)) + 128|0);
$47 = ((($46)) + 16|0);
$48 = $1;
$49 = ((($48)) + 128|0);
_double_block_cpy($47,$49);
$50 = $1;
$51 = ((($50)) + 128|0);
$52 = ((($51)) + 32|0);
$53 = $1;
$54 = ((($53)) + 128|0);
$55 = ((($54)) + 16|0);
_double_block_cpy($52,$55);
$i = 1;
while(1) {
$56 = $i;
$57 = ($56|0)<(16);
if (!($57)) {
break;
}
$58 = $i;
$59 = $1;
$60 = ((($59)) + 128|0);
$61 = ((($60)) + 32|0);
$62 = (($61) + ($58<<4)|0);
$63 = $i;
$64 = (($63) - 1)|0;
$65 = $1;
$66 = ((($65)) + 128|0);
$67 = ((($66)) + 32|0);
$68 = (($67) + ($64<<4)|0);
_double_block_cpy($62,$68);
$69 = $i;
$70 = (($69) + 1)|0;
$i = $70;
}
$71 = $3;
$72 = (16 - ($71))|0;
_memset(($ktop|0),0,($72|0))|0;
$73 = $3;
$74 = (16 - ($73))|0;
$75 = (($ktop) + ($74)|0);
$76 = $2;
$77 = $3;
_buf_cpy_1878($75,$76,$77);
$78 = $1;
$79 = ((($78)) + 128|0);
$80 = ((($79)) + 352|0);
$81 = HEAP8[$80>>0]|0;
$82 = $81&255;
$83 = $82<<3;
$84 = (($83|0) % 128)&-1;
$85 = $84 << 1;
$86 = $85&255;
HEAP8[$ktop>>0] = $86;
$87 = $3;
$88 = (16 - ($87))|0;
$89 = (($88) - 1)|0;
$90 = (($ktop) + ($89)|0);
$91 = HEAP8[$90>>0]|0;
$92 = $91&255;
$93 = $92 | 1;
$94 = $93&255;
HEAP8[$90>>0] = $94;
$95 = ((($ktop)) + 15|0);
$96 = HEAP8[$95>>0]|0;
$97 = $96&255;
$98 = $97 & 63;
$bottom = $98;
$99 = ((($ktop)) + 15|0);
$100 = HEAP8[$99>>0]|0;
$101 = $100&255;
$102 = $101 & 192;
$103 = $102&255;
HEAP8[$99>>0] = $103;
$104 = $1;
$105 = ((($104)) + 12|0);
$106 = HEAP32[$105>>2]|0;
$107 = ((($106)) + 36|0);
$108 = HEAP32[$107>>2]|0;
$109 = $1;
$110 = ((($109)) + 496|0);
$111 = (FUNCTION_TABLE_iiii[$108 & 127]($110,$ktop,$ktop)|0);
$nburn = $111;
$112 = $nburn;
$113 = $burn;
$114 = ($112>>>0)>($113>>>0);
$115 = $nburn;
$116 = $burn;
$117 = $114 ? $115 : $116;
$burn = $117;
_buf_cpy_1878($stretch,$ktop,16);
$118 = ((($stretch)) + 16|0);
$119 = ((($ktop)) + 1|0);
_buf_xor_1883($118,$ktop,$119,8);
$120 = $1;
$121 = ((($120)) + 64|0);
$122 = $bottom;
_bit_copy($121,$stretch,$122,16);
$123 = $1;
$124 = ((($123)) + 56|0);
$125 = HEAP8[$124>>0]|0;
$126 = $125 & -3;
$127 = $126 | 2;
HEAP8[$124>>0] = $127;
$128 = $1;
$129 = ((($128)) + 80|0);
;HEAP32[$129>>2]=0|0;HEAP32[$129+4>>2]=0|0;HEAP32[$129+8>>2]=0|0;HEAP32[$129+12>>2]=0|0;
$130 = $1;
$131 = ((($130)) + 128|0);
$132 = ((($131)) + 304|0);
;HEAP32[$132>>2]=0|0;HEAP32[$132+4>>2]=0|0;HEAP32[$132+8>>2]=0|0;HEAP32[$132+12>>2]=0|0;
$133 = $1;
$134 = ((($133)) + 128|0);
$135 = ((($134)) + 320|0);
;HEAP32[$135>>2]=0|0;HEAP32[$135+4>>2]=0|0;HEAP32[$135+8>>2]=0|0;HEAP32[$135+12>>2]=0|0;
$136 = $1;
$137 = ((($136)) + 96|0);
;HEAP32[$137>>2]=0|0;HEAP32[$137+4>>2]=0|0;HEAP32[$137+8>>2]=0|0;HEAP32[$137+12>>2]=0|0;
$138 = $1;
$139 = ((($138)) + 112|0);
HEAP32[$139>>2] = 0;
$140 = $1;
$141 = ((($140)) + 56|0);
$142 = HEAP8[$141>>0]|0;
$143 = $142 & -5;
HEAP8[$141>>0] = $143;
$144 = $1;
$145 = ((($144)) + 56|0);
$146 = HEAP8[$145>>0]|0;
$147 = $146 & -9;
HEAP8[$145>>0] = $147;
$148 = $1;
$149 = ((($148)) + 128|0);
$150 = ((($149)) + 336|0);
$151 = $150;
$152 = $151;
HEAP32[$152>>2] = 0;
$153 = (($151) + 4)|0;
$154 = $153;
HEAP32[$154>>2] = 0;
$155 = $1;
$156 = ((($155)) + 128|0);
$157 = ((($156)) + 344|0);
$158 = $157;
$159 = $158;
HEAP32[$159>>2] = 0;
$160 = (($158) + 4)|0;
$161 = $160;
HEAP32[$161>>2] = 0;
$162 = $1;
$163 = ((($162)) + 128|0);
$164 = ((($163)) + 353|0);
$165 = HEAP8[$164>>0]|0;
$166 = $165 & -2;
HEAP8[$164>>0] = $166;
$167 = $1;
$168 = ((($167)) + 128|0);
$169 = ((($168)) + 353|0);
$170 = HEAP8[$169>>0]|0;
$171 = $170 & -3;
HEAP8[$169>>0] = $171;
$_vptr = $ktop;
$_vlen = 16;
$_vset = 0;
$172 = $_vset;
$173 = $172&255;
$174 = $_vset_long;
$175 = $174;
HEAP32[$175>>2] = $173;
$176 = (($174) + 4)|0;
$177 = $176;
HEAP32[$177>>2] = 0;
while(1) {
$178 = $_vptr;
$179 = $178;
$180 = $179 & 7;
$181 = ($180|0)!=(0);
$182 = $_vlen;
$183 = ($182|0)!=(0);
$184 = $181 ? $183 : 0;
if (!($184)) {
break;
}
$185 = $_vset;
$186 = $_vptr;
HEAP8[$186>>0] = $185;
$187 = $_vptr;
$188 = ((($187)) + 1|0);
$_vptr = $188;
$189 = $_vlen;
$190 = (($189) + -1)|0;
$_vlen = $190;
}
$191 = $_vlen;
$192 = ($191>>>0)<(8);
if (!($192)) {
$193 = $_vset_long;
$194 = $193;
$195 = HEAP32[$194>>2]|0;
$196 = (($193) + 4)|0;
$197 = $196;
$198 = HEAP32[$197>>2]|0;
$199 = (___muldi3(($195|0),($198|0),16843009,16843009)|0);
$200 = tempRet0;
$201 = $_vset_long;
$202 = $201;
HEAP32[$202>>2] = $199;
$203 = (($201) + 4)|0;
$204 = $203;
HEAP32[$204>>2] = $200;
while(1) {
$205 = $_vptr;
$_vptr_long = $205;
$206 = $_vset_long;
$207 = $206;
$208 = HEAP32[$207>>2]|0;
$209 = (($206) + 4)|0;
$210 = $209;
$211 = HEAP32[$210>>2]|0;
$212 = $_vptr_long;
$213 = $212;
$214 = $213;
HEAP32[$214>>2] = $208;
$215 = (($213) + 4)|0;
$216 = $215;
HEAP32[$216>>2] = $211;
$217 = $_vlen;
$218 = (($217) - 8)|0;
$_vlen = $218;
$219 = $_vptr;
$220 = ((($219)) + 8|0);
$_vptr = $220;
$221 = $_vlen;
$222 = ($221>>>0)>=(8);
if (!($222)) {
break;
}
}
}
while(1) {
$223 = $_vlen;
$224 = ($223|0)!=(0);
if (!($224)) {
break;
}
$225 = $_vset;
$226 = $_vptr;
HEAP8[$226>>0] = $225;
$227 = $_vptr;
$228 = ((($227)) + 1|0);
$_vptr = $228;
$229 = $_vlen;
$230 = (($229) + -1)|0;
$_vlen = $230;
}
$_vptr1 = $stretch;
$_vlen2 = 24;
$_vset3 = 0;
$231 = $_vset3;
$232 = $231&255;
$233 = $_vset_long4;
$234 = $233;
HEAP32[$234>>2] = $232;
$235 = (($233) + 4)|0;
$236 = $235;
HEAP32[$236>>2] = 0;
while(1) {
$237 = $_vptr1;
$238 = $237;
$239 = $238 & 7;
$240 = ($239|0)!=(0);
$241 = $_vlen2;
$242 = ($241|0)!=(0);
$243 = $240 ? $242 : 0;
if (!($243)) {
break;
}
$244 = $_vset3;
$245 = $_vptr1;
HEAP8[$245>>0] = $244;
$246 = $_vptr1;
$247 = ((($246)) + 1|0);
$_vptr1 = $247;
$248 = $_vlen2;
$249 = (($248) + -1)|0;
$_vlen2 = $249;
}
$250 = $_vlen2;
$251 = ($250>>>0)<(8);
if (!($251)) {
$252 = $_vset_long4;
$253 = $252;
$254 = HEAP32[$253>>2]|0;
$255 = (($252) + 4)|0;
$256 = $255;
$257 = HEAP32[$256>>2]|0;
$258 = (___muldi3(($254|0),($257|0),16843009,16843009)|0);
$259 = tempRet0;
$260 = $_vset_long4;
$261 = $260;
HEAP32[$261>>2] = $258;
$262 = (($260) + 4)|0;
$263 = $262;
HEAP32[$263>>2] = $259;
while(1) {
$264 = $_vptr1;
$_vptr_long5 = $264;
$265 = $_vset_long4;
$266 = $265;
$267 = HEAP32[$266>>2]|0;
$268 = (($265) + 4)|0;
$269 = $268;
$270 = HEAP32[$269>>2]|0;
$271 = $_vptr_long5;
$272 = $271;
$273 = $272;
HEAP32[$273>>2] = $267;
$274 = (($272) + 4)|0;
$275 = $274;
HEAP32[$275>>2] = $270;
$276 = $_vlen2;
$277 = (($276) - 8)|0;
$_vlen2 = $277;
$278 = $_vptr1;
$279 = ((($278)) + 8|0);
$_vptr1 = $279;
$280 = $_vlen2;
$281 = ($280>>>0)>=(8);
if (!($281)) {
break;
}
}
}
while(1) {
$282 = $_vlen2;
$283 = ($282|0)!=(0);
if (!($283)) {
break;
}
$284 = $_vset3;
$285 = $_vptr1;
HEAP8[$285>>0] = $284;
$286 = $_vptr1;
$287 = ((($286)) + 1|0);
$_vptr1 = $287;
$288 = $_vlen2;
$289 = (($288) + -1)|0;
$_vlen2 = $289;
}
$290 = $burn;
$291 = ($290>>>0)>(0);
if ($291) {
$292 = $burn;
$293 = (($292) + 16)|0;
___gcry_burn_stack($293);
___gcry_burn_stack_dummy();
}
$0 = 0;
$294 = $0;
STACKTOP = sp;return ($294|0);
}
function _buf_xor_1883($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _bit_copy($d,$s,$bitoff,$nbytes) {
$d = $d|0;
$s = $s|0;
$bitoff = $bitoff|0;
$nbytes = $nbytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $shift = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $bitoff;
$3 = $nbytes;
$4 = $2;
$5 = (($4>>>0) / 8)&-1;
$6 = $1;
$7 = (($6) + ($5)|0);
$1 = $7;
$8 = $2;
$9 = (($8>>>0) % 8)&-1;
$shift = $9;
$10 = $shift;
$11 = ($10|0)!=(0);
if ($11) {
while(1) {
$12 = $3;
$13 = ($12|0)!=(0);
if (!($13)) {
break;
}
$14 = $1;
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $shift;
$18 = $16 << $17;
$19 = $1;
$20 = ((($19)) + 1|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21&255;
$23 = $shift;
$24 = (8 - ($23))|0;
$25 = $22 >> $24;
$26 = $18 | $25;
$27 = $26&255;
$28 = $0;
HEAP8[$28>>0] = $27;
$29 = $3;
$30 = (($29) + -1)|0;
$3 = $30;
$31 = $0;
$32 = ((($31)) + 1|0);
$0 = $32;
$33 = $1;
$34 = ((($33)) + 1|0);
$1 = $34;
}
STACKTOP = sp;return;
} else {
while(1) {
$35 = $3;
$36 = ($35|0)!=(0);
if (!($36)) {
break;
}
$37 = $1;
$38 = HEAP8[$37>>0]|0;
$39 = $0;
HEAP8[$39>>0] = $38;
$40 = $3;
$41 = (($40) + -1)|0;
$3 = $41;
$42 = $0;
$43 = ((($42)) + 1|0);
$0 = $43;
$44 = $1;
$45 = ((($44)) + 1|0);
$1 = $45;
}
STACKTOP = sp;return;
}
}
function _buf_xor_1_1886($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
$21 = HEAP32[$19>>2]|0;
$22 = $21 ^ $18;
HEAP32[$19>>2] = $22;
$23 = $2;
$24 = (($23) - 4)|0;
$2 = $24;
}
$25 = $ldst;
$dst = $25;
$26 = $lsrc;
$src = $26;
}
while(1) {
$27 = $2;
$28 = ($27|0)!=(0);
if (!($28)) {
break;
}
$29 = $src;
$30 = ((($29)) + 1|0);
$src = $30;
$31 = HEAP8[$29>>0]|0;
$32 = $31&255;
$33 = $dst;
$34 = ((($33)) + 1|0);
$dst = $34;
$35 = HEAP8[$33>>0]|0;
$36 = $35&255;
$37 = $36 ^ $32;
$38 = $37&255;
HEAP8[$33>>0] = $38;
$39 = $2;
$40 = (($39) + -1)|0;
$2 = $40;
}
STACKTOP = sp;return;
}
function __gcry_cipher_ocb_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $outbuf;
$2 = $outbuflen;
$3 = $inbuf;
$4 = $inbuflen;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = (_ocb_crypt($5,1,$6,$7,$8,$9)|0);
STACKTOP = sp;return ($10|0);
}
function _ocb_crypt($c,$encrypt,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$encrypt = $encrypt|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0;
var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0;
var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $burn = 0, $crypt_fn = 0, $l_tmp = 0, $nblks = 0, $nburn = 0, $pad = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$l_tmp = sp + 64|0;
$pad = sp + 48|0;
$1 = $c;
$2 = $encrypt;
$3 = $outbuf;
$4 = $outbuflen;
$5 = $inbuf;
$6 = $inbuflen;
$burn = 0;
$7 = $6;
$8 = (($7>>>0) / 16)&-1;
$nblks = $8;
$9 = $1;
$10 = ((($9)) + 56|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11&255) >>> 1;
$13 = $12 & 1;
$14 = $13&255;
$15 = ($14|0)!=(0);
if ($15) {
$16 = $1;
$17 = ((($16)) + 128|0);
$18 = ((($17)) + 353|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19 & 1;
$21 = $20&255;
$22 = ($21|0)!=(0);
if (!($22)) {
$23 = $1;
$24 = ((($23)) + 12|0);
$25 = HEAP32[$24>>2]|0;
$26 = ((($25)) + 20|0);
$27 = HEAP32[$26>>2]|0;
$28 = ($27|0)!=(16);
if ($28) {
$0 = 12;
$252 = $0;
STACKTOP = sp;return ($252|0);
}
$29 = $4;
$30 = $6;
$31 = ($29>>>0)<($30>>>0);
if ($31) {
$0 = 200;
$252 = $0;
STACKTOP = sp;return ($252|0);
}
$32 = $1;
$33 = ((($32)) + 56|0);
$34 = HEAP8[$33>>0]|0;
$35 = ($34&255) >>> 3;
$36 = $35 & 1;
$37 = $36&255;
$38 = ($37|0)!=(0);
if (!($38)) {
$39 = $6;
$40 = (($39>>>0) % 16)&-1;
$41 = ($40|0)!=(0);
if ($41) {
$0 = 139;
$252 = $0;
STACKTOP = sp;return ($252|0);
}
}
$42 = $nblks;
$43 = ($42|0)!=(0);
if ($43) {
$44 = $1;
$45 = ((($44)) + 20|0);
$46 = ((($45)) + 20|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)!=(0|0);
if ($48) {
$49 = $1;
$50 = ((($49)) + 20|0);
$51 = ((($50)) + 20|0);
$52 = HEAP32[$51>>2]|0;
$53 = $1;
$54 = $3;
$55 = $5;
$56 = $nblks;
$57 = $2;
FUNCTION_TABLE_viiiii[$52 & 127]($53,$54,$55,$56,$57);
$58 = $nblks;
$59 = $58<<4;
$60 = $5;
$61 = (($60) + ($59)|0);
$5 = $61;
$62 = $nblks;
$63 = $62<<4;
$64 = $3;
$65 = (($64) + ($63)|0);
$3 = $65;
$66 = $nblks;
$67 = $66<<4;
$68 = $6;
$69 = (($68) - ($67))|0;
$6 = $69;
$70 = $nblks;
$71 = $70<<4;
$72 = $4;
$73 = (($72) - ($71))|0;
$4 = $73;
$nblks = 0;
}
}
$74 = $nblks;
$75 = ($74|0)!=(0);
if ($75) {
$76 = $2;
$77 = ($76|0)!=(0);
$78 = $1;
$79 = ((($78)) + 12|0);
$80 = HEAP32[$79>>2]|0;
if ($77) {
$81 = ((($80)) + 36|0);
$82 = HEAP32[$81>>2]|0;
$85 = $82;
} else {
$83 = ((($80)) + 40|0);
$84 = HEAP32[$83>>2]|0;
$85 = $84;
}
$crypt_fn = $85;
$86 = $2;
$87 = ($86|0)!=(0);
if ($87) {
$88 = $1;
$89 = ((($88)) + 80|0);
$90 = $5;
$91 = $nblks;
_ocb_checksum($89,$90,$91);
}
while(1) {
$92 = $6;
$93 = ($92>>>0)>=(16);
if (!($93)) {
break;
}
$94 = $1;
$95 = ((($94)) + 128|0);
$96 = ((($95)) + 336|0);
$97 = $96;
$98 = $97;
$99 = HEAP32[$98>>2]|0;
$100 = (($97) + 4)|0;
$101 = $100;
$102 = HEAP32[$101>>2]|0;
$103 = (_i64Add(($99|0),($102|0),1,0)|0);
$104 = tempRet0;
$105 = $96;
$106 = $105;
HEAP32[$106>>2] = $103;
$107 = (($105) + 4)|0;
$108 = $107;
HEAP32[$108>>2] = $104;
$109 = $1;
$110 = ((($109)) + 64|0);
$111 = $1;
$112 = $1;
$113 = ((($112)) + 128|0);
$114 = ((($113)) + 336|0);
$115 = $114;
$116 = $115;
$117 = HEAP32[$116>>2]|0;
$118 = (($115) + 4)|0;
$119 = $118;
$120 = HEAP32[$119>>2]|0;
$121 = (__gcry_cipher_ocb_get_l($111,$l_tmp,$117,$120)|0);
_buf_xor_1_1886($110,$121,16);
$122 = $3;
$123 = $1;
$124 = ((($123)) + 64|0);
$125 = $5;
_buf_xor_1883($122,$124,$125,16);
$126 = $crypt_fn;
$127 = $1;
$128 = ((($127)) + 496|0);
$129 = $3;
$130 = $3;
$131 = (FUNCTION_TABLE_iiii[$126 & 127]($128,$129,$130)|0);
$nburn = $131;
$132 = $nburn;
$133 = $burn;
$134 = ($132>>>0)>($133>>>0);
$135 = $nburn;
$136 = $burn;
$137 = $134 ? $135 : $136;
$burn = $137;
$138 = $3;
$139 = $1;
$140 = ((($139)) + 64|0);
_buf_xor_1_1886($138,$140,16);
$141 = $5;
$142 = ((($141)) + 16|0);
$5 = $142;
$143 = $6;
$144 = (($143) - 16)|0;
$6 = $144;
$145 = $3;
$146 = ((($145)) + 16|0);
$3 = $146;
$4 = -16;
}
$147 = $2;
$148 = ($147|0)!=(0);
if (!($148)) {
$149 = $1;
$150 = ((($149)) + 80|0);
$151 = $3;
$152 = $nblks;
$153 = $152<<4;
$154 = (0 - ($153))|0;
$155 = (($151) + ($154)|0);
$156 = $nblks;
_ocb_checksum($150,$155,$156);
}
}
$157 = $6;
$158 = ($157|0)!=(0);
do {
if ($158) {
$159 = $1;
$160 = ((($159)) + 64|0);
$161 = $1;
$162 = ((($161)) + 128|0);
_buf_xor_1_1886($160,$162,16);
$163 = $1;
$164 = ((($163)) + 12|0);
$165 = HEAP32[$164>>2]|0;
$166 = ((($165)) + 36|0);
$167 = HEAP32[$166>>2]|0;
$168 = $1;
$169 = ((($168)) + 496|0);
$170 = $1;
$171 = ((($170)) + 64|0);
$172 = (FUNCTION_TABLE_iiii[$167 & 127]($169,$pad,$171)|0);
$nburn = $172;
$173 = $nburn;
$174 = $burn;
$175 = ($173>>>0)>($174>>>0);
$176 = $nburn;
$177 = $burn;
$178 = $175 ? $176 : $177;
$burn = $178;
$179 = $2;
$180 = ($179|0)!=(0);
if ($180) {
$181 = $5;
$182 = $6;
_buf_cpy_1878($l_tmp,$181,$182);
$183 = $6;
$184 = (($l_tmp) + ($183)|0);
$185 = $6;
$186 = (16 - ($185))|0;
_memset(($184|0),0,($186|0))|0;
$187 = $6;
$188 = (($l_tmp) + ($187)|0);
HEAP8[$188>>0] = -128;
$189 = $1;
$190 = ((($189)) + 80|0);
_buf_xor_1_1886($190,$l_tmp,16);
$191 = $3;
$192 = $5;
$193 = $6;
_buf_xor_1883($191,$192,$pad,$193);
break;
} else {
_buf_cpy_1878($l_tmp,$pad,16);
$194 = $5;
$195 = $6;
_buf_cpy_1878($l_tmp,$194,$195);
_buf_xor_1_1886($l_tmp,$pad,16);
$196 = $6;
$197 = (($l_tmp) + ($196)|0);
HEAP8[$197>>0] = -128;
$198 = $3;
$199 = $6;
_buf_cpy_1878($198,$l_tmp,$199);
$200 = $1;
$201 = ((($200)) + 80|0);
_buf_xor_1_1886($201,$l_tmp,16);
break;
}
}
} while(0);
$202 = $1;
$203 = ((($202)) + 56|0);
$204 = HEAP8[$203>>0]|0;
$205 = ($204&255) >>> 3;
$206 = $205 & 1;
$207 = $206&255;
$208 = ($207|0)!=(0);
if ($208) {
$209 = $1;
$210 = ((($209)) + 128|0);
$211 = ((($210)) + 288|0);
$212 = $1;
$213 = ((($212)) + 80|0);
$214 = $1;
$215 = ((($214)) + 64|0);
_buf_xor_1883($211,$213,$215,16);
$216 = $1;
$217 = ((($216)) + 128|0);
$218 = ((($217)) + 288|0);
$219 = $1;
$220 = ((($219)) + 128|0);
$221 = ((($220)) + 16|0);
_buf_xor_1_1886($218,$221,16);
$222 = $1;
$223 = ((($222)) + 12|0);
$224 = HEAP32[$223>>2]|0;
$225 = ((($224)) + 36|0);
$226 = HEAP32[$225>>2]|0;
$227 = $1;
$228 = ((($227)) + 496|0);
$229 = $1;
$230 = ((($229)) + 128|0);
$231 = ((($230)) + 288|0);
$232 = $1;
$233 = ((($232)) + 128|0);
$234 = ((($233)) + 288|0);
$235 = (FUNCTION_TABLE_iiii[$226 & 127]($228,$231,$234)|0);
$nburn = $235;
$236 = $nburn;
$237 = $burn;
$238 = ($236>>>0)>($237>>>0);
$239 = $nburn;
$240 = $burn;
$241 = $238 ? $239 : $240;
$burn = $241;
$242 = $1;
$243 = ((($242)) + 128|0);
$244 = ((($243)) + 353|0);
$245 = HEAP8[$244>>0]|0;
$246 = $245 & -2;
$247 = $246 | 1;
HEAP8[$244>>0] = $247;
}
$248 = $burn;
$249 = ($248>>>0)>(0);
if ($249) {
$250 = $burn;
$251 = (($250) + 16)|0;
___gcry_burn_stack($251);
___gcry_burn_stack_dummy();
}
$0 = 0;
$252 = $0;
STACKTOP = sp;return ($252|0);
}
}
$0 = 156;
$252 = $0;
STACKTOP = sp;return ($252|0);
}
function _ocb_checksum($chksum,$plainbuf,$nblks) {
$chksum = $chksum|0;
$plainbuf = $plainbuf|0;
$nblks = $nblks|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $chksum;
$1 = $plainbuf;
$2 = $nblks;
while(1) {
$3 = $2;
$4 = ($3>>>0)>(0);
if (!($4)) {
break;
}
$5 = $0;
$6 = $1;
_buf_xor_1_1886($5,$6,16);
$7 = $1;
$8 = ((($7)) + 16|0);
$1 = $8;
$9 = $2;
$10 = (($9) + -1)|0;
$2 = $10;
}
STACKTOP = sp;return;
}
function __gcry_cipher_ocb_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $outbuf;
$2 = $outbuflen;
$3 = $inbuf;
$4 = $inbuflen;
$5 = $0;
$6 = $1;
$7 = $2;
$8 = $3;
$9 = $4;
$10 = (_ocb_crypt($5,0,$6,$7,$8,$9)|0);
STACKTOP = sp;return ($10|0);
}
function __gcry_cipher_ofb_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $blocksize = 0, $burn = 0, $enc_fn = 0, $ivp = 0, $nburn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$enc_fn = $10;
$11 = $1;
$12 = ((($11)) + 12|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($13)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$blocksize = $15;
$16 = $3;
$17 = $5;
$18 = ($16>>>0)<($17>>>0);
if ($18) {
$0 = 200;
$148 = $0;
STACKTOP = sp;return ($148|0);
}
$19 = $5;
$20 = $1;
$21 = ((($20)) + 112|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($19>>>0)<=($22>>>0);
if ($23) {
$24 = $1;
$25 = ((($24)) + 64|0);
$26 = $blocksize;
$27 = (($25) + ($26)|0);
$28 = $1;
$29 = ((($28)) + 112|0);
$30 = HEAP32[$29>>2]|0;
$31 = (0 - ($30))|0;
$32 = (($27) + ($31)|0);
$ivp = $32;
$33 = $2;
$34 = $ivp;
$35 = $4;
$36 = $5;
_buf_xor_1898($33,$34,$35,$36);
$37 = $5;
$38 = $1;
$39 = ((($38)) + 112|0);
$40 = HEAP32[$39>>2]|0;
$41 = (($40) - ($37))|0;
HEAP32[$39>>2] = $41;
$0 = 0;
$148 = $0;
STACKTOP = sp;return ($148|0);
}
$burn = 0;
$42 = $1;
$43 = ((($42)) + 112|0);
$44 = HEAP32[$43>>2]|0;
$45 = ($44|0)!=(0);
if ($45) {
$46 = $1;
$47 = ((($46)) + 112|0);
$48 = HEAP32[$47>>2]|0;
$49 = $5;
$50 = (($49) - ($48))|0;
$5 = $50;
$51 = $1;
$52 = ((($51)) + 64|0);
$53 = $blocksize;
$54 = (($52) + ($53)|0);
$55 = $1;
$56 = ((($55)) + 112|0);
$57 = HEAP32[$56>>2]|0;
$58 = (0 - ($57))|0;
$59 = (($54) + ($58)|0);
$ivp = $59;
$60 = $2;
$61 = $ivp;
$62 = $4;
$63 = $1;
$64 = ((($63)) + 112|0);
$65 = HEAP32[$64>>2]|0;
_buf_xor_1898($60,$61,$62,$65);
$66 = $1;
$67 = ((($66)) + 112|0);
$68 = HEAP32[$67>>2]|0;
$69 = $2;
$70 = (($69) + ($68)|0);
$2 = $70;
$71 = $1;
$72 = ((($71)) + 112|0);
$73 = HEAP32[$72>>2]|0;
$74 = $4;
$75 = (($74) + ($73)|0);
$4 = $75;
$76 = $1;
$77 = ((($76)) + 112|0);
HEAP32[$77>>2] = 0;
}
while(1) {
$78 = $5;
$79 = $blocksize;
$80 = ($78>>>0)>=($79>>>0);
if (!($80)) {
break;
}
$81 = $enc_fn;
$82 = $1;
$83 = ((($82)) + 496|0);
$84 = $1;
$85 = ((($84)) + 64|0);
$86 = $1;
$87 = ((($86)) + 64|0);
$88 = (FUNCTION_TABLE_iiii[$81 & 127]($83,$85,$87)|0);
$nburn = $88;
$89 = $nburn;
$90 = $burn;
$91 = ($89>>>0)>($90>>>0);
$92 = $nburn;
$93 = $burn;
$94 = $91 ? $92 : $93;
$burn = $94;
$95 = $2;
$96 = $1;
$97 = ((($96)) + 64|0);
$98 = $4;
$99 = $blocksize;
_buf_xor_1898($95,$97,$98,$99);
$100 = $blocksize;
$101 = $2;
$102 = (($101) + ($100)|0);
$2 = $102;
$103 = $blocksize;
$104 = $4;
$105 = (($104) + ($103)|0);
$4 = $105;
$106 = $blocksize;
$107 = $5;
$108 = (($107) - ($106))|0;
$5 = $108;
}
$109 = $5;
$110 = ($109|0)!=(0);
if ($110) {
$111 = $enc_fn;
$112 = $1;
$113 = ((($112)) + 496|0);
$114 = $1;
$115 = ((($114)) + 64|0);
$116 = $1;
$117 = ((($116)) + 64|0);
$118 = (FUNCTION_TABLE_iiii[$111 & 127]($113,$115,$117)|0);
$nburn = $118;
$119 = $nburn;
$120 = $burn;
$121 = ($119>>>0)>($120>>>0);
$122 = $nburn;
$123 = $burn;
$124 = $121 ? $122 : $123;
$burn = $124;
$125 = $blocksize;
$126 = $1;
$127 = ((($126)) + 112|0);
HEAP32[$127>>2] = $125;
$128 = $5;
$129 = $1;
$130 = ((($129)) + 112|0);
$131 = HEAP32[$130>>2]|0;
$132 = (($131) - ($128))|0;
HEAP32[$130>>2] = $132;
$133 = $2;
$134 = $1;
$135 = ((($134)) + 64|0);
$136 = $4;
$137 = $5;
_buf_xor_1898($133,$135,$136,$137);
$138 = $5;
$139 = $2;
$140 = (($139) + ($138)|0);
$2 = $140;
$141 = $5;
$142 = $4;
$143 = (($142) + ($141)|0);
$4 = $143;
$5 = 0;
}
$144 = $burn;
$145 = ($144>>>0)>(0);
if ($145) {
$146 = $burn;
$147 = (($146) + 16)|0;
___gcry_burn_stack($147);
___gcry_burn_stack_dummy();
}
$0 = 0;
$148 = $0;
STACKTOP = sp;return ($148|0);
}
function _buf_xor_1898($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function _poly1305_set_zeroiv($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $zero = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$zero = sp + 8|0;
$0 = $c;
;HEAP8[$zero>>0]=0|0;HEAP8[$zero+1>>0]=0|0;HEAP8[$zero+2>>0]=0|0;HEAP8[$zero+3>>0]=0|0;HEAP8[$zero+4>>0]=0|0;HEAP8[$zero+5>>0]=0|0;HEAP8[$zero+6>>0]=0|0;HEAP8[$zero+7>>0]=0|0;
$1 = $0;
$2 = (__gcry_cipher_poly1305_setiv($1,$zero,8)|0);
STACKTOP = sp;return ($2|0);
}
function __gcry_cipher_poly1305_setiv($c,$iv,$ivlen) {
$c = $c|0;
$iv = $iv|0;
$ivlen = $ivlen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $err = 0, $or$cond = 0, $tmpbuf = 0, dest = 0, label = 0, sp = 0;
var stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmpbuf = sp + 48|0;
$_vset_long = sp;
$1 = $c;
$2 = $iv;
$3 = $ivlen;
$4 = $2;
$5 = ($4|0)==(0|0);
$6 = $3;
$7 = ($6|0)!=(12);
$or$cond = $5 & $7;
if ($or$cond) {
$0 = 45;
$128 = $0;
STACKTOP = sp;return ($128|0);
}
$8 = $1;
$9 = ((($8)) + 128|0);
$10 = ((($9)) + 20|0);
dest=$10; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$11 = $1;
$12 = ((($11)) + 128|0);
HEAP32[$12>>2] = 0;
$13 = $1;
$14 = ((($13)) + 128|0);
$15 = ((($14)) + 4|0);
HEAP32[$15>>2] = 0;
$16 = $1;
$17 = ((($16)) + 128|0);
$18 = ((($17)) + 8|0);
HEAP32[$18>>2] = 0;
$19 = $1;
$20 = ((($19)) + 128|0);
$21 = ((($20)) + 8|0);
$22 = ((($21)) + 4|0);
HEAP32[$22>>2] = 0;
$23 = $1;
$24 = ((($23)) + 128|0);
$25 = ((($24)) + 16|0);
$26 = HEAP8[$25>>0]|0;
$27 = $26 & -3;
HEAP8[$25>>0] = $27;
$28 = $1;
$29 = ((($28)) + 128|0);
$30 = ((($29)) + 16|0);
$31 = HEAP8[$30>>0]|0;
$32 = $31 & -2;
HEAP8[$30>>0] = $32;
$33 = $1;
$34 = ((($33)) + 56|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35 & -5;
HEAP8[$34>>0] = $36;
$37 = $1;
$38 = ((($37)) + 56|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39 & -3;
HEAP8[$38>>0] = $40;
$41 = $1;
$42 = ((($41)) + 12|0);
$43 = HEAP32[$42>>2]|0;
$44 = ((($43)) + 60|0);
$45 = HEAP32[$44>>2]|0;
$46 = $1;
$47 = ((($46)) + 496|0);
$48 = $2;
$49 = $3;
FUNCTION_TABLE_viii[$45 & 127]($47,$48,$49);
dest=$tmpbuf; stop=dest+64|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$50 = $1;
$51 = ((($50)) + 12|0);
$52 = HEAP32[$51>>2]|0;
$53 = ((($52)) + 44|0);
$54 = HEAP32[$53>>2]|0;
$55 = $1;
$56 = ((($55)) + 496|0);
FUNCTION_TABLE_viiii[$54 & 63]($56,$tmpbuf,$tmpbuf,64);
$57 = $1;
$58 = ((($57)) + 128|0);
$59 = ((($58)) + 20|0);
$60 = (__gcry_poly1305_init($59,$tmpbuf,32)|0);
$err = $60;
$_vptr = $tmpbuf;
$_vlen = 64;
$_vset = 0;
$61 = $_vset;
$62 = $61&255;
$63 = $_vset_long;
$64 = $63;
HEAP32[$64>>2] = $62;
$65 = (($63) + 4)|0;
$66 = $65;
HEAP32[$66>>2] = 0;
while(1) {
$67 = $_vptr;
$68 = $67;
$69 = $68 & 7;
$70 = ($69|0)!=(0);
$71 = $_vlen;
$72 = ($71|0)!=(0);
$73 = $70 ? $72 : 0;
if (!($73)) {
break;
}
$74 = $_vset;
$75 = $_vptr;
HEAP8[$75>>0] = $74;
$76 = $_vptr;
$77 = ((($76)) + 1|0);
$_vptr = $77;
$78 = $_vlen;
$79 = (($78) + -1)|0;
$_vlen = $79;
}
$80 = $_vlen;
$81 = ($80>>>0)<(8);
if (!($81)) {
$82 = $_vset_long;
$83 = $82;
$84 = HEAP32[$83>>2]|0;
$85 = (($82) + 4)|0;
$86 = $85;
$87 = HEAP32[$86>>2]|0;
$88 = (___muldi3(($84|0),($87|0),16843009,16843009)|0);
$89 = tempRet0;
$90 = $_vset_long;
$91 = $90;
HEAP32[$91>>2] = $88;
$92 = (($90) + 4)|0;
$93 = $92;
HEAP32[$93>>2] = $89;
while(1) {
$94 = $_vptr;
$_vptr_long = $94;
$95 = $_vset_long;
$96 = $95;
$97 = HEAP32[$96>>2]|0;
$98 = (($95) + 4)|0;
$99 = $98;
$100 = HEAP32[$99>>2]|0;
$101 = $_vptr_long;
$102 = $101;
$103 = $102;
HEAP32[$103>>2] = $97;
$104 = (($102) + 4)|0;
$105 = $104;
HEAP32[$105>>2] = $100;
$106 = $_vlen;
$107 = (($106) - 8)|0;
$_vlen = $107;
$108 = $_vptr;
$109 = ((($108)) + 8|0);
$_vptr = $109;
$110 = $_vlen;
$111 = ($110>>>0)>=(8);
if (!($111)) {
break;
}
}
}
while(1) {
$112 = $_vlen;
$113 = ($112|0)!=(0);
if (!($113)) {
break;
}
$114 = $_vset;
$115 = $_vptr;
HEAP8[$115>>0] = $114;
$116 = $_vptr;
$117 = ((($116)) + 1|0);
$_vptr = $117;
$118 = $_vlen;
$119 = (($118) + -1)|0;
$_vlen = $119;
}
$120 = $err;
$121 = ($120|0)!=(0);
if ($121) {
$122 = $err;
$0 = $122;
$128 = $0;
STACKTOP = sp;return ($128|0);
} else {
$123 = $1;
$124 = ((($123)) + 56|0);
$125 = HEAP8[$124>>0]|0;
$126 = $125 & -3;
$127 = $126 | 2;
HEAP8[$124>>0] = $127;
$0 = 0;
$128 = $0;
STACKTOP = sp;return ($128|0);
}
return (0)|0;
}
function _poly1305_bytecounter_add($ctr,$add) {
$ctr = $ctr|0;
$add = $add|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $overflow = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $ctr;
$2 = $add;
$overflow = 0;
$3 = $2;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
$6 = (($5) + ($3))|0;
HEAP32[$4>>2] = $6;
$7 = $1;
$8 = HEAP32[$7>>2]|0;
$9 = $2;
$10 = ($8>>>0)>=($9>>>0);
if ($10) {
$11 = $overflow;
$0 = $11;
$24 = $0;
STACKTOP = sp;return ($24|0);
} else {
$12 = $1;
$13 = ((($12)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$15 = (($14) + 1)|0;
HEAP32[$13>>2] = $15;
$16 = $1;
$17 = ((($16)) + 4|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18>>>0)<(1);
$20 = $overflow;
$21 = ($20|0)!=(0);
$22 = $19 ? 1 : $21;
$23 = $22&1;
$0 = $23;
$24 = $0;
STACKTOP = sp;return ($24|0);
}
return (0)|0;
}
function __gcry_cipher_poly1305_encrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $8 = 0, $9 = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $3;
$7 = $5;
$8 = ($6>>>0)<($7>>>0);
if ($8) {
$0 = 200;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
$9 = $1;
$10 = ((($9)) + 56|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11&255) >>> 2;
$13 = $12 & 1;
$14 = $13&255;
$15 = ($14|0)!=(0);
if ($15) {
$0 = 156;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
$16 = $1;
$17 = ((($16)) + 128|0);
$18 = ((($17)) + 16|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($19&255) >>> 1;
$21 = $20 & 1;
$22 = $21&255;
$23 = ($22|0)!=(0);
if ($23) {
$0 = 139;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
$24 = $1;
$25 = ((($24)) + 56|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26&255) >>> 1;
$28 = $27 & 1;
$29 = $28&255;
$30 = ($29|0)!=(0);
if (!($30)) {
$31 = $1;
$32 = (_poly1305_set_zeroiv($31)|0);
$err = $32;
$33 = $err;
$34 = ($33|0)!=(0);
if ($34) {
$35 = $err;
$0 = $35;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
}
$36 = $1;
$37 = ((($36)) + 128|0);
$38 = ((($37)) + 16|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39 & 1;
$41 = $40&255;
$42 = ($41|0)!=(0);
if (!($42)) {
$43 = $1;
_poly1305_aad_finish($43);
}
$44 = $1;
$45 = ((($44)) + 128|0);
$46 = ((($45)) + 8|0);
$47 = $5;
$48 = (_poly1305_bytecounter_add($46,$47)|0);
$49 = ($48|0)!=(0);
$50 = $1;
if ($49) {
$51 = ((($50)) + 128|0);
$52 = ((($51)) + 16|0);
$53 = HEAP8[$52>>0]|0;
$54 = $53 & -3;
$55 = $54 | 2;
HEAP8[$52>>0] = $55;
$0 = 139;
$70 = $0;
STACKTOP = sp;return ($70|0);
} else {
$56 = ((($50)) + 12|0);
$57 = HEAP32[$56>>2]|0;
$58 = ((($57)) + 44|0);
$59 = HEAP32[$58>>2]|0;
$60 = $1;
$61 = ((($60)) + 496|0);
$62 = $2;
$63 = $4;
$64 = $5;
FUNCTION_TABLE_viiii[$59 & 63]($61,$62,$63,$64);
$65 = $1;
$66 = ((($65)) + 128|0);
$67 = ((($66)) + 20|0);
$68 = $2;
$69 = $5;
__gcry_poly1305_update($67,$68,$69);
$0 = 0;
$70 = $0;
STACKTOP = sp;return ($70|0);
}
return (0)|0;
}
function _poly1305_aad_finish($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $0;
$2 = $0;
$3 = ((($2)) + 128|0);
_poly1305_do_padding($1,$3);
$4 = $0;
$5 = ((($4)) + 128|0);
$6 = ((($5)) + 16|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7 & -2;
$9 = $8 | 1;
HEAP8[$6>>0] = $9;
$10 = $0;
$11 = ((($10)) + 128|0);
$12 = ((($11)) + 8|0);
HEAP32[$12>>2] = 0;
$13 = $0;
$14 = ((($13)) + 128|0);
$15 = ((($14)) + 8|0);
$16 = ((($15)) + 4|0);
HEAP32[$16>>2] = 0;
STACKTOP = sp;return;
}
function _poly1305_do_padding($c,$ctr) {
$c = $c|0;
$ctr = $ctr|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $padding_count = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $ctr;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($3>>>0) % 16)&-1;
$5 = ($4>>>0)>(0);
if (!($5)) {
STACKTOP = sp;return;
}
$6 = $1;
$7 = HEAP32[$6>>2]|0;
$8 = (($7>>>0) % 16)&-1;
$9 = (16 - ($8))|0;
$padding_count = $9;
$10 = $0;
$11 = ((($10)) + 128|0);
$12 = ((($11)) + 20|0);
$13 = $padding_count;
__gcry_poly1305_update($12,76507,$13);
STACKTOP = sp;return;
}
function __gcry_cipher_poly1305_decrypt($c,$outbuf,$outbuflen,$inbuf,$inbuflen) {
$c = $c|0;
$outbuf = $outbuf|0;
$outbuflen = $outbuflen|0;
$inbuf = $inbuf|0;
$inbuflen = $inbuflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $c;
$2 = $outbuf;
$3 = $outbuflen;
$4 = $inbuf;
$5 = $inbuflen;
$6 = $3;
$7 = $5;
$8 = ($6>>>0)<($7>>>0);
if ($8) {
$0 = 200;
$69 = $0;
STACKTOP = sp;return ($69|0);
}
$9 = $1;
$10 = ((($9)) + 56|0);
$11 = HEAP8[$10>>0]|0;
$12 = ($11&255) >>> 2;
$13 = $12 & 1;
$14 = $13&255;
$15 = ($14|0)!=(0);
if ($15) {
$0 = 156;
$69 = $0;
STACKTOP = sp;return ($69|0);
}
$16 = $1;
$17 = ((($16)) + 128|0);
$18 = ((($17)) + 16|0);
$19 = HEAP8[$18>>0]|0;
$20 = ($19&255) >>> 1;
$21 = $20 & 1;
$22 = $21&255;
$23 = ($22|0)!=(0);
if ($23) {
$0 = 139;
$69 = $0;
STACKTOP = sp;return ($69|0);
}
$24 = $1;
$25 = ((($24)) + 56|0);
$26 = HEAP8[$25>>0]|0;
$27 = ($26&255) >>> 1;
$28 = $27 & 1;
$29 = $28&255;
$30 = ($29|0)!=(0);
if (!($30)) {
$31 = $1;
$32 = (_poly1305_set_zeroiv($31)|0);
$err = $32;
$33 = $err;
$34 = ($33|0)!=(0);
if ($34) {
$35 = $err;
$0 = $35;
$69 = $0;
STACKTOP = sp;return ($69|0);
}
}
$36 = $1;
$37 = ((($36)) + 128|0);
$38 = ((($37)) + 16|0);
$39 = HEAP8[$38>>0]|0;
$40 = $39 & 1;
$41 = $40&255;
$42 = ($41|0)!=(0);
if (!($42)) {
$43 = $1;
_poly1305_aad_finish($43);
}
$44 = $1;
$45 = ((($44)) + 128|0);
$46 = ((($45)) + 8|0);
$47 = $5;
$48 = (_poly1305_bytecounter_add($46,$47)|0);
$49 = ($48|0)!=(0);
$50 = $1;
$51 = ((($50)) + 128|0);
if ($49) {
$52 = ((($51)) + 16|0);
$53 = HEAP8[$52>>0]|0;
$54 = $53 & -3;
$55 = $54 | 2;
HEAP8[$52>>0] = $55;
$0 = 139;
$69 = $0;
STACKTOP = sp;return ($69|0);
} else {
$56 = ((($51)) + 20|0);
$57 = $4;
$58 = $5;
__gcry_poly1305_update($56,$57,$58);
$59 = $1;
$60 = ((($59)) + 12|0);
$61 = HEAP32[$60>>2]|0;
$62 = ((($61)) + 48|0);
$63 = HEAP32[$62>>2]|0;
$64 = $1;
$65 = ((($64)) + 496|0);
$66 = $2;
$67 = $4;
$68 = $5;
FUNCTION_TABLE_viiii[$63 & 63]($65,$66,$67,$68);
$0 = 0;
$69 = $0;
STACKTOP = sp;return ($69|0);
}
return (0)|0;
}
function __gcry_cipher_poly1305_setkey($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $c;
$1 = $0;
$2 = ((($1)) + 128|0);
HEAP32[$2>>2] = 0;
$3 = $0;
$4 = ((($3)) + 128|0);
$5 = ((($4)) + 4|0);
HEAP32[$5>>2] = 0;
$6 = $0;
$7 = ((($6)) + 128|0);
$8 = ((($7)) + 8|0);
HEAP32[$8>>2] = 0;
$9 = $0;
$10 = ((($9)) + 128|0);
$11 = ((($10)) + 8|0);
$12 = ((($11)) + 4|0);
HEAP32[$12>>2] = 0;
$13 = $0;
$14 = ((($13)) + 128|0);
$15 = ((($14)) + 16|0);
$16 = HEAP8[$15>>0]|0;
$17 = $16 & -3;
HEAP8[$15>>0] = $17;
$18 = $0;
$19 = ((($18)) + 128|0);
$20 = ((($19)) + 16|0);
$21 = HEAP8[$20>>0]|0;
$22 = $21 & -2;
HEAP8[$20>>0] = $22;
$23 = $0;
$24 = ((($23)) + 56|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25 & -5;
HEAP8[$24>>0] = $26;
$27 = $0;
$28 = ((($27)) + 56|0);
$29 = HEAP8[$28>>0]|0;
$30 = $29 & -3;
HEAP8[$28>>0] = $30;
STACKTOP = sp;return;
}
function __gcry_selftest_helper_cbc($cipher,$setkey_func,$encrypt_one,$bulk_cbc_dec,$nblocks,$blocksize,$context_size) {
$cipher = $cipher|0;
$setkey_func = $setkey_func|0;
$encrypt_one = $encrypt_one|0;
$bulk_cbc_dec = $bulk_cbc_dec|0;
$nblocks = $nblocks|0;
$blocksize = $blocksize|0;
$context_size = $context_size|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0;
var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0;
var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $ciphertext = 0, $ctx = 0, $ctx_aligned_size = 0, $i = 0, $iv = 0, $iv2 = 0, $mem = 0, $memsize = 0, $offs = 0, $plaintext = 0, $plaintext2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $cipher;
$2 = $setkey_func;
$3 = $encrypt_one;
$4 = $bulk_cbc_dec;
$5 = $nblocks;
$6 = $blocksize;
$7 = $context_size;
$8 = $7;
$9 = (($8) + 15)|0;
$ctx_aligned_size = $9;
$10 = $ctx_aligned_size;
$11 = $10 & 15;
$12 = $ctx_aligned_size;
$13 = (($12) - ($11))|0;
$ctx_aligned_size = $13;
$14 = $ctx_aligned_size;
$15 = $6;
$16 = $15<<1;
$17 = (($14) + ($16))|0;
$18 = $6;
$19 = $5;
$20 = Math_imul($18, $19)|0;
$21 = ($20*3)|0;
$22 = (($17) + ($21))|0;
$23 = (($22) + 16)|0;
$memsize = $23;
$24 = $memsize;
$25 = (__gcry_calloc(1,$24)|0);
$mem = $25;
$26 = $mem;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$0 = 46944;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
$28 = $mem;
$29 = $28;
$30 = $29 & 15;
$31 = (16 - ($30))|0;
$32 = $31 & 15;
$offs = $32;
$33 = $mem;
$34 = $offs;
$35 = (($33) + ($34)|0);
$ctx = $35;
$36 = $ctx;
$37 = $ctx_aligned_size;
$38 = (($36) + ($37)|0);
$iv = $38;
$39 = $iv;
$40 = $6;
$41 = (($39) + ($40)|0);
$iv2 = $41;
$42 = $iv2;
$43 = $6;
$44 = (($42) + ($43)|0);
$plaintext = $44;
$45 = $plaintext;
$46 = $5;
$47 = $6;
$48 = Math_imul($46, $47)|0;
$49 = (($45) + ($48)|0);
$plaintext2 = $49;
$50 = $plaintext2;
$51 = $5;
$52 = $6;
$53 = Math_imul($51, $52)|0;
$54 = (($50) + ($53)|0);
$ciphertext = $54;
$55 = $2;
$56 = $ctx;
$57 = (FUNCTION_TABLE_iiii[$55 & 127]($56,16,16)|0);
$58 = ($57|0)!=(0);
if ($58) {
$59 = $mem;
__gcry_free($59);
$0 = 46970;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
$60 = $iv;
$61 = $6;
_memset(($60|0),78,($61|0))|0;
$62 = $iv2;
$63 = $6;
_memset(($62|0),78,($63|0))|0;
$i = 0;
while(1) {
$64 = $i;
$65 = $6;
$66 = ($64|0)<($65|0);
if (!($66)) {
break;
}
$67 = $i;
$68 = $67&255;
$69 = $i;
$70 = $plaintext;
$71 = (($70) + ($69)|0);
HEAP8[$71>>0] = $68;
$72 = $i;
$73 = (($72) + 1)|0;
$i = $73;
}
$74 = $ciphertext;
$75 = $iv;
$76 = $plaintext;
$77 = $6;
_buf_xor_1918($74,$75,$76,$77);
$78 = $3;
$79 = $ctx;
$80 = $ciphertext;
$81 = $ciphertext;
(FUNCTION_TABLE_iiii[$78 & 127]($79,$80,$81)|0);
$82 = $iv;
$83 = $ciphertext;
$84 = $6;
_memcpy(($82|0),($83|0),($84|0))|0;
$85 = $4;
$86 = $ctx;
$87 = $iv2;
$88 = $plaintext2;
$89 = $ciphertext;
FUNCTION_TABLE_viiiii[$85 & 127]($86,$87,$88,$89,1);
$90 = $plaintext2;
$91 = $plaintext;
$92 = $6;
$93 = (_memcmp($90,$91,$92)|0);
$94 = ($93|0)!=(0);
if ($94) {
$95 = $mem;
__gcry_free($95);
$0 = 46984;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
$96 = $iv2;
$97 = $iv;
$98 = $6;
$99 = (_memcmp($96,$97,$98)|0);
$100 = ($99|0)!=(0);
if ($100) {
$101 = $mem;
__gcry_free($101);
$0 = 46984;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
$102 = $iv;
$103 = $6;
_memset(($102|0),95,($103|0))|0;
$104 = $iv2;
$105 = $6;
_memset(($104|0),95,($105|0))|0;
$i = 0;
while(1) {
$106 = $i;
$107 = $5;
$108 = $6;
$109 = Math_imul($107, $108)|0;
$110 = ($106|0)<($109|0);
if (!($110)) {
break;
}
$111 = $i;
$112 = $111&255;
$113 = $i;
$114 = $plaintext;
$115 = (($114) + ($113)|0);
HEAP8[$115>>0] = $112;
$116 = $i;
$117 = (($116) + 1)|0;
$i = $117;
}
$i = 0;
while(1) {
$118 = $i;
$119 = $5;
$120 = $6;
$121 = Math_imul($119, $120)|0;
$122 = ($118|0)<($121|0);
if (!($122)) {
break;
}
$123 = $i;
$124 = $ciphertext;
$125 = (($124) + ($123)|0);
$126 = $iv;
$127 = $i;
$128 = $plaintext;
$129 = (($128) + ($127)|0);
$130 = $6;
_buf_xor_1918($125,$126,$129,$130);
$131 = $3;
$132 = $ctx;
$133 = $i;
$134 = $ciphertext;
$135 = (($134) + ($133)|0);
$136 = $i;
$137 = $ciphertext;
$138 = (($137) + ($136)|0);
(FUNCTION_TABLE_iiii[$131 & 127]($132,$135,$138)|0);
$139 = $iv;
$140 = $i;
$141 = $ciphertext;
$142 = (($141) + ($140)|0);
$143 = $6;
_memcpy(($139|0),($142|0),($143|0))|0;
$144 = $6;
$145 = $i;
$146 = (($145) + ($144))|0;
$i = $146;
}
$147 = $4;
$148 = $ctx;
$149 = $iv2;
$150 = $plaintext2;
$151 = $ciphertext;
$152 = $5;
FUNCTION_TABLE_viiiii[$147 & 127]($148,$149,$150,$151,$152);
$153 = $plaintext2;
$154 = $plaintext;
$155 = $5;
$156 = $6;
$157 = Math_imul($155, $156)|0;
$158 = (_memcmp($153,$154,$157)|0);
$159 = ($158|0)!=(0);
if ($159) {
$160 = $mem;
__gcry_free($160);
$0 = 46984;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
$161 = $iv2;
$162 = $iv;
$163 = $6;
$164 = (_memcmp($161,$162,$163)|0);
$165 = ($164|0)!=(0);
$166 = $mem;
__gcry_free($166);
if ($165) {
$0 = 46984;
$167 = $0;
STACKTOP = sp;return ($167|0);
} else {
$0 = 0;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
return (0)|0;
}
function _buf_xor_1918($_dst,$_src1,$_src2,$len) {
$_dst = $_dst|0;
$_src1 = $_src1|0;
$_src2 = $_src2|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc1 = 0, $lsrc2 = 0, $src1 = 0, $src2 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src1;
$2 = $_src2;
$3 = $len;
$4 = $0;
$dst = $4;
$5 = $1;
$src1 = $5;
$6 = $2;
$src2 = $6;
$longmask = 3;
$7 = $dst;
$8 = $7;
$9 = $src1;
$10 = $9;
$11 = $8 | $10;
$12 = $src2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst;
$ldst = $17;
$18 = $src1;
$lsrc1 = $18;
$19 = $src2;
$lsrc2 = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc1;
$23 = ((($22)) + 4|0);
$lsrc1 = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $lsrc2;
$26 = ((($25)) + 4|0);
$lsrc2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $24 ^ $27;
$29 = $ldst;
$30 = ((($29)) + 4|0);
$ldst = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst;
$dst = $33;
$34 = $lsrc1;
$src1 = $34;
$35 = $lsrc2;
$src2 = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src1;
$39 = ((($38)) + 1|0);
$src1 = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $src2;
$43 = ((($42)) + 1|0);
$src2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $41 ^ $45;
$47 = $46&255;
$48 = $dst;
$49 = ((($48)) + 1|0);
$dst = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function __gcry_selftest_helper_cfb($cipher,$setkey_func,$encrypt_one,$bulk_cfb_dec,$nblocks,$blocksize,$context_size) {
$cipher = $cipher|0;
$setkey_func = $setkey_func|0;
$encrypt_one = $encrypt_one|0;
$bulk_cfb_dec = $bulk_cfb_dec|0;
$nblocks = $nblocks|0;
$blocksize = $blocksize|0;
$context_size = $context_size|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $ciphertext = 0, $ctx = 0;
var $ctx_aligned_size = 0, $i = 0, $iv = 0, $iv2 = 0, $mem = 0, $memsize = 0, $offs = 0, $plaintext = 0, $plaintext2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $cipher;
$2 = $setkey_func;
$3 = $encrypt_one;
$4 = $bulk_cfb_dec;
$5 = $nblocks;
$6 = $blocksize;
$7 = $context_size;
$8 = $7;
$9 = (($8) + 15)|0;
$ctx_aligned_size = $9;
$10 = $ctx_aligned_size;
$11 = $10 & 15;
$12 = $ctx_aligned_size;
$13 = (($12) - ($11))|0;
$ctx_aligned_size = $13;
$14 = $ctx_aligned_size;
$15 = $6;
$16 = $15<<1;
$17 = (($14) + ($16))|0;
$18 = $6;
$19 = $5;
$20 = Math_imul($18, $19)|0;
$21 = ($20*3)|0;
$22 = (($17) + ($21))|0;
$23 = (($22) + 16)|0;
$memsize = $23;
$24 = $memsize;
$25 = (__gcry_calloc(1,$24)|0);
$mem = $25;
$26 = $mem;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$0 = 46944;
$157 = $0;
STACKTOP = sp;return ($157|0);
}
$28 = $mem;
$29 = $28;
$30 = $29 & 15;
$31 = (16 - ($30))|0;
$32 = $31 & 15;
$offs = $32;
$33 = $mem;
$34 = $offs;
$35 = (($33) + ($34)|0);
$ctx = $35;
$36 = $ctx;
$37 = $ctx_aligned_size;
$38 = (($36) + ($37)|0);
$iv = $38;
$39 = $iv;
$40 = $6;
$41 = (($39) + ($40)|0);
$iv2 = $41;
$42 = $iv2;
$43 = $6;
$44 = (($42) + ($43)|0);
$plaintext = $44;
$45 = $plaintext;
$46 = $5;
$47 = $6;
$48 = Math_imul($46, $47)|0;
$49 = (($45) + ($48)|0);
$plaintext2 = $49;
$50 = $plaintext2;
$51 = $5;
$52 = $6;
$53 = Math_imul($51, $52)|0;
$54 = (($50) + ($53)|0);
$ciphertext = $54;
$55 = $2;
$56 = $ctx;
$57 = (FUNCTION_TABLE_iiii[$55 & 127]($56,32,16)|0);
$58 = ($57|0)!=(0);
if ($58) {
$59 = $mem;
__gcry_free($59);
$0 = 46970;
$157 = $0;
STACKTOP = sp;return ($157|0);
}
$60 = $iv;
$61 = $6;
_memset(($60|0),-45,($61|0))|0;
$62 = $iv2;
$63 = $6;
_memset(($62|0),-45,($63|0))|0;
$i = 0;
while(1) {
$64 = $i;
$65 = $6;
$66 = ($64|0)<($65|0);
if (!($66)) {
break;
}
$67 = $i;
$68 = $67&255;
$69 = $i;
$70 = $plaintext;
$71 = (($70) + ($69)|0);
HEAP8[$71>>0] = $68;
$72 = $i;
$73 = (($72) + 1)|0;
$i = $73;
}
$74 = $3;
$75 = $ctx;
$76 = $ciphertext;
$77 = $iv;
(FUNCTION_TABLE_iiii[$74 & 127]($75,$76,$77)|0);
$78 = $iv;
$79 = $ciphertext;
$80 = $plaintext;
$81 = $6;
_buf_xor_2dst_1922($78,$79,$80,$81);
$82 = $4;
$83 = $ctx;
$84 = $iv2;
$85 = $plaintext2;
$86 = $ciphertext;
FUNCTION_TABLE_viiiii[$82 & 127]($83,$84,$85,$86,1);
$87 = $plaintext2;
$88 = $plaintext;
$89 = $6;
$90 = (_memcmp($87,$88,$89)|0);
$91 = ($90|0)!=(0);
if ($91) {
$92 = $mem;
__gcry_free($92);
$0 = 47033;
$157 = $0;
STACKTOP = sp;return ($157|0);
}
$93 = $iv2;
$94 = $iv;
$95 = $6;
$96 = (_memcmp($93,$94,$95)|0);
$97 = ($96|0)!=(0);
if ($97) {
$98 = $mem;
__gcry_free($98);
$0 = 47033;
$157 = $0;
STACKTOP = sp;return ($157|0);
}
$99 = $iv;
$100 = $6;
_memset(($99|0),-26,($100|0))|0;
$101 = $iv2;
$102 = $6;
_memset(($101|0),-26,($102|0))|0;
$i = 0;
while(1) {
$103 = $i;
$104 = $5;
$105 = $6;
$106 = Math_imul($104, $105)|0;
$107 = ($103|0)<($106|0);
if (!($107)) {
break;
}
$108 = $i;
$109 = $108&255;
$110 = $i;
$111 = $plaintext;
$112 = (($111) + ($110)|0);
HEAP8[$112>>0] = $109;
$113 = $i;
$114 = (($113) + 1)|0;
$i = $114;
}
$i = 0;
while(1) {
$115 = $i;
$116 = $5;
$117 = $6;
$118 = Math_imul($116, $117)|0;
$119 = ($115|0)<($118|0);
if (!($119)) {
break;
}
$120 = $3;
$121 = $ctx;
$122 = $i;
$123 = $ciphertext;
$124 = (($123) + ($122)|0);
$125 = $iv;
(FUNCTION_TABLE_iiii[$120 & 127]($121,$124,$125)|0);
$126 = $iv;
$127 = $i;
$128 = $ciphertext;
$129 = (($128) + ($127)|0);
$130 = $i;
$131 = $plaintext;
$132 = (($131) + ($130)|0);
$133 = $6;
_buf_xor_2dst_1922($126,$129,$132,$133);
$134 = $6;
$135 = $i;
$136 = (($135) + ($134))|0;
$i = $136;
}
$137 = $4;
$138 = $ctx;
$139 = $iv2;
$140 = $plaintext2;
$141 = $ciphertext;
$142 = $5;
FUNCTION_TABLE_viiiii[$137 & 127]($138,$139,$140,$141,$142);
$143 = $plaintext2;
$144 = $plaintext;
$145 = $5;
$146 = $6;
$147 = Math_imul($145, $146)|0;
$148 = (_memcmp($143,$144,$147)|0);
$149 = ($148|0)!=(0);
if ($149) {
$150 = $mem;
__gcry_free($150);
$0 = 47033;
$157 = $0;
STACKTOP = sp;return ($157|0);
}
$151 = $iv2;
$152 = $iv;
$153 = $6;
$154 = (_memcmp($151,$152,$153)|0);
$155 = ($154|0)!=(0);
$156 = $mem;
__gcry_free($156);
if ($155) {
$0 = 47033;
$157 = $0;
STACKTOP = sp;return ($157|0);
} else {
$0 = 0;
$157 = $0;
STACKTOP = sp;return ($157|0);
}
return (0)|0;
}
function _buf_xor_2dst_1922($_dst1,$_dst2,$_src,$len) {
$_dst1 = $_dst1|0;
$_dst2 = $_dst2|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst1 = 0, $dst2 = 0, $ldst1 = 0, $ldst2 = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst1;
$1 = $_dst2;
$2 = $_src;
$3 = $len;
$4 = $0;
$dst1 = $4;
$5 = $1;
$dst2 = $5;
$6 = $2;
$src = $6;
$longmask = 3;
$7 = $src;
$8 = $7;
$9 = $dst1;
$10 = $9;
$11 = $8 | $10;
$12 = $dst2;
$13 = $12;
$14 = $11 | $13;
$15 = $14 & 3;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = $dst1;
$ldst1 = $17;
$18 = $dst2;
$ldst2 = $18;
$19 = $src;
$lsrc = $19;
while(1) {
$20 = $3;
$21 = ($20>>>0)>=(4);
if (!($21)) {
break;
}
$22 = $lsrc;
$23 = ((($22)) + 4|0);
$lsrc = $23;
$24 = HEAP32[$22>>2]|0;
$25 = $ldst2;
$26 = ((($25)) + 4|0);
$ldst2 = $26;
$27 = HEAP32[$25>>2]|0;
$28 = $27 ^ $24;
HEAP32[$25>>2] = $28;
$29 = $ldst1;
$30 = ((($29)) + 4|0);
$ldst1 = $30;
HEAP32[$29>>2] = $28;
$31 = $3;
$32 = (($31) - 4)|0;
$3 = $32;
}
$33 = $ldst1;
$dst1 = $33;
$34 = $ldst2;
$dst2 = $34;
$35 = $lsrc;
$src = $35;
}
while(1) {
$36 = $3;
$37 = ($36|0)!=(0);
if (!($37)) {
break;
}
$38 = $src;
$39 = ((($38)) + 1|0);
$src = $39;
$40 = HEAP8[$38>>0]|0;
$41 = $40&255;
$42 = $dst2;
$43 = ((($42)) + 1|0);
$dst2 = $43;
$44 = HEAP8[$42>>0]|0;
$45 = $44&255;
$46 = $45 ^ $41;
$47 = $46&255;
HEAP8[$42>>0] = $47;
$48 = $dst1;
$49 = ((($48)) + 1|0);
$dst1 = $49;
HEAP8[$48>>0] = $47;
$50 = $3;
$51 = (($50) + -1)|0;
$3 = $51;
}
STACKTOP = sp;return;
}
function __gcry_selftest_helper_ctr($cipher,$setkey_func,$encrypt_one,$bulk_ctr_enc,$nblocks,$blocksize,$context_size) {
$cipher = $cipher|0;
$setkey_func = $setkey_func|0;
$encrypt_one = $encrypt_one|0;
$bulk_ctr_enc = $bulk_ctr_enc|0;
$nblocks = $nblocks|0;
$blocksize = $blocksize|0;
$context_size = $context_size|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $ciphertext = 0, $ciphertext2 = 0, $ctx = 0, $ctx_aligned_size = 0, $diff = 0, $i = 0, $iv = 0, $iv2 = 0, $j = 0, $mem = 0, $memsize = 0, $offs = 0, $plaintext = 0, $plaintext2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $cipher;
$2 = $setkey_func;
$3 = $encrypt_one;
$4 = $bulk_ctr_enc;
$5 = $nblocks;
$6 = $blocksize;
$7 = $context_size;
$8 = $7;
$9 = (($8) + 15)|0;
$ctx_aligned_size = $9;
$10 = $ctx_aligned_size;
$11 = $10 & 15;
$12 = $ctx_aligned_size;
$13 = (($12) - ($11))|0;
$ctx_aligned_size = $13;
$14 = $ctx_aligned_size;
$15 = $6;
$16 = $15<<1;
$17 = (($14) + ($16))|0;
$18 = $6;
$19 = $5;
$20 = Math_imul($18, $19)|0;
$21 = $20<<2;
$22 = (($17) + ($21))|0;
$23 = (($22) + 16)|0;
$memsize = $23;
$24 = $memsize;
$25 = (__gcry_calloc(1,$24)|0);
$mem = $25;
$26 = $mem;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$0 = 46944;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
$28 = $mem;
$29 = $28;
$30 = $29 & 15;
$31 = (16 - ($30))|0;
$32 = $31 & 15;
$offs = $32;
$33 = $mem;
$34 = $offs;
$35 = (($33) + ($34)|0);
$ctx = $35;
$36 = $ctx;
$37 = $ctx_aligned_size;
$38 = (($36) + ($37)|0);
$iv = $38;
$39 = $iv;
$40 = $6;
$41 = (($39) + ($40)|0);
$iv2 = $41;
$42 = $iv2;
$43 = $6;
$44 = (($42) + ($43)|0);
$plaintext = $44;
$45 = $plaintext;
$46 = $5;
$47 = $6;
$48 = Math_imul($46, $47)|0;
$49 = (($45) + ($48)|0);
$plaintext2 = $49;
$50 = $plaintext2;
$51 = $5;
$52 = $6;
$53 = Math_imul($51, $52)|0;
$54 = (($50) + ($53)|0);
$ciphertext = $54;
$55 = $ciphertext;
$56 = $5;
$57 = $6;
$58 = Math_imul($56, $57)|0;
$59 = (($55) + ($58)|0);
$ciphertext2 = $59;
$60 = $2;
$61 = $ctx;
$62 = (FUNCTION_TABLE_iiii[$60 & 127]($61,48,16)|0);
$63 = ($62|0)!=(0);
if ($63) {
$64 = $mem;
__gcry_free($64);
$0 = 46970;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
$65 = $iv;
$66 = $6;
_memset(($65|0),-1,($66|0))|0;
$i = 0;
while(1) {
$67 = $i;
$68 = $6;
$69 = ($67|0)<($68|0);
if (!($69)) {
break;
}
$70 = $i;
$71 = $70&255;
$72 = $i;
$73 = $plaintext;
$74 = (($73) + ($72)|0);
HEAP8[$74>>0] = $71;
$75 = $i;
$76 = (($75) + 1)|0;
$i = $76;
}
$77 = $3;
$78 = $ctx;
$79 = $ciphertext;
$80 = $iv;
(FUNCTION_TABLE_iiii[$77 & 127]($78,$79,$80)|0);
$i = 0;
while(1) {
$81 = $i;
$82 = $6;
$83 = ($81|0)<($82|0);
if (!($83)) {
break;
}
$84 = $i;
$85 = $plaintext;
$86 = (($85) + ($84)|0);
$87 = HEAP8[$86>>0]|0;
$88 = $87&255;
$89 = $i;
$90 = $ciphertext;
$91 = (($90) + ($89)|0);
$92 = HEAP8[$91>>0]|0;
$93 = $92&255;
$94 = $93 ^ $88;
$95 = $94&255;
HEAP8[$91>>0] = $95;
$96 = $i;
$97 = (($96) + 1)|0;
$i = $97;
}
$98 = $6;
$i = $98;
while(1) {
$99 = $i;
$100 = ($99|0)>(0);
if (!($100)) {
break;
}
$101 = $i;
$102 = (($101) - 1)|0;
$103 = $iv;
$104 = (($103) + ($102)|0);
$105 = HEAP8[$104>>0]|0;
$106 = (($105) + 1)<<24>>24;
HEAP8[$104>>0] = $106;
$107 = $i;
$108 = (($107) - 1)|0;
$109 = $iv;
$110 = (($109) + ($108)|0);
$111 = HEAP8[$110>>0]|0;
$112 = ($111<<24>>24)!=(0);
if ($112) {
break;
}
$113 = $i;
$114 = (($113) + -1)|0;
$i = $114;
}
$115 = $iv2;
$116 = $6;
_memset(($115|0),-1,($116|0))|0;
$117 = $4;
$118 = $ctx;
$119 = $iv2;
$120 = $plaintext2;
$121 = $ciphertext;
FUNCTION_TABLE_viiiii[$117 & 127]($118,$119,$120,$121,1);
$122 = $plaintext2;
$123 = $plaintext;
$124 = $6;
$125 = (_memcmp($122,$123,$124)|0);
$126 = ($125|0)!=(0);
if ($126) {
$127 = $mem;
__gcry_free($127);
$0 = 47082;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
$128 = $iv2;
$129 = $iv;
$130 = $6;
$131 = (_memcmp($128,$129,$130)|0);
$132 = ($131|0)!=(0);
if ($132) {
$133 = $mem;
__gcry_free($133);
$0 = 47082;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
$134 = $iv;
$135 = $6;
$136 = (($135) - 4)|0;
_memset(($134|0),87,($136|0))|0;
$137 = $6;
$138 = (($137) - 1)|0;
$139 = $iv;
$140 = (($139) + ($138)|0);
HEAP8[$140>>0] = 1;
$141 = $6;
$142 = (($141) - 2)|0;
$143 = $iv;
$144 = (($143) + ($142)|0);
HEAP8[$144>>0] = 0;
$145 = $6;
$146 = (($145) - 3)|0;
$147 = $iv;
$148 = (($147) + ($146)|0);
HEAP8[$148>>0] = 0;
$149 = $6;
$150 = (($149) - 4)|0;
$151 = $iv;
$152 = (($151) + ($150)|0);
HEAP8[$152>>0] = 0;
$153 = $iv2;
$154 = $6;
$155 = (($154) - 4)|0;
_memset(($153|0),87,($155|0))|0;
$156 = $6;
$157 = (($156) - 1)|0;
$158 = $iv2;
$159 = (($158) + ($157)|0);
HEAP8[$159>>0] = 1;
$160 = $6;
$161 = (($160) - 2)|0;
$162 = $iv2;
$163 = (($162) + ($161)|0);
HEAP8[$163>>0] = 0;
$164 = $6;
$165 = (($164) - 3)|0;
$166 = $iv2;
$167 = (($166) + ($165)|0);
HEAP8[$167>>0] = 0;
$168 = $6;
$169 = (($168) - 4)|0;
$170 = $iv2;
$171 = (($170) + ($169)|0);
HEAP8[$171>>0] = 0;
$i = 0;
while(1) {
$172 = $i;
$173 = $6;
$174 = $5;
$175 = Math_imul($173, $174)|0;
$176 = ($172|0)<($175|0);
if (!($176)) {
break;
}
$177 = $i;
$178 = $177&255;
$179 = $i;
$180 = $plaintext;
$181 = (($180) + ($179)|0);
HEAP8[$181>>0] = $178;
$182 = $i;
$183 = $plaintext2;
$184 = (($183) + ($182)|0);
HEAP8[$184>>0] = $178;
$185 = $i;
$186 = (($185) + 1)|0;
$i = $186;
}
$i = 0;
while(1) {
$187 = $i;
$188 = $6;
$189 = $5;
$190 = Math_imul($188, $189)|0;
$191 = ($187|0)<($190|0);
if (!($191)) {
break;
}
$192 = $3;
$193 = $ctx;
$194 = $i;
$195 = $ciphertext;
$196 = (($195) + ($194)|0);
$197 = $iv;
(FUNCTION_TABLE_iiii[$192 & 127]($193,$196,$197)|0);
$j = 0;
while(1) {
$198 = $j;
$199 = $6;
$200 = ($198|0)<($199|0);
if (!($200)) {
break;
}
$201 = $i;
$202 = $j;
$203 = (($201) + ($202))|0;
$204 = $plaintext;
$205 = (($204) + ($203)|0);
$206 = HEAP8[$205>>0]|0;
$207 = $206&255;
$208 = $i;
$209 = $j;
$210 = (($208) + ($209))|0;
$211 = $ciphertext;
$212 = (($211) + ($210)|0);
$213 = HEAP8[$212>>0]|0;
$214 = $213&255;
$215 = $214 ^ $207;
$216 = $215&255;
HEAP8[$212>>0] = $216;
$217 = $j;
$218 = (($217) + 1)|0;
$j = $218;
}
$219 = $6;
$j = $219;
while(1) {
$220 = $j;
$221 = ($220|0)>(0);
if (!($221)) {
break;
}
$222 = $j;
$223 = (($222) - 1)|0;
$224 = $iv;
$225 = (($224) + ($223)|0);
$226 = HEAP8[$225>>0]|0;
$227 = (($226) + 1)<<24>>24;
HEAP8[$225>>0] = $227;
$228 = $j;
$229 = (($228) - 1)|0;
$230 = $iv;
$231 = (($230) + ($229)|0);
$232 = HEAP8[$231>>0]|0;
$233 = ($232<<24>>24)!=(0);
if ($233) {
break;
}
$234 = $j;
$235 = (($234) + -1)|0;
$j = $235;
}
$236 = $6;
$237 = $i;
$238 = (($237) + ($236))|0;
$i = $238;
}
$239 = $4;
$240 = $ctx;
$241 = $iv2;
$242 = $ciphertext2;
$243 = $plaintext2;
$244 = $5;
FUNCTION_TABLE_viiiii[$239 & 127]($240,$241,$242,$243,$244);
$245 = $ciphertext2;
$246 = $ciphertext;
$247 = $6;
$248 = $5;
$249 = Math_imul($247, $248)|0;
$250 = (_memcmp($245,$246,$249)|0);
$251 = ($250|0)!=(0);
if ($251) {
$252 = $mem;
__gcry_free($252);
$0 = 47082;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
$253 = $iv2;
$254 = $iv;
$255 = $6;
$256 = (_memcmp($253,$254,$255)|0);
$257 = ($256|0)!=(0);
if ($257) {
$258 = $mem;
__gcry_free($258);
$0 = 47082;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
$diff = 0;
while(1) {
$259 = $diff;
$260 = $5;
$261 = ($259|0)<($260|0);
if (!($261)) {
label = 56;
break;
}
$262 = $iv;
$263 = $6;
_memset(($262|0),-1,($263|0))|0;
$264 = $diff;
$265 = $6;
$266 = (($265) - 1)|0;
$267 = $iv;
$268 = (($267) + ($266)|0);
$269 = HEAP8[$268>>0]|0;
$270 = $269&255;
$271 = (($270) - ($264))|0;
$272 = $271&255;
HEAP8[$268>>0] = $272;
$273 = $iv;
$274 = ((($273)) + 1|0);
HEAP8[$274>>0] = 0;
$275 = $iv;
HEAP8[$275>>0] = 0;
$276 = $iv;
$277 = ((($276)) + 2|0);
HEAP8[$277>>0] = 7;
$i = 0;
while(1) {
$278 = $i;
$279 = $6;
$280 = $5;
$281 = Math_imul($279, $280)|0;
$282 = ($278|0)<($281|0);
if (!($282)) {
break;
}
$283 = $i;
$284 = $283&255;
$285 = $i;
$286 = $plaintext;
$287 = (($286) + ($285)|0);
HEAP8[$287>>0] = $284;
$288 = $i;
$289 = (($288) + 1)|0;
$i = $289;
}
$i = 0;
while(1) {
$290 = $i;
$291 = $6;
$292 = $5;
$293 = Math_imul($291, $292)|0;
$294 = ($290|0)<($293|0);
if (!($294)) {
break;
}
$295 = $3;
$296 = $ctx;
$297 = $i;
$298 = $ciphertext;
$299 = (($298) + ($297)|0);
$300 = $iv;
(FUNCTION_TABLE_iiii[$295 & 127]($296,$299,$300)|0);
$j = 0;
while(1) {
$301 = $j;
$302 = $6;
$303 = ($301|0)<($302|0);
if (!($303)) {
break;
}
$304 = $i;
$305 = $j;
$306 = (($304) + ($305))|0;
$307 = $plaintext;
$308 = (($307) + ($306)|0);
$309 = HEAP8[$308>>0]|0;
$310 = $309&255;
$311 = $i;
$312 = $j;
$313 = (($311) + ($312))|0;
$314 = $ciphertext;
$315 = (($314) + ($313)|0);
$316 = HEAP8[$315>>0]|0;
$317 = $316&255;
$318 = $317 ^ $310;
$319 = $318&255;
HEAP8[$315>>0] = $319;
$320 = $j;
$321 = (($320) + 1)|0;
$j = $321;
}
$322 = $6;
$j = $322;
while(1) {
$323 = $j;
$324 = ($323|0)>(0);
if (!($324)) {
break;
}
$325 = $j;
$326 = (($325) - 1)|0;
$327 = $iv;
$328 = (($327) + ($326)|0);
$329 = HEAP8[$328>>0]|0;
$330 = (($329) + 1)<<24>>24;
HEAP8[$328>>0] = $330;
$331 = $j;
$332 = (($331) - 1)|0;
$333 = $iv;
$334 = (($333) + ($332)|0);
$335 = HEAP8[$334>>0]|0;
$336 = ($335<<24>>24)!=(0);
if ($336) {
break;
}
$337 = $j;
$338 = (($337) + -1)|0;
$j = $338;
}
$339 = $6;
$340 = $i;
$341 = (($340) + ($339))|0;
$i = $341;
}
$342 = $iv2;
$343 = $6;
_memset(($342|0),-1,($343|0))|0;
$344 = $diff;
$345 = $6;
$346 = (($345) - 1)|0;
$347 = $iv2;
$348 = (($347) + ($346)|0);
$349 = HEAP8[$348>>0]|0;
$350 = $349&255;
$351 = (($350) - ($344))|0;
$352 = $351&255;
HEAP8[$348>>0] = $352;
$353 = $iv2;
$354 = ((($353)) + 1|0);
HEAP8[$354>>0] = 0;
$355 = $iv2;
HEAP8[$355>>0] = 0;
$356 = $iv2;
$357 = ((($356)) + 2|0);
HEAP8[$357>>0] = 7;
$358 = $4;
$359 = $ctx;
$360 = $iv2;
$361 = $plaintext2;
$362 = $ciphertext;
$363 = $5;
FUNCTION_TABLE_viiiii[$358 & 127]($359,$360,$361,$362,$363);
$364 = $plaintext2;
$365 = $plaintext;
$366 = $6;
$367 = $5;
$368 = Math_imul($366, $367)|0;
$369 = (_memcmp($364,$365,$368)|0);
$370 = ($369|0)!=(0);
if ($370) {
label = 52;
break;
}
$372 = $iv2;
$373 = $iv;
$374 = $6;
$375 = (_memcmp($372,$373,$374)|0);
$376 = ($375|0)!=(0);
if ($376) {
label = 54;
break;
}
$378 = $diff;
$379 = (($378) + 1)|0;
$diff = $379;
}
if ((label|0) == 52) {
$371 = $mem;
__gcry_free($371);
$0 = 47082;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
else if ((label|0) == 54) {
$377 = $mem;
__gcry_free($377);
$0 = 47082;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
else if ((label|0) == 56) {
$380 = $mem;
__gcry_free($380);
$0 = 0;
$381 = $0;
STACKTOP = sp;return ($381|0);
}
return (0)|0;
}
function _ecc_generate($genparms,$r_skey) {
$genparms = $genparms|0;
$r_skey = $r_skey|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0;
var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0;
var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0;
var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0;
var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $E = 0, $Gx = 0, $Gy = 0, $Qx = 0, $Qy = 0, $base = 0, $ctx = 0, $curve_flags = 0, $curve_info = 0;
var $curve_name = 0, $encpk = 0, $encpklen = 0, $flags = 0, $l1 = 0, $nbits = 0, $or$cond = 0, $public = 0, $rc = 0, $secret = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer3 = 0, $vararg_buffer38 = 0, $vararg_buffer47 = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0;
var $vararg_ptr2 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr23 = 0, $vararg_ptr24 = 0, $vararg_ptr25 = 0, $vararg_ptr26 = 0, $vararg_ptr27 = 0, $vararg_ptr28 = 0, $vararg_ptr29 = 0, $vararg_ptr30 = 0, $vararg_ptr31 = 0, $vararg_ptr32 = 0, $vararg_ptr33 = 0, $vararg_ptr34 = 0, $vararg_ptr35 = 0, $vararg_ptr36 = 0, $vararg_ptr37 = 0, $vararg_ptr41 = 0;
var $vararg_ptr42 = 0, $vararg_ptr43 = 0, $vararg_ptr44 = 0, $vararg_ptr45 = 0, $vararg_ptr46 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer47 = sp + 160|0;
$vararg_buffer38 = sp + 128|0;
$vararg_buffer17 = sp + 48|0;
$vararg_buffer15 = sp + 40|0;
$vararg_buffer12 = sp + 32|0;
$vararg_buffer9 = sp + 24|0;
$vararg_buffer6 = sp + 16|0;
$vararg_buffer3 = sp + 8|0;
$vararg_buffer = sp;
$nbits = sp + 328|0;
$E = sp + 284|0;
$sk = sp + 224|0;
$Qx = sp + 212|0;
$Qy = sp + 208|0;
$curve_info = sp + 192|0;
$curve_flags = sp + 188|0;
$flags = sp + 172|0;
$encpk = sp + 168|0;
$encpklen = sp + 164|0;
$1 = $genparms;
$2 = $r_skey;
$Gx = 0;
$Gy = 0;
HEAP32[$Qx>>2] = 0;
HEAP32[$Qy>>2] = 0;
$curve_name = 0;
$ctx = 0;
HEAP32[$curve_info>>2] = 0;
HEAP32[$curve_flags>>2] = 0;
$base = 0;
$public = 0;
$secret = 0;
HEAP32[$flags>>2] = 0;
dest=$E; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
dest=$sk; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$3 = $1;
$4 = (__gcry_pk_util_get_nbits($3,$nbits)|0);
$rc = $4;
$5 = $rc;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $rc;
$0 = $7;
$250 = $0;
STACKTOP = sp;return ($250|0);
}
$8 = $1;
$9 = (__gcry_sexp_find_token($8,47184,0)|0);
$l1 = $9;
$10 = $l1;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $l1;
$13 = (__gcry_sexp_nth_string($12,1)|0);
$curve_name = $13;
$14 = $l1;
__gcry_sexp_release($14);
$15 = $curve_name;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$0 = 65;
$250 = $0;
STACKTOP = sp;return ($250|0);
}
}
$17 = $1;
$18 = (__gcry_sexp_find_token($17,47190,0)|0);
$l1 = $18;
$19 = $l1;
$20 = ($19|0)!=(0|0);
if ($20) {
$21 = $l1;
$22 = (__gcry_pk_util_parse_flaglist($21,$flags,0)|0);
$rc = $22;
$23 = $l1;
__gcry_sexp_release($23);
$24 = $rc;
$25 = ($24|0)!=(0);
if (!($25)) {
label = 8;
}
} else {
label = 8;
}
do {
if ((label|0) == 8) {
$26 = $1;
$27 = (__gcry_sexp_find_token($26,47196,0)|0);
$l1 = $27;
$28 = $l1;
$29 = ($28|0)!=(0|0);
if ($29) {
$30 = HEAP32[$flags>>2]|0;
$31 = $30 | 32;
HEAP32[$flags>>2] = $31;
$32 = $l1;
__gcry_sexp_release($32);
}
$33 = HEAP32[$nbits>>2]|0;
$34 = ($33|0)!=(0);
$35 = $curve_name;
$36 = ($35|0)!=(0|0);
$or$cond = $34 | $36;
if (!($or$cond)) {
$0 = 68;
$250 = $0;
STACKTOP = sp;return ($250|0);
}
$37 = HEAP32[$nbits>>2]|0;
$38 = $curve_name;
$39 = (__gcry_ecc_fill_in_curve($37,$38,$E,$nbits)|0);
$rc = $39;
$40 = $curve_name;
__gcry_free($40);
$curve_name = 0;
$41 = $rc;
$42 = ($41|0)!=(0);
if (!($42)) {
$43 = (__gcry_get_debug_flag(1)|0);
$44 = ($43|0)!=(0);
if ($44) {
$45 = HEAP32[$E>>2]|0;
$46 = (__gcry_ecc_model2str($45)|0);
$47 = ((($E)) + 4|0);
$48 = HEAP32[$47>>2]|0;
$49 = (__gcry_ecc_dialect2str($48)|0);
HEAP32[$vararg_buffer>>2] = $46;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $49;
__gcry_log_debug(47210,$vararg_buffer);
$50 = ((($E)) + 40|0);
$51 = HEAP32[$50>>2]|0;
$52 = ($51|0)!=(0|0);
if ($52) {
$53 = ((($E)) + 40|0);
$54 = HEAP32[$53>>2]|0;
HEAP32[$vararg_buffer3>>2] = $54;
__gcry_log_debug(47235,$vararg_buffer3);
}
$55 = ((($E)) + 8|0);
$56 = HEAP32[$55>>2]|0;
__gcry_log_printmpi(47257,$56);
$57 = ((($E)) + 12|0);
$58 = HEAP32[$57>>2]|0;
__gcry_log_printmpi(47273,$58);
$59 = ((($E)) + 16|0);
$60 = HEAP32[$59>>2]|0;
__gcry_log_printmpi(47289,$60);
$61 = ((($E)) + 32|0);
$62 = HEAP32[$61>>2]|0;
__gcry_log_printmpi(47305,$62);
$63 = ((($E)) + 36|0);
$64 = HEAP32[$63>>2]|0;
__gcry_log_printmpi(47321,$64);
$65 = ((($E)) + 20|0);
__gcry_mpi_point_log(47337,$65,0);
}
$66 = HEAP32[$E>>2]|0;
$67 = ((($E)) + 4|0);
$68 = HEAP32[$67>>2]|0;
$69 = ((($E)) + 8|0);
$70 = HEAP32[$69>>2]|0;
$71 = ((($E)) + 12|0);
$72 = HEAP32[$71>>2]|0;
$73 = ((($E)) + 16|0);
$74 = HEAP32[$73>>2]|0;
$75 = (__gcry_mpi_ec_p_internal_new($66,$68,0,$70,$72,$74)|0);
$ctx = $75;
$76 = HEAP32[$flags>>2]|0;
$77 = $76 & 4096;
$78 = ($77|0)!=(0);
$79 = $ctx;
$80 = HEAP32[$flags>>2]|0;
if ($78) {
$81 = (__gcry_ecc_eddsa_genkey($sk,$E,$79,$80)|0);
$rc = $81;
} else {
$82 = HEAP32[$nbits>>2]|0;
$83 = (_nist_generate_key($sk,$E,$79,$80,$82,$Qx,$Qy)|0);
$rc = $83;
}
$84 = $rc;
$85 = ($84|0)!=(0);
if (!($85)) {
$86 = (__gcry_mpi_new(0)|0);
$Gx = $86;
$87 = (__gcry_mpi_new(0)|0);
$Gy = $87;
$88 = $Gx;
$89 = $Gy;
$90 = ((($sk)) + 20|0);
$91 = $ctx;
$92 = (__gcry_mpi_ec_get_affine($88,$89,$90,$91)|0);
$93 = ($92|0)!=(0);
if ($93) {
HEAP32[$vararg_buffer6>>2] = 47727;
__gcry_log_fatal(47351,$vararg_buffer6);
// unreachable;
}
$94 = $Gx;
$95 = $Gy;
$96 = ((($sk)) + 8|0);
$97 = HEAP32[$96>>2]|0;
$98 = (__gcry_ecc_ec2os($94,$95,$97)|0);
$base = $98;
$99 = ((($sk)) + 4|0);
$100 = HEAP32[$99>>2]|0;
$101 = ($100|0)==(1);
do {
if ($101) {
$102 = HEAP32[$flags>>2]|0;
$103 = $102 & 2048;
$104 = ($103|0)!=(0);
if ($104) {
label = 28;
} else {
$105 = ((($sk)) + 44|0);
$106 = $ctx;
$107 = $Gx;
$108 = $Gy;
$109 = HEAP32[$flags>>2]|0;
$110 = $109 & 1024;
$111 = ($110|0)!=(0);
$112 = $111 ^ 1;
$113 = $112 ^ 1;
$114 = $113&1;
$115 = (__gcry_ecc_eddsa_encodepoint($105,$106,$107,$108,$114,$encpk,$encpklen)|0);
$rc = $115;
$116 = $rc;
$117 = ($116|0)!=(0);
if (!($117)) {
$119 = (__gcry_mpi_new(0)|0);
$public = $119;
$120 = $public;
$121 = HEAP32[$encpk>>2]|0;
$122 = HEAP32[$encpklen>>2]|0;
$123 = $122<<3;
(__gcry_mpi_set_opaque($120,$121,$123)|0);
HEAP32[$encpk>>2] = 0;
break;
}
$118 = $rc;
$0 = $118;
$250 = $0;
STACKTOP = sp;return ($250|0);
}
} else {
label = 28;
}
} while(0);
if ((label|0) == 28) {
$124 = HEAP32[$Qx>>2]|0;
$125 = ($124|0)!=(0|0);
if (!($125)) {
$126 = (__gcry_mpi_new(0)|0);
HEAP32[$Qx>>2] = $126;
$127 = (__gcry_mpi_new(0)|0);
HEAP32[$Qy>>2] = $127;
$128 = HEAP32[$Qx>>2]|0;
$129 = HEAP32[$Qy>>2]|0;
$130 = ((($sk)) + 44|0);
$131 = $ctx;
$132 = (__gcry_mpi_ec_get_affine($128,$129,$130,$131)|0);
$133 = ($132|0)!=(0);
if ($133) {
HEAP32[$vararg_buffer9>>2] = 47399;
__gcry_log_fatal(47351,$vararg_buffer9);
// unreachable;
}
}
$134 = HEAP32[$Qx>>2]|0;
$135 = HEAP32[$Qy>>2]|0;
$136 = ((($sk)) + 8|0);
$137 = HEAP32[$136>>2]|0;
$138 = (__gcry_ecc_ec2os($134,$135,$137)|0);
$public = $138;
}
$139 = ((($sk)) + 56|0);
$140 = HEAP32[$139>>2]|0;
$secret = $140;
$141 = ((($sk)) + 56|0);
HEAP32[$141>>2] = 0;
$142 = ((($E)) + 40|0);
$143 = HEAP32[$142>>2]|0;
$144 = ($143|0)!=(0|0);
if ($144) {
$145 = ((($E)) + 40|0);
$146 = HEAP32[$145>>2]|0;
HEAP32[$vararg_buffer12>>2] = $146;
$147 = (__gcry_sexp_build($curve_info,0,47729,$vararg_buffer12)|0);
$rc = $147;
$148 = $rc;
$149 = ($148|0)!=(0);
if ($149) {
break;
}
}
$150 = HEAP32[$flags>>2]|0;
$151 = $150 & 512;
$152 = ($151|0)!=(0);
if ($152) {
label = 36;
} else {
$153 = HEAP32[$flags>>2]|0;
$154 = $153 & 4096;
$155 = ($154|0)!=(0);
if ($155) {
label = 36;
}
}
if ((label|0) == 36) {
$156 = HEAP32[$flags>>2]|0;
$157 = $156 & 512;
$158 = ($157|0)!=(0);
if ($158) {
$159 = HEAP32[$flags>>2]|0;
$160 = $159 & 4096;
$161 = ($160|0)!=(0);
if ($161) {
$166 = 47768;
} else {
label = 38;
}
} else {
label = 38;
}
if ((label|0) == 38) {
$162 = HEAP32[$flags>>2]|0;
$163 = $162 & 512;
$164 = ($163|0)!=(0);
$165 = $164 ? 47740 : 47754;
$166 = $165;
}
$167 = (__gcry_sexp_build($curve_flags,0,$166,$vararg_buffer15)|0);
$rc = $167;
$168 = $rc;
$169 = ($168|0)!=(0);
if ($169) {
break;
}
}
$170 = HEAP32[$flags>>2]|0;
$171 = $170 & 512;
$172 = ($171|0)!=(0);
if ($172) {
$173 = ((($E)) + 40|0);
$174 = HEAP32[$173>>2]|0;
$175 = ($174|0)!=(0|0);
if ($175) {
$176 = $2;
$177 = HEAP32[$curve_info>>2]|0;
$178 = HEAP32[$curve_flags>>2]|0;
$179 = ((($sk)) + 8|0);
$180 = HEAP32[$179>>2]|0;
$181 = ((($sk)) + 12|0);
$182 = HEAP32[$181>>2]|0;
$183 = ((($sk)) + 16|0);
$184 = HEAP32[$183>>2]|0;
$185 = $base;
$186 = ((($sk)) + 32|0);
$187 = HEAP32[$186>>2]|0;
$188 = ((($sk)) + 36|0);
$189 = HEAP32[$188>>2]|0;
$190 = $public;
$191 = HEAP32[$curve_info>>2]|0;
$192 = HEAP32[$curve_flags>>2]|0;
$193 = ((($sk)) + 8|0);
$194 = HEAP32[$193>>2]|0;
$195 = ((($sk)) + 12|0);
$196 = HEAP32[$195>>2]|0;
$197 = ((($sk)) + 16|0);
$198 = HEAP32[$197>>2]|0;
$199 = $base;
$200 = ((($sk)) + 32|0);
$201 = HEAP32[$200>>2]|0;
$202 = ((($sk)) + 36|0);
$203 = HEAP32[$202>>2]|0;
$204 = $public;
$205 = $secret;
HEAP32[$vararg_buffer17>>2] = $177;
$vararg_ptr20 = ((($vararg_buffer17)) + 4|0);
HEAP32[$vararg_ptr20>>2] = $178;
$vararg_ptr21 = ((($vararg_buffer17)) + 8|0);
HEAP32[$vararg_ptr21>>2] = $180;
$vararg_ptr22 = ((($vararg_buffer17)) + 12|0);
HEAP32[$vararg_ptr22>>2] = $182;
$vararg_ptr23 = ((($vararg_buffer17)) + 16|0);
HEAP32[$vararg_ptr23>>2] = $184;
$vararg_ptr24 = ((($vararg_buffer17)) + 20|0);
HEAP32[$vararg_ptr24>>2] = $185;
$vararg_ptr25 = ((($vararg_buffer17)) + 24|0);
HEAP32[$vararg_ptr25>>2] = $187;
$vararg_ptr26 = ((($vararg_buffer17)) + 28|0);
HEAP32[$vararg_ptr26>>2] = $189;
$vararg_ptr27 = ((($vararg_buffer17)) + 32|0);
HEAP32[$vararg_ptr27>>2] = $190;
$vararg_ptr28 = ((($vararg_buffer17)) + 36|0);
HEAP32[$vararg_ptr28>>2] = $191;
$vararg_ptr29 = ((($vararg_buffer17)) + 40|0);
HEAP32[$vararg_ptr29>>2] = $192;
$vararg_ptr30 = ((($vararg_buffer17)) + 44|0);
HEAP32[$vararg_ptr30>>2] = $194;
$vararg_ptr31 = ((($vararg_buffer17)) + 48|0);
HEAP32[$vararg_ptr31>>2] = $196;
$vararg_ptr32 = ((($vararg_buffer17)) + 52|0);
HEAP32[$vararg_ptr32>>2] = $198;
$vararg_ptr33 = ((($vararg_buffer17)) + 56|0);
HEAP32[$vararg_ptr33>>2] = $199;
$vararg_ptr34 = ((($vararg_buffer17)) + 60|0);
HEAP32[$vararg_ptr34>>2] = $201;
$vararg_ptr35 = ((($vararg_buffer17)) + 64|0);
HEAP32[$vararg_ptr35>>2] = $203;
$vararg_ptr36 = ((($vararg_buffer17)) + 68|0);
HEAP32[$vararg_ptr36>>2] = $204;
$vararg_ptr37 = ((($vararg_buffer17)) + 72|0);
HEAP32[$vararg_ptr37>>2] = $205;
$206 = (__gcry_sexp_build($176,0,47788,$vararg_buffer17)|0);
$rc = $206;
} else {
label = 43;
}
} else {
label = 43;
}
if ((label|0) == 43) {
$207 = $2;
$208 = HEAP32[$curve_info>>2]|0;
$209 = HEAP32[$curve_flags>>2]|0;
$210 = $public;
$211 = HEAP32[$curve_info>>2]|0;
$212 = HEAP32[$curve_flags>>2]|0;
$213 = $public;
$214 = $secret;
HEAP32[$vararg_buffer38>>2] = $208;
$vararg_ptr41 = ((($vararg_buffer38)) + 4|0);
HEAP32[$vararg_ptr41>>2] = $209;
$vararg_ptr42 = ((($vararg_buffer38)) + 8|0);
HEAP32[$vararg_ptr42>>2] = $210;
$vararg_ptr43 = ((($vararg_buffer38)) + 12|0);
HEAP32[$vararg_ptr43>>2] = $211;
$vararg_ptr44 = ((($vararg_buffer38)) + 16|0);
HEAP32[$vararg_ptr44>>2] = $212;
$vararg_ptr45 = ((($vararg_buffer38)) + 20|0);
HEAP32[$vararg_ptr45>>2] = $213;
$vararg_ptr46 = ((($vararg_buffer38)) + 24|0);
HEAP32[$vararg_ptr46>>2] = $214;
$215 = (__gcry_sexp_build($207,0,47924,$vararg_buffer38)|0);
$rc = $215;
}
$216 = $rc;
$217 = ($216|0)!=(0);
if (!($217)) {
$218 = (__gcry_get_debug_flag(1)|0);
$219 = ($218|0)!=(0);
if ($219) {
$220 = ((($sk)) + 8|0);
$221 = HEAP32[$220>>2]|0;
__gcry_log_printmpi(48000,$221);
$222 = ((($sk)) + 12|0);
$223 = HEAP32[$222>>2]|0;
__gcry_log_printmpi(48016,$223);
$224 = ((($sk)) + 16|0);
$225 = HEAP32[$224>>2]|0;
__gcry_log_printmpi(48032,$225);
$226 = $base;
__gcry_log_printmpi(48048,$226);
$227 = ((($sk)) + 32|0);
$228 = HEAP32[$227>>2]|0;
__gcry_log_printmpi(48064,$228);
$229 = ((($sk)) + 36|0);
$230 = HEAP32[$229>>2]|0;
__gcry_log_printmpi(48080,$230);
$231 = $public;
__gcry_log_printmpi(48096,$231);
$232 = $secret;
__gcry_log_printmpi(48112,$232);
$233 = HEAP32[$flags>>2]|0;
$234 = $233 & 4096;
$235 = ($234|0)!=(0);
if ($235) {
__gcry_log_debug(48128,$vararg_buffer47);
}
}
}
}
}
}
} while(0);
$236 = $secret;
__gcry_mpi_free($236);
$237 = $public;
__gcry_mpi_free($237);
$238 = $base;
__gcry_mpi_free($238);
__gcry_ecc_curve_free($sk);
$239 = ((($sk)) + 44|0);
__gcry_mpi_point_free_parts($239);
$240 = ((($sk)) + 56|0);
$241 = HEAP32[$240>>2]|0;
__gcry_mpi_free($241);
__gcry_ecc_curve_free($E);
$242 = $Gx;
__gcry_mpi_free($242);
$243 = $Gy;
__gcry_mpi_free($243);
$244 = HEAP32[$Qx>>2]|0;
__gcry_mpi_free($244);
$245 = HEAP32[$Qy>>2]|0;
__gcry_mpi_free($245);
$246 = $ctx;
__gcry_mpi_ec_free($246);
$247 = HEAP32[$curve_flags>>2]|0;
__gcry_sexp_release($247);
$248 = HEAP32[$curve_info>>2]|0;
__gcry_sexp_release($248);
$249 = $rc;
$0 = $249;
$250 = $0;
STACKTOP = sp;return ($250|0);
}
function _nist_generate_key($sk,$E,$ctx,$flags,$nbits,$r_x,$r_y) {
$sk = $sk|0;
$E = $E|0;
$ctx = $ctx|0;
$flags = $flags|0;
$nbits = $nbits|0;
$r_x = $r_x|0;
$r_y = $r_y|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $Q = 0, $negative = 0, $pbits = 0, $random_level = 0, $rndbuf = 0, $vararg_buffer = 0;
var $vararg_buffer1 = 0, $vararg_buffer3 = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$Q = sp + 44|0;
$0 = $sk;
$1 = $E;
$2 = $ctx;
$3 = $flags;
$4 = $nbits;
$5 = $r_x;
$6 = $r_y;
$7 = $1;
$8 = ((($7)) + 8|0);
$9 = HEAP32[$8>>2]|0;
$10 = (__gcry_mpi_get_nbits($9)|0);
$pbits = $10;
__gcry_mpi_point_init($Q);
$11 = $3;
$12 = $11 & 32;
$13 = ($12|0)!=(0);
if ($13) {
$random_level = 1;
} else {
$random_level = 2;
}
$14 = $2;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)==(1);
if ($17) {
$18 = (__gcry_mpi_snew(256)|0);
$19 = $0;
$20 = ((($19)) + 56|0);
HEAP32[$20>>2] = $18;
$21 = $random_level;
$22 = (__gcry_random_bytes_secure(32,$21)|0);
$rndbuf = $22;
$23 = $rndbuf;
$24 = HEAP8[$23>>0]|0;
$25 = $24 << 24 >> 24;
$26 = $25 & 127;
$27 = $26&255;
HEAP8[$23>>0] = $27;
$28 = $rndbuf;
$29 = HEAP8[$28>>0]|0;
$30 = $29 << 24 >> 24;
$31 = $30 | 64;
$32 = $31&255;
HEAP8[$28>>0] = $32;
$33 = $rndbuf;
$34 = ((($33)) + 31|0);
$35 = HEAP8[$34>>0]|0;
$36 = $35 << 24 >> 24;
$37 = $36 & 248;
$38 = $37&255;
HEAP8[$34>>0] = $38;
$39 = $0;
$40 = ((($39)) + 56|0);
$41 = HEAP32[$40>>2]|0;
$42 = $rndbuf;
__gcry_mpi_set_buffer($41,$42,32,0);
$43 = $rndbuf;
__gcry_free($43);
} else {
$44 = $1;
$45 = ((($44)) + 32|0);
$46 = HEAP32[$45>>2]|0;
$47 = $random_level;
$48 = (__gcry_dsa_gen_k($46,$47)|0);
$49 = $0;
$50 = ((($49)) + 56|0);
HEAP32[$50>>2] = $48;
}
$51 = $0;
$52 = ((($51)) + 56|0);
$53 = HEAP32[$52>>2]|0;
$54 = $1;
$55 = ((($54)) + 20|0);
$56 = $2;
__gcry_mpi_ec_mul_point($Q,$53,$55,$56);
$57 = $1;
$58 = HEAP32[$57>>2]|0;
$59 = $0;
HEAP32[$59>>2] = $58;
$60 = $1;
$61 = ((($60)) + 4|0);
$62 = HEAP32[$61>>2]|0;
$63 = $0;
$64 = ((($63)) + 4|0);
HEAP32[$64>>2] = $62;
$65 = $1;
$66 = ((($65)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = (__gcry_mpi_copy($67)|0);
$69 = $0;
$70 = ((($69)) + 8|0);
HEAP32[$70>>2] = $68;
$71 = $1;
$72 = ((($71)) + 12|0);
$73 = HEAP32[$72>>2]|0;
$74 = (__gcry_mpi_copy($73)|0);
$75 = $0;
$76 = ((($75)) + 12|0);
HEAP32[$76>>2] = $74;
$77 = $1;
$78 = ((($77)) + 16|0);
$79 = HEAP32[$78>>2]|0;
$80 = (__gcry_mpi_copy($79)|0);
$81 = $0;
$82 = ((($81)) + 16|0);
HEAP32[$82>>2] = $80;
$83 = $0;
$84 = ((($83)) + 20|0);
__gcry_mpi_point_init($84);
$85 = $0;
$86 = ((($85)) + 20|0);
$87 = $1;
$88 = ((($87)) + 20|0);
_point_set_1950($86,$88);
$89 = $1;
$90 = ((($89)) + 32|0);
$91 = HEAP32[$90>>2]|0;
$92 = (__gcry_mpi_copy($91)|0);
$93 = $0;
$94 = ((($93)) + 32|0);
HEAP32[$94>>2] = $92;
$95 = $1;
$96 = ((($95)) + 36|0);
$97 = HEAP32[$96>>2]|0;
$98 = (__gcry_mpi_copy($97)|0);
$99 = $0;
$100 = ((($99)) + 36|0);
HEAP32[$100>>2] = $98;
$101 = $0;
$102 = ((($101)) + 44|0);
__gcry_mpi_point_init($102);
$103 = $pbits;
$104 = (__gcry_mpi_new($103)|0);
$x = $104;
$105 = $pbits;
$106 = (__gcry_mpi_new($105)|0);
$y = $106;
$107 = $x;
$108 = $y;
$109 = $2;
$110 = (__gcry_mpi_ec_get_affine($107,$108,$Q,$109)|0);
$111 = ($110|0)!=(0);
if ($111) {
HEAP32[$vararg_buffer>>2] = 47399;
__gcry_log_fatal(47351,$vararg_buffer);
// unreachable;
}
$112 = $1;
$113 = ((($112)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = ($114|0)==(1);
do {
if ($115) {
$116 = $0;
$117 = ((($116)) + 44|0);
_point_set_1950($117,$Q);
} else {
$118 = $pbits;
$119 = (__gcry_mpi_new($118)|0);
$negative = $119;
$120 = $1;
$121 = HEAP32[$120>>2]|0;
$122 = ($121|0)==(0);
$123 = $negative;
$124 = $1;
$125 = ((($124)) + 8|0);
$126 = HEAP32[$125>>2]|0;
if ($122) {
$127 = $y;
__gcry_mpi_sub($123,$126,$127);
} else {
$128 = $x;
__gcry_mpi_sub($123,$126,$128);
}
$129 = $negative;
$130 = $y;
$131 = (__gcry_mpi_cmp($129,$130)|0);
$132 = ($131|0)<(0);
if (!($132)) {
$156 = $negative;
__gcry_mpi_free($156);
$157 = $0;
$158 = ((($157)) + 44|0);
_point_set_1950($158,$Q);
$159 = (__gcry_get_debug_flag(1)|0);
$160 = ($159|0)!=(0);
if (!($160)) {
break;
}
__gcry_log_debug(47441,$vararg_buffer3);
break;
}
$133 = $1;
$134 = HEAP32[$133>>2]|0;
$135 = ($134|0)==(0);
if ($135) {
$136 = $y;
__gcry_mpi_free($136);
$137 = $negative;
$y = $137;
} else {
$138 = $x;
__gcry_mpi_free($138);
$139 = $negative;
$x = $139;
}
$140 = $0;
$141 = ((($140)) + 56|0);
$142 = HEAP32[$141>>2]|0;
$143 = $1;
$144 = ((($143)) + 32|0);
$145 = HEAP32[$144>>2]|0;
$146 = $0;
$147 = ((($146)) + 56|0);
$148 = HEAP32[$147>>2]|0;
__gcry_mpi_sub($142,$145,$148);
$149 = $0;
$150 = ((($149)) + 44|0);
$151 = $x;
$152 = $y;
$153 = (__gcry_mpi_const(1)|0);
(__gcry_mpi_point_set($150,$151,$152,$153)|0);
$154 = (__gcry_get_debug_flag(1)|0);
$155 = ($154|0)!=(0);
if ($155) {
__gcry_log_debug(47401,$vararg_buffer1);
}
}
} while(0);
$161 = $x;
$162 = $5;
HEAP32[$162>>2] = $161;
$163 = $y;
$164 = $6;
HEAP32[$164>>2] = $163;
__gcry_mpi_point_free_parts($Q);
$165 = $3;
$166 = $165 & 16384;
$167 = ($166|0)!=(0);
if ($167) {
STACKTOP = sp;return 0;
}
$168 = $0;
$169 = HEAP32[$168>>2]|0;
$170 = ($169|0)!=(1);
$171 = $0;
$172 = $4;
$173 = (($172) - 64)|0;
if ($170) {
_test_keys_1955($171,$173);
STACKTOP = sp;return 0;
} else {
_test_ecdh_only_keys($171,$173);
STACKTOP = sp;return 0;
}
return (0)|0;
}
function _point_set_1950($d,$s) {
$d = $d|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $d;
$1 = $s;
$2 = $0;
$3 = HEAP32[$2>>2]|0;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
(__gcry_mpi_set($3,$5)|0);
$6 = $0;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $1;
$10 = ((($9)) + 4|0);
$11 = HEAP32[$10>>2]|0;
(__gcry_mpi_set($8,$11)|0);
$12 = $0;
$13 = ((($12)) + 8|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
(__gcry_mpi_set($14,$17)|0);
STACKTOP = sp;return;
}
function _test_keys_1955($sk,$nbits) {
$sk = $sk|0;
$nbits = $nbits|0;
var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $R_ = 0, $c = 0, $out = 0, $pk = 0, $r = 0, $s = 0, $test = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$$byval_copy = sp + 168|0;
$vararg_buffer5 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$pk = sp + 104|0;
$R_ = sp + 88|0;
$2 = sp + 28|0;
$0 = $sk;
$1 = $nbits;
$3 = $1;
$4 = (__gcry_mpi_new($3)|0);
$test = $4;
$5 = $1;
$6 = (__gcry_mpi_new($5)|0);
$c = $6;
$7 = $1;
$8 = (__gcry_mpi_new($7)|0);
$out = $8;
$9 = $1;
$10 = (__gcry_mpi_new($9)|0);
$r = $10;
$11 = $1;
$12 = (__gcry_mpi_new($11)|0);
$s = $12;
$13 = (__gcry_get_debug_flag(1)|0);
$14 = ($13|0)!=(0);
if ($14) {
__gcry_log_debug(47494,$vararg_buffer);
}
__gcry_mpi_point_init($R_);
$15 = $0;
dest=$$byval_copy; src=$15; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
__gcry_ecc_curve_copy($2,$$byval_copy);
dest=$pk; src=$2; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$16 = ((($pk)) + 44|0);
__gcry_mpi_point_init($16);
$17 = ((($pk)) + 44|0);
$18 = $0;
$19 = ((($18)) + 44|0);
_point_set_1950($17,$19);
$20 = $test;
$21 = $1;
__gcry_mpi_randomize($20,$21,0);
$22 = $test;
$23 = $0;
$24 = $r;
$25 = $s;
$26 = (__gcry_ecc_ecdsa_sign($22,$23,$24,$25,0,0)|0);
$27 = ($26|0)!=(0);
if ($27) {
__gcry_log_fatal(47508,$vararg_buffer1);
// unreachable;
}
$28 = $test;
$29 = $r;
$30 = $s;
$31 = (__gcry_ecc_ecdsa_verify($28,$pk,$29,$30)|0);
$32 = ($31|0)!=(0);
if ($32) {
__gcry_log_fatal(47538,$vararg_buffer3);
// unreachable;
}
$33 = (__gcry_get_debug_flag(1)|0);
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = ((($pk)) + 44|0);
__gcry_mpi_point_free_parts($35);
__gcry_ecc_curve_free($pk);
__gcry_mpi_point_free_parts($R_);
$36 = $s;
__gcry_mpi_free($36);
$37 = $r;
__gcry_mpi_free($37);
$38 = $out;
__gcry_mpi_free($38);
$39 = $c;
__gcry_mpi_free($39);
$40 = $test;
__gcry_mpi_free($40);
STACKTOP = sp;return;
}
__gcry_log_debug(47576,$vararg_buffer5);
$35 = ((($pk)) + 44|0);
__gcry_mpi_point_free_parts($35);
__gcry_ecc_curve_free($pk);
__gcry_mpi_point_free_parts($R_);
$36 = $s;
__gcry_mpi_free($36);
$37 = $r;
__gcry_mpi_free($37);
$38 = $out;
__gcry_mpi_free($38);
$39 = $c;
__gcry_mpi_free($39);
$40 = $test;
__gcry_mpi_free($40);
STACKTOP = sp;return;
}
function _test_ecdh_only_keys($sk,$nbits) {
$sk = $sk|0;
$nbits = $nbits|0;
var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $R_ = 0, $ec = 0, $pk = 0, $rndbuf = 0, $test = 0;
var $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $x0 = 0, $x1 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$$byval_copy = sp + 168|0;
$vararg_buffer5 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$pk = sp + 104|0;
$R_ = sp + 88|0;
$2 = sp + 32|0;
$0 = $sk;
$1 = $nbits;
$3 = (__gcry_get_debug_flag(1)|0);
$4 = ($3|0)!=(0);
if ($4) {
__gcry_log_debug(47494,$vararg_buffer);
}
__gcry_mpi_point_init($R_);
$5 = $0;
dest=$$byval_copy; src=$5; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
__gcry_ecc_curve_copy($2,$$byval_copy);
dest=$pk; src=$2; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$6 = ((($pk)) + 44|0);
__gcry_mpi_point_init($6);
$7 = ((($pk)) + 44|0);
$8 = $0;
$9 = ((($8)) + 44|0);
_point_set_1950($7,$9);
$10 = $0;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(1);
if ($13) {
$14 = (__gcry_mpi_new(256)|0);
$test = $14;
$15 = (__gcry_random_bytes(32,0)|0);
$rndbuf = $15;
$16 = $rndbuf;
$17 = HEAP8[$16>>0]|0;
$18 = $17 << 24 >> 24;
$19 = $18 & 127;
$20 = $19&255;
HEAP8[$16>>0] = $20;
$21 = $rndbuf;
$22 = HEAP8[$21>>0]|0;
$23 = $22 << 24 >> 24;
$24 = $23 | 64;
$25 = $24&255;
HEAP8[$21>>0] = $25;
$26 = $rndbuf;
$27 = ((($26)) + 31|0);
$28 = HEAP8[$27>>0]|0;
$29 = $28 << 24 >> 24;
$30 = $29 & 248;
$31 = $30&255;
HEAP8[$27>>0] = $31;
$32 = $test;
$33 = $rndbuf;
__gcry_mpi_set_buffer($32,$33,32,0);
$34 = $rndbuf;
__gcry_free($34);
} else {
$35 = $1;
$36 = (__gcry_mpi_new($35)|0);
$test = $36;
$37 = $test;
$38 = $1;
__gcry_mpi_randomize($37,$38,0);
}
$39 = HEAP32[$pk>>2]|0;
$40 = ((($pk)) + 4|0);
$41 = HEAP32[$40>>2]|0;
$42 = ((($pk)) + 8|0);
$43 = HEAP32[$42>>2]|0;
$44 = ((($pk)) + 12|0);
$45 = HEAP32[$44>>2]|0;
$46 = ((($pk)) + 16|0);
$47 = HEAP32[$46>>2]|0;
$48 = (__gcry_mpi_ec_p_internal_new($39,$41,0,$43,$45,$47)|0);
$ec = $48;
$49 = (__gcry_mpi_new(0)|0);
$x0 = $49;
$50 = (__gcry_mpi_new(0)|0);
$x1 = $50;
$51 = $test;
$52 = ((($pk)) + 44|0);
$53 = $ec;
__gcry_mpi_ec_mul_point($R_,$51,$52,$53);
$54 = $0;
$55 = ((($54)) + 4|0);
$56 = HEAP32[$55>>2]|0;
$57 = ($56|0)!=(1);
if ($57) {
$58 = $ec;
$59 = ((($58)) + 36|0);
$60 = HEAP32[$59>>2]|0;
$61 = $ec;
__gcry_mpi_ec_mul_point($R_,$60,$R_,$61);
}
$62 = $x0;
$63 = $ec;
$64 = (__gcry_mpi_ec_get_affine($62,0,$R_,$63)|0);
$65 = ($64|0)!=(0);
if ($65) {
__gcry_log_fatal(47611,$vararg_buffer1);
// unreachable;
}
$66 = $test;
$67 = ((($pk)) + 20|0);
$68 = $ec;
__gcry_mpi_ec_mul_point($R_,$66,$67,$68);
$69 = $0;
$70 = ((($69)) + 56|0);
$71 = HEAP32[$70>>2]|0;
$72 = $ec;
__gcry_mpi_ec_mul_point($R_,$71,$R_,$72);
$73 = $0;
$74 = ((($73)) + 4|0);
$75 = HEAP32[$74>>2]|0;
$76 = ($75|0)!=(1);
if ($76) {
$77 = $ec;
$78 = ((($77)) + 36|0);
$79 = HEAP32[$78>>2]|0;
$80 = $ec;
__gcry_mpi_ec_mul_point($R_,$79,$R_,$80);
}
$81 = $x1;
$82 = $ec;
$83 = (__gcry_mpi_ec_get_affine($81,0,$R_,$82)|0);
$84 = ($83|0)!=(0);
if ($84) {
__gcry_log_fatal(47659,$vararg_buffer3);
// unreachable;
}
$85 = $x0;
$86 = $x1;
$87 = (__gcry_mpi_cmp($85,$86)|0);
$88 = ($87|0)!=(0);
if ($88) {
__gcry_log_fatal(47708,$vararg_buffer5);
// unreachable;
} else {
$89 = $x0;
__gcry_mpi_free($89);
$90 = $x1;
__gcry_mpi_free($90);
$91 = $ec;
__gcry_mpi_ec_free($91);
$92 = ((($pk)) + 44|0);
__gcry_mpi_point_free_parts($92);
__gcry_ecc_curve_free($pk);
__gcry_mpi_point_free_parts($R_);
$93 = $test;
__gcry_mpi_free($93);
STACKTOP = sp;return;
}
}
function _ecc_check_secret_key($keyparms) {
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0;
var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0;
var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $curvename = 0, $ec = 0, $flags = 0, $l1 = 0, $mpi_g = 0, $mpi_q = 0, $rc = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer21 = 0;
var $vararg_buffer9 = 0, $vararg_ptr1 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer21 = sp + 72|0;
$vararg_buffer18 = sp + 64|0;
$vararg_buffer14 = sp + 56|0;
$vararg_buffer9 = sp + 40|0;
$vararg_buffer = sp;
$flags = sp + 152|0;
$mpi_g = sp + 144|0;
$mpi_q = sp + 140|0;
$sk = sp + 80|0;
$1 = $keyparms;
$l1 = 0;
HEAP32[$flags>>2] = 0;
$curvename = 0;
HEAP32[$mpi_g>>2] = 0;
HEAP32[$mpi_q>>2] = 0;
$ec = 0;
dest=$sk; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$2 = $1;
$3 = (__gcry_sexp_find_token($2,47190,0)|0);
$l1 = $3;
$4 = $l1;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $l1;
$7 = (__gcry_pk_util_parse_flaglist($6,$flags,0)|0);
$rc = $7;
$8 = $rc;
$9 = ($8|0)!=(0);
if (!($9)) {
label = 3;
}
} else {
label = 3;
}
do {
if ((label|0) == 3) {
$10 = HEAP32[$flags>>2]|0;
$11 = $10 & 512;
$12 = ($11|0)!=(0);
$13 = $1;
if ($12) {
$14 = ((($sk)) + 8|0);
$15 = ((($sk)) + 12|0);
$16 = ((($sk)) + 16|0);
$17 = ((($sk)) + 32|0);
$18 = ((($sk)) + 36|0);
$19 = ((($sk)) + 56|0);
HEAP32[$vararg_buffer>>2] = $14;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $15;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $16;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $mpi_g;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $17;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $18;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = $mpi_q;
$vararg_ptr7 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr7>>2] = $19;
$vararg_ptr8 = ((($vararg_buffer)) + 32|0);
HEAP32[$vararg_ptr8>>2] = 0;
$20 = (__gcry_sexp_extract_param($13,0,48163,$vararg_buffer)|0);
$rc = $20;
} else {
$21 = ((($sk)) + 56|0);
HEAP32[$vararg_buffer9>>2] = $mpi_q;
$vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
HEAP32[$vararg_ptr12>>2] = $21;
$vararg_ptr13 = ((($vararg_buffer9)) + 8|0);
HEAP32[$vararg_ptr13>>2] = 0;
$22 = (__gcry_sexp_extract_param($13,0,48182,$vararg_buffer9)|0);
$rc = $22;
}
$23 = $rc;
$24 = ($23|0)!=(0);
if (!($24)) {
$25 = $l1;
__gcry_sexp_release($25);
$26 = $1;
$27 = (__gcry_sexp_find_token($26,47184,5)|0);
$l1 = $27;
$28 = $l1;
$29 = ($28|0)!=(0|0);
if ($29) {
$30 = $l1;
$31 = (__gcry_sexp_nth_string($30,1)|0);
$curvename = $31;
$32 = $curvename;
$33 = ($32|0)!=(0|0);
if ($33) {
$34 = $curvename;
$35 = ((($sk)) + 4|0);
$36 = ((($sk)) + 8|0);
$37 = ((($sk)) + 12|0);
$38 = ((($sk)) + 16|0);
$39 = ((($sk)) + 32|0);
$40 = ((($sk)) + 36|0);
$41 = (__gcry_ecc_update_curve_param($34,$sk,$35,$36,$37,$38,$mpi_g,$39,$40)|0);
$rc = $41;
$42 = $rc;
$43 = ($42|0)!=(0);
if ($43) {
$44 = $rc;
$0 = $44;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
}
}
$45 = HEAP32[$mpi_g>>2]|0;
$46 = ($45|0)!=(0|0);
if ($46) {
$47 = ((($sk)) + 20|0);
__gcry_mpi_point_init($47);
$48 = ((($sk)) + 20|0);
$49 = HEAP32[$mpi_g>>2]|0;
$50 = (__gcry_ecc_os2ec($48,$49)|0);
$rc = $50;
$51 = $rc;
$52 = ($51|0)!=(0);
if ($52) {
break;
}
}
$53 = $curvename;
$54 = ($53|0)!=(0|0);
if (!($54)) {
$55 = HEAP32[$flags>>2]|0;
$56 = $55 & 4096;
$57 = ($56|0)!=(0);
$58 = $57 ? 2 : 0;
HEAP32[$sk>>2] = $58;
$59 = HEAP32[$flags>>2]|0;
$60 = $59 & 4096;
$61 = ($60|0)!=(0);
$62 = $61 ? 1 : 0;
$63 = ((($sk)) + 4|0);
HEAP32[$63>>2] = $62;
}
$64 = (__gcry_get_debug_flag(1)|0);
$65 = ($64|0)!=(0);
if ($65) {
$66 = HEAP32[$sk>>2]|0;
$67 = (__gcry_ecc_model2str($66)|0);
$68 = ((($sk)) + 4|0);
$69 = HEAP32[$68>>2]|0;
$70 = (__gcry_ecc_dialect2str($69)|0);
HEAP32[$vararg_buffer14>>2] = $67;
$vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
HEAP32[$vararg_ptr17>>2] = $70;
__gcry_log_debug(48188,$vararg_buffer14);
$71 = ((($sk)) + 40|0);
$72 = HEAP32[$71>>2]|0;
$73 = ($72|0)!=(0|0);
if ($73) {
$74 = ((($sk)) + 40|0);
$75 = HEAP32[$74>>2]|0;
HEAP32[$vararg_buffer18>>2] = $75;
__gcry_log_debug(48212,$vararg_buffer18);
}
$76 = ((($sk)) + 8|0);
$77 = HEAP32[$76>>2]|0;
__gcry_log_printmpi(48233,$77);
$78 = ((($sk)) + 12|0);
$79 = HEAP32[$78>>2]|0;
__gcry_log_printmpi(48249,$79);
$80 = ((($sk)) + 16|0);
$81 = HEAP32[$80>>2]|0;
__gcry_log_printmpi(48265,$81);
$82 = ((($sk)) + 20|0);
__gcry_mpi_point_log(48281,$82,0);
$83 = ((($sk)) + 32|0);
$84 = HEAP32[$83>>2]|0;
__gcry_log_printmpi(48295,$84);
$85 = ((($sk)) + 36|0);
$86 = HEAP32[$85>>2]|0;
__gcry_log_printmpi(48311,$86);
$87 = HEAP32[$mpi_q>>2]|0;
__gcry_log_printmpi(48327,$87);
$88 = (__gcry_fips_mode()|0);
$89 = ($88|0)!=(0);
if (!($89)) {
$90 = ((($sk)) + 56|0);
$91 = HEAP32[$90>>2]|0;
__gcry_log_printmpi(48343,$91);
}
}
$92 = ((($sk)) + 8|0);
$93 = HEAP32[$92>>2]|0;
$94 = ($93|0)!=(0|0);
if ($94) {
$95 = ((($sk)) + 12|0);
$96 = HEAP32[$95>>2]|0;
$97 = ($96|0)!=(0|0);
if ($97) {
$98 = ((($sk)) + 16|0);
$99 = HEAP32[$98>>2]|0;
$100 = ($99|0)!=(0|0);
if ($100) {
$101 = ((($sk)) + 20|0);
$102 = HEAP32[$101>>2]|0;
$103 = ($102|0)!=(0|0);
if ($103) {
$104 = ((($sk)) + 32|0);
$105 = HEAP32[$104>>2]|0;
$106 = ($105|0)!=(0|0);
if ($106) {
$107 = ((($sk)) + 36|0);
$108 = HEAP32[$107>>2]|0;
$109 = ($108|0)!=(0|0);
if ($109) {
$110 = ((($sk)) + 56|0);
$111 = HEAP32[$110>>2]|0;
$112 = ($111|0)!=(0|0);
if ($112) {
$113 = HEAP32[$sk>>2]|0;
$114 = ((($sk)) + 4|0);
$115 = HEAP32[$114>>2]|0;
$116 = ((($sk)) + 8|0);
$117 = HEAP32[$116>>2]|0;
$118 = ((($sk)) + 12|0);
$119 = HEAP32[$118>>2]|0;
$120 = ((($sk)) + 16|0);
$121 = HEAP32[$120>>2]|0;
$122 = (__gcry_mpi_ec_p_internal_new($113,$115,0,$117,$119,$121)|0);
$ec = $122;
$123 = HEAP32[$mpi_q>>2]|0;
$124 = ($123|0)!=(0|0);
if (!($124)) {
$rc = 68;
break;
}
$125 = ((($sk)) + 44|0);
__gcry_mpi_point_init($125);
$126 = $ec;
$127 = ((($126)) + 4|0);
$128 = HEAP32[$127>>2]|0;
$129 = ($128|0)==(1);
if ($129) {
$130 = HEAP32[$mpi_q>>2]|0;
$131 = $ec;
$132 = ((($sk)) + 44|0);
$133 = (__gcry_ecc_eddsa_decodepoint($130,$131,$132,0,0)|0);
$rc = $133;
} else {
$134 = ((($sk)) + 44|0);
$135 = HEAP32[$mpi_q>>2]|0;
$136 = (__gcry_ecc_os2ec($134,$135)|0);
$rc = $136;
}
$137 = $rc;
$138 = ($137|0)!=(0);
if ($138) {
break;
}
$139 = $ec;
$140 = HEAP32[$flags>>2]|0;
$141 = (_check_secret_key_1991($sk,$139,$140)|0);
$142 = ($141|0)!=(0);
if (!($142)) {
break;
}
$rc = 7;
break;
}
}
}
}
}
}
}
$rc = 68;
}
}
} while(0);
$143 = $ec;
__gcry_mpi_ec_free($143);
$144 = ((($sk)) + 8|0);
$145 = HEAP32[$144>>2]|0;
__gcry_mpi_release($145);
$146 = ((($sk)) + 12|0);
$147 = HEAP32[$146>>2]|0;
__gcry_mpi_release($147);
$148 = ((($sk)) + 16|0);
$149 = HEAP32[$148>>2]|0;
__gcry_mpi_release($149);
$150 = HEAP32[$mpi_g>>2]|0;
__gcry_mpi_release($150);
$151 = ((($sk)) + 20|0);
__gcry_mpi_point_free_parts($151);
$152 = ((($sk)) + 32|0);
$153 = HEAP32[$152>>2]|0;
__gcry_mpi_release($153);
$154 = ((($sk)) + 36|0);
$155 = HEAP32[$154>>2]|0;
__gcry_mpi_release($155);
$156 = HEAP32[$mpi_q>>2]|0;
__gcry_mpi_release($156);
$157 = ((($sk)) + 44|0);
__gcry_mpi_point_free_parts($157);
$158 = ((($sk)) + 56|0);
$159 = HEAP32[$158>>2]|0;
__gcry_mpi_release($159);
$160 = $curvename;
__gcry_free($160);
$161 = $l1;
__gcry_sexp_release($161);
$162 = (__gcry_get_debug_flag(1)|0);
$163 = ($162|0)!=(0);
if ($163) {
$164 = $rc;
$165 = (_gpg_strerror($164)|0);
HEAP32[$vararg_buffer21>>2] = $165;
__gcry_log_debug(48646,$vararg_buffer21);
}
$166 = $rc;
$0 = $166;
$167 = $0;
STACKTOP = sp;return ($167|0);
}
function _check_secret_key_1991($sk,$ec,$flags) {
$sk = $sk|0;
$ec = $ec|0;
$flags = $flags|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $Q = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer1 = 0;
var $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, $x1 = 0, $x2 = 0, $y1 = 0, $y2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer15 = sp + 64|0;
$vararg_buffer13 = sp + 56|0;
$vararg_buffer11 = sp + 48|0;
$vararg_buffer9 = sp + 40|0;
$vararg_buffer7 = sp + 32|0;
$vararg_buffer5 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$Q = sp + 84|0;
$0 = $sk;
$1 = $ec;
$2 = $flags;
$rc = 1;
$x2 = 0;
$y2 = 0;
__gcry_mpi_point_init($Q);
$3 = (__gcry_mpi_new(0)|0);
$x1 = $3;
$4 = $1;
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(1);
if ($6) {
$y1 = 0;
} else {
$7 = (__gcry_mpi_new(0)|0);
$y1 = $7;
}
$8 = $0;
$9 = ((($8)) + 20|0);
$10 = $1;
$11 = (__gcry_mpi_ec_curve_point($9,$10)|0);
$12 = ($11|0)!=(0);
L5: do {
if ($12) {
$15 = $0;
$16 = ((($15)) + 20|0);
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = (__gcry_mpi_cmp_ui($18,0)|0);
$20 = ($19|0)!=(0);
if (!($20)) {
$21 = (__gcry_get_debug_flag(1)|0);
$22 = ($21|0)!=(0);
if (!($22)) {
break;
}
__gcry_log_debug(48411,$vararg_buffer1);
break;
}
$23 = $0;
$24 = ((($23)) + 4|0);
$25 = HEAP32[$24>>2]|0;
$26 = ($25|0)!=(1);
if ($26) {
$27 = $0;
$28 = ((($27)) + 32|0);
$29 = HEAP32[$28>>2]|0;
$30 = $0;
$31 = ((($30)) + 20|0);
$32 = $1;
__gcry_mpi_ec_mul_point($Q,$29,$31,$32);
$33 = ((($Q)) + 8|0);
$34 = HEAP32[$33>>2]|0;
$35 = (__gcry_mpi_cmp_ui($34,0)|0);
$36 = ($35|0)!=(0);
if ($36) {
$37 = (__gcry_get_debug_flag(1)|0);
$38 = ($37|0)!=(0);
if (!($38)) {
break;
}
__gcry_log_debug(48456,$vararg_buffer3);
break;
}
}
$39 = $0;
$40 = ((($39)) + 44|0);
$41 = ((($40)) + 8|0);
$42 = HEAP32[$41>>2]|0;
$43 = (__gcry_mpi_cmp_ui($42,0)|0);
$44 = ($43|0)!=(0);
if (!($44)) {
$45 = (__gcry_get_debug_flag(1)|0);
$46 = ($45|0)!=(0);
if (!($46)) {
break;
}
__gcry_log_debug(48503,$vararg_buffer5);
break;
}
$47 = $1;
$48 = $0;
$49 = ((($48)) + 20|0);
$50 = $0;
$51 = ((($50)) + 56|0);
$52 = HEAP32[$51>>2]|0;
$53 = (__gcry_ecc_compute_public($Q,$47,$49,$52)|0);
$54 = ($53|0)!=(0|0);
if (!($54)) {
$55 = (__gcry_get_debug_flag(1)|0);
$56 = ($55|0)!=(0);
if (!($56)) {
break;
}
__gcry_log_debug(48549,$vararg_buffer7);
break;
}
$57 = $x1;
$58 = $y1;
$59 = $1;
$60 = (__gcry_mpi_ec_get_affine($57,$58,$Q,$59)|0);
$61 = ($60|0)!=(0);
if ($61) {
$62 = (__gcry_get_debug_flag(1)|0);
$63 = ($62|0)!=(0);
if (!($63)) {
break;
}
__gcry_log_debug(48503,$vararg_buffer9);
break;
}
$64 = $2;
$65 = $64 & 4096;
$66 = ($65|0)!=(0);
do {
if (!($66)) {
$67 = $0;
$68 = ((($67)) + 44|0);
$69 = ((($68)) + 8|0);
$70 = HEAP32[$69>>2]|0;
$71 = (__gcry_mpi_cmp_ui($70,1)|0);
$72 = ($71|0)!=(0);
if (!($72)) {
$73 = $x1;
$74 = $0;
$75 = ((($74)) + 44|0);
$76 = HEAP32[$75>>2]|0;
$77 = (__gcry_mpi_cmp($73,$76)|0);
$78 = ($77|0)!=(0);
if (!($78)) {
$79 = $y1;
$80 = ($79|0)!=(0|0);
if ($80) {
break;
}
$81 = $y1;
$82 = $0;
$83 = ((($82)) + 44|0);
$84 = ((($83)) + 4|0);
$85 = HEAP32[$84>>2]|0;
$86 = (__gcry_mpi_cmp($81,$85)|0);
$87 = ($86|0)!=(0);
if (!($87)) {
break;
}
}
$88 = (__gcry_get_debug_flag(1)|0);
$89 = ($88|0)!=(0);
if (!($89)) {
break L5;
}
__gcry_log_debug(48586,$vararg_buffer11);
break L5;
}
$90 = (__gcry_mpi_new(0)|0);
$x2 = $90;
$91 = (__gcry_mpi_new(0)|0);
$y2 = $91;
$92 = $x2;
$93 = $y2;
$94 = $0;
$95 = ((($94)) + 44|0);
$96 = $1;
$97 = (__gcry_mpi_ec_get_affine($92,$93,$95,$96)|0);
$98 = ($97|0)!=(0);
if ($98) {
$99 = (__gcry_get_debug_flag(1)|0);
$100 = ($99|0)!=(0);
if (!($100)) {
break L5;
}
__gcry_log_debug(48503,$vararg_buffer13);
break L5;
}
$101 = $x1;
$102 = $x2;
$103 = (__gcry_mpi_cmp($101,$102)|0);
$104 = ($103|0)!=(0);
if (!($104)) {
$105 = $y1;
$106 = $y2;
$107 = (__gcry_mpi_cmp($105,$106)|0);
$108 = ($107|0)!=(0);
if (!($108)) {
break;
}
}
$109 = (__gcry_get_debug_flag(1)|0);
$110 = ($109|0)!=(0);
if (!($110)) {
break L5;
}
__gcry_log_debug(48586,$vararg_buffer15);
break L5;
}
} while(0);
$rc = 0;
} else {
$13 = (__gcry_get_debug_flag(1)|0);
$14 = ($13|0)!=(0);
if ($14) {
__gcry_log_debug(48359,$vararg_buffer);
}
}
} while(0);
$111 = $x2;
__gcry_mpi_free($111);
$112 = $x1;
__gcry_mpi_free($112);
$113 = $y1;
__gcry_mpi_free($113);
$114 = $y2;
__gcry_mpi_free($114);
__gcry_mpi_point_free_parts($Q);
$115 = $rc;
STACKTOP = sp;return ($115|0);
}
function _ecc_encrypt_raw($r_ciph,$s_data,$keyparms) {
$r_ciph = $r_ciph|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $R = 0, $ctx = 0, $curvename = 0, $data = 0, $ec = 0;
var $l1 = 0, $mpi_e = 0, $mpi_g = 0, $mpi_q = 0, $mpi_s = 0, $or$cond = 0, $pk = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer18 = 0, $vararg_buffer20 = 0, $vararg_buffer24 = 0, $vararg_buffer9 = 0, $vararg_ptr12 = 0, $vararg_ptr2 = 0, $vararg_ptr23 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0;
var $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $x = 0, $y = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer24 = sp + 72|0;
$vararg_buffer20 = sp + 64|0;
$vararg_buffer18 = sp + 56|0;
$vararg_buffer16 = sp + 48|0;
$vararg_buffer13 = sp + 40|0;
$vararg_buffer9 = sp + 32|0;
$vararg_buffer = sp;
$ctx = sp + 192|0;
$mpi_g = sp + 176|0;
$mpi_q = sp + 172|0;
$data = sp + 160|0;
$pk = sp + 104|0;
$R = sp + 84|0;
$1 = $r_ciph;
$2 = $s_data;
$3 = $keyparms;
$l1 = 0;
$curvename = 0;
HEAP32[$mpi_g>>2] = 0;
HEAP32[$mpi_q>>2] = 0;
$mpi_s = 0;
$mpi_e = 0;
HEAP32[$data>>2] = 0;
$ec = 0;
dest=$pk; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$4 = $3;
$5 = (_ecc_get_nbits($4)|0);
__gcry_pk_util_init_encoding_ctx($ctx,0,$5);
$6 = $2;
$7 = (__gcry_pk_util_data_to_mpi($6,$data,$ctx)|0);
$rc = $7;
$8 = $rc;
$9 = ($8|0)!=(0);
do {
if (!($9)) {
$10 = (__gcry_get_debug_flag(1)|0);
$11 = ($10|0)!=(0);
if ($11) {
$12 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(48669,$12);
}
$13 = HEAP32[$data>>2]|0;
$14 = ($13|0)!=(0|0);
if ($14) {
$15 = HEAP32[$data>>2]|0;
$16 = ((($15)) + 12|0);
$17 = HEAP32[$16>>2]|0;
$18 = $17 & 4;
$19 = ($18|0)!=(0);
if ($19) {
$rc = 79;
break;
}
}
$20 = $3;
$21 = ((($pk)) + 8|0);
$22 = ((($pk)) + 12|0);
$23 = ((($pk)) + 16|0);
$24 = ((($pk)) + 32|0);
$25 = ((($pk)) + 36|0);
HEAP32[$vararg_buffer>>2] = $21;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $22;
$vararg_ptr3 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr3>>2] = $23;
$vararg_ptr4 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr4>>2] = $mpi_g;
$vararg_ptr5 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr5>>2] = $24;
$vararg_ptr6 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr6>>2] = $25;
$vararg_ptr7 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr7>>2] = $mpi_q;
$vararg_ptr8 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr8>>2] = 0;
$26 = (__gcry_sexp_extract_param($20,0,48686,$vararg_buffer)|0);
$rc = $26;
$27 = $rc;
$28 = ($27|0)!=(0);
if (!($28)) {
$29 = HEAP32[$mpi_g>>2]|0;
$30 = ($29|0)!=(0|0);
if ($30) {
$31 = ((($pk)) + 20|0);
__gcry_mpi_point_init($31);
$32 = ((($pk)) + 20|0);
$33 = HEAP32[$mpi_g>>2]|0;
$34 = (__gcry_ecc_os2ec($32,$33)|0);
$rc = $34;
$35 = $rc;
$36 = ($35|0)!=(0);
if ($36) {
break;
}
}
$37 = $l1;
__gcry_sexp_release($37);
$38 = $3;
$39 = (__gcry_sexp_find_token($38,47184,5)|0);
$l1 = $39;
$40 = $l1;
$41 = ($40|0)!=(0|0);
if ($41) {
$42 = $l1;
$43 = (__gcry_sexp_nth_string($42,1)|0);
$curvename = $43;
$44 = $curvename;
$45 = ($44|0)!=(0|0);
if ($45) {
$46 = $curvename;
$47 = (__gcry_ecc_fill_in_curve(0,$46,$pk,0)|0);
$rc = $47;
$48 = $rc;
$49 = ($48|0)!=(0);
if ($49) {
$50 = $rc;
$0 = $50;
$174 = $0;
STACKTOP = sp;return ($174|0);
}
}
}
$51 = $curvename;
$52 = ($51|0)!=(0|0);
if (!($52)) {
HEAP32[$pk>>2] = 0;
$53 = ((($pk)) + 4|0);
HEAP32[$53>>2] = 0;
}
$54 = (__gcry_get_debug_flag(1)|0);
$55 = ($54|0)!=(0);
if ($55) {
$56 = HEAP32[$pk>>2]|0;
$57 = (__gcry_ecc_model2str($56)|0);
$58 = ((($pk)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = (__gcry_ecc_dialect2str($59)|0);
HEAP32[$vararg_buffer9>>2] = $57;
$vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
HEAP32[$vararg_ptr12>>2] = $60;
__gcry_log_debug(48702,$vararg_buffer9);
$61 = ((($pk)) + 40|0);
$62 = HEAP32[$61>>2]|0;
$63 = ($62|0)!=(0|0);
if ($63) {
$64 = ((($pk)) + 40|0);
$65 = HEAP32[$64>>2]|0;
HEAP32[$vararg_buffer13>>2] = $65;
__gcry_log_debug(48727,$vararg_buffer13);
}
$66 = ((($pk)) + 8|0);
$67 = HEAP32[$66>>2]|0;
__gcry_log_printmpi(48749,$67);
$68 = ((($pk)) + 12|0);
$69 = HEAP32[$68>>2]|0;
__gcry_log_printmpi(48766,$69);
$70 = ((($pk)) + 16|0);
$71 = HEAP32[$70>>2]|0;
__gcry_log_printmpi(48783,$71);
$72 = ((($pk)) + 20|0);
__gcry_mpi_point_log(48800,$72,0);
$73 = ((($pk)) + 32|0);
$74 = HEAP32[$73>>2]|0;
__gcry_log_printmpi(48815,$74);
$75 = ((($pk)) + 36|0);
$76 = HEAP32[$75>>2]|0;
__gcry_log_printmpi(48832,$76);
$77 = HEAP32[$mpi_q>>2]|0;
__gcry_log_printmpi(48849,$77);
}
$78 = ((($pk)) + 8|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($79|0)!=(0|0);
if ($80) {
$81 = ((($pk)) + 12|0);
$82 = HEAP32[$81>>2]|0;
$83 = ($82|0)!=(0|0);
if ($83) {
$84 = ((($pk)) + 16|0);
$85 = HEAP32[$84>>2]|0;
$86 = ($85|0)!=(0|0);
if ($86) {
$87 = ((($pk)) + 20|0);
$88 = HEAP32[$87>>2]|0;
$89 = ($88|0)!=(0|0);
if ($89) {
$90 = ((($pk)) + 32|0);
$91 = HEAP32[$90>>2]|0;
$92 = ($91|0)!=(0|0);
if ($92) {
$93 = ((($pk)) + 36|0);
$94 = HEAP32[$93>>2]|0;
$95 = ($94|0)!=(0|0);
$96 = HEAP32[$mpi_q>>2]|0;
$97 = ($96|0)!=(0|0);
$or$cond = $95 & $97;
if ($or$cond) {
$98 = HEAP32[$mpi_q>>2]|0;
$99 = ($98|0)!=(0|0);
if ($99) {
$100 = ((($pk)) + 44|0);
__gcry_mpi_point_init($100);
$101 = ((($pk)) + 44|0);
$102 = HEAP32[$mpi_q>>2]|0;
$103 = (__gcry_ecc_os2ec($101,$102)|0);
$rc = $103;
$104 = $rc;
$105 = ($104|0)!=(0);
if ($105) {
break;
}
}
$106 = HEAP32[$pk>>2]|0;
$107 = ((($pk)) + 4|0);
$108 = HEAP32[$107>>2]|0;
$109 = ((($pk)) + 8|0);
$110 = HEAP32[$109>>2]|0;
$111 = ((($pk)) + 12|0);
$112 = HEAP32[$111>>2]|0;
$113 = ((($pk)) + 16|0);
$114 = HEAP32[$113>>2]|0;
$115 = (__gcry_mpi_ec_p_internal_new($106,$108,0,$110,$112,$114)|0);
$ec = $115;
$116 = (__gcry_mpi_new(0)|0);
$x = $116;
$117 = (__gcry_mpi_new(0)|0);
$y = $117;
__gcry_mpi_point_init($R);
$118 = HEAP32[$data>>2]|0;
$119 = ((($pk)) + 44|0);
$120 = $ec;
__gcry_mpi_ec_mul_point($R,$118,$119,$120);
$121 = $x;
$122 = $y;
$123 = $ec;
$124 = (__gcry_mpi_ec_get_affine($121,$122,$R,$123)|0);
$125 = ($124|0)!=(0);
if ($125) {
__gcry_log_fatal(48866,$vararg_buffer16);
// unreachable;
}
$126 = $x;
$127 = $y;
$128 = ((($pk)) + 8|0);
$129 = HEAP32[$128>>2]|0;
$130 = (__gcry_ecc_ec2os($126,$127,$129)|0);
$mpi_s = $130;
$131 = HEAP32[$data>>2]|0;
$132 = ((($pk)) + 20|0);
$133 = $ec;
__gcry_mpi_ec_mul_point($R,$131,$132,$133);
$134 = $x;
$135 = $y;
$136 = $ec;
$137 = (__gcry_mpi_ec_get_affine($134,$135,$R,$136)|0);
$138 = ($137|0)!=(0);
if ($138) {
__gcry_log_fatal(48914,$vararg_buffer18);
// unreachable;
} else {
$139 = $x;
$140 = $y;
$141 = ((($pk)) + 8|0);
$142 = HEAP32[$141>>2]|0;
$143 = (__gcry_ecc_ec2os($139,$140,$142)|0);
$mpi_e = $143;
$144 = $x;
__gcry_mpi_free($144);
$145 = $y;
__gcry_mpi_free($145);
__gcry_mpi_point_free_parts($R);
$146 = $1;
$147 = $mpi_s;
$148 = $mpi_e;
HEAP32[$vararg_buffer20>>2] = $147;
$vararg_ptr23 = ((($vararg_buffer20)) + 4|0);
HEAP32[$vararg_ptr23>>2] = $148;
$149 = (__gcry_sexp_build($146,0,48961,$vararg_buffer20)|0);
$rc = $149;
break;
}
}
}
}
}
}
}
$rc = 68;
}
}
} while(0);
$150 = ((($pk)) + 8|0);
$151 = HEAP32[$150>>2]|0;
__gcry_mpi_release($151);
$152 = ((($pk)) + 12|0);
$153 = HEAP32[$152>>2]|0;
__gcry_mpi_release($153);
$154 = ((($pk)) + 16|0);
$155 = HEAP32[$154>>2]|0;
__gcry_mpi_release($155);
$156 = HEAP32[$mpi_g>>2]|0;
__gcry_mpi_release($156);
$157 = ((($pk)) + 20|0);
__gcry_mpi_point_free_parts($157);
$158 = ((($pk)) + 32|0);
$159 = HEAP32[$158>>2]|0;
__gcry_mpi_release($159);
$160 = ((($pk)) + 36|0);
$161 = HEAP32[$160>>2]|0;
__gcry_mpi_release($161);
$162 = HEAP32[$mpi_q>>2]|0;
__gcry_mpi_release($162);
$163 = ((($pk)) + 44|0);
__gcry_mpi_point_free_parts($163);
$164 = HEAP32[$data>>2]|0;
__gcry_mpi_release($164);
$165 = $mpi_s;
__gcry_mpi_release($165);
$166 = $mpi_e;
__gcry_mpi_release($166);
$167 = $curvename;
__gcry_free($167);
$168 = $ec;
__gcry_mpi_ec_free($168);
__gcry_pk_util_free_encoding_ctx($ctx);
$169 = (__gcry_get_debug_flag(1)|0);
$170 = ($169|0)!=(0);
if ($170) {
$171 = $rc;
$172 = (_gpg_strerror($171)|0);
HEAP32[$vararg_buffer24>>2] = $172;
__gcry_log_debug(48987,$vararg_buffer24);
}
$173 = $rc;
$0 = $173;
$174 = $0;
STACKTOP = sp;return ($174|0);
}
function _ecc_get_nbits($parms) {
$parms = $parms|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $curve = 0, $l1 = 0, $nbits = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nbits = sp + 4|0;
$1 = $parms;
HEAP32[$nbits>>2] = 0;
$2 = $1;
$3 = (__gcry_sexp_find_token($2,48667,1)|0);
$l1 = $3;
$4 = $l1;
$5 = ($4|0)!=(0|0);
if ($5) {
$19 = $l1;
$20 = (__gcry_sexp_nth_mpi($19,1,5)|0);
$p = $20;
$21 = $l1;
__gcry_sexp_release($21);
$22 = $p;
$23 = ($22|0)!=(0|0);
if ($23) {
$24 = $p;
$25 = (__gcry_mpi_get_nbits($24)|0);
HEAP32[$nbits>>2] = $25;
$26 = $p;
__gcry_mpi_release($26);
}
} else {
$6 = $1;
$7 = (__gcry_sexp_find_token($6,47184,5)|0);
$l1 = $7;
$8 = $l1;
$9 = ($8|0)!=(0|0);
if (!($9)) {
$0 = 0;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
$10 = $l1;
$11 = (__gcry_sexp_nth_string($10,1)|0);
$curve = $11;
$12 = $l1;
__gcry_sexp_release($12);
$13 = $curve;
$14 = ($13|0)!=(0|0);
if (!($14)) {
$0 = 0;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
$15 = $curve;
$16 = (__gcry_ecc_fill_in_curve(0,$15,0,$nbits)|0);
$17 = ($16|0)!=(0);
if ($17) {
HEAP32[$nbits>>2] = 0;
}
$18 = $curve;
__gcry_free($18);
}
$27 = HEAP32[$nbits>>2]|0;
$0 = $27;
$28 = $0;
STACKTOP = sp;return ($28|0);
}
function _ecc_decrypt_raw($r_plain,$s_data,$keyparms) {
$r_plain = $r_plain|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $R = 0, $ctx = 0, $curvename = 0, $data_e = 0, $ec = 0;
var $kG = 0, $l1 = 0, $mpi_g = 0, $r = 0, $rc = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer21 = 0, $vararg_buffer24 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0;
var $vararg_ptr8 = 0, $vararg_ptr9 = 0, $x = 0, $y = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer24 = sp + 72|0;
$vararg_buffer21 = sp + 64|0;
$vararg_buffer19 = sp + 56|0;
$vararg_buffer16 = sp + 48|0;
$vararg_buffer12 = sp + 40|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$ctx = sp + 192|0;
$l1 = sp + 188|0;
$data_e = sp + 184|0;
$sk = sp + 124|0;
$mpi_g = sp + 120|0;
$kG = sp + 100|0;
$R = sp + 88|0;
$1 = $r_plain;
$2 = $s_data;
$3 = $keyparms;
HEAP32[$l1>>2] = 0;
HEAP32[$data_e>>2] = 0;
HEAP32[$mpi_g>>2] = 0;
$curvename = 0;
$ec = 0;
$r = 0;
dest=$sk; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
__gcry_mpi_point_init($kG);
__gcry_mpi_point_init($R);
$4 = $3;
$5 = (_ecc_get_nbits($4)|0);
__gcry_pk_util_init_encoding_ctx($ctx,1,$5);
$6 = $2;
$7 = (__gcry_pk_util_preparse_encval($6,12920,$l1,$ctx)|0);
$rc = $7;
$8 = $rc;
$9 = ($8|0)!=(0);
do {
if (!($9)) {
$10 = HEAP32[$l1>>2]|0;
HEAP32[$vararg_buffer>>2] = $data_e;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$11 = (__gcry_sexp_extract_param($10,0,49009,$vararg_buffer)|0);
$rc = $11;
$12 = $rc;
$13 = ($12|0)!=(0);
if (!($13)) {
$14 = (__gcry_get_debug_flag(1)|0);
$15 = ($14|0)!=(0);
if ($15) {
$16 = HEAP32[$data_e>>2]|0;
__gcry_log_printmpi(49011,$16);
}
$17 = HEAP32[$data_e>>2]|0;
$18 = ($17|0)!=(0|0);
if ($18) {
$19 = HEAP32[$data_e>>2]|0;
$20 = ((($19)) + 12|0);
$21 = HEAP32[$20>>2]|0;
$22 = $21 & 4;
$23 = ($22|0)!=(0);
if ($23) {
$rc = 79;
break;
}
}
$24 = $3;
$25 = ((($sk)) + 8|0);
$26 = ((($sk)) + 12|0);
$27 = ((($sk)) + 16|0);
$28 = ((($sk)) + 32|0);
$29 = ((($sk)) + 36|0);
$30 = ((($sk)) + 56|0);
HEAP32[$vararg_buffer2>>2] = $25;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $26;
$vararg_ptr6 = ((($vararg_buffer2)) + 8|0);
HEAP32[$vararg_ptr6>>2] = $27;
$vararg_ptr7 = ((($vararg_buffer2)) + 12|0);
HEAP32[$vararg_ptr7>>2] = $mpi_g;
$vararg_ptr8 = ((($vararg_buffer2)) + 16|0);
HEAP32[$vararg_ptr8>>2] = $28;
$vararg_ptr9 = ((($vararg_buffer2)) + 20|0);
HEAP32[$vararg_ptr9>>2] = $29;
$vararg_ptr10 = ((($vararg_buffer2)) + 24|0);
HEAP32[$vararg_ptr10>>2] = $30;
$vararg_ptr11 = ((($vararg_buffer2)) + 28|0);
HEAP32[$vararg_ptr11>>2] = 0;
$31 = (__gcry_sexp_extract_param($24,0,49028,$vararg_buffer2)|0);
$rc = $31;
$32 = $rc;
$33 = ($32|0)!=(0);
if (!($33)) {
$34 = HEAP32[$mpi_g>>2]|0;
$35 = ($34|0)!=(0|0);
if ($35) {
$36 = ((($sk)) + 20|0);
__gcry_mpi_point_init($36);
$37 = ((($sk)) + 20|0);
$38 = HEAP32[$mpi_g>>2]|0;
$39 = (__gcry_ecc_os2ec($37,$38)|0);
$rc = $39;
$40 = $rc;
$41 = ($40|0)!=(0);
if ($41) {
break;
}
}
$42 = HEAP32[$l1>>2]|0;
__gcry_sexp_release($42);
$43 = $3;
$44 = (__gcry_sexp_find_token($43,47184,5)|0);
HEAP32[$l1>>2] = $44;
$45 = HEAP32[$l1>>2]|0;
$46 = ($45|0)!=(0|0);
if ($46) {
$47 = HEAP32[$l1>>2]|0;
$48 = (__gcry_sexp_nth_string($47,1)|0);
$curvename = $48;
$49 = $curvename;
$50 = ($49|0)!=(0|0);
if ($50) {
$51 = $curvename;
$52 = (__gcry_ecc_fill_in_curve(0,$51,$sk,0)|0);
$rc = $52;
$53 = $rc;
$54 = ($53|0)!=(0);
if ($54) {
$55 = $rc;
$0 = $55;
$174 = $0;
STACKTOP = sp;return ($174|0);
}
}
}
$56 = $curvename;
$57 = ($56|0)!=(0|0);
if (!($57)) {
HEAP32[$sk>>2] = 0;
$58 = ((($sk)) + 4|0);
HEAP32[$58>>2] = 0;
}
$59 = (__gcry_get_debug_flag(1)|0);
$60 = ($59|0)!=(0);
if ($60) {
$61 = HEAP32[$sk>>2]|0;
$62 = (__gcry_ecc_model2str($61)|0);
$63 = ((($sk)) + 4|0);
$64 = HEAP32[$63>>2]|0;
$65 = (__gcry_ecc_dialect2str($64)|0);
HEAP32[$vararg_buffer12>>2] = $62;
$vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
HEAP32[$vararg_ptr15>>2] = $65;
__gcry_log_debug(49044,$vararg_buffer12);
$66 = ((($sk)) + 40|0);
$67 = HEAP32[$66>>2]|0;
$68 = ($67|0)!=(0|0);
if ($68) {
$69 = ((($sk)) + 40|0);
$70 = HEAP32[$69>>2]|0;
HEAP32[$vararg_buffer16>>2] = $70;
__gcry_log_debug(49069,$vararg_buffer16);
}
$71 = ((($sk)) + 8|0);
$72 = HEAP32[$71>>2]|0;
__gcry_log_printmpi(49091,$72);
$73 = ((($sk)) + 12|0);
$74 = HEAP32[$73>>2]|0;
__gcry_log_printmpi(49108,$74);
$75 = ((($sk)) + 16|0);
$76 = HEAP32[$75>>2]|0;
__gcry_log_printmpi(49125,$76);
$77 = ((($sk)) + 20|0);
__gcry_mpi_point_log(49142,$77,0);
$78 = ((($sk)) + 32|0);
$79 = HEAP32[$78>>2]|0;
__gcry_log_printmpi(49157,$79);
$80 = ((($sk)) + 36|0);
$81 = HEAP32[$80>>2]|0;
__gcry_log_printmpi(49174,$81);
$82 = (__gcry_fips_mode()|0);
$83 = ($82|0)!=(0);
if (!($83)) {
$84 = ((($sk)) + 56|0);
$85 = HEAP32[$84>>2]|0;
__gcry_log_printmpi(49191,$85);
}
}
$86 = ((($sk)) + 8|0);
$87 = HEAP32[$86>>2]|0;
$88 = ($87|0)!=(0|0);
if ($88) {
$89 = ((($sk)) + 12|0);
$90 = HEAP32[$89>>2]|0;
$91 = ($90|0)!=(0|0);
if ($91) {
$92 = ((($sk)) + 16|0);
$93 = HEAP32[$92>>2]|0;
$94 = ($93|0)!=(0|0);
if ($94) {
$95 = ((($sk)) + 20|0);
$96 = HEAP32[$95>>2]|0;
$97 = ($96|0)!=(0|0);
if ($97) {
$98 = ((($sk)) + 32|0);
$99 = HEAP32[$98>>2]|0;
$100 = ($99|0)!=(0|0);
if ($100) {
$101 = ((($sk)) + 36|0);
$102 = HEAP32[$101>>2]|0;
$103 = ($102|0)!=(0|0);
if ($103) {
$104 = ((($sk)) + 56|0);
$105 = HEAP32[$104>>2]|0;
$106 = ($105|0)!=(0|0);
if ($106) {
$107 = HEAP32[$data_e>>2]|0;
$108 = (__gcry_ecc_os2ec($kG,$107)|0);
$rc = $108;
$109 = $rc;
$110 = ($109|0)!=(0);
if ($110) {
__gcry_mpi_point_free_parts($kG);
$111 = $rc;
$0 = $111;
$174 = $0;
STACKTOP = sp;return ($174|0);
}
$112 = HEAP32[$sk>>2]|0;
$113 = ((($sk)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = ((($sk)) + 8|0);
$116 = HEAP32[$115>>2]|0;
$117 = ((($sk)) + 12|0);
$118 = HEAP32[$117>>2]|0;
$119 = ((($sk)) + 16|0);
$120 = HEAP32[$119>>2]|0;
$121 = (__gcry_mpi_ec_p_internal_new($112,$114,0,$116,$118,$120)|0);
$ec = $121;
$122 = ((($sk)) + 56|0);
$123 = HEAP32[$122>>2]|0;
$124 = $ec;
__gcry_mpi_ec_mul_point($R,$123,$kG,$124);
$125 = (__gcry_mpi_new(0)|0);
$x = $125;
$126 = (__gcry_mpi_new(0)|0);
$y = $126;
$127 = $x;
$128 = $y;
$129 = $ec;
$130 = (__gcry_mpi_ec_get_affine($127,$128,$R,$129)|0);
$131 = ($130|0)!=(0);
if ($131) {
__gcry_log_fatal(49208,$vararg_buffer19);
// unreachable;
}
$132 = $x;
$133 = $y;
$134 = ((($sk)) + 8|0);
$135 = HEAP32[$134>>2]|0;
$136 = (__gcry_ecc_ec2os($132,$133,$135)|0);
$r = $136;
$137 = $r;
$138 = ($137|0)!=(0|0);
if ($138) {
$rc = 0;
} else {
$139 = (_gpg_err_code_from_syserror()|0);
$rc = $139;
}
$140 = $x;
__gcry_mpi_free($140);
$141 = $y;
__gcry_mpi_free($141);
$142 = (__gcry_get_debug_flag(1)|0);
$143 = ($142|0)!=(0);
if ($143) {
$144 = $r;
__gcry_log_printmpi(49248,$144);
}
$145 = $rc;
$146 = ($145|0)!=(0);
if ($146) {
break;
}
$147 = $1;
$148 = $r;
HEAP32[$vararg_buffer21>>2] = $148;
$149 = (__gcry_sexp_build($147,0,49265,$vararg_buffer21)|0);
$rc = $149;
break;
}
}
}
}
}
}
}
$rc = 68;
}
}
}
} while(0);
__gcry_mpi_point_free_parts($R);
__gcry_mpi_point_free_parts($kG);
$150 = $r;
__gcry_mpi_release($150);
$151 = ((($sk)) + 8|0);
$152 = HEAP32[$151>>2]|0;
__gcry_mpi_release($152);
$153 = ((($sk)) + 12|0);
$154 = HEAP32[$153>>2]|0;
__gcry_mpi_release($154);
$155 = ((($sk)) + 16|0);
$156 = HEAP32[$155>>2]|0;
__gcry_mpi_release($156);
$157 = HEAP32[$mpi_g>>2]|0;
__gcry_mpi_release($157);
$158 = ((($sk)) + 20|0);
__gcry_mpi_point_free_parts($158);
$159 = ((($sk)) + 32|0);
$160 = HEAP32[$159>>2]|0;
__gcry_mpi_release($160);
$161 = ((($sk)) + 36|0);
$162 = HEAP32[$161>>2]|0;
__gcry_mpi_release($162);
$163 = ((($sk)) + 56|0);
$164 = HEAP32[$163>>2]|0;
__gcry_mpi_release($164);
$165 = HEAP32[$data_e>>2]|0;
__gcry_mpi_release($165);
$166 = $curvename;
__gcry_free($166);
$167 = HEAP32[$l1>>2]|0;
__gcry_sexp_release($167);
$168 = $ec;
__gcry_mpi_ec_free($168);
__gcry_pk_util_free_encoding_ctx($ctx);
$169 = (__gcry_get_debug_flag(1)|0);
$170 = ($169|0)!=(0);
if ($170) {
$171 = $rc;
$172 = (_gpg_strerror($171)|0);
HEAP32[$vararg_buffer24>>2] = $172;
__gcry_log_debug(49276,$vararg_buffer24);
}
$173 = $rc;
$0 = $173;
$174 = $0;
STACKTOP = sp;return ($174|0);
}
function _ecc_sign($r_sig,$s_data,$keyparms) {
$r_sig = $r_sig|0;
$s_data = $s_data|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $19 = 0, $2 = 0;
var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $ctx = 0, $curvename = 0, $data = 0, $l1 = 0, $mpi_g = 0, $mpi_q = 0, $rc = 0, $sig_r = 0, $sig_s = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer14 = 0, $vararg_buffer19 = 0;
var $vararg_buffer22 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0, $vararg_buffer34 = 0, $vararg_buffer9 = 0, $vararg_ptr1 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr18 = 0, $vararg_ptr2 = 0, $vararg_ptr25 = 0, $vararg_ptr29 = 0, $vararg_ptr3 = 0, $vararg_ptr33 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0;
var dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer34 = sp + 104|0;
$vararg_buffer30 = sp + 96|0;
$vararg_buffer26 = sp + 88|0;
$vararg_buffer22 = sp + 80|0;
$vararg_buffer19 = sp + 72|0;
$vararg_buffer14 = sp + 56|0;
$vararg_buffer9 = sp + 40|0;
$vararg_buffer = sp;
$ctx = sp + 200|0;
$data = sp + 192|0;
$mpi_g = sp + 180|0;
$mpi_q = sp + 176|0;
$sk = sp + 116|0;
$1 = $r_sig;
$2 = $s_data;
$3 = $keyparms;
HEAP32[$data>>2] = 0;
$l1 = 0;
$curvename = 0;
HEAP32[$mpi_g>>2] = 0;
HEAP32[$mpi_q>>2] = 0;
$sig_r = 0;
$sig_s = 0;
dest=$sk; stop=dest+60|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
__gcry_pk_util_init_encoding_ctx($ctx,2,0);
$4 = $2;
$5 = (__gcry_pk_util_data_to_mpi($4,$data,$ctx)|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
do {
if (!($7)) {
$8 = (__gcry_get_debug_flag(1)|0);
$9 = ($8|0)!=(0);
if ($9) {
$10 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(49298,$10);
}
$11 = ((($ctx)) + 12|0);
$12 = HEAP32[$11>>2]|0;
$13 = $12 & 512;
$14 = ($13|0)!=(0);
$15 = $3;
if ($14) {
$16 = ((($sk)) + 8|0);
$17 = ((($sk)) + 12|0);
$18 = ((($sk)) + 16|0);
$19 = ((($sk)) + 32|0);
$20 = ((($sk)) + 36|0);
$21 = ((($sk)) + 56|0);
HEAP32[$vararg_buffer>>2] = $16;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $17;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $18;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $mpi_g;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $19;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $20;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = $mpi_q;
$vararg_ptr7 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr7>>2] = $21;
$vararg_ptr8 = ((($vararg_buffer)) + 32|0);
HEAP32[$vararg_ptr8>>2] = 0;
$22 = (__gcry_sexp_extract_param($15,0,48163,$vararg_buffer)|0);
$rc = $22;
} else {
$23 = ((($sk)) + 56|0);
HEAP32[$vararg_buffer9>>2] = $mpi_q;
$vararg_ptr12 = ((($vararg_buffer9)) + 4|0);
HEAP32[$vararg_ptr12>>2] = $23;
$vararg_ptr13 = ((($vararg_buffer9)) + 8|0);
HEAP32[$vararg_ptr13>>2] = 0;
$24 = (__gcry_sexp_extract_param($15,0,48182,$vararg_buffer9)|0);
$rc = $24;
}
$25 = $rc;
$26 = ($25|0)!=(0);
if (!($26)) {
$27 = HEAP32[$mpi_g>>2]|0;
$28 = ($27|0)!=(0|0);
if ($28) {
$29 = ((($sk)) + 20|0);
__gcry_mpi_point_init($29);
$30 = ((($sk)) + 20|0);
$31 = HEAP32[$mpi_g>>2]|0;
$32 = (__gcry_ecc_os2ec($30,$31)|0);
$rc = $32;
$33 = $rc;
$34 = ($33|0)!=(0);
if ($34) {
break;
}
}
$35 = $l1;
__gcry_sexp_release($35);
$36 = $3;
$37 = (__gcry_sexp_find_token($36,47184,5)|0);
$l1 = $37;
$38 = $l1;
$39 = ($38|0)!=(0|0);
if ($39) {
$40 = $l1;
$41 = (__gcry_sexp_nth_string($40,1)|0);
$curvename = $41;
$42 = $curvename;
$43 = ($42|0)!=(0|0);
if ($43) {
$44 = $curvename;
$45 = (__gcry_ecc_fill_in_curve(0,$44,$sk,0)|0);
$rc = $45;
$46 = $rc;
$47 = ($46|0)!=(0);
if ($47) {
$48 = $rc;
$0 = $48;
$186 = $0;
STACKTOP = sp;return ($186|0);
}
}
}
$49 = $curvename;
$50 = ($49|0)!=(0|0);
if (!($50)) {
$51 = ((($ctx)) + 12|0);
$52 = HEAP32[$51>>2]|0;
$53 = $52 & 4096;
$54 = ($53|0)!=(0);
$55 = $54 ? 2 : 0;
HEAP32[$sk>>2] = $55;
$56 = ((($ctx)) + 12|0);
$57 = HEAP32[$56>>2]|0;
$58 = $57 & 4096;
$59 = ($58|0)!=(0);
$60 = $59 ? 1 : 0;
$61 = ((($sk)) + 4|0);
HEAP32[$61>>2] = $60;
}
$62 = (__gcry_get_debug_flag(1)|0);
$63 = ($62|0)!=(0);
if ($63) {
$64 = HEAP32[$sk>>2]|0;
$65 = (__gcry_ecc_model2str($64)|0);
$66 = ((($sk)) + 4|0);
$67 = HEAP32[$66>>2]|0;
$68 = (__gcry_ecc_dialect2str($67)|0);
$69 = ((($ctx)) + 12|0);
$70 = HEAP32[$69>>2]|0;
$71 = $70 & 4096;
$72 = ($71|0)!=(0);
$73 = $72 ? 49314 : 76543;
HEAP32[$vararg_buffer14>>2] = $65;
$vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
HEAP32[$vararg_ptr17>>2] = $68;
$vararg_ptr18 = ((($vararg_buffer14)) + 8|0);
HEAP32[$vararg_ptr18>>2] = $73;
__gcry_log_debug(49321,$vararg_buffer14);
$74 = ((($sk)) + 40|0);
$75 = HEAP32[$74>>2]|0;
$76 = ($75|0)!=(0|0);
if ($76) {
$77 = ((($sk)) + 40|0);
$78 = HEAP32[$77>>2]|0;
HEAP32[$vararg_buffer19>>2] = $78;
__gcry_log_debug(49347,$vararg_buffer19);
}
$79 = ((($sk)) + 8|0);
$80 = HEAP32[$79>>2]|0;
__gcry_log_printmpi(49368,$80);
$81 = ((($sk)) + 12|0);
$82 = HEAP32[$81>>2]|0;
__gcry_log_printmpi(49384,$82);
$83 = ((($sk)) + 16|0);
$84 = HEAP32[$83>>2]|0;
__gcry_log_printmpi(49400,$84);
$85 = ((($sk)) + 20|0);
__gcry_mpi_point_log(49416,$85,0);
$86 = ((($sk)) + 32|0);
$87 = HEAP32[$86>>2]|0;
__gcry_log_printmpi(49430,$87);
$88 = ((($sk)) + 36|0);
$89 = HEAP32[$88>>2]|0;
__gcry_log_printmpi(49446,$89);
$90 = HEAP32[$mpi_q>>2]|0;
__gcry_log_printmpi(49462,$90);
$91 = (__gcry_fips_mode()|0);
$92 = ($91|0)!=(0);
if (!($92)) {
$93 = ((($sk)) + 56|0);
$94 = HEAP32[$93>>2]|0;
__gcry_log_printmpi(49478,$94);
}
}
$95 = ((($sk)) + 8|0);
$96 = HEAP32[$95>>2]|0;
$97 = ($96|0)!=(0|0);
if ($97) {
$98 = ((($sk)) + 12|0);
$99 = HEAP32[$98>>2]|0;
$100 = ($99|0)!=(0|0);
if ($100) {
$101 = ((($sk)) + 16|0);
$102 = HEAP32[$101>>2]|0;
$103 = ($102|0)!=(0|0);
if ($103) {
$104 = ((($sk)) + 20|0);
$105 = HEAP32[$104>>2]|0;
$106 = ($105|0)!=(0|0);
if ($106) {
$107 = ((($sk)) + 32|0);
$108 = HEAP32[$107>>2]|0;
$109 = ($108|0)!=(0|0);
if ($109) {
$110 = ((($sk)) + 36|0);
$111 = HEAP32[$110>>2]|0;
$112 = ($111|0)!=(0|0);
if ($112) {
$113 = ((($sk)) + 56|0);
$114 = HEAP32[$113>>2]|0;
$115 = ($114|0)!=(0|0);
if ($115) {
$116 = (__gcry_mpi_new(0)|0);
$sig_r = $116;
$117 = (__gcry_mpi_new(0)|0);
$sig_s = $117;
$118 = ((($ctx)) + 12|0);
$119 = HEAP32[$118>>2]|0;
$120 = $119 & 4096;
$121 = ($120|0)!=(0);
if ($121) {
$122 = HEAP32[$data>>2]|0;
$123 = $sig_r;
$124 = $sig_s;
$125 = ((($ctx)) + 16|0);
$126 = HEAP32[$125>>2]|0;
$127 = HEAP32[$mpi_q>>2]|0;
$128 = (__gcry_ecc_eddsa_sign($122,$sk,$123,$124,$126,$127)|0);
$rc = $128;
$129 = $rc;
$130 = ($129|0)!=(0);
if ($130) {
break;
}
$131 = $1;
$132 = $sig_r;
$133 = $sig_s;
HEAP32[$vararg_buffer22>>2] = $132;
$vararg_ptr25 = ((($vararg_buffer22)) + 4|0);
HEAP32[$vararg_ptr25>>2] = $133;
$134 = (__gcry_sexp_build($131,0,49494,$vararg_buffer22)|0);
$rc = $134;
break;
}
$135 = ((($ctx)) + 12|0);
$136 = HEAP32[$135>>2]|0;
$137 = $136 & 8192;
$138 = ($137|0)!=(0);
$139 = HEAP32[$data>>2]|0;
$140 = $sig_r;
$141 = $sig_s;
if ($138) {
$142 = (__gcry_ecc_gost_sign($139,$sk,$140,$141)|0);
$rc = $142;
$143 = $rc;
$144 = ($143|0)!=(0);
if ($144) {
break;
}
$145 = $1;
$146 = $sig_r;
$147 = $sig_s;
HEAP32[$vararg_buffer26>>2] = $146;
$vararg_ptr29 = ((($vararg_buffer26)) + 4|0);
HEAP32[$vararg_ptr29>>2] = $147;
$148 = (__gcry_sexp_build($145,0,49521,$vararg_buffer26)|0);
$rc = $148;
break;
} else {
$149 = ((($ctx)) + 12|0);
$150 = HEAP32[$149>>2]|0;
$151 = ((($ctx)) + 16|0);
$152 = HEAP32[$151>>2]|0;
$153 = (__gcry_ecc_ecdsa_sign($139,$sk,$140,$141,$150,$152)|0);
$rc = $153;
$154 = $rc;
$155 = ($154|0)!=(0);
if ($155) {
break;
}
$156 = $1;
$157 = $sig_r;
$158 = $sig_s;
HEAP32[$vararg_buffer30>>2] = $157;
$vararg_ptr33 = ((($vararg_buffer30)) + 4|0);
HEAP32[$vararg_ptr33>>2] = $158;
$159 = (__gcry_sexp_build($156,0,49547,$vararg_buffer30)|0);
$rc = $159;
break;
}
}
}
}
}
}
}
}
$rc = 68;
}
}
} while(0);
$160 = ((($sk)) + 8|0);
$161 = HEAP32[$160>>2]|0;
__gcry_mpi_release($161);
$162 = ((($sk)) + 12|0);
$163 = HEAP32[$162>>2]|0;
__gcry_mpi_release($163);
$164 = ((($sk)) + 16|0);
$165 = HEAP32[$164>>2]|0;
__gcry_mpi_release($165);
$166 = HEAP32[$mpi_g>>2]|0;
__gcry_mpi_release($166);
$167 = ((($sk)) + 20|0);
__gcry_mpi_point_free_parts($167);
$168 = ((($sk)) + 32|0);
$169 = HEAP32[$168>>2]|0;
__gcry_mpi_release($169);
$170 = ((($sk)) + 36|0);
$171 = HEAP32[$170>>2]|0;
__gcry_mpi_release($171);
$172 = HEAP32[$mpi_q>>2]|0;
__gcry_mpi_release($172);
$173 = ((($sk)) + 44|0);
__gcry_mpi_point_free_parts($173);
$174 = ((($sk)) + 56|0);
$175 = HEAP32[$174>>2]|0;
__gcry_mpi_release($175);
$176 = $sig_r;
__gcry_mpi_release($176);
$177 = $sig_s;
__gcry_mpi_release($177);
$178 = $curvename;
__gcry_free($178);
$179 = HEAP32[$data>>2]|0;
__gcry_mpi_release($179);
$180 = $l1;
__gcry_sexp_release($180);
__gcry_pk_util_free_encoding_ctx($ctx);
$181 = (__gcry_get_debug_flag(1)|0);
$182 = ($181|0)!=(0);
if ($182) {
$183 = $rc;
$184 = (_gpg_strerror($183)|0);
HEAP32[$vararg_buffer34>>2] = $184;
__gcry_log_debug(49574,$vararg_buffer34);
}
$185 = $rc;
$0 = $185;
$186 = $0;
STACKTOP = sp;return ($186|0);
}
function _ecc_verify($s_sig,$s_data,$s_keyparms) {
$s_sig = $s_sig|0;
$s_data = $s_data|0;
$s_keyparms = $s_keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $a = 0, $abits = 0, $abuf = 0, $ctx = 0, $curvename = 0, $data = 0, $ec = 0, $l1 = 0, $mpi_g = 0, $mpi_q = 0, $or$cond = 0, $pk = 0, $qbits = 0, $rc = 0, $sig_r = 0, $sig_s = 0, $sigflags = 0, $vararg_buffer = 0, $vararg_buffer14 = 0;
var $vararg_buffer18 = 0, $vararg_buffer23 = 0, $vararg_buffer26 = 0, $vararg_buffer4 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer26 = sp + 80|0;
$vararg_buffer23 = sp + 72|0;
$vararg_buffer18 = sp + 56|0;
$vararg_buffer14 = sp + 48|0;
$vararg_buffer4 = sp + 16|0;
$vararg_buffer = sp;
$ctx = sp + 200|0;
$l1 = sp + 192|0;
$mpi_g = sp + 184|0;
$mpi_q = sp + 180|0;
$sig_r = sp + 176|0;
$sig_s = sp + 172|0;
$data = sp + 168|0;
$pk = sp + 112|0;
$sigflags = sp + 104|0;
$abits = sp + 92|0;
$a = sp + 84|0;
$1 = $s_sig;
$2 = $s_data;
$3 = $s_keyparms;
HEAP32[$l1>>2] = 0;
$curvename = 0;
HEAP32[$mpi_g>>2] = 0;
HEAP32[$mpi_q>>2] = 0;
HEAP32[$sig_r>>2] = 0;
HEAP32[$sig_s>>2] = 0;
HEAP32[$data>>2] = 0;
dest=$pk; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$4 = $3;
$5 = (_ecc_get_nbits($4)|0);
__gcry_pk_util_init_encoding_ctx($ctx,3,$5);
$6 = $2;
$7 = (__gcry_pk_util_data_to_mpi($6,$data,$ctx)|0);
$rc = $7;
$8 = $rc;
$9 = ($8|0)!=(0);
L1: do {
if (!($9)) {
$10 = (__gcry_get_debug_flag(1)|0);
$11 = ($10|0)!=(0);
if ($11) {
$12 = HEAP32[$data>>2]|0;
__gcry_log_printmpi(49595,$12);
}
$13 = $1;
$14 = (__gcry_pk_util_preparse_sigval($13,12920,$l1,$sigflags)|0);
$rc = $14;
$15 = $rc;
$16 = ($15|0)!=(0);
if (!($16)) {
$17 = HEAP32[$l1>>2]|0;
$18 = HEAP32[$sigflags>>2]|0;
$19 = $18 & 4096;
$20 = ($19|0)!=(0);
$21 = $20 ? 49611 : 47181;
HEAP32[$vararg_buffer>>2] = $sig_r;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $sig_s;
$vararg_ptr3 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr3>>2] = 0;
$22 = (__gcry_sexp_extract_param($17,0,$21,$vararg_buffer)|0);
$rc = $22;
$23 = $rc;
$24 = ($23|0)!=(0);
if (!($24)) {
$25 = (__gcry_get_debug_flag(1)|0);
$26 = ($25|0)!=(0);
if ($26) {
$27 = HEAP32[$sig_r>>2]|0;
__gcry_log_printmpi(49615,$27);
$28 = HEAP32[$sig_s>>2]|0;
__gcry_log_printmpi(49631,$28);
}
$29 = ((($ctx)) + 12|0);
$30 = HEAP32[$29>>2]|0;
$31 = $30 & 4096;
$32 = HEAP32[$sigflags>>2]|0;
$33 = $32 & 4096;
$34 = $31 ^ $33;
$35 = ($34|0)!=(0);
if ($35) {
$rc = 70;
break;
}
$36 = ((($ctx)) + 12|0);
$37 = HEAP32[$36>>2]|0;
$38 = $37 & 512;
$39 = ($38|0)!=(0);
$40 = $3;
if ($39) {
$41 = ((($pk)) + 8|0);
$42 = ((($pk)) + 12|0);
$43 = ((($pk)) + 16|0);
$44 = ((($pk)) + 32|0);
$45 = ((($pk)) + 32|0);
HEAP32[$vararg_buffer4>>2] = $41;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = $42;
$vararg_ptr8 = ((($vararg_buffer4)) + 8|0);
HEAP32[$vararg_ptr8>>2] = $43;
$vararg_ptr9 = ((($vararg_buffer4)) + 12|0);
HEAP32[$vararg_ptr9>>2] = $mpi_g;
$vararg_ptr10 = ((($vararg_buffer4)) + 16|0);
HEAP32[$vararg_ptr10>>2] = $44;
$vararg_ptr11 = ((($vararg_buffer4)) + 20|0);
HEAP32[$vararg_ptr11>>2] = $45;
$vararg_ptr12 = ((($vararg_buffer4)) + 24|0);
HEAP32[$vararg_ptr12>>2] = $mpi_q;
$vararg_ptr13 = ((($vararg_buffer4)) + 28|0);
HEAP32[$vararg_ptr13>>2] = 0;
$46 = (__gcry_sexp_extract_param($40,0,49647,$vararg_buffer4)|0);
$rc = $46;
} else {
HEAP32[$vararg_buffer14>>2] = $mpi_q;
$vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
HEAP32[$vararg_ptr17>>2] = 0;
$47 = (__gcry_sexp_extract_param($40,0,49663,$vararg_buffer14)|0);
$rc = $47;
}
$48 = $rc;
$49 = ($48|0)!=(0);
if (!($49)) {
$50 = HEAP32[$mpi_g>>2]|0;
$51 = ($50|0)!=(0|0);
if ($51) {
$52 = ((($pk)) + 20|0);
__gcry_mpi_point_init($52);
$53 = ((($pk)) + 20|0);
$54 = HEAP32[$mpi_g>>2]|0;
$55 = (__gcry_ecc_os2ec($53,$54)|0);
$rc = $55;
$56 = $rc;
$57 = ($56|0)!=(0);
if ($57) {
break;
}
}
$58 = HEAP32[$l1>>2]|0;
__gcry_sexp_release($58);
$59 = $3;
$60 = (__gcry_sexp_find_token($59,47184,5)|0);
HEAP32[$l1>>2] = $60;
$61 = HEAP32[$l1>>2]|0;
$62 = ($61|0)!=(0|0);
if ($62) {
$63 = HEAP32[$l1>>2]|0;
$64 = (__gcry_sexp_nth_string($63,1)|0);
$curvename = $64;
$65 = $curvename;
$66 = ($65|0)!=(0|0);
if ($66) {
$67 = $curvename;
$68 = (__gcry_ecc_fill_in_curve(0,$67,$pk,0)|0);
$rc = $68;
$69 = $rc;
$70 = ($69|0)!=(0);
if ($70) {
$71 = $rc;
$0 = $71;
$240 = $0;
STACKTOP = sp;return ($240|0);
}
}
}
$72 = $curvename;
$73 = ($72|0)!=(0|0);
if (!($73)) {
$74 = HEAP32[$sigflags>>2]|0;
$75 = $74 & 4096;
$76 = ($75|0)!=(0);
$77 = $76 ? 2 : 0;
HEAP32[$pk>>2] = $77;
$78 = HEAP32[$sigflags>>2]|0;
$79 = $78 & 4096;
$80 = ($79|0)!=(0);
$81 = $80 ? 1 : 0;
$82 = ((($pk)) + 4|0);
HEAP32[$82>>2] = $81;
}
$83 = (__gcry_get_debug_flag(1)|0);
$84 = ($83|0)!=(0);
if ($84) {
$85 = HEAP32[$pk>>2]|0;
$86 = (__gcry_ecc_model2str($85)|0);
$87 = ((($pk)) + 4|0);
$88 = HEAP32[$87>>2]|0;
$89 = (__gcry_ecc_dialect2str($88)|0);
$90 = HEAP32[$sigflags>>2]|0;
$91 = $90 & 4096;
$92 = ($91|0)!=(0);
$93 = $92 ? 49314 : 76543;
HEAP32[$vararg_buffer18>>2] = $86;
$vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
HEAP32[$vararg_ptr21>>2] = $89;
$vararg_ptr22 = ((($vararg_buffer18)) + 8|0);
HEAP32[$vararg_ptr22>>2] = $93;
__gcry_log_debug(49666,$vararg_buffer18);
$94 = ((($pk)) + 40|0);
$95 = HEAP32[$94>>2]|0;
$96 = ($95|0)!=(0|0);
if ($96) {
$97 = ((($pk)) + 40|0);
$98 = HEAP32[$97>>2]|0;
HEAP32[$vararg_buffer23>>2] = $98;
__gcry_log_debug(49692,$vararg_buffer23);
}
$99 = ((($pk)) + 8|0);
$100 = HEAP32[$99>>2]|0;
__gcry_log_printmpi(49713,$100);
$101 = ((($pk)) + 12|0);
$102 = HEAP32[$101>>2]|0;
__gcry_log_printmpi(49729,$102);
$103 = ((($pk)) + 16|0);
$104 = HEAP32[$103>>2]|0;
__gcry_log_printmpi(49745,$104);
$105 = ((($pk)) + 20|0);
__gcry_mpi_point_log(49761,$105,0);
$106 = ((($pk)) + 32|0);
$107 = HEAP32[$106>>2]|0;
__gcry_log_printmpi(49775,$107);
$108 = ((($pk)) + 36|0);
$109 = HEAP32[$108>>2]|0;
__gcry_log_printmpi(49791,$109);
$110 = HEAP32[$mpi_q>>2]|0;
__gcry_log_printmpi(49807,$110);
}
$111 = ((($pk)) + 8|0);
$112 = HEAP32[$111>>2]|0;
$113 = ($112|0)!=(0|0);
if ($113) {
$114 = ((($pk)) + 12|0);
$115 = HEAP32[$114>>2]|0;
$116 = ($115|0)!=(0|0);
if ($116) {
$117 = ((($pk)) + 16|0);
$118 = HEAP32[$117>>2]|0;
$119 = ($118|0)!=(0|0);
if ($119) {
$120 = ((($pk)) + 20|0);
$121 = HEAP32[$120>>2]|0;
$122 = ($121|0)!=(0|0);
if ($122) {
$123 = ((($pk)) + 32|0);
$124 = HEAP32[$123>>2]|0;
$125 = ($124|0)!=(0|0);
if ($125) {
$126 = ((($pk)) + 36|0);
$127 = HEAP32[$126>>2]|0;
$128 = ($127|0)!=(0|0);
$129 = HEAP32[$mpi_q>>2]|0;
$130 = ($129|0)!=(0|0);
$or$cond = $128 & $130;
if ($or$cond) {
$131 = HEAP32[$sigflags>>2]|0;
$132 = $131 & 4096;
$133 = ($132|0)!=(0);
if ($133) {
$134 = HEAP32[$data>>2]|0;
$135 = HEAP32[$sig_r>>2]|0;
$136 = HEAP32[$sig_s>>2]|0;
$137 = ((($ctx)) + 16|0);
$138 = HEAP32[$137>>2]|0;
$139 = HEAP32[$mpi_q>>2]|0;
$140 = (__gcry_ecc_eddsa_verify($134,$pk,$135,$136,$138,$139)|0);
$rc = $140;
break;
}
$141 = HEAP32[$sigflags>>2]|0;
$142 = $141 & 8192;
$143 = ($142|0)!=(0);
$144 = ((($pk)) + 44|0);
__gcry_mpi_point_init($144);
if ($143) {
$145 = ((($pk)) + 44|0);
$146 = HEAP32[$mpi_q>>2]|0;
$147 = (__gcry_ecc_os2ec($145,$146)|0);
$rc = $147;
$148 = $rc;
$149 = ($148|0)!=(0);
if ($149) {
break;
}
$150 = HEAP32[$data>>2]|0;
$151 = HEAP32[$sig_r>>2]|0;
$152 = HEAP32[$sig_s>>2]|0;
$153 = (__gcry_ecc_gost_verify($150,$pk,$151,$152)|0);
$rc = $153;
break;
}
$154 = ((($pk)) + 4|0);
$155 = HEAP32[$154>>2]|0;
$156 = ($155|0)==(1);
if ($156) {
$157 = HEAP32[$pk>>2]|0;
$158 = ((($pk)) + 4|0);
$159 = HEAP32[$158>>2]|0;
$160 = ((($pk)) + 8|0);
$161 = HEAP32[$160>>2]|0;
$162 = ((($pk)) + 12|0);
$163 = HEAP32[$162>>2]|0;
$164 = ((($pk)) + 16|0);
$165 = HEAP32[$164>>2]|0;
$166 = (__gcry_mpi_ec_p_internal_new($157,$159,0,$161,$163,$165)|0);
$ec = $166;
$167 = HEAP32[$mpi_q>>2]|0;
$168 = $ec;
$169 = ((($pk)) + 44|0);
$170 = (__gcry_ecc_eddsa_decodepoint($167,$168,$169,0,0)|0);
$rc = $170;
$171 = $ec;
__gcry_mpi_ec_free($171);
} else {
$172 = ((($pk)) + 44|0);
$173 = HEAP32[$mpi_q>>2]|0;
$174 = (__gcry_ecc_os2ec($172,$173)|0);
$rc = $174;
}
$175 = $rc;
$176 = ($175|0)!=(0);
if ($176) {
break;
}
$177 = HEAP32[$data>>2]|0;
$178 = ($177|0)!=(0|0);
do {
if ($178) {
$179 = HEAP32[$data>>2]|0;
$180 = ((($179)) + 12|0);
$181 = HEAP32[$180>>2]|0;
$182 = $181 & 4;
$183 = ($182|0)!=(0);
if (!($183)) {
break;
}
$184 = ((($pk)) + 32|0);
$185 = HEAP32[$184>>2]|0;
$186 = (__gcry_mpi_get_nbits($185)|0);
$qbits = $186;
$187 = HEAP32[$data>>2]|0;
$188 = (__gcry_mpi_get_opaque($187,$abits)|0);
$abuf = $188;
$189 = $abuf;
$190 = HEAP32[$abits>>2]|0;
$191 = (($190) + 7)|0;
$192 = (($191>>>0) / 8)&-1;
$193 = (__gcry_mpi_scan($a,5,$189,$192,0)|0);
$rc = $193;
$194 = $rc;
$195 = ($194|0)!=(0);
if ($195) {
break L1;
}
$196 = HEAP32[$abits>>2]|0;
$197 = $qbits;
$198 = ($196>>>0)>($197>>>0);
if ($198) {
$199 = HEAP32[$a>>2]|0;
$200 = HEAP32[$a>>2]|0;
$201 = HEAP32[$abits>>2]|0;
$202 = $qbits;
$203 = (($201) - ($202))|0;
__gcry_mpi_rshift($199,$200,$203);
}
$204 = HEAP32[$a>>2]|0;
$205 = HEAP32[$sig_r>>2]|0;
$206 = HEAP32[$sig_s>>2]|0;
$207 = (__gcry_ecc_ecdsa_verify($204,$pk,$205,$206)|0);
$rc = $207;
$208 = HEAP32[$a>>2]|0;
__gcry_mpi_release($208);
break L1;
}
} while(0);
$209 = HEAP32[$data>>2]|0;
$210 = HEAP32[$sig_r>>2]|0;
$211 = HEAP32[$sig_s>>2]|0;
$212 = (__gcry_ecc_ecdsa_verify($209,$pk,$210,$211)|0);
$rc = $212;
break;
}
}
}
}
}
}
$rc = 68;
}
}
}
}
} while(0);
$213 = ((($pk)) + 8|0);
$214 = HEAP32[$213>>2]|0;
__gcry_mpi_release($214);
$215 = ((($pk)) + 12|0);
$216 = HEAP32[$215>>2]|0;
__gcry_mpi_release($216);
$217 = ((($pk)) + 16|0);
$218 = HEAP32[$217>>2]|0;
__gcry_mpi_release($218);
$219 = HEAP32[$mpi_g>>2]|0;
__gcry_mpi_release($219);
$220 = ((($pk)) + 20|0);
__gcry_mpi_point_free_parts($220);
$221 = ((($pk)) + 32|0);
$222 = HEAP32[$221>>2]|0;
__gcry_mpi_release($222);
$223 = ((($pk)) + 36|0);
$224 = HEAP32[$223>>2]|0;
__gcry_mpi_release($224);
$225 = HEAP32[$mpi_q>>2]|0;
__gcry_mpi_release($225);
$226 = ((($pk)) + 44|0);
__gcry_mpi_point_free_parts($226);
$227 = HEAP32[$data>>2]|0;
__gcry_mpi_release($227);
$228 = HEAP32[$sig_r>>2]|0;
__gcry_mpi_release($228);
$229 = HEAP32[$sig_s>>2]|0;
__gcry_mpi_release($229);
$230 = $curvename;
__gcry_free($230);
$231 = HEAP32[$l1>>2]|0;
__gcry_sexp_release($231);
__gcry_pk_util_free_encoding_ctx($ctx);
$232 = (__gcry_get_debug_flag(1)|0);
$233 = ($232|0)!=(0);
if ($233) {
$234 = $rc;
$235 = ($234|0)!=(0);
if ($235) {
$236 = $rc;
$237 = (_gpg_strerror($236)|0);
$238 = $237;
} else {
$238 = 49823;
}
HEAP32[$vararg_buffer26>>2] = $238;
__gcry_log_debug(49828,$vararg_buffer26);
}
$239 = $rc;
$0 = $239;
$240 = $0;
STACKTOP = sp;return ($240|0);
}
function _run_selftests_2065($algo,$extended,$report) {
$algo = $algo|0;
$extended = $extended|0;
$report = $report|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $algo;
$2 = $extended;
$3 = $report;
$4 = $1;
$5 = ($4|0)!=(18);
if ($5) {
$0 = 4;
} else {
$6 = $3;
$7 = (_selftests_ecdsa($6)|0);
$0 = $7;
}
$8 = $0;
STACKTOP = sp;return ($8|0);
}
function _selftests_ecdsa($report) {
$report = $report|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $errtxt = 0, $what = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $report;
$what = 49849;
$errtxt = 0;
$2 = $errtxt;
$3 = ($2|0)!=(0|0);
if (!($3)) {
$0 = 0;
$9 = $0;
STACKTOP = sp;return ($9|0);
}
$4 = $1;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = $1;
$7 = $what;
$8 = $errtxt;
FUNCTION_TABLE_viiii[$6 & 63](49859,18,$7,$8);
}
$0 = 50;
$9 = $0;
STACKTOP = sp;return ($9|0);
}
function _compute_keygrip_2068($md,$keyparms) {
$md = $md|0;
$keyparms = $keyparms|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $buf = 0, $curvename = 0, $dialect = 0, $flags = 0, $idx = 0, $l1 = 0, $model = 0, $n = 0, $raw = 0, $rawmpi = 0, $rawmpilen = 0;
var $rc = 0, $values = 0, $vararg_buffer = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr21 = 0, $vararg_ptr25 = 0, $vararg_ptr29 = 0;
var $vararg_ptr3 = 0, $vararg_ptr33 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer30 = sp + 88|0;
$vararg_buffer26 = sp + 80|0;
$vararg_buffer22 = sp + 72|0;
$vararg_buffer18 = sp + 64|0;
$vararg_buffer8 = sp + 32|0;
$vararg_buffer = sp;
$values = sp + 132|0;
$flags = sp + 120|0;
$model = sp + 116|0;
$dialect = sp + 112|0;
$buf = sp + 176|0;
$n = sp + 104|0;
$rawmpilen = sp + 96|0;
$0 = $md;
$1 = $keyparms;
$curvename = 0;
HEAP32[$flags>>2] = 0;
HEAP32[$model>>2] = 0;
HEAP32[$dialect>>2] = 0;
$idx = 0;
while(1) {
$2 = $idx;
$3 = ($2|0)<(7);
if (!($3)) {
break;
}
$4 = $idx;
$5 = (($values) + ($4<<2)|0);
HEAP32[$5>>2] = 0;
$6 = $idx;
$7 = (($6) + 1)|0;
$idx = $7;
}
$8 = $1;
$9 = (__gcry_sexp_find_token($8,47190,0)|0);
$l1 = $9;
$10 = $l1;
$11 = ($10|0)!=(0|0);
if ($11) {
$12 = $l1;
$13 = (__gcry_pk_util_parse_flaglist($12,$flags,0)|0);
$rc = $13;
$14 = $rc;
$15 = ($14|0)!=(0);
if (!($15)) {
label = 6;
}
} else {
label = 6;
}
L7: do {
if ((label|0) == 6) {
$16 = HEAP32[$flags>>2]|0;
$17 = $16 & 512;
$18 = ($17|0)!=(0);
$19 = HEAP32[$flags>>2]|0;
$20 = $19 & 4096;
$21 = ($20|0)!=(0);
$22 = $1;
do {
if ($18) {
$23 = ((($values)) + 4|0);
$24 = ((($values)) + 8|0);
$25 = ((($values)) + 12|0);
$26 = ((($values)) + 16|0);
$27 = ((($values)) + 20|0);
$28 = ((($values)) + 24|0);
if ($21) {
HEAP32[$vararg_buffer>>2] = $values;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $23;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $24;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $25;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $26;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $27;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = $28;
$vararg_ptr7 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr7>>2] = 0;
$29 = (__gcry_sexp_extract_param($22,0,49866,$vararg_buffer)|0);
$rc = $29;
break;
} else {
HEAP32[$vararg_buffer8>>2] = $values;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = $23;
$vararg_ptr12 = ((($vararg_buffer8)) + 8|0);
HEAP32[$vararg_ptr12>>2] = $24;
$vararg_ptr13 = ((($vararg_buffer8)) + 12|0);
HEAP32[$vararg_ptr13>>2] = $25;
$vararg_ptr14 = ((($vararg_buffer8)) + 16|0);
HEAP32[$vararg_ptr14>>2] = $26;
$vararg_ptr15 = ((($vararg_buffer8)) + 20|0);
HEAP32[$vararg_ptr15>>2] = $27;
$vararg_ptr16 = ((($vararg_buffer8)) + 24|0);
HEAP32[$vararg_ptr16>>2] = $28;
$vararg_ptr17 = ((($vararg_buffer8)) + 28|0);
HEAP32[$vararg_ptr17>>2] = 0;
$30 = (__gcry_sexp_extract_param($22,0,49881,$vararg_buffer8)|0);
$rc = $30;
break;
}
} else {
$31 = ((($values)) + 24|0);
if ($21) {
HEAP32[$vararg_buffer18>>2] = $31;
$vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
HEAP32[$vararg_ptr21>>2] = 0;
$32 = (__gcry_sexp_extract_param($22,0,49663,$vararg_buffer18)|0);
$rc = $32;
break;
} else {
HEAP32[$vararg_buffer22>>2] = $31;
$vararg_ptr25 = ((($vararg_buffer22)) + 4|0);
HEAP32[$vararg_ptr25>>2] = 0;
$33 = (__gcry_sexp_extract_param($22,0,49895,$vararg_buffer22)|0);
$rc = $33;
break;
}
}
} while(0);
$34 = $rc;
$35 = ($34|0)!=(0);
if (!($35)) {
$36 = $l1;
__gcry_sexp_release($36);
$37 = $1;
$38 = (__gcry_sexp_find_token($37,47184,5)|0);
$l1 = $38;
$39 = $l1;
$40 = ($39|0)!=(0|0);
if ($40) {
$41 = $l1;
$42 = (__gcry_sexp_nth_string($41,1)|0);
$curvename = $42;
$43 = $curvename;
$44 = ($43|0)!=(0|0);
if ($44) {
$45 = $curvename;
$46 = ((($values)) + 4|0);
$47 = ((($values)) + 8|0);
$48 = ((($values)) + 12|0);
$49 = ((($values)) + 16|0);
$50 = ((($values)) + 20|0);
$51 = (__gcry_ecc_update_curve_param($45,$model,$dialect,$values,$46,$47,$48,$49,$50)|0);
$rc = $51;
$52 = $rc;
$53 = ($52|0)!=(0);
if ($53) {
break;
}
}
}
$54 = $curvename;
$55 = ($54|0)!=(0|0);
if (!($55)) {
$56 = HEAP32[$flags>>2]|0;
$57 = $56 & 4096;
$58 = ($57|0)!=(0);
$59 = $58 ? 2 : 0;
HEAP32[$model>>2] = $59;
$60 = HEAP32[$flags>>2]|0;
$61 = $60 & 4096;
$62 = ($61|0)!=(0);
$63 = $62 ? 1 : 0;
HEAP32[$dialect>>2] = $63;
}
$idx = 0;
while(1) {
$64 = $idx;
$65 = ($64|0)<(7);
if (!($65)) {
break;
}
$66 = $idx;
$67 = (($values) + ($66<<2)|0);
$68 = HEAP32[$67>>2]|0;
$69 = ($68|0)!=(0|0);
if (!($69)) {
label = 22;
break;
}
$70 = $idx;
$71 = (($values) + ($70<<2)|0);
$72 = HEAP32[$71>>2]|0;
__gcry_mpi_normalize($72);
$73 = $idx;
$74 = (($73) + 1)|0;
$idx = $74;
}
if ((label|0) == 22) {
$rc = 68;
break;
}
$75 = HEAP32[$flags>>2]|0;
$76 = $75 & 4096;
$77 = ($76|0)!=(0);
if ($77) {
$78 = HEAP32[$dialect>>2]|0;
$79 = ($78|0)==(1);
if ($79) {
$80 = ((($values)) + 24|0);
$81 = HEAP32[$80>>2]|0;
$82 = (__gcry_ecc_eddsa_ensure_compact($81,256)|0);
$rc = $82;
} else {
$rc = 69;
}
$83 = $rc;
$84 = ($83|0)!=(0);
if ($84) {
break;
}
}
$idx = 0;
L41: while(1) {
$85 = $idx;
$86 = ($85|0)<(7);
if (!($86)) {
break L7;
}
$87 = $idx;
$88 = ($87|0)==(5);
do {
if (!($88)) {
$89 = $idx;
$90 = (($values) + ($89<<2)|0);
$91 = HEAP32[$90>>2]|0;
$92 = ($91|0)!=(0|0);
if ($92) {
$93 = $idx;
$94 = (($values) + ($93<<2)|0);
$95 = HEAP32[$94>>2]|0;
$96 = ((($95)) + 12|0);
$97 = HEAP32[$96>>2]|0;
$98 = $97 & 4;
$99 = ($98|0)!=(0);
if ($99) {
$100 = $idx;
$101 = (($values) + ($100<<2)|0);
$102 = HEAP32[$101>>2]|0;
$103 = (__gcry_mpi_get_opaque($102,$n)|0);
$raw = $103;
$104 = HEAP32[$n>>2]|0;
$105 = (($104) + 7)|0;
$106 = (($105>>>0) / 8)&-1;
HEAP32[$n>>2] = $106;
$107 = $idx;
$108 = (49897 + ($107)|0);
$109 = HEAP8[$108>>0]|0;
$110 = $109 << 24 >> 24;
$111 = HEAP32[$n>>2]|0;
HEAP32[$vararg_buffer26>>2] = $110;
$vararg_ptr29 = ((($vararg_buffer26)) + 4|0);
HEAP32[$vararg_ptr29>>2] = $111;
(_snprintf($buf,30,49904,$vararg_buffer26)|0);
$112 = $0;
$113 = (_strlen($buf)|0);
__gcry_md_write($112,$buf,$113);
$114 = $0;
$115 = $raw;
$116 = HEAP32[$n>>2]|0;
__gcry_md_write($114,$115,$116);
$117 = $0;
__gcry_md_write($117,49913,1);
break;
}
}
$118 = $idx;
$119 = (($values) + ($118<<2)|0);
$120 = HEAP32[$119>>2]|0;
$121 = (__gcry_mpi_get_buffer($120,0,$rawmpilen,0)|0);
$rawmpi = $121;
$122 = $rawmpi;
$123 = ($122|0)!=(0|0);
if (!($123)) {
break L41;
}
$125 = $idx;
$126 = (49897 + ($125)|0);
$127 = HEAP8[$126>>0]|0;
$128 = $127 << 24 >> 24;
$129 = HEAP32[$rawmpilen>>2]|0;
HEAP32[$vararg_buffer30>>2] = $128;
$vararg_ptr33 = ((($vararg_buffer30)) + 4|0);
HEAP32[$vararg_ptr33>>2] = $129;
(_snprintf($buf,30,49904,$vararg_buffer30)|0);
$130 = $0;
$131 = (_strlen($buf)|0);
__gcry_md_write($130,$buf,$131);
$132 = $0;
$133 = $rawmpi;
$134 = HEAP32[$rawmpilen>>2]|0;
__gcry_md_write($132,$133,$134);
$135 = $0;
__gcry_md_write($135,49913,1);
$136 = $rawmpi;
__gcry_free($136);
}
} while(0);
$137 = $idx;
$138 = (($137) + 1)|0;
$idx = $138;
}
$124 = (_gpg_err_code_from_syserror()|0);
$rc = $124;
}
}
} while(0);
$139 = $curvename;
__gcry_free($139);
$140 = $l1;
__gcry_sexp_release($140);
$idx = 0;
while(1) {
$141 = $idx;
$142 = ($141|0)<(7);
if (!($142)) {
break;
}
$143 = $idx;
$144 = (($values) + ($143<<2)|0);
$145 = HEAP32[$144>>2]|0;
__gcry_mpi_release($145);
$146 = $idx;
$147 = (($146) + 1)|0;
$idx = $147;
}
$148 = $rc;
STACKTOP = sp;return ($148|0);
}
function __gcry_hash_selftest_check_one($algo,$datamode,$data,$datalen,$expect,$expectlen) {
$algo = $algo|0;
$datamode = $datamode|0;
$data = $data|0;
$datalen = $datalen|0;
$expect = $expect|0;
$expectlen = $expectlen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $aaa = 0, $digest = 0, $err = 0;
var $hd = 0, $i = 0, $result = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$hd = sp + 8|0;
$aaa = sp + 48|0;
$1 = $algo;
$2 = $datamode;
$3 = $data;
$4 = $datalen;
$5 = $expect;
$6 = $expectlen;
$result = 0;
$err = 0;
$7 = $1;
$8 = (__gcry_md_get_algo_dlen($7)|0);
$9 = $6;
$10 = ($8|0)!=($9|0);
if ($10) {
$0 = 49915;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
$11 = $1;
$12 = (__gcry_md_open($hd,$11,0)|0);
$err = $12;
$13 = $err;
$14 = ($13|0)!=(0);
if ($14) {
$0 = 49956;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
$15 = $2;
L9: do {
switch ($15|0) {
case 0: {
$16 = HEAP32[$hd>>2]|0;
$17 = $3;
$18 = $4;
__gcry_md_write($16,$17,$18);
break;
}
case 1: {
_memset(($aaa|0),97,1000)|0;
$i = 0;
while(1) {
$19 = $i;
$20 = ($19|0)<(1000);
if (!($20)) {
break L9;
}
$21 = HEAP32[$hd>>2]|0;
__gcry_md_write($21,$aaa,1000);
$22 = $i;
$23 = (($22) + 1)|0;
$i = $23;
}
break;
}
default: {
$result = 49976;
}
}
} while(0);
$24 = $result;
$25 = ($24|0)!=(0|0);
if (!($25)) {
$26 = HEAP32[$hd>>2]|0;
$27 = $1;
$28 = (__gcry_md_read($26,$27)|0);
$digest = $28;
$29 = $digest;
$30 = $5;
$31 = $6;
$32 = (_memcmp($29,$30,$31)|0);
$33 = ($32|0)!=(0);
if ($33) {
$result = 49993;
}
}
$34 = HEAP32[$hd>>2]|0;
__gcry_md_close($34);
$35 = $result;
$0 = $35;
$36 = $0;
STACKTOP = sp;return ($36|0);
}
function __gcry_md_block_write($context,$inbuf_arg,$inlen) {
$context = $context|0;
$inbuf_arg = $inbuf_arg|0;
$inlen = $inlen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $blocksize = 0;
var $hd = 0, $inblocks = 0, $inbuf = 0, $stack_burn = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $inbuf_arg;
$2 = $inlen;
$3 = $1;
$inbuf = $3;
$4 = $0;
$hd = $4;
$stack_burn = 0;
$5 = $hd;
$6 = ((($5)) + 148|0);
$7 = HEAP32[$6>>2]|0;
$blocksize = $7;
$8 = $blocksize;
$9 = (128)<($8>>>0);
if ($9) {
__gcry_bug(50009,112,50023);
// unreachable;
}
$10 = $hd;
$11 = ((($10)) + 152|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)!=(0|0);
if (!($13)) {
STACKTOP = sp;return;
}
$14 = $hd;
$15 = ((($14)) + 144|0);
$16 = HEAP32[$15>>2]|0;
$17 = $blocksize;
$18 = ($16|0)==($17|0);
if ($18) {
$19 = $hd;
$20 = ((($19)) + 152|0);
$21 = HEAP32[$20>>2]|0;
$22 = $hd;
$23 = $hd;
$24 = (FUNCTION_TABLE_iiii[$21 & 127]($22,$23,1)|0);
$stack_burn = $24;
$25 = $stack_burn;
___gcry_burn_stack($25);
___gcry_burn_stack_dummy();
$stack_burn = 0;
$26 = $hd;
$27 = ((($26)) + 144|0);
HEAP32[$27>>2] = 0;
$28 = $hd;
$29 = ((($28)) + 128|0);
$30 = $29;
$31 = $30;
$32 = HEAP32[$31>>2]|0;
$33 = (($30) + 4)|0;
$34 = $33;
$35 = HEAP32[$34>>2]|0;
$36 = (_i64Add(($32|0),($35|0),1,0)|0);
$37 = tempRet0;
$38 = $29;
$39 = $38;
HEAP32[$39>>2] = $36;
$40 = (($38) + 4)|0;
$41 = $40;
HEAP32[$41>>2] = $37;
$42 = ($36|0)!=(0);
$43 = ($37|0)!=(0);
$44 = $42 | $43;
if (!($44)) {
$45 = $hd;
$46 = ((($45)) + 136|0);
$47 = $46;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = (($47) + 4)|0;
$51 = $50;
$52 = HEAP32[$51>>2]|0;
$53 = (_i64Add(($49|0),($52|0),1,0)|0);
$54 = tempRet0;
$55 = $46;
$56 = $55;
HEAP32[$56>>2] = $53;
$57 = (($55) + 4)|0;
$58 = $57;
HEAP32[$58>>2] = $54;
}
}
$59 = $inbuf;
$60 = ($59|0)!=(0|0);
if (!($60)) {
STACKTOP = sp;return;
}
$61 = $hd;
$62 = ((($61)) + 144|0);
$63 = HEAP32[$62>>2]|0;
$64 = ($63|0)!=(0);
if ($64) {
while(1) {
$65 = $2;
$66 = ($65|0)!=(0);
if (!($66)) {
break;
}
$67 = $hd;
$68 = ((($67)) + 144|0);
$69 = HEAP32[$68>>2]|0;
$70 = $blocksize;
$71 = ($69>>>0)<($70>>>0);
if (!($71)) {
break;
}
$72 = $inbuf;
$73 = ((($72)) + 1|0);
$inbuf = $73;
$74 = HEAP8[$72>>0]|0;
$75 = $hd;
$76 = ((($75)) + 144|0);
$77 = HEAP32[$76>>2]|0;
$78 = (($77) + 1)|0;
HEAP32[$76>>2] = $78;
$79 = $hd;
$80 = (($79) + ($77)|0);
HEAP8[$80>>0] = $74;
$81 = $2;
$82 = (($81) + -1)|0;
$2 = $82;
}
$83 = $hd;
__gcry_md_block_write($83,0,0);
$84 = $2;
$85 = ($84|0)!=(0);
if (!($85)) {
STACKTOP = sp;return;
}
}
$86 = $2;
$87 = $blocksize;
$88 = ($86>>>0)>=($87>>>0);
if ($88) {
$89 = $2;
$90 = $blocksize;
$91 = (($89>>>0) / ($90>>>0))&-1;
$inblocks = $91;
$92 = $hd;
$93 = ((($92)) + 152|0);
$94 = HEAP32[$93>>2]|0;
$95 = $hd;
$96 = $inbuf;
$97 = $inblocks;
$98 = (FUNCTION_TABLE_iiii[$94 & 127]($95,$96,$97)|0);
$stack_burn = $98;
$99 = $hd;
$100 = ((($99)) + 144|0);
HEAP32[$100>>2] = 0;
$101 = $hd;
$102 = ((($101)) + 128|0);
$103 = $102;
$104 = $103;
$105 = HEAP32[$104>>2]|0;
$106 = (($103) + 4)|0;
$107 = $106;
$108 = HEAP32[$107>>2]|0;
$109 = $inblocks;
$110 = (_i64Add(($105|0),($108|0),($109|0),0)|0);
$111 = tempRet0;
$112 = $inblocks;
$113 = ($111>>>0)<(0);
$114 = ($110>>>0)<($112>>>0);
$115 = ($111|0)==(0);
$116 = $115 & $114;
$117 = $113 | $116;
$118 = $117&1;
$119 = ($118|0)<(0);
$120 = $119 << 31 >> 31;
$121 = $hd;
$122 = ((($121)) + 136|0);
$123 = $122;
$124 = $123;
$125 = HEAP32[$124>>2]|0;
$126 = (($123) + 4)|0;
$127 = $126;
$128 = HEAP32[$127>>2]|0;
$129 = (_i64Add(($125|0),($128|0),($118|0),($120|0))|0);
$130 = tempRet0;
$131 = $122;
$132 = $131;
HEAP32[$132>>2] = $129;
$133 = (($131) + 4)|0;
$134 = $133;
HEAP32[$134>>2] = $130;
$135 = $inblocks;
$136 = $hd;
$137 = ((($136)) + 128|0);
$138 = $137;
$139 = $138;
$140 = HEAP32[$139>>2]|0;
$141 = (($138) + 4)|0;
$142 = $141;
$143 = HEAP32[$142>>2]|0;
$144 = (_i64Add(($140|0),($143|0),($135|0),0)|0);
$145 = tempRet0;
$146 = $137;
$147 = $146;
HEAP32[$147>>2] = $144;
$148 = (($146) + 4)|0;
$149 = $148;
HEAP32[$149>>2] = $145;
$150 = $inblocks;
$151 = $blocksize;
$152 = Math_imul($150, $151)|0;
$153 = $2;
$154 = (($153) - ($152))|0;
$2 = $154;
$155 = $inblocks;
$156 = $blocksize;
$157 = Math_imul($155, $156)|0;
$158 = $inbuf;
$159 = (($158) + ($157)|0);
$inbuf = $159;
}
$160 = $stack_burn;
___gcry_burn_stack($160);
___gcry_burn_stack_dummy();
while(1) {
$161 = $2;
$162 = ($161|0)!=(0);
if (!($162)) {
label = 19;
break;
}
$163 = $hd;
$164 = ((($163)) + 144|0);
$165 = HEAP32[$164>>2]|0;
$166 = $blocksize;
$167 = ($165>>>0)<($166>>>0);
if (!($167)) {
label = 19;
break;
}
$168 = $inbuf;
$169 = ((($168)) + 1|0);
$inbuf = $169;
$170 = HEAP8[$168>>0]|0;
$171 = $hd;
$172 = ((($171)) + 144|0);
$173 = HEAP32[$172>>2]|0;
$174 = (($173) + 1)|0;
HEAP32[$172>>2] = $174;
$175 = $hd;
$176 = (($175) + ($173)|0);
HEAP8[$176>>0] = $170;
$177 = $2;
$178 = (($177) + -1)|0;
$2 = $178;
}
if ((label|0) == 19) {
STACKTOP = sp;return;
}
}
function __gcry_poly1305_update($ctx,$m,$bytes) {
$ctx = $ctx|0;
$m = $m|0;
$bytes = $bytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $block_size = 0;
var $burn = 0, $state = 0, $want = 0, $want1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $m;
$2 = $bytes;
$3 = $0;
$4 = (_poly1305_get_state($3)|0);
$state = $4;
$burn = 0;
$5 = $0;
$6 = ((($5)) + 84|0);
$7 = HEAP32[$6>>2]|0;
$8 = HEAP32[$7>>2]|0;
$block_size = $8;
$9 = $0;
$10 = ((($9)) + 88|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)!=(0);
do {
if ($12) {
$13 = $block_size;
$14 = $0;
$15 = ((($14)) + 88|0);
$16 = HEAP32[$15>>2]|0;
$17 = (($13) - ($16))|0;
$want = $17;
$18 = $want;
$19 = $2;
$20 = ($18>>>0)>($19>>>0);
if ($20) {
$21 = $2;
$want = $21;
}
$22 = $0;
$23 = ((($22)) + 68|0);
$24 = $0;
$25 = ((($24)) + 88|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($23) + ($26)|0);
$28 = $1;
$29 = $want;
_buf_cpy_2136($27,$28,$29);
$30 = $want;
$31 = $2;
$32 = (($31) - ($30))|0;
$2 = $32;
$33 = $want;
$34 = $1;
$35 = (($34) + ($33)|0);
$1 = $35;
$36 = $want;
$37 = $0;
$38 = ((($37)) + 88|0);
$39 = HEAP32[$38>>2]|0;
$40 = (($39) + ($36))|0;
HEAP32[$38>>2] = $40;
$41 = $0;
$42 = ((($41)) + 88|0);
$43 = HEAP32[$42>>2]|0;
$44 = $block_size;
$45 = ($43>>>0)<($44>>>0);
if ($45) {
STACKTOP = sp;return;
} else {
$46 = $0;
$47 = ((($46)) + 84|0);
$48 = HEAP32[$47>>2]|0;
$49 = ((($48)) + 8|0);
$50 = HEAP32[$49>>2]|0;
$51 = $state;
$52 = $0;
$53 = ((($52)) + 68|0);
$54 = $block_size;
$55 = (FUNCTION_TABLE_iiii[$50 & 127]($51,$53,$54)|0);
$burn = $55;
$56 = $0;
$57 = ((($56)) + 88|0);
HEAP32[$57>>2] = 0;
break;
}
}
} while(0);
$58 = $2;
$59 = $block_size;
$60 = ($58>>>0)>=($59>>>0);
if ($60) {
$61 = $2;
$62 = $block_size;
$63 = (($62) - 1)|0;
$64 = $63 ^ -1;
$65 = $61 & $64;
$want1 = $65;
$66 = $0;
$67 = ((($66)) + 84|0);
$68 = HEAP32[$67>>2]|0;
$69 = ((($68)) + 8|0);
$70 = HEAP32[$69>>2]|0;
$71 = $state;
$72 = $1;
$73 = $want1;
$74 = (FUNCTION_TABLE_iiii[$70 & 127]($71,$72,$73)|0);
$burn = $74;
$75 = $want1;
$76 = $1;
$77 = (($76) + ($75)|0);
$1 = $77;
$78 = $want1;
$79 = $2;
$80 = (($79) - ($78))|0;
$2 = $80;
}
$81 = $2;
$82 = ($81|0)!=(0);
if ($82) {
$83 = $0;
$84 = ((($83)) + 68|0);
$85 = $0;
$86 = ((($85)) + 88|0);
$87 = HEAP32[$86>>2]|0;
$88 = (($84) + ($87)|0);
$89 = $1;
$90 = $2;
_buf_cpy_2136($88,$89,$90);
$91 = $2;
$92 = $0;
$93 = ((($92)) + 88|0);
$94 = HEAP32[$93>>2]|0;
$95 = (($94) + ($91))|0;
HEAP32[$93>>2] = $95;
}
$96 = $burn;
$97 = ($96|0)!=(0);
if (!($97)) {
STACKTOP = sp;return;
}
$98 = $burn;
___gcry_burn_stack($98);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _poly1305_get_state($ctx) {
$ctx = $ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $0;
$c = $1;
$2 = $c;
$3 = ((($2)) + 3|0);
$c = $3;
$4 = $c;
$5 = $4;
$6 = $5 & 3;
$7 = $c;
$8 = (0 - ($6))|0;
$9 = (($7) + ($8)|0);
$c = $9;
$10 = $c;
STACKTOP = sp;return ($10|0);
}
function _buf_cpy_2136($_dst,$_src,$len) {
$_dst = $_dst|0;
$_src = $_src|0;
$len = $len|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst = 0, $ldst = 0, $longmask = 0, $lsrc = 0, $src = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_dst;
$1 = $_src;
$2 = $len;
$3 = $0;
$dst = $3;
$4 = $1;
$src = $4;
$longmask = 3;
$5 = $dst;
$6 = $5;
$7 = $src;
$8 = $7;
$9 = $6 | $8;
$10 = $9 & 3;
$11 = ($10|0)!=(0);
if (!($11)) {
$12 = $dst;
$ldst = $12;
$13 = $src;
$lsrc = $13;
while(1) {
$14 = $2;
$15 = ($14>>>0)>=(4);
if (!($15)) {
break;
}
$16 = $lsrc;
$17 = ((($16)) + 4|0);
$lsrc = $17;
$18 = HEAP32[$16>>2]|0;
$19 = $ldst;
$20 = ((($19)) + 4|0);
$ldst = $20;
HEAP32[$19>>2] = $18;
$21 = $2;
$22 = (($21) - 4)|0;
$2 = $22;
}
$23 = $ldst;
$dst = $23;
$24 = $lsrc;
$src = $24;
}
while(1) {
$25 = $2;
$26 = ($25|0)!=(0);
if (!($26)) {
break;
}
$27 = $src;
$28 = ((($27)) + 1|0);
$src = $28;
$29 = HEAP8[$27>>0]|0;
$30 = $dst;
$31 = ((($30)) + 1|0);
$dst = $31;
HEAP8[$30>>0] = $29;
$32 = $2;
$33 = (($32) + -1)|0;
$2 = $33;
}
STACKTOP = sp;return;
}
function __gcry_poly1305_finish($ctx,$mac) {
$ctx = $ctx|0;
$mac = $mac|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $burn = 0, $state = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $mac;
$2 = $0;
$3 = (_poly1305_get_state($2)|0);
$state = $3;
$4 = $0;
$5 = ((($4)) + 84|0);
$6 = HEAP32[$5>>2]|0;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = $state;
$10 = $0;
$11 = ((($10)) + 68|0);
$12 = $0;
$13 = ((($12)) + 88|0);
$14 = HEAP32[$13>>2]|0;
$15 = $1;
$16 = (FUNCTION_TABLE_iiiii[$8 & 127]($9,$11,$14,$15)|0);
$burn = $16;
$17 = $burn;
___gcry_burn_stack($17);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function __gcry_poly1305_init($ctx,$key,$keylen) {
$ctx = $ctx|0;
$key = $key|0;
$keylen = $keylen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $8 = 0, $9 = 0, $_vlen = 0;
var $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $features = 0, $keytmp = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp + 8|0;
$keytmp = sp + 48|0;
$_vset_long = sp;
$1 = $ctx;
$2 = $key;
$3 = $keylen;
$4 = (__gcry_get_hw_features()|0);
$features = $4;
$5 = HEAP32[17725]|0;
$6 = ($5|0)!=(0);
if (!($6)) {
HEAP32[17725] = 1;
$7 = (_selftest_2141()|0);
HEAP32[17726] = $7;
$8 = HEAP32[17726]|0;
$9 = ($8|0)!=(0|0);
if ($9) {
$10 = HEAP32[17726]|0;
HEAP32[$vararg_buffer>>2] = $10;
__gcry_log_error(50431,$vararg_buffer);
}
}
$11 = $3;
$12 = ($11|0)!=(32);
if ($12) {
$0 = 44;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
$13 = HEAP32[17726]|0;
$14 = ($13|0)!=(0|0);
if ($14) {
$0 = 50;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
$15 = $1;
$16 = ((($15)) + 84|0);
HEAP32[$16>>2] = 12944;
$17 = $2;
_buf_cpy_2136($keytmp,$17,32);
$18 = $1;
_poly1305_init($18,$keytmp);
$_vptr = $keytmp;
$_vlen = 32;
$_vset = 0;
$19 = $_vset;
$20 = $19&255;
$21 = $_vset_long;
$22 = $21;
HEAP32[$22>>2] = $20;
$23 = (($21) + 4)|0;
$24 = $23;
HEAP32[$24>>2] = 0;
while(1) {
$25 = $_vptr;
$26 = $25;
$27 = $26 & 7;
$28 = ($27|0)!=(0);
$29 = $_vlen;
$30 = ($29|0)!=(0);
$31 = $28 ? $30 : 0;
if (!($31)) {
break;
}
$32 = $_vset;
$33 = $_vptr;
HEAP8[$33>>0] = $32;
$34 = $_vptr;
$35 = ((($34)) + 1|0);
$_vptr = $35;
$36 = $_vlen;
$37 = (($36) + -1)|0;
$_vlen = $37;
}
$38 = $_vlen;
$39 = ($38>>>0)<(8);
if (!($39)) {
$40 = $_vset_long;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = (($40) + 4)|0;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (___muldi3(($42|0),($45|0),16843009,16843009)|0);
$47 = tempRet0;
$48 = $_vset_long;
$49 = $48;
HEAP32[$49>>2] = $46;
$50 = (($48) + 4)|0;
$51 = $50;
HEAP32[$51>>2] = $47;
while(1) {
$52 = $_vptr;
$_vptr_long = $52;
$53 = $_vset_long;
$54 = $53;
$55 = HEAP32[$54>>2]|0;
$56 = (($53) + 4)|0;
$57 = $56;
$58 = HEAP32[$57>>2]|0;
$59 = $_vptr_long;
$60 = $59;
$61 = $60;
HEAP32[$61>>2] = $55;
$62 = (($60) + 4)|0;
$63 = $62;
HEAP32[$63>>2] = $58;
$64 = $_vlen;
$65 = (($64) - 8)|0;
$_vlen = $65;
$66 = $_vptr;
$67 = ((($66)) + 8|0);
$_vptr = $67;
$68 = $_vlen;
$69 = ($68>>>0)>=(8);
if (!($69)) {
break;
}
}
}
while(1) {
$70 = $_vlen;
$71 = ($70|0)!=(0);
if (!($71)) {
break;
}
$72 = $_vset;
$73 = $_vptr;
HEAP8[$73>>0] = $72;
$74 = $_vptr;
$75 = ((($74)) + 1|0);
$_vptr = $75;
$76 = $_vlen;
$77 = (($76) + -1)|0;
$_vlen = $77;
}
$0 = 0;
$78 = $0;
STACKTOP = sp;return ($78|0);
}
function _selftest_2141() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $all_key = 0, $all_msg = 0, $ctx = 0, $i = 0, $j = 0, $mac = 0, $total_ctx = 0, dest = 0;
var label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 512|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp + 100|0;
$total_ctx = sp + 8|0;
$all_key = sp + 472|0;
$all_msg = sp + 216|0;
$mac = sp + 200|0;
dest=$ctx; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
dest=$total_ctx; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
dest=$mac; stop=dest+16|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
_poly1305_auth($mac,50044,131,50175);
$1 = (_memcmp(50207,$mac,16)|0);
$2 = ($1|0)!=(0);
if ($2) {
$0 = 50223;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
dest=$mac; stop=dest+16|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
(__gcry_poly1305_init($ctx,50175,32)|0);
__gcry_poly1305_update($ctx,50044,32);
__gcry_poly1305_update($ctx,(50076),64);
__gcry_poly1305_update($ctx,(50140),16);
__gcry_poly1305_update($ctx,(50156),8);
__gcry_poly1305_update($ctx,(50164),4);
__gcry_poly1305_update($ctx,(50168),2);
__gcry_poly1305_update($ctx,(50170),1);
__gcry_poly1305_update($ctx,(50171),1);
__gcry_poly1305_update($ctx,(50172),1);
__gcry_poly1305_update($ctx,(50173),1);
__gcry_poly1305_update($ctx,(50174),1);
__gcry_poly1305_finish($ctx,$mac);
$3 = (_memcmp(50207,$mac,16)|0);
$4 = ($3|0)!=(0);
if ($4) {
$0 = 50247;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
dest=$mac; stop=dest+16|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
_poly1305_auth($mac,50271,16,50287);
$5 = (_memcmp(50319,$mac,16)|0);
$6 = ($5|0)!=(0);
if ($6) {
$0 = 50335;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
(__gcry_poly1305_init($total_ctx,50359,32)|0);
$i = 0;
while(1) {
$7 = $i;
$8 = ($7>>>0)<(256);
if (!($8)) {
break;
}
$j = 0;
while(1) {
$9 = $j;
$10 = ($9>>>0)<(32);
if (!($10)) {
break;
}
$11 = $i;
$12 = $11&255;
$13 = $j;
$14 = (($all_key) + ($13)|0);
HEAP8[$14>>0] = $12;
$15 = $j;
$16 = (($15) + 1)|0;
$j = $16;
}
$j = 0;
while(1) {
$17 = $j;
$18 = $i;
$19 = ($17>>>0)<($18>>>0);
if (!($19)) {
break;
}
$20 = $i;
$21 = $20&255;
$22 = $j;
$23 = (($all_msg) + ($22)|0);
HEAP8[$23>>0] = $21;
$24 = $j;
$25 = (($24) + 1)|0;
$j = $25;
}
$26 = $i;
_poly1305_auth($mac,$all_msg,$26,$all_key);
__gcry_poly1305_update($total_ctx,$mac,16);
$27 = $i;
$28 = (($27) + 1)|0;
$i = $28;
}
__gcry_poly1305_finish($total_ctx,$mac);
$29 = (_memcmp(50391,$mac,16)|0);
$30 = ($29|0)!=(0);
if ($30) {
$0 = 50407;
$31 = $0;
STACKTOP = sp;return ($31|0);
} else {
$0 = 0;
$31 = $0;
STACKTOP = sp;return ($31|0);
}
return (0)|0;
}
function _poly1305_auth($mac,$m,$bytes,$key) {
$mac = $mac|0;
$m = $m|0;
$bytes = $bytes|0;
$key = $key|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $7 = 0, $8 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $ctx = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ctx = sp + 20|0;
$_vset_long = sp;
$0 = $mac;
$1 = $m;
$2 = $bytes;
$3 = $key;
dest=$ctx; stop=dest+92|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$4 = $3;
(__gcry_poly1305_init($ctx,$4,32)|0);
$5 = $1;
$6 = $2;
__gcry_poly1305_update($ctx,$5,$6);
$7 = $0;
__gcry_poly1305_finish($ctx,$7);
$_vptr = $ctx;
$_vlen = 92;
$_vset = 0;
$8 = $_vset;
$9 = $8&255;
$10 = $_vset_long;
$11 = $10;
HEAP32[$11>>2] = $9;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = 0;
while(1) {
$14 = $_vptr;
$15 = $14;
$16 = $15 & 7;
$17 = ($16|0)!=(0);
$18 = $_vlen;
$19 = ($18|0)!=(0);
$20 = $17 ? $19 : 0;
if (!($20)) {
break;
}
$21 = $_vset;
$22 = $_vptr;
HEAP8[$22>>0] = $21;
$23 = $_vptr;
$24 = ((($23)) + 1|0);
$_vptr = $24;
$25 = $_vlen;
$26 = (($25) + -1)|0;
$_vlen = $26;
}
$27 = $_vlen;
$28 = ($27>>>0)<(8);
if (!($28)) {
$29 = $_vset_long;
$30 = $29;
$31 = HEAP32[$30>>2]|0;
$32 = (($29) + 4)|0;
$33 = $32;
$34 = HEAP32[$33>>2]|0;
$35 = (___muldi3(($31|0),($34|0),16843009,16843009)|0);
$36 = tempRet0;
$37 = $_vset_long;
$38 = $37;
HEAP32[$38>>2] = $35;
$39 = (($37) + 4)|0;
$40 = $39;
HEAP32[$40>>2] = $36;
while(1) {
$41 = $_vptr;
$_vptr_long = $41;
$42 = $_vset_long;
$43 = $42;
$44 = HEAP32[$43>>2]|0;
$45 = (($42) + 4)|0;
$46 = $45;
$47 = HEAP32[$46>>2]|0;
$48 = $_vptr_long;
$49 = $48;
$50 = $49;
HEAP32[$50>>2] = $44;
$51 = (($49) + 4)|0;
$52 = $51;
HEAP32[$52>>2] = $47;
$53 = $_vlen;
$54 = (($53) - 8)|0;
$_vlen = $54;
$55 = $_vptr;
$56 = ((($55)) + 8|0);
$_vptr = $56;
$57 = $_vlen;
$58 = ($57>>>0)>=(8);
if (!($58)) {
break;
}
}
}
while(1) {
$59 = $_vlen;
$60 = ($59|0)!=(0);
if (!($60)) {
break;
}
$61 = $_vset;
$62 = $_vptr;
HEAP8[$62>>0] = $61;
$63 = $_vptr;
$64 = ((($63)) + 1|0);
$_vptr = $64;
$65 = $_vlen;
$66 = (($65) + -1)|0;
$_vlen = $66;
}
STACKTOP = sp;return;
}
function _poly1305_init_ext_ref32($state,$key) {
$state = $state|0;
$key = $key|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $st = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $state;
$1 = $key;
$2 = $0;
$st = $2;
$3 = $1;
$4 = (_buf_get_le32_2147($3)|0);
$5 = $4 & 67108863;
$6 = $st;
HEAP32[$6>>2] = $5;
$7 = $1;
$8 = ((($7)) + 3|0);
$9 = (_buf_get_le32_2147($8)|0);
$10 = $9 >>> 2;
$11 = $10 & 67108611;
$12 = $st;
$13 = ((($12)) + 4|0);
HEAP32[$13>>2] = $11;
$14 = $1;
$15 = ((($14)) + 6|0);
$16 = (_buf_get_le32_2147($15)|0);
$17 = $16 >>> 4;
$18 = $17 & 67092735;
$19 = $st;
$20 = ((($19)) + 8|0);
HEAP32[$20>>2] = $18;
$21 = $1;
$22 = ((($21)) + 9|0);
$23 = (_buf_get_le32_2147($22)|0);
$24 = $23 >>> 6;
$25 = $24 & 66076671;
$26 = $st;
$27 = ((($26)) + 12|0);
HEAP32[$27>>2] = $25;
$28 = $1;
$29 = ((($28)) + 12|0);
$30 = (_buf_get_le32_2147($29)|0);
$31 = $30 >>> 8;
$32 = $31 & 1048575;
$33 = $st;
$34 = ((($33)) + 16|0);
HEAP32[$34>>2] = $32;
$35 = $st;
$36 = ((($35)) + 20|0);
HEAP32[$36>>2] = 0;
$37 = $st;
$38 = ((($37)) + 20|0);
$39 = ((($38)) + 4|0);
HEAP32[$39>>2] = 0;
$40 = $st;
$41 = ((($40)) + 20|0);
$42 = ((($41)) + 8|0);
HEAP32[$42>>2] = 0;
$43 = $st;
$44 = ((($43)) + 20|0);
$45 = ((($44)) + 12|0);
HEAP32[$45>>2] = 0;
$46 = $st;
$47 = ((($46)) + 20|0);
$48 = ((($47)) + 16|0);
HEAP32[$48>>2] = 0;
$49 = $1;
$50 = ((($49)) + 16|0);
$51 = (_buf_get_le32_2147($50)|0);
$52 = $st;
$53 = ((($52)) + 40|0);
HEAP32[$53>>2] = $51;
$54 = $1;
$55 = ((($54)) + 20|0);
$56 = (_buf_get_le32_2147($55)|0);
$57 = $st;
$58 = ((($57)) + 40|0);
$59 = ((($58)) + 4|0);
HEAP32[$59>>2] = $56;
$60 = $1;
$61 = ((($60)) + 24|0);
$62 = (_buf_get_le32_2147($61)|0);
$63 = $st;
$64 = ((($63)) + 40|0);
$65 = ((($64)) + 8|0);
HEAP32[$65>>2] = $62;
$66 = $1;
$67 = ((($66)) + 28|0);
$68 = (_buf_get_le32_2147($67)|0);
$69 = $st;
$70 = ((($69)) + 40|0);
$71 = ((($70)) + 12|0);
HEAP32[$71>>2] = $68;
$72 = $st;
$73 = ((($72)) + 56|0);
HEAP8[$73>>0] = 0;
STACKTOP = sp;return;
}
function _buf_get_le32_2147($_buf) {
$_buf = $_buf|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $in = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $0;
$in = $1;
$2 = $in;
$3 = ((($2)) + 3|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = $5 << 24;
$7 = $in;
$8 = ((($7)) + 2|0);
$9 = HEAP8[$8>>0]|0;
$10 = $9&255;
$11 = $10 << 16;
$12 = $6 | $11;
$13 = $in;
$14 = ((($13)) + 1|0);
$15 = HEAP8[$14>>0]|0;
$16 = $15&255;
$17 = $16 << 8;
$18 = $12 | $17;
$19 = $in;
$20 = HEAP8[$19>>0]|0;
$21 = $20&255;
$22 = $18 | $21;
STACKTOP = sp;return ($22|0);
}
function _poly1305_blocks_ref32($state,$m,$bytes) {
$state = $state|0;
$m = $m|0;
$bytes = $bytes|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0;
var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0;
var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $c = 0, $d0 = 0, $d1 = 0, $d2 = 0, $d3 = 0, $d4 = 0, $h0 = 0, $h1 = 0, $h2 = 0, $h3 = 0, $h4 = 0, $hibit = 0;
var $r0 = 0, $r1 = 0, $r2 = 0, $r3 = 0, $r4 = 0, $s1 = 0, $s2 = 0, $s3 = 0, $s4 = 0, $st = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$d0 = sp + 32|0;
$d1 = sp + 24|0;
$d2 = sp + 16|0;
$d3 = sp + 8|0;
$d4 = sp;
$0 = $state;
$1 = $m;
$2 = $bytes;
$3 = $0;
$st = $3;
$4 = $st;
$5 = ((($4)) + 56|0);
$6 = HEAP8[$5>>0]|0;
$7 = $6&255;
$8 = ($7|0)!=(0);
$9 = $8 ? 0 : 16777216;
$hibit = $9;
$10 = $st;
$11 = HEAP32[$10>>2]|0;
$r0 = $11;
$12 = $st;
$13 = ((($12)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$r1 = $14;
$15 = $st;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
$r2 = $17;
$18 = $st;
$19 = ((($18)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$r3 = $20;
$21 = $st;
$22 = ((($21)) + 16|0);
$23 = HEAP32[$22>>2]|0;
$r4 = $23;
$24 = $r1;
$25 = ($24*5)|0;
$s1 = $25;
$26 = $r2;
$27 = ($26*5)|0;
$s2 = $27;
$28 = $r3;
$29 = ($28*5)|0;
$s3 = $29;
$30 = $r4;
$31 = ($30*5)|0;
$s4 = $31;
$32 = $st;
$33 = ((($32)) + 20|0);
$34 = HEAP32[$33>>2]|0;
$h0 = $34;
$35 = $st;
$36 = ((($35)) + 20|0);
$37 = ((($36)) + 4|0);
$38 = HEAP32[$37>>2]|0;
$h1 = $38;
$39 = $st;
$40 = ((($39)) + 20|0);
$41 = ((($40)) + 8|0);
$42 = HEAP32[$41>>2]|0;
$h2 = $42;
$43 = $st;
$44 = ((($43)) + 20|0);
$45 = ((($44)) + 12|0);
$46 = HEAP32[$45>>2]|0;
$h3 = $46;
$47 = $st;
$48 = ((($47)) + 20|0);
$49 = ((($48)) + 16|0);
$50 = HEAP32[$49>>2]|0;
$h4 = $50;
while(1) {
$51 = $2;
$52 = ($51>>>0)>=(16);
if (!($52)) {
break;
}
$53 = $1;
$54 = (_buf_get_le32_2147($53)|0);
$55 = $54 & 67108863;
$56 = $h0;
$57 = (($56) + ($55))|0;
$h0 = $57;
$58 = $1;
$59 = ((($58)) + 3|0);
$60 = (_buf_get_le32_2147($59)|0);
$61 = $60 >>> 2;
$62 = $61 & 67108863;
$63 = $h1;
$64 = (($63) + ($62))|0;
$h1 = $64;
$65 = $1;
$66 = ((($65)) + 6|0);
$67 = (_buf_get_le32_2147($66)|0);
$68 = $67 >>> 4;
$69 = $68 & 67108863;
$70 = $h2;
$71 = (($70) + ($69))|0;
$h2 = $71;
$72 = $1;
$73 = ((($72)) + 9|0);
$74 = (_buf_get_le32_2147($73)|0);
$75 = $74 >>> 6;
$76 = $75 & 67108863;
$77 = $h3;
$78 = (($77) + ($76))|0;
$h3 = $78;
$79 = $1;
$80 = ((($79)) + 12|0);
$81 = (_buf_get_le32_2147($80)|0);
$82 = $81 >>> 8;
$83 = $hibit;
$84 = $82 | $83;
$85 = $h4;
$86 = (($85) + ($84))|0;
$h4 = $86;
$87 = $h0;
$88 = $r0;
$89 = (___muldi3(($87|0),0,($88|0),0)|0);
$90 = tempRet0;
$91 = $h1;
$92 = $s4;
$93 = (___muldi3(($91|0),0,($92|0),0)|0);
$94 = tempRet0;
$95 = (_i64Add(($89|0),($90|0),($93|0),($94|0))|0);
$96 = tempRet0;
$97 = $h2;
$98 = $s3;
$99 = (___muldi3(($97|0),0,($98|0),0)|0);
$100 = tempRet0;
$101 = (_i64Add(($95|0),($96|0),($99|0),($100|0))|0);
$102 = tempRet0;
$103 = $h3;
$104 = $s2;
$105 = (___muldi3(($103|0),0,($104|0),0)|0);
$106 = tempRet0;
$107 = (_i64Add(($101|0),($102|0),($105|0),($106|0))|0);
$108 = tempRet0;
$109 = $h4;
$110 = $s1;
$111 = (___muldi3(($109|0),0,($110|0),0)|0);
$112 = tempRet0;
$113 = (_i64Add(($107|0),($108|0),($111|0),($112|0))|0);
$114 = tempRet0;
$115 = $d0;
$116 = $115;
HEAP32[$116>>2] = $113;
$117 = (($115) + 4)|0;
$118 = $117;
HEAP32[$118>>2] = $114;
$119 = $h0;
$120 = $r1;
$121 = (___muldi3(($119|0),0,($120|0),0)|0);
$122 = tempRet0;
$123 = $h1;
$124 = $r0;
$125 = (___muldi3(($123|0),0,($124|0),0)|0);
$126 = tempRet0;
$127 = (_i64Add(($121|0),($122|0),($125|0),($126|0))|0);
$128 = tempRet0;
$129 = $h2;
$130 = $s4;
$131 = (___muldi3(($129|0),0,($130|0),0)|0);
$132 = tempRet0;
$133 = (_i64Add(($127|0),($128|0),($131|0),($132|0))|0);
$134 = tempRet0;
$135 = $h3;
$136 = $s3;
$137 = (___muldi3(($135|0),0,($136|0),0)|0);
$138 = tempRet0;
$139 = (_i64Add(($133|0),($134|0),($137|0),($138|0))|0);
$140 = tempRet0;
$141 = $h4;
$142 = $s2;
$143 = (___muldi3(($141|0),0,($142|0),0)|0);
$144 = tempRet0;
$145 = (_i64Add(($139|0),($140|0),($143|0),($144|0))|0);
$146 = tempRet0;
$147 = $d1;
$148 = $147;
HEAP32[$148>>2] = $145;
$149 = (($147) + 4)|0;
$150 = $149;
HEAP32[$150>>2] = $146;
$151 = $h0;
$152 = $r2;
$153 = (___muldi3(($151|0),0,($152|0),0)|0);
$154 = tempRet0;
$155 = $h1;
$156 = $r1;
$157 = (___muldi3(($155|0),0,($156|0),0)|0);
$158 = tempRet0;
$159 = (_i64Add(($153|0),($154|0),($157|0),($158|0))|0);
$160 = tempRet0;
$161 = $h2;
$162 = $r0;
$163 = (___muldi3(($161|0),0,($162|0),0)|0);
$164 = tempRet0;
$165 = (_i64Add(($159|0),($160|0),($163|0),($164|0))|0);
$166 = tempRet0;
$167 = $h3;
$168 = $s4;
$169 = (___muldi3(($167|0),0,($168|0),0)|0);
$170 = tempRet0;
$171 = (_i64Add(($165|0),($166|0),($169|0),($170|0))|0);
$172 = tempRet0;
$173 = $h4;
$174 = $s3;
$175 = (___muldi3(($173|0),0,($174|0),0)|0);
$176 = tempRet0;
$177 = (_i64Add(($171|0),($172|0),($175|0),($176|0))|0);
$178 = tempRet0;
$179 = $d2;
$180 = $179;
HEAP32[$180>>2] = $177;
$181 = (($179) + 4)|0;
$182 = $181;
HEAP32[$182>>2] = $178;
$183 = $h0;
$184 = $r3;
$185 = (___muldi3(($183|0),0,($184|0),0)|0);
$186 = tempRet0;
$187 = $h1;
$188 = $r2;
$189 = (___muldi3(($187|0),0,($188|0),0)|0);
$190 = tempRet0;
$191 = (_i64Add(($185|0),($186|0),($189|0),($190|0))|0);
$192 = tempRet0;
$193 = $h2;
$194 = $r1;
$195 = (___muldi3(($193|0),0,($194|0),0)|0);
$196 = tempRet0;
$197 = (_i64Add(($191|0),($192|0),($195|0),($196|0))|0);
$198 = tempRet0;
$199 = $h3;
$200 = $r0;
$201 = (___muldi3(($199|0),0,($200|0),0)|0);
$202 = tempRet0;
$203 = (_i64Add(($197|0),($198|0),($201|0),($202|0))|0);
$204 = tempRet0;
$205 = $h4;
$206 = $s4;
$207 = (___muldi3(($205|0),0,($206|0),0)|0);
$208 = tempRet0;
$209 = (_i64Add(($203|0),($204|0),($207|0),($208|0))|0);
$210 = tempRet0;
$211 = $d3;
$212 = $211;
HEAP32[$212>>2] = $209;
$213 = (($211) + 4)|0;
$214 = $213;
HEAP32[$214>>2] = $210;
$215 = $h0;
$216 = $r4;
$217 = (___muldi3(($215|0),0,($216|0),0)|0);
$218 = tempRet0;
$219 = $h1;
$220 = $r3;
$221 = (___muldi3(($219|0),0,($220|0),0)|0);
$222 = tempRet0;
$223 = (_i64Add(($217|0),($218|0),($221|0),($222|0))|0);
$224 = tempRet0;
$225 = $h2;
$226 = $r2;
$227 = (___muldi3(($225|0),0,($226|0),0)|0);
$228 = tempRet0;
$229 = (_i64Add(($223|0),($224|0),($227|0),($228|0))|0);
$230 = tempRet0;
$231 = $h3;
$232 = $r1;
$233 = (___muldi3(($231|0),0,($232|0),0)|0);
$234 = tempRet0;
$235 = (_i64Add(($229|0),($230|0),($233|0),($234|0))|0);
$236 = tempRet0;
$237 = $h4;
$238 = $r0;
$239 = (___muldi3(($237|0),0,($238|0),0)|0);
$240 = tempRet0;
$241 = (_i64Add(($235|0),($236|0),($239|0),($240|0))|0);
$242 = tempRet0;
$243 = $d4;
$244 = $243;
HEAP32[$244>>2] = $241;
$245 = (($243) + 4)|0;
$246 = $245;
HEAP32[$246>>2] = $242;
$247 = $d0;
$248 = $247;
$249 = HEAP32[$248>>2]|0;
$250 = (($247) + 4)|0;
$251 = $250;
$252 = HEAP32[$251>>2]|0;
$253 = (_bitshift64Lshr(($249|0),($252|0),26)|0);
$254 = tempRet0;
$c = $253;
$255 = $d0;
$256 = $255;
$257 = HEAP32[$256>>2]|0;
$258 = (($255) + 4)|0;
$259 = $258;
$260 = HEAP32[$259>>2]|0;
$261 = $257 & 67108863;
$h0 = $261;
$262 = $c;
$263 = $d1;
$264 = $263;
$265 = HEAP32[$264>>2]|0;
$266 = (($263) + 4)|0;
$267 = $266;
$268 = HEAP32[$267>>2]|0;
$269 = (_i64Add(($265|0),($268|0),($262|0),0)|0);
$270 = tempRet0;
$271 = $d1;
$272 = $271;
HEAP32[$272>>2] = $269;
$273 = (($271) + 4)|0;
$274 = $273;
HEAP32[$274>>2] = $270;
$275 = $d1;
$276 = $275;
$277 = HEAP32[$276>>2]|0;
$278 = (($275) + 4)|0;
$279 = $278;
$280 = HEAP32[$279>>2]|0;
$281 = (_bitshift64Lshr(($277|0),($280|0),26)|0);
$282 = tempRet0;
$c = $281;
$283 = $d1;
$284 = $283;
$285 = HEAP32[$284>>2]|0;
$286 = (($283) + 4)|0;
$287 = $286;
$288 = HEAP32[$287>>2]|0;
$289 = $285 & 67108863;
$h1 = $289;
$290 = $c;
$291 = $d2;
$292 = $291;
$293 = HEAP32[$292>>2]|0;
$294 = (($291) + 4)|0;
$295 = $294;
$296 = HEAP32[$295>>2]|0;
$297 = (_i64Add(($293|0),($296|0),($290|0),0)|0);
$298 = tempRet0;
$299 = $d2;
$300 = $299;
HEAP32[$300>>2] = $297;
$301 = (($299) + 4)|0;
$302 = $301;
HEAP32[$302>>2] = $298;
$303 = $d2;
$304 = $303;
$305 = HEAP32[$304>>2]|0;
$306 = (($303) + 4)|0;
$307 = $306;
$308 = HEAP32[$307>>2]|0;
$309 = (_bitshift64Lshr(($305|0),($308|0),26)|0);
$310 = tempRet0;
$c = $309;
$311 = $d2;
$312 = $311;
$313 = HEAP32[$312>>2]|0;
$314 = (($311) + 4)|0;
$315 = $314;
$316 = HEAP32[$315>>2]|0;
$317 = $313 & 67108863;
$h2 = $317;
$318 = $c;
$319 = $d3;
$320 = $319;
$321 = HEAP32[$320>>2]|0;
$322 = (($319) + 4)|0;
$323 = $322;
$324 = HEAP32[$323>>2]|0;
$325 = (_i64Add(($321|0),($324|0),($318|0),0)|0);
$326 = tempRet0;
$327 = $d3;
$328 = $327;
HEAP32[$328>>2] = $325;
$329 = (($327) + 4)|0;
$330 = $329;
HEAP32[$330>>2] = $326;
$331 = $d3;
$332 = $331;
$333 = HEAP32[$332>>2]|0;
$334 = (($331) + 4)|0;
$335 = $334;
$336 = HEAP32[$335>>2]|0;
$337 = (_bitshift64Lshr(($333|0),($336|0),26)|0);
$338 = tempRet0;
$c = $337;
$339 = $d3;
$340 = $339;
$341 = HEAP32[$340>>2]|0;
$342 = (($339) + 4)|0;
$343 = $342;
$344 = HEAP32[$343>>2]|0;
$345 = $341 & 67108863;
$h3 = $345;
$346 = $c;
$347 = $d4;
$348 = $347;
$349 = HEAP32[$348>>2]|0;
$350 = (($347) + 4)|0;
$351 = $350;
$352 = HEAP32[$351>>2]|0;
$353 = (_i64Add(($349|0),($352|0),($346|0),0)|0);
$354 = tempRet0;
$355 = $d4;
$356 = $355;
HEAP32[$356>>2] = $353;
$357 = (($355) + 4)|0;
$358 = $357;
HEAP32[$358>>2] = $354;
$359 = $d4;
$360 = $359;
$361 = HEAP32[$360>>2]|0;
$362 = (($359) + 4)|0;
$363 = $362;
$364 = HEAP32[$363>>2]|0;
$365 = (_bitshift64Lshr(($361|0),($364|0),26)|0);
$366 = tempRet0;
$c = $365;
$367 = $d4;
$368 = $367;
$369 = HEAP32[$368>>2]|0;
$370 = (($367) + 4)|0;
$371 = $370;
$372 = HEAP32[$371>>2]|0;
$373 = $369 & 67108863;
$h4 = $373;
$374 = $c;
$375 = ($374*5)|0;
$376 = $h0;
$377 = (($376) + ($375))|0;
$h0 = $377;
$378 = $h0;
$379 = $378 >>> 26;
$c = $379;
$380 = $h0;
$381 = $380 & 67108863;
$h0 = $381;
$382 = $c;
$383 = $h1;
$384 = (($383) + ($382))|0;
$h1 = $384;
$385 = $1;
$386 = ((($385)) + 16|0);
$1 = $386;
$387 = $2;
$388 = (($387) - 16)|0;
$2 = $388;
}
$389 = $h0;
$390 = $st;
$391 = ((($390)) + 20|0);
HEAP32[$391>>2] = $389;
$392 = $h1;
$393 = $st;
$394 = ((($393)) + 20|0);
$395 = ((($394)) + 4|0);
HEAP32[$395>>2] = $392;
$396 = $h2;
$397 = $st;
$398 = ((($397)) + 20|0);
$399 = ((($398)) + 8|0);
HEAP32[$399>>2] = $396;
$400 = $h3;
$401 = $st;
$402 = ((($401)) + 20|0);
$403 = ((($402)) + 12|0);
HEAP32[$403>>2] = $400;
$404 = $h4;
$405 = $st;
$406 = ((($405)) + 20|0);
$407 = ((($406)) + 16|0);
HEAP32[$407>>2] = $404;
STACKTOP = sp;return 124;
}
function _poly1305_finish_ext_ref32($state,$m,$remaining,$mac) {
$state = $state|0;
$m = $m|0;
$remaining = $remaining|0;
$mac = $mac|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $burn = 0, $c = 0, $f = 0, $final = 0, $g0 = 0, $g1 = 0, $g2 = 0, $g3 = 0;
var $g4 = 0, $h0 = 0, $h1 = 0, $h2 = 0, $h3 = 0, $h4 = 0, $i = 0, $mask = 0, $st = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$f = sp;
$final = sp + 88|0;
$0 = $state;
$1 = $m;
$2 = $remaining;
$3 = $mac;
$4 = $0;
$st = $4;
$burn = 0;
$5 = $2;
$6 = ($5|0)!=(0);
if ($6) {
dest=$final; stop=dest+16|0; do { HEAP8[dest>>0]=0|0; dest=dest+1|0; } while ((dest|0) < (stop|0));
$i = 0;
while(1) {
$7 = $i;
$8 = $2;
$9 = ($7>>>0)<($8>>>0);
if (!($9)) {
break;
}
$10 = $i;
$11 = $1;
$12 = (($11) + ($10)|0);
$13 = HEAP8[$12>>0]|0;
$14 = $i;
$15 = (($final) + ($14)|0);
HEAP8[$15>>0] = $13;
$16 = $i;
$17 = (($16) + 1)|0;
$i = $17;
}
$18 = $2;
$19 = (($final) + ($18)|0);
HEAP8[$19>>0] = 1;
$20 = $st;
$21 = ((($20)) + 56|0);
HEAP8[$21>>0] = 1;
$22 = $st;
$23 = (_poly1305_blocks_ref32($22,$final,16)|0);
$burn = $23;
}
$24 = $st;
$25 = ((($24)) + 20|0);
$26 = HEAP32[$25>>2]|0;
$h0 = $26;
$27 = $st;
$28 = ((($27)) + 20|0);
$29 = ((($28)) + 4|0);
$30 = HEAP32[$29>>2]|0;
$h1 = $30;
$31 = $st;
$32 = ((($31)) + 20|0);
$33 = ((($32)) + 8|0);
$34 = HEAP32[$33>>2]|0;
$h2 = $34;
$35 = $st;
$36 = ((($35)) + 20|0);
$37 = ((($36)) + 12|0);
$38 = HEAP32[$37>>2]|0;
$h3 = $38;
$39 = $st;
$40 = ((($39)) + 20|0);
$41 = ((($40)) + 16|0);
$42 = HEAP32[$41>>2]|0;
$h4 = $42;
$43 = $h1;
$44 = $43 >>> 26;
$c = $44;
$45 = $h1;
$46 = $45 & 67108863;
$h1 = $46;
$47 = $c;
$48 = $h2;
$49 = (($48) + ($47))|0;
$h2 = $49;
$50 = $h2;
$51 = $50 >>> 26;
$c = $51;
$52 = $h2;
$53 = $52 & 67108863;
$h2 = $53;
$54 = $c;
$55 = $h3;
$56 = (($55) + ($54))|0;
$h3 = $56;
$57 = $h3;
$58 = $57 >>> 26;
$c = $58;
$59 = $h3;
$60 = $59 & 67108863;
$h3 = $60;
$61 = $c;
$62 = $h4;
$63 = (($62) + ($61))|0;
$h4 = $63;
$64 = $h4;
$65 = $64 >>> 26;
$c = $65;
$66 = $h4;
$67 = $66 & 67108863;
$h4 = $67;
$68 = $c;
$69 = ($68*5)|0;
$70 = $h0;
$71 = (($70) + ($69))|0;
$h0 = $71;
$72 = $h0;
$73 = $72 >>> 26;
$c = $73;
$74 = $h0;
$75 = $74 & 67108863;
$h0 = $75;
$76 = $c;
$77 = $h1;
$78 = (($77) + ($76))|0;
$h1 = $78;
$79 = $h0;
$80 = (($79) + 5)|0;
$g0 = $80;
$81 = $g0;
$82 = $81 >>> 26;
$c = $82;
$83 = $g0;
$84 = $83 & 67108863;
$g0 = $84;
$85 = $h1;
$86 = $c;
$87 = (($85) + ($86))|0;
$g1 = $87;
$88 = $g1;
$89 = $88 >>> 26;
$c = $89;
$90 = $g1;
$91 = $90 & 67108863;
$g1 = $91;
$92 = $h2;
$93 = $c;
$94 = (($92) + ($93))|0;
$g2 = $94;
$95 = $g2;
$96 = $95 >>> 26;
$c = $96;
$97 = $g2;
$98 = $97 & 67108863;
$g2 = $98;
$99 = $h3;
$100 = $c;
$101 = (($99) + ($100))|0;
$g3 = $101;
$102 = $g3;
$103 = $102 >>> 26;
$c = $103;
$104 = $g3;
$105 = $104 & 67108863;
$g3 = $105;
$106 = $h4;
$107 = $c;
$108 = (($106) + ($107))|0;
$109 = (($108) - 67108864)|0;
$g4 = $109;
$110 = $g4;
$111 = $110 >>> 31;
$112 = (($111) - 1)|0;
$mask = $112;
$113 = $mask;
$114 = $g0;
$115 = $114 & $113;
$g0 = $115;
$116 = $mask;
$117 = $g1;
$118 = $117 & $116;
$g1 = $118;
$119 = $mask;
$120 = $g2;
$121 = $120 & $119;
$g2 = $121;
$122 = $mask;
$123 = $g3;
$124 = $123 & $122;
$g3 = $124;
$125 = $mask;
$126 = $g4;
$127 = $126 & $125;
$g4 = $127;
$128 = $mask;
$129 = $128 ^ -1;
$mask = $129;
$130 = $h0;
$131 = $mask;
$132 = $130 & $131;
$133 = $g0;
$134 = $132 | $133;
$h0 = $134;
$135 = $h1;
$136 = $mask;
$137 = $135 & $136;
$138 = $g1;
$139 = $137 | $138;
$h1 = $139;
$140 = $h2;
$141 = $mask;
$142 = $140 & $141;
$143 = $g2;
$144 = $142 | $143;
$h2 = $144;
$145 = $h3;
$146 = $mask;
$147 = $145 & $146;
$148 = $g3;
$149 = $147 | $148;
$h3 = $149;
$150 = $h4;
$151 = $mask;
$152 = $150 & $151;
$153 = $g4;
$154 = $152 | $153;
$h4 = $154;
$155 = $h0;
$156 = $h1;
$157 = $156 << 26;
$158 = $155 | $157;
$h0 = $158;
$159 = $h1;
$160 = $159 >>> 6;
$161 = $h2;
$162 = $161 << 20;
$163 = $160 | $162;
$h1 = $163;
$164 = $h2;
$165 = $164 >>> 12;
$166 = $h3;
$167 = $166 << 14;
$168 = $165 | $167;
$h2 = $168;
$169 = $h3;
$170 = $169 >>> 18;
$171 = $h4;
$172 = $171 << 8;
$173 = $170 | $172;
$h3 = $173;
$174 = $h0;
$175 = $st;
$176 = ((($175)) + 40|0);
$177 = HEAP32[$176>>2]|0;
$178 = (_i64Add(($174|0),0,($177|0),0)|0);
$179 = tempRet0;
$180 = $f;
$181 = $180;
HEAP32[$181>>2] = $178;
$182 = (($180) + 4)|0;
$183 = $182;
HEAP32[$183>>2] = $179;
$184 = $f;
$185 = $184;
$186 = HEAP32[$185>>2]|0;
$187 = (($184) + 4)|0;
$188 = $187;
$189 = HEAP32[$188>>2]|0;
$h0 = $186;
$190 = $h1;
$191 = $st;
$192 = ((($191)) + 40|0);
$193 = ((($192)) + 4|0);
$194 = HEAP32[$193>>2]|0;
$195 = (_i64Add(($190|0),0,($194|0),0)|0);
$196 = tempRet0;
$197 = $f;
$198 = $197;
$199 = HEAP32[$198>>2]|0;
$200 = (($197) + 4)|0;
$201 = $200;
$202 = HEAP32[$201>>2]|0;
$203 = (_i64Add(($195|0),($196|0),($202|0),0)|0);
$204 = tempRet0;
$205 = $f;
$206 = $205;
HEAP32[$206>>2] = $203;
$207 = (($205) + 4)|0;
$208 = $207;
HEAP32[$208>>2] = $204;
$209 = $f;
$210 = $209;
$211 = HEAP32[$210>>2]|0;
$212 = (($209) + 4)|0;
$213 = $212;
$214 = HEAP32[$213>>2]|0;
$h1 = $211;
$215 = $h2;
$216 = $st;
$217 = ((($216)) + 40|0);
$218 = ((($217)) + 8|0);
$219 = HEAP32[$218>>2]|0;
$220 = (_i64Add(($215|0),0,($219|0),0)|0);
$221 = tempRet0;
$222 = $f;
$223 = $222;
$224 = HEAP32[$223>>2]|0;
$225 = (($222) + 4)|0;
$226 = $225;
$227 = HEAP32[$226>>2]|0;
$228 = (_i64Add(($220|0),($221|0),($227|0),0)|0);
$229 = tempRet0;
$230 = $f;
$231 = $230;
HEAP32[$231>>2] = $228;
$232 = (($230) + 4)|0;
$233 = $232;
HEAP32[$233>>2] = $229;
$234 = $f;
$235 = $234;
$236 = HEAP32[$235>>2]|0;
$237 = (($234) + 4)|0;
$238 = $237;
$239 = HEAP32[$238>>2]|0;
$h2 = $236;
$240 = $h3;
$241 = $st;
$242 = ((($241)) + 40|0);
$243 = ((($242)) + 12|0);
$244 = HEAP32[$243>>2]|0;
$245 = (_i64Add(($240|0),0,($244|0),0)|0);
$246 = tempRet0;
$247 = $f;
$248 = $247;
$249 = HEAP32[$248>>2]|0;
$250 = (($247) + 4)|0;
$251 = $250;
$252 = HEAP32[$251>>2]|0;
$253 = (_i64Add(($245|0),($246|0),($252|0),0)|0);
$254 = tempRet0;
$255 = $f;
$256 = $255;
HEAP32[$256>>2] = $253;
$257 = (($255) + 4)|0;
$258 = $257;
HEAP32[$258>>2] = $254;
$259 = $f;
$260 = $259;
$261 = HEAP32[$260>>2]|0;
$262 = (($259) + 4)|0;
$263 = $262;
$264 = HEAP32[$263>>2]|0;
$h3 = $261;
$265 = $3;
$266 = $h0;
_buf_put_le32_2148($265,$266);
$267 = $3;
$268 = ((($267)) + 4|0);
$269 = $h1;
_buf_put_le32_2148($268,$269);
$270 = $3;
$271 = ((($270)) + 8|0);
$272 = $h2;
_buf_put_le32_2148($271,$272);
$273 = $3;
$274 = ((($273)) + 12|0);
$275 = $h3;
_buf_put_le32_2148($274,$275);
$276 = $st;
$277 = ((($276)) + 20|0);
HEAP32[$277>>2] = 0;
$278 = $st;
$279 = ((($278)) + 20|0);
$280 = ((($279)) + 4|0);
HEAP32[$280>>2] = 0;
$281 = $st;
$282 = ((($281)) + 20|0);
$283 = ((($282)) + 8|0);
HEAP32[$283>>2] = 0;
$284 = $st;
$285 = ((($284)) + 20|0);
$286 = ((($285)) + 12|0);
HEAP32[$286>>2] = 0;
$287 = $st;
$288 = ((($287)) + 20|0);
$289 = ((($288)) + 16|0);
HEAP32[$289>>2] = 0;
$290 = $st;
HEAP32[$290>>2] = 0;
$291 = $st;
$292 = ((($291)) + 4|0);
HEAP32[$292>>2] = 0;
$293 = $st;
$294 = ((($293)) + 8|0);
HEAP32[$294>>2] = 0;
$295 = $st;
$296 = ((($295)) + 12|0);
HEAP32[$296>>2] = 0;
$297 = $st;
$298 = ((($297)) + 16|0);
HEAP32[$298>>2] = 0;
$299 = $st;
$300 = ((($299)) + 40|0);
HEAP32[$300>>2] = 0;
$301 = $st;
$302 = ((($301)) + 40|0);
$303 = ((($302)) + 4|0);
HEAP32[$303>>2] = 0;
$304 = $st;
$305 = ((($304)) + 40|0);
$306 = ((($305)) + 8|0);
HEAP32[$306>>2] = 0;
$307 = $st;
$308 = ((($307)) + 40|0);
$309 = ((($308)) + 12|0);
HEAP32[$309>>2] = 0;
$310 = $burn;
$311 = (100 + ($310))|0;
STACKTOP = sp;return ($311|0);
}
function _buf_put_le32_2148($_buf,$val) {
$_buf = $_buf|0;
$val = $val|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $out = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $_buf;
$1 = $val;
$2 = $0;
$out = $2;
$3 = $1;
$4 = $3 >>> 24;
$5 = $4&255;
$6 = $out;
$7 = ((($6)) + 3|0);
HEAP8[$7>>0] = $5;
$8 = $1;
$9 = $8 >>> 16;
$10 = $9&255;
$11 = $out;
$12 = ((($11)) + 2|0);
HEAP8[$12>>0] = $10;
$13 = $1;
$14 = $13 >>> 8;
$15 = $14&255;
$16 = $out;
$17 = ((($16)) + 1|0);
HEAP8[$17>>0] = $15;
$18 = $1;
$19 = $18&255;
$20 = $out;
HEAP8[$20>>0] = $19;
STACKTOP = sp;return;
}
function _poly1305_init($ctx,$key) {
$ctx = $ctx|0;
$key = $key|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $state = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ctx;
$1 = $key;
$2 = $0;
$3 = (_poly1305_get_state($2)|0);
$state = $3;
$4 = $0;
$5 = ((($4)) + 88|0);
HEAP32[$5>>2] = 0;
$6 = $0;
$7 = ((($6)) + 84|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = $state;
$12 = $1;
FUNCTION_TABLE_vii[$10 & 63]($11,$12);
STACKTOP = sp;return;
}
function __gcry_rngcsprng_initialize($full) {
$full = $full|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $full;
$1 = $0;
$2 = ($1|0)!=(0);
if ($2) {
_initialize();
} else {
_initialize_basics();
}
STACKTOP = sp;return;
}
function _initialize_basics() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17727]|0;
$1 = ($0|0)!=(0);
if ($1) {
return;
}
HEAP32[17727] = 1;
return;
}
function _initialize() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
_initialize_basics();
_lock_pool_2151();
$0 = HEAP32[17729]|0;
$1 = ($0|0)!=(0|0);
if ($1) {
_unlock_pool();
return;
}
$2 = HEAP32[17730]|0;
$3 = ($2|0)!=(0);
if ($3) {
$4 = (__gcry_xcalloc_secure(1,664)|0);
$6 = $4;
} else {
$5 = (__gcry_xcalloc(1,664)|0);
$6 = $5;
}
HEAP32[17729] = $6;
$7 = HEAP32[17730]|0;
$8 = ($7|0)!=(0);
if ($8) {
$9 = (__gcry_xcalloc_secure(1,664)|0);
$11 = $9;
} else {
$10 = (__gcry_xcalloc(1,664)|0);
$11 = $10;
}
HEAP32[17731] = $11;
$12 = (_getfnc_gather_random()|0);
HEAP32[17732] = $12;
$13 = HEAP32[17732]|0;
$14 = ($13|0)!=(0|0);
if (!($14)) {
HEAP32[17733] = 1;
HEAP32[17732] = 79;
}
$15 = (_getfnc_fast_random_poll()|0);
HEAP32[17750] = $15;
_unlock_pool();
return;
}
function _lock_pool_2151() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $err = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_gpgrt_lock_lock(12960)|0);
$err = $0;
$1 = $err;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $err;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_fatal(50462,$vararg_buffer);
// unreachable;
} else {
HEAP32[17728] = 1;
STACKTOP = sp;return;
}
}
function _getfnc_gather_random() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $fnc = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_access(52844,4)|0);
$1 = ($0|0)!=(0);
if (!($1)) {
$2 = (_access(52946,4)|0);
$3 = ($2|0)!=(0);
if (!($3)) {
$fnc = 80;
$4 = $fnc;
STACKTOP = sp;return ($4|0);
}
}
$5 = (__gcry_gettext(50499)|0);
__gcry_log_fatal($5,$vararg_buffer);
// unreachable;
return (0)|0;
}
function _gather_faked($add,$origin,$length,$level) {
$add = $add|0;
$origin = $origin|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $buffer = 0, $n = 0, $p = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $add;
$1 = $origin;
$2 = $length;
$3 = $level;
$4 = HEAP32[17734]|0;
$5 = ($4|0)!=(0);
if (!($5)) {
$6 = (__gcry_gettext(50537)|0);
__gcry_log_info($6,$vararg_buffer);
HEAP32[17734] = 1;
$7 = (_time((0|0))|0);
$8 = (_getpid()|0);
$9 = Math_imul($7, $8)|0;
_srand($9);
}
$10 = $2;
$11 = (__gcry_xmalloc($10)|0);
$buffer = $11;
$p = $11;
$12 = $2;
$n = $12;
while(1) {
$13 = $n;
$14 = (($13) + -1)|0;
$n = $14;
$15 = ($13|0)!=(0);
if (!($15)) {
break;
}
$16 = (_rand()|0);
$17 = (+($16|0));
$18 = 256.0 * $17;
$19 = $18 / 2147483648.0;
$20 = (~~(($19)));
$21 = (1 + ($20))|0;
$22 = (($21) - 1)|0;
$23 = $22&255;
$24 = $p;
$25 = ((($24)) + 1|0);
$p = $25;
HEAP8[$24>>0] = $23;
}
$26 = $buffer;
$27 = $2;
$28 = $1;
_add_randomness($26,$27,$28);
$29 = $buffer;
__gcry_free($29);
STACKTOP = sp;return 0;
}
function _add_randomness($buffer,$length,$origin) {
$buffer = $buffer|0;
$length = $length|0;
$origin = $origin|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $count = 0, $or$cond = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $origin;
$3 = $0;
$p = $3;
$count = 0;
$4 = HEAP32[17728]|0;
$5 = ($4|0)!=(0);
if (!($5)) {
__gcry_assert_failed(50588,50603,1074,50619);
// unreachable;
}
$6 = $1;
$7 = HEAP32[(70972)>>2]|0;
$8 = (($7) + ($6))|0;
HEAP32[(70972)>>2] = $8;
$9 = HEAP32[(70976)>>2]|0;
$10 = (($9) + 1)|0;
HEAP32[(70976)>>2] = $10;
while(1) {
$11 = $1;
$12 = (($11) + -1)|0;
$1 = $12;
$13 = ($11|0)!=(0);
if (!($13)) {
break;
}
$14 = $p;
$15 = ((($14)) + 1|0);
$p = $15;
$16 = HEAP8[$14>>0]|0;
$17 = $16&255;
$18 = HEAP32[17745]|0;
$19 = (($18) + 1)|0;
HEAP32[17745] = $19;
$20 = HEAP32[17729]|0;
$21 = (($20) + ($18)|0);
$22 = HEAP8[$21>>0]|0;
$23 = $22&255;
$24 = $23 ^ $17;
$25 = $24&255;
HEAP8[$21>>0] = $25;
$26 = $count;
$27 = (($26) + 1)|0;
$count = $27;
$28 = HEAP32[17745]|0;
$29 = ($28>>>0)>=(600);
if (!($29)) {
continue;
}
$30 = $2;
$31 = ($30>>>0)<(3);
$32 = HEAP32[17746]|0;
$33 = ($32|0)!=(0);
$or$cond = $31 | $33;
if (!($or$cond)) {
$34 = $count;
$35 = HEAP32[17747]|0;
$36 = (($35) + ($34))|0;
HEAP32[17747] = $36;
$count = 0;
$37 = HEAP32[17747]|0;
$38 = ($37>>>0)>=(600);
if ($38) {
HEAP32[17746] = 1;
}
}
HEAP32[17745] = 0;
$39 = HEAP32[17729]|0;
_mix_pool($39);
$40 = HEAP32[17735]|0;
$41 = (($40) + 1)|0;
HEAP32[17735] = $41;
$42 = $1;
$43 = ($42|0)!=(0);
$44 = $43 ^ 1;
$45 = $44&1;
HEAP32[17749] = $45;
}
STACKTOP = sp;return;
}
function _mix_pool($pool) {
$pool = $pool|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $8 = 0, $9 = 0, $hashbuf = 0, $i = 0, $md = 0;
var $n = 0, $p = 0, $pend = 0, $pp = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$md = sp;
$0 = $pool;
$1 = $0;
$2 = ((($1)) + 600|0);
$hashbuf = $2;
$3 = HEAP32[17728]|0;
$4 = ($3|0)!=(0);
if (!($4)) {
__gcry_assert_failed(50588,50603,615,50634);
// unreachable;
}
__gcry_rmd160_init($md);
$5 = $0;
$6 = ((($5)) + 600|0);
$pend = $6;
$7 = $hashbuf;
$8 = $pend;
$9 = ((($8)) + -20|0);
dest=$7; src=$9; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$10 = $hashbuf;
$11 = ((($10)) + 20|0);
$12 = $0;
dest=$11; src=$12; stop=dest+44|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$13 = $hashbuf;
__gcry_rmd160_mixblock($md,$13);
$14 = $0;
$15 = $hashbuf;
dest=$14; src=$15; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$16 = HEAP32[17748]|0;
$17 = ($16|0)!=(0);
L4: do {
if ($17) {
$18 = $0;
$19 = HEAP32[17729]|0;
$20 = ($18|0)==($19|0);
if ($20) {
$i = 0;
while(1) {
$21 = $i;
$22 = ($21|0)<(20);
if (!($22)) {
break L4;
}
$23 = $i;
$24 = (76522 + ($23)|0);
$25 = HEAP8[$24>>0]|0;
$26 = $25&255;
$27 = $i;
$28 = $0;
$29 = (($28) + ($27)|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30&255;
$32 = $31 ^ $26;
$33 = $32&255;
HEAP8[$29>>0] = $33;
$34 = $i;
$35 = (($34) + 1)|0;
$i = $35;
}
}
}
} while(0);
$36 = $0;
$p = $36;
$n = 1;
while(1) {
$37 = $n;
$38 = ($37|0)<(30);
if (!($38)) {
break;
}
$39 = $hashbuf;
$40 = $p;
dest=$39; src=$40; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$41 = $p;
$42 = ((($41)) + 20|0);
$p = $42;
$43 = $p;
$44 = ((($43)) + 20|0);
$45 = ((($44)) + 64|0);
$46 = $pend;
$47 = ($45>>>0)<($46>>>0);
L14: do {
if ($47) {
$48 = $hashbuf;
$49 = ((($48)) + 20|0);
$50 = $p;
$51 = ((($50)) + 20|0);
dest=$49; src=$51; stop=dest+44|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
} else {
$52 = $p;
$53 = ((($52)) + 20|0);
$pp = $53;
$i = 20;
while(1) {
$54 = $i;
$55 = ($54|0)<(64);
if (!($55)) {
break L14;
}
$56 = $pp;
$57 = $pend;
$58 = ($56>>>0)>=($57>>>0);
if ($58) {
$59 = $0;
$pp = $59;
}
$60 = $pp;
$61 = ((($60)) + 1|0);
$pp = $61;
$62 = HEAP8[$60>>0]|0;
$63 = $i;
$64 = $hashbuf;
$65 = (($64) + ($63)|0);
HEAP8[$65>>0] = $62;
$66 = $i;
$67 = (($66) + 1)|0;
$i = $67;
}
}
} while(0);
$68 = $hashbuf;
__gcry_rmd160_mixblock($md,$68);
$69 = $p;
$70 = $hashbuf;
dest=$69; src=$70; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$71 = $n;
$72 = (($71) + 1)|0;
$n = $72;
}
$73 = $0;
$74 = HEAP32[17729]|0;
$75 = ($73|0)==($74|0);
if (!($75)) {
___gcry_burn_stack(384);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
$76 = $0;
__gcry_rmd160_hash_buffer(76522,$76,600);
HEAP32[17748] = 1;
___gcry_burn_stack(384);
___gcry_burn_stack_dummy();
STACKTOP = sp;return;
}
function _getfnc_fast_random_poll() {
var label = 0, sp = 0;
sp = STACKTOP;
return (0|0);
}
function _unlock_pool() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $err = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[17728] = 0;
$0 = (_gpgrt_lock_unlock(12960)|0);
$err = $0;
$1 = $err;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $err;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_fatal(50643,$vararg_buffer);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function __gcry_rngcsprng_close_fds() {
var label = 0, sp = 0;
sp = STACKTOP;
_lock_pool_2151();
(__gcry_rndlinux_gather_random(0,0,0,0)|0);
HEAP32[17746] = 0;
_unlock_pool();
return;
}
function __gcry_rngcsprng_dump_stats() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0;
var $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[17735]|0;
$1 = HEAP32[(70948)>>2]|0;
$2 = HEAP32[(70952)>>2]|0;
$3 = HEAP32[(70976)>>2]|0;
$4 = HEAP32[(70972)>>2]|0;
$5 = HEAP32[(70944)>>2]|0;
$6 = HEAP32[(70960)>>2]|0;
$7 = HEAP32[(70956)>>2]|0;
$8 = HEAP32[(70968)>>2]|0;
$9 = HEAP32[(70964)>>2]|0;
$10 = (__gcry_rndhw_failed_p()|0);
$11 = ($10|0)!=(0);
$12 = $11 ? 50680 : 76543;
HEAP32[$vararg_buffer>>2] = 600;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $1;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $2;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $3;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $4;
$vararg_ptr6 = ((($vararg_buffer)) + 24|0);
HEAP32[$vararg_ptr6>>2] = $5;
$vararg_ptr7 = ((($vararg_buffer)) + 28|0);
HEAP32[$vararg_ptr7>>2] = $6;
$vararg_ptr8 = ((($vararg_buffer)) + 32|0);
HEAP32[$vararg_ptr8>>2] = $7;
$vararg_ptr9 = ((($vararg_buffer)) + 36|0);
HEAP32[$vararg_ptr9>>2] = $8;
$vararg_ptr10 = ((($vararg_buffer)) + 40|0);
HEAP32[$vararg_ptr10>>2] = $9;
$vararg_ptr11 = ((($vararg_buffer)) + 44|0);
HEAP32[$vararg_ptr11>>2] = $12;
__gcry_log_info(50696,$vararg_buffer);
STACKTOP = sp;return;
}
function __gcry_rngcsprng_secure_alloc() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[17730] = 1;
return;
}
function __gcry_rngcsprng_enable_quick_gen() {
var label = 0, sp = 0;
sp = STACKTOP;
HEAP32[17751] = 1;
return;
}
function __gcry_rngcsprng_set_daemon_socket($socketname) {
$socketname = $socketname|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $socketname;
STACKTOP = sp;return;
}
function __gcry_rngcsprng_use_daemon($onoff) {
$onoff = $onoff|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $onoff;
STACKTOP = sp;return 0;
}
function __gcry_rngcsprng_is_faked() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
_initialize();
$0 = HEAP32[17733]|0;
$1 = ($0|0)!=(0);
$2 = HEAP32[17751]|0;
$3 = ($2|0)!=(0);
$4 = $1 ? 1 : $3;
$5 = $4&1;
return ($5|0);
}
function __gcry_rngcsprng_randomize($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $n = 0, $or$cond = 0, $p = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $level;
_initialize();
$3 = HEAP32[17751]|0;
$4 = ($3|0)!=(0);
$5 = $2;
$6 = ($5>>>0)>(1);
$or$cond = $4 & $6;
if ($or$cond) {
$2 = 1;
}
$7 = $2;
$8 = $7 & 3;
$2 = $8;
_lock_pool_2151();
$9 = $2;
$10 = ($9>>>0)>=(2);
$11 = $1;
if ($10) {
$12 = HEAP32[(70964)>>2]|0;
$13 = (($12) + ($11))|0;
HEAP32[(70964)>>2] = $13;
$14 = HEAP32[(70968)>>2]|0;
$15 = (($14) + 1)|0;
HEAP32[(70968)>>2] = $15;
} else {
$16 = HEAP32[(70956)>>2]|0;
$17 = (($16) + ($11))|0;
HEAP32[(70956)>>2] = $17;
$18 = HEAP32[(70960)>>2]|0;
$19 = (($18) + 1)|0;
HEAP32[(70960)>>2] = $19;
}
$20 = $0;
$p = $20;
while(1) {
$21 = $1;
$22 = ($21>>>0)>(0);
if (!($22)) {
break;
}
$23 = $1;
$24 = ($23>>>0)>(600);
$25 = $1;
$26 = $24 ? 600 : $25;
$n = $26;
$27 = $p;
$28 = $n;
$29 = $2;
_read_pool($27,$28,$29);
$30 = $n;
$31 = $1;
$32 = (($31) - ($30))|0;
$1 = $32;
$33 = $n;
$34 = $p;
$35 = (($34) + ($33)|0);
$p = $35;
}
_unlock_pool();
STACKTOP = sp;return;
}
function _read_pool($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0;
var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0;
var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0;
var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $apid = 0, $dp = 0, $i = 0, $my_pid2 = 0, $needed = 0, $needed1 = 0, $or$cond = 0, $sp = 0, $vararg_buffer = 0, $x = 0, $x2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$x = sp + 20|0;
$apid = sp + 8|0;
$x2 = sp + 4|0;
$0 = $buffer;
$1 = $length;
$2 = $level;
$3 = HEAP32[17728]|0;
$4 = ($3|0)!=(0);
if (!($4)) {
__gcry_assert_failed(50588,50603,934,50820);
// unreachable;
}
while(1) {
$5 = (_getpid()|0);
$my_pid2 = $5;
$6 = HEAP32[3251]|0;
$7 = ($6|0)==(-1);
if ($7) {
$8 = $my_pid2;
HEAP32[3251] = $8;
}
$9 = HEAP32[3251]|0;
$10 = $my_pid2;
$11 = ($9|0)!=($10|0);
if ($11) {
$12 = $my_pid2;
HEAP32[3251] = $12;
$13 = HEAP32[3251]|0;
HEAP32[$x>>2] = $13;
_add_randomness($x,4,0);
HEAP32[17749] = 0;
}
$14 = HEAP32[17728]|0;
$15 = ($14|0)!=(0);
if (!($15)) {
label = 8;
break;
}
$16 = $1;
$17 = ($16>>>0)>(600);
if ($17) {
label = 10;
break;
}
$18 = HEAP32[17746]|0;
$19 = ($18|0)!=(0);
if (!($19)) {
$20 = (_read_seed_file()|0);
$21 = ($20|0)!=(0);
if ($21) {
HEAP32[17746] = 1;
}
}
$22 = $2;
$23 = ($22|0)!=(2);
$24 = HEAP32[17754]|0;
$25 = ($24|0)!=(0);
$or$cond = $23 | $25;
if (!($or$cond)) {
HEAP32[17755] = 0;
$26 = $1;
$27 = HEAP32[17755]|0;
$28 = (($26) - ($27))|0;
$needed = $28;
$29 = $needed;
$30 = ($29>>>0)<(16);
if ($30) {
$needed = 16;
} else {
$31 = $needed;
$32 = ($31>>>0)>(600);
if ($32) {
label = 18;
break;
}
}
$33 = $needed;
_read_random_source(4,$33,2);
$34 = $needed;
$35 = HEAP32[17755]|0;
$36 = (($35) + ($34))|0;
HEAP32[17755] = $36;
HEAP32[17754] = 1;
}
$37 = $2;
$38 = ($37|0)==(2);
if ($38) {
$39 = HEAP32[17755]|0;
$40 = $1;
$41 = ($39>>>0)<($40>>>0);
if ($41) {
$42 = HEAP32[17755]|0;
$43 = ($42|0)<(0);
if ($43) {
HEAP32[17755] = 0;
}
$44 = $1;
$45 = HEAP32[17755]|0;
$46 = (($44) - ($45))|0;
$needed1 = $46;
$47 = $needed1;
$48 = ($47>>>0)>(600);
if ($48) {
label = 25;
break;
}
$49 = $needed1;
_read_random_source(4,$49,2);
$50 = $needed1;
$51 = HEAP32[17755]|0;
$52 = (($51) + ($50))|0;
HEAP32[17755] = $52;
}
}
while(1) {
$53 = HEAP32[17746]|0;
$54 = ($53|0)!=(0);
$55 = $54 ^ 1;
if (!($55)) {
break;
}
_random_poll();
}
_do_fast_random_poll();
$56 = HEAP32[3251]|0;
HEAP32[$apid>>2] = $56;
_add_randomness($apid,4,0);
$57 = HEAP32[17749]|0;
$58 = ($57|0)!=(0);
if (!($58)) {
$59 = HEAP32[17729]|0;
_mix_pool($59);
$60 = HEAP32[17735]|0;
$61 = (($60) + 1)|0;
HEAP32[17735] = $61;
}
$i = 0;
$62 = HEAP32[17731]|0;
$dp = $62;
$63 = HEAP32[17729]|0;
$sp = $63;
while(1) {
$64 = $i;
$65 = ($64|0)<(150);
if (!($65)) {
break;
}
$66 = $sp;
$67 = HEAP32[$66>>2]|0;
$68 = (($67) + -1515870811)|0;
$69 = $dp;
HEAP32[$69>>2] = $68;
$70 = $i;
$71 = (($70) + 1)|0;
$i = $71;
$72 = $dp;
$73 = ((($72)) + 4|0);
$dp = $73;
$74 = $sp;
$75 = ((($74)) + 4|0);
$sp = $75;
}
$76 = HEAP32[17729]|0;
_mix_pool($76);
$77 = HEAP32[17735]|0;
$78 = (($77) + 1)|0;
HEAP32[17735] = $78;
$79 = HEAP32[17731]|0;
_mix_pool($79);
$80 = HEAP32[(70944)>>2]|0;
$81 = (($80) + 1)|0;
HEAP32[(70944)>>2] = $81;
while(1) {
$82 = $1;
$83 = (($82) + -1)|0;
$1 = $83;
$84 = ($82|0)!=(0);
if (!($84)) {
break;
}
$85 = HEAP32[17756]|0;
$86 = (($85) + 1)|0;
HEAP32[17756] = $86;
$87 = HEAP32[17731]|0;
$88 = (($87) + ($85)|0);
$89 = HEAP8[$88>>0]|0;
$90 = $0;
$91 = ((($90)) + 1|0);
$0 = $91;
HEAP8[$90>>0] = $89;
$92 = HEAP32[17756]|0;
$93 = ($92>>>0)>=(600);
if ($93) {
HEAP32[17756] = 0;
}
$94 = HEAP32[17755]|0;
$95 = (($94) + -1)|0;
HEAP32[17755] = $95;
}
$96 = HEAP32[17755]|0;
$97 = ($96|0)<(0);
if ($97) {
HEAP32[17755] = 0;
}
$98 = HEAP32[17731]|0;
_memset(($98|0),0,600)|0;
$99 = (_getpid()|0);
$100 = $my_pid2;
$101 = ($99|0)!=($100|0);
if (!($101)) {
label = 43;
break;
}
$102 = (_getpid()|0);
HEAP32[$x2>>2] = $102;
_add_randomness($x2,4,0);
HEAP32[17749] = 0;
$103 = HEAP32[$x2>>2]|0;
HEAP32[3251] = $103;
}
if ((label|0) == 8) {
__gcry_assert_failed(50588,50603,953,50820);
// unreachable;
}
else if ((label|0) == 10) {
__gcry_log_bug(50830,$vararg_buffer);
// unreachable;
}
else if ((label|0) == 18) {
__gcry_bug(50603,979,50820);
// unreachable;
}
else if ((label|0) == 25) {
__gcry_bug(50603,995,50820);
// unreachable;
}
else if ((label|0) == 43) {
STACKTOP = sp;return;
}
}
function _read_seed_file() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, $buffer = 0, $fd = 0, $n = 0, $sb = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $vararg_ptr18 = 0;
var $vararg_ptr3 = 0, $vararg_ptr7 = 0, $x = 0, $x1 = 0, $x2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 768|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer15 = sp + 48|0;
$vararg_buffer13 = sp + 40|0;
$vararg_buffer11 = sp + 32|0;
$vararg_buffer8 = sp + 24|0;
$vararg_buffer4 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$sb = sp + 72|0;
$buffer = sp + 160|0;
$x = sp + 64|0;
$x1 = sp + 60|0;
$x2 = sp + 56|0;
$1 = HEAP32[17728]|0;
$2 = ($1|0)!=(0);
if (!($2)) {
__gcry_assert_failed(50588,50603,743,50862);
// unreachable;
}
$3 = HEAP32[17752]|0;
$4 = ($3|0)!=(0|0);
if (!($4)) {
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$5 = HEAP32[17752]|0;
$6 = (_open($5,0,$vararg_buffer)|0);
$fd = $6;
$7 = $fd;
$8 = ($7|0)==(-1);
if ($8) {
$9 = (___errno_location()|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)==(2);
if ($11) {
HEAP32[17753] = 1;
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
}
$12 = $fd;
$13 = ($12|0)==(-1);
if ($13) {
$14 = (__gcry_gettext(50877)|0);
$15 = HEAP32[17752]|0;
$16 = (___errno_location()|0);
$17 = HEAP32[$16>>2]|0;
$18 = (_strerror($17)|0);
HEAP32[$vararg_buffer1>>2] = $15;
$vararg_ptr3 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr3>>2] = $18;
__gcry_log_info($14,$vararg_buffer1);
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$19 = $fd;
$20 = HEAP32[17752]|0;
$21 = (_lock_seed_file($19,$20,0)|0);
$22 = ($21|0)!=(0);
$23 = $fd;
if ($22) {
(_close($23)|0);
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$24 = (_fstat($23,$sb)|0);
$25 = ($24|0)!=(0);
if ($25) {
$26 = (__gcry_gettext(50948)|0);
$27 = HEAP32[17752]|0;
$28 = (___errno_location()|0);
$29 = HEAP32[$28>>2]|0;
$30 = (_strerror($29)|0);
HEAP32[$vararg_buffer4>>2] = $27;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = $30;
__gcry_log_info($26,$vararg_buffer4);
$31 = $fd;
(_close($31)|0);
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$32 = ((($sb)) + 12|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 & 61440;
$35 = ($34|0)==(32768);
if (!($35)) {
$36 = (__gcry_gettext(50969)|0);
$37 = HEAP32[17752]|0;
HEAP32[$vararg_buffer8>>2] = $37;
__gcry_log_info($36,$vararg_buffer8);
$38 = $fd;
(_close($38)|0);
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$39 = ((($sb)) + 36|0);
$40 = HEAP32[$39>>2]|0;
$41 = ($40|0)!=(0);
if (!($41)) {
$42 = (__gcry_gettext(51007)|0);
__gcry_log_info($42,$vararg_buffer11);
$43 = $fd;
(_close($43)|0);
HEAP32[17753] = 1;
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
$44 = ((($sb)) + 36|0);
$45 = HEAP32[$44>>2]|0;
$46 = ($45|0)!=(600);
if ($46) {
$47 = (__gcry_gettext(51040)|0);
__gcry_log_info($47,$vararg_buffer13);
$48 = $fd;
(_close($48)|0);
$0 = 0;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
while(1) {
$49 = $fd;
$50 = (_read($49,$buffer,600)|0);
$n = $50;
$51 = $n;
$52 = ($51|0)==(-1);
if (!($52)) {
break;
}
$53 = (___errno_location()|0);
$54 = HEAP32[$53>>2]|0;
$55 = ($54|0)==(4);
if (!($55)) {
break;
}
}
$56 = $n;
$57 = ($56|0)!=(600);
if ($57) {
$58 = (__gcry_gettext(51094)|0);
$59 = HEAP32[17752]|0;
$60 = (___errno_location()|0);
$61 = HEAP32[$60>>2]|0;
$62 = (_strerror($61)|0);
HEAP32[$vararg_buffer15>>2] = $59;
$vararg_ptr18 = ((($vararg_buffer15)) + 4|0);
HEAP32[$vararg_ptr18>>2] = $62;
__gcry_log_fatal($58,$vararg_buffer15);
// unreachable;
}
$63 = $fd;
(_close($63)|0);
_add_randomness($buffer,600,0);
$64 = (_getpid()|0);
HEAP32[$x>>2] = $64;
_add_randomness($x,4,0);
$65 = (_time((0|0))|0);
HEAP32[$x1>>2] = $65;
_add_randomness($x1,4,0);
$66 = (_clock()|0);
HEAP32[$x2>>2] = $66;
_add_randomness($x2,4,0);
_read_random_source(0,16,0);
HEAP32[17753] = 1;
$0 = 1;
$67 = $0;
STACKTOP = sp;return ($67|0);
}
function _lock_seed_file($fd,$fname,$for_write) {
$fd = $fd|0;
$fname = $fname|0;
$for_write = $for_write|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $backoff = 0, $lck = 0, $tv = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer5 = 0;
var $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$lck = sp + 32|0;
$tv = sp + 24|0;
$1 = $fd;
$2 = $fname;
$3 = $for_write;
$backoff = 0;
;HEAP32[$lck>>2]=0|0;HEAP32[$lck+4>>2]=0|0;HEAP32[$lck+8>>2]=0|0;HEAP32[$lck+12>>2]=0|0;
$4 = $3;
$5 = ($4|0)!=(0);
$6 = $5 ? 1 : 0;
$7 = $6&65535;
HEAP16[$lck>>1] = $7;
$8 = ((($lck)) + 2|0);
HEAP16[$8>>1] = 0;
while(1) {
$9 = $1;
HEAP32[$vararg_buffer>>2] = $lck;
$10 = (_fcntl($9,13,$vararg_buffer)|0);
$11 = ($10|0)==(-1);
if (!($11)) {
label = 10;
break;
}
$12 = (___errno_location()|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(11);
if ($14) {
$15 = (___errno_location()|0);
$16 = HEAP32[$15>>2]|0;
$17 = ($16|0)!=(13);
if ($17) {
label = 5;
break;
}
}
$23 = $backoff;
$24 = ($23|0)>(2);
if ($24) {
$25 = (__gcry_gettext(50919)|0);
$26 = $2;
HEAP32[$vararg_buffer5>>2] = $26;
__gcry_log_info($25,$vararg_buffer5);
}
$27 = $backoff;
HEAP32[$tv>>2] = $27;
$28 = ((($tv)) + 4|0);
HEAP32[$28>>2] = 250000;
(_select(0,0,0,0,$tv)|0);
$29 = $backoff;
$30 = ($29|0)<(10);
if (!($30)) {
continue;
}
$31 = $backoff;
$32 = (($31) + 1)|0;
$backoff = $32;
}
if ((label|0) == 5) {
$18 = (__gcry_gettext(50898)|0);
$19 = $2;
$20 = (___errno_location()|0);
$21 = HEAP32[$20>>2]|0;
$22 = (_strerror($21)|0);
HEAP32[$vararg_buffer1>>2] = $19;
$vararg_ptr4 = ((($vararg_buffer1)) + 4|0);
HEAP32[$vararg_ptr4>>2] = $22;
__gcry_log_info($18,$vararg_buffer1);
$0 = -1;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
else if ((label|0) == 10) {
$0 = 0;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
return (0)|0;
}
function _read_random_source($orgin,$length,$level) {
$orgin = $orgin|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$0 = $orgin;
$1 = $length;
$2 = $level;
$3 = HEAP32[17732]|0;
$4 = ($3|0)!=(0|0);
if (!($4)) {
__gcry_log_fatal(51115,$vararg_buffer);
// unreachable;
}
$5 = HEAP32[17732]|0;
$6 = $0;
$7 = $1;
$8 = $2;
$9 = (FUNCTION_TABLE_iiiii[$5 & 127](81,$6,$7,$8)|0);
$10 = ($9|0)<(0);
if ($10) {
__gcry_log_fatal(51166,$vararg_buffer1);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function _random_poll() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[(70948)>>2]|0;
$1 = (($0) + 1)|0;
HEAP32[(70948)>>2] = $1;
_read_random_source(3,120,1);
return;
}
function _do_fast_random_poll() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $buf = 0, $tv = 0, $x = 0, $x1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tv = sp + 144|0;
$buf = sp + 8|0;
$x = sp + 4|0;
$x1 = sp;
$0 = HEAP32[17728]|0;
$1 = ($0|0)!=(0);
if (!($1)) {
__gcry_assert_failed(50588,50603,1180,51204);
// unreachable;
}
$2 = HEAP32[(70952)>>2]|0;
$3 = (($2) + 1)|0;
HEAP32[(70952)>>2] = $3;
$4 = HEAP32[17750]|0;
$5 = ($4|0)!=(0|0);
if ($5) {
$6 = HEAP32[17750]|0;
FUNCTION_TABLE_vii[$6 & 63](81,2);
}
$7 = (_gettimeofday(($tv|0),(0|0))|0);
$8 = ($7|0)!=(0);
if ($8) {
__gcry_bug(50603,1198,51204);
// unreachable;
} else {
_add_randomness($tv,4,2);
$9 = ((($tv)) + 4|0);
_add_randomness($9,4,2);
(_getrusage(0,$buf)|0);
_add_randomness($buf,136,2);
_memset(($buf|0),0,136)|0;
$10 = (_time((0|0))|0);
HEAP32[$x>>2] = $10;
_add_randomness($x,4,2);
$11 = (_clock()|0);
HEAP32[$x1>>2] = $11;
_add_randomness($x1,4,2);
__gcry_rndhw_poll_fast(81,2);
STACKTOP = sp;return;
}
}
function __gcry_rngcsprng_set_seed_file($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = HEAP32[17752]|0;
$2 = ($1|0)!=(0|0);
if ($2) {
__gcry_bug(50603,673,51224);
// unreachable;
} else {
$3 = $0;
$4 = (__gcry_xstrdup($3)|0);
HEAP32[17752] = $4;
STACKTOP = sp;return;
}
}
function __gcry_rngcsprng_update_seed_file() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $dp = 0, $fd = 0, $i = 0, $or$cond = 0, $or$cond3 = 0, $sp = 0;
var $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer4 = 0, $vararg_buffer6 = 0, $vararg_ptr13 = 0, $vararg_ptr17 = 0, $vararg_ptr21 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer18 = sp + 40|0;
$vararg_buffer14 = sp + 32|0;
$vararg_buffer10 = sp + 24|0;
$vararg_buffer6 = sp + 16|0;
$vararg_buffer4 = sp + 8|0;
$vararg_buffer = sp;
_initialize_basics();
_lock_pool_2151();
$0 = HEAP32[17752]|0;
$1 = ($0|0)!=(0|0);
$2 = HEAP32[17729]|0;
$3 = ($2|0)!=(0|0);
$or$cond = $1 & $3;
$4 = HEAP32[17746]|0;
$5 = ($4|0)!=(0);
$or$cond3 = $or$cond & $5;
if (!($or$cond3)) {
_unlock_pool();
STACKTOP = sp;return;
}
$6 = HEAP32[17753]|0;
$7 = ($6|0)!=(0);
if (!($7)) {
_unlock_pool();
$8 = (__gcry_gettext(51254)|0);
__gcry_log_info($8,$vararg_buffer);
STACKTOP = sp;return;
}
$i = 0;
$9 = HEAP32[17731]|0;
$dp = $9;
$10 = HEAP32[17729]|0;
$sp = $10;
while(1) {
$11 = $i;
$12 = ($11|0)<(150);
if (!($12)) {
break;
}
$13 = $sp;
$14 = HEAP32[$13>>2]|0;
$15 = (($14) + -1515870811)|0;
$16 = $dp;
HEAP32[$16>>2] = $15;
$17 = $i;
$18 = (($17) + 1)|0;
$i = $18;
$19 = $dp;
$20 = ((($19)) + 4|0);
$dp = $20;
$21 = $sp;
$22 = ((($21)) + 4|0);
$sp = $22;
}
$23 = HEAP32[17729]|0;
_mix_pool($23);
$24 = HEAP32[17735]|0;
$25 = (($24) + 1)|0;
HEAP32[17735] = $25;
$26 = HEAP32[17731]|0;
_mix_pool($26);
$27 = HEAP32[(70944)>>2]|0;
$28 = (($27) + 1)|0;
HEAP32[(70944)>>2] = $28;
$29 = HEAP32[17752]|0;
HEAP32[$vararg_buffer4>>2] = 384;
$30 = (_open($29,65,$vararg_buffer4)|0);
$fd = $30;
$31 = $fd;
$32 = ($31|0)==(-1);
do {
if ($32) {
$33 = (__gcry_gettext(51290)|0);
$34 = HEAP32[17752]|0;
$35 = (___errno_location()|0);
$36 = HEAP32[$35>>2]|0;
$37 = (_strerror($36)|0);
HEAP32[$vararg_buffer6>>2] = $34;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = $37;
__gcry_log_info($33,$vararg_buffer6);
} else {
$38 = $fd;
$39 = HEAP32[17752]|0;
$40 = (_lock_seed_file($38,$39,1)|0);
$41 = ($40|0)!=(0);
$42 = $fd;
if ($41) {
(_close($42)|0);
break;
}
$43 = (_ftruncate($42,0)|0);
$44 = ($43|0)!=(0);
if ($44) {
$45 = (__gcry_gettext(51313)|0);
$46 = HEAP32[17752]|0;
$47 = (___errno_location()|0);
$48 = HEAP32[$47>>2]|0;
$49 = (_strerror($48)|0);
HEAP32[$vararg_buffer10>>2] = $46;
$vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
HEAP32[$vararg_ptr13>>2] = $49;
__gcry_log_info($45,$vararg_buffer10);
$50 = $fd;
(_close($50)|0);
break;
}
while(1) {
$51 = $fd;
$52 = HEAP32[17731]|0;
$53 = (_write($51,$52,600)|0);
$i = $53;
$54 = $i;
$55 = ($54|0)==(-1);
if (!($55)) {
break;
}
$56 = (___errno_location()|0);
$57 = HEAP32[$56>>2]|0;
$58 = ($57|0)==(4);
if (!($58)) {
break;
}
}
$59 = $i;
$60 = ($59|0)!=(600);
if ($60) {
$61 = (__gcry_gettext(51313)|0);
$62 = HEAP32[17752]|0;
$63 = (___errno_location()|0);
$64 = HEAP32[$63>>2]|0;
$65 = (_strerror($64)|0);
HEAP32[$vararg_buffer14>>2] = $62;
$vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
HEAP32[$vararg_ptr17>>2] = $65;
__gcry_log_info($61,$vararg_buffer14);
}
$66 = $fd;
$67 = (_close($66)|0);
$68 = ($67|0)!=(0);
if ($68) {
$69 = (__gcry_gettext(51335)|0);
$70 = HEAP32[17752]|0;
$71 = (___errno_location()|0);
$72 = HEAP32[$71>>2]|0;
$73 = (_strerror($72)|0);
HEAP32[$vararg_buffer18>>2] = $70;
$vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
HEAP32[$vararg_ptr21>>2] = $73;
__gcry_log_info($69,$vararg_buffer18);
}
}
} while(0);
_unlock_pool();
STACKTOP = sp;return;
}
function __gcry_rngcsprng_fast_poll() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
_initialize_basics();
_lock_pool_2151();
$0 = HEAP32[17729]|0;
$1 = ($0|0)!=(0|0);
if (!($1)) {
_unlock_pool();
return;
}
_do_fast_random_poll();
_unlock_pool();
return;
}
function __gcry_rngfips_initialize($full) {
$full = $full|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $full;
_basic_initialization();
$1 = $0;
$2 = ($1|0)!=(0);
if (!($2)) {
STACKTOP = sp;return;
}
_lock_rng();
$3 = HEAP32[17759]|0;
$4 = ($3|0)!=(0|0);
do {
if ($4) {
$12 = HEAP32[17760]|0;
$13 = ((($12)) + 52|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)!=(0|0);
if ($15) {
__gcry_assert_failed(51393,51421,767,51435);
// unreachable;
}
$16 = HEAP32[17761]|0;
$17 = ((($16)) + 52|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($18|0)!=(0|0);
if ($19) {
__gcry_assert_failed(51460,51421,768,51435);
// unreachable;
}
$20 = HEAP32[17762]|0;
$21 = ((($20)) + 52|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($22|0)!=(0|0);
if ($23) {
__gcry_assert_failed(51490,51421,769,51435);
// unreachable;
} else {
$24 = HEAP32[17760]|0;
_check_guards($24);
$25 = HEAP32[17761]|0;
_check_guards($25);
$26 = HEAP32[17762]|0;
_check_guards($26);
break;
}
} else {
$5 = (__gcry_xmalloc_secure(48)|0);
HEAP32[17759] = $5;
$6 = (__gcry_xcalloc(1,68)|0);
HEAP32[17760] = $6;
$7 = HEAP32[17760]|0;
_setup_guards($7);
$8 = (__gcry_xcalloc_secure(1,68)|0);
HEAP32[17761] = $8;
$9 = HEAP32[17761]|0;
_setup_guards($9);
$10 = (__gcry_xcalloc_secure(1,68)|0);
HEAP32[17762] = $10;
$11 = HEAP32[17762]|0;
_setup_guards($11);
}
} while(0);
_unlock_rng();
STACKTOP = sp;return;
}
function _basic_initialization() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17757]|0;
$1 = ($0|0)!=(0);
if ($1) {
return;
}
HEAP32[17757] = 1;
HEAP32[17758] = 0;
return;
}
function _lock_rng() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $rc = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_gpgrt_lock_lock(13008)|0);
$rc = $0;
$1 = $rc;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $rc;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_fatal(51357,$vararg_buffer);
// unreachable;
} else {
HEAP32[17758] = 1;
STACKTOP = sp;return;
}
}
function _setup_guards($rng_ctx) {
$rng_ctx = $rng_ctx|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rng_ctx;
$1 = $0;
HEAP8[$1>>0] = 17;
$2 = $0;
$3 = ((($2)) + 16|0);
HEAP8[$3>>0] = 42;
$4 = $0;
$5 = ((($4)) + 33|0);
HEAP8[$5>>0] = -119;
$6 = $0;
$7 = ((($6)) + 50|0);
HEAP8[$7>>0] = -4;
STACKTOP = sp;return;
}
function _check_guards($rng_ctx) {
$rng_ctx = $rng_ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $rng_ctx;
$1 = $0;
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
$4 = ($3|0)!=(17);
if (!($4)) {
$5 = $0;
$6 = ((($5)) + 16|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = ($8|0)!=(42);
if (!($9)) {
$10 = $0;
$11 = ((($10)) + 33|0);
$12 = HEAP8[$11>>0]|0;
$13 = $12&255;
$14 = ($13|0)!=(137);
if (!($14)) {
$15 = $0;
$16 = ((($15)) + 50|0);
$17 = HEAP8[$16>>0]|0;
$18 = $17&255;
$19 = ($18|0)!=(252);
if (!($19)) {
STACKTOP = sp;return;
}
}
}
}
$20 = $0;
HEAP32[$vararg_buffer>>2] = $20;
__gcry_log_fatal(51523,$vararg_buffer);
// unreachable;
}
function _unlock_rng() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $rc = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[17758] = 0;
$0 = (_gpgrt_lock_unlock(13008)|0);
$rc = $0;
$1 = $rc;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $rc;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_fatal(51569,$vararg_buffer);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function __gcry_rngfips_close_fds() {
var label = 0, sp = 0;
sp = STACKTOP;
_lock_rng();
(__gcry_rndlinux_gather_random(0,0,0,0)|0);
_unlock_rng();
return;
}
function __gcry_rngfips_dump_stats() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function __gcry_rngfips_is_faked() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __gcry_rngfips_randomize($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $level;
__gcry_rngfips_initialize(1);
_lock_rng();
$3 = $2;
$4 = ($3|0)==(2);
$5 = $0;
$6 = $1;
if ($4) {
$7 = HEAP32[17762]|0;
_get_random($5,$6,$7);
_unlock_rng();
STACKTOP = sp;return;
} else {
$8 = HEAP32[17761]|0;
_get_random($5,$6,$8);
_unlock_rng();
STACKTOP = sp;return;
}
}
function _get_random($buffer,$length,$rng_ctx) {
$buffer = $buffer|0;
$length = $length|0;
$rng_ctx = $rng_ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $buffer;
$1 = $length;
$2 = $rng_ctx;
$3 = $0;
$4 = ($3|0)!=(0|0);
if (!($4)) {
__gcry_assert_failed(52720,51421,685,52743);
// unreachable;
}
$5 = $2;
$6 = ($5|0)!=(0|0);
if (!($6)) {
__gcry_assert_failed(51605,51421,686,52743);
// unreachable;
}
$7 = $2;
_check_guards($7);
$8 = $2;
$9 = ((($8)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ($10|0)!=(0|0);
do {
if (!($11)) {
$12 = $2;
$13 = HEAP32[17760]|0;
$14 = ($12|0)==($13|0);
if ($14) {
$15 = (_x931_generate_key(1)|0);
$16 = $2;
$17 = ((($16)) + 4|0);
HEAP32[$17>>2] = $15;
} else {
$18 = (_x931_generate_key(0)|0);
$19 = $2;
$20 = ((($19)) + 4|0);
HEAP32[$20>>2] = $18;
}
$21 = $2;
$22 = ((($21)) + 4|0);
$23 = HEAP32[$22>>2]|0;
$24 = ($23|0)!=(0|0);
if ($24) {
$25 = (_getpid()|0);
$26 = $2;
$27 = ((($26)) + 60|0);
HEAP32[$27>>2] = $25;
break;
} else {
__gcry_log_fatal(52138,$vararg_buffer);
// unreachable;
}
}
} while(0);
$28 = $2;
$29 = ((($28)) + 8|0);
$30 = HEAP8[$29>>0]|0;
$31 = ($30 << 7)&255;
$32 = ($31<<24>>24) >> 7;
$33 = $32 << 24 >> 24;
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = $2;
_x931_reseed($35);
}
$36 = $2;
$37 = ((($36)) + 60|0);
$38 = HEAP32[$37>>2]|0;
$39 = (_getpid()|0);
$40 = ($38|0)!=($39|0);
if (!($40)) {
$41 = $2;
$42 = ((($41)) + 64|0);
$43 = HEAP32[$42>>2]|0;
$44 = (_getpid()|0);
$45 = ($43|0)!=($44|0);
if (!($45)) {
$46 = $0;
$47 = $1;
$48 = $2;
$49 = (_x931_aes_driver($46,$47,$48)|0);
$50 = ($49|0)!=(0);
if ($50) {
__gcry_log_fatal(52138,$vararg_buffer);
// unreachable;
} else {
$51 = $2;
_check_guards($51);
STACKTOP = sp;return;
}
}
}
__gcry_fips_signal_error(51421,714,52743,0,51875);
__gcry_log_fatal(52138,$vararg_buffer);
// unreachable;
}
function _x931_generate_key($for_nonce) {
$for_nonce = $for_nonce|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $buffer = 0, $hd = 0, $rc = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 16|0;
$vararg_buffer = sp + 8|0;
$hd = sp + 40|0;
$_vset_long = sp;
$1 = $for_nonce;
$2 = HEAP32[17758]|0;
$3 = ($2|0)!=(0);
if (!($3)) {
__gcry_assert_failed(51613,51421,596,51632);
// unreachable;
}
$4 = (__gcry_cipher_open($hd,7,1,1)|0);
$rc = $4;
$5 = $rc;
$6 = ($5|0)!=(0);
if ($6) {
$7 = $rc;
$8 = (__gcry_strerror_2224($7)|0);
HEAP32[$vararg_buffer>>2] = $8;
__gcry_log_error(51650,$vararg_buffer);
$0 = 0;
$85 = $0;
STACKTOP = sp;return ($85|0);
}
$9 = $1;
$10 = ($9|0)!=(0);
if ($10) {
$11 = (__gcry_xmalloc(16)|0);
$buffer = $11;
$12 = $buffer;
$13 = HEAP32[17761]|0;
_get_random($12,16,$13);
} else {
$14 = (_get_entropy(16)|0);
$buffer = $14;
}
$15 = HEAP32[$hd>>2]|0;
$16 = $buffer;
$17 = (__gcry_cipher_setkey($15,$16,16)|0);
$rc = $17;
$18 = $buffer;
$_vptr = $18;
$_vlen = 16;
$_vset = 0;
$19 = $_vset;
$20 = $19&255;
$21 = $_vset_long;
$22 = $21;
HEAP32[$22>>2] = $20;
$23 = (($21) + 4)|0;
$24 = $23;
HEAP32[$24>>2] = 0;
while(1) {
$25 = $_vptr;
$26 = $25;
$27 = $26 & 7;
$28 = ($27|0)!=(0);
$29 = $_vlen;
$30 = ($29|0)!=(0);
$31 = $28 ? $30 : 0;
if (!($31)) {
break;
}
$32 = $_vset;
$33 = $_vptr;
HEAP8[$33>>0] = $32;
$34 = $_vptr;
$35 = ((($34)) + 1|0);
$_vptr = $35;
$36 = $_vlen;
$37 = (($36) + -1)|0;
$_vlen = $37;
}
$38 = $_vlen;
$39 = ($38>>>0)<(8);
if (!($39)) {
$40 = $_vset_long;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = (($40) + 4)|0;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (___muldi3(($42|0),($45|0),16843009,16843009)|0);
$47 = tempRet0;
$48 = $_vset_long;
$49 = $48;
HEAP32[$49>>2] = $46;
$50 = (($48) + 4)|0;
$51 = $50;
HEAP32[$51>>2] = $47;
while(1) {
$52 = $_vptr;
$_vptr_long = $52;
$53 = $_vset_long;
$54 = $53;
$55 = HEAP32[$54>>2]|0;
$56 = (($53) + 4)|0;
$57 = $56;
$58 = HEAP32[$57>>2]|0;
$59 = $_vptr_long;
$60 = $59;
$61 = $60;
HEAP32[$61>>2] = $55;
$62 = (($60) + 4)|0;
$63 = $62;
HEAP32[$63>>2] = $58;
$64 = $_vlen;
$65 = (($64) - 8)|0;
$_vlen = $65;
$66 = $_vptr;
$67 = ((($66)) + 8|0);
$_vptr = $67;
$68 = $_vlen;
$69 = ($68>>>0)>=(8);
if (!($69)) {
break;
}
}
}
while(1) {
$70 = $_vlen;
$71 = ($70|0)!=(0);
if (!($71)) {
break;
}
$72 = $_vset;
$73 = $_vptr;
HEAP8[$73>>0] = $72;
$74 = $_vptr;
$75 = ((($74)) + 1|0);
$_vptr = $75;
$76 = $_vlen;
$77 = (($76) + -1)|0;
$_vlen = $77;
}
$78 = $buffer;
__gcry_free($78);
$79 = $rc;
$80 = ($79|0)!=(0);
if ($80) {
$81 = $rc;
$82 = (__gcry_strerror_2224($81)|0);
HEAP32[$vararg_buffer1>>2] = $82;
__gcry_log_error(51799,$vararg_buffer1);
$83 = HEAP32[$hd>>2]|0;
__gcry_cipher_close($83);
$0 = 0;
$85 = $0;
STACKTOP = sp;return ($85|0);
} else {
$84 = HEAP32[$hd>>2]|0;
$0 = $84;
$85 = $0;
STACKTOP = sp;return ($85|0);
}
return (0)|0;
}
function __gcry_strerror_2224($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (_gpg_strerror($1)|0);
STACKTOP = sp;return ($2|0);
}
function _get_entropy($nbytes) {
$nbytes = $nbytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, $result = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $nbytes;
$1 = HEAP32[17763]|0;
$2 = ($1|0)!=(0|0);
if ($2) {
__gcry_assert_failed(51693,51421,552,51717);
// unreachable;
}
$3 = $0;
$4 = (__gcry_xmalloc_secure($3)|0);
HEAP32[17763] = $4;
$5 = $0;
HEAP32[17764] = $5;
HEAP32[17765] = 0;
$6 = (__gcry_rndlinux_gather_random(82,0,16,2)|0);
$rc = $6;
$7 = $rc;
$8 = ($7|0)<(0);
if ($8) {
$12 = HEAP32[17763]|0;
__gcry_free($12);
HEAP32[17763] = 0;
__gcry_log_fatal(51771,$vararg_buffer);
// unreachable;
}
$9 = HEAP32[17765]|0;
$10 = HEAP32[17764]|0;
$11 = ($9|0)!=($10|0);
if ($11) {
$12 = HEAP32[17763]|0;
__gcry_free($12);
HEAP32[17763] = 0;
__gcry_log_fatal(51771,$vararg_buffer);
// unreachable;
} else {
$13 = HEAP32[17763]|0;
$result = $13;
HEAP32[17763] = 0;
$14 = $result;
STACKTOP = sp;return ($14|0);
}
return (0)|0;
}
function _entropy_collect_cb($buffer,$length,$origin) {
$buffer = $buffer|0;
$length = $length|0;
$origin = $origin|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $origin;
$3 = $0;
$p = $3;
$4 = HEAP32[17758]|0;
$5 = ($4|0)!=(0);
if (!($5)) {
__gcry_assert_failed(51613,51421,531,51729);
// unreachable;
}
$6 = HEAP32[17763]|0;
$7 = ($6|0)!=(0|0);
if (!($7)) {
__gcry_assert_failed(51748,51421,532,51729);
// unreachable;
}
while(1) {
$8 = $1;
$9 = (($8) + -1)|0;
$1 = $9;
$10 = ($8|0)!=(0);
if (!($10)) {
label = 8;
break;
}
$11 = HEAP32[17765]|0;
$12 = HEAP32[17764]|0;
$13 = ($11>>>0)<($12>>>0);
if (!($13)) {
label = 8;
break;
}
$14 = $p;
$15 = ((($14)) + 1|0);
$p = $15;
$16 = HEAP8[$14>>0]|0;
$17 = $16&255;
$18 = HEAP32[17765]|0;
$19 = (($18) + 1)|0;
HEAP32[17765] = $19;
$20 = HEAP32[17763]|0;
$21 = (($20) + ($18)|0);
$22 = HEAP8[$21>>0]|0;
$23 = $22&255;
$24 = $23 ^ $17;
$25 = $24&255;
HEAP8[$21>>0] = $25;
}
if ((label|0) == 8) {
STACKTOP = sp;return;
}
}
function _x931_reseed($rng_ctx) {
$rng_ctx = $rng_ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $rng_ctx;
$1 = HEAP32[17758]|0;
$2 = ($1|0)!=(0);
if (!($2)) {
__gcry_assert_failed(51613,51421,658,51831);
// unreachable;
}
$3 = $0;
$4 = HEAP32[17760]|0;
$5 = ($3|0)==($4|0);
$6 = $0;
$7 = ((($6)) + 17|0);
if ($5) {
$8 = HEAP32[17761]|0;
_get_random($7,16,$8);
$9 = $0;
$10 = ((($9)) + 8|0);
$11 = HEAP8[$10>>0]|0;
$12 = $11 & -2;
$13 = $12 | 1;
HEAP8[$10>>0] = $13;
$14 = (_getpid()|0);
$15 = $0;
$16 = ((($15)) + 64|0);
HEAP32[$16>>2] = $14;
STACKTOP = sp;return;
} else {
_x931_generate_seed($7,16);
$17 = $0;
$18 = ((($17)) + 8|0);
$19 = HEAP8[$18>>0]|0;
$20 = $19 & -2;
$21 = $20 | 1;
HEAP8[$18>>0] = $21;
$22 = (_getpid()|0);
$23 = $0;
$24 = ((($23)) + 64|0);
HEAP32[$24>>2] = $22;
STACKTOP = sp;return;
}
}
function _x931_generate_seed($seed_buffer,$length) {
$seed_buffer = $seed_buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $buffer = 0, dest = 0, label = 0, sp = 0, src = 0;
var stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp;
$0 = $seed_buffer;
$1 = $length;
$2 = HEAP32[17758]|0;
$3 = ($2|0)!=(0);
if (!($3)) {
__gcry_assert_failed(51613,51421,642,51843);
// unreachable;
}
$4 = $1;
$5 = ($4|0)==(16);
if (!($5)) {
__gcry_assert_failed(51862,51421,643,51843);
// unreachable;
}
$6 = (_get_entropy(16)|0);
$buffer = $6;
$7 = $0;
$8 = $buffer;
dest=$7; src=$8; stop=dest+16|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$9 = $buffer;
$_vptr = $9;
$_vlen = 16;
$_vset = 0;
$10 = $_vset;
$11 = $10&255;
$12 = $_vset_long;
$13 = $12;
HEAP32[$13>>2] = $11;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = 0;
while(1) {
$16 = $_vptr;
$17 = $16;
$18 = $17 & 7;
$19 = ($18|0)!=(0);
$20 = $_vlen;
$21 = ($20|0)!=(0);
$22 = $19 ? $21 : 0;
if (!($22)) {
break;
}
$23 = $_vset;
$24 = $_vptr;
HEAP8[$24>>0] = $23;
$25 = $_vptr;
$26 = ((($25)) + 1|0);
$_vptr = $26;
$27 = $_vlen;
$28 = (($27) + -1)|0;
$_vlen = $28;
}
$29 = $_vlen;
$30 = ($29>>>0)<(8);
if (!($30)) {
$31 = $_vset_long;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = (($31) + 4)|0;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (___muldi3(($33|0),($36|0),16843009,16843009)|0);
$38 = tempRet0;
$39 = $_vset_long;
$40 = $39;
HEAP32[$40>>2] = $37;
$41 = (($39) + 4)|0;
$42 = $41;
HEAP32[$42>>2] = $38;
while(1) {
$43 = $_vptr;
$_vptr_long = $43;
$44 = $_vset_long;
$45 = $44;
$46 = HEAP32[$45>>2]|0;
$47 = (($44) + 4)|0;
$48 = $47;
$49 = HEAP32[$48>>2]|0;
$50 = $_vptr_long;
$51 = $50;
$52 = $51;
HEAP32[$52>>2] = $46;
$53 = (($51) + 4)|0;
$54 = $53;
HEAP32[$54>>2] = $49;
$55 = $_vlen;
$56 = (($55) - 8)|0;
$_vlen = $56;
$57 = $_vptr;
$58 = ((($57)) + 8|0);
$_vptr = $58;
$59 = $_vlen;
$60 = ($59>>>0)>=(8);
if (!($60)) {
break;
}
}
}
while(1) {
$61 = $_vlen;
$62 = ($61|0)!=(0);
if (!($62)) {
break;
}
$63 = $_vset;
$64 = $_vptr;
HEAP8[$64>>0] = $63;
$65 = $_vptr;
$66 = ((($65)) + 1|0);
$_vptr = $66;
$67 = $_vlen;
$68 = (($67) + -1)|0;
$_vlen = $68;
}
$69 = $buffer;
__gcry_free($69);
STACKTOP = sp;return;
}
function _x931_aes_driver($output,$length,$rng_ctx) {
$output = $output|0;
$length = $length|0;
$rng_ctx = $rng_ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $datetime_DT = 0, $intermediate_I = 0, $nbytes = 0, $result_buffer = 0, $temp_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$datetime_DT = sp + 56|0;
$_vset_long = sp;
$1 = $output;
$2 = $length;
$3 = $rng_ctx;
$4 = HEAP32[17758]|0;
$5 = ($4|0)!=(0);
if (!($5)) {
__gcry_assert_failed(51613,51421,444,51929);
// unreachable;
}
$6 = $3;
$7 = ((($6)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = ($8|0)!=(0|0);
if (!($9)) {
__gcry_assert_failed(51945,51421,445,51929);
// unreachable;
}
$10 = $3;
$11 = ((($10)) + 8|0);
$12 = HEAP8[$11>>0]|0;
$13 = ($12 << 7)&255;
$14 = ($13<<24>>24) >> 7;
$15 = $14 << 24 >> 24;
$16 = ($15|0)!=(0);
if (!($16)) {
__gcry_assert_failed(51964,51421,446,51929);
// unreachable;
}
$17 = HEAP32[17759]|0;
$18 = ($17|0)!=(0|0);
if (!($18)) {
__gcry_assert_failed(51983,51421,448,51929);
// unreachable;
}
$19 = HEAP32[17759]|0;
$intermediate_I = $19;
$20 = HEAP32[17759]|0;
$21 = ((($20)) + 16|0);
$temp_buffer = $21;
$22 = HEAP32[17759]|0;
$23 = ((($22)) + 32|0);
$result_buffer = $23;
while(1) {
$24 = $2;
$25 = ($24|0)!=(0);
if (!($25)) {
label = 33;
break;
}
$26 = $3;
$27 = ((($26)) + 52|0);
$28 = HEAP32[$27>>2]|0;
$29 = ($28|0)!=(0|0);
if (!($29)) {
$30 = $3;
$31 = ((($30)) + 12|0);
$32 = HEAP32[$31>>2]|0;
$33 = ($32>>>0)>(1000);
if ($33) {
$34 = $3;
_x931_reseed($34);
$35 = $3;
$36 = ((($35)) + 12|0);
HEAP32[$36>>2] = 0;
}
}
$37 = $2;
$38 = ($37>>>0)<(16);
$39 = $2;
$40 = $38 ? $39 : 16;
$nbytes = $40;
$41 = $3;
_x931_get_dt($datetime_DT,16,$41);
$42 = $result_buffer;
$43 = $3;
$44 = ((($43)) + 17|0);
$45 = $3;
$46 = ((($45)) + 4|0);
$47 = HEAP32[$46>>2]|0;
$48 = $intermediate_I;
$49 = $temp_buffer;
_x931_aes($42,$datetime_DT,$44,$47,$48,$49);
$50 = $3;
$51 = ((($50)) + 12|0);
$52 = HEAP32[$51>>2]|0;
$53 = (($52) + 1)|0;
HEAP32[$51>>2] = $53;
$54 = $3;
$55 = ((($54)) + 51|0);
$56 = HEAP8[$55>>0]|0;
$57 = $56&255;
$58 = ($57|0)!=(0);
if ($58) {
$59 = $3;
$60 = ((($59)) + 52|0);
$61 = HEAP32[$60>>2]|0;
$62 = ($61|0)!=(0|0);
if ($62) {
$63 = $3;
$64 = HEAP32[17760]|0;
$65 = ($63|0)!=($64|0);
if ($65) {
$66 = $3;
$67 = HEAP32[17761]|0;
$68 = ($66|0)!=($67|0);
if ($68) {
$69 = $3;
$70 = HEAP32[17762]|0;
$71 = ($69|0)!=($70|0);
if (!($71)) {
label = 19;
}
} else {
label = 19;
}
} else {
label = 19;
}
} else {
label = 19;
}
} else {
label = 19;
}
if ((label|0) == 19) {
label = 0;
$72 = $3;
$73 = ((($72)) + 8|0);
$74 = HEAP8[$73>>0]|0;
$75 = ($74 << 6)&255;
$76 = ($75<<24>>24) >> 7;
$77 = $76 << 24 >> 24;
$78 = ($77|0)!=(0);
$79 = $3;
$80 = ((($79)) + 34|0);
$81 = $result_buffer;
if (!($78)) {
dest=$80; src=$81; stop=dest+16|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$82 = $3;
$83 = ((($82)) + 8|0);
$84 = HEAP8[$83>>0]|0;
$85 = $84 & -3;
$86 = $85 | 2;
HEAP8[$83>>0] = $86;
continue;
}
$87 = (_memcmp($80,$81,16)|0);
$88 = ($87|0)!=(0);
if (!($88)) {
label = 22;
break;
}
$89 = $3;
$90 = ((($89)) + 34|0);
$91 = $result_buffer;
dest=$90; src=$91; stop=dest+16|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
}
$92 = $1;
$93 = $result_buffer;
$94 = $nbytes;
_memcpy(($92|0),($93|0),($94|0))|0;
$95 = $result_buffer;
$_vptr = $95;
$_vlen = 16;
$_vset = 0;
$96 = $_vset;
$97 = $96&255;
$98 = $_vset_long;
$99 = $98;
HEAP32[$99>>2] = $97;
$100 = (($98) + 4)|0;
$101 = $100;
HEAP32[$101>>2] = 0;
while(1) {
$102 = $_vptr;
$103 = $102;
$104 = $103 & 7;
$105 = ($104|0)!=(0);
$106 = $_vlen;
$107 = ($106|0)!=(0);
$108 = $105 ? $107 : 0;
if (!($108)) {
break;
}
$109 = $_vset;
$110 = $_vptr;
HEAP8[$110>>0] = $109;
$111 = $_vptr;
$112 = ((($111)) + 1|0);
$_vptr = $112;
$113 = $_vlen;
$114 = (($113) + -1)|0;
$_vlen = $114;
}
$115 = $_vlen;
$116 = ($115>>>0)<(8);
if (!($116)) {
$117 = $_vset_long;
$118 = $117;
$119 = HEAP32[$118>>2]|0;
$120 = (($117) + 4)|0;
$121 = $120;
$122 = HEAP32[$121>>2]|0;
$123 = (___muldi3(($119|0),($122|0),16843009,16843009)|0);
$124 = tempRet0;
$125 = $_vset_long;
$126 = $125;
HEAP32[$126>>2] = $123;
$127 = (($125) + 4)|0;
$128 = $127;
HEAP32[$128>>2] = $124;
while(1) {
$129 = $_vptr;
$_vptr_long = $129;
$130 = $_vset_long;
$131 = $130;
$132 = HEAP32[$131>>2]|0;
$133 = (($130) + 4)|0;
$134 = $133;
$135 = HEAP32[$134>>2]|0;
$136 = $_vptr_long;
$137 = $136;
$138 = $137;
HEAP32[$138>>2] = $132;
$139 = (($137) + 4)|0;
$140 = $139;
HEAP32[$140>>2] = $135;
$141 = $_vlen;
$142 = (($141) - 8)|0;
$_vlen = $142;
$143 = $_vptr;
$144 = ((($143)) + 8|0);
$_vptr = $144;
$145 = $_vlen;
$146 = ($145>>>0)>=(8);
if (!($146)) {
break;
}
}
}
while(1) {
$147 = $_vlen;
$148 = ($147|0)!=(0);
if (!($148)) {
break;
}
$149 = $_vset;
$150 = $_vptr;
HEAP8[$150>>0] = $149;
$151 = $_vptr;
$152 = ((($151)) + 1|0);
$_vptr = $152;
$153 = $_vlen;
$154 = (($153) + -1)|0;
$_vlen = $154;
}
$155 = $nbytes;
$156 = $1;
$157 = (($156) + ($155)|0);
$1 = $157;
$158 = $nbytes;
$159 = $2;
$160 = (($159) - ($158))|0;
$2 = $160;
}
if ((label|0) == 22) {
__gcry_fips_signal_error(51421,502,51929,0,52098);
$0 = -1;
$161 = $0;
STACKTOP = sp;return ($161|0);
}
else if ((label|0) == 33) {
$0 = 0;
$161 = $0;
STACKTOP = sp;return ($161|0);
}
return (0)|0;
}
function _x931_get_dt($buffer,$length,$rng_ctx) {
$buffer = $buffer|0;
$length = $length|0;
$rng_ctx = $rng_ctx|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $tv = 0, $usec = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$tv = sp + 8|0;
$0 = $buffer;
$1 = $length;
$2 = $rng_ctx;
$3 = $1;
$4 = ($3|0)==(16);
if (!($4)) {
__gcry_assert_failed(51862,51421,273,52013);
// unreachable;
}
$5 = HEAP32[17758]|0;
$6 = ($5|0)!=(0);
if (!($6)) {
__gcry_assert_failed(51613,51421,274,52013);
// unreachable;
}
$7 = $2;
$8 = ((($7)) + 52|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($9|0)!=(0|0);
if ($10) {
$11 = $2;
$12 = HEAP32[17760]|0;
$13 = ($11|0)!=($12|0);
if ($13) {
$14 = $2;
$15 = HEAP32[17761]|0;
$16 = ($14|0)!=($15|0);
if ($16) {
$17 = $2;
$18 = HEAP32[17762]|0;
$19 = ($17|0)!=($18|0);
if ($19) {
$20 = $0;
$21 = $2;
$22 = ((($21)) + 52|0);
$23 = HEAP32[$22>>2]|0;
dest=$20; src=$23; stop=dest+16|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$24 = $2;
$25 = ((($24)) + 56|0);
$26 = HEAP32[$25>>2]|0;
$27 = $26 >>> 24;
$28 = $27&255;
$29 = $0;
$30 = ((($29)) + 12|0);
HEAP8[$30>>0] = $28;
$31 = $2;
$32 = ((($31)) + 56|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 >>> 16;
$35 = $34&255;
$36 = $0;
$37 = ((($36)) + 13|0);
HEAP8[$37>>0] = $35;
$38 = $2;
$39 = ((($38)) + 56|0);
$40 = HEAP32[$39>>2]|0;
$41 = $40 >>> 8;
$42 = $41&255;
$43 = $0;
$44 = ((($43)) + 14|0);
HEAP8[$44>>0] = $42;
$45 = $2;
$46 = ((($45)) + 56|0);
$47 = HEAP32[$46>>2]|0;
$48 = $47&255;
$49 = $0;
$50 = ((($49)) + 15|0);
HEAP8[$50>>0] = $48;
$51 = $2;
$52 = ((($51)) + 56|0);
$53 = HEAP32[$52>>2]|0;
$54 = (($53) + 1)|0;
HEAP32[$52>>2] = $54;
STACKTOP = sp;return;
}
}
}
}
$55 = HEAP32[17766]|0;
$56 = ($55|0)!=(0);
if (!($56)) {
$57 = (_getpid()|0);
HEAP32[17767] = $57;
$58 = (_getppid()|0);
HEAP32[17768] = $58;
}
$59 = (_gettimeofday(($tv|0),(0|0))|0);
$60 = ($59|0)!=(0);
if ($60) {
$61 = (___errno_location()|0);
$62 = HEAP32[$61>>2]|0;
$63 = (_strerror($62)|0);
HEAP32[$vararg_buffer>>2] = $63;
__gcry_log_fatal(52025,$vararg_buffer);
// unreachable;
}
$64 = ((($tv)) + 4|0);
$65 = HEAP32[$64>>2]|0;
$usec = $65;
$66 = $usec;
$67 = $66 << 4;
$usec = $67;
$68 = HEAP32[$tv>>2]|0;
$69 = HEAP32[17766]|0;
$70 = ($68|0)==($69|0);
if ($70) {
$71 = $usec;
$72 = HEAP32[17769]|0;
$73 = ($71|0)==($72|0);
if ($73) {
$74 = HEAP16[35838]|0;
$75 = (($74) + 1)<<16>>16;
HEAP16[35838] = $75;
$76 = HEAP16[35838]|0;
$77 = $76&65535;
$78 = $77 & 4095;
$79 = $78&65535;
HEAP16[35838] = $79;
} else {
label = 17;
}
} else {
label = 17;
}
if ((label|0) == 17) {
HEAP16[35838] = 0;
$80 = HEAP32[$tv>>2]|0;
HEAP32[17766] = $80;
$81 = $usec;
HEAP32[17769] = $81;
}
$82 = HEAP32[$tv>>2]|0;
$83 = $82 >> 24;
$84 = $83 & 255;
$85 = $84&255;
$86 = $0;
HEAP8[$86>>0] = $85;
$87 = HEAP32[$tv>>2]|0;
$88 = $87 >> 16;
$89 = $88 & 255;
$90 = $89&255;
$91 = $0;
$92 = ((($91)) + 1|0);
HEAP8[$92>>0] = $90;
$93 = HEAP32[$tv>>2]|0;
$94 = $93 >> 8;
$95 = $94 & 255;
$96 = $95&255;
$97 = $0;
$98 = ((($97)) + 2|0);
HEAP8[$98>>0] = $96;
$99 = HEAP32[$tv>>2]|0;
$100 = $99 & 255;
$101 = $100&255;
$102 = $0;
$103 = ((($102)) + 3|0);
HEAP8[$103>>0] = $101;
$104 = $usec;
$105 = $104 >>> 16;
$106 = $105 & 255;
$107 = $106&255;
$108 = $0;
$109 = ((($108)) + 4|0);
HEAP8[$109>>0] = $107;
$110 = $usec;
$111 = $110 >>> 8;
$112 = $111 & 255;
$113 = $112&255;
$114 = $0;
$115 = ((($114)) + 5|0);
HEAP8[$115>>0] = $113;
$116 = $usec;
$117 = $116 & 240;
$118 = HEAP16[35838]|0;
$119 = $118&65535;
$120 = $119 >> 8;
$121 = $120 & 15;
$122 = $117 | $121;
$123 = $122&255;
$124 = $0;
$125 = ((($124)) + 6|0);
HEAP8[$125>>0] = $123;
$126 = HEAP16[35838]|0;
$127 = $126&65535;
$128 = $127 & 255;
$129 = $128&255;
$130 = $0;
$131 = ((($130)) + 7|0);
HEAP8[$131>>0] = $129;
$132 = HEAP32[17767]|0;
$133 = $132 >>> 24;
$134 = $133 & 255;
$135 = $134&255;
$136 = $0;
$137 = ((($136)) + 8|0);
HEAP8[$137>>0] = $135;
$138 = HEAP32[17767]|0;
$139 = $138 >>> 16;
$140 = $139 & 255;
$141 = $140&255;
$142 = $0;
$143 = ((($142)) + 9|0);
HEAP8[$143>>0] = $141;
$144 = HEAP32[17767]|0;
$145 = $144 >>> 8;
$146 = $145 & 255;
$147 = $146&255;
$148 = $0;
$149 = ((($148)) + 10|0);
HEAP8[$149>>0] = $147;
$150 = HEAP32[17767]|0;
$151 = $150 & 255;
$152 = $151&255;
$153 = $0;
$154 = ((($153)) + 11|0);
HEAP8[$154>>0] = $152;
$155 = HEAP32[17768]|0;
$156 = $155 >>> 24;
$157 = $156 & 255;
$158 = $157&255;
$159 = $0;
$160 = ((($159)) + 12|0);
HEAP8[$160>>0] = $158;
$161 = HEAP32[17768]|0;
$162 = $161 >>> 16;
$163 = $162 & 255;
$164 = $163&255;
$165 = $0;
$166 = ((($165)) + 13|0);
HEAP8[$166>>0] = $164;
$167 = HEAP32[17768]|0;
$168 = $167 >>> 8;
$169 = $168 & 255;
$170 = $169&255;
$171 = $0;
$172 = ((($171)) + 14|0);
HEAP8[$172>>0] = $170;
$173 = HEAP32[17768]|0;
$174 = $173 & 255;
$175 = $174&255;
$176 = $0;
$177 = ((($176)) + 15|0);
HEAP8[$177>>0] = $175;
$178 = HEAP32[17768]|0;
$179 = (($178) + 1)|0;
HEAP32[17768] = $179;
$180 = ($179|0)!=(0);
if ($180) {
STACKTOP = sp;return;
}
$181 = HEAP32[17767]|0;
$182 = (($181) + 1)|0;
HEAP32[17767] = $182;
STACKTOP = sp;return;
}
function _x931_aes($result_R,$datetime_DT,$seed_V,$key,$intermediate_I,$temp_xor) {
$result_R = $result_R|0;
$datetime_DT = $datetime_DT|0;
$seed_V = $seed_V|0;
$key = $key|0;
$intermediate_I = $intermediate_I|0;
$temp_xor = $temp_xor|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0;
var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0;
var $99 = 0, $_vlen = 0, $_vlen2 = 0, $_vptr = 0, $_vptr1 = 0, $_vptr_long = 0, $_vptr_long5 = 0, $_vset = 0, $_vset3 = 0, $_vset_long = 0, $_vset_long4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$_vset_long = sp + 8|0;
$_vset_long4 = sp;
$0 = $result_R;
$1 = $datetime_DT;
$2 = $seed_V;
$3 = $key;
$4 = $intermediate_I;
$5 = $temp_xor;
$6 = $3;
$7 = $4;
$8 = $1;
_encrypt_aes($6,$7,$8,16);
$9 = $5;
$10 = $4;
$11 = $2;
_xor_buffer($9,$10,$11,16);
$12 = $3;
$13 = $0;
$14 = $5;
_encrypt_aes($12,$13,$14,16);
$15 = $5;
$16 = $0;
$17 = $4;
_xor_buffer($15,$16,$17,16);
$18 = $3;
$19 = $2;
$20 = $5;
_encrypt_aes($18,$19,$20,16);
$21 = $4;
$_vptr = $21;
$_vlen = 16;
$_vset = 0;
$22 = $_vset;
$23 = $22&255;
$24 = $_vset_long;
$25 = $24;
HEAP32[$25>>2] = $23;
$26 = (($24) + 4)|0;
$27 = $26;
HEAP32[$27>>2] = 0;
while(1) {
$28 = $_vptr;
$29 = $28;
$30 = $29 & 7;
$31 = ($30|0)!=(0);
$32 = $_vlen;
$33 = ($32|0)!=(0);
$34 = $31 ? $33 : 0;
if (!($34)) {
break;
}
$35 = $_vset;
$36 = $_vptr;
HEAP8[$36>>0] = $35;
$37 = $_vptr;
$38 = ((($37)) + 1|0);
$_vptr = $38;
$39 = $_vlen;
$40 = (($39) + -1)|0;
$_vlen = $40;
}
$41 = $_vlen;
$42 = ($41>>>0)<(8);
if (!($42)) {
$43 = $_vset_long;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (($43) + 4)|0;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = (___muldi3(($45|0),($48|0),16843009,16843009)|0);
$50 = tempRet0;
$51 = $_vset_long;
$52 = $51;
HEAP32[$52>>2] = $49;
$53 = (($51) + 4)|0;
$54 = $53;
HEAP32[$54>>2] = $50;
while(1) {
$55 = $_vptr;
$_vptr_long = $55;
$56 = $_vset_long;
$57 = $56;
$58 = HEAP32[$57>>2]|0;
$59 = (($56) + 4)|0;
$60 = $59;
$61 = HEAP32[$60>>2]|0;
$62 = $_vptr_long;
$63 = $62;
$64 = $63;
HEAP32[$64>>2] = $58;
$65 = (($63) + 4)|0;
$66 = $65;
HEAP32[$66>>2] = $61;
$67 = $_vlen;
$68 = (($67) - 8)|0;
$_vlen = $68;
$69 = $_vptr;
$70 = ((($69)) + 8|0);
$_vptr = $70;
$71 = $_vlen;
$72 = ($71>>>0)>=(8);
if (!($72)) {
break;
}
}
}
while(1) {
$73 = $_vlen;
$74 = ($73|0)!=(0);
if (!($74)) {
break;
}
$75 = $_vset;
$76 = $_vptr;
HEAP8[$76>>0] = $75;
$77 = $_vptr;
$78 = ((($77)) + 1|0);
$_vptr = $78;
$79 = $_vlen;
$80 = (($79) + -1)|0;
$_vlen = $80;
}
$81 = $5;
$_vptr1 = $81;
$_vlen2 = 16;
$_vset3 = 0;
$82 = $_vset3;
$83 = $82&255;
$84 = $_vset_long4;
$85 = $84;
HEAP32[$85>>2] = $83;
$86 = (($84) + 4)|0;
$87 = $86;
HEAP32[$87>>2] = 0;
while(1) {
$88 = $_vptr1;
$89 = $88;
$90 = $89 & 7;
$91 = ($90|0)!=(0);
$92 = $_vlen2;
$93 = ($92|0)!=(0);
$94 = $91 ? $93 : 0;
if (!($94)) {
break;
}
$95 = $_vset3;
$96 = $_vptr1;
HEAP8[$96>>0] = $95;
$97 = $_vptr1;
$98 = ((($97)) + 1|0);
$_vptr1 = $98;
$99 = $_vlen2;
$100 = (($99) + -1)|0;
$_vlen2 = $100;
}
$101 = $_vlen2;
$102 = ($101>>>0)<(8);
if (!($102)) {
$103 = $_vset_long4;
$104 = $103;
$105 = HEAP32[$104>>2]|0;
$106 = (($103) + 4)|0;
$107 = $106;
$108 = HEAP32[$107>>2]|0;
$109 = (___muldi3(($105|0),($108|0),16843009,16843009)|0);
$110 = tempRet0;
$111 = $_vset_long4;
$112 = $111;
HEAP32[$112>>2] = $109;
$113 = (($111) + 4)|0;
$114 = $113;
HEAP32[$114>>2] = $110;
while(1) {
$115 = $_vptr1;
$_vptr_long5 = $115;
$116 = $_vset_long4;
$117 = $116;
$118 = HEAP32[$117>>2]|0;
$119 = (($116) + 4)|0;
$120 = $119;
$121 = HEAP32[$120>>2]|0;
$122 = $_vptr_long5;
$123 = $122;
$124 = $123;
HEAP32[$124>>2] = $118;
$125 = (($123) + 4)|0;
$126 = $125;
HEAP32[$126>>2] = $121;
$127 = $_vlen2;
$128 = (($127) - 8)|0;
$_vlen2 = $128;
$129 = $_vptr1;
$130 = ((($129)) + 8|0);
$_vptr1 = $130;
$131 = $_vlen2;
$132 = ($131>>>0)>=(8);
if (!($132)) {
break;
}
}
}
while(1) {
$133 = $_vlen2;
$134 = ($133|0)!=(0);
if (!($134)) {
break;
}
$135 = $_vset3;
$136 = $_vptr1;
HEAP8[$136>>0] = $135;
$137 = $_vptr1;
$138 = ((($137)) + 1|0);
$_vptr1 = $138;
$139 = $_vlen2;
$140 = (($139) + -1)|0;
$_vlen2 = $140;
}
STACKTOP = sp;return;
}
function _encrypt_aes($key,$output,$input,$length) {
$key = $key|0;
$output = $output|0;
$input = $input|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $key;
$1 = $output;
$2 = $input;
$3 = $length;
$4 = $3;
$5 = ($4|0)==(16);
if (!($5)) {
__gcry_assert_failed(51862,51421,386,52052);
// unreachable;
}
$6 = $0;
$7 = $1;
$8 = $3;
$9 = $2;
$10 = $3;
$11 = (__gcry_cipher_encrypt($6,$7,$8,$9,$10)|0);
$err = $11;
$12 = $err;
$13 = ($12|0)!=(0);
if ($13) {
$14 = $err;
$15 = (__gcry_strerror_2224($14)|0);
HEAP32[$vararg_buffer>>2] = $15;
__gcry_log_fatal(52064,$vararg_buffer);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function _xor_buffer($r,$a,$b,$length) {
$r = $r|0;
$a = $a|0;
$b = $b|0;
$length = $length|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $r;
$1 = $a;
$2 = $b;
$3 = $length;
while(1) {
$4 = $3;
$5 = ($4|0)!=(0);
if (!($5)) {
break;
}
$6 = $1;
$7 = HEAP8[$6>>0]|0;
$8 = $7&255;
$9 = $2;
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $8 ^ $11;
$13 = $12&255;
$14 = $0;
HEAP8[$14>>0] = $13;
$15 = $3;
$16 = (($15) + -1)|0;
$3 = $16;
$17 = $1;
$18 = ((($17)) + 1|0);
$1 = $18;
$19 = $2;
$20 = ((($19)) + 1|0);
$2 = $20;
$21 = $0;
$22 = ((($21)) + 1|0);
$0 = $22;
}
STACKTOP = sp;return;
}
function __gcry_rngfips_create_nonce($buffer,$length) {
$buffer = $buffer|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
__gcry_rngfips_initialize(1);
_lock_rng();
$2 = $0;
$3 = $1;
$4 = HEAP32[17760]|0;
_get_random($2,$3,$4);
_unlock_rng();
STACKTOP = sp;return;
}
function __gcry_rngfips_selftest($report) {
$report = $report|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $buffer = 0, $ec = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$buffer = sp + 8|0;
$0 = $report;
__gcry_randomize($buffer,8,1);
$1 = $0;
$2 = (_selftest_kat($1)|0);
$ec = $2;
$3 = $ec;
$4 = (_gpg_error_2250($3)|0);
STACKTOP = sp;return ($4|0);
}
function _selftest_kat($report) {
$report = $report|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0;
var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0;
var $97 = 0, $98 = 0, $99 = 0, $errtxt = 0, $or$cond = 0, $rc = 0, $result = 0, $ridx = 0, $test_ctx = 0, $tvidx = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$result = sp + 24|0;
$0 = $report;
$errtxt = 0;
$1 = HEAP32[17759]|0;
$2 = ($1|0)!=(0|0);
if (!($2)) {
__gcry_assert_failed(51983,51421,912,52167);
// unreachable;
}
$3 = (__gcry_xcalloc(1,68)|0);
$test_ctx = $3;
$4 = $test_ctx;
_setup_guards($4);
_lock_rng();
$tvidx = 0;
L4: while(1) {
$5 = $tvidx;
$6 = ($5>>>0)<(3);
if (!($6)) {
break;
}
$7 = $test_ctx;
$8 = ((($7)) + 4|0);
$9 = (__gcry_cipher_open($8,7,1,1)|0);
$rc = $9;
$10 = $rc;
$11 = ($10|0)!=(0);
if ($11) {
label = 6;
break;
}
$12 = $test_ctx;
$13 = ((($12)) + 4|0);
$14 = HEAP32[$13>>2]|0;
$15 = $tvidx;
$16 = (52218 + (($15*96)|0)|0);
$17 = (__gcry_cipher_setkey($14,$16,16)|0);
$rc = $17;
$18 = $rc;
$19 = ($18|0)!=(0);
if ($19) {
label = 8;
break;
}
$20 = (_getpid()|0);
$21 = $test_ctx;
$22 = ((($21)) + 60|0);
HEAP32[$22>>2] = $20;
$23 = $test_ctx;
$24 = ((($23)) + 17|0);
$25 = $tvidx;
$26 = (52218 + (($25*96)|0)|0);
$27 = ((($26)) + 32|0);
dest=$24; src=$27; stop=dest+16|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$28 = $test_ctx;
$29 = ((($28)) + 8|0);
$30 = HEAP8[$29>>0]|0;
$31 = $30 & -2;
$32 = $31 | 1;
HEAP8[$29>>0] = $32;
$33 = (_getpid()|0);
$34 = $test_ctx;
$35 = ((($34)) + 64|0);
HEAP32[$35>>2] = $33;
$36 = $tvidx;
$37 = (52218 + (($36*96)|0)|0);
$38 = ((($37)) + 16|0);
$39 = $test_ctx;
$40 = ((($39)) + 52|0);
HEAP32[$40>>2] = $38;
$41 = $tvidx;
$42 = (52218 + (($41*96)|0)|0);
$43 = ((($42)) + 16|0);
$44 = ((($43)) + 12|0);
$45 = HEAP8[$44>>0]|0;
$46 = $45&255;
$47 = $46 << 24;
$48 = $tvidx;
$49 = (52218 + (($48*96)|0)|0);
$50 = ((($49)) + 16|0);
$51 = ((($50)) + 13|0);
$52 = HEAP8[$51>>0]|0;
$53 = $52&255;
$54 = $53 << 16;
$55 = $47 | $54;
$56 = $tvidx;
$57 = (52218 + (($56*96)|0)|0);
$58 = ((($57)) + 16|0);
$59 = ((($58)) + 14|0);
$60 = HEAP8[$59>>0]|0;
$61 = $60&255;
$62 = $61 << 8;
$63 = $55 | $62;
$64 = $tvidx;
$65 = (52218 + (($64*96)|0)|0);
$66 = ((($65)) + 16|0);
$67 = ((($66)) + 15|0);
$68 = HEAP8[$67>>0]|0;
$69 = $68&255;
$70 = $63 | $69;
$71 = $test_ctx;
$72 = ((($71)) + 56|0);
HEAP32[$72>>2] = $70;
$ridx = 0;
while(1) {
$73 = $ridx;
$74 = ($73|0)<(3);
if (!($74)) {
break;
}
$75 = $test_ctx;
$76 = (_x931_aes_driver($result,16,$75)|0);
$77 = ($76|0)!=(0);
if ($77) {
label = 12;
break L4;
}
$78 = $ridx;
$79 = $tvidx;
$80 = (52218 + (($79*96)|0)|0);
$81 = ((($80)) + 48|0);
$82 = (($81) + ($78<<4)|0);
$83 = (_memcmp($result,$82,16)|0);
$84 = ($83|0)!=(0);
if ($84) {
label = 14;
break L4;
}
$85 = $ridx;
$86 = (($85) + 1)|0;
$ridx = $86;
}
$87 = $test_ctx;
$88 = ((($87)) + 60|0);
$89 = HEAP32[$88>>2]|0;
$90 = (_getpid()|0);
$91 = ($89|0)!=($90|0);
if ($91) {
label = 18;
break;
}
$92 = $test_ctx;
$93 = ((($92)) + 64|0);
$94 = HEAP32[$93>>2]|0;
$95 = (_getpid()|0);
$96 = ($94|0)!=($95|0);
if ($96) {
label = 18;
break;
}
$97 = $test_ctx;
$98 = ((($97)) + 4|0);
$99 = HEAP32[$98>>2]|0;
__gcry_cipher_close($99);
$100 = $test_ctx;
$101 = ((($100)) + 4|0);
HEAP32[$101>>2] = 0;
$102 = $test_ctx;
$103 = ((($102)) + 8|0);
$104 = HEAP8[$103>>0]|0;
$105 = $104 & -2;
HEAP8[$103>>0] = $105;
$106 = $test_ctx;
_check_guards($106);
$107 = $tvidx;
$108 = (($107) + 1)|0;
$tvidx = $108;
}
if ((label|0) == 6) {
$errtxt = 52180;
}
else if ((label|0) == 8) {
$errtxt = 52506;
}
else if ((label|0) == 12) {
$errtxt = 52532;
}
else if ((label|0) == 14) {
$errtxt = 52563;
}
else if ((label|0) == 18) {
$errtxt = 52601;
}
_unlock_rng();
$109 = $test_ctx;
$110 = ((($109)) + 4|0);
$111 = HEAP32[$110>>2]|0;
__gcry_cipher_close($111);
$112 = $test_ctx;
_check_guards($112);
$113 = $test_ctx;
__gcry_free($113);
$114 = $0;
$115 = ($114|0)!=(0|0);
$116 = $errtxt;
$117 = ($116|0)!=(0|0);
$or$cond = $115 & $117;
if (!($or$cond)) {
$120 = $errtxt;
$121 = ($120|0)!=(0|0);
$122 = $121 ? 50 : 0;
STACKTOP = sp;return ($122|0);
}
$118 = $0;
$119 = $errtxt;
FUNCTION_TABLE_viiii[$118 & 63](52623,0,52630,$119);
$120 = $errtxt;
$121 = ($120|0)!=(0|0);
$122 = $121 ? 50 : 0;
STACKTOP = sp;return ($122|0);
}
function _gpg_error_2250($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (_gpg_err_make_2251(1,$1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_make_2251($source,$code) {
$source = $source|0;
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $source;
$1 = $code;
$2 = $1;
$3 = ($2|0)==(0);
if ($3) {
$10 = 0;
STACKTOP = sp;return ($10|0);
}
$4 = $0;
$5 = $4 & 127;
$6 = $5 << 24;
$7 = $1;
$8 = $7 & 65535;
$9 = $6 | $8;
$10 = $9;
STACKTOP = sp;return ($10|0);
}
function __gcry_rngfips_init_external_test($r_context,$flags,$key,$keylen,$seed,$seedlen,$dt,$dtlen) {
$r_context = $r_context|0;
$flags = $flags|0;
$key = $key|0;
$keylen = $keylen|0;
$seed = $seed|0;
$seedlen = $seedlen|0;
$dt = $dt|0;
$dtlen = $dtlen|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0;
var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0;
var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0;
var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0;
var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $or$cond = 0, $or$cond$not = 0, $or$cond11 = 0, $or$cond3 = 0, $or$cond3$not = 0, $or$cond5 = 0;
var $or$cond5$not = 0, $or$cond7 = 0, $or$cond7$not = 0, $or$cond9 = 0, $or$cond9$not = 0, $rc = 0, $test_ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $r_context;
$2 = $flags;
$3 = $key;
$4 = $keylen;
$5 = $seed;
$6 = $seedlen;
$7 = $dt;
$8 = $dtlen;
__gcry_rngfips_initialize(1);
$9 = $1;
$10 = ($9|0)!=(0|0);
$11 = $3;
$12 = ($11|0)!=(0|0);
$or$cond = $10 & $12;
$or$cond$not = $or$cond ^ 1;
$13 = $4;
$14 = ($13|0)!=(16);
$or$cond3 = $or$cond$not | $14;
$or$cond3$not = $or$cond3 ^ 1;
$15 = $5;
$16 = ($15|0)!=(0|0);
$or$cond5 = $or$cond3$not & $16;
$or$cond5$not = $or$cond5 ^ 1;
$17 = $6;
$18 = ($17|0)!=(16);
$or$cond7 = $or$cond5$not | $18;
$or$cond7$not = $or$cond7 ^ 1;
$19 = $7;
$20 = ($19|0)!=(0|0);
$or$cond9 = $or$cond7$not & $20;
$or$cond9$not = $or$cond9 ^ 1;
$21 = $8;
$22 = ($21|0)!=(16);
$or$cond11 = $or$cond9$not | $22;
if ($or$cond11) {
$0 = 45;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
$23 = $8;
$24 = (68 + ($23))|0;
$25 = (__gcry_calloc(1,$24)|0);
$test_ctx = $25;
$26 = $test_ctx;
$27 = ($26|0)!=(0|0);
if (!($27)) {
$28 = (_gpg_err_code_from_syserror()|0);
$0 = $28;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
$29 = $test_ctx;
_setup_guards($29);
$30 = $test_ctx;
$31 = ((($30)) + 4|0);
$32 = (__gcry_cipher_open($31,7,1,1)|0);
$rc = $32;
$33 = $rc;
$34 = ($33|0)!=(0);
if (!($34)) {
$35 = $test_ctx;
$36 = ((($35)) + 4|0);
$37 = HEAP32[$36>>2]|0;
$38 = $3;
$39 = $4;
$40 = (__gcry_cipher_setkey($37,$38,$39)|0);
$rc = $40;
$41 = $rc;
$42 = ($41|0)!=(0);
if (!($42)) {
$43 = (_getpid()|0);
$44 = $test_ctx;
$45 = ((($44)) + 60|0);
HEAP32[$45>>2] = $43;
$46 = $test_ctx;
$47 = ((($46)) + 17|0);
$48 = $5;
$49 = $6;
_memcpy(($47|0),($48|0),($49|0))|0;
$50 = $test_ctx;
$51 = ((($50)) + 8|0);
$52 = HEAP8[$51>>0]|0;
$53 = $52 & -2;
$54 = $53 | 1;
HEAP8[$51>>0] = $54;
$55 = (_getpid()|0);
$56 = $test_ctx;
$57 = ((($56)) + 64|0);
HEAP32[$57>>2] = $55;
$58 = $test_ctx;
$59 = ((($58)) + 68|0);
$60 = $7;
$61 = $8;
_memcpy(($59|0),($60|0),($61|0))|0;
$62 = $test_ctx;
$63 = ((($62)) + 68|0);
$64 = $test_ctx;
$65 = ((($64)) + 52|0);
HEAP32[$65>>2] = $63;
$66 = $test_ctx;
$67 = ((($66)) + 52|0);
$68 = HEAP32[$67>>2]|0;
$69 = ((($68)) + 12|0);
$70 = HEAP8[$69>>0]|0;
$71 = $70&255;
$72 = $71 << 24;
$73 = $test_ctx;
$74 = ((($73)) + 52|0);
$75 = HEAP32[$74>>2]|0;
$76 = ((($75)) + 13|0);
$77 = HEAP8[$76>>0]|0;
$78 = $77&255;
$79 = $78 << 16;
$80 = $72 | $79;
$81 = $test_ctx;
$82 = ((($81)) + 52|0);
$83 = HEAP32[$82>>2]|0;
$84 = ((($83)) + 14|0);
$85 = HEAP8[$84>>0]|0;
$86 = $85&255;
$87 = $86 << 8;
$88 = $80 | $87;
$89 = $test_ctx;
$90 = ((($89)) + 52|0);
$91 = HEAP32[$90>>2]|0;
$92 = ((($91)) + 15|0);
$93 = HEAP8[$92>>0]|0;
$94 = $93&255;
$95 = $88 | $94;
$96 = $test_ctx;
$97 = ((($96)) + 56|0);
HEAP32[$97>>2] = $95;
$98 = $2;
$99 = $98 & 1;
$100 = ($99|0)!=(0);
if ($100) {
$101 = $test_ctx;
$102 = ((($101)) + 51|0);
HEAP8[$102>>0] = 1;
}
$103 = $test_ctx;
_check_guards($103);
$rc = 0;
}
}
$104 = $rc;
$105 = ($104|0)!=(0);
$106 = $test_ctx;
if ($105) {
$107 = ((($106)) + 4|0);
$108 = HEAP32[$107>>2]|0;
__gcry_cipher_close($108);
$109 = $test_ctx;
__gcry_free($109);
$110 = $1;
HEAP32[$110>>2] = 0;
} else {
$111 = $1;
HEAP32[$111>>2] = $106;
}
$112 = $rc;
$0 = $112;
$113 = $0;
STACKTOP = sp;return ($113|0);
}
function __gcry_rngfips_run_external_test($context,$buffer,$buflen) {
$context = $context|0;
$buffer = $buffer|0;
$buflen = $buflen|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond$not = 0, $or$cond3 = 0, $test_ctx = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $context;
$2 = $buffer;
$3 = $buflen;
$4 = $1;
$test_ctx = $4;
$5 = $test_ctx;
$6 = ($5|0)!=(0|0);
$7 = $2;
$8 = ($7|0)!=(0|0);
$or$cond = $6 & $8;
$or$cond$not = $or$cond ^ 1;
$9 = $3;
$10 = ($9|0)!=(16);
$or$cond3 = $or$cond$not | $10;
if ($or$cond3) {
$0 = 45;
$14 = $0;
STACKTOP = sp;return ($14|0);
} else {
_lock_rng();
$11 = $2;
$12 = $3;
$13 = $test_ctx;
_get_random($11,$12,$13);
_unlock_rng();
$0 = 0;
$14 = $0;
STACKTOP = sp;return ($14|0);
}
return (0)|0;
}
function __gcry_rngfips_deinit_external_test($context) {
$context = $context|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $test_ctx = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $context;
$1 = $0;
$test_ctx = $1;
$2 = $test_ctx;
$3 = ($2|0)!=(0|0);
if (!($3)) {
STACKTOP = sp;return;
}
$4 = $test_ctx;
$5 = ((($4)) + 4|0);
$6 = HEAP32[$5>>2]|0;
__gcry_cipher_close($6);
$7 = $test_ctx;
__gcry_free($7);
STACKTOP = sp;return;
}
function __gcry_rngsystem_initialize($full) {
$full = $full|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $full;
_basic_initialization_2260();
STACKTOP = sp;return;
}
function _basic_initialization_2260() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17770]|0;
$1 = ($0|0)!=(0);
if ($1) {
return;
}
HEAP32[17770] = 1;
HEAP32[17771] = 0;
return;
}
function __gcry_rngsystem_close_fds() {
var label = 0, sp = 0;
sp = STACKTOP;
_lock_rng_2264();
(__gcry_rndlinux_gather_random(0,0,0,0)|0);
_unlock_rng_2266();
return;
}
function _lock_rng_2264() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $rc = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (_gpgrt_lock_lock(13052)|0);
$rc = $0;
$1 = $rc;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $rc;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_fatal(52634,$vararg_buffer);
// unreachable;
} else {
HEAP32[17771] = 1;
STACKTOP = sp;return;
}
}
function _unlock_rng_2266() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $rc = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[17771] = 0;
$0 = (_gpgrt_lock_unlock(13052)|0);
$rc = $0;
$1 = $rc;
$2 = ($1|0)!=(0);
if ($2) {
$3 = $rc;
$4 = (_gpg_strerror($3)|0);
HEAP32[$vararg_buffer>>2] = $4;
__gcry_log_fatal(52677,$vararg_buffer);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function __gcry_rngsystem_randomize($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $level;
__gcry_rngsystem_initialize(1);
$3 = $2;
$4 = ($3|0)!=(2);
if ($4) {
$2 = 1;
}
_lock_rng_2264();
$5 = $0;
$6 = $1;
$7 = $2;
_get_random_2270($5,$6,$7);
_unlock_rng_2266();
STACKTOP = sp;return;
}
function _get_random_2270($buffer,$length,$level) {
$buffer = $buffer|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $buffer;
$1 = $length;
$2 = $level;
$3 = $0;
$4 = ($3|0)!=(0|0);
if (!($4)) {
__gcry_assert_failed(52720,52727,144,52743);
// unreachable;
}
$5 = $0;
HEAP32[17772] = $5;
$6 = $1;
HEAP32[17773] = $6;
HEAP32[17774] = 0;
$7 = $1;
$8 = $2;
$9 = (__gcry_rndlinux_gather_random(83,0,$7,$8)|0);
$rc = $9;
$10 = $rc;
$11 = ($10|0)<(0);
if ($11) {
$15 = $rc;
HEAP32[$vararg_buffer>>2] = $15;
__gcry_log_fatal(52798,$vararg_buffer);
// unreachable;
}
$12 = HEAP32[17774]|0;
$13 = HEAP32[17773]|0;
$14 = ($12|0)!=($13|0);
if ($14) {
$15 = $rc;
HEAP32[$vararg_buffer>>2] = $15;
__gcry_log_fatal(52798,$vararg_buffer);
// unreachable;
} else {
STACKTOP = sp;return;
}
}
function _read_cb($buffer,$length,$origin) {
$buffer = $buffer|0;
$length = $length|0;
$origin = $origin|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $p = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $buffer;
$1 = $length;
$2 = $origin;
$3 = $0;
$p = $3;
$4 = HEAP32[17771]|0;
$5 = ($4|0)!=(0);
if (!($5)) {
__gcry_assert_failed(52754,52727,124,52775);
// unreachable;
}
$6 = HEAP32[17772]|0;
$7 = ($6|0)!=(0|0);
if (!($7)) {
__gcry_assert_failed(52783,52727,125,52775);
// unreachable;
}
while(1) {
$8 = $1;
$9 = (($8) + -1)|0;
$1 = $9;
$10 = ($8|0)!=(0);
if (!($10)) {
label = 8;
break;
}
$11 = HEAP32[17774]|0;
$12 = HEAP32[17773]|0;
$13 = ($11>>>0)<($12>>>0);
if (!($13)) {
label = 8;
break;
}
$14 = $p;
$15 = ((($14)) + 1|0);
$p = $15;
$16 = HEAP8[$14>>0]|0;
$17 = HEAP32[17774]|0;
$18 = (($17) + 1)|0;
HEAP32[17774] = $18;
$19 = HEAP32[17772]|0;
$20 = (($19) + ($17)|0);
HEAP8[$20>>0] = $16;
}
if ((label|0) == 8) {
STACKTOP = sp;return;
}
}
function __gcry_rndhw_failed_p() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17775]|0;
return ($0|0);
}
function __gcry_rndhw_poll_fast($add,$origin) {
$add = $add|0;
$origin = $origin|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $add;
$1 = $origin;
STACKTOP = sp;return;
}
function __gcry_rndhw_poll_slow($add,$origin) {
$add = $add|0;
$origin = $origin|0;
var $0 = 0, $1 = 0, $2 = 0, $nbytes = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $add;
$1 = $origin;
$nbytes = 0;
$2 = $nbytes;
STACKTOP = sp;return ($2|0);
}
function __gcry_rndlinux_gather_random($add,$origin,$length,$level) {
$add = $add|0;
$origin = $origin|0;
$length = $length|0;
$level = $level|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__b = 0, $__i = 0, $_vlen = 0, $_vptr = 0, $_vptr_long = 0, $_vset = 0, $_vset_long = 0, $any_need_entropy = 0;
var $buffer = 0, $delay = 0, $fd = 0, $last_so_far = 0, $n = 0, $n_hw = 0, $nbytes = 0, $rc = 0, $rfds = 0, $tv = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $want = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1024|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer4 = sp + 24|0;
$vararg_buffer1 = sp + 16|0;
$vararg_buffer = sp + 8|0;
$buffer = sp + 248|0;
$rfds = sp + 64|0;
$tv = sp + 56|0;
$_vset_long = sp;
$1 = $add;
$2 = $origin;
$3 = $length;
$4 = $level;
$5 = $3;
$want = $5;
$last_so_far = 0;
$any_need_entropy = 0;
$6 = $1;
$7 = ($6|0)!=(0|0);
if (!($7)) {
$8 = HEAP32[3274]|0;
$9 = ($8|0)!=(-1);
if ($9) {
$10 = HEAP32[3274]|0;
(_close($10)|0);
HEAP32[3274] = -1;
}
$11 = HEAP32[3275]|0;
$12 = ($11|0)!=(-1);
if ($12) {
$13 = HEAP32[3275]|0;
(_close($13)|0);
HEAP32[3275] = -1;
}
$0 = 0;
$191 = $0;
STACKTOP = sp;return ($191|0);
}
$14 = $1;
$15 = $2;
$16 = (__gcry_rndhw_poll_slow($14,$15)|0);
$n_hw = $16;
$17 = $n_hw;
$18 = $3;
$19 = (($18>>>0) / 2)&-1;
$20 = ($17>>>0)>($19>>>0);
if ($20) {
$21 = $3;
$22 = (($21>>>0) / 2)&-1;
$n_hw = $22;
}
$23 = $3;
$24 = ($23>>>0)>(1);
if ($24) {
$25 = $n_hw;
$26 = $3;
$27 = (($26) - ($25))|0;
$3 = $27;
}
$28 = $4;
$29 = ($28|0)>=(2);
if ($29) {
$30 = HEAP32[3274]|0;
$31 = ($30|0)==(-1);
if ($31) {
$32 = HEAP8[76542]|0;
$33 = $32&255;
$34 = $33 & 1;
$35 = (_open_device(52844,$34)|0);
HEAP32[3274] = $35;
$36 = HEAP8[76542]|0;
$37 = $36&255;
$38 = $37 | 1;
$39 = $38&255;
HEAP8[76542] = $39;
}
$40 = HEAP32[3274]|0;
$fd = $40;
} else {
$41 = HEAP32[3275]|0;
$42 = ($41|0)==(-1);
if ($42) {
$43 = HEAP8[76542]|0;
$44 = $43&255;
$45 = $44 & 2;
$46 = (_open_device(52946,$45)|0);
HEAP32[3275] = $46;
$47 = HEAP8[76542]|0;
$48 = $47&255;
$49 = $48 | 2;
$50 = $49&255;
HEAP8[76542] = $50;
}
$51 = HEAP32[3275]|0;
$fd = $51;
}
$delay = 0;
while(1) {
$52 = $3;
$53 = ($52|0)!=(0);
if (!($53)) {
break;
}
$54 = $any_need_entropy;
$55 = ($54|0)!=(0);
if ($55) {
label = 22;
} else {
$56 = $last_so_far;
$57 = $want;
$58 = $3;
$59 = (($57) - ($58))|0;
$60 = ($56|0)!=($59|0);
if ($60) {
label = 22;
}
}
if ((label|0) == 22) {
label = 0;
$61 = $want;
$62 = $3;
$63 = (($61) - ($62))|0;
$last_so_far = $63;
$64 = $last_so_far;
$65 = $want;
__gcry_random_progress(52959,88,$64,$65);
$any_need_entropy = 1;
}
$66 = $fd;
$67 = ($66|0)<(1024);
if ($67) {
$__b = $rfds;
$__i = 32;
while(1) {
$68 = $__i;
$69 = ($68|0)!=(0);
if (!($69)) {
break;
}
$70 = $__b;
$71 = ((($70)) + 4|0);
$__b = $71;
HEAP32[$70>>2] = 0;
$72 = $__i;
$73 = (($72) + -1)|0;
$__i = $73;
}
$74 = $fd;
$75 = (($74>>>0) % 32)&-1;
$76 = 1 << $75;
$77 = $fd;
$78 = (($77>>>0) / 32)&-1;
$79 = (($rfds) + ($78<<2)|0);
$80 = HEAP32[$79>>2]|0;
$81 = $80 | $76;
HEAP32[$79>>2] = $81;
$82 = $delay;
HEAP32[$tv>>2] = $82;
$83 = $delay;
$84 = ($83|0)!=(0);
$85 = $84 ? 0 : 100000;
$86 = ((($tv)) + 4|0);
HEAP32[$86>>2] = $85;
$87 = $fd;
$88 = (($87) + 1)|0;
$89 = (_select($88,$rfds,0,0,$tv)|0);
$rc = $89;
$90 = ($89|0)!=(0);
if (!($90)) {
$any_need_entropy = 1;
$delay = 3;
continue;
}
$91 = $rc;
$92 = ($91|0)==(-1);
if ($92) {
$93 = (___errno_location()|0);
$94 = HEAP32[$93>>2]|0;
$95 = (_strerror($94)|0);
HEAP32[$vararg_buffer>>2] = $95;
__gcry_log_error(52972,$vararg_buffer);
$96 = $delay;
$97 = ($96|0)!=(0);
if ($97) {
continue;
}
$delay = 1;
continue;
}
}
while(1) {
$98 = $3;
$99 = ($98>>>0)<(768);
$100 = $3;
$101 = $99 ? $100 : 768;
$nbytes = $101;
$102 = $fd;
$103 = $nbytes;
$104 = (_read($102,$buffer,$103)|0);
$n = $104;
$105 = $n;
$106 = ($105|0)>=(0);
if ($106) {
$107 = $n;
$108 = $nbytes;
$109 = ($107>>>0)>($108>>>0);
if ($109) {
$110 = $n;
HEAP32[$vararg_buffer1>>2] = $110;
__gcry_log_error(52992,$vararg_buffer1);
$111 = $nbytes;
$n = $111;
}
}
$112 = $n;
$113 = ($112|0)==(-1);
if (!($113)) {
break;
}
$114 = (___errno_location()|0);
$115 = HEAP32[$114>>2]|0;
$116 = ($115|0)==(4);
if (!($116)) {
break;
}
}
$117 = $n;
$118 = ($117|0)==(-1);
if ($118) {
label = 38;
break;
}
$122 = $1;
$123 = $n;
$124 = $2;
FUNCTION_TABLE_viii[$122 & 127]($buffer,$123,$124);
$125 = $n;
$126 = $3;
$127 = (($126) - ($125))|0;
$3 = $127;
}
if ((label|0) == 38) {
$119 = (___errno_location()|0);
$120 = HEAP32[$119>>2]|0;
$121 = (_strerror($120)|0);
HEAP32[$vararg_buffer4>>2] = $121;
__gcry_log_fatal(53030,$vararg_buffer4);
// unreachable;
}
$_vptr = $buffer;
$_vlen = 768;
$_vset = 0;
$128 = $_vset;
$129 = $128&255;
$130 = $_vset_long;
$131 = $130;
HEAP32[$131>>2] = $129;
$132 = (($130) + 4)|0;
$133 = $132;
HEAP32[$133>>2] = 0;
while(1) {
$134 = $_vptr;
$135 = $134;
$136 = $135 & 7;
$137 = ($136|0)!=(0);
$138 = $_vlen;
$139 = ($138|0)!=(0);
$140 = $137 ? $139 : 0;
if (!($140)) {
break;
}
$141 = $_vset;
$142 = $_vptr;
HEAP8[$142>>0] = $141;
$143 = $_vptr;
$144 = ((($143)) + 1|0);
$_vptr = $144;
$145 = $_vlen;
$146 = (($145) + -1)|0;
$_vlen = $146;
}
$147 = $_vlen;
$148 = ($147>>>0)<(8);
if (!($148)) {
$149 = $_vset_long;
$150 = $149;
$151 = HEAP32[$150>>2]|0;
$152 = (($149) + 4)|0;
$153 = $152;
$154 = HEAP32[$153>>2]|0;
$155 = (___muldi3(($151|0),($154|0),16843009,16843009)|0);
$156 = tempRet0;
$157 = $_vset_long;
$158 = $157;
HEAP32[$158>>2] = $155;
$159 = (($157) + 4)|0;
$160 = $159;
HEAP32[$160>>2] = $156;
while(1) {
$161 = $_vptr;
$_vptr_long = $161;
$162 = $_vset_long;
$163 = $162;
$164 = HEAP32[$163>>2]|0;
$165 = (($162) + 4)|0;
$166 = $165;
$167 = HEAP32[$166>>2]|0;
$168 = $_vptr_long;
$169 = $168;
$170 = $169;
HEAP32[$170>>2] = $164;
$171 = (($169) + 4)|0;
$172 = $171;
HEAP32[$172>>2] = $167;
$173 = $_vlen;
$174 = (($173) - 8)|0;
$_vlen = $174;
$175 = $_vptr;
$176 = ((($175)) + 8|0);
$_vptr = $176;
$177 = $_vlen;
$178 = ($177>>>0)>=(8);
if (!($178)) {
break;
}
}
}
while(1) {
$179 = $_vlen;
$180 = ($179|0)!=(0);
if (!($180)) {
break;
}
$181 = $_vset;
$182 = $_vptr;
HEAP8[$182>>0] = $181;
$183 = $_vptr;
$184 = ((($183)) + 1|0);
$_vptr = $184;
$185 = $_vlen;
$186 = (($185) + -1)|0;
$_vlen = $186;
}
$187 = $any_need_entropy;
$188 = ($187|0)!=(0);
if ($188) {
$189 = $want;
$190 = $want;
__gcry_random_progress(52959,88,$189,$190);
}
$0 = 0;
$191 = $0;
STACKTOP = sp;return ($191|0);
}
function _open_device($name,$retry) {
$name = $name|0;
$retry = $retry|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $fd = 0, $or$cond = 0, $tv = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_ptr4 = 0, $vararg_ptr8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$tv = sp + 24|0;
$0 = $name;
$1 = $retry;
$2 = $1;
$3 = ($2|0)!=(0);
if ($3) {
__gcry_random_progress(52856,88,1,0);
}
while(1) {
$4 = $0;
$5 = (_open($4,0,$vararg_buffer)|0);
$fd = $5;
$6 = $fd;
$7 = ($6|0)==(-1);
$8 = $1;
$9 = ($8|0)!=(0);
$or$cond = $7 & $9;
if (!($or$cond)) {
break;
}
HEAP32[$tv>>2] = 5;
$10 = ((($tv)) + 4|0);
HEAP32[$10>>2] = 0;
$11 = HEAP32[$tv>>2]|0;
__gcry_random_progress(52872,88,0,$11);
(_select(0,0,0,0,$tv)|0);
}
$12 = $fd;
$13 = ($12|0)==(-1);
if ($13) {
$14 = $0;
$15 = (___errno_location()|0);
$16 = HEAP32[$15>>2]|0;
$17 = (_strerror($16)|0);
HEAP32[$vararg_buffer2>>2] = $14;
$vararg_ptr4 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr4>>2] = $17;
__gcry_log_fatal(52888,$vararg_buffer2);
// unreachable;
}
$18 = $fd;
$19 = (_set_cloexec_flag($18)|0);
$20 = ($19|0)!=(0);
if (!($20)) {
$25 = $fd;
STACKTOP = sp;return ($25|0);
}
$21 = $fd;
$22 = (___errno_location()|0);
$23 = HEAP32[$22>>2]|0;
$24 = (_strerror($23)|0);
HEAP32[$vararg_buffer5>>2] = $21;
$vararg_ptr8 = ((($vararg_buffer5)) + 4|0);
HEAP32[$vararg_ptr8>>2] = $24;
__gcry_log_error(52907,$vararg_buffer5);
$25 = $fd;
STACKTOP = sp;return ($25|0);
}
function _set_cloexec_flag($fd) {
$fd = $fd|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $oldflags = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$1 = $fd;
$2 = $1;
HEAP32[$vararg_buffer>>2] = 0;
$3 = (_fcntl($2,1,$vararg_buffer)|0);
$oldflags = $3;
$4 = $oldflags;
$5 = ($4|0)<(0);
$6 = $oldflags;
if ($5) {
$0 = $6;
$11 = $0;
STACKTOP = sp;return ($11|0);
} else {
$7 = $6 | 1;
$oldflags = $7;
$8 = $1;
$9 = $oldflags;
HEAP32[$vararg_buffer1>>2] = $9;
$10 = (_fcntl($8,2,$vararg_buffer1)|0);
$0 = $10;
$11 = $0;
STACKTOP = sp;return ($11|0);
}
return (0)|0;
}
function __gcry_mpih_addmul_1($res_ptr,$s1_ptr,$s1_size,$s2_limb) {
$res_ptr = $res_ptr|0;
$s1_ptr = $s1_ptr|0;
$s1_size = $s1_size|0;
$s2_limb = $s2_limb|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $__u = 0, $__uh = 0, $__ul = 0, $__v = 0, $__vh = 0, $__vl = 0, $__x0 = 0, $__x1 = 0, $__x2 = 0;
var $__x3 = 0, $cy_limb = 0, $j = 0, $prod_high = 0, $prod_low = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res_ptr;
$1 = $s1_ptr;
$2 = $s1_size;
$3 = $s2_limb;
$4 = $2;
$5 = (0 - ($4))|0;
$j = $5;
$6 = $j;
$7 = $0;
$8 = (0 - ($6))|0;
$9 = (($7) + ($8<<2)|0);
$0 = $9;
$10 = $j;
$11 = $1;
$12 = (0 - ($10))|0;
$13 = (($11) + ($12<<2)|0);
$1 = $13;
$cy_limb = 0;
while(1) {
$14 = $j;
$15 = $1;
$16 = (($15) + ($14<<2)|0);
$17 = HEAP32[$16>>2]|0;
$__u = $17;
$18 = $3;
$__v = $18;
$19 = $__u;
$20 = $19 & 65535;
$__ul = $20;
$21 = $__u;
$22 = $21 >>> 16;
$__uh = $22;
$23 = $__v;
$24 = $23 & 65535;
$__vl = $24;
$25 = $__v;
$26 = $25 >>> 16;
$__vh = $26;
$27 = $__ul;
$28 = $__vl;
$29 = Math_imul($27, $28)|0;
$__x0 = $29;
$30 = $__ul;
$31 = $__vh;
$32 = Math_imul($30, $31)|0;
$__x1 = $32;
$33 = $__uh;
$34 = $__vl;
$35 = Math_imul($33, $34)|0;
$__x2 = $35;
$36 = $__uh;
$37 = $__vh;
$38 = Math_imul($36, $37)|0;
$__x3 = $38;
$39 = $__x0;
$40 = $39 >>> 16;
$41 = $__x1;
$42 = (($41) + ($40))|0;
$__x1 = $42;
$43 = $__x2;
$44 = $__x1;
$45 = (($44) + ($43))|0;
$__x1 = $45;
$46 = $__x1;
$47 = $__x2;
$48 = ($46>>>0)<($47>>>0);
if ($48) {
$49 = $__x3;
$50 = (($49) + 65536)|0;
$__x3 = $50;
}
$51 = $__x3;
$52 = $__x1;
$53 = $52 >>> 16;
$54 = (($51) + ($53))|0;
$prod_high = $54;
$55 = $__x1;
$56 = $55 & 65535;
$57 = $56 << 16;
$58 = $__x0;
$59 = $58 & 65535;
$60 = (($57) + ($59))|0;
$prod_low = $60;
$61 = $cy_limb;
$62 = $prod_low;
$63 = (($62) + ($61))|0;
$prod_low = $63;
$64 = $prod_low;
$65 = $cy_limb;
$66 = ($64>>>0)<($65>>>0);
$67 = $66 ? 1 : 0;
$68 = $prod_high;
$69 = (($67) + ($68))|0;
$cy_limb = $69;
$70 = $j;
$71 = $0;
$72 = (($71) + ($70<<2)|0);
$73 = HEAP32[$72>>2]|0;
$x = $73;
$74 = $x;
$75 = $prod_low;
$76 = (($74) + ($75))|0;
$prod_low = $76;
$77 = $prod_low;
$78 = $x;
$79 = ($77>>>0)<($78>>>0);
$80 = $79 ? 1 : 0;
$81 = $cy_limb;
$82 = (($81) + ($80))|0;
$cy_limb = $82;
$83 = $prod_low;
$84 = $j;
$85 = $0;
$86 = (($85) + ($84<<2)|0);
HEAP32[$86>>2] = $83;
$87 = $j;
$88 = (($87) + 1)|0;
$j = $88;
$89 = ($88|0)!=(0);
if (!($89)) {
break;
}
}
$90 = $cy_limb;
STACKTOP = sp;return ($90|0);
}
function __gcry_dsa_gen_k($q,$security_level) {
$q = $q|0;
$security_level = $security_level|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $k = 0, $nbits = 0, $nbytes = 0, $or$cond = 0, $pp = 0;
var $rndbuf = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 16|0;
$vararg_buffer3 = sp + 8|0;
$vararg_buffer = sp;
$0 = $q;
$1 = $security_level;
$2 = $0;
$3 = ((($2)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = (__gcry_mpi_alloc_secure($4)|0);
$k = $5;
$6 = $0;
$7 = (__gcry_mpi_get_nbits($6)|0);
$nbits = $7;
$8 = $nbits;
$9 = (($8) + 7)|0;
$10 = (($9>>>0) / 8)&-1;
$nbytes = $10;
$rndbuf = 0;
$11 = (__gcry_get_debug_flag(1)|0);
$12 = ($11|0)!=(0);
if ($12) {
$13 = $nbits;
$14 = $1;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr2 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr2>>2] = $14;
__gcry_log_debug(53063,$vararg_buffer);
}
while(1) {
$15 = $rndbuf;
$16 = ($15|0)==(0|0);
$17 = $nbits;
$18 = ($17>>>0)<(32);
$or$cond = $16 | $18;
if ($or$cond) {
$19 = $rndbuf;
__gcry_free($19);
$20 = $nbytes;
$21 = $1;
$22 = (__gcry_random_bytes_secure($20,$21)|0);
$rndbuf = $22;
} else {
$23 = $1;
$24 = (__gcry_random_bytes_secure(4,$23)|0);
$pp = $24;
$25 = $rndbuf;
$26 = $pp;
;HEAP8[$25>>0]=HEAP8[$26>>0]|0;HEAP8[$25+1>>0]=HEAP8[$26+1>>0]|0;HEAP8[$25+2>>0]=HEAP8[$26+2>>0]|0;HEAP8[$25+3>>0]=HEAP8[$26+3>>0]|0;
$27 = $pp;
__gcry_free($27);
}
$28 = $k;
$29 = $rndbuf;
$30 = $nbytes;
__gcry_mpi_set_buffer($28,$29,$30,0);
$31 = $k;
$32 = $nbits;
$33 = (($32) - 1)|0;
$34 = (__gcry_mpi_test_bit($31,$33)|0);
$35 = ($34|0)!=(0);
$36 = $k;
$37 = $nbits;
$38 = (($37) - 1)|0;
__gcry_mpi_set_highbit($36,$38);
if (!($35)) {
$39 = $k;
$40 = $nbits;
$41 = (($40) - 1)|0;
__gcry_mpi_clear_bit($39,$41);
}
$42 = $k;
$43 = $0;
$44 = (__gcry_mpi_cmp($42,$43)|0);
$45 = ($44|0)<(0);
if (!($45)) {
$46 = (__gcry_get_debug_flag(1)|0);
$47 = ($46|0)!=(0);
if (!($47)) {
continue;
}
__gcry_log_debug(53110,$vararg_buffer3);
continue;
}
$48 = $k;
$49 = (__gcry_mpi_cmp_ui($48,0)|0);
$50 = ($49|0)>(0);
if ($50) {
break;
}
$51 = (__gcry_get_debug_flag(1)|0);
$52 = ($51|0)!=(0);
if (!($52)) {
continue;
}
__gcry_log_debug(53132,$vararg_buffer5);
}
$53 = $rndbuf;
__gcry_free($53);
$54 = $k;
STACKTOP = sp;return ($54|0);
}
function __gcry_dsa_gen_rfc6979_k($r_k,$dsa_q,$dsa_x,$h1,$hlen,$halgo,$extraloops) {
$r_k = $r_k|0;
$dsa_q = $dsa_q|0;
$dsa_x = $dsa_x|0;
$h1 = $h1|0;
$hlen = $hlen|0;
$halgo = $halgo|0;
$extraloops = $extraloops|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0;
var $K = 0, $V = 0, $h1_buf = 0, $hd = 0, $i = 0, $k = 0, $or$cond = 0, $or$cond3 = 0, $qbits = 0, $rc = 0, $t = 0, $tbits = 0, $x_buf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$x_buf = sp + 28|0;
$h1_buf = sp + 24|0;
$hd = sp + 20|0;
$k = sp + 12|0;
$1 = $r_k;
$2 = $dsa_q;
$3 = $dsa_x;
$4 = $h1;
$5 = $hlen;
$6 = $halgo;
$7 = $extraloops;
$V = 0;
$K = 0;
HEAP32[$x_buf>>2] = 0;
HEAP32[$h1_buf>>2] = 0;
HEAP32[$hd>>2] = 0;
$t = 0;
HEAP32[$k>>2] = 0;
$8 = $2;
$9 = (__gcry_mpi_get_nbits($8)|0);
$qbits = $9;
$10 = $qbits;
$11 = ($10|0)!=(0);
$12 = $4;
$13 = ($12|0)!=(0|0);
$or$cond = $11 & $13;
$14 = $5;
$15 = ($14|0)!=(0);
$or$cond3 = $or$cond & $15;
if (!($or$cond3)) {
$0 = 32816;
$259 = $0;
STACKTOP = sp;return ($259|0);
}
$16 = $6;
$17 = (__gcry_md_get_algo_dlen($16)|0);
$18 = $5;
$19 = ($17|0)!=($18|0);
if ($19) {
$0 = 5;
$259 = $0;
STACKTOP = sp;return ($259|0);
}
$20 = $5;
$21 = (__gcry_malloc($20)|0);
$V = $21;
$22 = $V;
$23 = ($22|0)!=(0|0);
L9: do {
if ($23) {
$i = 0;
while(1) {
$25 = $i;
$26 = $5;
$27 = ($25>>>0)<($26>>>0);
if (!($27)) {
break;
}
$28 = $i;
$29 = $V;
$30 = (($29) + ($28)|0);
HEAP8[$30>>0] = 1;
$31 = $i;
$32 = (($31) + 1)|0;
$i = $32;
}
$33 = $5;
$34 = (__gcry_calloc(1,$33)|0);
$K = $34;
$35 = $K;
$36 = ($35|0)!=(0|0);
if (!($36)) {
$37 = (_gpg_err_code_from_syserror()|0);
$rc = $37;
break;
}
$38 = $3;
$39 = $qbits;
$40 = (($39) + 7)|0;
$41 = (($40>>>0) / 8)&-1;
$42 = (_int2octets($x_buf,$38,$41)|0);
$rc = $42;
$43 = $rc;
$44 = ($43|0)!=(0);
if (!($44)) {
$45 = $4;
$46 = $5;
$47 = $46<<3;
$48 = $2;
$49 = $qbits;
$50 = (_bits2octets($h1_buf,$45,$47,$48,$49)|0);
$rc = $50;
$51 = $rc;
$52 = ($51|0)!=(0);
if (!($52)) {
$53 = $6;
$54 = (__gcry_md_open($hd,$53,3)|0);
$rc = $54;
$55 = $rc;
$56 = ($55|0)!=(0);
if (!($56)) {
$57 = HEAP32[$hd>>2]|0;
$58 = $K;
$59 = $5;
$60 = (__gcry_md_setkey($57,$58,$59)|0);
$rc = $60;
$61 = $rc;
$62 = ($61|0)!=(0);
if (!($62)) {
$63 = HEAP32[$hd>>2]|0;
$64 = $V;
$65 = $5;
__gcry_md_write($63,$64,$65);
$66 = HEAP32[$hd>>2]|0;
__gcry_md_write($66,76543,1);
$67 = HEAP32[$hd>>2]|0;
$68 = HEAP32[$x_buf>>2]|0;
$69 = $qbits;
$70 = (($69) + 7)|0;
$71 = (($70>>>0) / 8)&-1;
__gcry_md_write($67,$68,$71);
$72 = HEAP32[$hd>>2]|0;
$73 = HEAP32[$h1_buf>>2]|0;
$74 = $qbits;
$75 = (($74) + 7)|0;
$76 = (($75>>>0) / 8)&-1;
__gcry_md_write($72,$73,$76);
$77 = $K;
$78 = HEAP32[$hd>>2]|0;
$79 = (__gcry_md_read($78,0)|0);
$80 = $5;
_memcpy(($77|0),($79|0),($80|0))|0;
$81 = HEAP32[$hd>>2]|0;
$82 = $K;
$83 = $5;
$84 = (__gcry_md_setkey($81,$82,$83)|0);
$rc = $84;
$85 = $rc;
$86 = ($85|0)!=(0);
if (!($86)) {
$87 = HEAP32[$hd>>2]|0;
$88 = $V;
$89 = $5;
__gcry_md_write($87,$88,$89);
$90 = $V;
$91 = HEAP32[$hd>>2]|0;
$92 = (__gcry_md_read($91,0)|0);
$93 = $5;
_memcpy(($90|0),($92|0),($93|0))|0;
$94 = HEAP32[$hd>>2]|0;
$95 = $K;
$96 = $5;
$97 = (__gcry_md_setkey($94,$95,$96)|0);
$rc = $97;
$98 = $rc;
$99 = ($98|0)!=(0);
if (!($99)) {
$100 = HEAP32[$hd>>2]|0;
$101 = $V;
$102 = $5;
__gcry_md_write($100,$101,$102);
$103 = HEAP32[$hd>>2]|0;
__gcry_md_write($103,53152,1);
$104 = HEAP32[$hd>>2]|0;
$105 = HEAP32[$x_buf>>2]|0;
$106 = $qbits;
$107 = (($106) + 7)|0;
$108 = (($107>>>0) / 8)&-1;
__gcry_md_write($104,$105,$108);
$109 = HEAP32[$hd>>2]|0;
$110 = HEAP32[$h1_buf>>2]|0;
$111 = $qbits;
$112 = (($111) + 7)|0;
$113 = (($112>>>0) / 8)&-1;
__gcry_md_write($109,$110,$113);
$114 = $K;
$115 = HEAP32[$hd>>2]|0;
$116 = (__gcry_md_read($115,0)|0);
$117 = $5;
_memcpy(($114|0),($116|0),($117|0))|0;
$118 = HEAP32[$hd>>2]|0;
$119 = $K;
$120 = $5;
$121 = (__gcry_md_setkey($118,$119,$120)|0);
$rc = $121;
$122 = $rc;
$123 = ($122|0)!=(0);
if (!($123)) {
$124 = HEAP32[$hd>>2]|0;
$125 = $V;
$126 = $5;
__gcry_md_write($124,$125,$126);
$127 = $V;
$128 = HEAP32[$hd>>2]|0;
$129 = (__gcry_md_read($128,0)|0);
$130 = $5;
_memcpy(($127|0),($129|0),($130|0))|0;
$131 = $qbits;
$132 = (($131) + 7)|0;
$133 = (($132>>>0) / 8)&-1;
$134 = $5;
$135 = (($133) + ($134))|0;
$136 = (__gcry_malloc($135)|0);
$t = $136;
$137 = $t;
$138 = ($137|0)!=(0|0);
if (!($138)) {
$139 = (_gpg_err_code_from_syserror()|0);
$rc = $139;
break;
}
while(1) {
$tbits = 0;
while(1) {
$140 = $tbits;
$141 = $qbits;
$142 = ($140>>>0)<($141>>>0);
if (!($142)) {
break;
}
$143 = HEAP32[$hd>>2]|0;
$144 = $K;
$145 = $5;
$146 = (__gcry_md_setkey($143,$144,$145)|0);
$rc = $146;
$147 = $rc;
$148 = ($147|0)!=(0);
if ($148) {
break L9;
}
$149 = HEAP32[$hd>>2]|0;
$150 = $V;
$151 = $5;
__gcry_md_write($149,$150,$151);
$152 = $V;
$153 = HEAP32[$hd>>2]|0;
$154 = (__gcry_md_read($153,0)|0);
$155 = $5;
_memcpy(($152|0),($154|0),($155|0))|0;
$156 = $t;
$157 = $tbits;
$158 = (($157) + 7)|0;
$159 = (($158>>>0) / 8)&-1;
$160 = (($156) + ($159)|0);
$161 = $V;
$162 = $5;
_memcpy(($160|0),($161|0),($162|0))|0;
$163 = $5;
$164 = $163<<3;
$165 = $tbits;
$166 = (($165) + ($164))|0;
$tbits = $166;
}
$167 = HEAP32[$k>>2]|0;
__gcry_mpi_free($167);
HEAP32[$k>>2] = 0;
$168 = $t;
$169 = $tbits;
$170 = (($169) + 7)|0;
$171 = (($170>>>0) / 8)&-1;
$172 = (__gcry_mpi_scan($k,5,$168,$171,0)|0);
$rc = $172;
$173 = $rc;
$174 = ($173|0)!=(0);
if ($174) {
break L9;
}
$175 = $tbits;
$176 = $qbits;
$177 = ($175>>>0)>($176>>>0);
if ($177) {
$178 = HEAP32[$k>>2]|0;
$179 = HEAP32[$k>>2]|0;
$180 = $tbits;
$181 = $qbits;
$182 = (($180) - ($181))|0;
__gcry_mpi_rshift($178,$179,$182);
}
$183 = HEAP32[$k>>2]|0;
$184 = $2;
$185 = (__gcry_mpi_cmp($183,$184)|0);
$186 = ($185|0)<(0);
if ($186) {
$187 = HEAP32[$k>>2]|0;
$188 = (__gcry_mpi_cmp_ui($187,0)|0);
$189 = ($188|0)>(0);
if ($189) {
$217 = $7;
$218 = ($217|0)!=(0);
if (!($218)) {
break L9;
}
$219 = $7;
$220 = (($219) + -1)|0;
$7 = $220;
$221 = HEAP32[$hd>>2]|0;
$222 = $K;
$223 = $5;
$224 = (__gcry_md_setkey($221,$222,$223)|0);
$rc = $224;
$225 = $rc;
$226 = ($225|0)!=(0);
if ($226) {
break L9;
}
$227 = HEAP32[$hd>>2]|0;
$228 = $V;
$229 = $5;
__gcry_md_write($227,$228,$229);
$230 = HEAP32[$hd>>2]|0;
__gcry_md_write($230,76543,1);
$231 = $K;
$232 = HEAP32[$hd>>2]|0;
$233 = (__gcry_md_read($232,0)|0);
$234 = $5;
_memcpy(($231|0),($233|0),($234|0))|0;
$235 = HEAP32[$hd>>2]|0;
$236 = $K;
$237 = $5;
$238 = (__gcry_md_setkey($235,$236,$237)|0);
$rc = $238;
$239 = $rc;
$240 = ($239|0)!=(0);
if ($240) {
break L9;
}
$241 = HEAP32[$hd>>2]|0;
$242 = $V;
$243 = $5;
__gcry_md_write($241,$242,$243);
$244 = $V;
$245 = HEAP32[$hd>>2]|0;
$246 = (__gcry_md_read($245,0)|0);
$247 = $5;
_memcpy(($244|0),($246|0),($247|0))|0;
continue;
}
}
$190 = HEAP32[$hd>>2]|0;
$191 = $K;
$192 = $5;
$193 = (__gcry_md_setkey($190,$191,$192)|0);
$rc = $193;
$194 = $rc;
$195 = ($194|0)!=(0);
if ($195) {
break L9;
}
$196 = HEAP32[$hd>>2]|0;
$197 = $V;
$198 = $5;
__gcry_md_write($196,$197,$198);
$199 = HEAP32[$hd>>2]|0;
__gcry_md_write($199,76543,1);
$200 = $K;
$201 = HEAP32[$hd>>2]|0;
$202 = (__gcry_md_read($201,0)|0);
$203 = $5;
_memcpy(($200|0),($202|0),($203|0))|0;
$204 = HEAP32[$hd>>2]|0;
$205 = $K;
$206 = $5;
$207 = (__gcry_md_setkey($204,$205,$206)|0);
$rc = $207;
$208 = $rc;
$209 = ($208|0)!=(0);
if ($209) {
break L9;
}
$210 = HEAP32[$hd>>2]|0;
$211 = $V;
$212 = $5;
__gcry_md_write($210,$211,$212);
$213 = $V;
$214 = HEAP32[$hd>>2]|0;
$215 = (__gcry_md_read($214,0)|0);
$216 = $5;
_memcpy(($213|0),($215|0),($216|0))|0;
}
}
}
}
}
}
}
}
} else {
$24 = (_gpg_err_code_from_syserror()|0);
$rc = $24;
}
} while(0);
$248 = $t;
__gcry_free($248);
$249 = HEAP32[$hd>>2]|0;
__gcry_md_close($249);
$250 = HEAP32[$h1_buf>>2]|0;
__gcry_free($250);
$251 = HEAP32[$x_buf>>2]|0;
__gcry_free($251);
$252 = $K;
__gcry_free($252);
$253 = $V;
__gcry_free($253);
$254 = $rc;
$255 = ($254|0)!=(0);
$256 = HEAP32[$k>>2]|0;
if ($255) {
__gcry_mpi_free($256);
} else {
$257 = $1;
HEAP32[$257>>2] = $256;
}
$258 = $rc;
$0 = $258;
$259 = $0;
STACKTOP = sp;return ($259|0);
}
function _int2octets($r_frame,$value,$nbytes) {
$r_frame = $r_frame|0;
$value = $value|0;
$nbytes = $nbytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $frame = 0, $n = 0;
var $nframe = 0, $noff = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$nframe = sp + 12|0;
$1 = $r_frame;
$2 = $value;
$3 = $nbytes;
$4 = $2;
$5 = (__gcry_mpi_print(5,0,0,$nframe,$4)|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
if ($7) {
$8 = $rc;
$0 = $8;
$57 = $0;
STACKTOP = sp;return ($57|0);
}
$9 = HEAP32[$nframe>>2]|0;
$10 = $3;
$11 = ($9>>>0)>($10>>>0);
if ($11) {
$0 = 67;
$57 = $0;
STACKTOP = sp;return ($57|0);
}
$12 = HEAP32[$nframe>>2]|0;
$13 = $3;
$14 = ($12>>>0)<($13>>>0);
if ($14) {
$15 = $3;
$16 = HEAP32[$nframe>>2]|0;
$17 = (($15) - ($16))|0;
$18 = $17;
} else {
$18 = 0;
}
$noff = $18;
$19 = HEAP32[$nframe>>2]|0;
$20 = $noff;
$21 = (($19) + ($20))|0;
$n = $21;
$22 = $2;
$23 = ($22|0)!=(0|0);
if ($23) {
$24 = $2;
$25 = ((($24)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = $26 & 1;
$28 = ($27|0)!=(0);
if ($28) {
$29 = $n;
$30 = (__gcry_malloc_secure($29)|0);
$33 = $30;
} else {
label = 10;
}
} else {
label = 10;
}
if ((label|0) == 10) {
$31 = $n;
$32 = (__gcry_malloc($31)|0);
$33 = $32;
}
$frame = $33;
$34 = $frame;
$35 = ($34|0)!=(0|0);
if (!($35)) {
$36 = (_gpg_err_code_from_syserror()|0);
$0 = $36;
$57 = $0;
STACKTOP = sp;return ($57|0);
}
$37 = $noff;
$38 = ($37|0)!=(0);
if ($38) {
$39 = $frame;
$40 = $noff;
_memset(($39|0),0,($40|0))|0;
}
$41 = $noff;
$42 = HEAP32[$nframe>>2]|0;
$43 = (($42) + ($41))|0;
HEAP32[$nframe>>2] = $43;
$44 = $frame;
$45 = $noff;
$46 = (($44) + ($45)|0);
$47 = HEAP32[$nframe>>2]|0;
$48 = $noff;
$49 = (($47) - ($48))|0;
$50 = $2;
$51 = (__gcry_mpi_print(5,$46,$49,0,$50)|0);
$rc = $51;
$52 = $rc;
$53 = ($52|0)!=(0);
$54 = $frame;
if ($53) {
__gcry_free($54);
$55 = $rc;
$0 = $55;
$57 = $0;
STACKTOP = sp;return ($57|0);
} else {
$56 = $1;
HEAP32[$56>>2] = $54;
$0 = 0;
$57 = $0;
STACKTOP = sp;return ($57|0);
}
return (0)|0;
}
function _bits2octets($r_frame,$bits,$nbits,$q,$qbits) {
$r_frame = $r_frame|0;
$bits = $bits|0;
$nbits = $nbits|0;
$q = $q|0;
$qbits = $qbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc = 0, $z1 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$z1 = sp;
$1 = $r_frame;
$2 = $bits;
$3 = $nbits;
$4 = $q;
$5 = $qbits;
$6 = $2;
$7 = $3;
$8 = (($7) + 7)|0;
$9 = (($8>>>0) / 8)&-1;
$10 = (__gcry_mpi_scan($z1,5,$6,$9,0)|0);
$rc = $10;
$11 = $rc;
$12 = ($11|0)!=(0);
if ($12) {
$13 = $rc;
$0 = $13;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
$14 = $3;
$15 = $5;
$16 = ($14>>>0)>($15>>>0);
if ($16) {
$17 = HEAP32[$z1>>2]|0;
$18 = HEAP32[$z1>>2]|0;
$19 = $3;
$20 = $5;
$21 = (($19) - ($20))|0;
__gcry_mpi_rshift($17,$18,$21);
}
$22 = HEAP32[$z1>>2]|0;
$23 = $4;
$24 = (__gcry_mpi_cmp($22,$23)|0);
$25 = ($24|0)>=(0);
if ($25) {
$26 = HEAP32[$z1>>2]|0;
$27 = HEAP32[$z1>>2]|0;
$28 = $4;
__gcry_mpi_sub($26,$27,$28);
}
$29 = $1;
$30 = HEAP32[$z1>>2]|0;
$31 = $5;
$32 = (($31) + 7)|0;
$33 = (($32>>>0) / 8)&-1;
$34 = (_int2octets($29,$30,$33)|0);
$rc = $34;
$35 = HEAP32[$z1>>2]|0;
__gcry_mpi_free($35);
$36 = $rc;
$0 = $36;
$37 = $0;
STACKTOP = sp;return ($37|0);
}
function __gcry_dsa_normalize_hash($input,$out,$qbits) {
$input = $input|0;
$out = $out|0;
$qbits = $qbits|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $abits = 0, $abuf = 0, $hash = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$abits = sp + 4|0;
$hash = sp;
$1 = $input;
$2 = $out;
$3 = $qbits;
$rc = 0;
$4 = $1;
$5 = ($4|0)!=(0|0);
do {
if ($5) {
$6 = $1;
$7 = ((($6)) + 12|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 & 4;
$10 = ($9|0)!=(0);
if ($10) {
$11 = $1;
$12 = (__gcry_mpi_get_opaque($11,$abits)|0);
$abuf = $12;
$13 = $abuf;
$14 = HEAP32[$abits>>2]|0;
$15 = (($14) + 7)|0;
$16 = (($15>>>0) / 8)&-1;
$17 = (__gcry_mpi_scan($hash,5,$13,$16,0)|0);
$rc = $17;
$18 = $rc;
$19 = ($18|0)!=(0);
if ($19) {
$20 = $rc;
$0 = $20;
$33 = $0;
STACKTOP = sp;return ($33|0);
} else {
$21 = HEAP32[$abits>>2]|0;
$22 = $3;
$23 = ($21>>>0)>($22>>>0);
if (!($23)) {
break;
}
$24 = HEAP32[$hash>>2]|0;
$25 = HEAP32[$hash>>2]|0;
$26 = HEAP32[$abits>>2]|0;
$27 = $3;
$28 = (($26) - ($27))|0;
__gcry_mpi_rshift($24,$25,$28);
break;
}
} else {
label = 7;
}
} else {
label = 7;
}
} while(0);
if ((label|0) == 7) {
$29 = $1;
HEAP32[$hash>>2] = $29;
}
$30 = HEAP32[$hash>>2]|0;
$31 = $2;
HEAP32[$31>>2] = $30;
$32 = $rc;
$0 = $32;
$33 = $0;
STACKTOP = sp;return ($33|0);
}
function __gcry_ecc_ecdsa_sign($input,$skey,$r,$s,$flags,$hashalgo) {
$input = $input|0;
$skey = $skey|0;
$r = $r|0;
$s = $s|0;
$flags = $flags|0;
$hashalgo = $hashalgo|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0;
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0;
var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0;
var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $I = 0;
var $abits = 0, $abuf = 0, $ctx = 0, $dr = 0, $extraloops = 0, $hash = 0, $k = 0, $k_1 = 0, $or$cond = 0, $qbits = 0, $rc = 0, $sum = 0, $vararg_buffer = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$k = sp + 52|0;
$I = sp + 24|0;
$hash = sp + 20|0;
$abits = sp + 12|0;
$1 = $input;
$2 = $skey;
$3 = $r;
$4 = $s;
$5 = $flags;
$6 = $hashalgo;
$rc = 0;
$extraloops = 0;
$7 = (__gcry_get_debug_flag(1)|0);
$8 = ($7|0)!=(0);
if ($8) {
$9 = $1;
__gcry_log_printmpi(53154,$9);
}
$10 = $2;
$11 = ((($10)) + 32|0);
$12 = HEAP32[$11>>2]|0;
$13 = (__gcry_mpi_get_nbits($12)|0);
$qbits = $13;
$14 = $1;
$15 = $qbits;
$16 = (__gcry_dsa_normalize_hash($14,$hash,$15)|0);
$rc = $16;
$17 = $rc;
$18 = ($17|0)!=(0);
if ($18) {
$19 = $rc;
$0 = $19;
$138 = $0;
STACKTOP = sp;return ($138|0);
}
HEAP32[$k>>2] = 0;
$20 = (__gcry_mpi_alloc(0)|0);
$dr = $20;
$21 = (__gcry_mpi_alloc(0)|0);
$sum = $21;
$22 = (__gcry_mpi_alloc(0)|0);
$k_1 = $22;
$23 = (__gcry_mpi_alloc(0)|0);
$x = $23;
__gcry_mpi_point_init($I);
$24 = $2;
$25 = HEAP32[$24>>2]|0;
$26 = $2;
$27 = ((($26)) + 4|0);
$28 = HEAP32[$27>>2]|0;
$29 = $2;
$30 = ((($29)) + 8|0);
$31 = HEAP32[$30>>2]|0;
$32 = $2;
$33 = ((($32)) + 12|0);
$34 = HEAP32[$33>>2]|0;
$35 = $2;
$36 = ((($35)) + 16|0);
$37 = HEAP32[$36>>2]|0;
$38 = (__gcry_mpi_ec_p_internal_new($25,$28,0,$31,$34,$37)|0);
$ctx = $38;
while(1) {
$39 = HEAP32[$k>>2]|0;
__gcry_mpi_free($39);
HEAP32[$k>>2] = 0;
$40 = $5;
$41 = $40 & 2;
$42 = ($41|0)!=(0);
$43 = $6;
$44 = ($43|0)!=(0);
$or$cond = $42 & $44;
if ($or$cond) {
$45 = $1;
$46 = ($45|0)!=(0|0);
if (!($46)) {
label = 9;
break;
}
$47 = $1;
$48 = ((($47)) + 12|0);
$49 = HEAP32[$48>>2]|0;
$50 = $49 & 4;
$51 = ($50|0)!=(0);
if (!($51)) {
label = 9;
break;
}
$52 = $1;
$53 = (__gcry_mpi_get_opaque($52,$abits)|0);
$abuf = $53;
$54 = $2;
$55 = ((($54)) + 32|0);
$56 = HEAP32[$55>>2]|0;
$57 = $2;
$58 = ((($57)) + 56|0);
$59 = HEAP32[$58>>2]|0;
$60 = $abuf;
$61 = HEAP32[$abits>>2]|0;
$62 = (($61) + 7)|0;
$63 = (($62>>>0) / 8)&-1;
$64 = $6;
$65 = $extraloops;
$66 = (__gcry_dsa_gen_rfc6979_k($k,$56,$59,$60,$63,$64,$65)|0);
$rc = $66;
$67 = $rc;
$68 = ($67|0)!=(0);
if ($68) {
break;
}
$69 = $extraloops;
$70 = (($69) + 1)|0;
$extraloops = $70;
} else {
$71 = $2;
$72 = ((($71)) + 32|0);
$73 = HEAP32[$72>>2]|0;
$74 = (__gcry_dsa_gen_k($73,1)|0);
HEAP32[$k>>2] = $74;
}
$75 = HEAP32[$k>>2]|0;
$76 = $2;
$77 = ((($76)) + 20|0);
$78 = $ctx;
__gcry_mpi_ec_mul_point($I,$75,$77,$78);
$79 = $x;
$80 = $ctx;
$81 = (__gcry_mpi_ec_get_affine($79,0,$I,$80)|0);
$82 = ($81|0)!=(0);
if ($82) {
label = 14;
break;
}
$85 = $3;
$86 = $x;
$87 = $2;
$88 = ((($87)) + 32|0);
$89 = HEAP32[$88>>2]|0;
__gcry_mpi_mod($85,$86,$89);
$90 = $3;
$91 = (__gcry_mpi_cmp_ui($90,0)|0);
$92 = ($91|0)!=(0);
$93 = $92 ^ 1;
if ($93) {
continue;
}
$94 = $dr;
$95 = $2;
$96 = ((($95)) + 56|0);
$97 = HEAP32[$96>>2]|0;
$98 = $3;
$99 = $2;
$100 = ((($99)) + 32|0);
$101 = HEAP32[$100>>2]|0;
__gcry_mpi_mulm($94,$97,$98,$101);
$102 = $sum;
$103 = HEAP32[$hash>>2]|0;
$104 = $dr;
$105 = $2;
$106 = ((($105)) + 32|0);
$107 = HEAP32[$106>>2]|0;
__gcry_mpi_addm($102,$103,$104,$107);
$108 = $k_1;
$109 = HEAP32[$k>>2]|0;
$110 = $2;
$111 = ((($110)) + 32|0);
$112 = HEAP32[$111>>2]|0;
(__gcry_mpi_invm($108,$109,$112)|0);
$113 = $4;
$114 = $k_1;
$115 = $sum;
$116 = $2;
$117 = ((($116)) + 32|0);
$118 = HEAP32[$117>>2]|0;
__gcry_mpi_mulm($113,$114,$115,$118);
$119 = $4;
$120 = (__gcry_mpi_cmp_ui($119,0)|0);
$121 = ($120|0)!=(0);
$122 = $121 ^ 1;
if (!($122)) {
label = 19;
break;
}
}
if ((label|0) == 9) {
$rc = 70;
}
else if ((label|0) == 14) {
$83 = (__gcry_get_debug_flag(1)|0);
$84 = ($83|0)!=(0);
if ($84) {
__gcry_log_debug(53231,$vararg_buffer);
}
$rc = 8;
}
else if ((label|0) == 19) {
$123 = (__gcry_get_debug_flag(1)|0);
$124 = ($123|0)!=(0);
if ($124) {
$125 = $3;
__gcry_log_printmpi(53172,$125);
$126 = $4;
__gcry_log_printmpi(53193,$126);
}
}
$127 = $ctx;
__gcry_mpi_ec_free($127);
__gcry_mpi_point_free_parts($I);
$128 = $x;
__gcry_mpi_free($128);
$129 = $k_1;
__gcry_mpi_free($129);
$130 = $sum;
__gcry_mpi_free($130);
$131 = $dr;
__gcry_mpi_free($131);
$132 = HEAP32[$k>>2]|0;
__gcry_mpi_free($132);
$133 = HEAP32[$hash>>2]|0;
$134 = $1;
$135 = ($133|0)!=($134|0);
if ($135) {
$136 = HEAP32[$hash>>2]|0;
__gcry_mpi_free($136);
}
$137 = $rc;
$0 = $137;
$138 = $0;
STACKTOP = sp;return ($138|0);
}
function __gcry_ecc_ecdsa_verify($input,$pkey,$r,$s) {
$input = $input|0;
$pkey = $pkey|0;
$r = $r|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $12 = 0;
var $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $Q = 0, $Q1 = 0, $Q2 = 0, $ctx = 0, $err = 0;
var $h = 0, $h1 = 0, $h2 = 0, $hash = 0, $nbits = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$hash = sp + 72|0;
$Q = sp + 44|0;
$Q1 = sp + 32|0;
$Q2 = sp + 20|0;
$1 = $input;
$2 = $pkey;
$3 = $r;
$4 = $s;
$err = 0;
$5 = $3;
$6 = (__gcry_mpi_cmp_ui($5,0)|0);
$7 = ($6|0)>(0);
if ($7) {
$8 = $3;
$9 = $2;
$10 = ((($9)) + 32|0);
$11 = HEAP32[$10>>2]|0;
$12 = (__gcry_mpi_cmp($8,$11)|0);
$13 = ($12|0)<(0);
if ($13) {
$14 = $4;
$15 = (__gcry_mpi_cmp_ui($14,0)|0);
$16 = ($15|0)>(0);
if ($16) {
$17 = $4;
$18 = $2;
$19 = ((($18)) + 32|0);
$20 = HEAP32[$19>>2]|0;
$21 = (__gcry_mpi_cmp($17,$20)|0);
$22 = ($21|0)<(0);
if ($22) {
$23 = $2;
$24 = ((($23)) + 32|0);
$25 = HEAP32[$24>>2]|0;
$26 = (__gcry_mpi_get_nbits($25)|0);
$nbits = $26;
$27 = $1;
$28 = $nbits;
$29 = (__gcry_dsa_normalize_hash($27,$hash,$28)|0);
$err = $29;
$30 = $err;
$31 = ($30|0)!=(0);
if ($31) {
$32 = $err;
$0 = $32;
$114 = $0;
STACKTOP = sp;return ($114|0);
}
$33 = (__gcry_mpi_alloc(0)|0);
$h = $33;
$34 = (__gcry_mpi_alloc(0)|0);
$h1 = $34;
$35 = (__gcry_mpi_alloc(0)|0);
$h2 = $35;
$36 = (__gcry_mpi_alloc(0)|0);
$x = $36;
__gcry_mpi_point_init($Q);
__gcry_mpi_point_init($Q1);
__gcry_mpi_point_init($Q2);
$37 = $2;
$38 = HEAP32[$37>>2]|0;
$39 = $2;
$40 = ((($39)) + 4|0);
$41 = HEAP32[$40>>2]|0;
$42 = $2;
$43 = ((($42)) + 8|0);
$44 = HEAP32[$43>>2]|0;
$45 = $2;
$46 = ((($45)) + 12|0);
$47 = HEAP32[$46>>2]|0;
$48 = $2;
$49 = ((($48)) + 16|0);
$50 = HEAP32[$49>>2]|0;
$51 = (__gcry_mpi_ec_p_internal_new($38,$41,0,$44,$47,$50)|0);
$ctx = $51;
$52 = $h;
$53 = $4;
$54 = $2;
$55 = ((($54)) + 32|0);
$56 = HEAP32[$55>>2]|0;
(__gcry_mpi_invm($52,$53,$56)|0);
$57 = $h1;
$58 = HEAP32[$hash>>2]|0;
$59 = $h;
$60 = $2;
$61 = ((($60)) + 32|0);
$62 = HEAP32[$61>>2]|0;
__gcry_mpi_mulm($57,$58,$59,$62);
$63 = $h1;
$64 = $2;
$65 = ((($64)) + 20|0);
$66 = $ctx;
__gcry_mpi_ec_mul_point($Q1,$63,$65,$66);
$67 = $h2;
$68 = $3;
$69 = $h;
$70 = $2;
$71 = ((($70)) + 32|0);
$72 = HEAP32[$71>>2]|0;
__gcry_mpi_mulm($67,$68,$69,$72);
$73 = $h2;
$74 = $2;
$75 = ((($74)) + 44|0);
$76 = $ctx;
__gcry_mpi_ec_mul_point($Q2,$73,$75,$76);
$77 = $ctx;
__gcry_mpi_ec_add_points($Q,$Q1,$Q2,$77);
$78 = ((($Q)) + 8|0);
$79 = HEAP32[$78>>2]|0;
$80 = (__gcry_mpi_cmp_ui($79,0)|0);
$81 = ($80|0)!=(0);
do {
if ($81) {
$84 = $x;
$85 = $ctx;
$86 = (__gcry_mpi_ec_get_affine($84,0,$Q,$85)|0);
$87 = ($86|0)!=(0);
if ($87) {
$88 = (__gcry_get_debug_flag(1)|0);
$89 = ($88|0)!=(0);
if ($89) {
__gcry_log_debug(53337,$vararg_buffer1);
}
$err = 8;
break;
}
$90 = $x;
$91 = $x;
$92 = $2;
$93 = ((($92)) + 32|0);
$94 = HEAP32[$93>>2]|0;
__gcry_mpi_mod($90,$91,$94);
$95 = $x;
$96 = $3;
$97 = (__gcry_mpi_cmp($95,$96)|0);
$98 = ($97|0)!=(0);
if ($98) {
$99 = (__gcry_get_debug_flag(1)|0);
$100 = ($99|0)!=(0);
if ($100) {
$101 = $x;
__gcry_log_printmpi(53383,$101);
$102 = $3;
__gcry_log_printmpi(53390,$102);
$103 = $4;
__gcry_log_printmpi(53397,$103);
}
$err = 8;
}
} else {
$82 = (__gcry_get_debug_flag(1)|0);
$83 = ($82|0)!=(0);
if ($83) {
__gcry_log_debug(53315,$vararg_buffer);
}
$err = 8;
}
} while(0);
$104 = $ctx;
__gcry_mpi_ec_free($104);
__gcry_mpi_point_free_parts($Q2);
__gcry_mpi_point_free_parts($Q1);
__gcry_mpi_point_free_parts($Q);
$105 = $x;
__gcry_mpi_free($105);
$106 = $h2;
__gcry_mpi_free($106);
$107 = $h1;
__gcry_mpi_free($107);
$108 = $h;
__gcry_mpi_free($108);
$109 = HEAP32[$hash>>2]|0;
$110 = $1;
$111 = ($109|0)!=($110|0);
if ($111) {
$112 = HEAP32[$hash>>2]|0;
__gcry_mpi_free($112);
}
$113 = $err;
$0 = $113;
$114 = $0;
STACKTOP = sp;return ($114|0);
}
}
$0 = 8;
$114 = $0;
STACKTOP = sp;return ($114|0);
}
}
$0 = 8;
$114 = $0;
STACKTOP = sp;return ($114|0);
}
function __gcry_ecc_gost_sign($input,$skey,$r,$s) {
$input = $input|0;
$skey = $skey|0;
$r = $r|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0;
var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0;
var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0;
var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0;
var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0;
var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $I = 0, $abits = 0, $abuf = 0, $ctx = 0, $dr = 0, $e = 0, $hash = 0, $k = 0;
var $ke = 0, $qbits = 0, $rc = 0, $sum = 0, $vararg_buffer = 0, $x = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$I = sp + 24|0;
$hash = sp + 20|0;
$abits = sp + 12|0;
$1 = $input;
$2 = $skey;
$3 = $r;
$4 = $s;
$rc = 0;
$5 = (__gcry_get_debug_flag(1)|0);
$6 = ($5|0)!=(0);
if ($6) {
$7 = $1;
__gcry_log_printmpi(53214,$7);
}
$8 = $2;
$9 = ((($8)) + 32|0);
$10 = HEAP32[$9>>2]|0;
$11 = (__gcry_mpi_get_nbits($10)|0);
$qbits = $11;
$12 = $1;
$13 = ($12|0)!=(0|0);
do {
if ($13) {
$14 = $1;
$15 = ((($14)) + 12|0);
$16 = HEAP32[$15>>2]|0;
$17 = $16 & 4;
$18 = ($17|0)!=(0);
if ($18) {
$19 = $1;
$20 = (__gcry_mpi_get_opaque($19,$abits)|0);
$abuf = $20;
$21 = $abuf;
$22 = HEAP32[$abits>>2]|0;
$23 = (($22) + 7)|0;
$24 = (($23>>>0) / 8)&-1;
$25 = (__gcry_mpi_scan($hash,5,$21,$24,0)|0);
$rc = $25;
$26 = $rc;
$27 = ($26|0)!=(0);
if ($27) {
$28 = $rc;
$0 = $28;
$131 = $0;
STACKTOP = sp;return ($131|0);
} else {
$29 = HEAP32[$abits>>2]|0;
$30 = $qbits;
$31 = ($29>>>0)>($30>>>0);
if (!($31)) {
break;
}
$32 = HEAP32[$hash>>2]|0;
$33 = HEAP32[$hash>>2]|0;
$34 = HEAP32[$abits>>2]|0;
$35 = $qbits;
$36 = (($34) - ($35))|0;
__gcry_mpi_rshift($32,$33,$36);
break;
}
} else {
label = 9;
}
} else {
label = 9;
}
} while(0);
if ((label|0) == 9) {
$37 = $1;
HEAP32[$hash>>2] = $37;
}
$k = 0;
$38 = (__gcry_mpi_alloc(0)|0);
$dr = $38;
$39 = (__gcry_mpi_alloc(0)|0);
$sum = $39;
$40 = (__gcry_mpi_alloc(0)|0);
$ke = $40;
$41 = (__gcry_mpi_alloc(0)|0);
$e = $41;
$42 = (__gcry_mpi_alloc(0)|0);
$x = $42;
__gcry_mpi_point_init($I);
$43 = $2;
$44 = HEAP32[$43>>2]|0;
$45 = $2;
$46 = ((($45)) + 4|0);
$47 = HEAP32[$46>>2]|0;
$48 = $2;
$49 = ((($48)) + 8|0);
$50 = HEAP32[$49>>2]|0;
$51 = $2;
$52 = ((($51)) + 12|0);
$53 = HEAP32[$52>>2]|0;
$54 = $2;
$55 = ((($54)) + 16|0);
$56 = HEAP32[$55>>2]|0;
$57 = (__gcry_mpi_ec_p_internal_new($44,$47,0,$50,$53,$56)|0);
$ctx = $57;
$58 = $e;
$59 = $1;
$60 = $2;
$61 = ((($60)) + 32|0);
$62 = HEAP32[$61>>2]|0;
__gcry_mpi_mod($58,$59,$62);
$63 = $e;
$64 = (__gcry_mpi_cmp_ui($63,0)|0);
$65 = ($64|0)!=(0);
if (!($65)) {
$66 = $e;
(__gcry_mpi_set_ui($66,1)|0);
}
while(1) {
$67 = $k;
__gcry_mpi_free($67);
$68 = $2;
$69 = ((($68)) + 32|0);
$70 = HEAP32[$69>>2]|0;
$71 = (__gcry_dsa_gen_k($70,1)|0);
$k = $71;
$72 = $k;
$73 = $2;
$74 = ((($73)) + 20|0);
$75 = $ctx;
__gcry_mpi_ec_mul_point($I,$72,$74,$75);
$76 = $x;
$77 = $ctx;
$78 = (__gcry_mpi_ec_get_affine($76,0,$I,$77)|0);
$79 = ($78|0)!=(0);
if ($79) {
label = 13;
break;
}
$82 = $3;
$83 = $x;
$84 = $2;
$85 = ((($84)) + 32|0);
$86 = HEAP32[$85>>2]|0;
__gcry_mpi_mod($82,$83,$86);
$87 = $3;
$88 = (__gcry_mpi_cmp_ui($87,0)|0);
$89 = ($88|0)!=(0);
$90 = $89 ^ 1;
if ($90) {
continue;
}
$91 = $dr;
$92 = $2;
$93 = ((($92)) + 56|0);
$94 = HEAP32[$93>>2]|0;
$95 = $3;
$96 = $2;
$97 = ((($96)) + 32|0);
$98 = HEAP32[$97>>2]|0;
__gcry_mpi_mulm($91,$94,$95,$98);
$99 = $ke;
$100 = $k;
$101 = $e;
$102 = $2;
$103 = ((($102)) + 32|0);
$104 = HEAP32[$103>>2]|0;
__gcry_mpi_mulm($99,$100,$101,$104);
$105 = $4;
$106 = $ke;
$107 = $dr;
$108 = $2;
$109 = ((($108)) + 32|0);
$110 = HEAP32[$109>>2]|0;
__gcry_mpi_addm($105,$106,$107,$110);
$111 = $4;
$112 = (__gcry_mpi_cmp_ui($111,0)|0);
$113 = ($112|0)!=(0);
$114 = $113 ^ 1;
if (!($114)) {
label = 18;
break;
}
}
if ((label|0) == 13) {
$80 = (__gcry_get_debug_flag(1)|0);
$81 = ($80|0)!=(0);
if ($81) {
__gcry_log_debug(53231,$vararg_buffer);
}
$rc = 8;
}
else if ((label|0) == 18) {
$115 = (__gcry_get_debug_flag(1)|0);
$116 = ($115|0)!=(0);
if ($116) {
$117 = $3;
__gcry_log_printmpi(53275,$117);
$118 = $4;
__gcry_log_printmpi(53295,$118);
}
}
$119 = $ctx;
__gcry_mpi_ec_free($119);
__gcry_mpi_point_free_parts($I);
$120 = $x;
__gcry_mpi_free($120);
$121 = $e;
__gcry_mpi_free($121);
$122 = $ke;
__gcry_mpi_free($122);
$123 = $sum;
__gcry_mpi_free($123);
$124 = $dr;
__gcry_mpi_free($124);
$125 = $k;
__gcry_mpi_free($125);
$126 = HEAP32[$hash>>2]|0;
$127 = $1;
$128 = ($126|0)!=($127|0);
if ($128) {
$129 = HEAP32[$hash>>2]|0;
__gcry_mpi_free($129);
}
$130 = $rc;
$0 = $130;
$131 = $0;
STACKTOP = sp;return ($131|0);
}
function __gcry_ecc_gost_verify($input,$pkey,$r,$s) {
$input = $input|0;
$pkey = $pkey|0;
$r = $r|0;
$s = $s|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0;
var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $Q = 0, $Q1 = 0, $Q2 = 0, $ctx = 0, $e = 0, $err = 0, $rv = 0, $v = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $x = 0, $z1 = 0, $z2 = 0, $zero = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer5 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$Q = sp + 56|0;
$Q1 = sp + 44|0;
$Q2 = sp + 32|0;
$1 = $input;
$2 = $pkey;
$3 = $r;
$4 = $s;
$err = 0;
$5 = $3;
$6 = (__gcry_mpi_cmp_ui($5,0)|0);
$7 = ($6|0)>(0);
if ($7) {
$8 = $3;
$9 = $2;
$10 = ((($9)) + 32|0);
$11 = HEAP32[$10>>2]|0;
$12 = (__gcry_mpi_cmp($8,$11)|0);
$13 = ($12|0)<(0);
if ($13) {
$14 = $4;
$15 = (__gcry_mpi_cmp_ui($14,0)|0);
$16 = ($15|0)>(0);
if ($16) {
$17 = $4;
$18 = $2;
$19 = ((($18)) + 32|0);
$20 = HEAP32[$19>>2]|0;
$21 = (__gcry_mpi_cmp($17,$20)|0);
$22 = ($21|0)<(0);
if ($22) {
$23 = (__gcry_mpi_alloc(0)|0);
$x = $23;
$24 = (__gcry_mpi_alloc(0)|0);
$e = $24;
$25 = (__gcry_mpi_alloc(0)|0);
$z1 = $25;
$26 = (__gcry_mpi_alloc(0)|0);
$z2 = $26;
$27 = (__gcry_mpi_alloc(0)|0);
$v = $27;
$28 = (__gcry_mpi_alloc(0)|0);
$rv = $28;
$29 = (__gcry_mpi_alloc(0)|0);
$zero = $29;
__gcry_mpi_point_init($Q);
__gcry_mpi_point_init($Q1);
__gcry_mpi_point_init($Q2);
$30 = $2;
$31 = HEAP32[$30>>2]|0;
$32 = $2;
$33 = ((($32)) + 4|0);
$34 = HEAP32[$33>>2]|0;
$35 = $2;
$36 = ((($35)) + 8|0);
$37 = HEAP32[$36>>2]|0;
$38 = $2;
$39 = ((($38)) + 12|0);
$40 = HEAP32[$39>>2]|0;
$41 = $2;
$42 = ((($41)) + 16|0);
$43 = HEAP32[$42>>2]|0;
$44 = (__gcry_mpi_ec_p_internal_new($31,$34,0,$37,$40,$43)|0);
$ctx = $44;
$45 = $e;
$46 = $1;
$47 = $2;
$48 = ((($47)) + 32|0);
$49 = HEAP32[$48>>2]|0;
__gcry_mpi_mod($45,$46,$49);
$50 = $e;
$51 = (__gcry_mpi_cmp_ui($50,0)|0);
$52 = ($51|0)!=(0);
if (!($52)) {
$53 = $e;
(__gcry_mpi_set_ui($53,1)|0);
}
$54 = $v;
$55 = $e;
$56 = $2;
$57 = ((($56)) + 32|0);
$58 = HEAP32[$57>>2]|0;
(__gcry_mpi_invm($54,$55,$58)|0);
$59 = $z1;
$60 = $4;
$61 = $v;
$62 = $2;
$63 = ((($62)) + 32|0);
$64 = HEAP32[$63>>2]|0;
__gcry_mpi_mulm($59,$60,$61,$64);
$65 = $rv;
$66 = $3;
$67 = $v;
$68 = $2;
$69 = ((($68)) + 32|0);
$70 = HEAP32[$69>>2]|0;
__gcry_mpi_mulm($65,$66,$67,$70);
$71 = $z2;
$72 = $zero;
$73 = $rv;
$74 = $2;
$75 = ((($74)) + 32|0);
$76 = HEAP32[$75>>2]|0;
__gcry_mpi_subm($71,$72,$73,$76);
$77 = $z1;
$78 = $2;
$79 = ((($78)) + 20|0);
$80 = $ctx;
__gcry_mpi_ec_mul_point($Q1,$77,$79,$80);
$81 = $z2;
$82 = $2;
$83 = ((($82)) + 44|0);
$84 = $ctx;
__gcry_mpi_ec_mul_point($Q2,$81,$83,$84);
$85 = $ctx;
__gcry_mpi_ec_add_points($Q,$Q1,$Q2,$85);
$86 = ((($Q)) + 8|0);
$87 = HEAP32[$86>>2]|0;
$88 = (__gcry_mpi_cmp_ui($87,0)|0);
$89 = ($88|0)!=(0);
do {
if ($89) {
$92 = $x;
$93 = $ctx;
$94 = (__gcry_mpi_ec_get_affine($92,0,$Q,$93)|0);
$95 = ($94|0)!=(0);
if ($95) {
$96 = (__gcry_get_debug_flag(1)|0);
$97 = ($96|0)!=(0);
if ($97) {
__gcry_log_debug(53337,$vararg_buffer1);
}
$err = 8;
break;
}
$98 = $x;
$99 = $x;
$100 = $2;
$101 = ((($100)) + 32|0);
$102 = HEAP32[$101>>2]|0;
__gcry_mpi_mod($98,$99,$102);
$103 = $x;
$104 = $3;
$105 = (__gcry_mpi_cmp($103,$104)|0);
$106 = ($105|0)!=(0);
$107 = (__gcry_get_debug_flag(1)|0);
$108 = ($107|0)!=(0);
if (!($106)) {
if (!($108)) {
break;
}
__gcry_log_debug(53430,$vararg_buffer5);
break;
}
if ($108) {
$109 = $x;
__gcry_log_printmpi(53383,$109);
$110 = $3;
__gcry_log_printmpi(53390,$110);
$111 = $4;
__gcry_log_printmpi(53397,$111);
__gcry_log_debug(53404,$vararg_buffer3);
}
$err = 8;
} else {
$90 = (__gcry_get_debug_flag(1)|0);
$91 = ($90|0)!=(0);
if ($91) {
__gcry_log_debug(53315,$vararg_buffer);
}
$err = 8;
}
} while(0);
$112 = $ctx;
__gcry_mpi_ec_free($112);
__gcry_mpi_point_free_parts($Q2);
__gcry_mpi_point_free_parts($Q1);
__gcry_mpi_point_free_parts($Q);
$113 = $zero;
__gcry_mpi_free($113);
$114 = $rv;
__gcry_mpi_free($114);
$115 = $v;
__gcry_mpi_free($115);
$116 = $z2;
__gcry_mpi_free($116);
$117 = $z1;
__gcry_mpi_free($117);
$118 = $x;
__gcry_mpi_free($118);
$119 = $e;
__gcry_mpi_free($119);
$120 = $err;
$0 = $120;
$121 = $0;
STACKTOP = sp;return ($121|0);
}
}
$0 = 8;
$121 = $0;
STACKTOP = sp;return ($121|0);
}
}
$0 = 8;
$121 = $0;
STACKTOP = sp;return ($121|0);
}
function _gpg_err_init() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gpg_err_init()|0);
return ($0|0);
}
function _gpg_strerror($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (__gpg_strerror($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_code_from_errno($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (__gpg_err_code_from_errno($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_code_to_errno($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = (__gpg_err_code_to_errno($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpg_err_code_from_syserror() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__gpg_err_code_from_syserror()|0);
return ($0|0);
}
function _gpg_err_set_errno($err) {
$err = $err|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
__gpg_err_set_errno($1);
STACKTOP = sp;return;
}
function _gpgrt_lock_init($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$2 = (__gpgrt_lock_init($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpgrt_lock_lock($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$2 = (__gpgrt_lock_lock($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpgrt_lock_unlock($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$2 = (__gpgrt_lock_unlock($1)|0);
STACKTOP = sp;return ($2|0);
}
function _gpgrt_lock_destroy($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$2 = (__gpgrt_lock_destroy($1)|0);
STACKTOP = sp;return ($2|0);
}
function __gpgrt_lock_init($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $lock = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$lock = $1;
$2 = $lock;
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(0);
if ($4) {
$6 = $0;
$7 = (_get_lock_object($6)|0);
$lock = $7;
} else {
$5 = $lock;
HEAP32[$5>>2] = 1;
}
$8 = $lock;
$9 = ((($8)) + 4|0);
$10 = (_pthread_mutex_init(($9|0),(0|0))|0);
$rc = $10;
$11 = $rc;
$12 = ($11|0)!=(0);
if (!($12)) {
$15 = $rc;
STACKTOP = sp;return ($15|0);
}
$13 = $rc;
$14 = (_gpg_err_code_from_errno($13)|0);
$rc = $14;
$15 = $rc;
STACKTOP = sp;return ($15|0);
}
function _get_lock_object($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $lock = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$lock = $1;
$2 = $lock;
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)!=(1);
if ($4) {
___assert_fail((53452|0),(53472|0),114,(53485|0));
// unreachable;
} else {
$5 = $lock;
STACKTOP = sp;return ($5|0);
}
return (0)|0;
}
function __gpgrt_lock_lock($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $lock = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$2 = (_get_lock_object($1)|0);
$lock = $2;
$3 = $lock;
$4 = ((($3)) + 4|0);
$5 = (_pthread_mutex_lock(($4|0))|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
if (!($7)) {
$10 = $rc;
STACKTOP = sp;return ($10|0);
}
$8 = $rc;
$9 = (_gpg_err_code_from_errno($8)|0);
$rc = $9;
$10 = $rc;
STACKTOP = sp;return ($10|0);
}
function __gpgrt_lock_unlock($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $lock = 0, $rc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $lockhd;
$1 = $0;
$2 = (_get_lock_object($1)|0);
$lock = $2;
$3 = $lock;
$4 = ((($3)) + 4|0);
$5 = (_pthread_mutex_unlock(($4|0))|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
if (!($7)) {
$10 = $rc;
STACKTOP = sp;return ($10|0);
}
$8 = $rc;
$9 = (_gpg_err_code_from_errno($8)|0);
$rc = $9;
$10 = $rc;
STACKTOP = sp;return ($10|0);
}
function __gpgrt_lock_destroy($lockhd) {
$lockhd = $lockhd|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $lock = 0, $rc = 0, $tmp = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$tmp = sp;
$0 = $lockhd;
$1 = $0;
$2 = (_get_lock_object($1)|0);
$lock = $2;
$3 = $lock;
$4 = ((($3)) + 4|0);
$5 = (_pthread_mutex_destroy(($4|0))|0);
$rc = $5;
$6 = $rc;
$7 = ($6|0)!=(0);
if ($7) {
$8 = $rc;
$9 = (_gpg_err_code_from_errno($8)|0);
$rc = $9;
$11 = $rc;
STACKTOP = sp;return ($11|0);
} else {
dest=$tmp; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
HEAP32[$tmp>>2] = 1;
$10 = $0;
dest=$10; src=$tmp; stop=dest+44|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$11 = $rc;
STACKTOP = sp;return ($11|0);
}
return (0)|0;
}
function __gpg_err_init() {
var label = 0, sp = 0;
sp = STACKTOP;
_real_init();
return 0;
}
function _real_init() {
var label = 0, sp = 0;
sp = STACKTOP;
(__gpgrt_es_init()|0);
return;
}
function __gpg_err_set_errno($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = (___errno_location()|0);
HEAP32[$2>>2] = $1;
STACKTOP = sp;return;
}
function __gpgrt_es_init() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17776]|0;
$1 = ($0|0)!=(0);
if ($1) {
return 0;
}
HEAP32[17776] = 1;
(_atexit((84|0))|0);
return 0;
}
function _do_deinit() {
var label = 0, sp = 0;
sp = STACKTOP;
(__gpgrt_fflush(0)|0);
HEAP32[17778] = 0;
HEAP32[17779] = 0;
return;
}
function __gpgrt_fflush($stream) {
$stream = $stream|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $item = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $stream;
$1 = $0;
$2 = ($1|0)!=(0|0);
if ($2) {
$3 = $0;
_lock_stream($3);
$4 = $0;
$5 = (_do_fflush($4)|0);
$err = $5;
$6 = $0;
_unlock_stream($6);
$28 = $err;
$29 = ($28|0)!=(0);
$30 = $29 ? -1 : 0;
STACKTOP = sp;return ($30|0);
}
$err = 0;
_lock_list();
$7 = HEAP32[17777]|0;
$item = $7;
while(1) {
$8 = $item;
$9 = ($8|0)!=(0|0);
if (!($9)) {
break;
}
$10 = $item;
$11 = ((($10)) + 4|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)!=(0|0);
if ($13) {
$14 = $item;
$15 = ((($14)) + 4|0);
$16 = HEAP32[$15>>2]|0;
_lock_stream($16);
$17 = $item;
$18 = ((($17)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = (_do_fflush($19)|0);
$21 = $err;
$22 = $21 | $20;
$err = $22;
$23 = $item;
$24 = ((($23)) + 4|0);
$25 = HEAP32[$24>>2]|0;
_unlock_stream($25);
}
$26 = $item;
$27 = HEAP32[$26>>2]|0;
$item = $27;
}
_unlock_list();
$28 = $err;
$29 = ($28|0)!=(0);
$30 = $29 ? -1 : 0;
STACKTOP = sp;return ($30|0);
}
function _lock_stream($stream) {
$stream = $stream|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $stream;
$1 = $0;
$2 = ((($1)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 1140|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5&255) >>> 5;
$7 = $6 & 1;
$8 = $7&255;
$9 = ($8|0)!=(0);
if ($9) {
STACKTOP = sp;return;
}
$10 = $0;
$11 = ((($10)) + 36|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 1040|0);
(__gpgrt_lock_lock($13)|0);
STACKTOP = sp;return;
}
function _do_fflush($stream) {
$stream = $stream|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $err = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $stream;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = $2 >>> 16;
$4 = $3 & 1;
$5 = ($4|0)!=(0);
$6 = $0;
if ($5) {
$7 = (_es_flush($6)|0);
$err = $7;
$8 = $err;
STACKTOP = sp;return ($8|0);
} else {
_es_empty($6);
$err = 0;
$8 = $err;
STACKTOP = sp;return ($8|0);
}
return (0)|0;
}
function _es_flush($stream) {
$stream = $stream|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $bytes_written = 0, $data_flushed = 0, $err = 0, $func_write = 0, $ret = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $stream;
$1 = $0;
$2 = ((($1)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 1108|0);
$5 = HEAP32[$4>>2]|0;
$func_write = $5;
$6 = $0;
$7 = HEAP32[$6>>2]|0;
$8 = $7 >>> 16;
$9 = $8 & 1;
$10 = ($9|0)!=(0);
if (!($10)) {
___assert_fail((53501|0),(53523|0),1654,(53533|0));
// unreachable;
}
$11 = $0;
$12 = ((($11)) + 16|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)!=(0);
do {
if ($14) {
$15 = $func_write;
$16 = ($15|0)!=(0|0);
if (!($16)) {
$err = 95;
break;
}
$data_flushed = 0;
$err = 0;
while(1) {
$17 = $0;
$18 = ((($17)) + 16|0);
$19 = HEAP32[$18>>2]|0;
$20 = $data_flushed;
$21 = (($19) - ($20))|0;
$22 = ($21|0)>(0);
if (!($22)) {
break;
}
$23 = $err;
$24 = ($23|0)!=(0);
$25 = $24 ^ 1;
if (!($25)) {
break;
}
$26 = $func_write;
$27 = $0;
$28 = ((($27)) + 36|0);
$29 = HEAP32[$28>>2]|0;
$30 = ((($29)) + 1084|0);
$31 = HEAP32[$30>>2]|0;
$32 = $0;
$33 = ((($32)) + 4|0);
$34 = HEAP32[$33>>2]|0;
$35 = $data_flushed;
$36 = (($34) + ($35)|0);
$37 = $0;
$38 = ((($37)) + 16|0);
$39 = HEAP32[$38>>2]|0;
$40 = $data_flushed;
$41 = (($39) - ($40))|0;
$42 = (FUNCTION_TABLE_iiii[$26 & 127]($31,$36,$41)|0);
$ret = $42;
$43 = $ret;
$44 = ($43|0)==(-1);
if ($44) {
$bytes_written = 0;
$err = -1;
} else {
$45 = $ret;
$bytes_written = $45;
}
$46 = $bytes_written;
$47 = $data_flushed;
$48 = (($47) + ($46))|0;
$data_flushed = $48;
$49 = $err;
$50 = ($49|0)!=(0);
if ($50) {
break;
}
}
$51 = $data_flushed;
$52 = $0;
$53 = ((($52)) + 20|0);
$54 = HEAP32[$53>>2]|0;
$55 = (($54) + ($51))|0;
HEAP32[$53>>2] = $55;
$56 = $0;
$57 = ((($56)) + 16|0);
$58 = HEAP32[$57>>2]|0;
$59 = $data_flushed;
$60 = ($58|0)==($59|0);
if ($60) {
$61 = $0;
$62 = ((($61)) + 16|0);
$63 = HEAP32[$62>>2]|0;
$64 = $0;
$65 = ((($64)) + 36|0);
$66 = HEAP32[$65>>2]|0;
$67 = ((($66)) + 1100|0);
$68 = HEAP32[$67>>2]|0;
$69 = (($68) + ($63))|0;
HEAP32[$67>>2] = $69;
$70 = $0;
$71 = ((($70)) + 16|0);
HEAP32[$71>>2] = 0;
$72 = $0;
$73 = ((($72)) + 20|0);
HEAP32[$73>>2] = 0;
$74 = $func_write;
$75 = $0;
$76 = ((($75)) + 36|0);
$77 = HEAP32[$76>>2]|0;
$78 = ((($77)) + 1084|0);
$79 = HEAP32[$78>>2]|0;
(FUNCTION_TABLE_iiii[$74 & 127]($79,0,0)|0);
}
} else {
$err = 0;
}
} while(0);
$80 = $err;
$81 = ($80|0)!=(0);
if (!($81)) {
$89 = $err;
STACKTOP = sp;return ($89|0);
}
$82 = $0;
$83 = ((($82)) + 36|0);
$84 = HEAP32[$83>>2]|0;
$85 = ((($84)) + 1136|0);
$86 = HEAP8[$85>>0]|0;
$87 = $86 & -2;
$88 = $87 | 1;
HEAP8[$85>>0] = $88;
$89 = $err;
STACKTOP = sp;return ($89|0);
}
function _es_empty($stream) {
$stream = $stream|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $stream;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = $2 >>> 16;
$4 = $3 & 1;
$5 = ($4|0)!=(0);
if ($5) {
___assert_fail((53542|0),(53523|0),1722,(53565|0));
// unreachable;
} else {
$6 = $0;
$7 = ((($6)) + 12|0);
HEAP32[$7>>2] = 0;
$8 = $0;
$9 = ((($8)) + 16|0);
HEAP32[$9>>2] = 0;
$10 = $0;
$11 = ((($10)) + 32|0);
HEAP32[$11>>2] = 0;
STACKTOP = sp;return;
}
}
function _unlock_stream($stream) {
$stream = $stream|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $stream;
$1 = $0;
$2 = ((($1)) + 36|0);
$3 = HEAP32[$2>>2]|0;
$4 = ((($3)) + 1140|0);
$5 = HEAP8[$4>>0]|0;
$6 = ($5&255) >>> 5;
$7 = $6 & 1;
$8 = $7&255;
$9 = ($8|0)!=(0);
if ($9) {
STACKTOP = sp;return;
}
$10 = $0;
$11 = ((($10)) + 36|0);
$12 = HEAP32[$11>>2]|0;
$13 = ((($12)) + 1040|0);
(__gpgrt_lock_unlock($13)|0);
STACKTOP = sp;return;
}
function _lock_list() {
var label = 0, sp = 0;
sp = STACKTOP;
(__gpgrt_lock_lock(13104)|0);
return;
}
function _unlock_list() {
var label = 0, sp = 0;
sp = STACKTOP;
(__gpgrt_lock_unlock(13104)|0);
return;
}
function __gpg_strerror($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $code = 0;
var $no = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $err;
$2 = $1;
$3 = (_gpg_err_code_2552($2)|0);
$code = $3;
$4 = $code;
$5 = $4 & 32768;
$6 = ($5|0)!=(0);
do {
if ($6) {
$7 = $code;
$8 = (_gpg_err_code_to_errno($7)|0);
$no = $8;
$9 = $no;
$10 = ($9|0)!=(0);
if (!($10)) {
$code = 16382;
break;
}
$11 = $no;
$12 = (_strerror($11)|0);
$0 = $12;
$18 = $0;
STACKTOP = sp;return ($18|0);
}
} while(0);
$13 = $code;
$14 = (_msgidxof_2553($13)|0);
$15 = (13148 + ($14<<2)|0);
$16 = HEAP32[$15>>2]|0;
$17 = (53574 + ($16)|0);
$0 = $17;
$18 = $0;
STACKTOP = sp;return ($18|0);
}
function _gpg_err_code_2552($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $err;
$1 = $0;
$2 = $1 & 65535;
STACKTOP = sp;return ($2|0);
}
function _msgidxof_2553($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $9 = 0, $or$cond = 0, $or$cond11 = 0, $or$cond13 = 0, $or$cond15 = 0, $or$cond17 = 0, $or$cond19 = 0, $or$cond21 = 0, $or$cond23 = 0, $or$cond25 = 0, $or$cond27 = 0, $or$cond29 = 0, $or$cond3 = 0, $or$cond31 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $code;
$1 = $0;
$2 = ($1|0)>=(0);
$3 = $0;
$4 = ($3|0)<=(213);
$or$cond = $2 & $4;
$5 = $0;
do {
if ($or$cond) {
$6 = (($5) - 0)|0;
$83 = $6;
} else {
$7 = ($5|0)>=(222);
$8 = $0;
$9 = ($8|0)<=(254);
$or$cond3 = $7 & $9;
$10 = $0;
if ($or$cond3) {
$11 = (($10) - 8)|0;
$83 = $11;
break;
}
$12 = ($10|0)>=(257);
$13 = $0;
$14 = ($13|0)<=(271);
$or$cond5 = $12 & $14;
$15 = $0;
if ($or$cond5) {
$16 = (($15) - 10)|0;
$83 = $16;
break;
}
$17 = ($15|0)>=(273);
$18 = $0;
$19 = ($18|0)<=(281);
$or$cond7 = $17 & $19;
$20 = $0;
if ($or$cond7) {
$21 = (($20) - 11)|0;
$83 = $21;
break;
}
$22 = ($20|0)>=(721);
$23 = $0;
$24 = ($23|0)<=(729);
$or$cond9 = $22 & $24;
$25 = $0;
if ($or$cond9) {
$26 = (($25) - 450)|0;
$83 = $26;
break;
}
$27 = ($25|0)>=(750);
$28 = $0;
$29 = ($28|0)<=(752);
$or$cond11 = $27 & $29;
$30 = $0;
if ($or$cond11) {
$31 = (($30) - 470)|0;
$83 = $31;
break;
}
$32 = ($30|0)>=(754);
$33 = $0;
$34 = ($33|0)<=(782);
$or$cond13 = $32 & $34;
$35 = $0;
if ($or$cond13) {
$36 = (($35) - 471)|0;
$83 = $36;
break;
}
$37 = ($35|0)>=(784);
$38 = $0;
$39 = ($38|0)<=(789);
$or$cond15 = $37 & $39;
$40 = $0;
if ($or$cond15) {
$41 = (($40) - 472)|0;
$83 = $41;
break;
}
$42 = ($40|0)>=(800);
$43 = $0;
$44 = ($43|0)<=(804);
$or$cond17 = $42 & $44;
$45 = $0;
if ($or$cond17) {
$46 = (($45) - 482)|0;
$83 = $46;
break;
}
$47 = ($45|0)>=(815);
$48 = $0;
$49 = ($48|0)<=(822);
$or$cond19 = $47 & $49;
$50 = $0;
if ($or$cond19) {
$51 = (($50) - 492)|0;
$83 = $51;
break;
}
$52 = ($50|0)>=(832);
$53 = $0;
$54 = ($53|0)<=(839);
$or$cond21 = $52 & $54;
$55 = $0;
if ($or$cond21) {
$56 = (($55) - 501)|0;
$83 = $56;
break;
}
$57 = ($55|0)>=(844);
$58 = $0;
$59 = ($58|0)<=(844);
$or$cond23 = $57 & $59;
$60 = $0;
if ($or$cond23) {
$61 = (($60) - 505)|0;
$83 = $61;
break;
}
$62 = ($60|0)>=(848);
$63 = $0;
$64 = ($63|0)<=(848);
$or$cond25 = $62 & $64;
$65 = $0;
if ($or$cond25) {
$66 = (($65) - 508)|0;
$83 = $66;
break;
}
$67 = ($65|0)>=(881);
$68 = $0;
$69 = ($68|0)<=(891);
$or$cond27 = $67 & $69;
$70 = $0;
if ($or$cond27) {
$71 = (($70) - 540)|0;
$83 = $71;
break;
}
$72 = ($70|0)>=(1024);
$73 = $0;
$74 = ($73|0)<=(1039);
$or$cond29 = $72 & $74;
$75 = $0;
if ($or$cond29) {
$76 = (($75) - 672)|0;
$83 = $76;
break;
} else {
$77 = ($75|0)>=(16381);
$78 = $0;
$79 = ($78|0)<=(16383);
$or$cond31 = $77 & $79;
$80 = $0;
$81 = (($80) - 16013)|0;
$82 = $or$cond31 ? $81 : 371;
$83 = $82;
break;
}
}
} while(0);
STACKTOP = sp;return ($83|0);
}
function __gpg_err_code_to_errno($code) {
$code = $code|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $code;
$2 = $1;
$3 = $2 & 32768;
$4 = ($3|0)!=(0);
do {
if ($4) {
$5 = $1;
$6 = $5 & -32769;
$1 = $6;
$7 = $1;
$8 = ($7>>>0)<(141);
if ($8) {
$9 = $1;
$10 = (14636 + ($9<<2)|0);
$11 = HEAP32[$10>>2]|0;
$0 = $11;
break;
} else {
$0 = 0;
break;
}
} else {
$0 = 0;
}
} while(0);
$12 = $0;
STACKTOP = sp;return ($12|0);
}
function __gpg_err_code_from_errno($err) {
$err = $err|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $idx = 0, $or$cond = 0, $or$cond11 = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $err;
$2 = $1;
$3 = ($2|0)!=(0);
if (!($3)) {
$0 = 0;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
$4 = $1;
$5 = ($4|0)>=(1);
$6 = $1;
$7 = ($6|0)<=(11);
$or$cond = $5 & $7;
$8 = $1;
do {
if ($or$cond) {
$9 = (($8) - 1)|0;
$36 = $9;
} else {
$10 = ($8|0)>=(11);
$11 = $1;
$12 = ($11|0)<=(35);
$or$cond3 = $10 & $12;
$13 = $1;
if ($or$cond3) {
$14 = (($13) - 0)|0;
$36 = $14;
break;
}
$15 = ($13|0)>=(35);
$16 = $1;
$17 = ($16|0)<=(40);
$or$cond5 = $15 & $17;
$18 = $1;
if ($or$cond5) {
$19 = (($18) - -1)|0;
$36 = $19;
break;
}
$20 = ($18|0)>=(42);
$21 = $1;
$22 = ($21|0)<=(57);
$or$cond7 = $20 & $22;
$23 = $1;
if ($or$cond7) {
$24 = (($23) - 0)|0;
$36 = $24;
break;
}
$25 = ($23|0)>=(59);
$26 = $1;
$27 = ($26|0)<=(95);
$or$cond9 = $25 & $27;
$28 = $1;
if ($or$cond9) {
$29 = (($28) - 1)|0;
$36 = $29;
break;
} else {
$30 = ($28|0)>=(95);
$31 = $1;
$32 = ($31|0)<=(125);
$or$cond11 = $30 & $32;
$33 = $1;
$34 = (($33) - 0)|0;
$35 = $or$cond11 ? $34 : -1;
$36 = $35;
break;
}
}
} while(0);
$idx = $36;
$37 = $idx;
$38 = ($37|0)<(0);
if ($38) {
$0 = 16382;
$43 = $0;
STACKTOP = sp;return ($43|0);
} else {
$39 = $idx;
$40 = (15200 + ($39<<2)|0);
$41 = HEAP32[$40>>2]|0;
$42 = 32768 | $41;
$0 = $42;
$43 = $0;
STACKTOP = sp;return ($43|0);
}
return (0)|0;
}
function __gpg_err_code_from_syserror() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $err = 0, $idx = 0, $or$cond = 0, $or$cond11 = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, $or$cond9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = (___errno_location()|0);
$2 = HEAP32[$1>>2]|0;
$err = $2;
$3 = $err;
$4 = ($3|0)!=(0);
if (!($4)) {
$0 = 16381;
$44 = $0;
STACKTOP = sp;return ($44|0);
}
$5 = $err;
$6 = ($5|0)>=(1);
$7 = $err;
$8 = ($7|0)<=(11);
$or$cond = $6 & $8;
$9 = $err;
do {
if ($or$cond) {
$10 = (($9) - 1)|0;
$37 = $10;
} else {
$11 = ($9|0)>=(11);
$12 = $err;
$13 = ($12|0)<=(35);
$or$cond3 = $11 & $13;
$14 = $err;
if ($or$cond3) {
$15 = (($14) - 0)|0;
$37 = $15;
break;
}
$16 = ($14|0)>=(35);
$17 = $err;
$18 = ($17|0)<=(40);
$or$cond5 = $16 & $18;
$19 = $err;
if ($or$cond5) {
$20 = (($19) - -1)|0;
$37 = $20;
break;
}
$21 = ($19|0)>=(42);
$22 = $err;
$23 = ($22|0)<=(57);
$or$cond7 = $21 & $23;
$24 = $err;
if ($or$cond7) {
$25 = (($24) - 0)|0;
$37 = $25;
break;
}
$26 = ($24|0)>=(59);
$27 = $err;
$28 = ($27|0)<=(95);
$or$cond9 = $26 & $28;
$29 = $err;
if ($or$cond9) {
$30 = (($29) - 1)|0;
$37 = $30;
break;
} else {
$31 = ($29|0)>=(95);
$32 = $err;
$33 = ($32|0)<=(125);
$or$cond11 = $31 & $33;
$34 = $err;
$35 = (($34) - 0)|0;
$36 = $or$cond11 ? $35 : -1;
$37 = $36;
break;
}
}
} while(0);
$idx = $37;
$38 = $idx;
$39 = ($38|0)<(0);
if ($39) {
$0 = 16382;
$44 = $0;
STACKTOP = sp;return ($44|0);
} else {
$40 = $idx;
$41 = (15200 + ($40<<2)|0);
$42 = HEAP32[$41>>2]|0;
$43 = 32768 | $42;
$0 = $43;
$44 = $0;
STACKTOP = sp;return ($44|0);
}
return (0)|0;
}
function _TALER_amount_hton($res,$d) {
$res = $res|0;
$d = $d|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res;
$1 = $d;
$2 = $1;
$3 = $2;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (_GNUNET_htonll($5,$8)|0);
$10 = tempRet0;
$11 = $0;
$12 = $11;
$13 = $12;
HEAP8[$13>>0]=$9&255;HEAP8[$13+1>>0]=($9>>8)&255;HEAP8[$13+2>>0]=($9>>16)&255;HEAP8[$13+3>>0]=$9>>24;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP8[$15>>0]=$10&255;HEAP8[$15+1>>0]=($10>>8)&255;HEAP8[$15+2>>0]=($10>>16)&255;HEAP8[$15+3>>0]=$10>>24;
$16 = $1;
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = (_htonl($18)|0);
$20 = $0;
$21 = ((($20)) + 8|0);
HEAP8[$21>>0]=$19&255;HEAP8[$21+1>>0]=($19>>8)&255;HEAP8[$21+2>>0]=($19>>16)&255;HEAP8[$21+3>>0]=$19>>24;
$22 = $0;
$23 = ((($22)) + 12|0);
$24 = $1;
$25 = ((($24)) + 12|0);
dest=$23; src=$25; stop=dest+12|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function _TALER_amount_ntoh($res,$dn) {
$res = $res|0;
$dn = $dn|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $res;
$1 = $dn;
$2 = $1;
$3 = $2;
$4 = $3;
$5 = HEAPU8[$4>>0]|(HEAPU8[$4+1>>0]<<8)|(HEAPU8[$4+2>>0]<<16)|(HEAPU8[$4+3>>0]<<24);
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAPU8[$7>>0]|(HEAPU8[$7+1>>0]<<8)|(HEAPU8[$7+2>>0]<<16)|(HEAPU8[$7+3>>0]<<24);
$9 = (_GNUNET_ntohll($5,$8)|0);
$10 = tempRet0;
$11 = $0;
$12 = $11;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = $10;
$16 = $1;
$17 = ((($16)) + 8|0);
$18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24);
$19 = (_ntohl($18)|0);
$20 = $0;
$21 = ((($20)) + 8|0);
HEAP32[$21>>2] = $19;
$22 = $0;
$23 = ((($22)) + 12|0);
$24 = $1;
$25 = ((($24)) + 12|0);
dest=$23; src=$25; stop=dest+12|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function _TALER_amount_get_zero($cur,$denom) {
$cur = $cur|0;
$denom = $denom|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $slen = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $cur;
$2 = $denom;
$3 = $1;
$4 = (_strlen($3)|0);
$slen = $4;
$5 = $slen;
$6 = ($5>>>0)>=(12);
if ($6) {
$0 = -1;
$12 = $0;
STACKTOP = sp;return ($12|0);
} else {
$7 = $2;
;HEAP32[$7>>2]=0|0;HEAP32[$7+4>>2]=0|0;HEAP32[$7+8>>2]=0|0;HEAP32[$7+12>>2]=0|0;HEAP32[$7+16>>2]=0|0;HEAP32[$7+20>>2]=0|0;
$8 = $2;
$9 = ((($8)) + 12|0);
$10 = $1;
$11 = $slen;
_memcpy(($9|0),($10|0),($11|0))|0;
$0 = 1;
$12 = $0;
STACKTOP = sp;return ($12|0);
}
return (0)|0;
}
function _TALER_amount_cmp_currency($a1,$a2) {
$a1 = $a1|0;
$a2 = $a2|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $a1;
$2 = $a2;
$3 = $1;
$4 = (_test_valid($3)|0);
$5 = (0)==($4|0);
do {
if ($5) {
label = 3;
} else {
$6 = $2;
$7 = (_test_valid($6)|0);
$8 = (0)==($7|0);
if ($8) {
label = 3;
} else {
$9 = $1;
$10 = ((($9)) + 12|0);
$11 = $2;
$12 = ((($11)) + 12|0);
$13 = (_strcasecmp($10,$12)|0);
$14 = (0)==($13|0);
if ($14) {
$0 = 1;
break;
} else {
$0 = 0;
break;
}
}
}
} while(0);
if ((label|0) == 3) {
$0 = -1;
}
$15 = $0;
STACKTOP = sp;return ($15|0);
}
function _test_valid($a) {
$a = $a|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
$2 = ((($1)) + 12|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3 << 24 >> 24;
$5 = (0)!=($4|0);
$6 = $5&1;
STACKTOP = sp;return ($6|0);
}
function _TALER_amount_cmp($a1,$a2) {
$a1 = $a1|0;
$a2 = $a2|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $9 = 0;
var $log_line = 0, $log_line1 = 0, $log_line2 = 0, $n1 = 0, $n2 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 64|0;
$vararg_buffer2 = sp + 56|0;
$vararg_buffer = sp + 48|0;
$n1 = sp + 24|0;
$n2 = sp;
$1 = $a1;
$2 = $a2;
$3 = $1;
$4 = $2;
$5 = (_TALER_amount_cmp_currency($3,$4)|0);
$6 = (1)==($5|0);
if (!($6)) {
$log_line = 325;
$7 = HEAP32[3926]|0;
$8 = ($7|0)==(-1);
if ($8) {
$9 = $log_line;
$10 = (_GNUNET_get_log_call_status(1,0,61589,61598,$9)|0);
HEAP32[3926] = $10;
}
$11 = (_GNUNET_get_log_skip()|0);
$12 = ($11|0)>(0);
if ($12) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$13 = HEAP32[3926]|0;
$14 = ($13|0)!=(0);
if (!($14)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 61589;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 325;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$15 = $1;
;HEAP32[$n1>>2]=HEAP32[$15>>2]|0;HEAP32[$n1+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$n1+8>>2]=HEAP32[$15+8>>2]|0;HEAP32[$n1+12>>2]=HEAP32[$15+12>>2]|0;HEAP32[$n1+16>>2]=HEAP32[$15+16>>2]|0;HEAP32[$n1+20>>2]=HEAP32[$15+20>>2]|0;
$16 = $2;
;HEAP32[$n2>>2]=HEAP32[$16>>2]|0;HEAP32[$n2+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$n2+8>>2]=HEAP32[$16+8>>2]|0;HEAP32[$n2+12>>2]=HEAP32[$16+12>>2]|0;HEAP32[$n2+16>>2]=HEAP32[$16+16>>2]|0;HEAP32[$n2+20>>2]=HEAP32[$16+20>>2]|0;
$17 = (_TALER_amount_normalize($n1)|0);
$18 = (-1)!=($17|0);
if (!($18)) {
$log_line1 = 329;
$19 = HEAP32[3927]|0;
$20 = ($19|0)==(-1);
if ($20) {
$21 = $log_line1;
$22 = (_GNUNET_get_log_call_status(1,0,61589,61598,$21)|0);
HEAP32[3927] = $22;
}
$23 = (_GNUNET_get_log_skip()|0);
$24 = ($23|0)>(0);
if ($24) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$25 = HEAP32[3927]|0;
$26 = ($25|0)!=(0);
if (!($26)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 61589;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 329;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
$27 = (_TALER_amount_normalize($n2)|0);
$28 = (-1)!=($27|0);
if (!($28)) {
$log_line2 = 331;
$29 = HEAP32[3928]|0;
$30 = ($29|0)==(-1);
if ($30) {
$31 = $log_line2;
$32 = (_GNUNET_get_log_call_status(1,0,61589,61598,$31)|0);
HEAP32[3928] = $32;
}
$33 = (_GNUNET_get_log_skip()|0);
$34 = ($33|0)>(0);
if ($34) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$35 = HEAP32[3928]|0;
$36 = ($35|0)!=(0);
if (!($36)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer6>>2] = 61589;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 331;
_GNUNET_log_nocheck(1,61615,$vararg_buffer6);
_GNUNET_abort_();
// unreachable;
}
$37 = $n1;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (($37) + 4)|0;
$41 = $40;
$42 = HEAP32[$41>>2]|0;
$43 = $n2;
$44 = $43;
$45 = HEAP32[$44>>2]|0;
$46 = (($43) + 4)|0;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = ($39|0)==($45|0);
$50 = ($42|0)==($48|0);
$51 = $49 & $50;
if (!($51)) {
$62 = $n1;
$63 = $62;
$64 = HEAP32[$63>>2]|0;
$65 = (($62) + 4)|0;
$66 = $65;
$67 = HEAP32[$66>>2]|0;
$68 = $n2;
$69 = $68;
$70 = HEAP32[$69>>2]|0;
$71 = (($68) + 4)|0;
$72 = $71;
$73 = HEAP32[$72>>2]|0;
$74 = ($67>>>0)<($73>>>0);
$75 = ($64>>>0)<($70>>>0);
$76 = ($67|0)==($73|0);
$77 = $76 & $75;
$78 = $74 | $77;
if ($78) {
$0 = -1;
$79 = $0;
STACKTOP = sp;return ($79|0);
} else {
$0 = 1;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
}
$52 = ((($n1)) + 8|0);
$53 = HEAP32[$52>>2]|0;
$54 = ((($n2)) + 8|0);
$55 = HEAP32[$54>>2]|0;
$56 = ($53>>>0)<($55>>>0);
if ($56) {
$0 = -1;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
$57 = ((($n1)) + 8|0);
$58 = HEAP32[$57>>2]|0;
$59 = ((($n2)) + 8|0);
$60 = HEAP32[$59>>2]|0;
$61 = ($58>>>0)>($60>>>0);
if ($61) {
$0 = 1;
$79 = $0;
STACKTOP = sp;return ($79|0);
} else {
$0 = 0;
$79 = $0;
STACKTOP = sp;return ($79|0);
}
return (0)|0;
}
function _TALER_amount_normalize($amount) {
$amount = $amount|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, $ret = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $amount;
$2 = $1;
$3 = (_test_valid($2)|0);
$4 = (1)!=($3|0);
if ($4) {
$0 = -1;
$39 = $0;
STACKTOP = sp;return ($39|0);
}
$ret = 0;
while(1) {
$5 = $1;
$6 = $5;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = (($6) + 4)|0;
$10 = $9;
$11 = HEAP32[$10>>2]|0;
$12 = ($8|0)!=(-1);
$13 = ($11|0)!=(-1);
$14 = $12 | $13;
if ($14) {
$15 = $1;
$16 = ((($15)) + 8|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17>>>0)>=(1000000);
$40 = $18;
} else {
$40 = 0;
}
$19 = $1;
$20 = ((($19)) + 8|0);
$21 = HEAP32[$20>>2]|0;
if (!($40)) {
break;
}
$22 = (($21) - 1000000)|0;
HEAP32[$20>>2] = $22;
$23 = $1;
$24 = $23;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = (($24) + 4)|0;
$28 = $27;
$29 = HEAP32[$28>>2]|0;
$30 = (_i64Add(($26|0),($29|0),1,0)|0);
$31 = tempRet0;
$32 = $23;
$33 = $32;
HEAP32[$33>>2] = $30;
$34 = (($32) + 4)|0;
$35 = $34;
HEAP32[$35>>2] = $31;
$ret = 1;
}
$36 = ($21>>>0)>=(1000000);
if ($36) {
$37 = $1;
_invalidate($37);
$0 = -1;
$39 = $0;
STACKTOP = sp;return ($39|0);
} else {
$38 = $ret;
$0 = $38;
$39 = $0;
STACKTOP = sp;return ($39|0);
}
return (0)|0;
}
function _invalidate($a) {
$a = $a|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $a;
$1 = $0;
;HEAP32[$1>>2]=0|0;HEAP32[$1+4>>2]=0|0;HEAP32[$1+8>>2]=0|0;HEAP32[$1+12>>2]=0|0;HEAP32[$1+16>>2]=0|0;HEAP32[$1+20>>2]=0|0;
STACKTOP = sp;return;
}
function _TALER_amount_subtract($diff,$a1,$a2) {
$diff = $diff|0;
$a1 = $a1|0;
$a2 = $a2|0;
var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0;
var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0;
var $152 = 0, $153 = 0, $154 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $log_line = 0, $log_line1 = 0, $log_line2 = 0, $n1 = 0, $n2 = 0;
var $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 64|0;
$vararg_buffer2 = sp + 56|0;
$vararg_buffer = sp + 48|0;
$n1 = sp + 24|0;
$n2 = sp;
$1 = $diff;
$2 = $a1;
$3 = $a2;
$4 = $2;
$5 = $3;
$6 = (_TALER_amount_cmp_currency($4,$5)|0);
$7 = (1)!=($6|0);
if ($7) {
$8 = $1;
_invalidate($8);
$0 = -1;
$154 = $0;
STACKTOP = sp;return ($154|0);
}
$9 = $2;
;HEAP32[$n1>>2]=HEAP32[$9>>2]|0;HEAP32[$n1+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$n1+8>>2]=HEAP32[$9+8>>2]|0;HEAP32[$n1+12>>2]=HEAP32[$9+12>>2]|0;HEAP32[$n1+16>>2]=HEAP32[$9+16>>2]|0;HEAP32[$n1+20>>2]=HEAP32[$9+20>>2]|0;
$10 = $3;
;HEAP32[$n2>>2]=HEAP32[$10>>2]|0;HEAP32[$n2+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$n2+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$n2+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$n2+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$n2+20>>2]=HEAP32[$10+20>>2]|0;
$11 = (_TALER_amount_normalize($n1)|0);
$12 = (-1)==($11|0);
if (!($12)) {
$13 = (_TALER_amount_normalize($n2)|0);
$14 = (-1)==($13|0);
if (!($14)) {
$16 = ((($n1)) + 8|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($n2)) + 8|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($17>>>0)<($19>>>0);
do {
if ($20) {
$21 = $n1;
$22 = $21;
$23 = HEAP32[$22>>2]|0;
$24 = (($21) + 4)|0;
$25 = $24;
$26 = HEAP32[$25>>2]|0;
$27 = (0)==($23|0);
$28 = (0)==($26|0);
$29 = $27 & $28;
if (!($29)) {
$31 = ((($n1)) + 8|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($32) + 1000000)|0;
HEAP32[$31>>2] = $33;
$34 = $n1;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (_i64Add(($36|0),($39|0),-1,-1)|0);
$41 = tempRet0;
$42 = $n1;
$43 = $42;
HEAP32[$43>>2] = $40;
$44 = (($42) + 4)|0;
$45 = $44;
HEAP32[$45>>2] = $41;
break;
}
$30 = $1;
_invalidate($30);
$0 = -1;
$154 = $0;
STACKTOP = sp;return ($154|0);
}
} while(0);
$46 = $n1;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = (($46) + 4)|0;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = $n2;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$55 = (($52) + 4)|0;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$58 = ($51>>>0)<($57>>>0);
$59 = ($48>>>0)<($54>>>0);
$60 = ($51|0)==($57|0);
$61 = $60 & $59;
$62 = $58 | $61;
if ($62) {
$63 = $1;
_invalidate($63);
$0 = -1;
$154 = $0;
STACKTOP = sp;return ($154|0);
}
$64 = ((($n1)) + 12|0);
$65 = $1;
$66 = (_TALER_amount_get_zero($64,$65)|0);
$67 = (1)==($66|0);
if (!($67)) {
$log_line = 397;
$68 = HEAP32[3929]|0;
$69 = ($68|0)==(-1);
if ($69) {
$70 = $log_line;
$71 = (_GNUNET_get_log_call_status(1,0,61589,61643,$70)|0);
HEAP32[3929] = $71;
}
$72 = (_GNUNET_get_log_skip()|0);
$73 = ($72|0)>(0);
if ($73) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$74 = HEAP32[3929]|0;
$75 = ($74|0)!=(0);
if (!($75)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 61589;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 397;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
$76 = ((($n1)) + 8|0);
$77 = HEAP32[$76>>2]|0;
$78 = ((($n2)) + 8|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($77>>>0)>=($79>>>0);
if (!($80)) {
$log_line1 = 398;
$81 = HEAP32[3930]|0;
$82 = ($81|0)==(-1);
if ($82) {
$83 = $log_line1;
$84 = (_GNUNET_get_log_call_status(1,0,61589,61643,$83)|0);
HEAP32[3930] = $84;
}
$85 = (_GNUNET_get_log_skip()|0);
$86 = ($85|0)>(0);
if ($86) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$87 = HEAP32[3930]|0;
$88 = ($87|0)!=(0);
if (!($88)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer2>>2] = 61589;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 398;
_GNUNET_log_nocheck(1,61615,$vararg_buffer2);
_GNUNET_abort_();
// unreachable;
}
$89 = ((($n1)) + 8|0);
$90 = HEAP32[$89>>2]|0;
$91 = ((($n2)) + 8|0);
$92 = HEAP32[$91>>2]|0;
$93 = (($90) - ($92))|0;
$94 = $1;
$95 = ((($94)) + 8|0);
HEAP32[$95>>2] = $93;
$96 = $n1;
$97 = $96;
$98 = HEAP32[$97>>2]|0;
$99 = (($96) + 4)|0;
$100 = $99;
$101 = HEAP32[$100>>2]|0;
$102 = $n2;
$103 = $102;
$104 = HEAP32[$103>>2]|0;
$105 = (($102) + 4)|0;
$106 = $105;
$107 = HEAP32[$106>>2]|0;
$108 = ($101>>>0)>($107>>>0);
$109 = ($98>>>0)>=($104>>>0);
$110 = ($101|0)==($107|0);
$111 = $110 & $109;
$112 = $108 | $111;
if ($112) {
$121 = $n1;
$122 = $121;
$123 = HEAP32[$122>>2]|0;
$124 = (($121) + 4)|0;
$125 = $124;
$126 = HEAP32[$125>>2]|0;
$127 = $n2;
$128 = $127;
$129 = HEAP32[$128>>2]|0;
$130 = (($127) + 4)|0;
$131 = $130;
$132 = HEAP32[$131>>2]|0;
$133 = (_i64Subtract(($123|0),($126|0),($129|0),($132|0))|0);
$134 = tempRet0;
$135 = $1;
$136 = $135;
$137 = $136;
HEAP32[$137>>2] = $133;
$138 = (($136) + 4)|0;
$139 = $138;
HEAP32[$139>>2] = $134;
$140 = $1;
$141 = ((($140)) + 8|0);
$142 = HEAP32[$141>>2]|0;
$143 = (0)==($142|0);
if ($143) {
$144 = $1;
$145 = $144;
$146 = $145;
$147 = HEAP32[$146>>2]|0;
$148 = (($145) + 4)|0;
$149 = $148;
$150 = HEAP32[$149>>2]|0;
$151 = (0)==($147|0);
$152 = (0)==($150|0);
$153 = $151 & $152;
if ($153) {
$0 = 0;
$154 = $0;
STACKTOP = sp;return ($154|0);
}
}
$0 = 1;
$154 = $0;
STACKTOP = sp;return ($154|0);
}
$log_line2 = 400;
$113 = HEAP32[3931]|0;
$114 = ($113|0)==(-1);
if ($114) {
$115 = $log_line2;
$116 = (_GNUNET_get_log_call_status(1,0,61589,61643,$115)|0);
HEAP32[3931] = $116;
}
$117 = (_GNUNET_get_log_skip()|0);
$118 = ($117|0)>(0);
if ($118) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$119 = HEAP32[3931]|0;
$120 = ($119|0)!=(0);
if (!($120)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer6>>2] = 61589;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = 400;
_GNUNET_log_nocheck(1,61615,$vararg_buffer6);
_GNUNET_abort_();
// unreachable;
}
}
$15 = $1;
_invalidate($15);
$0 = -1;
$154 = $0;
STACKTOP = sp;return ($154|0);
}
function _TALER_amount_add($sum,$a1,$a2) {
$sum = $sum|0;
$a1 = $a1|0;
$a2 = $a2|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $9 = 0, $log_line = 0, $n1 = 0, $n2 = 0, $res = 0, $vararg_buffer = 0, $vararg_ptr1 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp + 72|0;
$n1 = sp + 48|0;
$n2 = sp + 24|0;
$res = sp;
$1 = $sum;
$2 = $a1;
$3 = $a2;
$4 = $2;
$5 = $3;
$6 = (_TALER_amount_cmp_currency($4,$5)|0);
$7 = (1)!=($6|0);
if ($7) {
$8 = $1;
_invalidate($8);
$0 = -1;
$73 = $0;
STACKTOP = sp;return ($73|0);
}
$9 = $2;
;HEAP32[$n1>>2]=HEAP32[$9>>2]|0;HEAP32[$n1+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$n1+8>>2]=HEAP32[$9+8>>2]|0;HEAP32[$n1+12>>2]=HEAP32[$9+12>>2]|0;HEAP32[$n1+16>>2]=HEAP32[$9+16>>2]|0;HEAP32[$n1+20>>2]=HEAP32[$9+20>>2]|0;
$10 = $3;
;HEAP32[$n2>>2]=HEAP32[$10>>2]|0;HEAP32[$n2+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$n2+8>>2]=HEAP32[$10+8>>2]|0;HEAP32[$n2+12>>2]=HEAP32[$10+12>>2]|0;HEAP32[$n2+16>>2]=HEAP32[$10+16>>2]|0;HEAP32[$n2+20>>2]=HEAP32[$10+20>>2]|0;
$11 = (_TALER_amount_normalize($n1)|0);
$12 = (-1)==($11|0);
if (!($12)) {
$13 = (_TALER_amount_normalize($n2)|0);
$14 = (-1)==($13|0);
if (!($14)) {
$16 = $2;
$17 = ((($16)) + 12|0);
$18 = (_TALER_amount_get_zero($17,$res)|0);
$19 = (1)==($18|0);
if ($19) {
$28 = $n1;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 4)|0;
$32 = $31;
$33 = HEAP32[$32>>2]|0;
$34 = $n2;
$35 = $34;
$36 = HEAP32[$35>>2]|0;
$37 = (($34) + 4)|0;
$38 = $37;
$39 = HEAP32[$38>>2]|0;
$40 = (_i64Add(($30|0),($33|0),($36|0),($39|0))|0);
$41 = tempRet0;
$42 = $res;
$43 = $42;
HEAP32[$43>>2] = $40;
$44 = (($42) + 4)|0;
$45 = $44;
HEAP32[$45>>2] = $41;
$46 = $res;
$47 = $46;
$48 = HEAP32[$47>>2]|0;
$49 = (($46) + 4)|0;
$50 = $49;
$51 = HEAP32[$50>>2]|0;
$52 = $n1;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$55 = (($52) + 4)|0;
$56 = $55;
$57 = HEAP32[$56>>2]|0;
$58 = ($51>>>0)<($57>>>0);
$59 = ($48>>>0)<($54>>>0);
$60 = ($51|0)==($57|0);
$61 = $60 & $59;
$62 = $58 | $61;
if ($62) {
$63 = $1;
_invalidate($63);
$0 = -1;
$73 = $0;
STACKTOP = sp;return ($73|0);
}
$64 = ((($n1)) + 8|0);
$65 = HEAP32[$64>>2]|0;
$66 = ((($n2)) + 8|0);
$67 = HEAP32[$66>>2]|0;
$68 = (($65) + ($67))|0;
$69 = ((($res)) + 8|0);
HEAP32[$69>>2] = $68;
$70 = (_TALER_amount_normalize($res)|0);
$71 = (-1)==($70|0);
$72 = $1;
if ($71) {
_invalidate($72);
$0 = -1;
$73 = $0;
STACKTOP = sp;return ($73|0);
} else {
;HEAP32[$72>>2]=HEAP32[$res>>2]|0;HEAP32[$72+4>>2]=HEAP32[$res+4>>2]|0;HEAP32[$72+8>>2]=HEAP32[$res+8>>2]|0;HEAP32[$72+12>>2]=HEAP32[$res+12>>2]|0;HEAP32[$72+16>>2]=HEAP32[$res+16>>2]|0;HEAP32[$72+20>>2]=HEAP32[$res+20>>2]|0;
$0 = 1;
$73 = $0;
STACKTOP = sp;return ($73|0);
}
}
$log_line = 444;
$20 = HEAP32[3932]|0;
$21 = ($20|0)==(-1);
if ($21) {
$22 = $log_line;
$23 = (_GNUNET_get_log_call_status(1,0,61589,61665,$22)|0);
HEAP32[3932] = $23;
}
$24 = (_GNUNET_get_log_skip()|0);
$25 = ($24|0)>(0);
if ($25) {
_GNUNET_log_skip(-1,0);
_GNUNET_abort_();
// unreachable;
}
$26 = HEAP32[3932]|0;
$27 = ($26|0)!=(0);
if (!($27)) {
_GNUNET_abort_();
// unreachable;
}
HEAP32[$vararg_buffer>>2] = 61589;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 444;
_GNUNET_log_nocheck(1,61615,$vararg_buffer);
_GNUNET_abort_();
// unreachable;
}
}
$15 = $1;
_invalidate($15);
$0 = -1;
$73 = $0;
STACKTOP = sp;return ($73|0);
}
function ___stdio_close($f) {
$f = $f|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = ((($f)) + 60|0);
$1 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer>>2] = $1;
$2 = (___syscall6(6,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
STACKTOP = sp;return ($3|0);
}
function ___syscall_ret($r) {
$r = $r|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($r>>>0)>(4294963200);
if ($0) {
$1 = (0 - ($r))|0;
$2 = (___errno_location()|0);
HEAP32[$2>>2] = $1;
$$0 = -1;
} else {
$$0 = $r;
}
return ($$0|0);
}
function ___errno_location() {
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[17780]|0;
$1 = ($0|0)==(0|0);
if ($1) {
$$0 = 71164;
} else {
$2 = (_pthread_self()|0);
$3 = ((($2)) + 64|0);
$4 = HEAP32[$3>>2]|0;
$$0 = $4;
}
return ($$0|0);
}
function ___stdout_write($f,$buf,$len) {
$f = $f|0;
$buf = $buf|0;
$len = $len|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tio = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$tio = sp + 12|0;
$0 = ((($f)) + 36|0);
HEAP32[$0>>2] = 52;
$1 = HEAP32[$f>>2]|0;
$2 = $1 & 64;
$3 = ($2|0)==(0);
if ($3) {
$4 = ((($f)) + 60|0);
$5 = HEAP32[$4>>2]|0;
HEAP32[$vararg_buffer>>2] = $5;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 21505;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $tio;
$6 = (___syscall54(54,($vararg_buffer|0))|0);
$7 = ($6|0)==(0);
if (!($7)) {
$8 = ((($f)) + 75|0);
HEAP8[$8>>0] = -1;
}
}
$9 = (___stdio_write($f,$buf,$len)|0);
STACKTOP = sp;return ($9|0);
}
function ___stdio_write($f,$buf,$len) {
$f = $f|0;
$buf = $buf|0;
$len = $len|0;
var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cnt$0 = 0, $cnt$1 = 0, $iov$0 = 0, $iov$0$lcssa11 = 0, $iov$1 = 0, $iovcnt$0 = 0, $iovcnt$0$lcssa12 = 0;
var $iovcnt$1 = 0, $iovs = 0, $rem$0 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$iovs = sp + 32|0;
$0 = ((($f)) + 28|0);
$1 = HEAP32[$0>>2]|0;
HEAP32[$iovs>>2] = $1;
$2 = ((($iovs)) + 4|0);
$3 = ((($f)) + 20|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4) - ($1))|0;
HEAP32[$2>>2] = $5;
$6 = ((($iovs)) + 8|0);
HEAP32[$6>>2] = $buf;
$7 = ((($iovs)) + 12|0);
HEAP32[$7>>2] = $len;
$8 = (($5) + ($len))|0;
$9 = ((($f)) + 60|0);
$10 = ((($f)) + 44|0);
$iov$0 = $iovs;$iovcnt$0 = 2;$rem$0 = $8;
while(1) {
$11 = HEAP32[17780]|0;
$12 = ($11|0)==(0|0);
if ($12) {
$16 = HEAP32[$9>>2]|0;
HEAP32[$vararg_buffer3>>2] = $16;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = $iov$0;
$vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
HEAP32[$vararg_ptr7>>2] = $iovcnt$0;
$17 = (___syscall146(146,($vararg_buffer3|0))|0);
$18 = (___syscall_ret($17)|0);
$cnt$0 = $18;
} else {
_pthread_cleanup_push((85|0),($f|0));
$13 = HEAP32[$9>>2]|0;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $iov$0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $iovcnt$0;
$14 = (___syscall146(146,($vararg_buffer|0))|0);
$15 = (___syscall_ret($14)|0);
_pthread_cleanup_pop(0);
$cnt$0 = $15;
}
$19 = ($rem$0|0)==($cnt$0|0);
if ($19) {
label = 6;
break;
}
$26 = ($cnt$0|0)<(0);
if ($26) {
$iov$0$lcssa11 = $iov$0;$iovcnt$0$lcssa12 = $iovcnt$0;
label = 8;
break;
}
$34 = (($rem$0) - ($cnt$0))|0;
$35 = ((($iov$0)) + 4|0);
$36 = HEAP32[$35>>2]|0;
$37 = ($cnt$0>>>0)>($36>>>0);
if ($37) {
$38 = HEAP32[$10>>2]|0;
HEAP32[$0>>2] = $38;
HEAP32[$3>>2] = $38;
$39 = (($cnt$0) - ($36))|0;
$40 = ((($iov$0)) + 8|0);
$41 = (($iovcnt$0) + -1)|0;
$$phi$trans$insert = ((($iov$0)) + 12|0);
$$pre = HEAP32[$$phi$trans$insert>>2]|0;
$49 = $$pre;$cnt$1 = $39;$iov$1 = $40;$iovcnt$1 = $41;
} else {
$42 = ($iovcnt$0|0)==(2);
if ($42) {
$43 = HEAP32[$0>>2]|0;
$44 = (($43) + ($cnt$0)|0);
HEAP32[$0>>2] = $44;
$49 = $36;$cnt$1 = $cnt$0;$iov$1 = $iov$0;$iovcnt$1 = 2;
} else {
$49 = $36;$cnt$1 = $cnt$0;$iov$1 = $iov$0;$iovcnt$1 = $iovcnt$0;
}
}
$45 = HEAP32[$iov$1>>2]|0;
$46 = (($45) + ($cnt$1)|0);
HEAP32[$iov$1>>2] = $46;
$47 = ((($iov$1)) + 4|0);
$48 = (($49) - ($cnt$1))|0;
HEAP32[$47>>2] = $48;
$iov$0 = $iov$1;$iovcnt$0 = $iovcnt$1;$rem$0 = $34;
}
if ((label|0) == 6) {
$20 = HEAP32[$10>>2]|0;
$21 = ((($f)) + 48|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + ($22)|0);
$24 = ((($f)) + 16|0);
HEAP32[$24>>2] = $23;
$25 = $20;
HEAP32[$0>>2] = $25;
HEAP32[$3>>2] = $25;
$$0 = $len;
}
else if ((label|0) == 8) {
$27 = ((($f)) + 16|0);
HEAP32[$27>>2] = 0;
HEAP32[$0>>2] = 0;
HEAP32[$3>>2] = 0;
$28 = HEAP32[$f>>2]|0;
$29 = $28 | 32;
HEAP32[$f>>2] = $29;
$30 = ($iovcnt$0$lcssa12|0)==(2);
if ($30) {
$$0 = 0;
} else {
$31 = ((($iov$0$lcssa11)) + 4|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($len) - ($32))|0;
$$0 = $33;
}
}
STACKTOP = sp;return ($$0|0);
}
function _cleanup_92($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($p)) + 68|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
if ($2) {
___unlockfile($p);
}
return;
}
function ___unlockfile($f) {
$f = $f|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function ___stdio_seek($f,$off,$whence) {
$f = $f|0;
$off = $off|0;
$whence = $whence|0;
var $$pre = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $ret = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$ret = sp + 20|0;
$0 = ((($f)) + 60|0);
$1 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer>>2] = $1;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $off;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $ret;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $whence;
$2 = (___syscall140(140,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
$4 = ($3|0)<(0);
if ($4) {
HEAP32[$ret>>2] = -1;
$5 = -1;
} else {
$$pre = HEAP32[$ret>>2]|0;
$5 = $$pre;
}
STACKTOP = sp;return ($5|0);
}
function ___stdio_read($f,$buf,$len) {
$f = $f|0;
$buf = $buf|0;
$len = $len|0;
var $$0 = 0, $$cast = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $cnt$0 = 0, $iov = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$iov = sp + 32|0;
HEAP32[$iov>>2] = $buf;
$0 = ((($iov)) + 4|0);
$1 = ((($f)) + 48|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)!=(0);
$4 = $3&1;
$5 = (($len) - ($4))|0;
HEAP32[$0>>2] = $5;
$6 = ((($iov)) + 8|0);
$7 = ((($f)) + 44|0);
$8 = HEAP32[$7>>2]|0;
HEAP32[$6>>2] = $8;
$9 = ((($iov)) + 12|0);
HEAP32[$9>>2] = $2;
$10 = HEAP32[17780]|0;
$11 = ($10|0)==(0|0);
if ($11) {
$16 = ((($f)) + 60|0);
$17 = HEAP32[$16>>2]|0;
HEAP32[$vararg_buffer3>>2] = $17;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = $iov;
$vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
HEAP32[$vararg_ptr7>>2] = 2;
$18 = (___syscall145(145,($vararg_buffer3|0))|0);
$19 = (___syscall_ret($18)|0);
$cnt$0 = $19;
} else {
_pthread_cleanup_push((86|0),($f|0));
$12 = ((($f)) + 60|0);
$13 = HEAP32[$12>>2]|0;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $iov;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 2;
$14 = (___syscall145(145,($vararg_buffer|0))|0);
$15 = (___syscall_ret($14)|0);
_pthread_cleanup_pop(0);
$cnt$0 = $15;
}
$20 = ($cnt$0|0)<(1);
if ($20) {
$21 = $cnt$0 & 48;
$22 = $21 ^ 16;
$23 = HEAP32[$f>>2]|0;
$24 = $23 | $22;
HEAP32[$f>>2] = $24;
$25 = ((($f)) + 8|0);
HEAP32[$25>>2] = 0;
$26 = ((($f)) + 4|0);
HEAP32[$26>>2] = 0;
$$0 = $cnt$0;
} else {
$27 = HEAP32[$0>>2]|0;
$28 = ($cnt$0>>>0)>($27>>>0);
if ($28) {
$29 = (($cnt$0) - ($27))|0;
$30 = HEAP32[$7>>2]|0;
$31 = ((($f)) + 4|0);
HEAP32[$31>>2] = $30;
$$cast = $30;
$32 = (($$cast) + ($29)|0);
$33 = ((($f)) + 8|0);
HEAP32[$33>>2] = $32;
$34 = HEAP32[$1>>2]|0;
$35 = ($34|0)==(0);
if ($35) {
$$0 = $len;
} else {
$36 = ((($$cast)) + 1|0);
HEAP32[$31>>2] = $36;
$37 = HEAP8[$$cast>>0]|0;
$38 = (($len) + -1)|0;
$39 = (($buf) + ($38)|0);
HEAP8[$39>>0] = $37;
$$0 = $len;
}
} else {
$$0 = $cnt$0;
}
}
STACKTOP = sp;return ($$0|0);
}
function _cleanup_115($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($p)) + 68|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
if ($2) {
___unlockfile($p);
}
return;
}
function _iswblank($wc) {
$wc = $wc|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_isblank($wc)|0);
return ($0|0);
}
function _isblank($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($c|0)==(32);
$1 = ($c|0)==(9);
$2 = $0 | $1;
$3 = $2&1;
return ($3|0);
}
function _strcmp($l,$r) {
$l = $l|0;
$r = $r|0;
var $$014 = 0, $$05 = 0, $$lcssa = 0, $$lcssa2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$0 = HEAP8[$l>>0]|0;
$1 = HEAP8[$r>>0]|0;
$2 = ($0<<24>>24)!=($1<<24>>24);
$3 = ($0<<24>>24)==(0);
$or$cond3 = $3 | $2;
if ($or$cond3) {
$$lcssa = $0;$$lcssa2 = $1;
} else {
$$014 = $l;$$05 = $r;
while(1) {
$4 = ((($$014)) + 1|0);
$5 = ((($$05)) + 1|0);
$6 = HEAP8[$4>>0]|0;
$7 = HEAP8[$5>>0]|0;
$8 = ($6<<24>>24)!=($7<<24>>24);
$9 = ($6<<24>>24)==(0);
$or$cond = $9 | $8;
if ($or$cond) {
$$lcssa = $6;$$lcssa2 = $7;
break;
} else {
$$014 = $4;$$05 = $5;
}
}
}
$10 = $$lcssa&255;
$11 = $$lcssa2&255;
$12 = (($10) - ($11))|0;
return ($12|0);
}
function _tolower($c) {
$c = $c|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_isupper($c)|0);
$1 = ($0|0)==(0);
$2 = $c | 32;
$$0 = $1 ? $c : $2;
return ($$0|0);
}
function _isupper($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($c) + -65)|0;
$1 = ($0>>>0)<(26);
$2 = $1&1;
return ($2|0);
}
function _towupper($wc) {
$wc = $wc|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (___towcase($wc,0)|0);
return ($0|0);
}
function ___towcase($wc,$lower) {
$wc = $wc|0;
$lower = $lower|0;
var $$2 = 0, $$lcssa = 0, $$lcssa53 = 0, $$neg20 = 0, $$neg20$lcssa = 0, $$neg22 = 0, $$neg23 = 0, $$not = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0;
var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0;
var $56 = 0, $57 = 0, $58 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$029 = 0, $i$128 = 0, $i$128$lcssa = 0, $or$cond = 0, $or$cond10 = 0, $or$cond12 = 0, $or$cond14 = 0, $or$cond16 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $lower << 1;
$1 = (($0) + -1)|0;
$2 = (($lower) + -1)|0;
$3 = (_iswalpha($wc)|0);
$4 = ($3|0)==(0);
$5 = (($wc) + -1536)|0;
$6 = ($5>>>0)<(2560);
$or$cond10 = $6 | $4;
$7 = (($wc) + -11776)|0;
$8 = ($7>>>0)<(30784);
$or$cond12 = $8 | $or$cond10;
$9 = (($wc) + -43008)|0;
$10 = ($9>>>0)<(22272);
$or$cond14 = $10 | $or$cond12;
L1: do {
if ($or$cond14) {
$$2 = $wc;
} else {
$11 = ($lower|0)!=(0);
$12 = (($wc) + -4256)|0;
$13 = ($12>>>0)<(46);
$or$cond16 = $11 & $13;
if ($or$cond16) {
$14 = ($wc|0)>(4293);
if ($14) {
switch ($wc|0) {
case 4295: case 4301: {
break;
}
default: {
$$2 = $wc;
break L1;
}
}
}
$15 = (($wc) + 7264)|0;
$$2 = $15;
break;
}
$$not = $11 ^ 1;
$16 = (($wc) + -11520)|0;
$17 = ($16>>>0)<(38);
$or$cond = $17 & $$not;
if ($or$cond) {
$18 = ($wc|0)>(11557);
if ($18) {
switch ($wc|0) {
case 11559: case 11565: {
break;
}
default: {
$$2 = $wc;
break L1;
}
}
}
$19 = (($wc) + -7264)|0;
$$2 = $19;
break;
} else {
$i$029 = 0;
}
while(1) {
$26 = (((18854 + ($i$029<<2)|0)) + 3|0);
$27 = HEAP8[$26>>0]|0;
$28 = (18854 + ($i$029<<2)|0);
$29 = HEAP16[$28>>1]|0;
$30 = $29&65535;
$31 = (((18854 + ($i$029<<2)|0)) + 2|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32 << 24 >> 24;
$34 = $33 & $2;
$$neg20 = (($wc) - ($30))|0;
$35 = (($$neg20) - ($34))|0;
$36 = $27&255;
$37 = ($35>>>0)<($36>>>0);
$20 = (($i$029) + 1)|0;
if ($37) {
$$lcssa = $32;$$lcssa53 = $33;$$neg20$lcssa = $$neg20;
label = 13;
break;
}
$21 = ($20|0)==(61);
if ($21) {
break;
} else {
$i$029 = $20;
}
}
if ((label|0) == 13) {
$38 = ($$lcssa<<24>>24)==(1);
if ($38) {
$39 = (($lower) + ($wc))|0;
$40 = $$neg20$lcssa & 1;
$41 = (($39) - ($40))|0;
$$2 = $41;
break;
} else {
$42 = Math_imul($$lcssa53, $1)|0;
$43 = (($42) + ($wc))|0;
$$2 = $43;
break;
}
}
$22 = (1 - ($lower))|0;
$23 = (18362 + ($22<<1)|0);
$24 = HEAP16[$23>>1]|0;
$25 = ($24<<16>>16)==(0);
L23: do {
if (!($25)) {
$45 = $24;$i$128 = 0;
while(1) {
$44 = $45&65535;
$46 = ($44|0)==($wc|0);
if ($46) {
$i$128$lcssa = $i$128;
break;
}
$50 = (($i$128) + 1)|0;
$51 = ((18362 + ($50<<2)|0) + ($22<<1)|0);
$52 = HEAP16[$51>>1]|0;
$53 = ($52<<16>>16)==(0);
if ($53) {
break L23;
} else {
$45 = $52;$i$128 = $50;
}
}
$47 = ((18362 + ($i$128$lcssa<<2)|0) + ($lower<<1)|0);
$48 = HEAP16[$47>>1]|0;
$49 = $48&65535;
$$2 = $49;
break L1;
}
} while(0);
$$neg22 = ($lower*40)|0;
$$neg23 = (($wc) + -66600)|0;
$54 = (($$neg23) + ($$neg22))|0;
$55 = ($54>>>0)<(40);
if ($55) {
$56 = (($wc) + -40)|0;
$57 = ($lower*80)|0;
$58 = (($56) + ($57))|0;
$$2 = $58;
} else {
$$2 = $wc;
}
}
} while(0);
return ($$2|0);
}
function _iswalpha($wc) {
$wc = $wc|0;
var $$ = 0, $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($wc>>>0)<(131072);
if ($0) {
$1 = $wc >>> 8;
$2 = (61682 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = $4 << 5;
$6 = $wc >>> 3;
$7 = $6 & 31;
$8 = $5 | $7;
$9 = (61682 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $wc & 7;
$13 = $11 >>> $12;
$14 = $13 & 1;
$$0 = $14;
} else {
$15 = ($wc>>>0)<(196606);
$$ = $15&1;
$$0 = $$;
}
return ($$0|0);
}
function _towlower($wc) {
$wc = $wc|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (___towcase($wc,1)|0);
return ($0|0);
}
function _islower($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($c) + -97)|0;
$1 = ($0>>>0)<(26);
$2 = $1&1;
return ($2|0);
}
function _strerror($e) {
$e = $e|0;
var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$03 = 0, $i$03$lcssa = 0, $i$12 = 0, $s$0$lcssa = 0, $s$01 = 0, $s$1 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$i$03 = 0;
while(1) {
$1 = (64658 + ($i$03)|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($e|0);
if ($4) {
$i$03$lcssa = $i$03;
label = 2;
break;
}
$5 = (($i$03) + 1)|0;
$6 = ($5|0)==(87);
if ($6) {
$i$12 = 87;$s$01 = 64746;
label = 5;
break;
} else {
$i$03 = $5;
}
}
if ((label|0) == 2) {
$0 = ($i$03$lcssa|0)==(0);
if ($0) {
$s$0$lcssa = 64746;
} else {
$i$12 = $i$03$lcssa;$s$01 = 64746;
label = 5;
}
}
if ((label|0) == 5) {
while(1) {
label = 0;
$s$1 = $s$01;
while(1) {
$7 = HEAP8[$s$1>>0]|0;
$8 = ($7<<24>>24)==(0);
$9 = ((($s$1)) + 1|0);
if ($8) {
$$lcssa = $9;
break;
} else {
$s$1 = $9;
}
}
$10 = (($i$12) + -1)|0;
$11 = ($10|0)==(0);
if ($11) {
$s$0$lcssa = $$lcssa;
break;
} else {
$i$12 = $10;$s$01 = $$lcssa;
label = 5;
}
}
}
return ($s$0$lcssa|0);
}
function _iswspace($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($wc|0)==(0);
if ($0) {
$4 = 0;
} else {
$1 = (_wcschr(16172,$wc)|0);
$2 = ($1|0)!=(0|0);
$4 = $2;
}
$3 = $4&1;
return ($3|0);
}
function _wcschr($s,$c) {
$s = $s|0;
$c = $c|0;
var $$0 = 0, $$01 = 0, $$01$lcssa = 0, $$lcssa = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($c|0)==(0);
if ($0) {
$1 = (_wcslen($s)|0);
$2 = (($s) + ($1<<2)|0);
$$0 = $2;
} else {
$$01 = $s;
while(1) {
$3 = HEAP32[$$01>>2]|0;
$4 = ($3|0)==(0);
$5 = ($3|0)==($c|0);
$or$cond = $4 | $5;
$6 = ((($$01)) + 4|0);
if ($or$cond) {
$$01$lcssa = $$01;$$lcssa = $3;
break;
} else {
$$01 = $6;
}
}
$7 = ($$lcssa|0)!=(0);
$8 = $7 ? $$01$lcssa : 0;
$$0 = $8;
}
return ($$0|0);
}
function _wcslen($s) {
$s = $s|0;
var $$0 = 0, $$0$lcssa = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0 = $s;
while(1) {
$0 = HEAP32[$$0>>2]|0;
$1 = ($0|0)==(0);
$2 = ((($$0)) + 4|0);
if ($1) {
$$0$lcssa = $$0;
break;
} else {
$$0 = $2;
}
}
$3 = $$0$lcssa;
$4 = $s;
$5 = (($3) - ($4))|0;
$6 = $5 >> 2;
return ($6|0);
}
function _isxdigit($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $isdigit = 0, $isdigittmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$isdigittmp = (($c) + -48)|0;
$isdigit = ($isdigittmp>>>0)<(10);
if ($isdigit) {
$4 = 1;
} else {
$0 = $c | 32;
$1 = (($0) + -97)|0;
$2 = ($1>>>0)<(6);
$4 = $2;
}
$3 = $4&1;
return ($3|0);
}
function _snprintf($s,$n,$fmt,$varargs) {
$s = $s|0;
$n = $n|0;
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $ap = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap = sp;
HEAP32[$ap>>2] = $varargs;
$0 = (_vsnprintf($s,$n,$fmt,$ap)|0);
STACKTOP = sp;return ($0|0);
}
function _vsnprintf($s,$n,$fmt,$ap) {
$s = $s|0;
$n = $n|0;
$fmt = $fmt|0;
$ap = $ap|0;
var $$$02 = 0, $$0 = 0, $$01 = 0, $$02 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $f = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$b = sp + 112|0;
$f = sp;
dest=$f; src=16260; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$0 = (($n) + -1)|0;
$1 = ($0>>>0)>(2147483646);
if ($1) {
$2 = ($n|0)==(0);
if ($2) {
$$01 = $b;$$02 = 1;
label = 4;
} else {
$3 = (___errno_location()|0);
HEAP32[$3>>2] = 75;
$$0 = -1;
}
} else {
$$01 = $s;$$02 = $n;
label = 4;
}
if ((label|0) == 4) {
$4 = $$01;
$5 = (-2 - ($4))|0;
$6 = ($$02>>>0)>($5>>>0);
$$$02 = $6 ? $5 : $$02;
$7 = ((($f)) + 48|0);
HEAP32[$7>>2] = $$$02;
$8 = ((($f)) + 20|0);
HEAP32[$8>>2] = $$01;
$9 = ((($f)) + 44|0);
HEAP32[$9>>2] = $$01;
$10 = (($$01) + ($$$02)|0);
$11 = ((($f)) + 16|0);
HEAP32[$11>>2] = $10;
$12 = ((($f)) + 28|0);
HEAP32[$12>>2] = $10;
$13 = (_vfprintf($f,$fmt,$ap)|0);
$14 = ($$$02|0)==(0);
if ($14) {
$$0 = $13;
} else {
$15 = HEAP32[$8>>2]|0;
$16 = HEAP32[$11>>2]|0;
$17 = ($15|0)==($16|0);
$18 = $17 << 31 >> 31;
$19 = (($15) + ($18)|0);
HEAP8[$19>>0] = 0;
$$0 = $13;
}
}
STACKTOP = sp;return ($$0|0);
}
function _sn_write($f,$s,$l) {
$f = $f|0;
$s = $s|0;
$l = $l|0;
var $$cast = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $l$ = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 16|0);
$1 = HEAP32[$0>>2]|0;
$2 = ((($f)) + 20|0);
$3 = HEAP32[$2>>2]|0;
$4 = (($1) - ($3))|0;
$5 = ($4>>>0)>($l>>>0);
$l$ = $5 ? $l : $4;
$$cast = $3;
_memcpy(($$cast|0),($s|0),($l$|0))|0;
$6 = HEAP32[$2>>2]|0;
$7 = (($6) + ($l$)|0);
HEAP32[$2>>2] = $7;
return ($l|0);
}
function _vfprintf($f,$fmt,$ap) {
$f = $f|0;
$fmt = $fmt|0;
$ap = $ap|0;
var $$ = 0, $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0;
var $ret$1 = 0, $ret$1$ = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap2 = sp + 120|0;
$nl_type = sp + 80|0;
$nl_arg = sp;
$internal_buf = sp + 136|0;
dest=$nl_type; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$vacopy_currentptr = HEAP32[$ap>>2]|0;
HEAP32[$ap2>>2] = $vacopy_currentptr;
$0 = (_printf_core(0,$fmt,$ap2,$nl_arg,$nl_type)|0);
$1 = ($0|0)<(0);
if ($1) {
$$0 = -1;
} else {
$2 = ((($f)) + 76|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
if ($4) {
$5 = (___lockfile($f)|0);
$32 = $5;
} else {
$32 = 0;
}
$6 = HEAP32[$f>>2]|0;
$7 = $6 & 32;
$8 = ((($f)) + 74|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)<(1);
if ($10) {
$11 = $6 & -33;
HEAP32[$f>>2] = $11;
}
$12 = ((($f)) + 48|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)==(0);
if ($14) {
$16 = ((($f)) + 44|0);
$17 = HEAP32[$16>>2]|0;
HEAP32[$16>>2] = $internal_buf;
$18 = ((($f)) + 28|0);
HEAP32[$18>>2] = $internal_buf;
$19 = ((($f)) + 20|0);
HEAP32[$19>>2] = $internal_buf;
HEAP32[$12>>2] = 80;
$20 = ((($internal_buf)) + 80|0);
$21 = ((($f)) + 16|0);
HEAP32[$21>>2] = $20;
$22 = (_printf_core($f,$fmt,$ap2,$nl_arg,$nl_type)|0);
$23 = ($17|0)==(0|0);
if ($23) {
$ret$1 = $22;
} else {
$24 = ((($f)) + 36|0);
$25 = HEAP32[$24>>2]|0;
(FUNCTION_TABLE_iiii[$25 & 127]($f,0,0)|0);
$26 = HEAP32[$19>>2]|0;
$27 = ($26|0)==(0|0);
$$ = $27 ? -1 : $22;
HEAP32[$16>>2] = $17;
HEAP32[$12>>2] = 0;
HEAP32[$21>>2] = 0;
HEAP32[$18>>2] = 0;
HEAP32[$19>>2] = 0;
$ret$1 = $$;
}
} else {
$15 = (_printf_core($f,$fmt,$ap2,$nl_arg,$nl_type)|0);
$ret$1 = $15;
}
$28 = HEAP32[$f>>2]|0;
$29 = $28 & 32;
$30 = ($29|0)==(0);
$ret$1$ = $30 ? $ret$1 : -1;
$31 = $28 | $7;
HEAP32[$f>>2] = $31;
$33 = ($32|0)==(0);
if (!($33)) {
___unlockfile($f);
}
$$0 = $ret$1$;
}
STACKTOP = sp;return ($$0|0);
}
function _printf_core($f,$fmt,$ap,$nl_arg,$nl_type) {
$f = $f|0;
$fmt = $fmt|0;
$ap = $ap|0;
$nl_arg = $nl_arg|0;
$nl_type = $nl_type|0;
var $$ = 0, $$$i = 0, $$0 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$012$i = 0, $$013$i = 0, $$03$i33 = 0, $$07$i = 0.0, $$1$i = 0.0, $$114$i = 0, $$2$i = 0.0, $$20$i = 0.0, $$210$$24$i = 0, $$210$$26$i = 0, $$210$i = 0, $$23$i = 0, $$25$i = 0, $$3$i = 0.0, $$311$i = 0;
var $$33$i = 0, $$36$i = 0.0, $$4$i = 0.0, $$412$lcssa$i = 0, $$41278$i = 0, $$43 = 0, $$5$lcssa$i = 0, $$589$i = 0, $$a$3$i = 0, $$a$3191$i = 0, $$a$3192$i = 0, $$fl$4 = 0, $$l10n$0 = 0, $$lcssa = 0, $$lcssa162$i = 0, $$lcssa295 = 0, $$lcssa300 = 0, $$lcssa301 = 0, $$lcssa302 = 0, $$lcssa303 = 0;
var $$lcssa304 = 0, $$lcssa306 = 0, $$lcssa316 = 0, $$lcssa319 = 0.0, $$lcssa321 = 0, $$neg55$i = 0, $$neg56$i = 0, $$p$$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr50$i = 0, $$pre = 0, $$pre$i = 0, $$pre$phi190$iZ2D = 0, $$pre170 = 0, $$pre171 = 0, $$pre185$i = 0, $$pre188$i = 0;
var $$pre189$i = 0, $$z$3$i = 0, $$z$4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0;
var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0;
var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0;
var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0;
var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0;
var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0;
var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0;
var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0;
var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0;
var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0.0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0.0, $363 = 0, $364 = 0, $365 = 0;
var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0;
var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0.0, $391 = 0.0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0;
var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0.0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0.0, $411 = 0.0, $412 = 0.0, $413 = 0.0, $414 = 0.0, $415 = 0.0, $416 = 0, $417 = 0, $418 = 0, $419 = 0;
var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0;
var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0.0, $442 = 0.0, $443 = 0.0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0;
var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0;
var $474 = 0.0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0.0, $483 = 0.0, $484 = 0.0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0;
var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0;
var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0;
var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0;
var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0;
var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0;
var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0.0, $594 = 0.0, $595 = 0, $596 = 0.0, $597 = 0, $598 = 0, $599 = 0, $6 = 0;
var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0;
var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0;
var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0;
var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0;
var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0;
var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0;
var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0;
var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0;
var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0;
var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0;
var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $a$0 = 0, $a$1 = 0, $a$1$lcssa$i = 0, $a$1149$i = 0, $a$2 = 0, $a$2$ph$i = 0, $a$3$lcssa$i = 0, $a$3136$i = 0, $a$5$lcssa$i = 0, $a$5111$i = 0, $a$6$i = 0, $a$8$i = 0, $a$9$ph$i = 0, $arg = 0, $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0;
var $argpos$0 = 0, $big$i = 0, $buf = 0, $buf$i = 0, $carry$0142$i = 0, $carry3$0130$i = 0, $cnt$0 = 0, $cnt$1 = 0, $cnt$1$lcssa = 0, $d$0$i = 0, $d$0141$i = 0, $d$0143$i = 0, $d$1129$i = 0, $d$2$lcssa$i = 0, $d$2110$i = 0, $d$4$i = 0, $d$584$i = 0, $d$677$i = 0, $d$788$i = 0, $e$0125$i = 0;
var $e$1$i = 0, $e$2106$i = 0, $e$4$i = 0, $e$5$ph$i = 0, $e2$i = 0, $ebuf0$i = 0, $estr$0$i = 0, $estr$1$lcssa$i = 0, $estr$195$i = 0, $estr$2$i = 0, $exitcond$i = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0;
var $expanded8 = 0, $fl$0100 = 0, $fl$053 = 0, $fl$1 = 0, $fl$1$ = 0, $fl$3 = 0, $fl$4 = 0, $fl$6 = 0, $i$0$lcssa = 0, $i$0$lcssa178 = 0, $i$0105 = 0, $i$0124$i = 0, $i$03$i = 0, $i$03$i25 = 0, $i$1$lcssa$i = 0, $i$1116 = 0, $i$1118$i = 0, $i$2105$i = 0, $i$291 = 0, $i$291$lcssa = 0;
var $i$3101$i = 0, $i$389 = 0, $isdigit = 0, $isdigit$i = 0, $isdigit$i27 = 0, $isdigit10 = 0, $isdigit12 = 0, $isdigit2$i = 0, $isdigit2$i23 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp$i = 0, $isdigittmp$i26 = 0, $isdigittmp1$i = 0, $isdigittmp1$i22 = 0, $isdigittmp11 = 0, $isdigittmp4$i = 0, $isdigittmp4$i24 = 0, $isdigittmp9 = 0, $j$0$i = 0;
var $j$0117$i = 0, $j$0119$i = 0, $j$1102$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1$i = 0, $l$1104 = 0, $l$2 = 0, $l10n$0 = 0, $l10n$0$lcssa = 0, $l10n$0$phi = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0, $mb = 0, $notlhs$i = 0, $notrhs$i = 0, $or$cond = 0, $or$cond$i = 0;
var $or$cond122 = 0, $or$cond15 = 0, $or$cond17 = 0, $or$cond18$i = 0, $or$cond20 = 0, $or$cond22$i = 0, $or$cond3$not$i = 0, $or$cond31$i = 0, $or$cond6$i = 0, $p$0 = 0, $p$0$ = 0, $p$1 = 0, $p$2 = 0, $p$2$ = 0, $p$3 = 0, $p$4176 = 0, $p$5 = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0;
var $pl$1$i = 0, $pl$2 = 0, $prefix$0 = 0, $prefix$0$$i = 0, $prefix$0$i = 0, $prefix$1 = 0, $prefix$2 = 0, $r$0$a$9$i = 0, $re$171$i = 0, $round$070$i = 0.0, $round6$1$i = 0.0, $s$0 = 0, $s$0$i = 0, $s$1 = 0, $s$1$i = 0, $s$1$i$lcssa = 0, $s$2$lcssa = 0, $s$292 = 0, $s$4 = 0, $s$6 = 0;
var $s$7 = 0, $s$7$lcssa298 = 0, $s1$0$i = 0, $s7$081$i = 0, $s7$1$i = 0, $s8$0$lcssa$i = 0, $s8$072$i = 0, $s9$0$i = 0, $s9$185$i = 0, $s9$2$i = 0, $scevgep182$i = 0, $scevgep182183$i = 0, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $st$0$lcssa299 = 0, $storemerge = 0, $storemerge13 = 0, $storemerge851 = 0, $storemerge899 = 0;
var $sum = 0, $t$0 = 0, $t$1 = 0, $w$$i = 0, $w$0 = 0, $w$1 = 0, $w$2 = 0, $w$32$i = 0, $wc = 0, $ws$0106 = 0, $ws$1117 = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$093 = 0, $z$1 = 0, $z$1$lcssa$i = 0, $z$1148$i = 0, $z$2 = 0, $z$2$i = 0, $z$2$i$lcssa = 0;
var $z$3$lcssa$i = 0, $z$3135$i = 0, $z$4$i = 0, $z$7$$i = 0, $z$7$i = 0, $z$7$i$lcssa = 0, $z$7$ph$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 624|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$big$i = sp + 24|0;
$e2$i = sp + 16|0;
$buf$i = sp + 588|0;
$ebuf0$i = sp + 576|0;
$arg = sp;
$buf = sp + 536|0;
$wc = sp + 8|0;
$mb = sp + 528|0;
$0 = ($f|0)!=(0|0);
$1 = ((($buf)) + 40|0);
$2 = $1;
$3 = ((($buf)) + 39|0);
$4 = ((($wc)) + 4|0);
$5 = $buf$i;
$6 = (0 - ($5))|0;
$7 = ((($ebuf0$i)) + 12|0);
$8 = ((($ebuf0$i)) + 11|0);
$9 = $7;
$10 = (($9) - ($5))|0;
$11 = (-2 - ($5))|0;
$12 = (($9) + 2)|0;
$13 = ((($big$i)) + 288|0);
$14 = ((($buf$i)) + 9|0);
$15 = $14;
$16 = ((($buf$i)) + 8|0);
$cnt$0 = 0;$l$0 = 0;$l10n$0 = 0;$s$0 = $fmt;
L1: while(1) {
$17 = ($cnt$0|0)>(-1);
do {
if ($17) {
$18 = (2147483647 - ($cnt$0))|0;
$19 = ($l$0|0)>($18|0);
if ($19) {
$20 = (___errno_location()|0);
HEAP32[$20>>2] = 75;
$cnt$1 = -1;
break;
} else {
$21 = (($l$0) + ($cnt$0))|0;
$cnt$1 = $21;
break;
}
} else {
$cnt$1 = $cnt$0;
}
} while(0);
$22 = HEAP8[$s$0>>0]|0;
$23 = ($22<<24>>24)==(0);
if ($23) {
$cnt$1$lcssa = $cnt$1;$l10n$0$lcssa = $l10n$0;
label = 244;
break;
} else {
$24 = $22;$s$1 = $s$0;
}
L9: while(1) {
switch ($24<<24>>24) {
case 37: {
$s$292 = $s$1;$z$093 = $s$1;
label = 9;
break L9;
break;
}
case 0: {
$s$2$lcssa = $s$1;$z$0$lcssa = $s$1;
break L9;
break;
}
default: {
}
}
$25 = ((($s$1)) + 1|0);
$$pre = HEAP8[$25>>0]|0;
$24 = $$pre;$s$1 = $25;
}
L12: do {
if ((label|0) == 9) {
while(1) {
label = 0;
$26 = ((($s$292)) + 1|0);
$27 = HEAP8[$26>>0]|0;
$28 = ($27<<24>>24)==(37);
if (!($28)) {
$s$2$lcssa = $s$292;$z$0$lcssa = $z$093;
break L12;
}
$29 = ((($z$093)) + 1|0);
$30 = ((($s$292)) + 2|0);
$31 = HEAP8[$30>>0]|0;
$32 = ($31<<24>>24)==(37);
if ($32) {
$s$292 = $30;$z$093 = $29;
label = 9;
} else {
$s$2$lcssa = $30;$z$0$lcssa = $29;
break;
}
}
}
} while(0);
$33 = $z$0$lcssa;
$34 = $s$0;
$35 = (($33) - ($34))|0;
if ($0) {
$36 = HEAP32[$f>>2]|0;
$37 = $36 & 32;
$38 = ($37|0)==(0);
if ($38) {
(___fwritex($s$0,$35,$f)|0);
}
}
$39 = ($z$0$lcssa|0)==($s$0|0);
if (!($39)) {
$l10n$0$phi = $l10n$0;$cnt$0 = $cnt$1;$l$0 = $35;$s$0 = $s$2$lcssa;$l10n$0 = $l10n$0$phi;
continue;
}
$40 = ((($s$2$lcssa)) + 1|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41 << 24 >> 24;
$isdigittmp = (($42) + -48)|0;
$isdigit = ($isdigittmp>>>0)<(10);
if ($isdigit) {
$43 = ((($s$2$lcssa)) + 2|0);
$44 = HEAP8[$43>>0]|0;
$45 = ($44<<24>>24)==(36);
$46 = ((($s$2$lcssa)) + 3|0);
$$43 = $45 ? $46 : $40;
$$l10n$0 = $45 ? 1 : $l10n$0;
$isdigittmp$ = $45 ? $isdigittmp : -1;
$$pre170 = HEAP8[$$43>>0]|0;
$48 = $$pre170;$argpos$0 = $isdigittmp$;$l10n$1 = $$l10n$0;$storemerge = $$43;
} else {
$48 = $41;$argpos$0 = -1;$l10n$1 = $l10n$0;$storemerge = $40;
}
$47 = $48 << 24 >> 24;
$49 = $47 & -32;
$50 = ($49|0)==(32);
L25: do {
if ($50) {
$52 = $47;$57 = $48;$fl$0100 = 0;$storemerge899 = $storemerge;
while(1) {
$51 = (($52) + -32)|0;
$53 = 1 << $51;
$54 = $53 & 75913;
$55 = ($54|0)==(0);
if ($55) {
$66 = $57;$fl$053 = $fl$0100;$storemerge851 = $storemerge899;
break L25;
}
$56 = $57 << 24 >> 24;
$58 = (($56) + -32)|0;
$59 = 1 << $58;
$60 = $59 | $fl$0100;
$61 = ((($storemerge899)) + 1|0);
$62 = HEAP8[$61>>0]|0;
$63 = $62 << 24 >> 24;
$64 = $63 & -32;
$65 = ($64|0)==(32);
if ($65) {
$52 = $63;$57 = $62;$fl$0100 = $60;$storemerge899 = $61;
} else {
$66 = $62;$fl$053 = $60;$storemerge851 = $61;
break;
}
}
} else {
$66 = $48;$fl$053 = 0;$storemerge851 = $storemerge;
}
} while(0);
$67 = ($66<<24>>24)==(42);
do {
if ($67) {
$68 = ((($storemerge851)) + 1|0);
$69 = HEAP8[$68>>0]|0;
$70 = $69 << 24 >> 24;
$isdigittmp11 = (($70) + -48)|0;
$isdigit12 = ($isdigittmp11>>>0)<(10);
if ($isdigit12) {
$71 = ((($storemerge851)) + 2|0);
$72 = HEAP8[$71>>0]|0;
$73 = ($72<<24>>24)==(36);
if ($73) {
$74 = (($nl_type) + ($isdigittmp11<<2)|0);
HEAP32[$74>>2] = 10;
$75 = HEAP8[$68>>0]|0;
$76 = $75 << 24 >> 24;
$77 = (($76) + -48)|0;
$78 = (($nl_arg) + ($77<<3)|0);
$79 = $78;
$80 = $79;
$81 = HEAP32[$80>>2]|0;
$82 = (($79) + 4)|0;
$83 = $82;
$84 = HEAP32[$83>>2]|0;
$85 = ((($storemerge851)) + 3|0);
$l10n$2 = 1;$storemerge13 = $85;$w$0 = $81;
} else {
label = 24;
}
} else {
label = 24;
}
if ((label|0) == 24) {
label = 0;
$86 = ($l10n$1|0)==(0);
if (!($86)) {
$$0 = -1;
break L1;
}
if (!($0)) {
$fl$1 = $fl$053;$l10n$3 = 0;$s$4 = $68;$w$1 = 0;
break;
}
$arglist_current = HEAP32[$ap>>2]|0;
$87 = $arglist_current;
$88 = ((0) + 4|0);
$expanded4 = $88;
$expanded = (($expanded4) - 1)|0;
$89 = (($87) + ($expanded))|0;
$90 = ((0) + 4|0);
$expanded8 = $90;
$expanded7 = (($expanded8) - 1)|0;
$expanded6 = $expanded7 ^ -1;
$91 = $89 & $expanded6;
$92 = $91;
$93 = HEAP32[$92>>2]|0;
$arglist_next = ((($92)) + 4|0);
HEAP32[$ap>>2] = $arglist_next;
$l10n$2 = 0;$storemerge13 = $68;$w$0 = $93;
}
$94 = ($w$0|0)<(0);
if ($94) {
$95 = $fl$053 | 8192;
$96 = (0 - ($w$0))|0;
$fl$1 = $95;$l10n$3 = $l10n$2;$s$4 = $storemerge13;$w$1 = $96;
} else {
$fl$1 = $fl$053;$l10n$3 = $l10n$2;$s$4 = $storemerge13;$w$1 = $w$0;
}
} else {
$97 = $66 << 24 >> 24;
$isdigittmp1$i = (($97) + -48)|0;
$isdigit2$i = ($isdigittmp1$i>>>0)<(10);
if ($isdigit2$i) {
$101 = $storemerge851;$i$03$i = 0;$isdigittmp4$i = $isdigittmp1$i;
while(1) {
$98 = ($i$03$i*10)|0;
$99 = (($98) + ($isdigittmp4$i))|0;
$100 = ((($101)) + 1|0);
$102 = HEAP8[$100>>0]|0;
$103 = $102 << 24 >> 24;
$isdigittmp$i = (($103) + -48)|0;
$isdigit$i = ($isdigittmp$i>>>0)<(10);
if ($isdigit$i) {
$101 = $100;$i$03$i = $99;$isdigittmp4$i = $isdigittmp$i;
} else {
$$lcssa = $99;$$lcssa295 = $100;
break;
}
}
$104 = ($$lcssa|0)<(0);
if ($104) {
$$0 = -1;
break L1;
} else {
$fl$1 = $fl$053;$l10n$3 = $l10n$1;$s$4 = $$lcssa295;$w$1 = $$lcssa;
}
} else {
$fl$1 = $fl$053;$l10n$3 = $l10n$1;$s$4 = $storemerge851;$w$1 = 0;
}
}
} while(0);
$105 = HEAP8[$s$4>>0]|0;
$106 = ($105<<24>>24)==(46);
L46: do {
if ($106) {
$107 = ((($s$4)) + 1|0);
$108 = HEAP8[$107>>0]|0;
$109 = ($108<<24>>24)==(42);
if (!($109)) {
$136 = $108 << 24 >> 24;
$isdigittmp1$i22 = (($136) + -48)|0;
$isdigit2$i23 = ($isdigittmp1$i22>>>0)<(10);
if ($isdigit2$i23) {
$140 = $107;$i$03$i25 = 0;$isdigittmp4$i24 = $isdigittmp1$i22;
} else {
$p$0 = 0;$s$6 = $107;
break;
}
while(1) {
$137 = ($i$03$i25*10)|0;
$138 = (($137) + ($isdigittmp4$i24))|0;
$139 = ((($140)) + 1|0);
$141 = HEAP8[$139>>0]|0;
$142 = $141 << 24 >> 24;
$isdigittmp$i26 = (($142) + -48)|0;
$isdigit$i27 = ($isdigittmp$i26>>>0)<(10);
if ($isdigit$i27) {
$140 = $139;$i$03$i25 = $138;$isdigittmp4$i24 = $isdigittmp$i26;
} else {
$p$0 = $138;$s$6 = $139;
break L46;
}
}
}
$110 = ((($s$4)) + 2|0);
$111 = HEAP8[$110>>0]|0;
$112 = $111 << 24 >> 24;
$isdigittmp9 = (($112) + -48)|0;
$isdigit10 = ($isdigittmp9>>>0)<(10);
if ($isdigit10) {
$113 = ((($s$4)) + 3|0);
$114 = HEAP8[$113>>0]|0;
$115 = ($114<<24>>24)==(36);
if ($115) {
$116 = (($nl_type) + ($isdigittmp9<<2)|0);
HEAP32[$116>>2] = 10;
$117 = HEAP8[$110>>0]|0;
$118 = $117 << 24 >> 24;
$119 = (($118) + -48)|0;
$120 = (($nl_arg) + ($119<<3)|0);
$121 = $120;
$122 = $121;
$123 = HEAP32[$122>>2]|0;
$124 = (($121) + 4)|0;
$125 = $124;
$126 = HEAP32[$125>>2]|0;
$127 = ((($s$4)) + 4|0);
$p$0 = $123;$s$6 = $127;
break;
}
}
$128 = ($l10n$3|0)==(0);
if (!($128)) {
$$0 = -1;
break L1;
}
if ($0) {
$arglist_current2 = HEAP32[$ap>>2]|0;
$129 = $arglist_current2;
$130 = ((0) + 4|0);
$expanded11 = $130;
$expanded10 = (($expanded11) - 1)|0;
$131 = (($129) + ($expanded10))|0;
$132 = ((0) + 4|0);
$expanded15 = $132;
$expanded14 = (($expanded15) - 1)|0;
$expanded13 = $expanded14 ^ -1;
$133 = $131 & $expanded13;
$134 = $133;
$135 = HEAP32[$134>>2]|0;
$arglist_next3 = ((($134)) + 4|0);
HEAP32[$ap>>2] = $arglist_next3;
$p$0 = $135;$s$6 = $110;
} else {
$p$0 = 0;$s$6 = $110;
}
} else {
$p$0 = -1;$s$6 = $s$4;
}
} while(0);
$s$7 = $s$6;$st$0 = 0;
while(1) {
$143 = HEAP8[$s$7>>0]|0;
$144 = $143 << 24 >> 24;
$145 = (($144) + -65)|0;
$146 = ($145>>>0)>(57);
if ($146) {
$$0 = -1;
break L1;
}
$147 = ((($s$7)) + 1|0);
$148 = ((66550 + (($st$0*58)|0)|0) + ($145)|0);
$149 = HEAP8[$148>>0]|0;
$150 = $149&255;
$151 = (($150) + -1)|0;
$152 = ($151>>>0)<(8);
if ($152) {
$s$7 = $147;$st$0 = $150;
} else {
$$lcssa300 = $147;$$lcssa301 = $149;$$lcssa302 = $150;$s$7$lcssa298 = $s$7;$st$0$lcssa299 = $st$0;
break;
}
}
$153 = ($$lcssa301<<24>>24)==(0);
if ($153) {
$$0 = -1;
break;
}
$154 = ($$lcssa301<<24>>24)==(19);
$155 = ($argpos$0|0)>(-1);
do {
if ($154) {
if ($155) {
$$0 = -1;
break L1;
} else {
label = 52;
}
} else {
if ($155) {
$156 = (($nl_type) + ($argpos$0<<2)|0);
HEAP32[$156>>2] = $$lcssa302;
$157 = (($nl_arg) + ($argpos$0<<3)|0);
$158 = $157;
$159 = $158;
$160 = HEAP32[$159>>2]|0;
$161 = (($158) + 4)|0;
$162 = $161;
$163 = HEAP32[$162>>2]|0;
$164 = $arg;
$165 = $164;
HEAP32[$165>>2] = $160;
$166 = (($164) + 4)|0;
$167 = $166;
HEAP32[$167>>2] = $163;
label = 52;
break;
}
if (!($0)) {
$$0 = 0;
break L1;
}
_pop_arg_180($arg,$$lcssa302,$ap);
}
} while(0);
if ((label|0) == 52) {
label = 0;
if (!($0)) {
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue;
}
}
$168 = HEAP8[$s$7$lcssa298>>0]|0;
$169 = $168 << 24 >> 24;
$170 = ($st$0$lcssa299|0)!=(0);
$171 = $169 & 15;
$172 = ($171|0)==(3);
$or$cond15 = $170 & $172;
$173 = $169 & -33;
$t$0 = $or$cond15 ? $173 : $169;
$174 = $fl$1 & 8192;
$175 = ($174|0)==(0);
$176 = $fl$1 & -65537;
$fl$1$ = $175 ? $fl$1 : $176;
L75: do {
switch ($t$0|0) {
case 110: {
switch ($st$0$lcssa299|0) {
case 0: {
$183 = HEAP32[$arg>>2]|0;
HEAP32[$183>>2] = $cnt$1;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 1: {
$184 = HEAP32[$arg>>2]|0;
HEAP32[$184>>2] = $cnt$1;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 2: {
$185 = ($cnt$1|0)<(0);
$186 = $185 << 31 >> 31;
$187 = HEAP32[$arg>>2]|0;
$188 = $187;
$189 = $188;
HEAP32[$189>>2] = $cnt$1;
$190 = (($188) + 4)|0;
$191 = $190;
HEAP32[$191>>2] = $186;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 3: {
$192 = $cnt$1&65535;
$193 = HEAP32[$arg>>2]|0;
HEAP16[$193>>1] = $192;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 4: {
$194 = $cnt$1&255;
$195 = HEAP32[$arg>>2]|0;
HEAP8[$195>>0] = $194;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 6: {
$196 = HEAP32[$arg>>2]|0;
HEAP32[$196>>2] = $cnt$1;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 7: {
$197 = ($cnt$1|0)<(0);
$198 = $197 << 31 >> 31;
$199 = HEAP32[$arg>>2]|0;
$200 = $199;
$201 = $200;
HEAP32[$201>>2] = $cnt$1;
$202 = (($200) + 4)|0;
$203 = $202;
HEAP32[$203>>2] = $198;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
default: {
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
}
}
break;
}
case 112: {
$204 = ($p$0>>>0)>(8);
$205 = $204 ? $p$0 : 8;
$206 = $fl$1$ | 8;
$fl$3 = $206;$p$1 = $205;$t$1 = 120;
label = 64;
break;
}
case 88: case 120: {
$fl$3 = $fl$1$;$p$1 = $p$0;$t$1 = $t$0;
label = 64;
break;
}
case 111: {
$244 = $arg;
$245 = $244;
$246 = HEAP32[$245>>2]|0;
$247 = (($244) + 4)|0;
$248 = $247;
$249 = HEAP32[$248>>2]|0;
$250 = ($246|0)==(0);
$251 = ($249|0)==(0);
$252 = $250 & $251;
if ($252) {
$$0$lcssa$i = $1;
} else {
$$03$i33 = $1;$254 = $246;$258 = $249;
while(1) {
$253 = $254 & 7;
$255 = $253 | 48;
$256 = $255&255;
$257 = ((($$03$i33)) + -1|0);
HEAP8[$257>>0] = $256;
$259 = (_bitshift64Lshr(($254|0),($258|0),3)|0);
$260 = tempRet0;
$261 = ($259|0)==(0);
$262 = ($260|0)==(0);
$263 = $261 & $262;
if ($263) {
$$0$lcssa$i = $257;
break;
} else {
$$03$i33 = $257;$254 = $259;$258 = $260;
}
}
}
$264 = $fl$1$ & 8;
$265 = ($264|0)==(0);
if ($265) {
$a$0 = $$0$lcssa$i;$fl$4 = $fl$1$;$p$2 = $p$0;$pl$1 = 0;$prefix$1 = 67030;
label = 77;
} else {
$266 = $$0$lcssa$i;
$267 = (($2) - ($266))|0;
$268 = ($p$0|0)>($267|0);
$269 = (($267) + 1)|0;
$p$0$ = $268 ? $p$0 : $269;
$a$0 = $$0$lcssa$i;$fl$4 = $fl$1$;$p$2 = $p$0$;$pl$1 = 0;$prefix$1 = 67030;
label = 77;
}
break;
}
case 105: case 100: {
$270 = $arg;
$271 = $270;
$272 = HEAP32[$271>>2]|0;
$273 = (($270) + 4)|0;
$274 = $273;
$275 = HEAP32[$274>>2]|0;
$276 = ($275|0)<(0);
if ($276) {
$277 = (_i64Subtract(0,0,($272|0),($275|0))|0);
$278 = tempRet0;
$279 = $arg;
$280 = $279;
HEAP32[$280>>2] = $277;
$281 = (($279) + 4)|0;
$282 = $281;
HEAP32[$282>>2] = $278;
$287 = $277;$288 = $278;$pl$0 = 1;$prefix$0 = 67030;
label = 76;
break L75;
}
$283 = $fl$1$ & 2048;
$284 = ($283|0)==(0);
if ($284) {
$285 = $fl$1$ & 1;
$286 = ($285|0)==(0);
$$ = $286 ? 67030 : (67032);
$287 = $272;$288 = $275;$pl$0 = $285;$prefix$0 = $$;
label = 76;
} else {
$287 = $272;$288 = $275;$pl$0 = 1;$prefix$0 = (67031);
label = 76;
}
break;
}
case 117: {
$177 = $arg;
$178 = $177;
$179 = HEAP32[$178>>2]|0;
$180 = (($177) + 4)|0;
$181 = $180;
$182 = HEAP32[$181>>2]|0;
$287 = $179;$288 = $182;$pl$0 = 0;$prefix$0 = 67030;
label = 76;
break;
}
case 99: {
$308 = $arg;
$309 = $308;
$310 = HEAP32[$309>>2]|0;
$311 = (($308) + 4)|0;
$312 = $311;
$313 = HEAP32[$312>>2]|0;
$314 = $310&255;
HEAP8[$3>>0] = $314;
$a$2 = $3;$fl$6 = $176;$p$5 = 1;$pl$2 = 0;$prefix$2 = 67030;$z$2 = $1;
break;
}
case 109: {
$315 = (___errno_location()|0);
$316 = HEAP32[$315>>2]|0;
$317 = (_strerror($316)|0);
$a$1 = $317;
label = 82;
break;
}
case 115: {
$318 = HEAP32[$arg>>2]|0;
$319 = ($318|0)!=(0|0);
$320 = $319 ? $318 : 67040;
$a$1 = $320;
label = 82;
break;
}
case 67: {
$327 = $arg;
$328 = $327;
$329 = HEAP32[$328>>2]|0;
$330 = (($327) + 4)|0;
$331 = $330;
$332 = HEAP32[$331>>2]|0;
HEAP32[$wc>>2] = $329;
HEAP32[$4>>2] = 0;
HEAP32[$arg>>2] = $wc;
$798 = $wc;$p$4176 = -1;
label = 86;
break;
}
case 83: {
$$pre171 = HEAP32[$arg>>2]|0;
$333 = ($p$0|0)==(0);
if ($333) {
_pad($f,32,$w$1,0,$fl$1$);
$i$0$lcssa178 = 0;
label = 97;
} else {
$798 = $$pre171;$p$4176 = $p$0;
label = 86;
}
break;
}
case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: {
$358 = +HEAPF64[$arg>>3];
HEAP32[$e2$i>>2] = 0;
HEAPF64[tempDoublePtr>>3] = $358;$359 = HEAP32[tempDoublePtr>>2]|0;
$360 = HEAP32[tempDoublePtr+4>>2]|0;
$361 = ($360|0)<(0);
if ($361) {
$362 = -$358;
$$07$i = $362;$pl$0$i = 1;$prefix$0$i = 67047;
} else {
$363 = $fl$1$ & 2048;
$364 = ($363|0)==(0);
if ($364) {
$365 = $fl$1$ & 1;
$366 = ($365|0)==(0);
$$$i = $366 ? (67048) : (67053);
$$07$i = $358;$pl$0$i = $365;$prefix$0$i = $$$i;
} else {
$$07$i = $358;$pl$0$i = 1;$prefix$0$i = (67050);
}
}
HEAPF64[tempDoublePtr>>3] = $$07$i;$367 = HEAP32[tempDoublePtr>>2]|0;
$368 = HEAP32[tempDoublePtr+4>>2]|0;
$369 = $368 & 2146435072;
$370 = ($369>>>0)<(2146435072);
$371 = (0)<(0);
$372 = ($369|0)==(2146435072);
$373 = $372 & $371;
$374 = $370 | $373;
do {
if ($374) {
$390 = (+_frexpl($$07$i,$e2$i));
$391 = $390 * 2.0;
$392 = $391 != 0.0;
if ($392) {
$393 = HEAP32[$e2$i>>2]|0;
$394 = (($393) + -1)|0;
HEAP32[$e2$i>>2] = $394;
}
$395 = $t$0 | 32;
$396 = ($395|0)==(97);
if ($396) {
$397 = $t$0 & 32;
$398 = ($397|0)==(0);
$399 = ((($prefix$0$i)) + 9|0);
$prefix$0$$i = $398 ? $prefix$0$i : $399;
$400 = $pl$0$i | 2;
$401 = ($p$0>>>0)>(11);
$402 = (12 - ($p$0))|0;
$403 = ($402|0)==(0);
$404 = $401 | $403;
do {
if ($404) {
$$1$i = $391;
} else {
$re$171$i = $402;$round$070$i = 8.0;
while(1) {
$405 = (($re$171$i) + -1)|0;
$406 = $round$070$i * 16.0;
$407 = ($405|0)==(0);
if ($407) {
$$lcssa319 = $406;
break;
} else {
$re$171$i = $405;$round$070$i = $406;
}
}
$408 = HEAP8[$prefix$0$$i>>0]|0;
$409 = ($408<<24>>24)==(45);
if ($409) {
$410 = -$391;
$411 = $410 - $$lcssa319;
$412 = $$lcssa319 + $411;
$413 = -$412;
$$1$i = $413;
break;
} else {
$414 = $391 + $$lcssa319;
$415 = $414 - $$lcssa319;
$$1$i = $415;
break;
}
}
} while(0);
$416 = HEAP32[$e2$i>>2]|0;
$417 = ($416|0)<(0);
$418 = (0 - ($416))|0;
$419 = $417 ? $418 : $416;
$420 = ($419|0)<(0);
$421 = $420 << 31 >> 31;
$422 = (_fmt_u($419,$421,$7)|0);
$423 = ($422|0)==($7|0);
if ($423) {
HEAP8[$8>>0] = 48;
$estr$0$i = $8;
} else {
$estr$0$i = $422;
}
$424 = $416 >> 31;
$425 = $424 & 2;
$426 = (($425) + 43)|0;
$427 = $426&255;
$428 = ((($estr$0$i)) + -1|0);
HEAP8[$428>>0] = $427;
$429 = (($t$0) + 15)|0;
$430 = $429&255;
$431 = ((($estr$0$i)) + -2|0);
HEAP8[$431>>0] = $430;
$notrhs$i = ($p$0|0)<(1);
$432 = $fl$1$ & 8;
$433 = ($432|0)==(0);
$$2$i = $$1$i;$s$0$i = $buf$i;
while(1) {
$434 = (~~(($$2$i)));
$435 = (67014 + ($434)|0);
$436 = HEAP8[$435>>0]|0;
$437 = $436&255;
$438 = $437 | $397;
$439 = $438&255;
$440 = ((($s$0$i)) + 1|0);
HEAP8[$s$0$i>>0] = $439;
$441 = (+($434|0));
$442 = $$2$i - $441;
$443 = $442 * 16.0;
$444 = $440;
$445 = (($444) - ($5))|0;
$446 = ($445|0)==(1);
do {
if ($446) {
$notlhs$i = $443 == 0.0;
$or$cond3$not$i = $notrhs$i & $notlhs$i;
$or$cond$i = $433 & $or$cond3$not$i;
if ($or$cond$i) {
$s$1$i = $440;
break;
}
$447 = ((($s$0$i)) + 2|0);
HEAP8[$440>>0] = 46;
$s$1$i = $447;
} else {
$s$1$i = $440;
}
} while(0);
$448 = $443 != 0.0;
if ($448) {
$$2$i = $443;$s$0$i = $s$1$i;
} else {
$s$1$i$lcssa = $s$1$i;
break;
}
}
$449 = ($p$0|0)!=(0);
$$pre188$i = $s$1$i$lcssa;
$450 = (($11) + ($$pre188$i))|0;
$451 = ($450|0)<($p$0|0);
$or$cond122 = $449 & $451;
$452 = $431;
$453 = (($12) + ($p$0))|0;
$454 = (($453) - ($452))|0;
$455 = (($10) - ($452))|0;
$456 = (($455) + ($$pre188$i))|0;
$l$0$i = $or$cond122 ? $454 : $456;
$457 = (($l$0$i) + ($400))|0;
_pad($f,32,$w$1,$457,$fl$1$);
$458 = HEAP32[$f>>2]|0;
$459 = $458 & 32;
$460 = ($459|0)==(0);
if ($460) {
(___fwritex($prefix$0$$i,$400,$f)|0);
}
$461 = $fl$1$ ^ 65536;
_pad($f,48,$w$1,$457,$461);
$462 = (($$pre188$i) - ($5))|0;
$463 = HEAP32[$f>>2]|0;
$464 = $463 & 32;
$465 = ($464|0)==(0);
if ($465) {
(___fwritex($buf$i,$462,$f)|0);
}
$466 = (($9) - ($452))|0;
$sum = (($462) + ($466))|0;
$467 = (($l$0$i) - ($sum))|0;
_pad($f,48,$467,0,0);
$468 = HEAP32[$f>>2]|0;
$469 = $468 & 32;
$470 = ($469|0)==(0);
if ($470) {
(___fwritex($431,$466,$f)|0);
}
$471 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$457,$471);
$472 = ($457|0)<($w$1|0);
$w$$i = $472 ? $w$1 : $457;
$$0$i = $w$$i;
break;
}
$473 = ($p$0|0)<(0);
$$p$i = $473 ? 6 : $p$0;
if ($392) {
$474 = $391 * 268435456.0;
$475 = HEAP32[$e2$i>>2]|0;
$476 = (($475) + -28)|0;
HEAP32[$e2$i>>2] = $476;
$$3$i = $474;$477 = $476;
} else {
$$pre185$i = HEAP32[$e2$i>>2]|0;
$$3$i = $391;$477 = $$pre185$i;
}
$478 = ($477|0)<(0);
$$33$i = $478 ? $big$i : $13;
$479 = $$33$i;
$$4$i = $$3$i;$z$0$i = $$33$i;
while(1) {
$480 = (~~(($$4$i))>>>0);
HEAP32[$z$0$i>>2] = $480;
$481 = ((($z$0$i)) + 4|0);
$482 = (+($480>>>0));
$483 = $$4$i - $482;
$484 = $483 * 1.0E+9;
$485 = $484 != 0.0;
if ($485) {
$$4$i = $484;$z$0$i = $481;
} else {
$$lcssa303 = $481;
break;
}
}
$$pr$i = HEAP32[$e2$i>>2]|0;
$486 = ($$pr$i|0)>(0);
if ($486) {
$487 = $$pr$i;$a$1149$i = $$33$i;$z$1148$i = $$lcssa303;
while(1) {
$488 = ($487|0)>(29);
$489 = $488 ? 29 : $487;
$d$0141$i = ((($z$1148$i)) + -4|0);
$490 = ($d$0141$i>>>0)<($a$1149$i>>>0);
do {
if ($490) {
$a$2$ph$i = $a$1149$i;
} else {
$carry$0142$i = 0;$d$0143$i = $d$0141$i;
while(1) {
$491 = HEAP32[$d$0143$i>>2]|0;
$492 = (_bitshift64Shl(($491|0),0,($489|0))|0);
$493 = tempRet0;
$494 = (_i64Add(($492|0),($493|0),($carry$0142$i|0),0)|0);
$495 = tempRet0;
$496 = (___uremdi3(($494|0),($495|0),1000000000,0)|0);
$497 = tempRet0;
HEAP32[$d$0143$i>>2] = $496;
$498 = (___udivdi3(($494|0),($495|0),1000000000,0)|0);
$499 = tempRet0;
$d$0$i = ((($d$0143$i)) + -4|0);
$500 = ($d$0$i>>>0)<($a$1149$i>>>0);
if ($500) {
$$lcssa304 = $498;
break;
} else {
$carry$0142$i = $498;$d$0143$i = $d$0$i;
}
}
$501 = ($$lcssa304|0)==(0);
if ($501) {
$a$2$ph$i = $a$1149$i;
break;
}
$502 = ((($a$1149$i)) + -4|0);
HEAP32[$502>>2] = $$lcssa304;
$a$2$ph$i = $502;
}
} while(0);
$z$2$i = $z$1148$i;
while(1) {
$503 = ($z$2$i>>>0)>($a$2$ph$i>>>0);
if (!($503)) {
$z$2$i$lcssa = $z$2$i;
break;
}
$504 = ((($z$2$i)) + -4|0);
$505 = HEAP32[$504>>2]|0;
$506 = ($505|0)==(0);
if ($506) {
$z$2$i = $504;
} else {
$z$2$i$lcssa = $z$2$i;
break;
}
}
$507 = HEAP32[$e2$i>>2]|0;
$508 = (($507) - ($489))|0;
HEAP32[$e2$i>>2] = $508;
$509 = ($508|0)>(0);
if ($509) {
$487 = $508;$a$1149$i = $a$2$ph$i;$z$1148$i = $z$2$i$lcssa;
} else {
$$pr50$i = $508;$a$1$lcssa$i = $a$2$ph$i;$z$1$lcssa$i = $z$2$i$lcssa;
break;
}
}
} else {
$$pr50$i = $$pr$i;$a$1$lcssa$i = $$33$i;$z$1$lcssa$i = $$lcssa303;
}
$510 = ($$pr50$i|0)<(0);
if ($510) {
$511 = (($$p$i) + 25)|0;
$512 = (($511|0) / 9)&-1;
$513 = (($512) + 1)|0;
$514 = ($395|0)==(102);
$516 = $$pr50$i;$a$3136$i = $a$1$lcssa$i;$z$3135$i = $z$1$lcssa$i;
while(1) {
$515 = (0 - ($516))|0;
$517 = ($515|0)>(9);
$518 = $517 ? 9 : $515;
$519 = ($a$3136$i>>>0)<($z$3135$i>>>0);
do {
if ($519) {
$523 = 1 << $518;
$524 = (($523) + -1)|0;
$525 = 1000000000 >>> $518;
$carry3$0130$i = 0;$d$1129$i = $a$3136$i;
while(1) {
$526 = HEAP32[$d$1129$i>>2]|0;
$527 = $526 & $524;
$528 = $526 >>> $518;
$529 = (($528) + ($carry3$0130$i))|0;
HEAP32[$d$1129$i>>2] = $529;
$530 = Math_imul($527, $525)|0;
$531 = ((($d$1129$i)) + 4|0);
$532 = ($531>>>0)<($z$3135$i>>>0);
if ($532) {
$carry3$0130$i = $530;$d$1129$i = $531;
} else {
$$lcssa306 = $530;
break;
}
}
$533 = HEAP32[$a$3136$i>>2]|0;
$534 = ($533|0)==(0);
$535 = ((($a$3136$i)) + 4|0);
$$a$3$i = $534 ? $535 : $a$3136$i;
$536 = ($$lcssa306|0)==(0);
if ($536) {
$$a$3192$i = $$a$3$i;$z$4$i = $z$3135$i;
break;
}
$537 = ((($z$3135$i)) + 4|0);
HEAP32[$z$3135$i>>2] = $$lcssa306;
$$a$3192$i = $$a$3$i;$z$4$i = $537;
} else {
$520 = HEAP32[$a$3136$i>>2]|0;
$521 = ($520|0)==(0);
$522 = ((($a$3136$i)) + 4|0);
$$a$3191$i = $521 ? $522 : $a$3136$i;
$$a$3192$i = $$a$3191$i;$z$4$i = $z$3135$i;
}
} while(0);
$538 = $514 ? $$33$i : $$a$3192$i;
$539 = $z$4$i;
$540 = $538;
$541 = (($539) - ($540))|0;
$542 = $541 >> 2;
$543 = ($542|0)>($513|0);
$544 = (($538) + ($513<<2)|0);
$$z$4$i = $543 ? $544 : $z$4$i;
$545 = HEAP32[$e2$i>>2]|0;
$546 = (($545) + ($518))|0;
HEAP32[$e2$i>>2] = $546;
$547 = ($546|0)<(0);
if ($547) {
$516 = $546;$a$3136$i = $$a$3192$i;$z$3135$i = $$z$4$i;
} else {
$a$3$lcssa$i = $$a$3192$i;$z$3$lcssa$i = $$z$4$i;
break;
}
}
} else {
$a$3$lcssa$i = $a$1$lcssa$i;$z$3$lcssa$i = $z$1$lcssa$i;
}
$548 = ($a$3$lcssa$i>>>0)<($z$3$lcssa$i>>>0);
do {
if ($548) {
$549 = $a$3$lcssa$i;
$550 = (($479) - ($549))|0;
$551 = $550 >> 2;
$552 = ($551*9)|0;
$553 = HEAP32[$a$3$lcssa$i>>2]|0;
$554 = ($553>>>0)<(10);
if ($554) {
$e$1$i = $552;
break;
} else {
$e$0125$i = $552;$i$0124$i = 10;
}
while(1) {
$555 = ($i$0124$i*10)|0;
$556 = (($e$0125$i) + 1)|0;
$557 = ($553>>>0)<($555>>>0);
if ($557) {
$e$1$i = $556;
break;
} else {
$e$0125$i = $556;$i$0124$i = $555;
}
}
} else {
$e$1$i = 0;
}
} while(0);
$558 = ($395|0)!=(102);
$559 = $558 ? $e$1$i : 0;
$560 = (($$p$i) - ($559))|0;
$561 = ($395|0)==(103);
$562 = ($$p$i|0)!=(0);
$563 = $562 & $561;
$$neg55$i = $563 << 31 >> 31;
$564 = (($560) + ($$neg55$i))|0;
$565 = $z$3$lcssa$i;
$566 = (($565) - ($479))|0;
$567 = $566 >> 2;
$568 = ($567*9)|0;
$569 = (($568) + -9)|0;
$570 = ($564|0)<($569|0);
if ($570) {
$571 = ((($$33$i)) + 4|0);
$572 = (($564) + 9216)|0;
$573 = (($572|0) / 9)&-1;
$574 = (($573) + -1024)|0;
$575 = (($571) + ($574<<2)|0);
$576 = (($572|0) % 9)&-1;
$j$0117$i = (($576) + 1)|0;
$577 = ($j$0117$i|0)<(9);
if ($577) {
$i$1118$i = 10;$j$0119$i = $j$0117$i;
while(1) {
$578 = ($i$1118$i*10)|0;
$j$0$i = (($j$0119$i) + 1)|0;
$exitcond$i = ($j$0$i|0)==(9);
if ($exitcond$i) {
$i$1$lcssa$i = $578;
break;
} else {
$i$1118$i = $578;$j$0119$i = $j$0$i;
}
}
} else {
$i$1$lcssa$i = 10;
}
$579 = HEAP32[$575>>2]|0;
$580 = (($579>>>0) % ($i$1$lcssa$i>>>0))&-1;
$581 = ($580|0)==(0);
$582 = ((($575)) + 4|0);
$583 = ($582|0)==($z$3$lcssa$i|0);
$or$cond18$i = $583 & $581;
do {
if ($or$cond18$i) {
$a$8$i = $a$3$lcssa$i;$d$4$i = $575;$e$4$i = $e$1$i;
} else {
$584 = (($579>>>0) / ($i$1$lcssa$i>>>0))&-1;
$585 = $584 & 1;
$586 = ($585|0)==(0);
$$20$i = $586 ? 9007199254740992.0 : 9007199254740994.0;
$587 = (($i$1$lcssa$i|0) / 2)&-1;
$588 = ($580>>>0)<($587>>>0);
if ($588) {
$small$0$i = 0.5;
} else {
$589 = ($580|0)==($587|0);
$or$cond22$i = $583 & $589;
$$36$i = $or$cond22$i ? 1.0 : 1.5;
$small$0$i = $$36$i;
}
$590 = ($pl$0$i|0)==(0);
do {
if ($590) {
$round6$1$i = $$20$i;$small$1$i = $small$0$i;
} else {
$591 = HEAP8[$prefix$0$i>>0]|0;
$592 = ($591<<24>>24)==(45);
if (!($592)) {
$round6$1$i = $$20$i;$small$1$i = $small$0$i;
break;
}
$593 = -$$20$i;
$594 = -$small$0$i;
$round6$1$i = $593;$small$1$i = $594;
}
} while(0);
$595 = (($579) - ($580))|0;
HEAP32[$575>>2] = $595;
$596 = $round6$1$i + $small$1$i;
$597 = $596 != $round6$1$i;
if (!($597)) {
$a$8$i = $a$3$lcssa$i;$d$4$i = $575;$e$4$i = $e$1$i;
break;
}
$598 = (($595) + ($i$1$lcssa$i))|0;
HEAP32[$575>>2] = $598;
$599 = ($598>>>0)>(999999999);
if ($599) {
$a$5111$i = $a$3$lcssa$i;$d$2110$i = $575;
while(1) {
$600 = ((($d$2110$i)) + -4|0);
HEAP32[$d$2110$i>>2] = 0;
$601 = ($600>>>0)<($a$5111$i>>>0);
if ($601) {
$602 = ((($a$5111$i)) + -4|0);
HEAP32[$602>>2] = 0;
$a$6$i = $602;
} else {
$a$6$i = $a$5111$i;
}
$603 = HEAP32[$600>>2]|0;
$604 = (($603) + 1)|0;
HEAP32[$600>>2] = $604;
$605 = ($604>>>0)>(999999999);
if ($605) {
$a$5111$i = $a$6$i;$d$2110$i = $600;
} else {
$a$5$lcssa$i = $a$6$i;$d$2$lcssa$i = $600;
break;
}
}
} else {
$a$5$lcssa$i = $a$3$lcssa$i;$d$2$lcssa$i = $575;
}
$606 = $a$5$lcssa$i;
$607 = (($479) - ($606))|0;
$608 = $607 >> 2;
$609 = ($608*9)|0;
$610 = HEAP32[$a$5$lcssa$i>>2]|0;
$611 = ($610>>>0)<(10);
if ($611) {
$a$8$i = $a$5$lcssa$i;$d$4$i = $d$2$lcssa$i;$e$4$i = $609;
break;
} else {
$e$2106$i = $609;$i$2105$i = 10;
}
while(1) {
$612 = ($i$2105$i*10)|0;
$613 = (($e$2106$i) + 1)|0;
$614 = ($610>>>0)<($612>>>0);
if ($614) {
$a$8$i = $a$5$lcssa$i;$d$4$i = $d$2$lcssa$i;$e$4$i = $613;
break;
} else {
$e$2106$i = $613;$i$2105$i = $612;
}
}
}
} while(0);
$615 = ((($d$4$i)) + 4|0);
$616 = ($z$3$lcssa$i>>>0)>($615>>>0);
$$z$3$i = $616 ? $615 : $z$3$lcssa$i;
$a$9$ph$i = $a$8$i;$e$5$ph$i = $e$4$i;$z$7$ph$i = $$z$3$i;
} else {
$a$9$ph$i = $a$3$lcssa$i;$e$5$ph$i = $e$1$i;$z$7$ph$i = $z$3$lcssa$i;
}
$617 = (0 - ($e$5$ph$i))|0;
$z$7$i = $z$7$ph$i;
while(1) {
$618 = ($z$7$i>>>0)>($a$9$ph$i>>>0);
if (!($618)) {
$$lcssa162$i = 0;$z$7$i$lcssa = $z$7$i;
break;
}
$619 = ((($z$7$i)) + -4|0);
$620 = HEAP32[$619>>2]|0;
$621 = ($620|0)==(0);
if ($621) {
$z$7$i = $619;
} else {
$$lcssa162$i = 1;$z$7$i$lcssa = $z$7$i;
break;
}
}
do {
if ($561) {
$622 = $562&1;
$623 = $622 ^ 1;
$$p$$i = (($623) + ($$p$i))|0;
$624 = ($$p$$i|0)>($e$5$ph$i|0);
$625 = ($e$5$ph$i|0)>(-5);
$or$cond6$i = $624 & $625;
if ($or$cond6$i) {
$626 = (($t$0) + -1)|0;
$$neg56$i = (($$p$$i) + -1)|0;
$627 = (($$neg56$i) - ($e$5$ph$i))|0;
$$013$i = $626;$$210$i = $627;
} else {
$628 = (($t$0) + -2)|0;
$629 = (($$p$$i) + -1)|0;
$$013$i = $628;$$210$i = $629;
}
$630 = $fl$1$ & 8;
$631 = ($630|0)==(0);
if (!($631)) {
$$114$i = $$013$i;$$311$i = $$210$i;$$pre$phi190$iZ2D = $630;
break;
}
do {
if ($$lcssa162$i) {
$632 = ((($z$7$i$lcssa)) + -4|0);
$633 = HEAP32[$632>>2]|0;
$634 = ($633|0)==(0);
if ($634) {
$j$2$i = 9;
break;
}
$635 = (($633>>>0) % 10)&-1;
$636 = ($635|0)==(0);
if ($636) {
$i$3101$i = 10;$j$1102$i = 0;
} else {
$j$2$i = 0;
break;
}
while(1) {
$637 = ($i$3101$i*10)|0;
$638 = (($j$1102$i) + 1)|0;
$639 = (($633>>>0) % ($637>>>0))&-1;
$640 = ($639|0)==(0);
if ($640) {
$i$3101$i = $637;$j$1102$i = $638;
} else {
$j$2$i = $638;
break;
}
}
} else {
$j$2$i = 9;
}
} while(0);
$641 = $$013$i | 32;
$642 = ($641|0)==(102);
$643 = $z$7$i$lcssa;
$644 = (($643) - ($479))|0;
$645 = $644 >> 2;
$646 = ($645*9)|0;
$647 = (($646) + -9)|0;
if ($642) {
$648 = (($647) - ($j$2$i))|0;
$649 = ($648|0)<(0);
$$23$i = $649 ? 0 : $648;
$650 = ($$210$i|0)<($$23$i|0);
$$210$$24$i = $650 ? $$210$i : $$23$i;
$$114$i = $$013$i;$$311$i = $$210$$24$i;$$pre$phi190$iZ2D = 0;
break;
} else {
$651 = (($647) + ($e$5$ph$i))|0;
$652 = (($651) - ($j$2$i))|0;
$653 = ($652|0)<(0);
$$25$i = $653 ? 0 : $652;
$654 = ($$210$i|0)<($$25$i|0);
$$210$$26$i = $654 ? $$210$i : $$25$i;
$$114$i = $$013$i;$$311$i = $$210$$26$i;$$pre$phi190$iZ2D = 0;
break;
}
} else {
$$pre189$i = $fl$1$ & 8;
$$114$i = $t$0;$$311$i = $$p$i;$$pre$phi190$iZ2D = $$pre189$i;
}
} while(0);
$655 = $$311$i | $$pre$phi190$iZ2D;
$656 = ($655|0)!=(0);
$657 = $656&1;
$658 = $$114$i | 32;
$659 = ($658|0)==(102);
if ($659) {
$660 = ($e$5$ph$i|0)>(0);
$661 = $660 ? $e$5$ph$i : 0;
$$pn$i = $661;$estr$2$i = 0;
} else {
$662 = ($e$5$ph$i|0)<(0);
$663 = $662 ? $617 : $e$5$ph$i;
$664 = ($663|0)<(0);
$665 = $664 << 31 >> 31;
$666 = (_fmt_u($663,$665,$7)|0);
$667 = $666;
$668 = (($9) - ($667))|0;
$669 = ($668|0)<(2);
if ($669) {
$estr$195$i = $666;
while(1) {
$670 = ((($estr$195$i)) + -1|0);
HEAP8[$670>>0] = 48;
$671 = $670;
$672 = (($9) - ($671))|0;
$673 = ($672|0)<(2);
if ($673) {
$estr$195$i = $670;
} else {
$estr$1$lcssa$i = $670;
break;
}
}
} else {
$estr$1$lcssa$i = $666;
}
$674 = $e$5$ph$i >> 31;
$675 = $674 & 2;
$676 = (($675) + 43)|0;
$677 = $676&255;
$678 = ((($estr$1$lcssa$i)) + -1|0);
HEAP8[$678>>0] = $677;
$679 = $$114$i&255;
$680 = ((($estr$1$lcssa$i)) + -2|0);
HEAP8[$680>>0] = $679;
$681 = $680;
$682 = (($9) - ($681))|0;
$$pn$i = $682;$estr$2$i = $680;
}
$683 = (($pl$0$i) + 1)|0;
$684 = (($683) + ($$311$i))|0;
$l$1$i = (($684) + ($657))|0;
$685 = (($l$1$i) + ($$pn$i))|0;
_pad($f,32,$w$1,$685,$fl$1$);
$686 = HEAP32[$f>>2]|0;
$687 = $686 & 32;
$688 = ($687|0)==(0);
if ($688) {
(___fwritex($prefix$0$i,$pl$0$i,$f)|0);
}
$689 = $fl$1$ ^ 65536;
_pad($f,48,$w$1,$685,$689);
do {
if ($659) {
$690 = ($a$9$ph$i>>>0)>($$33$i>>>0);
$r$0$a$9$i = $690 ? $$33$i : $a$9$ph$i;
$d$584$i = $r$0$a$9$i;
while(1) {
$691 = HEAP32[$d$584$i>>2]|0;
$692 = (_fmt_u($691,0,$14)|0);
$693 = ($d$584$i|0)==($r$0$a$9$i|0);
do {
if ($693) {
$699 = ($692|0)==($14|0);
if (!($699)) {
$s7$1$i = $692;
break;
}
HEAP8[$16>>0] = 48;
$s7$1$i = $16;
} else {
$694 = ($692>>>0)>($buf$i>>>0);
if (!($694)) {
$s7$1$i = $692;
break;
}
$695 = $692;
$696 = (($695) - ($5))|0;
_memset(($buf$i|0),48,($696|0))|0;
$s7$081$i = $692;
while(1) {
$697 = ((($s7$081$i)) + -1|0);
$698 = ($697>>>0)>($buf$i>>>0);
if ($698) {
$s7$081$i = $697;
} else {
$s7$1$i = $697;
break;
}
}
}
} while(0);
$700 = HEAP32[$f>>2]|0;
$701 = $700 & 32;
$702 = ($701|0)==(0);
if ($702) {
$703 = $s7$1$i;
$704 = (($15) - ($703))|0;
(___fwritex($s7$1$i,$704,$f)|0);
}
$705 = ((($d$584$i)) + 4|0);
$706 = ($705>>>0)>($$33$i>>>0);
if ($706) {
$$lcssa316 = $705;
break;
} else {
$d$584$i = $705;
}
}
$707 = ($655|0)==(0);
do {
if (!($707)) {
$708 = HEAP32[$f>>2]|0;
$709 = $708 & 32;
$710 = ($709|0)==(0);
if (!($710)) {
break;
}
(___fwritex(67082,1,$f)|0);
}
} while(0);
$711 = ($$lcssa316>>>0)<($z$7$i$lcssa>>>0);
$712 = ($$311$i|0)>(0);
$713 = $712 & $711;
if ($713) {
$$41278$i = $$311$i;$d$677$i = $$lcssa316;
while(1) {
$714 = HEAP32[$d$677$i>>2]|0;
$715 = (_fmt_u($714,0,$14)|0);
$716 = ($715>>>0)>($buf$i>>>0);
if ($716) {
$717 = $715;
$718 = (($717) - ($5))|0;
_memset(($buf$i|0),48,($718|0))|0;
$s8$072$i = $715;
while(1) {
$719 = ((($s8$072$i)) + -1|0);
$720 = ($719>>>0)>($buf$i>>>0);
if ($720) {
$s8$072$i = $719;
} else {
$s8$0$lcssa$i = $719;
break;
}
}
} else {
$s8$0$lcssa$i = $715;
}
$721 = HEAP32[$f>>2]|0;
$722 = $721 & 32;
$723 = ($722|0)==(0);
if ($723) {
$724 = ($$41278$i|0)>(9);
$725 = $724 ? 9 : $$41278$i;
(___fwritex($s8$0$lcssa$i,$725,$f)|0);
}
$726 = ((($d$677$i)) + 4|0);
$727 = (($$41278$i) + -9)|0;
$728 = ($726>>>0)<($z$7$i$lcssa>>>0);
$729 = ($$41278$i|0)>(9);
$730 = $729 & $728;
if ($730) {
$$41278$i = $727;$d$677$i = $726;
} else {
$$412$lcssa$i = $727;
break;
}
}
} else {
$$412$lcssa$i = $$311$i;
}
$731 = (($$412$lcssa$i) + 9)|0;
_pad($f,48,$731,9,0);
} else {
$732 = ((($a$9$ph$i)) + 4|0);
$z$7$$i = $$lcssa162$i ? $z$7$i$lcssa : $732;
$733 = ($$311$i|0)>(-1);
if ($733) {
$734 = ($$pre$phi190$iZ2D|0)==(0);
$$589$i = $$311$i;$d$788$i = $a$9$ph$i;
while(1) {
$735 = HEAP32[$d$788$i>>2]|0;
$736 = (_fmt_u($735,0,$14)|0);
$737 = ($736|0)==($14|0);
if ($737) {
HEAP8[$16>>0] = 48;
$s9$0$i = $16;
} else {
$s9$0$i = $736;
}
$738 = ($d$788$i|0)==($a$9$ph$i|0);
do {
if ($738) {
$742 = ((($s9$0$i)) + 1|0);
$743 = HEAP32[$f>>2]|0;
$744 = $743 & 32;
$745 = ($744|0)==(0);
if ($745) {
(___fwritex($s9$0$i,1,$f)|0);
}
$746 = ($$589$i|0)<(1);
$or$cond31$i = $734 & $746;
if ($or$cond31$i) {
$s9$2$i = $742;
break;
}
$747 = HEAP32[$f>>2]|0;
$748 = $747 & 32;
$749 = ($748|0)==(0);
if (!($749)) {
$s9$2$i = $742;
break;
}
(___fwritex(67082,1,$f)|0);
$s9$2$i = $742;
} else {
$739 = ($s9$0$i>>>0)>($buf$i>>>0);
if (!($739)) {
$s9$2$i = $s9$0$i;
break;
}
$scevgep182$i = (($s9$0$i) + ($6)|0);
$scevgep182183$i = $scevgep182$i;
_memset(($buf$i|0),48,($scevgep182183$i|0))|0;
$s9$185$i = $s9$0$i;
while(1) {
$740 = ((($s9$185$i)) + -1|0);
$741 = ($740>>>0)>($buf$i>>>0);
if ($741) {
$s9$185$i = $740;
} else {
$s9$2$i = $740;
break;
}
}
}
} while(0);
$750 = $s9$2$i;
$751 = (($15) - ($750))|0;
$752 = HEAP32[$f>>2]|0;
$753 = $752 & 32;
$754 = ($753|0)==(0);
if ($754) {
$755 = ($$589$i|0)>($751|0);
$756 = $755 ? $751 : $$589$i;
(___fwritex($s9$2$i,$756,$f)|0);
}
$757 = (($$589$i) - ($751))|0;
$758 = ((($d$788$i)) + 4|0);
$759 = ($758>>>0)<($z$7$$i>>>0);
$760 = ($757|0)>(-1);
$761 = $759 & $760;
if ($761) {
$$589$i = $757;$d$788$i = $758;
} else {
$$5$lcssa$i = $757;
break;
}
}
} else {
$$5$lcssa$i = $$311$i;
}
$762 = (($$5$lcssa$i) + 18)|0;
_pad($f,48,$762,18,0);
$763 = HEAP32[$f>>2]|0;
$764 = $763 & 32;
$765 = ($764|0)==(0);
if (!($765)) {
break;
}
$766 = $estr$2$i;
$767 = (($9) - ($766))|0;
(___fwritex($estr$2$i,$767,$f)|0);
}
} while(0);
$768 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$685,$768);
$769 = ($685|0)<($w$1|0);
$w$32$i = $769 ? $w$1 : $685;
$$0$i = $w$32$i;
} else {
$375 = $t$0 & 32;
$376 = ($375|0)!=(0);
$377 = $376 ? 67066 : 67070;
$378 = ($$07$i != $$07$i) | (0.0 != 0.0);
$379 = $376 ? 67074 : 67078;
$pl$1$i = $378 ? 0 : $pl$0$i;
$s1$0$i = $378 ? $379 : $377;
$380 = (($pl$1$i) + 3)|0;
_pad($f,32,$w$1,$380,$176);
$381 = HEAP32[$f>>2]|0;
$382 = $381 & 32;
$383 = ($382|0)==(0);
if ($383) {
(___fwritex($prefix$0$i,$pl$1$i,$f)|0);
$$pre$i = HEAP32[$f>>2]|0;
$385 = $$pre$i;
} else {
$385 = $381;
}
$384 = $385 & 32;
$386 = ($384|0)==(0);
if ($386) {
(___fwritex($s1$0$i,3,$f)|0);
}
$387 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$380,$387);
$388 = ($380|0)<($w$1|0);
$389 = $388 ? $w$1 : $380;
$$0$i = $389;
}
} while(0);
$cnt$0 = $cnt$1;$l$0 = $$0$i;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
default: {
$a$2 = $s$0;$fl$6 = $fl$1$;$p$5 = $p$0;$pl$2 = 0;$prefix$2 = 67030;$z$2 = $1;
}
}
} while(0);
L311: do {
if ((label|0) == 64) {
label = 0;
$207 = $arg;
$208 = $207;
$209 = HEAP32[$208>>2]|0;
$210 = (($207) + 4)|0;
$211 = $210;
$212 = HEAP32[$211>>2]|0;
$213 = $t$1 & 32;
$214 = ($209|0)==(0);
$215 = ($212|0)==(0);
$216 = $214 & $215;
if ($216) {
$a$0 = $1;$fl$4 = $fl$3;$p$2 = $p$1;$pl$1 = 0;$prefix$1 = 67030;
label = 77;
} else {
$$012$i = $1;$218 = $209;$225 = $212;
while(1) {
$217 = $218 & 15;
$219 = (67014 + ($217)|0);
$220 = HEAP8[$219>>0]|0;
$221 = $220&255;
$222 = $221 | $213;
$223 = $222&255;
$224 = ((($$012$i)) + -1|0);
HEAP8[$224>>0] = $223;
$226 = (_bitshift64Lshr(($218|0),($225|0),4)|0);
$227 = tempRet0;
$228 = ($226|0)==(0);
$229 = ($227|0)==(0);
$230 = $228 & $229;
if ($230) {
$$lcssa321 = $224;
break;
} else {
$$012$i = $224;$218 = $226;$225 = $227;
}
}
$231 = $arg;
$232 = $231;
$233 = HEAP32[$232>>2]|0;
$234 = (($231) + 4)|0;
$235 = $234;
$236 = HEAP32[$235>>2]|0;
$237 = ($233|0)==(0);
$238 = ($236|0)==(0);
$239 = $237 & $238;
$240 = $fl$3 & 8;
$241 = ($240|0)==(0);
$or$cond17 = $241 | $239;
if ($or$cond17) {
$a$0 = $$lcssa321;$fl$4 = $fl$3;$p$2 = $p$1;$pl$1 = 0;$prefix$1 = 67030;
label = 77;
} else {
$242 = $t$1 >> 4;
$243 = (67030 + ($242)|0);
$a$0 = $$lcssa321;$fl$4 = $fl$3;$p$2 = $p$1;$pl$1 = 2;$prefix$1 = $243;
label = 77;
}
}
}
else if ((label|0) == 76) {
label = 0;
$289 = (_fmt_u($287,$288,$1)|0);
$a$0 = $289;$fl$4 = $fl$1$;$p$2 = $p$0;$pl$1 = $pl$0;$prefix$1 = $prefix$0;
label = 77;
}
else if ((label|0) == 82) {
label = 0;
$321 = (_memchr($a$1,0,$p$0)|0);
$322 = ($321|0)==(0|0);
$323 = $321;
$324 = $a$1;
$325 = (($323) - ($324))|0;
$326 = (($a$1) + ($p$0)|0);
$z$1 = $322 ? $326 : $321;
$p$3 = $322 ? $p$0 : $325;
$a$2 = $a$1;$fl$6 = $176;$p$5 = $p$3;$pl$2 = 0;$prefix$2 = 67030;$z$2 = $z$1;
}
else if ((label|0) == 86) {
label = 0;
$i$0105 = 0;$l$1104 = 0;$ws$0106 = $798;
while(1) {
$334 = HEAP32[$ws$0106>>2]|0;
$335 = ($334|0)==(0);
if ($335) {
$i$0$lcssa = $i$0105;$l$2 = $l$1104;
break;
}
$336 = (_wctomb($mb,$334)|0);
$337 = ($336|0)<(0);
$338 = (($p$4176) - ($i$0105))|0;
$339 = ($336>>>0)>($338>>>0);
$or$cond20 = $337 | $339;
if ($or$cond20) {
$i$0$lcssa = $i$0105;$l$2 = $336;
break;
}
$340 = ((($ws$0106)) + 4|0);
$341 = (($336) + ($i$0105))|0;
$342 = ($p$4176>>>0)>($341>>>0);
if ($342) {
$i$0105 = $341;$l$1104 = $336;$ws$0106 = $340;
} else {
$i$0$lcssa = $341;$l$2 = $336;
break;
}
}
$343 = ($l$2|0)<(0);
if ($343) {
$$0 = -1;
break L1;
}
_pad($f,32,$w$1,$i$0$lcssa,$fl$1$);
$344 = ($i$0$lcssa|0)==(0);
if ($344) {
$i$0$lcssa178 = 0;
label = 97;
} else {
$i$1116 = 0;$ws$1117 = $798;
while(1) {
$345 = HEAP32[$ws$1117>>2]|0;
$346 = ($345|0)==(0);
if ($346) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break L311;
}
$347 = ((($ws$1117)) + 4|0);
$348 = (_wctomb($mb,$345)|0);
$349 = (($348) + ($i$1116))|0;
$350 = ($349|0)>($i$0$lcssa|0);
if ($350) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break L311;
}
$351 = HEAP32[$f>>2]|0;
$352 = $351 & 32;
$353 = ($352|0)==(0);
if ($353) {
(___fwritex($mb,$348,$f)|0);
}
$354 = ($349>>>0)<($i$0$lcssa>>>0);
if ($354) {
$i$1116 = $349;$ws$1117 = $347;
} else {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break;
}
}
}
}
} while(0);
if ((label|0) == 97) {
label = 0;
$355 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$i$0$lcssa178,$355);
$356 = ($w$1|0)>($i$0$lcssa178|0);
$357 = $356 ? $w$1 : $i$0$lcssa178;
$cnt$0 = $cnt$1;$l$0 = $357;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue;
}
if ((label|0) == 77) {
label = 0;
$290 = ($p$2|0)>(-1);
$291 = $fl$4 & -65537;
$$fl$4 = $290 ? $291 : $fl$4;
$292 = $arg;
$293 = $292;
$294 = HEAP32[$293>>2]|0;
$295 = (($292) + 4)|0;
$296 = $295;
$297 = HEAP32[$296>>2]|0;
$298 = ($294|0)!=(0);
$299 = ($297|0)!=(0);
$300 = $298 | $299;
$301 = ($p$2|0)!=(0);
$or$cond = $301 | $300;
if ($or$cond) {
$302 = $a$0;
$303 = (($2) - ($302))|0;
$304 = $300&1;
$305 = $304 ^ 1;
$306 = (($305) + ($303))|0;
$307 = ($p$2|0)>($306|0);
$p$2$ = $307 ? $p$2 : $306;
$a$2 = $a$0;$fl$6 = $$fl$4;$p$5 = $p$2$;$pl$2 = $pl$1;$prefix$2 = $prefix$1;$z$2 = $1;
} else {
$a$2 = $1;$fl$6 = $$fl$4;$p$5 = 0;$pl$2 = $pl$1;$prefix$2 = $prefix$1;$z$2 = $1;
}
}
$770 = $z$2;
$771 = $a$2;
$772 = (($770) - ($771))|0;
$773 = ($p$5|0)<($772|0);
$$p$5 = $773 ? $772 : $p$5;
$774 = (($pl$2) + ($$p$5))|0;
$775 = ($w$1|0)<($774|0);
$w$2 = $775 ? $774 : $w$1;
_pad($f,32,$w$2,$774,$fl$6);
$776 = HEAP32[$f>>2]|0;
$777 = $776 & 32;
$778 = ($777|0)==(0);
if ($778) {
(___fwritex($prefix$2,$pl$2,$f)|0);
}
$779 = $fl$6 ^ 65536;
_pad($f,48,$w$2,$774,$779);
_pad($f,48,$$p$5,$772,0);
$780 = HEAP32[$f>>2]|0;
$781 = $780 & 32;
$782 = ($781|0)==(0);
if ($782) {
(___fwritex($a$2,$772,$f)|0);
}
$783 = $fl$6 ^ 8192;
_pad($f,32,$w$2,$774,$783);
$cnt$0 = $cnt$1;$l$0 = $w$2;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
}
L345: do {
if ((label|0) == 244) {
$784 = ($f|0)==(0|0);
if ($784) {
$785 = ($l10n$0$lcssa|0)==(0);
if ($785) {
$$0 = 0;
} else {
$i$291 = 1;
while(1) {
$786 = (($nl_type) + ($i$291<<2)|0);
$787 = HEAP32[$786>>2]|0;
$788 = ($787|0)==(0);
if ($788) {
$i$291$lcssa = $i$291;
break;
}
$790 = (($nl_arg) + ($i$291<<3)|0);
_pop_arg_180($790,$787,$ap);
$791 = (($i$291) + 1)|0;
$792 = ($791|0)<(10);
if ($792) {
$i$291 = $791;
} else {
$$0 = 1;
break L345;
}
}
$789 = ($i$291$lcssa|0)<(10);
if ($789) {
$i$389 = $i$291$lcssa;
while(1) {
$795 = (($nl_type) + ($i$389<<2)|0);
$796 = HEAP32[$795>>2]|0;
$797 = ($796|0)==(0);
$793 = (($i$389) + 1)|0;
if (!($797)) {
$$0 = -1;
break L345;
}
$794 = ($793|0)<(10);
if ($794) {
$i$389 = $793;
} else {
$$0 = 1;
break;
}
}
} else {
$$0 = 1;
}
}
} else {
$$0 = $cnt$1$lcssa;
}
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function ___fwritex($s,$l,$f) {
$s = $s|0;
$l = $l|0;
$f = $f|0;
var $$0 = 0, $$01 = 0, $$02 = 0, $$pre = 0, $$pre6 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0 = 0, $i$0$lcssa12 = 0;
var $i$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 16|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
if ($2) {
$4 = (___towrite($f)|0);
$5 = ($4|0)==(0);
if ($5) {
$$pre = HEAP32[$0>>2]|0;
$9 = $$pre;
label = 5;
} else {
$$0 = 0;
}
} else {
$3 = $1;
$9 = $3;
label = 5;
}
L5: do {
if ((label|0) == 5) {
$6 = ((($f)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($9) - ($7))|0;
$10 = ($8>>>0)<($l>>>0);
$11 = $7;
if ($10) {
$12 = ((($f)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$14 = (FUNCTION_TABLE_iiii[$13 & 127]($f,$s,$l)|0);
$$0 = $14;
break;
}
$15 = ((($f)) + 75|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)>(-1);
L10: do {
if ($17) {
$i$0 = $l;
while(1) {
$18 = ($i$0|0)==(0);
if ($18) {
$$01 = $l;$$02 = $s;$29 = $11;$i$1 = 0;
break L10;
}
$19 = (($i$0) + -1)|0;
$20 = (($s) + ($19)|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(10);
if ($22) {
$i$0$lcssa12 = $i$0;
break;
} else {
$i$0 = $19;
}
}
$23 = ((($f)) + 36|0);
$24 = HEAP32[$23>>2]|0;
$25 = (FUNCTION_TABLE_iiii[$24 & 127]($f,$s,$i$0$lcssa12)|0);
$26 = ($25>>>0)<($i$0$lcssa12>>>0);
if ($26) {
$$0 = $i$0$lcssa12;
break L5;
}
$27 = (($s) + ($i$0$lcssa12)|0);
$28 = (($l) - ($i$0$lcssa12))|0;
$$pre6 = HEAP32[$6>>2]|0;
$$01 = $28;$$02 = $27;$29 = $$pre6;$i$1 = $i$0$lcssa12;
} else {
$$01 = $l;$$02 = $s;$29 = $11;$i$1 = 0;
}
} while(0);
_memcpy(($29|0),($$02|0),($$01|0))|0;
$30 = HEAP32[$6>>2]|0;
$31 = (($30) + ($$01)|0);
HEAP32[$6>>2] = $31;
$32 = (($i$1) + ($$01))|0;
$$0 = $32;
}
} while(0);
return ($$0|0);
}
function ___towrite($f) {
$f = $f|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 74|0);
$1 = HEAP8[$0>>0]|0;
$2 = $1 << 24 >> 24;
$3 = (($2) + 255)|0;
$4 = $3 | $2;
$5 = $4&255;
HEAP8[$0>>0] = $5;
$6 = HEAP32[$f>>2]|0;
$7 = $6 & 8;
$8 = ($7|0)==(0);
if ($8) {
$10 = ((($f)) + 8|0);
HEAP32[$10>>2] = 0;
$11 = ((($f)) + 4|0);
HEAP32[$11>>2] = 0;
$12 = ((($f)) + 44|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($f)) + 28|0);
HEAP32[$14>>2] = $13;
$15 = ((($f)) + 20|0);
HEAP32[$15>>2] = $13;
$16 = $13;
$17 = ((($f)) + 48|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($16) + ($18)|0);
$20 = ((($f)) + 16|0);
HEAP32[$20>>2] = $19;
$$0 = 0;
} else {
$9 = $6 | 32;
HEAP32[$f>>2] = $9;
$$0 = -1;
}
return ($$0|0);
}
function _pop_arg_180($arg,$type,$ap) {
$arg = $arg|0;
$type = $type|0;
$ap = $ap|0;
var $$mask = 0, $$mask1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0.0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0.0;
var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0;
var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0;
var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0;
var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0;
var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($type>>>0)>(20);
L1: do {
if (!($0)) {
do {
switch ($type|0) {
case 9: {
$arglist_current = HEAP32[$ap>>2]|0;
$1 = $arglist_current;
$2 = ((0) + 4|0);
$expanded28 = $2;
$expanded = (($expanded28) - 1)|0;
$3 = (($1) + ($expanded))|0;
$4 = ((0) + 4|0);
$expanded32 = $4;
$expanded31 = (($expanded32) - 1)|0;
$expanded30 = $expanded31 ^ -1;
$5 = $3 & $expanded30;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$arglist_next = ((($6)) + 4|0);
HEAP32[$ap>>2] = $arglist_next;
HEAP32[$arg>>2] = $7;
break L1;
break;
}
case 10: {
$arglist_current2 = HEAP32[$ap>>2]|0;
$8 = $arglist_current2;
$9 = ((0) + 4|0);
$expanded35 = $9;
$expanded34 = (($expanded35) - 1)|0;
$10 = (($8) + ($expanded34))|0;
$11 = ((0) + 4|0);
$expanded39 = $11;
$expanded38 = (($expanded39) - 1)|0;
$expanded37 = $expanded38 ^ -1;
$12 = $10 & $expanded37;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$arglist_next3 = ((($13)) + 4|0);
HEAP32[$ap>>2] = $arglist_next3;
$15 = ($14|0)<(0);
$16 = $15 << 31 >> 31;
$17 = $arg;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $16;
break L1;
break;
}
case 11: {
$arglist_current5 = HEAP32[$ap>>2]|0;
$21 = $arglist_current5;
$22 = ((0) + 4|0);
$expanded42 = $22;
$expanded41 = (($expanded42) - 1)|0;
$23 = (($21) + ($expanded41))|0;
$24 = ((0) + 4|0);
$expanded46 = $24;
$expanded45 = (($expanded46) - 1)|0;
$expanded44 = $expanded45 ^ -1;
$25 = $23 & $expanded44;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$arglist_next6 = ((($26)) + 4|0);
HEAP32[$ap>>2] = $arglist_next6;
$28 = $arg;
$29 = $28;
HEAP32[$29>>2] = $27;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = 0;
break L1;
break;
}
case 12: {
$arglist_current8 = HEAP32[$ap>>2]|0;
$32 = $arglist_current8;
$33 = ((0) + 8|0);
$expanded49 = $33;
$expanded48 = (($expanded49) - 1)|0;
$34 = (($32) + ($expanded48))|0;
$35 = ((0) + 8|0);
$expanded53 = $35;
$expanded52 = (($expanded53) - 1)|0;
$expanded51 = $expanded52 ^ -1;
$36 = $34 & $expanded51;
$37 = $36;
$38 = $37;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$arglist_next9 = ((($37)) + 8|0);
HEAP32[$ap>>2] = $arglist_next9;
$44 = $arg;
$45 = $44;
HEAP32[$45>>2] = $40;
$46 = (($44) + 4)|0;
$47 = $46;
HEAP32[$47>>2] = $43;
break L1;
break;
}
case 13: {
$arglist_current11 = HEAP32[$ap>>2]|0;
$48 = $arglist_current11;
$49 = ((0) + 4|0);
$expanded56 = $49;
$expanded55 = (($expanded56) - 1)|0;
$50 = (($48) + ($expanded55))|0;
$51 = ((0) + 4|0);
$expanded60 = $51;
$expanded59 = (($expanded60) - 1)|0;
$expanded58 = $expanded59 ^ -1;
$52 = $50 & $expanded58;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$arglist_next12 = ((($53)) + 4|0);
HEAP32[$ap>>2] = $arglist_next12;
$55 = $54&65535;
$56 = $55 << 16 >> 16;
$57 = ($56|0)<(0);
$58 = $57 << 31 >> 31;
$59 = $arg;
$60 = $59;
HEAP32[$60>>2] = $56;
$61 = (($59) + 4)|0;
$62 = $61;
HEAP32[$62>>2] = $58;
break L1;
break;
}
case 14: {
$arglist_current14 = HEAP32[$ap>>2]|0;
$63 = $arglist_current14;
$64 = ((0) + 4|0);
$expanded63 = $64;
$expanded62 = (($expanded63) - 1)|0;
$65 = (($63) + ($expanded62))|0;
$66 = ((0) + 4|0);
$expanded67 = $66;
$expanded66 = (($expanded67) - 1)|0;
$expanded65 = $expanded66 ^ -1;
$67 = $65 & $expanded65;
$68 = $67;
$69 = HEAP32[$68>>2]|0;
$arglist_next15 = ((($68)) + 4|0);
HEAP32[$ap>>2] = $arglist_next15;
$$mask1 = $69 & 65535;
$70 = $arg;
$71 = $70;
HEAP32[$71>>2] = $$mask1;
$72 = (($70) + 4)|0;
$73 = $72;
HEAP32[$73>>2] = 0;
break L1;
break;
}
case 15: {
$arglist_current17 = HEAP32[$ap>>2]|0;
$74 = $arglist_current17;
$75 = ((0) + 4|0);
$expanded70 = $75;
$expanded69 = (($expanded70) - 1)|0;
$76 = (($74) + ($expanded69))|0;
$77 = ((0) + 4|0);
$expanded74 = $77;
$expanded73 = (($expanded74) - 1)|0;
$expanded72 = $expanded73 ^ -1;
$78 = $76 & $expanded72;
$79 = $78;
$80 = HEAP32[$79>>2]|0;
$arglist_next18 = ((($79)) + 4|0);
HEAP32[$ap>>2] = $arglist_next18;
$81 = $80&255;
$82 = $81 << 24 >> 24;
$83 = ($82|0)<(0);
$84 = $83 << 31 >> 31;
$85 = $arg;
$86 = $85;
HEAP32[$86>>2] = $82;
$87 = (($85) + 4)|0;
$88 = $87;
HEAP32[$88>>2] = $84;
break L1;
break;
}
case 16: {
$arglist_current20 = HEAP32[$ap>>2]|0;
$89 = $arglist_current20;
$90 = ((0) + 4|0);
$expanded77 = $90;
$expanded76 = (($expanded77) - 1)|0;
$91 = (($89) + ($expanded76))|0;
$92 = ((0) + 4|0);
$expanded81 = $92;
$expanded80 = (($expanded81) - 1)|0;
$expanded79 = $expanded80 ^ -1;
$93 = $91 & $expanded79;
$94 = $93;
$95 = HEAP32[$94>>2]|0;
$arglist_next21 = ((($94)) + 4|0);
HEAP32[$ap>>2] = $arglist_next21;
$$mask = $95 & 255;
$96 = $arg;
$97 = $96;
HEAP32[$97>>2] = $$mask;
$98 = (($96) + 4)|0;
$99 = $98;
HEAP32[$99>>2] = 0;
break L1;
break;
}
case 17: {
$arglist_current23 = HEAP32[$ap>>2]|0;
$100 = $arglist_current23;
$101 = ((0) + 8|0);
$expanded84 = $101;
$expanded83 = (($expanded84) - 1)|0;
$102 = (($100) + ($expanded83))|0;
$103 = ((0) + 8|0);
$expanded88 = $103;
$expanded87 = (($expanded88) - 1)|0;
$expanded86 = $expanded87 ^ -1;
$104 = $102 & $expanded86;
$105 = $104;
$106 = +HEAPF64[$105>>3];
$arglist_next24 = ((($105)) + 8|0);
HEAP32[$ap>>2] = $arglist_next24;
HEAPF64[$arg>>3] = $106;
break L1;
break;
}
case 18: {
$arglist_current26 = HEAP32[$ap>>2]|0;
$107 = $arglist_current26;
$108 = ((0) + 8|0);
$expanded91 = $108;
$expanded90 = (($expanded91) - 1)|0;
$109 = (($107) + ($expanded90))|0;
$110 = ((0) + 8|0);
$expanded95 = $110;
$expanded94 = (($expanded95) - 1)|0;
$expanded93 = $expanded94 ^ -1;
$111 = $109 & $expanded93;
$112 = $111;
$113 = +HEAPF64[$112>>3];
$arglist_next27 = ((($112)) + 8|0);
HEAP32[$ap>>2] = $arglist_next27;
HEAPF64[$arg>>3] = $113;
break L1;
break;
}
default: {
break L1;
}
}
} while(0);
}
} while(0);
return;
}
function _fmt_u($0,$1,$s) {
$0 = $0|0;
$1 = $1|0;
$s = $s|0;
var $$0$lcssa = 0, $$01$lcssa$off0 = 0, $$05 = 0, $$1$lcssa = 0, $$12 = 0, $$lcssa19 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $y$03 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1>>>0)>(0);
$3 = ($0>>>0)>(4294967295);
$4 = ($1|0)==(0);
$5 = $4 & $3;
$6 = $2 | $5;
if ($6) {
$$05 = $s;$7 = $0;$8 = $1;
while(1) {
$9 = (___uremdi3(($7|0),($8|0),10,0)|0);
$10 = tempRet0;
$11 = $9 | 48;
$12 = $11&255;
$13 = ((($$05)) + -1|0);
HEAP8[$13>>0] = $12;
$14 = (___udivdi3(($7|0),($8|0),10,0)|0);
$15 = tempRet0;
$16 = ($8>>>0)>(9);
$17 = ($7>>>0)>(4294967295);
$18 = ($8|0)==(9);
$19 = $18 & $17;
$20 = $16 | $19;
if ($20) {
$$05 = $13;$7 = $14;$8 = $15;
} else {
$$lcssa19 = $13;$28 = $14;$29 = $15;
break;
}
}
$$0$lcssa = $$lcssa19;$$01$lcssa$off0 = $28;
} else {
$$0$lcssa = $s;$$01$lcssa$off0 = $0;
}
$21 = ($$01$lcssa$off0|0)==(0);
if ($21) {
$$1$lcssa = $$0$lcssa;
} else {
$$12 = $$0$lcssa;$y$03 = $$01$lcssa$off0;
while(1) {
$22 = (($y$03>>>0) % 10)&-1;
$23 = $22 | 48;
$24 = $23&255;
$25 = ((($$12)) + -1|0);
HEAP8[$25>>0] = $24;
$26 = (($y$03>>>0) / 10)&-1;
$27 = ($y$03>>>0)<(10);
if ($27) {
$$1$lcssa = $25;
break;
} else {
$$12 = $25;$y$03 = $26;
}
}
}
return ($$1$lcssa|0);
}
function _memchr($src,$c,$n) {
$src = $src|0;
$c = $c|0;
$n = $n|0;
var $$0$lcssa = 0, $$0$lcssa30 = 0, $$019 = 0, $$1$lcssa = 0, $$110 = 0, $$110$lcssa = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, $s$0$lcssa = 0, $s$0$lcssa29 = 0, $s$020 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$011 = 0, $w$011$lcssa = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $c & 255;
$1 = $src;
$2 = $1 & 3;
$3 = ($2|0)!=(0);
$4 = ($n|0)!=(0);
$or$cond18 = $4 & $3;
L1: do {
if ($or$cond18) {
$5 = $c&255;
$$019 = $n;$s$020 = $src;
while(1) {
$6 = HEAP8[$s$020>>0]|0;
$7 = ($6<<24>>24)==($5<<24>>24);
if ($7) {
$$0$lcssa30 = $$019;$s$0$lcssa29 = $s$020;
label = 6;
break L1;
}
$8 = ((($s$020)) + 1|0);
$9 = (($$019) + -1)|0;
$10 = $8;
$11 = $10 & 3;
$12 = ($11|0)!=(0);
$13 = ($9|0)!=(0);
$or$cond = $13 & $12;
if ($or$cond) {
$$019 = $9;$s$020 = $8;
} else {
$$0$lcssa = $9;$$lcssa = $13;$s$0$lcssa = $8;
label = 5;
break;
}
}
} else {
$$0$lcssa = $n;$$lcssa = $4;$s$0$lcssa = $src;
label = 5;
}
} while(0);
if ((label|0) == 5) {
if ($$lcssa) {
$$0$lcssa30 = $$0$lcssa;$s$0$lcssa29 = $s$0$lcssa;
label = 6;
} else {
$$3 = 0;$s$2 = $s$0$lcssa;
}
}
L8: do {
if ((label|0) == 6) {
$14 = HEAP8[$s$0$lcssa29>>0]|0;
$15 = $c&255;
$16 = ($14<<24>>24)==($15<<24>>24);
if ($16) {
$$3 = $$0$lcssa30;$s$2 = $s$0$lcssa29;
} else {
$17 = Math_imul($0, 16843009)|0;
$18 = ($$0$lcssa30>>>0)>(3);
L11: do {
if ($18) {
$$110 = $$0$lcssa30;$w$011 = $s$0$lcssa29;
while(1) {
$19 = HEAP32[$w$011>>2]|0;
$20 = $19 ^ $17;
$21 = (($20) + -16843009)|0;
$22 = $20 & -2139062144;
$23 = $22 ^ -2139062144;
$24 = $23 & $21;
$25 = ($24|0)==(0);
if (!($25)) {
$$110$lcssa = $$110;$w$011$lcssa = $w$011;
break;
}
$26 = ((($w$011)) + 4|0);
$27 = (($$110) + -4)|0;
$28 = ($27>>>0)>(3);
if ($28) {
$$110 = $27;$w$011 = $26;
} else {
$$1$lcssa = $27;$w$0$lcssa = $26;
label = 11;
break L11;
}
}
$$24 = $$110$lcssa;$s$15 = $w$011$lcssa;
} else {
$$1$lcssa = $$0$lcssa30;$w$0$lcssa = $s$0$lcssa29;
label = 11;
}
} while(0);
if ((label|0) == 11) {
$29 = ($$1$lcssa|0)==(0);
if ($29) {
$$3 = 0;$s$2 = $w$0$lcssa;
break;
} else {
$$24 = $$1$lcssa;$s$15 = $w$0$lcssa;
}
}
while(1) {
$30 = HEAP8[$s$15>>0]|0;
$31 = ($30<<24>>24)==($15<<24>>24);
if ($31) {
$$3 = $$24;$s$2 = $s$15;
break L8;
}
$32 = ((($s$15)) + 1|0);
$33 = (($$24) + -1)|0;
$34 = ($33|0)==(0);
if ($34) {
$$3 = 0;$s$2 = $32;
break;
} else {
$$24 = $33;$s$15 = $32;
}
}
}
}
} while(0);
$35 = ($$3|0)!=(0);
$36 = $35 ? $s$2 : 0;
return ($36|0);
}
function _pad($f,$c,$w,$l,$fl) {
$f = $f|0;
$c = $c|0;
$w = $w|0;
$l = $l|0;
$fl = $fl|0;
var $$0$lcssa6 = 0, $$02 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, $pad = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$pad = sp;
$0 = $fl & 73728;
$1 = ($0|0)==(0);
$2 = ($w|0)>($l|0);
$or$cond = $2 & $1;
do {
if ($or$cond) {
$3 = (($w) - ($l))|0;
$4 = ($3>>>0)>(256);
$5 = $4 ? 256 : $3;
_memset(($pad|0),($c|0),($5|0))|0;
$6 = ($3>>>0)>(255);
$7 = HEAP32[$f>>2]|0;
$8 = $7 & 32;
$9 = ($8|0)==(0);
if ($6) {
$10 = (($w) - ($l))|0;
$$02 = $3;$17 = $7;$18 = $9;
while(1) {
if ($18) {
(___fwritex($pad,256,$f)|0);
$$pre = HEAP32[$f>>2]|0;
$14 = $$pre;
} else {
$14 = $17;
}
$11 = (($$02) + -256)|0;
$12 = ($11>>>0)>(255);
$13 = $14 & 32;
$15 = ($13|0)==(0);
if ($12) {
$$02 = $11;$17 = $14;$18 = $15;
} else {
break;
}
}
$16 = $10 & 255;
if ($15) {
$$0$lcssa6 = $16;
} else {
break;
}
} else {
if ($9) {
$$0$lcssa6 = $3;
} else {
break;
}
}
(___fwritex($pad,$$0$lcssa6,$f)|0);
}
} while(0);
STACKTOP = sp;return;
}
function _wctomb($s,$wc) {
$s = $s|0;
$wc = $wc|0;
var $$0 = 0, $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($s|0)==(0|0);
if ($0) {
$$0 = 0;
} else {
$1 = (_wcrtomb($s,$wc,0)|0);
$$0 = $1;
}
return ($$0|0);
}
function _wcrtomb($s,$wc,$st) {
$s = $s|0;
$wc = $wc|0;
$st = $st|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($s|0)==(0|0);
do {
if ($0) {
$$0 = 1;
} else {
$1 = ($wc>>>0)<(128);
if ($1) {
$2 = $wc&255;
HEAP8[$s>>0] = $2;
$$0 = 1;
break;
}
$3 = ($wc>>>0)<(2048);
if ($3) {
$4 = $wc >>> 6;
$5 = $4 | 192;
$6 = $5&255;
$7 = ((($s)) + 1|0);
HEAP8[$s>>0] = $6;
$8 = $wc & 63;
$9 = $8 | 128;
$10 = $9&255;
HEAP8[$7>>0] = $10;
$$0 = 2;
break;
}
$11 = ($wc>>>0)<(55296);
$12 = $wc & -8192;
$13 = ($12|0)==(57344);
$or$cond = $11 | $13;
if ($or$cond) {
$14 = $wc >>> 12;
$15 = $14 | 224;
$16 = $15&255;
$17 = ((($s)) + 1|0);
HEAP8[$s>>0] = $16;
$18 = $wc >>> 6;
$19 = $18 & 63;
$20 = $19 | 128;
$21 = $20&255;
$22 = ((($s)) + 2|0);
HEAP8[$17>>0] = $21;
$23 = $wc & 63;
$24 = $23 | 128;
$25 = $24&255;
HEAP8[$22>>0] = $25;
$$0 = 3;
break;
}
$26 = (($wc) + -65536)|0;
$27 = ($26>>>0)<(1048576);
if ($27) {
$28 = $wc >>> 18;
$29 = $28 | 240;
$30 = $29&255;
$31 = ((($s)) + 1|0);
HEAP8[$s>>0] = $30;
$32 = $wc >>> 12;
$33 = $32 & 63;
$34 = $33 | 128;
$35 = $34&255;
$36 = ((($s)) + 2|0);
HEAP8[$31>>0] = $35;
$37 = $wc >>> 6;
$38 = $37 & 63;
$39 = $38 | 128;
$40 = $39&255;
$41 = ((($s)) + 3|0);
HEAP8[$36>>0] = $40;
$42 = $wc & 63;
$43 = $42 | 128;
$44 = $43&255;
HEAP8[$41>>0] = $44;
$$0 = 4;
break;
} else {
$45 = (___errno_location()|0);
HEAP32[$45>>2] = 84;
$$0 = -1;
break;
}
}
} while(0);
return ($$0|0);
}
function _frexpl($x,$e) {
$x = +$x;
$e = $e|0;
var $0 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (+_frexp($x,$e));
return (+$0);
}
function _frexp($x,$e) {
$x = +$x;
$e = $e|0;
var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $storemerge = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF64[tempDoublePtr>>3] = $x;$0 = HEAP32[tempDoublePtr>>2]|0;
$1 = HEAP32[tempDoublePtr+4>>2]|0;
$2 = (_bitshift64Lshr(($0|0),($1|0),52)|0);
$3 = tempRet0;
$4 = $2 & 2047;
switch ($4|0) {
case 0: {
$5 = $x != 0.0;
if ($5) {
$6 = $x * 1.8446744073709552E+19;
$7 = (+_frexp($6,$e));
$8 = HEAP32[$e>>2]|0;
$9 = (($8) + -64)|0;
$$01 = $7;$storemerge = $9;
} else {
$$01 = $x;$storemerge = 0;
}
HEAP32[$e>>2] = $storemerge;
$$0 = $$01;
break;
}
case 2047: {
$$0 = $x;
break;
}
default: {
$10 = (($4) + -1022)|0;
HEAP32[$e>>2] = $10;
$11 = $1 & -2146435073;
$12 = $11 | 1071644672;
HEAP32[tempDoublePtr>>2] = $0;HEAP32[tempDoublePtr+4>>2] = $12;$13 = +HEAPF64[tempDoublePtr>>3];
$$0 = $13;
}
}
return (+$$0);
}
function ___lockfile($f) {
$f = $f|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _toupper($c) {
$c = $c|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_islower($c)|0);
$1 = ($0|0)==(0);
$2 = $c & 95;
$$0 = $1 ? $c : $2;
return ($$0|0);
}
function _strlen($s) {
$s = $s|0;
var $$0 = 0, $$01$lcssa = 0, $$014 = 0, $$1$lcssa = 0, $$lcssa20 = 0, $$pn = 0, $$pn15 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $w$0 = 0, $w$0$lcssa = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $s;
$1 = $0 & 3;
$2 = ($1|0)==(0);
L1: do {
if ($2) {
$$01$lcssa = $s;
label = 4;
} else {
$$014 = $s;$21 = $0;
while(1) {
$3 = HEAP8[$$014>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$$pn = $21;
break L1;
}
$5 = ((($$014)) + 1|0);
$6 = $5;
$7 = $6 & 3;
$8 = ($7|0)==(0);
if ($8) {
$$01$lcssa = $5;
label = 4;
break;
} else {
$$014 = $5;$21 = $6;
}
}
}
} while(0);
if ((label|0) == 4) {
$w$0 = $$01$lcssa;
while(1) {
$9 = HEAP32[$w$0>>2]|0;
$10 = (($9) + -16843009)|0;
$11 = $9 & -2139062144;
$12 = $11 ^ -2139062144;
$13 = $12 & $10;
$14 = ($13|0)==(0);
$15 = ((($w$0)) + 4|0);
if ($14) {
$w$0 = $15;
} else {
$$lcssa20 = $9;$w$0$lcssa = $w$0;
break;
}
}
$16 = $$lcssa20&255;
$17 = ($16<<24>>24)==(0);
if ($17) {
$$1$lcssa = $w$0$lcssa;
} else {
$$pn15 = $w$0$lcssa;
while(1) {
$18 = ((($$pn15)) + 1|0);
$$pre = HEAP8[$18>>0]|0;
$19 = ($$pre<<24>>24)==(0);
if ($19) {
$$1$lcssa = $18;
break;
} else {
$$pn15 = $18;
}
}
}
$20 = $$1$lcssa;
$$pn = $20;
}
$$0 = (($$pn) - ($0))|0;
return ($$0|0);
}
function _iswlower($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_towupper($wc)|0);
$1 = ($0|0)!=($wc|0);
$2 = ($wc|0)==(223);
$3 = $2 | $1;
$4 = $3&1;
return ($4|0);
}
function _iswprint($wc) {
$wc = $wc|0;
var $$ = 0, $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0;
var label = 0, sp = 0;
sp = STACKTOP;
$0 = ($wc>>>0)<(255);
if ($0) {
$1 = (($wc) + 1)|0;
$2 = $1 & 127;
$3 = ($2>>>0)>(32);
$4 = $3&1;
$$0 = $4;
} else {
$5 = ($wc>>>0)<(8232);
$6 = (($wc) + -8234)|0;
$7 = ($6>>>0)<(47062);
$or$cond = $5 | $7;
$8 = (($wc) + -57344)|0;
$9 = ($8>>>0)<(8185);
$or$cond3 = $9 | $or$cond;
if ($or$cond3) {
$$0 = 1;
} else {
$10 = (($wc) + -65532)|0;
$11 = ($10>>>0)>(1048579);
$12 = $wc & 65534;
$13 = ($12|0)==(65534);
$or$cond5 = $11 | $13;
$14 = $or$cond5&1;
$$ = $14 ^ 1;
return ($$|0);
}
}
return ($$0|0);
}
function _iswctype($wc,$type) {
$wc = $wc|0;
$type = $type|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
do {
switch ($type|0) {
case 1: {
$0 = (_iswalnum($wc)|0);
$$0 = $0;
break;
}
case 2: {
$1 = (_iswalpha($wc)|0);
$$0 = $1;
break;
}
case 3: {
$2 = (_iswblank($wc)|0);
$$0 = $2;
break;
}
case 4: {
$3 = (_iswcntrl($wc)|0);
$$0 = $3;
break;
}
case 5: {
$4 = (_iswdigit($wc)|0);
$$0 = $4;
break;
}
case 6: {
$5 = (_iswgraph($wc)|0);
$$0 = $5;
break;
}
case 7: {
$6 = (_iswlower($wc)|0);
$$0 = $6;
break;
}
case 8: {
$7 = (_iswprint($wc)|0);
$$0 = $7;
break;
}
case 9: {
$8 = (_iswpunct($wc)|0);
$$0 = $8;
break;
}
case 10: {
$9 = (_iswspace($wc)|0);
$$0 = $9;
break;
}
case 11: {
$10 = (_iswupper($wc)|0);
$$0 = $10;
break;
}
case 12: {
$11 = (_iswxdigit($wc)|0);
$$0 = $11;
break;
}
default: {
$$0 = 0;
}
}
} while(0);
return ($$0|0);
}
function _iswalnum($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_iswdigit($wc)|0);
$1 = ($0|0)==(0);
if ($1) {
$2 = (_iswalpha($wc)|0);
$3 = ($2|0)!=(0);
$5 = $3;
} else {
$5 = 1;
}
$4 = $5&1;
return ($4|0);
}
function _iswdigit($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($wc) + -48)|0;
$1 = ($0>>>0)<(10);
$2 = $1&1;
return ($2|0);
}
function _iswcntrl($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($wc>>>0)<(32);
$1 = (($wc) + -127)|0;
$2 = ($1>>>0)<(33);
$or$cond = $0 | $2;
$3 = $wc & -2;
$4 = ($3|0)==(8232);
$or$cond3 = $4 | $or$cond;
if ($or$cond3) {
$8 = 1;
} else {
$5 = (($wc) + -65529)|0;
$6 = ($5>>>0)<(3);
$8 = $6;
}
$7 = $8&1;
return ($7|0);
}
function _iswgraph($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_iswspace($wc)|0);
$1 = ($0|0)==(0);
if ($1) {
$2 = (_iswprint($wc)|0);
$3 = ($2|0)!=(0);
$5 = $3;
} else {
$5 = 0;
}
$4 = $5&1;
return ($4|0);
}
function _iswpunct($wc) {
$wc = $wc|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($wc>>>0)<(131072);
if ($0) {
$1 = $wc >>> 8;
$2 = (67084 + ($1)|0);
$3 = HEAP8[$2>>0]|0;
$4 = $3&255;
$5 = $4 << 5;
$6 = $wc >>> 3;
$7 = $6 & 31;
$8 = $5 | $7;
$9 = (67084 + ($8)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $wc & 7;
$13 = $11 >>> $12;
$14 = $13 & 1;
$$0 = $14;
} else {
$$0 = 0;
}
return ($$0|0);
}
function _iswupper($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_towlower($wc)|0);
$1 = ($0|0)!=($wc|0);
$2 = $1&1;
return ($2|0);
}
function _iswxdigit($wc) {
$wc = $wc|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($wc) + -48)|0;
$1 = ($0>>>0)<(10);
if ($1) {
$6 = 1;
} else {
$2 = $wc | 32;
$3 = (($2) + -97)|0;
$4 = ($3>>>0)<(6);
$6 = $4;
}
$5 = $6&1;
return ($5|0);
}
function _strcasecmp($_l,$_r) {
$_l = $_l|0;
$_r = $_r|0;
var $$pre$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l$03 = 0, $l$03$lcssa20 = 0, $r$0$lcssa = 0, $r$04 = 0, $r$04$lcssa19 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP8[$_l>>0]|0;
$1 = ($0<<24>>24)==(0);
L1: do {
if ($1) {
$19 = 0;$r$0$lcssa = $_r;
} else {
$2 = $0&255;
$5 = $0;$7 = $2;$l$03 = $_l;$r$04 = $_r;
while(1) {
$3 = HEAP8[$r$04>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$19 = $5;$r$0$lcssa = $r$04;
break L1;
}
$6 = ($5<<24>>24)==($3<<24>>24);
if (!($6)) {
$8 = (_tolower($7)|0);
$9 = HEAP8[$r$04>>0]|0;
$10 = $9&255;
$11 = (_tolower($10)|0);
$12 = ($8|0)==($11|0);
if (!($12)) {
$l$03$lcssa20 = $l$03;$r$04$lcssa19 = $r$04;
break;
}
}
$13 = ((($l$03)) + 1|0);
$14 = ((($r$04)) + 1|0);
$15 = HEAP8[$13>>0]|0;
$16 = $15&255;
$17 = ($15<<24>>24)==(0);
if ($17) {
$19 = 0;$r$0$lcssa = $14;
break L1;
} else {
$5 = $15;$7 = $16;$l$03 = $13;$r$04 = $14;
}
}
$$pre$pre = HEAP8[$l$03$lcssa20>>0]|0;
$19 = $$pre$pre;$r$0$lcssa = $r$04$lcssa19;
}
} while(0);
$18 = $19&255;
$20 = (_tolower($18)|0);
$21 = HEAP8[$r$0$lcssa>>0]|0;
$22 = $21&255;
$23 = (_tolower($22)|0);
$24 = (($20) - ($23))|0;
return ($24|0);
}
function _strcpy($dest,$src) {
$dest = $dest|0;
$src = $src|0;
var label = 0, sp = 0;
sp = STACKTOP;
(___stpcpy($dest,$src)|0);
return ($dest|0);
}
function ___stpcpy($d,$s) {
$d = $d|0;
$s = $s|0;
var $$0$lcssa = 0, $$01$lcssa = 0, $$0115 = 0, $$016 = 0, $$03 = 0, $$1$ph = 0, $$12$ph = 0, $$128 = 0, $$19 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $wd$0$lcssa = 0, $wd$010 = 0, $ws$0$lcssa = 0, $ws$011 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $s;
$1 = $d;
$2 = $0 ^ $1;
$3 = $2 & 3;
$4 = ($3|0)==(0);
L1: do {
if ($4) {
$5 = $0 & 3;
$6 = ($5|0)==(0);
if ($6) {
$$0$lcssa = $s;$$01$lcssa = $d;
} else {
$$0115 = $d;$$016 = $s;
while(1) {
$7 = HEAP8[$$016>>0]|0;
HEAP8[$$0115>>0] = $7;
$8 = ($7<<24>>24)==(0);
if ($8) {
$$03 = $$0115;
break L1;
}
$9 = ((($$016)) + 1|0);
$10 = ((($$0115)) + 1|0);
$11 = $9;
$12 = $11 & 3;
$13 = ($12|0)==(0);
if ($13) {
$$0$lcssa = $9;$$01$lcssa = $10;
break;
} else {
$$0115 = $10;$$016 = $9;
}
}
}
$14 = HEAP32[$$0$lcssa>>2]|0;
$15 = (($14) + -16843009)|0;
$16 = $14 & -2139062144;
$17 = $16 ^ -2139062144;
$18 = $17 & $15;
$19 = ($18|0)==(0);
if ($19) {
$22 = $14;$wd$010 = $$01$lcssa;$ws$011 = $$0$lcssa;
while(1) {
$20 = ((($ws$011)) + 4|0);
$21 = ((($wd$010)) + 4|0);
HEAP32[$wd$010>>2] = $22;
$23 = HEAP32[$20>>2]|0;
$24 = (($23) + -16843009)|0;
$25 = $23 & -2139062144;
$26 = $25 ^ -2139062144;
$27 = $26 & $24;
$28 = ($27|0)==(0);
if ($28) {
$22 = $23;$wd$010 = $21;$ws$011 = $20;
} else {
$wd$0$lcssa = $21;$ws$0$lcssa = $20;
break;
}
}
} else {
$wd$0$lcssa = $$01$lcssa;$ws$0$lcssa = $$0$lcssa;
}
$$1$ph = $ws$0$lcssa;$$12$ph = $wd$0$lcssa;
label = 8;
} else {
$$1$ph = $s;$$12$ph = $d;
label = 8;
}
} while(0);
if ((label|0) == 8) {
$29 = HEAP8[$$1$ph>>0]|0;
HEAP8[$$12$ph>>0] = $29;
$30 = ($29<<24>>24)==(0);
if ($30) {
$$03 = $$12$ph;
} else {
$$128 = $$12$ph;$$19 = $$1$ph;
while(1) {
$31 = ((($$19)) + 1|0);
$32 = ((($$128)) + 1|0);
$33 = HEAP8[$31>>0]|0;
HEAP8[$32>>0] = $33;
$34 = ($33<<24>>24)==(0);
if ($34) {
$$03 = $32;
break;
} else {
$$128 = $32;$$19 = $31;
}
}
}
}
return ($$03|0);
}
function _isspace($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($c|0)==(32);
$1 = (($c) + -9)|0;
$2 = ($1>>>0)<(5);
$3 = $0 | $2;
$4 = $3&1;
return ($4|0);
}
function _strtoul($s,$p,$base) {
$s = $s|0;
$p = $p|0;
$base = $base|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_strtox($s,$p,$base,-1,0)|0);
$1 = tempRet0;
return ($0|0);
}
function _strtox($s,$p,$base,$0,$1) {
$s = $s|0;
$p = $p|0;
$base = $base|0;
$0 = $0|0;
$1 = $1|0;
var $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $f = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$f = sp;
HEAP32[$f>>2] = 0;
$2 = ((($f)) + 4|0);
HEAP32[$2>>2] = $s;
$3 = ((($f)) + 44|0);
HEAP32[$3>>2] = $s;
$4 = ($s|0)<(0|0);
$5 = ((($s)) + 2147483647|0);
$$sink = $4 ? (-1) : $5;
$6 = ((($f)) + 8|0);
HEAP32[$6>>2] = $$sink;
$7 = ((($f)) + 76|0);
HEAP32[$7>>2] = -1;
___shlim($f,0);
$8 = (___intscan($f,$base,1,$0,$1)|0);
$9 = tempRet0;
$10 = ($p|0)==(0|0);
if (!($10)) {
$11 = ((($f)) + 108|0);
$12 = HEAP32[$11>>2]|0;
$13 = HEAP32[$2>>2]|0;
$14 = HEAP32[$6>>2]|0;
$15 = (($13) + ($12))|0;
$16 = (($15) - ($14))|0;
$17 = (($s) + ($16)|0);
HEAP32[$p>>2] = $17;
}
tempRet0 = ($9);
STACKTOP = sp;return ($8|0);
}
function ___shlim($f,$lim) {
$f = $f|0;
$lim = $lim|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 104|0);
HEAP32[$0>>2] = $lim;
$1 = ((($f)) + 8|0);
$2 = HEAP32[$1>>2]|0;
$3 = ((($f)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($2) - ($4))|0;
$6 = ((($f)) + 108|0);
HEAP32[$6>>2] = $5;
$7 = ($lim|0)!=(0);
$8 = ($5|0)>($lim|0);
$or$cond = $7 & $8;
if ($or$cond) {
$9 = $4;
$10 = (($9) + ($lim)|0);
$11 = ((($f)) + 100|0);
HEAP32[$11>>2] = $10;
} else {
$12 = ((($f)) + 100|0);
HEAP32[$12>>2] = $2;
}
return;
}
function ___intscan($f,$base,$pok,$0,$1) {
$f = $f|0;
$base = $base|0;
$pok = $pok|0;
$0 = $0|0;
$1 = $1|0;
var $$1 = 0, $$115 = 0, $$116 = 0, $$base14 = 0, $$lcssa = 0, $$lcssa108 = 0, $$lcssa109 = 0, $$lcssa110 = 0, $$lcssa111 = 0, $$lcssa112 = 0, $$lcssa113 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0;
var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0;
var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0;
var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0;
var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0;
var $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0;
var $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0;
var $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0;
var $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0;
var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0;
var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0;
var $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0;
var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0;
var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0;
var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $c$0 = 0, $c$1 = 0, $c$117 = 0, $c$2$be = 0, $c$2$be$lcssa = 0, $c$2$lcssa = 0, $c$3$be = 0, $c$3$lcssa = 0, $c$359 = 0, $c$4$be = 0, $c$4$be$lcssa = 0, $c$4$lcssa = 0, $c$5$be = 0, $c$6$be = 0, $c$6$be$lcssa = 0;
var $c$6$lcssa = 0, $c$7$be = 0, $c$742 = 0, $c$8 = 0, $c$9$be = 0, $neg$0 = 0, $neg$0$ = 0, $neg$1 = 0, $or$cond = 0, $or$cond12 = 0, $or$cond31 = 0, $or$cond5 = 0, $or$cond7 = 0, $x$070 = 0, $x$136 = 0, $x$254 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($base>>>0)>(36);
L1: do {
if ($2) {
$5 = (___errno_location()|0);
HEAP32[$5>>2] = 22;
$286 = 0;$287 = 0;
} else {
$3 = ((($f)) + 4|0);
$4 = ((($f)) + 100|0);
while(1) {
$6 = HEAP32[$3>>2]|0;
$7 = HEAP32[$4>>2]|0;
$8 = ($6>>>0)<($7>>>0);
if ($8) {
$9 = ((($6)) + 1|0);
HEAP32[$3>>2] = $9;
$10 = HEAP8[$6>>0]|0;
$11 = $10&255;
$13 = $11;
} else {
$12 = (___shgetc($f)|0);
$13 = $12;
}
$14 = (_isspace($13)|0);
$15 = ($14|0)==(0);
if ($15) {
$$lcssa113 = $13;
break;
}
}
$16 = ($$lcssa113|0)==(45);
L11: do {
switch ($$lcssa113|0) {
case 43: case 45: {
$17 = $16 << 31 >> 31;
$18 = HEAP32[$3>>2]|0;
$19 = HEAP32[$4>>2]|0;
$20 = ($18>>>0)<($19>>>0);
if ($20) {
$21 = ((($18)) + 1|0);
HEAP32[$3>>2] = $21;
$22 = HEAP8[$18>>0]|0;
$23 = $22&255;
$c$0 = $23;$neg$0 = $17;
break L11;
} else {
$24 = (___shgetc($f)|0);
$c$0 = $24;$neg$0 = $17;
break L11;
}
break;
}
default: {
$c$0 = $$lcssa113;$neg$0 = 0;
}
}
} while(0);
$25 = ($base|0)==(0);
$26 = $base | 16;
$27 = ($26|0)==(16);
$28 = ($c$0|0)==(48);
$or$cond5 = $27 & $28;
do {
if ($or$cond5) {
$29 = HEAP32[$3>>2]|0;
$30 = HEAP32[$4>>2]|0;
$31 = ($29>>>0)<($30>>>0);
if ($31) {
$32 = ((($29)) + 1|0);
HEAP32[$3>>2] = $32;
$33 = HEAP8[$29>>0]|0;
$34 = $33&255;
$37 = $34;
} else {
$35 = (___shgetc($f)|0);
$37 = $35;
}
$36 = $37 | 32;
$38 = ($36|0)==(120);
if (!($38)) {
if ($25) {
$$116 = 8;$c$117 = $37;
label = 46;
break;
} else {
$$1 = $base;$c$1 = $37;
label = 32;
break;
}
}
$39 = HEAP32[$3>>2]|0;
$40 = HEAP32[$4>>2]|0;
$41 = ($39>>>0)<($40>>>0);
if ($41) {
$42 = ((($39)) + 1|0);
HEAP32[$3>>2] = $42;
$43 = HEAP8[$39>>0]|0;
$44 = $43&255;
$47 = $44;
} else {
$45 = (___shgetc($f)|0);
$47 = $45;
}
$46 = ((70253) + ($47)|0);
$48 = HEAP8[$46>>0]|0;
$49 = ($48&255)>(15);
if ($49) {
$50 = HEAP32[$4>>2]|0;
$51 = ($50|0)==(0|0);
if (!($51)) {
$52 = HEAP32[$3>>2]|0;
$53 = ((($52)) + -1|0);
HEAP32[$3>>2] = $53;
}
$54 = ($pok|0)==(0);
if ($54) {
___shlim($f,0);
$286 = 0;$287 = 0;
break L1;
}
if ($51) {
$286 = 0;$287 = 0;
break L1;
}
$55 = HEAP32[$3>>2]|0;
$56 = ((($55)) + -1|0);
HEAP32[$3>>2] = $56;
$286 = 0;$287 = 0;
break L1;
} else {
$$116 = 16;$c$117 = $47;
label = 46;
}
} else {
$$base14 = $25 ? 10 : $base;
$57 = ((70253) + ($c$0)|0);
$58 = HEAP8[$57>>0]|0;
$59 = $58&255;
$60 = ($59>>>0)<($$base14>>>0);
if ($60) {
$$1 = $$base14;$c$1 = $c$0;
label = 32;
} else {
$61 = HEAP32[$4>>2]|0;
$62 = ($61|0)==(0|0);
if (!($62)) {
$63 = HEAP32[$3>>2]|0;
$64 = ((($63)) + -1|0);
HEAP32[$3>>2] = $64;
}
___shlim($f,0);
$65 = (___errno_location()|0);
HEAP32[$65>>2] = 22;
$286 = 0;$287 = 0;
break L1;
}
}
} while(0);
if ((label|0) == 32) {
$66 = ($$1|0)==(10);
if ($66) {
$67 = (($c$1) + -48)|0;
$68 = ($67>>>0)<(10);
if ($68) {
$71 = $67;$x$070 = 0;
while(1) {
$69 = ($x$070*10)|0;
$70 = (($69) + ($71))|0;
$72 = HEAP32[$3>>2]|0;
$73 = HEAP32[$4>>2]|0;
$74 = ($72>>>0)<($73>>>0);
if ($74) {
$75 = ((($72)) + 1|0);
HEAP32[$3>>2] = $75;
$76 = HEAP8[$72>>0]|0;
$77 = $76&255;
$c$2$be = $77;
} else {
$78 = (___shgetc($f)|0);
$c$2$be = $78;
}
$79 = (($c$2$be) + -48)|0;
$80 = ($79>>>0)<(10);
$81 = ($70>>>0)<(429496729);
$82 = $80 & $81;
if ($82) {
$71 = $79;$x$070 = $70;
} else {
$$lcssa112 = $70;$c$2$be$lcssa = $c$2$be;
break;
}
}
$288 = $$lcssa112;$289 = 0;$c$2$lcssa = $c$2$be$lcssa;
} else {
$288 = 0;$289 = 0;$c$2$lcssa = $c$1;
}
$83 = (($c$2$lcssa) + -48)|0;
$84 = ($83>>>0)<(10);
if ($84) {
$85 = $288;$86 = $289;$89 = $83;$c$359 = $c$2$lcssa;
while(1) {
$87 = (___muldi3(($85|0),($86|0),10,0)|0);
$88 = tempRet0;
$90 = ($89|0)<(0);
$91 = $90 << 31 >> 31;
$92 = $89 ^ -1;
$93 = $91 ^ -1;
$94 = ($88>>>0)>($93>>>0);
$95 = ($87>>>0)>($92>>>0);
$96 = ($88|0)==($93|0);
$97 = $96 & $95;
$98 = $94 | $97;
if ($98) {
$$lcssa = $89;$290 = $85;$291 = $86;$c$3$lcssa = $c$359;
break;
}
$99 = (_i64Add(($87|0),($88|0),($89|0),($91|0))|0);
$100 = tempRet0;
$101 = HEAP32[$3>>2]|0;
$102 = HEAP32[$4>>2]|0;
$103 = ($101>>>0)<($102>>>0);
if ($103) {
$104 = ((($101)) + 1|0);
HEAP32[$3>>2] = $104;
$105 = HEAP8[$101>>0]|0;
$106 = $105&255;
$c$3$be = $106;
} else {
$107 = (___shgetc($f)|0);
$c$3$be = $107;
}
$108 = (($c$3$be) + -48)|0;
$109 = ($108>>>0)<(10);
$110 = ($100>>>0)<(429496729);
$111 = ($99>>>0)<(2576980378);
$112 = ($100|0)==(429496729);
$113 = $112 & $111;
$114 = $110 | $113;
$or$cond7 = $109 & $114;
if ($or$cond7) {
$85 = $99;$86 = $100;$89 = $108;$c$359 = $c$3$be;
} else {
$$lcssa = $108;$290 = $99;$291 = $100;$c$3$lcssa = $c$3$be;
break;
}
}
$115 = ($$lcssa>>>0)>(9);
if ($115) {
$259 = $291;$261 = $290;$neg$1 = $neg$0;
} else {
$$115 = 10;$292 = $290;$293 = $291;$c$8 = $c$3$lcssa;
label = 72;
}
} else {
$259 = $289;$261 = $288;$neg$1 = $neg$0;
}
} else {
$$116 = $$1;$c$117 = $c$1;
label = 46;
}
}
L63: do {
if ((label|0) == 46) {
$116 = (($$116) + -1)|0;
$117 = $116 & $$116;
$118 = ($117|0)==(0);
if ($118) {
$123 = ($$116*23)|0;
$124 = $123 >>> 5;
$125 = $124 & 7;
$126 = (70509 + ($125)|0);
$127 = HEAP8[$126>>0]|0;
$128 = $127 << 24 >> 24;
$129 = ((70253) + ($c$117)|0);
$130 = HEAP8[$129>>0]|0;
$131 = $130&255;
$132 = ($131>>>0)<($$116>>>0);
if ($132) {
$135 = $131;$x$136 = 0;
while(1) {
$133 = $x$136 << $128;
$134 = $135 | $133;
$136 = HEAP32[$3>>2]|0;
$137 = HEAP32[$4>>2]|0;
$138 = ($136>>>0)<($137>>>0);
if ($138) {
$139 = ((($136)) + 1|0);
HEAP32[$3>>2] = $139;
$140 = HEAP8[$136>>0]|0;
$141 = $140&255;
$c$4$be = $141;
} else {
$142 = (___shgetc($f)|0);
$c$4$be = $142;
}
$143 = ((70253) + ($c$4$be)|0);
$144 = HEAP8[$143>>0]|0;
$145 = $144&255;
$146 = ($145>>>0)<($$116>>>0);
$147 = ($134>>>0)<(134217728);
$148 = $147 & $146;
if ($148) {
$135 = $145;$x$136 = $134;
} else {
$$lcssa108 = $134;$$lcssa109 = $144;$c$4$be$lcssa = $c$4$be;
break;
}
}
$152 = $$lcssa109;$154 = 0;$156 = $$lcssa108;$c$4$lcssa = $c$4$be$lcssa;
} else {
$152 = $130;$154 = 0;$156 = 0;$c$4$lcssa = $c$117;
}
$149 = (_bitshift64Lshr(-1,-1,($128|0))|0);
$150 = tempRet0;
$151 = $152&255;
$153 = ($151>>>0)>=($$116>>>0);
$155 = ($154>>>0)>($150>>>0);
$157 = ($156>>>0)>($149>>>0);
$158 = ($154|0)==($150|0);
$159 = $158 & $157;
$160 = $155 | $159;
$or$cond31 = $153 | $160;
if ($or$cond31) {
$$115 = $$116;$292 = $156;$293 = $154;$c$8 = $c$4$lcssa;
label = 72;
break;
} else {
$161 = $156;$162 = $154;$166 = $152;
}
while(1) {
$163 = (_bitshift64Shl(($161|0),($162|0),($128|0))|0);
$164 = tempRet0;
$165 = $166&255;
$167 = $165 | $163;
$168 = HEAP32[$3>>2]|0;
$169 = HEAP32[$4>>2]|0;
$170 = ($168>>>0)<($169>>>0);
if ($170) {
$171 = ((($168)) + 1|0);
HEAP32[$3>>2] = $171;
$172 = HEAP8[$168>>0]|0;
$173 = $172&255;
$c$5$be = $173;
} else {
$174 = (___shgetc($f)|0);
$c$5$be = $174;
}
$175 = ((70253) + ($c$5$be)|0);
$176 = HEAP8[$175>>0]|0;
$177 = $176&255;
$178 = ($177>>>0)>=($$116>>>0);
$179 = ($164>>>0)>($150>>>0);
$180 = ($167>>>0)>($149>>>0);
$181 = ($164|0)==($150|0);
$182 = $181 & $180;
$183 = $179 | $182;
$or$cond = $178 | $183;
if ($or$cond) {
$$115 = $$116;$292 = $167;$293 = $164;$c$8 = $c$5$be;
label = 72;
break L63;
} else {
$161 = $167;$162 = $164;$166 = $176;
}
}
}
$119 = ((70253) + ($c$117)|0);
$120 = HEAP8[$119>>0]|0;
$121 = $120&255;
$122 = ($121>>>0)<($$116>>>0);
if ($122) {
$186 = $121;$x$254 = 0;
while(1) {
$184 = Math_imul($x$254, $$116)|0;
$185 = (($186) + ($184))|0;
$187 = HEAP32[$3>>2]|0;
$188 = HEAP32[$4>>2]|0;
$189 = ($187>>>0)<($188>>>0);
if ($189) {
$190 = ((($187)) + 1|0);
HEAP32[$3>>2] = $190;
$191 = HEAP8[$187>>0]|0;
$192 = $191&255;
$c$6$be = $192;
} else {
$193 = (___shgetc($f)|0);
$c$6$be = $193;
}
$194 = ((70253) + ($c$6$be)|0);
$195 = HEAP8[$194>>0]|0;
$196 = $195&255;
$197 = ($196>>>0)<($$116>>>0);
$198 = ($185>>>0)<(119304647);
$199 = $198 & $197;
if ($199) {
$186 = $196;$x$254 = $185;
} else {
$$lcssa110 = $185;$$lcssa111 = $195;$c$6$be$lcssa = $c$6$be;
break;
}
}
$201 = $$lcssa111;$294 = $$lcssa110;$295 = 0;$c$6$lcssa = $c$6$be$lcssa;
} else {
$201 = $120;$294 = 0;$295 = 0;$c$6$lcssa = $c$117;
}
$200 = $201&255;
$202 = ($200>>>0)<($$116>>>0);
if ($202) {
$203 = (___udivdi3(-1,-1,($$116|0),0)|0);
$204 = tempRet0;
$205 = $295;$207 = $294;$215 = $201;$c$742 = $c$6$lcssa;
while(1) {
$206 = ($205>>>0)>($204>>>0);
$208 = ($207>>>0)>($203>>>0);
$209 = ($205|0)==($204|0);
$210 = $209 & $208;
$211 = $206 | $210;
if ($211) {
$$115 = $$116;$292 = $207;$293 = $205;$c$8 = $c$742;
label = 72;
break L63;
}
$212 = (___muldi3(($207|0),($205|0),($$116|0),0)|0);
$213 = tempRet0;
$214 = $215&255;
$216 = $214 ^ -1;
$217 = ($213>>>0)>(4294967295);
$218 = ($212>>>0)>($216>>>0);
$219 = ($213|0)==(-1);
$220 = $219 & $218;
$221 = $217 | $220;
if ($221) {
$$115 = $$116;$292 = $207;$293 = $205;$c$8 = $c$742;
label = 72;
break L63;
}
$222 = (_i64Add(($214|0),0,($212|0),($213|0))|0);
$223 = tempRet0;
$224 = HEAP32[$3>>2]|0;
$225 = HEAP32[$4>>2]|0;
$226 = ($224>>>0)<($225>>>0);
if ($226) {
$227 = ((($224)) + 1|0);
HEAP32[$3>>2] = $227;
$228 = HEAP8[$224>>0]|0;
$229 = $228&255;
$c$7$be = $229;
} else {
$230 = (___shgetc($f)|0);
$c$7$be = $230;
}
$231 = ((70253) + ($c$7$be)|0);
$232 = HEAP8[$231>>0]|0;
$233 = $232&255;
$234 = ($233>>>0)<($$116>>>0);
if ($234) {
$205 = $223;$207 = $222;$215 = $232;$c$742 = $c$7$be;
} else {
$$115 = $$116;$292 = $222;$293 = $223;$c$8 = $c$7$be;
label = 72;
break;
}
}
} else {
$$115 = $$116;$292 = $294;$293 = $295;$c$8 = $c$6$lcssa;
label = 72;
}
}
} while(0);
if ((label|0) == 72) {
$235 = ((70253) + ($c$8)|0);
$236 = HEAP8[$235>>0]|0;
$237 = $236&255;
$238 = ($237>>>0)<($$115>>>0);
if ($238) {
while(1) {
$239 = HEAP32[$3>>2]|0;
$240 = HEAP32[$4>>2]|0;
$241 = ($239>>>0)<($240>>>0);
if ($241) {
$242 = ((($239)) + 1|0);
HEAP32[$3>>2] = $242;
$243 = HEAP8[$239>>0]|0;
$244 = $243&255;
$c$9$be = $244;
} else {
$245 = (___shgetc($f)|0);
$c$9$be = $245;
}
$246 = ((70253) + ($c$9$be)|0);
$247 = HEAP8[$246>>0]|0;
$248 = $247&255;
$249 = ($248>>>0)<($$115>>>0);
if (!($249)) {
break;
}
}
$250 = (___errno_location()|0);
HEAP32[$250>>2] = 34;
$251 = $0 & 1;
$252 = ($251|0)==(0);
$253 = (0)==(0);
$254 = $252 & $253;
$neg$0$ = $254 ? $neg$0 : 0;
$259 = $1;$261 = $0;$neg$1 = $neg$0$;
} else {
$259 = $293;$261 = $292;$neg$1 = $neg$0;
}
}
$255 = HEAP32[$4>>2]|0;
$256 = ($255|0)==(0|0);
if (!($256)) {
$257 = HEAP32[$3>>2]|0;
$258 = ((($257)) + -1|0);
HEAP32[$3>>2] = $258;
}
$260 = ($259>>>0)<($1>>>0);
$262 = ($261>>>0)<($0>>>0);
$263 = ($259|0)==($1|0);
$264 = $263 & $262;
$265 = $260 | $264;
if (!($265)) {
$266 = $0 & 1;
$267 = ($266|0)!=(0);
$268 = (0)!=(0);
$269 = $267 | $268;
$270 = ($neg$1|0)!=(0);
$or$cond12 = $269 | $270;
if (!($or$cond12)) {
$271 = (___errno_location()|0);
HEAP32[$271>>2] = 34;
$272 = (_i64Add(($0|0),($1|0),-1,-1)|0);
$273 = tempRet0;
$286 = $273;$287 = $272;
break;
}
$274 = ($259>>>0)>($1>>>0);
$275 = ($261>>>0)>($0>>>0);
$276 = ($259|0)==($1|0);
$277 = $276 & $275;
$278 = $274 | $277;
if ($278) {
$279 = (___errno_location()|0);
HEAP32[$279>>2] = 34;
$286 = $1;$287 = $0;
break;
}
}
$280 = ($neg$1|0)<(0);
$281 = $280 << 31 >> 31;
$282 = $261 ^ $neg$1;
$283 = $259 ^ $281;
$284 = (_i64Subtract(($282|0),($283|0),($neg$1|0),($281|0))|0);
$285 = tempRet0;
$286 = $285;$287 = $284;
}
} while(0);
tempRet0 = ($286);
return ($287|0);
}
function ___shgetc($f) {
$f = $f|0;
var $$0 = 0, $$phi$trans$insert = 0, $$phi$trans$insert3 = 0, $$pre = 0, $$pre4 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 104|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
if ($2) {
label = 3;
} else {
$3 = ((($f)) + 108|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)<($1|0);
if ($5) {
label = 3;
} else {
label = 4;
}
}
if ((label|0) == 3) {
$6 = (___uflow($f)|0);
$7 = ($6|0)<(0);
if ($7) {
label = 4;
} else {
$9 = HEAP32[$0>>2]|0;
$10 = ($9|0)==(0);
$$phi$trans$insert = ((($f)) + 8|0);
$$pre = HEAP32[$$phi$trans$insert>>2]|0;
if ($10) {
$11 = $$pre;
$41 = $11;
label = 9;
} else {
$12 = ((($f)) + 4|0);
$13 = HEAP32[$12>>2]|0;
$14 = $13;
$15 = (($$pre) - ($14))|0;
$16 = ((($f)) + 108|0);
$17 = HEAP32[$16>>2]|0;
$18 = (($9) - ($17))|0;
$19 = ($15|0)<($18|0);
$20 = $$pre;
if ($19) {
$41 = $20;
label = 9;
} else {
$21 = (($18) + -1)|0;
$22 = (($13) + ($21)|0);
$23 = ((($f)) + 100|0);
HEAP32[$23>>2] = $22;
$25 = $20;
}
}
if ((label|0) == 9) {
$24 = ((($f)) + 100|0);
HEAP32[$24>>2] = $$pre;
$25 = $41;
}
$26 = ($25|0)==(0|0);
$$phi$trans$insert3 = ((($f)) + 4|0);
if ($26) {
$$pre4 = HEAP32[$$phi$trans$insert3>>2]|0;
$36 = $$pre4;
} else {
$27 = HEAP32[$$phi$trans$insert3>>2]|0;
$28 = $25;
$29 = ((($f)) + 108|0);
$30 = HEAP32[$29>>2]|0;
$31 = (($28) + 1)|0;
$32 = (($31) - ($27))|0;
$33 = (($32) + ($30))|0;
HEAP32[$29>>2] = $33;
$34 = $27;
$36 = $34;
}
$35 = ((($36)) + -1|0);
$37 = HEAP8[$35>>0]|0;
$38 = $37&255;
$39 = ($38|0)==($6|0);
if ($39) {
$$0 = $6;
} else {
$40 = $6&255;
HEAP8[$35>>0] = $40;
$$0 = $6;
}
}
}
if ((label|0) == 4) {
$8 = ((($f)) + 100|0);
HEAP32[$8>>2] = 0;
$$0 = -1;
}
return ($$0|0);
}
function ___uflow($f) {
$f = $f|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$c = sp;
$0 = ((($f)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
if ($2) {
$3 = (___toread($f)|0);
$4 = ($3|0)==(0);
if ($4) {
label = 3;
} else {
$$0 = -1;
}
} else {
label = 3;
}
if ((label|0) == 3) {
$5 = ((($f)) + 32|0);
$6 = HEAP32[$5>>2]|0;
$7 = (FUNCTION_TABLE_iiii[$6 & 127]($f,$c,1)|0);
$8 = ($7|0)==(1);
if ($8) {
$9 = HEAP8[$c>>0]|0;
$10 = $9&255;
$$0 = $10;
} else {
$$0 = -1;
}
}
STACKTOP = sp;return ($$0|0);
}
function ___toread($f) {
$f = $f|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 74|0);
$1 = HEAP8[$0>>0]|0;
$2 = $1 << 24 >> 24;
$3 = (($2) + 255)|0;
$4 = $3 | $2;
$5 = $4&255;
HEAP8[$0>>0] = $5;
$6 = ((($f)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = ((($f)) + 44|0);
$9 = HEAP32[$8>>2]|0;
$10 = ($7>>>0)>($9>>>0);
if ($10) {
$11 = ((($f)) + 36|0);
$12 = HEAP32[$11>>2]|0;
(FUNCTION_TABLE_iiii[$12 & 127]($f,0,0)|0);
}
$13 = ((($f)) + 16|0);
HEAP32[$13>>2] = 0;
$14 = ((($f)) + 28|0);
HEAP32[$14>>2] = 0;
HEAP32[$6>>2] = 0;
$15 = HEAP32[$f>>2]|0;
$16 = $15 & 20;
$17 = ($16|0)==(0);
if ($17) {
$21 = HEAP32[$8>>2]|0;
$22 = ((($f)) + 8|0);
HEAP32[$22>>2] = $21;
$23 = ((($f)) + 4|0);
HEAP32[$23>>2] = $21;
$$0 = 0;
} else {
$18 = $15 & 4;
$19 = ($18|0)==(0);
if ($19) {
$$0 = -1;
} else {
$20 = $15 | 32;
HEAP32[$f>>2] = $20;
$$0 = -1;
}
}
return ($$0|0);
}
function _sprintf($s,$fmt,$varargs) {
$s = $s|0;
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $ap = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap = sp;
HEAP32[$ap>>2] = $varargs;
$0 = (_vsprintf($s,$fmt,$ap)|0);
STACKTOP = sp;return ($0|0);
}
function _vsprintf($s,$fmt,$ap) {
$s = $s|0;
$fmt = $fmt|0;
$ap = $ap|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_vsnprintf($s,2147483647,$fmt,$ap)|0);
return ($0|0);
}
function _fprintf($f,$fmt,$varargs) {
$f = $f|0;
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $ap = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap = sp;
HEAP32[$ap>>2] = $varargs;
$0 = (_vfprintf($f,$fmt,$ap)|0);
STACKTOP = sp;return ($0|0);
}
function _fgets($s,$n,$f) {
$s = $s|0;
$n = $n|0;
$f = $f|0;
var $$0 = 0, $$047 = 0, $$05 = 0, $$lcssa13 = 0, $$old2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0;
var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, $p$0 = 0;
var $p$1 = 0, $sext$mask = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 76|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)>(-1);
if ($2) {
$3 = (___lockfile($f)|0);
$12 = $3;
} else {
$12 = 0;
}
$4 = (($n) + -1)|0;
$5 = ($n|0)<(2);
if ($5) {
$6 = ((($f)) + 74|0);
$7 = HEAP8[$6>>0]|0;
$8 = $7 << 24 >> 24;
$9 = (($8) + 255)|0;
$10 = $9 | $8;
$11 = $10&255;
HEAP8[$6>>0] = $11;
$13 = ($12|0)==(0);
if (!($13)) {
___unlockfile($f);
}
$14 = ($4|0)==(0);
if ($14) {
HEAP8[$s>>0] = 0;
$$0 = $s;
} else {
$$0 = 0;
}
} else {
$$old2 = ($4|0)==(0);
L11: do {
if ($$old2) {
$p$1 = $s;
label = 17;
} else {
$15 = ((($f)) + 4|0);
$16 = ((($f)) + 8|0);
$$05 = $4;$p$0 = $s;
while(1) {
$17 = HEAP32[$15>>2]|0;
$18 = HEAP32[$16>>2]|0;
$19 = $17;
$20 = (($18) - ($19))|0;
$21 = (_memchr($17,10,$20)|0);
$22 = ($21|0)==(0|0);
$23 = $21;
$24 = (1 - ($19))|0;
$25 = (($24) + ($23))|0;
$26 = $22 ? $20 : $25;
$27 = ($26>>>0)<($$05>>>0);
$28 = $27 ? $26 : $$05;
_memcpy(($p$0|0),($17|0),($28|0))|0;
$29 = HEAP32[$15>>2]|0;
$30 = (($29) + ($28)|0);
HEAP32[$15>>2] = $30;
$31 = (($p$0) + ($28)|0);
$32 = (($$05) - ($28))|0;
$or$cond = $22 & $27;
if (!($or$cond)) {
$p$1 = $31;
label = 17;
break L11;
}
$33 = HEAP32[$16>>2]|0;
$34 = ($30>>>0)<($33>>>0);
if ($34) {
$35 = ((($30)) + 1|0);
HEAP32[$15>>2] = $35;
$36 = HEAP8[$30>>0]|0;
$37 = $36&255;
$46 = $37;
} else {
$38 = (___uflow($f)|0);
$39 = ($38|0)<(0);
if ($39) {
$$lcssa13 = $31;
break;
} else {
$46 = $38;
}
}
$44 = (($32) + -1)|0;
$45 = $46&255;
$47 = ((($31)) + 1|0);
HEAP8[$31>>0] = $45;
$sext$mask = $46 & 255;
$48 = ($sext$mask|0)!=(10);
$49 = ($44|0)!=(0);
$or$cond3 = $49 & $48;
if ($or$cond3) {
$$05 = $44;$p$0 = $47;
} else {
$p$1 = $47;
label = 17;
break L11;
}
}
$40 = ($$lcssa13|0)==($s|0);
if ($40) {
$$047 = 0;
} else {
$41 = HEAP32[$f>>2]|0;
$42 = $41 & 16;
$43 = ($42|0)==(0);
if ($43) {
$$047 = 0;
} else {
$p$1 = $$lcssa13;
label = 17;
}
}
}
} while(0);
if ((label|0) == 17) {
$50 = ($s|0)==(0|0);
if ($50) {
$$047 = 0;
} else {
HEAP8[$p$1>>0] = 0;
$$047 = $s;
}
}
$51 = ($12|0)==(0);
if ($51) {
$$0 = $$047;
} else {
___unlockfile($f);
$$0 = $$047;
}
}
return ($$0|0);
}
function _strncmp($_l,$_r,$n) {
$_l = $_l|0;
$_r = $_r|0;
$n = $n|0;
var $$03 = 0, $$08 = 0, $$08$in = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $l$06 = 0, $or$cond = 0, $or$cond4 = 0, $r$0$lcssa = 0, $r$07 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($n|0)==(0);
if ($0) {
$$03 = 0;
} else {
$1 = HEAP8[$_l>>0]|0;
$2 = ($1<<24>>24)==(0);
L3: do {
if ($2) {
$13 = 0;$r$0$lcssa = $_r;
} else {
$$08$in = $n;$6 = $1;$l$06 = $_l;$r$07 = $_r;
while(1) {
$$08 = (($$08$in) + -1)|0;
$3 = HEAP8[$r$07>>0]|0;
$4 = ($3<<24>>24)!=(0);
$5 = ($$08|0)!=(0);
$or$cond = $5 & $4;
$7 = ($6<<24>>24)==($3<<24>>24);
$or$cond4 = $7 & $or$cond;
if (!($or$cond4)) {
$13 = $6;$r$0$lcssa = $r$07;
break L3;
}
$8 = ((($l$06)) + 1|0);
$9 = ((($r$07)) + 1|0);
$10 = HEAP8[$8>>0]|0;
$11 = ($10<<24>>24)==(0);
if ($11) {
$13 = 0;$r$0$lcssa = $9;
break;
} else {
$$08$in = $$08;$6 = $10;$l$06 = $8;$r$07 = $9;
}
}
}
} while(0);
$12 = $13&255;
$14 = HEAP8[$r$0$lcssa>>0]|0;
$15 = $14&255;
$16 = (($12) - ($15))|0;
$$03 = $16;
}
return ($$03|0);
}
function _htonl($n) {
$n = $n|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_llvm_bswap_i32(($n|0))|0);
return ($0|0);
}
function _fcntl($fd,$cmd,$varargs) {
$fd = $fd|0;
$cmd = $cmd|0;
$varargs = $varargs|0;
var $$ = 0, $$0 = 0, $$2 = 0, $$off = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $ap = 0, $arglist_current = 0, $arglist_next = 0, $ex = 0, $expanded = 0, $expanded2 = 0, $expanded4 = 0, $expanded5 = 0, $expanded6 = 0, $switch = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer18 = 0, $vararg_buffer23 = 0, $vararg_buffer28 = 0, $vararg_buffer3 = 0, $vararg_buffer31 = 0, $vararg_buffer36 = 0;
var $vararg_buffer41 = 0, $vararg_buffer46 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr16 = 0, $vararg_ptr17 = 0, $vararg_ptr2 = 0, $vararg_ptr21 = 0, $vararg_ptr22 = 0, $vararg_ptr26 = 0, $vararg_ptr27 = 0, $vararg_ptr34 = 0, $vararg_ptr35 = 0, $vararg_ptr39 = 0, $vararg_ptr40 = 0, $vararg_ptr44 = 0, $vararg_ptr45 = 0, $vararg_ptr49 = 0;
var $vararg_ptr50 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer46 = sp + 152|0;
$vararg_buffer41 = sp + 136|0;
$vararg_buffer36 = sp + 120|0;
$vararg_buffer31 = sp + 104|0;
$vararg_buffer28 = sp + 96|0;
$vararg_buffer23 = sp + 80|0;
$vararg_buffer18 = sp + 64|0;
$vararg_buffer13 = sp + 48|0;
$vararg_buffer8 = sp + 32|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$ap = sp + 176|0;
$ex = sp + 168|0;
HEAP32[$ap>>2] = $varargs;
$arglist_current = HEAP32[$ap>>2]|0;
$0 = $arglist_current;
$1 = ((0) + 4|0);
$expanded2 = $1;
$expanded = (($expanded2) - 1)|0;
$2 = (($0) + ($expanded))|0;
$3 = ((0) + 4|0);
$expanded6 = $3;
$expanded5 = (($expanded6) - 1)|0;
$expanded4 = $expanded5 ^ -1;
$4 = $2 & $expanded4;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$arglist_next = ((($5)) + 4|0);
HEAP32[$ap>>2] = $arglist_next;
$7 = ($cmd|0)==(4);
$8 = $6 | 32768;
$$ = $7 ? $8 : $6;
L1: do {
switch ($cmd|0) {
case 14: {
$9 = $$;
HEAP32[$vararg_buffer>>2] = $fd;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 14;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $9;
$10 = (___syscall221(221,($vararg_buffer|0))|0);
$11 = (___syscall_ret($10)|0);
$$2 = $11;
break;
}
case 9: {
HEAP32[$vararg_buffer3>>2] = $fd;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = 16;
$vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
HEAP32[$vararg_ptr7>>2] = $ex;
$12 = (___syscall221(221,($vararg_buffer3|0))|0);
switch ($12|0) {
case -22: {
$13 = $$;
HEAP32[$vararg_buffer8>>2] = $fd;
$vararg_ptr11 = ((($vararg_buffer8)) + 4|0);
HEAP32[$vararg_ptr11>>2] = 9;
$vararg_ptr12 = ((($vararg_buffer8)) + 8|0);
HEAP32[$vararg_ptr12>>2] = $13;
$14 = (___syscall221(221,($vararg_buffer8|0))|0);
$$0 = $14;
break;
}
case 0: {
$16 = HEAP32[$ex>>2]|0;
$17 = ($16|0)==(2);
$18 = ((($ex)) + 4|0);
$19 = HEAP32[$18>>2]|0;
$20 = (0 - ($19))|0;
$21 = $17 ? $20 : $19;
$$0 = $21;
break;
}
default: {
$15 = (___syscall_ret($12)|0);
$$0 = $15;
}
}
$$2 = $$0;
break;
}
case 1030: {
HEAP32[$vararg_buffer13>>2] = $fd;
$vararg_ptr16 = ((($vararg_buffer13)) + 4|0);
HEAP32[$vararg_ptr16>>2] = 1030;
$vararg_ptr17 = ((($vararg_buffer13)) + 8|0);
HEAP32[$vararg_ptr17>>2] = $$;
$22 = (___syscall221(221,($vararg_buffer13|0))|0);
$23 = ($22|0)==(-22);
if (!($23)) {
$24 = ($22|0)>(-1);
if ($24) {
HEAP32[$vararg_buffer18>>2] = $22;
$vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
HEAP32[$vararg_ptr21>>2] = 2;
$vararg_ptr22 = ((($vararg_buffer18)) + 8|0);
HEAP32[$vararg_ptr22>>2] = 1;
(___syscall221(221,($vararg_buffer18|0))|0);
}
$25 = (___syscall_ret($22)|0);
$$2 = $25;
break L1;
}
HEAP32[$vararg_buffer23>>2] = $fd;
$vararg_ptr26 = ((($vararg_buffer23)) + 4|0);
HEAP32[$vararg_ptr26>>2] = 1030;
$vararg_ptr27 = ((($vararg_buffer23)) + 8|0);
HEAP32[$vararg_ptr27>>2] = 0;
$26 = (___syscall221(221,($vararg_buffer23|0))|0);
$27 = ($26|0)==(-22);
if ($27) {
HEAP32[$vararg_buffer31>>2] = $fd;
$vararg_ptr34 = ((($vararg_buffer31)) + 4|0);
HEAP32[$vararg_ptr34>>2] = 0;
$vararg_ptr35 = ((($vararg_buffer31)) + 8|0);
HEAP32[$vararg_ptr35>>2] = $$;
$30 = (___syscall221(221,($vararg_buffer31|0))|0);
$31 = ($30|0)>(-1);
if ($31) {
HEAP32[$vararg_buffer36>>2] = $30;
$vararg_ptr39 = ((($vararg_buffer36)) + 4|0);
HEAP32[$vararg_ptr39>>2] = 2;
$vararg_ptr40 = ((($vararg_buffer36)) + 8|0);
HEAP32[$vararg_ptr40>>2] = 1;
(___syscall221(221,($vararg_buffer36|0))|0);
}
$32 = (___syscall_ret($30)|0);
$$2 = $32;
break L1;
} else {
$28 = ($26|0)>(-1);
if ($28) {
HEAP32[$vararg_buffer28>>2] = $26;
(___syscall6(6,($vararg_buffer28|0))|0);
}
$29 = (___syscall_ret(-22)|0);
$$2 = $29;
break L1;
}
break;
}
default: {
$$off = (($cmd) + -12)|0;
$switch = ($$off>>>0)<(5);
if ($switch) {
$33 = $$;
HEAP32[$vararg_buffer41>>2] = $fd;
$vararg_ptr44 = ((($vararg_buffer41)) + 4|0);
HEAP32[$vararg_ptr44>>2] = $cmd;
$vararg_ptr45 = ((($vararg_buffer41)) + 8|0);
HEAP32[$vararg_ptr45>>2] = $33;
$34 = (___syscall221(221,($vararg_buffer41|0))|0);
$35 = (___syscall_ret($34)|0);
$$2 = $35;
break L1;
} else {
HEAP32[$vararg_buffer46>>2] = $fd;
$vararg_ptr49 = ((($vararg_buffer46)) + 4|0);
HEAP32[$vararg_ptr49>>2] = $cmd;
$vararg_ptr50 = ((($vararg_buffer46)) + 8|0);
HEAP32[$vararg_ptr50>>2] = $$;
$36 = (___syscall221(221,($vararg_buffer46|0))|0);
$37 = (___syscall_ret($36)|0);
$$2 = $37;
break L1;
}
}
}
} while(0);
STACKTOP = sp;return ($$2|0);
}
function _close($fd) {
$fd = $fd|0;
var $$ = 0, $0 = 0, $1 = 0, $2 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $fd;
$0 = (___syscall6(6,($vararg_buffer|0))|0);
$1 = ($0|0)==(-4);
$$ = $1 ? -115 : $0;
$2 = (___syscall_ret($$)|0);
STACKTOP = sp;return ($2|0);
}
function _memcmp($vl,$vr,$n) {
$vl = $vl|0;
$vr = $vr|0;
$n = $n|0;
var $$03 = 0, $$lcssa = 0, $$lcssa19 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l$04 = 0, $r$05 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($n|0)==(0);
L1: do {
if ($0) {
$11 = 0;
} else {
$$03 = $n;$l$04 = $vl;$r$05 = $vr;
while(1) {
$1 = HEAP8[$l$04>>0]|0;
$2 = HEAP8[$r$05>>0]|0;
$3 = ($1<<24>>24)==($2<<24>>24);
if (!($3)) {
$$lcssa = $1;$$lcssa19 = $2;
break;
}
$4 = (($$03) + -1)|0;
$5 = ((($l$04)) + 1|0);
$6 = ((($r$05)) + 1|0);
$7 = ($4|0)==(0);
if ($7) {
$11 = 0;
break L1;
} else {
$$03 = $4;$l$04 = $5;$r$05 = $6;
}
}
$8 = $$lcssa&255;
$9 = $$lcssa19&255;
$10 = (($8) - ($9))|0;
$11 = $10;
}
} while(0);
return ($11|0);
}
function _ntohl($n) {
$n = $n|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_llvm_bswap_i32(($n|0))|0);
return ($0|0);
}
function _strncpy($d,$s,$n) {
$d = $d|0;
$s = $s|0;
$n = $n|0;
var label = 0, sp = 0;
sp = STACKTOP;
(___stpncpy($d,$s,$n)|0);
return ($d|0);
}
function ___stpncpy($d,$s,$n) {
$d = $d|0;
$s = $s|0;
$n = $n|0;
var $$0$lcssa = 0, $$0$lcssa42 = 0, $$031 = 0, $$04$lcssa = 0, $$04$lcssa43 = 0, $$0430 = 0, $$06$lcssa = 0, $$06$lcssa44 = 0, $$0629 = 0, $$1$lcssa = 0, $$117 = 0, $$15$ph = 0, $$1511 = 0, $$17$ph = 0, $$1710 = 0, $$2$ph = 0, $$212 = 0, $$28 = 0, $$3 = 0, $$lcssa = 0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond28 = 0, $wd$0$lcssa = 0;
var $wd$018 = 0, $ws$0$lcssa = 0, $ws$019 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $s;
$1 = $d;
$2 = $0 ^ $1;
$3 = $2 & 3;
$4 = ($3|0)==(0);
do {
if ($4) {
$5 = $0 & 3;
$6 = ($5|0)!=(0);
$7 = ($n|0)!=(0);
$or$cond28 = $7 & $6;
L3: do {
if ($or$cond28) {
$$031 = $n;$$0430 = $s;$$0629 = $d;
while(1) {
$8 = HEAP8[$$0430>>0]|0;
HEAP8[$$0629>>0] = $8;
$9 = ($8<<24>>24)==(0);
if ($9) {
$$0$lcssa42 = $$031;$$04$lcssa43 = $$0430;$$06$lcssa44 = $$0629;
break L3;
}
$10 = (($$031) + -1)|0;
$11 = ((($$0430)) + 1|0);
$12 = ((($$0629)) + 1|0);
$13 = $11;
$14 = $13 & 3;
$15 = ($14|0)!=(0);
$16 = ($10|0)!=(0);
$or$cond = $16 & $15;
if ($or$cond) {
$$031 = $10;$$0430 = $11;$$0629 = $12;
} else {
$$0$lcssa = $10;$$04$lcssa = $11;$$06$lcssa = $12;$$lcssa = $16;
label = 5;
break;
}
}
} else {
$$0$lcssa = $n;$$04$lcssa = $s;$$06$lcssa = $d;$$lcssa = $7;
label = 5;
}
} while(0);
if ((label|0) == 5) {
if ($$lcssa) {
$$0$lcssa42 = $$0$lcssa;$$04$lcssa43 = $$04$lcssa;$$06$lcssa44 = $$06$lcssa;
} else {
$$28 = $$06$lcssa;$$3 = 0;
break;
}
}
$17 = HEAP8[$$04$lcssa43>>0]|0;
$18 = ($17<<24>>24)==(0);
if ($18) {
$$28 = $$06$lcssa44;$$3 = $$0$lcssa42;
} else {
$19 = ($$0$lcssa42>>>0)>(3);
L11: do {
if ($19) {
$$117 = $$0$lcssa42;$wd$018 = $$06$lcssa44;$ws$019 = $$04$lcssa43;
while(1) {
$20 = HEAP32[$ws$019>>2]|0;
$21 = (($20) + -16843009)|0;
$22 = $20 & -2139062144;
$23 = $22 ^ -2139062144;
$24 = $23 & $21;
$25 = ($24|0)==(0);
if (!($25)) {
$$1$lcssa = $$117;$wd$0$lcssa = $wd$018;$ws$0$lcssa = $ws$019;
break L11;
}
HEAP32[$wd$018>>2] = $20;
$26 = (($$117) + -4)|0;
$27 = ((($ws$019)) + 4|0);
$28 = ((($wd$018)) + 4|0);
$29 = ($26>>>0)>(3);
if ($29) {
$$117 = $26;$wd$018 = $28;$ws$019 = $27;
} else {
$$1$lcssa = $26;$wd$0$lcssa = $28;$ws$0$lcssa = $27;
break;
}
}
} else {
$$1$lcssa = $$0$lcssa42;$wd$0$lcssa = $$06$lcssa44;$ws$0$lcssa = $$04$lcssa43;
}
} while(0);
$$15$ph = $ws$0$lcssa;$$17$ph = $wd$0$lcssa;$$2$ph = $$1$lcssa;
label = 11;
}
} else {
$$15$ph = $s;$$17$ph = $d;$$2$ph = $n;
label = 11;
}
} while(0);
L16: do {
if ((label|0) == 11) {
$30 = ($$2$ph|0)==(0);
if ($30) {
$$28 = $$17$ph;$$3 = 0;
} else {
$$1511 = $$15$ph;$$1710 = $$17$ph;$$212 = $$2$ph;
while(1) {
$31 = HEAP8[$$1511>>0]|0;
HEAP8[$$1710>>0] = $31;
$32 = ($31<<24>>24)==(0);
if ($32) {
$$28 = $$1710;$$3 = $$212;
break L16;
}
$33 = (($$212) + -1)|0;
$34 = ((($$1511)) + 1|0);
$35 = ((($$1710)) + 1|0);
$36 = ($33|0)==(0);
if ($36) {
$$28 = $35;$$3 = 0;
break;
} else {
$$1511 = $34;$$1710 = $35;$$212 = $33;
}
}
}
}
} while(0);
_memset(($$28|0),0,($$3|0))|0;
return ($$28|0);
}
function _fopen($filename,$mode) {
$filename = $filename|0;
$mode = $mode|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$0 = HEAP8[$mode>>0]|0;
$1 = $0 << 24 >> 24;
$memchr = (_memchr(70518,$1,4)|0);
$2 = ($memchr|0)==(0|0);
if ($2) {
$3 = (___errno_location()|0);
HEAP32[$3>>2] = 22;
$$0 = 0;
} else {
$4 = (___fmodeflags($mode)|0);
$5 = $4 | 32768;
HEAP32[$vararg_buffer>>2] = $filename;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $5;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 438;
$6 = (___syscall5(5,($vararg_buffer|0))|0);
$7 = (___syscall_ret($6)|0);
$8 = ($7|0)<(0);
if ($8) {
$$0 = 0;
} else {
$9 = (___fdopen($7,$mode)|0);
$10 = ($9|0)==(0|0);
if ($10) {
HEAP32[$vararg_buffer3>>2] = $7;
(___syscall6(6,($vararg_buffer3|0))|0);
$$0 = 0;
} else {
$$0 = $9;
}
}
}
STACKTOP = sp;return ($$0|0);
}
function ___fmodeflags($mode) {
$mode = $mode|0;
var $$ = 0, $$flags$4 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $flags$0 = 0, $flags$0$ = 0, $flags$2 = 0;
var $flags$2$ = 0, $flags$4 = 0, $not$ = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_strchr($mode,43)|0);
$1 = ($0|0)==(0|0);
$2 = HEAP8[$mode>>0]|0;
$not$ = ($2<<24>>24)!=(114);
$$ = $not$&1;
$flags$0 = $1 ? $$ : 2;
$3 = (_strchr($mode,120)|0);
$4 = ($3|0)==(0|0);
$5 = $flags$0 | 128;
$flags$0$ = $4 ? $flags$0 : $5;
$6 = (_strchr($mode,101)|0);
$7 = ($6|0)==(0|0);
$8 = $flags$0$ | 524288;
$flags$2 = $7 ? $flags$0$ : $8;
$9 = ($2<<24>>24)==(114);
$10 = $flags$2 | 64;
$flags$2$ = $9 ? $flags$2 : $10;
$11 = ($2<<24>>24)==(119);
$12 = $flags$2$ | 512;
$flags$4 = $11 ? $12 : $flags$2$;
$13 = ($2<<24>>24)==(97);
$14 = $flags$4 | 1024;
$$flags$4 = $13 ? $14 : $flags$4;
return ($$flags$4|0);
}
function _strchr($s,$c) {
$s = $s|0;
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (___strchrnul($s,$c)|0);
$1 = HEAP8[$0>>0]|0;
$2 = $c&255;
$3 = ($1<<24>>24)==($2<<24>>24);
$4 = $3 ? $0 : 0;
return ($4|0);
}
function ___strchrnul($s,$c) {
$s = $s|0;
$c = $c|0;
var $$0 = 0, $$02$lcssa = 0, $$0211 = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond5 = 0, $w$0$lcssa = 0, $w$08 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $c & 255;
$1 = ($0|0)==(0);
L1: do {
if ($1) {
$6 = (_strlen($s)|0);
$7 = (($s) + ($6)|0);
$$0 = $7;
} else {
$2 = $s;
$3 = $2 & 3;
$4 = ($3|0)==(0);
if ($4) {
$$02$lcssa = $s;
} else {
$5 = $c&255;
$$0211 = $s;
while(1) {
$8 = HEAP8[$$0211>>0]|0;
$9 = ($8<<24>>24)==(0);
$10 = ($8<<24>>24)==($5<<24>>24);
$or$cond = $9 | $10;
if ($or$cond) {
$$0 = $$0211;
break L1;
}
$11 = ((($$0211)) + 1|0);
$12 = $11;
$13 = $12 & 3;
$14 = ($13|0)==(0);
if ($14) {
$$02$lcssa = $11;
break;
} else {
$$0211 = $11;
}
}
}
$15 = Math_imul($0, 16843009)|0;
$16 = HEAP32[$$02$lcssa>>2]|0;
$17 = (($16) + -16843009)|0;
$18 = $16 & -2139062144;
$19 = $18 ^ -2139062144;
$20 = $19 & $17;
$21 = ($20|0)==(0);
L10: do {
if ($21) {
$23 = $16;$w$08 = $$02$lcssa;
while(1) {
$22 = $23 ^ $15;
$24 = (($22) + -16843009)|0;
$25 = $22 & -2139062144;
$26 = $25 ^ -2139062144;
$27 = $26 & $24;
$28 = ($27|0)==(0);
if (!($28)) {
$w$0$lcssa = $w$08;
break L10;
}
$29 = ((($w$08)) + 4|0);
$30 = HEAP32[$29>>2]|0;
$31 = (($30) + -16843009)|0;
$32 = $30 & -2139062144;
$33 = $32 ^ -2139062144;
$34 = $33 & $31;
$35 = ($34|0)==(0);
if ($35) {
$23 = $30;$w$08 = $29;
} else {
$w$0$lcssa = $29;
break;
}
}
} else {
$w$0$lcssa = $$02$lcssa;
}
} while(0);
$36 = $c&255;
$$1 = $w$0$lcssa;
while(1) {
$37 = HEAP8[$$1>>0]|0;
$38 = ($37<<24>>24)==(0);
$39 = ($37<<24>>24)==($36<<24>>24);
$or$cond5 = $38 | $39;
$40 = ((($$1)) + 1|0);
if ($or$cond5) {
$$0 = $$1;
break;
} else {
$$1 = $40;
}
}
}
} while(0);
return ($$0|0);
}
function ___fdopen($fd,$mode) {
$fd = $fd|0;
$mode = $mode|0;
var $$0 = 0, $$cast = 0, $$pre = 0, $$pre1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $tio = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0;
var sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer12 = sp + 40|0;
$vararg_buffer7 = sp + 24|0;
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$tio = sp + 52|0;
$0 = HEAP8[$mode>>0]|0;
$1 = $0 << 24 >> 24;
$memchr = (_memchr(70518,$1,4)|0);
$2 = ($memchr|0)==(0|0);
if ($2) {
$3 = (___errno_location()|0);
HEAP32[$3>>2] = 22;
$$0 = 0;
} else {
$4 = (_malloc(1144)|0);
$5 = ($4|0)==(0|0);
if ($5) {
$$0 = 0;
} else {
dest=$4; stop=dest+112|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$6 = (_strchr($mode,43)|0);
$7 = ($6|0)==(0|0);
if ($7) {
$8 = ($0<<24>>24)==(114);
$9 = $8 ? 8 : 4;
HEAP32[$4>>2] = $9;
}
$10 = (_strchr($mode,101)|0);
$11 = ($10|0)==(0|0);
if ($11) {
$12 = $0;
} else {
HEAP32[$vararg_buffer>>2] = $fd;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 2;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 1;
(___syscall221(221,($vararg_buffer|0))|0);
$$pre = HEAP8[$mode>>0]|0;
$12 = $$pre;
}
$13 = ($12<<24>>24)==(97);
if ($13) {
HEAP32[$vararg_buffer3>>2] = $fd;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = 3;
$14 = (___syscall221(221,($vararg_buffer3|0))|0);
$15 = $14 & 1024;
$16 = ($15|0)==(0);
if ($16) {
$17 = $14 | 1024;
HEAP32[$vararg_buffer7>>2] = $fd;
$vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
HEAP32[$vararg_ptr10>>2] = 4;
$vararg_ptr11 = ((($vararg_buffer7)) + 8|0);
HEAP32[$vararg_ptr11>>2] = $17;
(___syscall221(221,($vararg_buffer7|0))|0);
}
$18 = HEAP32[$4>>2]|0;
$19 = $18 | 128;
HEAP32[$4>>2] = $19;
$26 = $19;
} else {
$$pre1 = HEAP32[$4>>2]|0;
$26 = $$pre1;
}
$20 = ((($4)) + 60|0);
HEAP32[$20>>2] = $fd;
$21 = ((($4)) + 120|0);
$22 = ((($4)) + 44|0);
HEAP32[$22>>2] = $21;
$23 = ((($4)) + 48|0);
HEAP32[$23>>2] = 1024;
$24 = ((($4)) + 75|0);
HEAP8[$24>>0] = -1;
$25 = $26 & 8;
$27 = ($25|0)==(0);
if ($27) {
HEAP32[$vararg_buffer12>>2] = $fd;
$vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
HEAP32[$vararg_ptr15>>2] = 21505;
$vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
HEAP32[$vararg_ptr16>>2] = $tio;
$28 = (___syscall54(54,($vararg_buffer12|0))|0);
$29 = ($28|0)==(0);
if ($29) {
HEAP8[$24>>0] = 10;
}
}
$30 = ((($4)) + 32|0);
HEAP32[$30>>2] = 87;
$31 = ((($4)) + 36|0);
HEAP32[$31>>2] = 52;
$32 = ((($4)) + 40|0);
HEAP32[$32>>2] = 51;
$33 = ((($4)) + 12|0);
HEAP32[$33>>2] = 49;
$34 = HEAP32[(71124)>>2]|0;
$35 = ($34|0)==(0);
if ($35) {
$36 = ((($4)) + 76|0);
HEAP32[$36>>2] = -1;
}
___lock(((71148)|0));
$37 = HEAP32[(71144)>>2]|0;
$38 = ((($4)) + 56|0);
HEAP32[$38>>2] = $37;
$39 = ($37|0)==(0);
if (!($39)) {
$$cast = $37;
$40 = ((($$cast)) + 52|0);
HEAP32[$40>>2] = $4;
}
HEAP32[(71144)>>2] = $4;
___unlock(((71148)|0));
$$0 = $4;
}
}
STACKTOP = sp;return ($$0|0);
}
function _fclose($f) {
$f = $f|0;
var $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 76|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)>(-1);
if ($2) {
}
$3 = HEAP32[$f>>2]|0;
$4 = $3 & 1;
$5 = ($4|0)!=(0);
if (!($5)) {
___lock(((71148)|0));
$6 = ((($f)) + 52|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(0|0);
$9 = $7;
$$pre = ((($f)) + 56|0);
if (!($8)) {
$10 = HEAP32[$$pre>>2]|0;
$11 = ((($7)) + 56|0);
HEAP32[$11>>2] = $10;
}
$12 = HEAP32[$$pre>>2]|0;
$13 = ($12|0)==(0|0);
$14 = $12;
if (!($13)) {
$15 = ((($12)) + 52|0);
HEAP32[$15>>2] = $9;
}
$16 = HEAP32[(71144)>>2]|0;
$17 = ($16|0)==($f|0);
if ($17) {
HEAP32[(71144)>>2] = $14;
}
___unlock(((71148)|0));
}
$18 = (_fflush($f)|0);
$19 = ((($f)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = (FUNCTION_TABLE_ii[$20 & 63]($f)|0);
$22 = $21 | $18;
$23 = ((($f)) + 92|0);
$24 = HEAP32[$23>>2]|0;
$25 = ($24|0)==(0|0);
if (!($25)) {
_free($24);
}
if (!($5)) {
_free($f);
}
return ($22|0);
}
function _fflush($f) {
$f = $f|0;
var $$0 = 0, $$01 = 0, $$012 = 0, $$014 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $r$0$lcssa = 0, $r$03 = 0, $r$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($f|0)==(0|0);
do {
if ($0) {
$7 = HEAP32[3962]|0;
$8 = ($7|0)==(0|0);
if ($8) {
$27 = 0;
} else {
$9 = HEAP32[3962]|0;
$10 = (_fflush($9)|0);
$27 = $10;
}
___lock(((71148)|0));
$$012 = HEAP32[(71144)>>2]|0;
$11 = ($$012|0)==(0|0);
if ($11) {
$r$0$lcssa = $27;
} else {
$$014 = $$012;$r$03 = $27;
while(1) {
$12 = ((($$014)) + 76|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)>(-1);
if ($14) {
$15 = (___lockfile($$014)|0);
$23 = $15;
} else {
$23 = 0;
}
$16 = ((($$014)) + 20|0);
$17 = HEAP32[$16>>2]|0;
$18 = ((($$014)) + 28|0);
$19 = HEAP32[$18>>2]|0;
$20 = ($17>>>0)>($19>>>0);
if ($20) {
$21 = (___fflush_unlocked($$014)|0);
$22 = $21 | $r$03;
$r$1 = $22;
} else {
$r$1 = $r$03;
}
$24 = ($23|0)==(0);
if (!($24)) {
___unlockfile($$014);
}
$25 = ((($$014)) + 56|0);
$$01 = HEAP32[$25>>2]|0;
$26 = ($$01|0)==(0|0);
if ($26) {
$r$0$lcssa = $r$1;
break;
} else {
$$014 = $$01;$r$03 = $r$1;
}
}
}
___unlock(((71148)|0));
$$0 = $r$0$lcssa;
} else {
$1 = ((($f)) + 76|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(-1);
if (!($3)) {
$4 = (___fflush_unlocked($f)|0);
$$0 = $4;
break;
}
$5 = (___lockfile($f)|0);
$phitmp = ($5|0)==(0);
$6 = (___fflush_unlocked($f)|0);
if ($phitmp) {
$$0 = $6;
} else {
___unlockfile($f);
$$0 = $6;
}
}
} while(0);
return ($$0|0);
}
function ___fflush_unlocked($f) {
$f = $f|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
var $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 20|0);
$1 = HEAP32[$0>>2]|0;
$2 = ((($f)) + 28|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($1>>>0)>($3>>>0);
if ($4) {
$5 = ((($f)) + 36|0);
$6 = HEAP32[$5>>2]|0;
(FUNCTION_TABLE_iiii[$6 & 127]($f,0,0)|0);
$7 = HEAP32[$0>>2]|0;
$8 = ($7|0)==(0|0);
if ($8) {
$$0 = -1;
} else {
label = 3;
}
} else {
label = 3;
}
if ((label|0) == 3) {
$9 = ((($f)) + 4|0);
$10 = HEAP32[$9>>2]|0;
$11 = ((($f)) + 8|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($10>>>0)<($12>>>0);
if ($13) {
$14 = ((($f)) + 40|0);
$15 = HEAP32[$14>>2]|0;
$16 = $10;
$17 = $12;
$18 = (($16) - ($17))|0;
(FUNCTION_TABLE_iiii[$15 & 127]($f,$18,1)|0);
}
$19 = ((($f)) + 16|0);
HEAP32[$19>>2] = 0;
HEAP32[$2>>2] = 0;
HEAP32[$0>>2] = 0;
HEAP32[$11>>2] = 0;
HEAP32[$9>>2] = 0;
$$0 = 0;
}
return ($$0|0);
}
function _mbtowc($wc,$src,$n) {
$wc = $wc|0;
$src = $src|0;
$n = $n|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dummy = 0, $dummy$wc = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$dummy = sp;
$0 = ($src|0)==(0|0);
L1: do {
if ($0) {
$$0 = 0;
} else {
$1 = ($n|0)==(0);
do {
if (!($1)) {
$2 = ($wc|0)==(0|0);
$dummy$wc = $2 ? $dummy : $wc;
$3 = HEAP8[$src>>0]|0;
$4 = $3&255;
$5 = ($3<<24>>24)>(-1);
if ($5) {
HEAP32[$dummy$wc>>2] = $4;
$6 = ($3<<24>>24)!=(0);
$7 = $6&1;
$$0 = $7;
break L1;
}
$8 = (($4) + -194)|0;
$9 = ($8>>>0)>(50);
if (!($9)) {
$10 = ((($src)) + 1|0);
$11 = (15968 + ($8<<2)|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($n>>>0)<(4);
if ($13) {
$14 = ($n*6)|0;
$15 = (($14) + -6)|0;
$16 = -2147483648 >>> $15;
$17 = $12 & $16;
$18 = ($17|0)==(0);
if (!($18)) {
break;
}
}
$19 = HEAP8[$10>>0]|0;
$20 = $19&255;
$21 = $20 >>> 3;
$22 = (($21) + -16)|0;
$23 = $12 >> 26;
$24 = (($21) + ($23))|0;
$25 = $22 | $24;
$26 = ($25>>>0)>(7);
if (!($26)) {
$27 = $12 << 6;
$28 = (($20) + -128)|0;
$29 = $28 | $27;
$30 = ($29|0)<(0);
if (!($30)) {
HEAP32[$dummy$wc>>2] = $29;
$$0 = 2;
break L1;
}
$31 = ((($src)) + 2|0);
$32 = HEAP8[$31>>0]|0;
$33 = $32&255;
$34 = $33 & 192;
$35 = ($34|0)==(128);
if ($35) {
$36 = $29 << 6;
$37 = (($33) + -128)|0;
$38 = $37 | $36;
$39 = ($38|0)<(0);
if (!($39)) {
HEAP32[$dummy$wc>>2] = $38;
$$0 = 3;
break L1;
}
$40 = ((($src)) + 3|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41&255;
$43 = $42 & 192;
$44 = ($43|0)==(128);
if ($44) {
$45 = $38 << 6;
$46 = (($42) + -128)|0;
$47 = $46 | $45;
HEAP32[$dummy$wc>>2] = $47;
$$0 = 4;
break L1;
}
}
}
}
}
} while(0);
$48 = (___errno_location()|0);
HEAP32[$48>>2] = 84;
$$0 = -1;
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _fputs($s,$f) {
$s = $s|0;
$f = $f|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_strlen($s)|0);
$1 = (_fwrite($s,$0,1,$f)|0);
$2 = (($1) + -1)|0;
return ($2|0);
}
function _fwrite($src,$size,$nmemb,$f) {
$src = $src|0;
$size = $size|0;
$nmemb = $nmemb|0;
$f = $f|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = Math_imul($nmemb, $size)|0;
$1 = ((($f)) + 76|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)>(-1);
if ($3) {
$5 = (___lockfile($f)|0);
$phitmp = ($5|0)==(0);
$6 = (___fwritex($src,$0,$f)|0);
if ($phitmp) {
$7 = $6;
} else {
___unlockfile($f);
$7 = $6;
}
} else {
$4 = (___fwritex($src,$0,$f)|0);
$7 = $4;
}
$8 = ($7|0)==($0|0);
if ($8) {
$10 = $nmemb;
} else {
$9 = (($7>>>0) / ($size>>>0))&-1;
$10 = $9;
}
return ($10|0);
}
function _getpid() {
var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (___syscall20(20,($vararg_buffer|0))|0);
STACKTOP = sp;return ($0|0);
}
function _access($filename,$amode) {
$filename = $filename|0;
$amode = $amode|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $filename;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $amode;
$0 = (___syscall33(33,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
STACKTOP = sp;return ($1|0);
}
function _printf($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $ap = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap = sp;
HEAP32[$ap>>2] = $varargs;
$0 = HEAP32[3933]|0;
$1 = (_vfprintf($0,$fmt,$ap)|0);
STACKTOP = sp;return ($1|0);
}
function _feof($f) {
$f = $f|0;
var $$lobit = 0, $$lobit1 = 0, $$lobit2 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $phitmp = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 76|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)>(-1);
if ($2) {
$5 = (___lockfile($f)|0);
$phitmp = ($5|0)==(0);
$6 = HEAP32[$f>>2]|0;
$7 = $6 >>> 4;
$$lobit = $7 & 1;
if ($phitmp) {
$$lobit2 = $$lobit;
} else {
$$lobit2 = $$lobit;
}
} else {
$3 = HEAP32[$f>>2]|0;
$4 = $3 >>> 4;
$$lobit1 = $4 & 1;
$$lobit2 = $$lobit1;
}
return ($$lobit2|0);
}
function ___procfdname($buf,$fd) {
$buf = $buf|0;
$fd = $fd|0;
var $$01 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$13 = 0, $i$22 = 0, $j$04 = 0, $scevgep = 0, dest = 0;
var label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
dest=$buf; src=70522; stop=dest+15|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$0 = ($fd|0)==(0);
if ($0) {
$scevgep = ((($buf)) + 14|0);
HEAP8[$scevgep>>0] = 48;
$1 = ((($buf)) + 15|0);
HEAP8[$1>>0] = 0;
} else {
$i$13 = 14;$j$04 = $fd;
while(1) {
$2 = (($j$04>>>0) / 10)&-1;
$3 = (($i$13) + 1)|0;
$4 = ($j$04>>>0)<(10);
if ($4) {
$$lcssa = $3;
break;
} else {
$i$13 = $3;$j$04 = $2;
}
}
$5 = (($buf) + ($$lcssa)|0);
HEAP8[$5>>0] = 0;
$$01 = $fd;$i$22 = $$lcssa;
while(1) {
$6 = (($$01>>>0) % 10)&-1;
$7 = $6 | 48;
$8 = $7&255;
$9 = (($i$22) + -1)|0;
$10 = (($buf) + ($9)|0);
HEAP8[$10>>0] = $8;
$11 = (($$01>>>0) / 10)&-1;
$12 = ($$01>>>0)<(10);
if ($12) {
break;
} else {
$$01 = $11;$i$22 = $9;
}
}
}
return;
}
function _fstat($fd,$st) {
$fd = $fd|0;
$st = $st|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $buf = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer6 = sp + 16|0;
$vararg_buffer2 = sp + 8|0;
$vararg_buffer = sp;
$buf = sp + 24|0;
HEAP32[$vararg_buffer>>2] = $fd;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $st;
$0 = (___syscall197(197,($vararg_buffer|0))|0);
$1 = ($0|0)==(-9);
if ($1) {
HEAP32[$vararg_buffer2>>2] = $fd;
$vararg_ptr5 = ((($vararg_buffer2)) + 4|0);
HEAP32[$vararg_ptr5>>2] = 1;
$2 = (___syscall221(221,($vararg_buffer2|0))|0);
$3 = ($2|0)<(0);
if ($3) {
label = 3;
} else {
___procfdname($buf,$fd);
HEAP32[$vararg_buffer6>>2] = $buf;
$vararg_ptr9 = ((($vararg_buffer6)) + 4|0);
HEAP32[$vararg_ptr9>>2] = $st;
$5 = (___syscall195(195,($vararg_buffer6|0))|0);
$6 = (___syscall_ret($5)|0);
$$0 = $6;
}
} else {
label = 3;
}
if ((label|0) == 3) {
$4 = (___syscall_ret($0)|0);
$$0 = $4;
}
STACKTOP = sp;return ($$0|0);
}
function _select($n,$rfds,$wfds,$efds,$tv) {
$n = $n|0;
$rfds = $rfds|0;
$wfds = $wfds|0;
$efds = $efds|0;
$tv = $tv|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $n;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $rfds;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $wfds;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $efds;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $tv;
$0 = (___syscall142(142,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
STACKTOP = sp;return ($1|0);
}
function _write($fd,$buf,$count) {
$fd = $fd|0;
$buf = $buf|0;
$count = $count|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $fd;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $buf;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $count;
$0 = (___syscall4(4,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
STACKTOP = sp;return ($1|0);
}
function _read($fd,$buf,$count) {
$fd = $fd|0;
$buf = $buf|0;
$count = $count|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $fd;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $buf;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $count;
$0 = (___syscall3(3,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
STACKTOP = sp;return ($1|0);
}
function _open($filename,$flags,$varargs) {
$filename = $filename|0;
$flags = $flags|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ap = 0, $arglist_current = 0, $arglist_next = 0, $expanded = 0, $expanded2 = 0, $expanded4 = 0, $expanded5 = 0, $expanded6 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0;
var $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$ap = sp + 16|0;
HEAP32[$ap>>2] = $varargs;
$arglist_current = HEAP32[$ap>>2]|0;
$0 = $arglist_current;
$1 = ((0) + 4|0);
$expanded2 = $1;
$expanded = (($expanded2) - 1)|0;
$2 = (($0) + ($expanded))|0;
$3 = ((0) + 4|0);
$expanded6 = $3;
$expanded5 = (($expanded6) - 1)|0;
$expanded4 = $expanded5 ^ -1;
$4 = $2 & $expanded4;
$5 = $4;
$6 = HEAP32[$5>>2]|0;
$arglist_next = ((($5)) + 4|0);
HEAP32[$ap>>2] = $arglist_next;
$7 = $flags | 32768;
HEAP32[$vararg_buffer>>2] = $filename;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $7;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $6;
$8 = (___syscall5(5,($vararg_buffer|0))|0);
$9 = (___syscall_ret($8)|0);
STACKTOP = sp;return ($9|0);
}
function _unlink($path) {
$path = $path|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $path;
$0 = (___syscall10(10,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
STACKTOP = sp;return ($1|0);
}
function ___setxid($nr,$id,$eid,$sid) {
$nr = $nr|0;
$id = $id|0;
$eid = $eid|0;
$sid = $sid|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$c = sp;
HEAP32[$c>>2] = $id;
$0 = ((($c)) + 4|0);
HEAP32[$0>>2] = $eid;
$1 = ((($c)) + 8|0);
HEAP32[$1>>2] = $sid;
$2 = ((($c)) + 12|0);
HEAP32[$2>>2] = $nr;
$3 = ((($c)) + 16|0);
HEAP32[$3>>2] = 0;
$4 = ((($c)) + 20|0);
HEAP32[$4>>2] = 0;
switch ($nr|0) {
case 208: case 203: case 213: {
HEAP32[$3>>2] = 1;
break;
}
default: {
}
}
___synccall(88,$c);
$5 = HEAP32[$4>>2]|0;
$6 = ($5|0)==(0);
if ($6) {
$$0 = 0;
} else {
$7 = (___errno_location()|0);
HEAP32[$7>>2] = $5;
$$0 = -1;
}
STACKTOP = sp;return ($$0|0);
}
function _do_setxid($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $inf = 0, $old = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$inf = sp + 16|0;
$old = sp;
$0 = ((($p)) + 20|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
do {
if ($2) {
$3 = ((($p)) + 16|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==(0);
if (!($5)) {
$6 = HEAP32[$p>>2]|0;
$7 = ($6|0)>(-1);
if ($7) {
$8 = (_getuid()|0);
$9 = ($6|0)==($8|0);
if (!($9)) {
;HEAP32[$inf>>2]=HEAP32[720>>2]|0;HEAP32[$inf+4>>2]=HEAP32[720+4>>2]|0;HEAP32[$inf+8>>2]=HEAP32[720+8>>2]|0;HEAP32[$inf+12>>2]=HEAP32[720+12>>2]|0;
(_getrlimit(6,$old)|0);
$10 = (___setrlimit(6,$inf)|0);
$11 = (0 - ($10))|0;
HEAP32[$0>>2] = $11;
$12 = ($10|0)==(0);
if ($12) {
label = 7;
} else {
$13 = HEAP32[(71136)>>2]|0;
$14 = ($13|0)==(0);
if ($14) {
label = 7;
}
}
if ((label|0) == 7) {
HEAP32[$0>>2] = 1;
(___setrlimit(6,$old)|0);
}
break;
}
}
}
HEAP32[$0>>2] = 1;
}
} while(0);
STACKTOP = sp;return;
}
function _getuid() {
var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (___syscall199(199,($vararg_buffer|0))|0);
STACKTOP = sp;return ($0|0);
}
function _getrlimit($resource,$rlim) {
$resource = $resource|0;
$rlim = $rlim|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $7 = 0, $8 = 0, $9 = 0, $k_rlim = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer4 = sp + 16|0;
$vararg_buffer = sp;
$k_rlim = sp + 24|0;
HEAP32[$vararg_buffer>>2] = 0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $resource;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = 0;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $rlim;
$0 = (___syscall340(340,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
$2 = ($1|0)==(0);
if ($2) {
$3 = $rlim;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (($3) + 4)|0;
$7 = $6;
$8 = HEAP32[$7>>2]|0;
$9 = ($5|0)==(-1);
$10 = ($8|0)==(-1);
$11 = $9 & $10;
if ($11) {
$12 = $rlim;
$13 = $12;
HEAP32[$13>>2] = -1;
$14 = (($12) + 4)|0;
$15 = $14;
HEAP32[$15>>2] = -1;
}
$16 = ((($rlim)) + 8|0);
$17 = $16;
$18 = $17;
$19 = HEAP32[$18>>2]|0;
$20 = (($17) + 4)|0;
$21 = $20;
$22 = HEAP32[$21>>2]|0;
$23 = ($19|0)==(-1);
$24 = ($22|0)==(-1);
$25 = $23 & $24;
if ($25) {
$26 = $16;
$27 = $26;
HEAP32[$27>>2] = -1;
$28 = (($26) + 4)|0;
$29 = $28;
HEAP32[$29>>2] = -1;
$$0 = 0;
} else {
$$0 = 0;
}
} else {
$30 = (___errno_location()|0);
$31 = HEAP32[$30>>2]|0;
$32 = ($31|0)==(38);
if ($32) {
HEAP32[$vararg_buffer4>>2] = $resource;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = $k_rlim;
$33 = (___syscall191(191,($vararg_buffer4|0))|0);
$34 = (___syscall_ret($33)|0);
$35 = ($34|0)<(0);
if ($35) {
$$0 = -1;
} else {
$36 = HEAP32[$k_rlim>>2]|0;
$37 = ($36|0)==(-1);
$38 = $37 ? -1 : $36;
$39 = $37 ? -1 : 0;
$40 = $rlim;
$41 = $40;
HEAP32[$41>>2] = $38;
$42 = (($40) + 4)|0;
$43 = $42;
HEAP32[$43>>2] = $39;
$44 = ((($k_rlim)) + 4|0);
$45 = HEAP32[$44>>2]|0;
$46 = ($45|0)==(-1);
$47 = $46 ? -1 : $45;
$48 = $46 ? -1 : 0;
$49 = ((($rlim)) + 8|0);
$50 = $49;
$51 = $50;
HEAP32[$51>>2] = $47;
$52 = (($50) + 4)|0;
$53 = $52;
HEAP32[$53>>2] = $48;
if ($37) {
$54 = $rlim;
$55 = $54;
HEAP32[$55>>2] = -1;
$56 = (($54) + 4)|0;
$57 = $56;
HEAP32[$57>>2] = -1;
}
if ($46) {
$58 = $49;
$59 = $58;
HEAP32[$59>>2] = -1;
$60 = (($58) + 4)|0;
$61 = $60;
HEAP32[$61>>2] = -1;
$$0 = 0;
} else {
$$0 = 0;
}
}
} else {
$$0 = $1;
}
}
STACKTOP = sp;return ($$0|0);
}
function ___setrlimit($resource,$rlim) {
$resource = $resource|0;
$rlim = $rlim|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $k_rlim = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer4 = sp + 16|0;
$vararg_buffer = sp;
$k_rlim = sp + 24|0;
HEAP32[$vararg_buffer>>2] = 0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $resource;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $rlim;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = 0;
$0 = (___syscall340(340,($vararg_buffer|0))|0);
$1 = ($0|0)==(-38);
if ($1) {
$2 = $rlim;
$3 = $2;
$4 = HEAP32[$3>>2]|0;
$5 = (($2) + 4)|0;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$8 = ($7>>>0)<(0);
$9 = ($4>>>0)<(4294967295);
$10 = ($7|0)==(0);
$11 = $10 & $9;
$12 = $8 | $11;
$13 = $12 ? $4 : -1;
$12 ? $7 : 0;
HEAP32[$k_rlim>>2] = $13;
$14 = ((($rlim)) + 8|0);
$15 = $14;
$16 = $15;
$17 = HEAP32[$16>>2]|0;
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
$21 = ($20>>>0)<(0);
$22 = ($17>>>0)<(4294967295);
$23 = ($20|0)==(0);
$24 = $23 & $22;
$25 = $21 | $24;
$26 = $25 ? $17 : -1;
$25 ? $20 : 0;
$27 = ((($k_rlim)) + 4|0);
HEAP32[$27>>2] = $26;
HEAP32[$vararg_buffer4>>2] = $resource;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = $k_rlim;
$28 = (___syscall75(75,($vararg_buffer4|0))|0);
$$0 = $28;
} else {
$$0 = $0;
}
STACKTOP = sp;return ($$0|0);
}
function ___synccall($func,$ctx) {
$func = $func|0;
$ctx = $ctx|0;
var label = 0, sp = 0;
sp = STACKTOP;
FUNCTION_TABLE_vi[$func & 127]($ctx);
return;
}
function _geteuid() {
var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (___syscall201(201,($vararg_buffer|0))|0);
STACKTOP = sp;return ($0|0);
}
function _setuid($uid) {
$uid = $uid|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (___setxid(213,$uid,0,0)|0);
return ($0|0);
}
function _ftruncate($fd,$length) {
$fd = $fd|0;
$length = $length|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = ($length|0)<(0);
$1 = $0 << 31 >> 31;
HEAP32[$vararg_buffer>>2] = $fd;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $length;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $1;
$2 = (___syscall194(194,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
STACKTOP = sp;return ($3|0);
}
function _getppid() {
var $0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = (___syscall64(64,($vararg_buffer|0))|0);
STACKTOP = sp;return ($0|0);
}
function _dup2($old,$new) {
$old = $old|0;
$new = $new|0;
var $$lcssa = 0, $0 = 0, $1 = 0, $2 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
while(1) {
HEAP32[$vararg_buffer>>2] = $old;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $new;
$0 = (___syscall63(63,($vararg_buffer|0))|0);
$1 = ($0|0)==(-16);
if (!($1)) {
$$lcssa = $0;
break;
}
}
$2 = (___syscall_ret($$lcssa)|0);
STACKTOP = sp;return ($2|0);
}
function ___mmap($start,$len,$prot,$flags,$fd,$off) {
$start = $start|0;
$len = $len|0;
$prot = $prot|0;
$flags = $flags|0;
$fd = $fd|0;
$off = $off|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0;
var $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = ($off|0)<(0);
$1 = $0 << 31 >> 31;
$2 = $off & 4095;
$3 = $1 & -4096;
$4 = ($2|0)==(0);
$5 = ($3|0)==(0);
$6 = $4 & $5;
do {
if ($6) {
$8 = ($len>>>0)>(2147483646);
if ($8) {
$9 = (___errno_location()|0);
HEAP32[$9>>2] = 12;
$$0 = (-1);
break;
}
$10 = $flags & 16;
$11 = ($10|0)!=(0);
if ($11) {
_dummy1(-1);
}
$12 = $off >> 12;
HEAP32[$vararg_buffer>>2] = $start;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $len;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $prot;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $flags;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $fd;
$vararg_ptr5 = ((($vararg_buffer)) + 20|0);
HEAP32[$vararg_ptr5>>2] = $12;
$13 = (___syscall192(192,($vararg_buffer|0))|0);
$14 = (___syscall_ret($13)|0);
$15 = $14;
if ($11) {
_dummy0();
$$0 = $15;
} else {
$$0 = $15;
}
} else {
$7 = (___errno_location()|0);
HEAP32[$7>>2] = 22;
$$0 = (-1);
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function _dummy1($x) {
$x = $x|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function _dummy0() {
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function ___munmap($start,$len) {
$start = $start|0;
$len = $len|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
_dummy1(-1);
HEAP32[$vararg_buffer>>2] = $start;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $len;
$0 = (___syscall91(91,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
_dummy0();
STACKTOP = sp;return ($1|0);
}
function _srand($s) {
$s = $s|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($s) + -1)|0;
$1 = 70568;
$2 = $1;
HEAP32[$2>>2] = $0;
$3 = (($1) + 4)|0;
$4 = $3;
HEAP32[$4>>2] = 0;
return;
}
function _rand() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = 70568;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
$3 = (($0) + 4)|0;
$4 = $3;
$5 = HEAP32[$4>>2]|0;
$6 = (___muldi3(($2|0),($5|0),1284865837,1481765933)|0);
$7 = tempRet0;
$8 = (_i64Add(($6|0),($7|0),1,0)|0);
$9 = tempRet0;
$10 = 70568;
$11 = $10;
HEAP32[$11>>2] = $8;
$12 = (($10) + 4)|0;
$13 = $12;
HEAP32[$13>>2] = $9;
$14 = (_bitshift64Lshr(($8|0),($9|0),33)|0);
$15 = tempRet0;
return ($14|0);
}
function _srandom($seed) {
$seed = $seed|0;
var label = 0, sp = 0;
sp = STACKTOP;
___lock((71168|0));
___srandom($seed);
___unlock((71168|0));
return;
}
function ___srandom($seed) {
$seed = $seed|0;
var $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $k$01 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[4093]|0;
$1 = ($0|0)==(0);
if ($1) {
$2 = HEAP32[4094]|0;
HEAP32[$2>>2] = $seed;
} else {
$3 = ($0|0)==(31);
$4 = ($0|0)==(7);
$5 = $3 | $4;
$6 = $5 ? 3 : 1;
HEAP32[4127] = $6;
HEAP32[17794] = 0;
$7 = ($0|0)>(0);
if ($7) {
$8 = HEAP32[4094]|0;
$10 = 0;$9 = $seed;$k$01 = 0;
while(1) {
$11 = (___muldi3(($9|0),($10|0),1284865837,1481765933)|0);
$12 = tempRet0;
$13 = (_i64Add(($11|0),($12|0),1,0)|0);
$14 = tempRet0;
$15 = (($8) + ($k$01<<2)|0);
HEAP32[$15>>2] = $14;
$16 = (($k$01) + 1)|0;
$17 = ($16|0)<($0|0);
if ($17) {
$10 = $14;$9 = $13;$k$01 = $16;
} else {
$19 = $8;
break;
}
}
} else {
$$pre = HEAP32[4094]|0;
$19 = $$pre;
}
$18 = HEAP32[$19>>2]|0;
$20 = $18 | 1;
HEAP32[$19>>2] = $20;
}
return;
}
function _random() {
var $$ = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $k$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
___lock((71168|0));
$0 = HEAP32[4093]|0;
$1 = ($0|0)==(0);
if ($1) {
$2 = HEAP32[4094]|0;
$3 = HEAP32[$2>>2]|0;
$4 = Math_imul($3, 1103515245)|0;
$5 = (($4) + 12345)|0;
$6 = $5 & 2147483647;
HEAP32[$2>>2] = $6;
$k$0 = $6;
} else {
$7 = HEAP32[17794]|0;
$8 = HEAP32[4094]|0;
$9 = (($8) + ($7<<2)|0);
$10 = HEAP32[$9>>2]|0;
$11 = HEAP32[4127]|0;
$12 = (($8) + ($11<<2)|0);
$13 = HEAP32[$12>>2]|0;
$14 = (($13) + ($10))|0;
HEAP32[$12>>2] = $14;
$15 = $14 >>> 1;
$16 = (($11) + 1)|0;
$17 = ($16|0)==($0|0);
$$ = $17 ? 0 : $16;
HEAP32[4127] = $$;
$18 = (($7) + 1)|0;
$19 = ($18|0)==($0|0);
$$1 = $19 ? 0 : $18;
HEAP32[17794] = $$1;
$k$0 = $15;
}
___unlock((71168|0));
return ($k$0|0);
}
function _atoi($s) {
$s = $s|0;
var $$0 = 0, $$0$lcssa = 0, $$1$ph = 0, $$13 = 0, $$lcssa9 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $isdigit = 0, $isdigit2 = 0, $isdigittmp = 0, $isdigittmp1 = 0, $isdigittmp5 = 0, $n$0$lcssa = 0, $n$04 = 0, $neg$0 = 0, $neg$1$ph = 0, label = 0, sp = 0;
sp = STACKTOP;
$$0 = $s;
while(1) {
$0 = HEAP8[$$0>>0]|0;
$1 = $0 << 24 >> 24;
$2 = (_isspace($1)|0);
$3 = ($2|0)==(0);
$4 = ((($$0)) + 1|0);
if ($3) {
$$0$lcssa = $$0;$$lcssa9 = $4;
break;
} else {
$$0 = $4;
}
}
$5 = HEAP8[$$0$lcssa>>0]|0;
$6 = $5 << 24 >> 24;
switch ($6|0) {
case 45: {
$neg$0 = 1;
label = 5;
break;
}
case 43: {
$neg$0 = 0;
label = 5;
break;
}
default: {
$$1$ph = $$0$lcssa;$8 = $5;$neg$1$ph = 0;
}
}
if ((label|0) == 5) {
$$pre = HEAP8[$$lcssa9>>0]|0;
$$1$ph = $$lcssa9;$8 = $$pre;$neg$1$ph = $neg$0;
}
$7 = $8 << 24 >> 24;
$isdigittmp1 = (($7) + -48)|0;
$isdigit2 = ($isdigittmp1>>>0)<(10);
if ($isdigit2) {
$$13 = $$1$ph;$isdigittmp5 = $isdigittmp1;$n$04 = 0;
while(1) {
$9 = ($n$04*10)|0;
$10 = ((($$13)) + 1|0);
$11 = (($9) - ($isdigittmp5))|0;
$12 = HEAP8[$10>>0]|0;
$13 = $12 << 24 >> 24;
$isdigittmp = (($13) + -48)|0;
$isdigit = ($isdigittmp>>>0)<(10);
if ($isdigit) {
$$13 = $10;$isdigittmp5 = $isdigittmp;$n$04 = $11;
} else {
$n$0$lcssa = $11;
break;
}
}
} else {
$n$0$lcssa = 0;
}
$14 = ($neg$1$ph|0)!=(0);
$15 = (0 - ($n$0$lcssa))|0;
$16 = $14 ? $n$0$lcssa : $15;
return ($16|0);
}
function _getrusage($who,$ru) {
$who = $who|0;
$ru = $ru|0;
var $0 = 0, $1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer>>2] = $who;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $ru;
$0 = (___syscall77(77,($vararg_buffer|0))|0);
$1 = (___syscall_ret($0)|0);
STACKTOP = sp;return ($1|0);
}
function _strrchr($s,$c) {
$s = $s|0;
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_strlen($s)|0);
$1 = (($0) + 1)|0;
$2 = (___memrchr($s,$c,$1)|0);
return ($2|0);
}
function ___memrchr($m,$c,$n) {
$m = $m|0;
$c = $c|0;
$n = $n|0;
var $$0 = 0, $$01 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $c&255;
$$01 = $n;
while(1) {
$1 = (($$01) + -1)|0;
$2 = ($$01|0)==(0);
if ($2) {
$$0 = 0;
break;
}
$3 = (($m) + ($1)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($4<<24>>24)==($0<<24>>24);
if ($5) {
$$0 = $3;
break;
} else {
$$01 = $1;
}
}
return ($$0|0);
}
function _isdigit($c) {
$c = $c|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($c) + -48)|0;
$1 = ($0>>>0)<(10);
$2 = $1&1;
return ($2|0);
}
function ___tre_mem_new_impl($provided,$provided_block) {
$provided = $provided|0;
$provided_block = $provided_block|0;
var $0 = 0, $1 = 0, $mem$0$in = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($provided|0)==(0);
if ($0) {
$1 = (_calloc(1,24)|0);
$mem$0$in = $1;
} else {
;HEAP32[$provided_block>>2]=0|0;HEAP32[$provided_block+4>>2]=0|0;HEAP32[$provided_block+8>>2]=0|0;HEAP32[$provided_block+12>>2]=0|0;HEAP32[$provided_block+16>>2]=0|0;HEAP32[$provided_block+20>>2]=0|0;
$mem$0$in = $provided_block;
}
return ($mem$0$in|0);
}
function ___tre_mem_destroy($mem) {
$mem = $mem|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $l$01 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = HEAP32[$mem>>2]|0;
$1 = ($0|0)==(0|0);
if (!($1)) {
$l$01 = $0;
while(1) {
$2 = HEAP32[$l$01>>2]|0;
_free($2);
$3 = ((($l$01)) + 4|0);
$4 = HEAP32[$3>>2]|0;
_free($l$01);
$5 = ($4|0)==(0|0);
if ($5) {
break;
} else {
$l$01 = $4;
}
}
}
_free($mem);
return;
}
function ___tre_mem_alloc_impl($mem,$provided,$provided_block,$zero,$size) {
$mem = $mem|0;
$provided = $provided|0;
$provided_block = $provided_block|0;
$zero = $zero|0;
$size = $size|0;
var $$ = 0, $$3 = 0, $$4 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($mem)) + 16|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
L1: do {
if ($2) {
$3 = ((($mem)) + 12|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4>>>0)<($size>>>0);
do {
if ($5) {
$7 = ($provided|0)==(0);
if (!($7)) {
$8 = ($provided_block|0)==(0|0);
if ($8) {
HEAP32[$0>>2] = 1;
$$3 = 0;
break L1;
} else {
$9 = ((($mem)) + 8|0);
HEAP32[$9>>2] = $provided_block;
HEAP32[$3>>2] = 1024;
$10 = $provided_block;
$$pre$phiZ2D = $9;$27 = $10;$33 = $provided_block;$35 = 1024;
break;
}
}
$11 = $size << 3;
$12 = ($11>>>0)>(1024);
$$ = $12 ? $11 : 1024;
$13 = (_malloc(8)|0);
$14 = ($13|0)==(0|0);
if ($14) {
HEAP32[$0>>2] = 1;
$$3 = 0;
break L1;
}
$15 = (_malloc($$)|0);
HEAP32[$13>>2] = $15;
$16 = ($15|0)==(0|0);
$17 = $15;
if ($16) {
_free($13);
HEAP32[$0>>2] = 1;
$$3 = 0;
break L1;
}
$18 = ((($13)) + 4|0);
HEAP32[$18>>2] = 0;
$19 = ((($mem)) + 4|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(0|0);
if (!($21)) {
$22 = ((($20)) + 4|0);
HEAP32[$22>>2] = $13;
}
$23 = HEAP32[$mem>>2]|0;
$24 = ($23|0)==(0|0);
if ($24) {
HEAP32[$mem>>2] = $13;
}
HEAP32[$19>>2] = $13;
$25 = ((($mem)) + 8|0);
HEAP32[$25>>2] = $17;
HEAP32[$3>>2] = $$;
$$pre$phiZ2D = $25;$27 = $17;$33 = $15;$35 = $$;
} else {
$$phi$trans$insert = ((($mem)) + 8|0);
$$pre = HEAP32[$$phi$trans$insert>>2]|0;
$6 = $$pre;
$$pre$phiZ2D = $$phi$trans$insert;$27 = $$pre;$33 = $6;$35 = $4;
}
} while(0);
$26 = (($27) + ($size))|0;
$28 = $26 & 3;
$29 = ($28|0)==(0);
$30 = (4 - ($28))|0;
$$4 = $29 ? 0 : $30;
$31 = (($$4) + ($size))|0;
$32 = (($33) + ($31)|0);
HEAP32[$$pre$phiZ2D>>2] = $32;
$34 = (($35) - ($31))|0;
HEAP32[$3>>2] = $34;
$36 = ($zero|0)==(0);
if ($36) {
$$3 = $33;
} else {
_memset(($33|0),0,($31|0))|0;
$$3 = $33;
}
} else {
$$3 = 0;
}
} while(0);
return ($$3|0);
}
function _regexec($preg,$string,$nmatch,$pmatch,$eflags) {
$preg = $preg|0;
$string = $string|0;
$nmatch = $nmatch|0;
$pmatch = $pmatch|0;
$eflags = $eflags|0;
var $$$i = 0, $$$i4 = 0, $$0 = 0, $$1$i = 0, $$15$i = 0, $$52$i = 0, $$554$i = 0, $$lcssa = 0, $$lcssa133 = 0, $$lcssa138 = 0, $$not$i = 0, $$not176$i = 0, $$old$i = 0, $$old$i15 = 0, $$old11$i = 0, $$old34$i = 0, $$old35$i = 0, $$old37$i = 0, $$old38$i = 0, $$old46$i = 0;
var $$old47$i = 0, $$old8$i = 0, $$pre$i = 0, $$pre$i16 = 0, $$pre$phi212$iZ2D = 0, $$pre$phi214$iZ2D = 0, $$pre174$i = 0, $$pre176$i = 0, $$pre177$i = 0, $$pre178$i = 0, $$pre182$i = 0, $$pre183$i = 0, $$pre184$i = 0, $$pre186$i = 0, $$pre201$i = 0, $$pre202$i = 0, $$pre204$i = 0, $$pre206$i = 0, $$pre207$i = 0, $$pre208$i = 0;
var $$pre210$i = 0, $$pre213$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0;
var $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0;
var $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0;
var $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0;
var $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0;
var $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0;
var $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0;
var $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0;
var $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0;
var $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0;
var $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0;
var $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0;
var $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0;
var $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0;
var $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0;
var $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0;
var $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0;
var $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0;
var $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0;
var $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0;
var $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0;
var $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0;
var $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0;
var $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0;
var $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0;
var $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0;
var $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0;
var $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0;
var $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0;
var $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0;
var $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0;
var $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0;
var $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0;
var $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0;
var $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0;
var $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0;
var $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge$i = 0, $brmerge$i14 = 0, $brmerge159$i = 0, $brmerge162$i = 0, $brmerge163$i = 0, $brmerge169$i = 0, $brmerge172$i = 0;
var $brmerge173$i = 0, $brmerge177$i = 0, $eo$0 = 0, $eo$1 = 0, $eo$2 = 0, $eo$3 = 0, $eo$4 = 0, $exitcond = 0, $exitcond193$i = 0, $exitcond194$i = 0, $exitcond195$i = 0, $exitcond74 = 0, $exitcond75 = 0, $i$0105$i = 0, $i$0165$i = 0, $i$1163$i = 0, $i$399$i = 0, $i$4116$i = 0, $i$5125$i = 0, $i$6132$i = 0;
var $i$7130$i = 0, $i1$0110$i = 0, $i10$0130$i = 0, $i3$0157$i = 0, $i5$0134$i = 0, $match_eo$0$i = 0, $match_eo$0$i8 = 0, $match_eo$1$i = 0, $match_eo$1$ph$lcssa$i = 0, $match_eo$1$ph108$i = 0, $match_eo$1$ph109$mux$i = 0, $match_eo$10$i = 0, $match_eo$10$lobit$i = 0, $match_eo$2$i = 0, $match_eo$2$i21 = 0, $match_eo$3$i = 0, $match_eo$4$i = 0, $match_eo$4$i$lcssa149 = 0, $match_eo$4$i23 = 0, $match_eo$4$lobit$i = 0;
var $match_eo$5$lcssa$i = 0, $match_eo$5155$i = 0, $match_eo$6$lcssa$i = 0, $match_eo$6135$i = 0, $match_eo$7$i = 0, $match_eo$9$i = 0, $new_match$0$i = 0, $new_match$1$ph$lcssa$i = 0, $new_match$1$ph110$i = 0, $new_match$1$ph111$mux$i = 0, $new_match$10$i = 0, $new_match$2$i = 0, $new_match$3$i = 0, $new_match$4$i = 0, $new_match$5$i = 0, $new_match$6$lcssa$i = 0, $new_match$6156$i = 0, $new_match$7$lcssa$i = 0, $new_match$7138$i = 0, $new_match$8$i = 0;
var $next_c$i = 0, $next_c$i3 = 0, $next_state$0147$i = 0, $next_state$1$i = 0, $next_state$1$i$lcssa = 0, $next_tags$0117$i = 0, $next_tags$1$i = 0, $next_tags$1$i$lcssa = 0, $next_tags$10$i = 0, $next_tags$2127$i = 0, $next_tags$3$i = 0, $next_tags$4$i = 0, $next_tags$5142$i = 0, $next_tags$5142$i$lcssa = 0, $next_tags$5142$i$lcssa146 = 0, $next_tags$6$i = 0, $next_tags$6$i$lcssa = 0, $next_tags$7154$i = 0, $next_tags$8$i = 0, $nmatch$ = 0;
var $notlhs166$i = 0, $notlhs180$i = 0, $notrhs$i = 0, $notrhs$i26 = 0, $notrhs167$i = 0, $notrhs181$i = 0, $num_tags$0$i = 0, $or$cond = 0, $or$cond$not$i = 0, $or$cond$not$i12 = 0, $or$cond10$i = 0, $or$cond12$i = 0, $or$cond12$i17 = 0, $or$cond15$i = 0, $or$cond15$i18 = 0, $or$cond161$i = 0, $or$cond165$i = 0, $or$cond171$i = 0, $or$cond175$i = 0, $or$cond18$i = 0;
var $or$cond18$i20 = 0, $or$cond21$i = 0, $or$cond21$i25 = 0, $or$cond24$i = 0, $or$cond24$not$i = 0, $or$cond27$i = 0, $or$cond27$not$i = 0, $or$cond3$i = 0, $or$cond30$i = 0, $or$cond33$i = 0, $or$cond36$i = 0, $or$cond36$i28 = 0, $or$cond39$i = 0, $or$cond39$i29 = 0, $or$cond42$i = 0, $or$cond42$i30 = 0, $or$cond45$i = 0, $or$cond45$i32 = 0, $or$cond48$i = 0, $or$cond48$i22 = 0;
var $or$cond58$i = 0, $or$cond6$i = 0, $or$cond7$i = 0, $or$cond9$i = 0, $pmatch$0$i = 0, $pmatch$1$i = 0, $pos$0$i = 0, $pos$0$i10 = 0, $pos$2$i = 0, $pos$3$i = 0, $pos$5$i = 0, $pos_add_next$0$i = 0, $pos_add_next$0$i6 = 0, $pos_add_next$1$i = 0, $pos_add_next$1$i9 = 0, $pos_add_next$2$i = 0, $pos_add_next$2$i24 = 0, $pos_add_next$3$i = 0, $pos_add_next$5$i = 0, $pos_add_next$6$i = 0;
var $pos_add_next$7$i = 0, $pos_add_next$9$i = 0, $pos_start$0$i = 0, $prev_c$0$i = 0, $prev_c$2$i = 0, $reach$1$i = 0, $reach$2$i = 0, $reach_i$0119$i = 0, $reach_i$1153$i = 0, $reach_next$1$i = 0, $reach_next$2$i = 0, $reach_next_i$0$i = 0, $reach_next_i$1$ph$lcssa$i = 0, $reach_next_i$1$ph101$i = 0, $reach_next_i$2$i = 0, $reach_next_i$3$lcssa$i = 0, $reach_next_i$3121$i = 0, $reach_next_i$4$i = 0, $reach_next_i$5$lcssa$i = 0, $reach_next_i$5154$i = 0;
var $reach_next_i$6$lcssa$i = 0, $reach_next_i$6134$i = 0, $reach_next_i$7$i = 0, $ret$0$i = 0, $ret$7$i = 0, $smax$i = 0, $stack$0$i = 0, $stack$11$i = 0, $stack$11$i$lcssa = 0, $stack$1118$i = 0, $stack$12$i = 0, $stack$14$i = 0, $stack$3$i = 0, $stack$5$i = 0, $stack$5$i$lcssa = 0, $stack$6$i = 0, $stack$7143$i = 0, $stack$7143$i$lcssa = 0, $stack$7143$i$lcssa144 = 0, $stack$9$i = 0;
var $state$0116$i = 0, $state$1$i = 0, $state$1$i$lcssa = 0, $state$2$i = 0, $state$3$i = 0, $state$5$i = 0, $states_seen$0$ph$i = 0, $states_seen$1$i = 0, $status$0 = 0, $str_byte$0$i = 0, $str_byte$0$i11 = 0, $str_byte$1$i = 0, $str_byte$3$i = 0, $str_byte$4$i = 0, $str_byte$6$i = 0, $tag_i$097$i = 0, $tag_i$1128$i = 0, $tags$0 = 0, $tags$0$i = 0, $tags$1$i = 0;
var $tmp$0114$i = 0, $tmp$i = 0, $tmp$i31 = 0, $tmp51$i = 0, $tmp55$i = 0, $tmp9$0138$i54 = 0, $tmp_buf$0166$i = 0, $tmp_tags$1$i = 0, $tmp_tags$2$lcssa$i = 0, $tmp_tags$2157$i = 0, $tmp_tags$3$lcssa$i = 0, $tmp_tags$4$i = 0, $trans_i$0$ph112$i = 0, $trans_i$0120$i = 0, $trans_i$085$i = 0, $trans_i$085$i$lcssa135 = 0, $trans_i$085$i137 = 0, $trans_i$1144$i = 0, $trans_i$1144$i27 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$next_c$i3 = sp + 4|0;
$next_c$i = sp;
$0 = ((($preg)) + 4|0);
$1 = HEAP32[$0>>2]|0;
$2 = ((($1)) + 56|0);
$3 = HEAP32[$2>>2]|0;
$4 = $3 & 8;
$5 = ($4|0)==(0);
$nmatch$ = $5 ? $nmatch : 0;
$6 = ((($1)) + 40|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)>(0);
$9 = ($nmatch$|0)!=(0);
$or$cond = $8 & $9;
if ($or$cond) {
$10 = $7 << 2;
$11 = (_malloc($10)|0);
$12 = ($11|0)==(0|0);
if ($12) {
$$0 = 12;
} else {
$tags$0 = $11;
label = 3;
}
} else {
$tags$0 = 0;
label = 3;
}
if ((label|0) == 3) {
$13 = ((($1)) + 60|0);
$14 = HEAP32[$13>>2]|0;
$15 = ($14|0)==(0);
if ($15) {
HEAP32[$next_c$i3>>2] = 0;
$442 = $eflags & 1;
$443 = $eflags & 2;
$444 = HEAP32[$2>>2]|0;
$445 = $444 & 4;
$446 = ($tags$0|0)==(0|0);
if ($446) {
$num_tags$0$i = 0;
} else {
$447 = HEAP32[$6>>2]|0;
$num_tags$0$i = $447;
}
$448 = $num_tags$0$i << 2;
$449 = ((($1)) + 52|0);
$450 = HEAP32[$449>>2]|0;
$451 = $450 << 3;
$452 = (($451) + 8)|0;
$453 = Math_imul($448, $450)|0;
$454 = (($452) + ($453))|0;
$455 = $454 << 1;
$456 = (($448) + 12)|0;
$457 = (($456) + ($451))|0;
$458 = (($457) + ($455))|0;
$459 = (_malloc($458)|0);
$460 = ($459|0)==(0|0);
if ($460) {
$$1$i = 12;$eo$3 = 0;
} else {
_memset(($459|0),0,($458|0))|0;
$461 = (($459) + ($448)|0);
$462 = $461;
$463 = $462 & 3;
$464 = ($463|0)==(0);
$465 = (4 - ($463))|0;
$$$i4 = $464 ? 0 : $465;
$466 = (($461) + ($$$i4)|0);
$467 = (($466) + ($452)|0);
$468 = $467;
$469 = $468 & 3;
$470 = ($469|0)==(0);
$471 = (4 - ($469))|0;
$472 = $470 ? 0 : $471;
$473 = (($467) + ($472)|0);
$474 = (($473) + ($452)|0);
$475 = $474;
$476 = $475 & 3;
$477 = ($476|0)==(0);
$478 = (4 - ($476))|0;
$$52$i = $477 ? 0 : $478;
$479 = (($474) + ($$52$i)|0);
$480 = (($479) + ($451)|0);
$481 = $480;
$482 = $481 & 3;
$483 = ($450|0)>(0);
if ($483) {
$484 = ($482|0)==(0);
$485 = (4 - ($482))|0;
$486 = $484 ? 0 : $485;
$487 = (($480) + ($486)|0);
$i$0165$i = 0;$tmp_buf$0166$i = $487;
while(1) {
$488 = (((($473) + ($i$0165$i<<3)|0)) + 4|0);
HEAP32[$488>>2] = $tmp_buf$0166$i;
$489 = (($tmp_buf$0166$i) + ($448)|0);
$490 = (((($466) + ($i$0165$i<<3)|0)) + 4|0);
HEAP32[$490>>2] = $489;
$491 = (($489) + ($448)|0);
$492 = (($i$0165$i) + 1)|0;
$exitcond74 = ($492|0)==($450|0);
if ($exitcond74) {
$i$1163$i = 0;
break;
} else {
$i$0165$i = $492;$tmp_buf$0166$i = $491;
}
}
while(1) {
$493 = (($479) + ($i$1163$i<<3)|0);
HEAP32[$493>>2] = -1;
$494 = (($i$1163$i) + 1)|0;
$exitcond = ($494|0)==($450|0);
if ($exitcond) {
break;
} else {
$i$1163$i = $494;
}
}
}
$495 = (_mbtowc($next_c$i3,$string,4)|0);
$496 = ($495|0)<(1);
if ($496) {
$497 = ($495|0)<(0);
if ($497) {
$eo$2 = 0;$ret$0$i = 1;
} else {
$pos_add_next$0$i6 = 1;
label = 201;
}
} else {
$pos_add_next$0$i6 = $495;
label = 201;
}
L21: do {
if ((label|0) == 201) {
$498 = (($string) + ($pos_add_next$0$i6)|0);
$499 = ((($1)) + 8|0);
$500 = ($445|0)!=(0);
$501 = ($num_tags$0$i|0)>(0);
$502 = ((($1)) + 12|0);
$503 = ((($1)) + 44|0);
$504 = ((($1)) + 32|0);
$505 = ((($1)) + 36|0);
$506 = ($num_tags$0$i|0)==(0);
$notlhs180$i = ($442|0)==(0);
$$not176$i = ($num_tags$0$i|0)<(1);
$match_eo$0$i8 = -1;$new_match$0$i = 0;$pos$0$i10 = 0;$pos_add_next$1$i9 = $pos_add_next$0$i6;$prev_c$0$i = 0;$reach$1$i = $473;$reach_next$1$i = $466;$reach_next_i$0$i = $466;$str_byte$0$i11 = $498;$tmp_tags$1$i = $459;
while(1) {
$507 = ($match_eo$0$i8|0)<(0);
if ($507) {
$508 = HEAP32[$499>>2]|0;
$509 = ((($508)) + 8|0);
$510 = HEAP32[$509>>2]|0;
$511 = ($510|0)==(0|0);
L27: do {
if ($511) {
$match_eo$1$ph$lcssa$i = $match_eo$0$i8;$new_match$1$ph$lcssa$i = $new_match$0$i;$reach_next_i$1$ph$lcssa$i = $reach_next_i$0$i;
} else {
$512 = ($pos$0$i10|0)!=(0);
$513 = ($prev_c$0$i|0)==(95);
$514 = ($pos$0$i10|0)==(0);
$515 = ($prev_c$0$i|0)==(10);
$or$cond3$i = $500 & $515;
$notrhs181$i = ($pos$0$i10|0)<(1);
$or$cond$not$i12 = $notlhs180$i & $notrhs181$i;
$829 = $509;$match_eo$1$ph108$i = $match_eo$0$i8;$new_match$1$ph110$i = $new_match$0$i;$reach_next_i$1$ph101$i = $reach_next_i$0$i;$trans_i$0$ph112$i = $508;
while(1) {
$830 = $829;$trans_i$085$i = $trans_i$0$ph112$i;
L31: while(1) {
$516 = ((($trans_i$085$i)) + 12|0);
$517 = HEAP32[$516>>2]|0;
$518 = (($479) + ($517<<3)|0);
$519 = HEAP32[$518>>2]|0;
$520 = ($519|0)<($pos$0$i10|0);
if (!($520)) {
$match_eo$3$i = $match_eo$1$ph108$i;$new_match$3$i = $new_match$1$ph110$i;$reach_next_i$2$i = $reach_next_i$1$ph101$i;$trans_i$085$i137 = $trans_i$085$i;
break;
}
$521 = ((($trans_i$085$i)) + 20|0);
$522 = HEAP32[$521>>2]|0;
$523 = ($522|0)==(0);
if ($523) {
$$lcssa133 = $830;$$lcssa138 = $516;$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break;
}
$524 = $522 & 1;
$525 = ($524|0)==(0);
$brmerge$i14 = $or$cond$not$i12 | $525;
$brmerge169$i = $or$cond3$i | $brmerge$i14;
L35: do {
if ($brmerge169$i) {
$526 = $522 & 2;
$527 = ($526|0)==(0);
if (!($527)) {
$528 = HEAP32[$next_c$i3>>2]|0;
$529 = $528 | $443;
$530 = ($529|0)==(0);
$531 = ($528|0)==(10);
$or$cond7$i = $500 & $531;
$or$cond171$i = $530 | $or$cond7$i;
if (!($or$cond171$i)) {
break;
}
}
$532 = $522 & 16;
$533 = ($532|0)==(0);
do {
if (!($533)) {
if ($513) {
break L35;
}
$534 = (_iswalnum($prev_c$0$i)|0);
$535 = ($534|0)==(0);
if (!($535)) {
break L35;
}
$536 = HEAP32[$next_c$i3>>2]|0;
$537 = ($536|0)==(95);
if ($537) {
break;
}
$538 = (_iswalnum($536)|0);
$539 = ($538|0)==(0);
if ($539) {
break L35;
}
}
} while(0);
$540 = HEAP32[$521>>2]|0;
$541 = $540 & 32;
$542 = ($541|0)==(0);
if ($542) {
$551 = $540;
} else {
if ($513) {
$$old$i15 = HEAP32[$next_c$i3>>2]|0;
$$old8$i = ($$old$i15|0)==(95);
if ($$old8$i) {
break;
} else {
$547 = $$old$i15;
}
} else {
$543 = (_iswalnum($prev_c$0$i)|0);
$544 = ($543|0)==(0);
$545 = HEAP32[$next_c$i3>>2]|0;
$546 = ($545|0)==(95);
$or$cond9$i = $544 | $546;
if ($or$cond9$i) {
break;
} else {
$547 = $545;
}
}
$548 = (_iswalnum($547)|0);
$549 = ($548|0)==(0);
if (!($549)) {
break;
}
$$pre$i16 = HEAP32[$521>>2]|0;
$551 = $$pre$i16;
}
$550 = $551 & 64;
$552 = ($550|0)!=(0);
$or$cond12$i17 = $512 & $552;
$553 = HEAP32[$next_c$i3>>2]|0;
$554 = ($553|0)!=(0);
$or$cond15$i18 = $554 & $or$cond12$i17;
do {
if ($or$cond15$i18) {
if ($513) {
$557 = $553;$561 = 1;
} else {
$555 = (_iswalnum($prev_c$0$i)|0);
$556 = ($555|0)!=(0);
$$pre201$i = HEAP32[$next_c$i3>>2]|0;
$557 = $$pre201$i;$561 = $556;
}
$558 = ($557|0)==(95);
if ($558) {
if ($561) {
break L35;
} else {
break;
}
} else {
$559 = (_iswalnum($557)|0);
$560 = ($559|0)!=(0);
$tmp51$i = $561 ^ $560;
if ($tmp51$i) {
break;
} else {
break L35;
}
}
}
} while(0);
$562 = HEAP32[$521>>2]|0;
$563 = $562 & 128;
$564 = ($563|0)==(0);
if ($564) {
$$lcssa133 = $830;$$lcssa138 = $516;$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break L31;
}
$565 = HEAP32[$next_c$i3>>2]|0;
$566 = ($565|0)==(0);
$or$cond18$i20 = $514 | $566;
if ($or$cond18$i20) {
break;
}
if ($513) {
$569 = $565;$574 = 1;
} else {
$567 = (_iswalnum($prev_c$0$i)|0);
$568 = ($567|0)!=(0);
$$pre202$i = HEAP32[$next_c$i3>>2]|0;
$569 = $$pre202$i;$574 = $568;
}
$570 = ($569|0)==(95);
if ($570) {
if ($574) {
$$lcssa133 = $830;$$lcssa138 = $516;$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break L31;
} else {
break;
}
} else {
$571 = (_iswalnum($569)|0);
$572 = ($571|0)!=(0);
$573 = $574 ^ $572;
if ($573) {
break;
} else {
$$lcssa133 = $830;$$lcssa138 = $516;$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break L31;
}
}
}
} while(0);
$575 = ((($trans_i$085$i)) + 32|0);
$576 = ((($trans_i$085$i)) + 40|0);
$577 = HEAP32[$576>>2]|0;
$578 = ($577|0)==(0|0);
if ($578) {
$match_eo$1$ph$lcssa$i = $match_eo$1$ph108$i;$new_match$1$ph$lcssa$i = $new_match$1$ph110$i;$reach_next_i$1$ph$lcssa$i = $reach_next_i$1$ph101$i;
break L27;
} else {
$830 = $576;$trans_i$085$i = $575;
}
}
if ((label|0) == 236) {
label = 0;
$579 = HEAP32[$$lcssa133>>2]|0;
HEAP32[$reach_next_i$1$ph101$i>>2] = $579;
if ($501) {
$580 = ((($reach_next_i$1$ph101$i)) + 4|0);
$581 = HEAP32[$580>>2]|0;
_memset(($581|0),-1,($448|0))|0;
}
$582 = ((($trans_i$085$i$lcssa135)) + 16|0);
$583 = HEAP32[$582>>2]|0;
$584 = ($583|0)==(0|0);
do {
if (!($584)) {
$585 = HEAP32[$583>>2]|0;
$586 = ($585|0)>(-1);
if (!($586)) {
break;
}
$587 = ((($reach_next_i$1$ph101$i)) + 4|0);
$588 = $585;$tag_i$097$i = $583;
while(1) {
$589 = ($588|0)<($num_tags$0$i|0);
if ($589) {
$590 = HEAP32[$587>>2]|0;
$591 = (($590) + ($588<<2)|0);
HEAP32[$591>>2] = $pos$0$i10;
}
$592 = ((($tag_i$097$i)) + 4|0);
$593 = HEAP32[$592>>2]|0;
$594 = ($593|0)>(-1);
if ($594) {
$588 = $593;$tag_i$097$i = $592;
} else {
break;
}
}
}
} while(0);
$595 = HEAP32[$reach_next_i$1$ph101$i>>2]|0;
$596 = HEAP32[$502>>2]|0;
$$not$i = ($595|0)!=($596|0);
$brmerge177$i = $$not176$i | $$not$i;
if ($brmerge177$i) {
$new_match$1$ph111$mux$i = $$not$i ? $new_match$1$ph110$i : 1;
$match_eo$1$ph109$mux$i = $$not$i ? $match_eo$1$ph108$i : $pos$0$i10;
$$pre213$i = ((($reach_next_i$1$ph101$i)) + 4|0);
$$pre$phi214$iZ2D = $$pre213$i;$match_eo$2$i21 = $match_eo$1$ph109$mux$i;$new_match$2$i = $new_match$1$ph111$mux$i;
} else {
$597 = ((($reach_next_i$1$ph101$i)) + 4|0);
$598 = HEAP32[$597>>2]|0;
$i$399$i = 0;
while(1) {
$599 = (($598) + ($i$399$i<<2)|0);
$600 = HEAP32[$599>>2]|0;
$601 = (($tags$0) + ($i$399$i<<2)|0);
HEAP32[$601>>2] = $600;
$602 = (($i$399$i) + 1)|0;
$exitcond193$i = ($602|0)==($num_tags$0$i|0);
if ($exitcond193$i) {
$$pre$phi214$iZ2D = $597;$match_eo$2$i21 = $pos$0$i10;$new_match$2$i = 1;
break;
} else {
$i$399$i = $602;
}
}
}
$603 = HEAP32[$$lcssa138>>2]|0;
$604 = (($479) + ($603<<3)|0);
HEAP32[$604>>2] = $pos$0$i10;
$605 = (((($479) + ($603<<3)|0)) + 4|0);
HEAP32[$605>>2] = $$pre$phi214$iZ2D;
$606 = ((($reach_next_i$1$ph101$i)) + 8|0);
$match_eo$3$i = $match_eo$2$i21;$new_match$3$i = $new_match$2$i;$reach_next_i$2$i = $606;$trans_i$085$i137 = $trans_i$085$i$lcssa135;
}
$607 = ((($trans_i$085$i137)) + 32|0);
$608 = ((($trans_i$085$i137)) + 40|0);
$609 = HEAP32[$608>>2]|0;
$610 = ($609|0)==(0|0);
if ($610) {
$match_eo$1$ph$lcssa$i = $match_eo$3$i;$new_match$1$ph$lcssa$i = $new_match$3$i;$reach_next_i$1$ph$lcssa$i = $reach_next_i$2$i;
break;
} else {
$829 = $608;$match_eo$1$ph108$i = $match_eo$3$i;$new_match$1$ph110$i = $new_match$3$i;$reach_next_i$1$ph101$i = $reach_next_i$2$i;$trans_i$0$ph112$i = $607;
}
}
}
} while(0);
HEAP32[$reach_next_i$1$ph$lcssa$i>>2] = 0;
$$old46$i = HEAP32[$next_c$i3>>2]|0;
$$old47$i = ($$old46$i|0)==(0);
if ($$old47$i) {
$match_eo$10$i = $match_eo$1$ph$lcssa$i;
break;
} else {
$662 = $$old46$i;$match_eo$4$i23 = $match_eo$1$ph$lcssa$i;$new_match$4$i = $new_match$1$ph$lcssa$i;
}
} else {
if ($506) {
$match_eo$10$i = $match_eo$0$i8;
break;
}
$611 = ($reach_next_i$0$i|0)!=($reach_next$1$i|0);
$612 = HEAP32[$next_c$i3>>2]|0;
$613 = ($612|0)!=(0);
$or$cond48$i22 = $611 & $613;
if ($or$cond48$i22) {
$662 = $612;$match_eo$4$i23 = $match_eo$0$i8;$new_match$4$i = $new_match$0$i;
} else {
$match_eo$10$i = $match_eo$0$i8;
break;
}
}
$614 = (($pos$0$i10) + ($pos_add_next$1$i9))|0;
$615 = (_mbtowc($next_c$i3,$str_byte$0$i11,4)|0);
$616 = ($615|0)<(1);
if ($616) {
$617 = ($615|0)<(0);
if ($617) {
$eo$2 = 0;$ret$0$i = 1;
break L21;
} else {
$pos_add_next$2$i24 = 1;
}
} else {
$pos_add_next$2$i24 = $615;
}
$618 = (($str_byte$0$i11) + ($pos_add_next$2$i24)|0);
$619 = HEAP32[$503>>2]|0;
$620 = ($619|0)!=(0);
$621 = ($new_match$4$i|0)!=(0);
$or$cond21$i25 = $621 & $620;
if ($or$cond21$i25) {
$622 = HEAP32[$reach_next$1$i>>2]|0;
$623 = ($622|0)==(0|0);
if ($623) {
$reach_next_i$3$lcssa$i = $reach$1$i;
} else {
$624 = HEAP32[$505>>2]|0;
$625 = HEAP32[$624>>2]|0;
$626 = ($625|0)>(-1);
$reach_i$0119$i = $reach_next$1$i;$reach_next_i$3121$i = $reach$1$i;
while(1) {
$627 = ((($reach_i$0119$i)) + 4|0);
L106: do {
if ($626) {
$630 = $624;$632 = $625;$i$4116$i = 0;
while(1) {
$628 = $i$4116$i | 1;
$629 = (($630) + ($628<<2)|0);
$631 = HEAP32[$629>>2]|0;
$633 = ($632|0)<($num_tags$0$i|0);
if (!($633)) {
$reach_next_i$4$i = $reach_next_i$3121$i;
break L106;
}
$634 = HEAP32[$627>>2]|0;
$635 = (($634) + ($631<<2)|0);
$636 = HEAP32[$635>>2]|0;
$637 = (($tags$0) + ($631<<2)|0);
$638 = HEAP32[$637>>2]|0;
$639 = ($636|0)==($638|0);
if ($639) {
$640 = (($634) + ($632<<2)|0);
$641 = HEAP32[$640>>2]|0;
$642 = (($tags$0) + ($632<<2)|0);
$643 = HEAP32[$642>>2]|0;
$644 = ($641|0)<($643|0);
if ($644) {
$reach_next_i$4$i = $reach_next_i$3121$i;
break L106;
}
}
$645 = (($i$4116$i) + 2)|0;
$646 = HEAP32[$505>>2]|0;
$647 = (($646) + ($645<<2)|0);
$648 = HEAP32[$647>>2]|0;
$649 = ($648|0)>(-1);
if ($649) {
$630 = $646;$632 = $648;$i$4116$i = $645;
} else {
$$lcssa = $634;
break;
}
}
$650 = $$lcssa;
$$pre$phi212$iZ2D = $627;$654 = $650;
label = 265;
} else {
$$pre204$i = HEAP32[$627>>2]|0;
$$pre$phi212$iZ2D = $627;$654 = $$pre204$i;
label = 265;
}
} while(0);
if ((label|0) == 265) {
label = 0;
$651 = HEAP32[$reach_i$0119$i>>2]|0;
HEAP32[$reach_next_i$3121$i>>2] = $651;
$652 = ((($reach_next_i$3121$i)) + 4|0);
$653 = HEAP32[$652>>2]|0;
HEAP32[$652>>2] = $654;
HEAP32[$$pre$phi212$iZ2D>>2] = $653;
$655 = ((($reach_next_i$3121$i)) + 8|0);
$reach_next_i$4$i = $655;
}
$656 = ((($reach_i$0119$i)) + 8|0);
$657 = HEAP32[$656>>2]|0;
$658 = ($657|0)==(0|0);
if ($658) {
$reach_next_i$3$lcssa$i = $reach_next_i$4$i;
break;
} else {
$reach_i$0119$i = $656;$reach_next_i$3121$i = $reach_next_i$4$i;
}
}
}
HEAP32[$reach_next_i$3$lcssa$i>>2] = 0;
$new_match$5$i = 0;$reach$2$i = $reach$1$i;$reach_next$2$i = $reach_next$1$i;
} else {
$new_match$5$i = $new_match$4$i;$reach$2$i = $reach_next$1$i;$reach_next$2$i = $reach$1$i;
}
$659 = HEAP32[$reach$2$i>>2]|0;
$660 = ($659|0)==(0|0);
if ($660) {
$match_eo$5$lcssa$i = $match_eo$4$i23;$new_match$6$lcssa$i = $new_match$5$i;$reach_next_i$5$lcssa$i = $reach_next$2$i;$tmp_tags$2$lcssa$i = $tmp_tags$1$i;
} else {
$661 = ($614|0)!=(0);
$663 = ($662|0)==(95);
$664 = ($614|0)==(0);
$665 = ($662|0)==(10);
$or$cond27$i = $500 & $665;
$notrhs$i26 = ($614|0)<(1);
$or$cond24$not$i = $notlhs180$i & $notrhs$i26;
$667 = $659;$match_eo$5155$i = $match_eo$4$i23;$new_match$6156$i = $new_match$5$i;$reach_i$1153$i = $reach$2$i;$reach_next_i$5154$i = $reach_next$2$i;$tmp_tags$2157$i = $tmp_tags$1$i;
while(1) {
$666 = ((($667)) + 8|0);
$668 = HEAP32[$666>>2]|0;
$669 = ($668|0)==(0|0);
if ($669) {
$match_eo$6$lcssa$i = $match_eo$5155$i;$new_match$7$lcssa$i = $new_match$6156$i;$reach_next_i$6$lcssa$i = $reach_next_i$5154$i;$tmp_tags$3$lcssa$i = $tmp_tags$2157$i;
} else {
$670 = ((($reach_i$1153$i)) + 4|0);
$768 = $tmp_tags$2157$i;$787 = $666;$match_eo$6135$i = $match_eo$5155$i;$new_match$7138$i = $new_match$6156$i;$reach_next_i$6134$i = $reach_next_i$5154$i;$trans_i$1144$i27 = $667;
while(1) {
$671 = HEAP32[$trans_i$1144$i27>>2]|0;
$672 = ($671>>>0)>($662>>>0);
L128: do {
if ($672) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
} else {
$673 = ((($trans_i$1144$i27)) + 4|0);
$674 = HEAP32[$673>>2]|0;
$675 = ($674>>>0)<($662>>>0);
if ($675) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break;
}
$676 = ((($trans_i$1144$i27)) + 20|0);
$677 = HEAP32[$676>>2]|0;
$678 = ($677|0)==(0);
do {
if (!($678)) {
$679 = $677 & 1;
$680 = ($679|0)==(0);
$brmerge172$i = $or$cond24$not$i | $680;
$brmerge173$i = $or$cond27$i | $brmerge172$i;
if (!($brmerge173$i)) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
$681 = $677 & 2;
$682 = ($681|0)==(0);
if (!($682)) {
$683 = HEAP32[$next_c$i3>>2]|0;
$684 = $683 | $443;
$685 = ($684|0)==(0);
$686 = ($683|0)==(10);
$or$cond33$i = $500 & $686;
$or$cond175$i = $685 | $or$cond33$i;
if (!($or$cond175$i)) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
}
$687 = $677 & 16;
$688 = ($687|0)==(0);
do {
if (!($688)) {
if ($663) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
$689 = (_iswalnum($662)|0);
$690 = ($689|0)==(0);
if (!($690)) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
$691 = HEAP32[$next_c$i3>>2]|0;
$692 = ($691|0)==(95);
if ($692) {
break;
}
$693 = (_iswalnum($691)|0);
$694 = ($693|0)==(0);
if ($694) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
}
} while(0);
$695 = HEAP32[$676>>2]|0;
$696 = $695 & 32;
$697 = ($696|0)==(0);
if ($697) {
$706 = $695;
} else {
if ($663) {
$$old34$i = HEAP32[$next_c$i3>>2]|0;
$$old35$i = ($$old34$i|0)==(95);
if ($$old35$i) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
} else {
$702 = $$old34$i;
}
} else {
$698 = (_iswalnum($662)|0);
$699 = ($698|0)==(0);
$700 = HEAP32[$next_c$i3>>2]|0;
$701 = ($700|0)==(95);
$or$cond36$i28 = $699 | $701;
if ($or$cond36$i28) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
} else {
$702 = $700;
}
}
$703 = (_iswalnum($702)|0);
$704 = ($703|0)==(0);
if (!($704)) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
$$pre206$i = HEAP32[$676>>2]|0;
$706 = $$pre206$i;
}
$705 = $706 & 64;
$707 = ($705|0)!=(0);
$or$cond39$i29 = $661 & $707;
$708 = HEAP32[$next_c$i3>>2]|0;
$709 = ($708|0)!=(0);
$or$cond42$i30 = $709 & $or$cond39$i29;
do {
if ($or$cond42$i30) {
if ($663) {
$712 = $708;$716 = 1;
} else {
$710 = (_iswalnum($662)|0);
$711 = ($710|0)!=(0);
$$pre207$i = HEAP32[$next_c$i3>>2]|0;
$712 = $$pre207$i;$716 = $711;
}
$713 = ($712|0)==(95);
if ($713) {
if ($716) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
} else {
break;
}
} else {
$714 = (_iswalnum($712)|0);
$715 = ($714|0)!=(0);
$tmp$i31 = $716 ^ $715;
if ($tmp$i31) {
break;
} else {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
}
}
} while(0);
$717 = HEAP32[$676>>2]|0;
$718 = $717 & 128;
$719 = ($718|0)==(0);
do {
if (!($719)) {
$720 = HEAP32[$next_c$i3>>2]|0;
$721 = ($720|0)==(0);
$or$cond45$i32 = $664 | $721;
if ($or$cond45$i32) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
if ($663) {
$724 = $720;$729 = 1;
} else {
$722 = (_iswalnum($662)|0);
$723 = ($722|0)!=(0);
$$pre208$i = HEAP32[$next_c$i3>>2]|0;
$724 = $$pre208$i;$729 = $723;
}
$725 = ($724|0)==(95);
if ($725) {
if ($729) {
break;
} else {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
} else {
$726 = (_iswalnum($724)|0);
$727 = ($726|0)!=(0);
$728 = $729 ^ $727;
if ($728) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
} else {
break;
}
}
}
} while(0);
$730 = HEAP32[$676>>2]|0;
$731 = $730 & 4;
$732 = ($731|0)==(0);
do {
if ($732) {
$741 = $730;
} else {
$733 = HEAP32[$2>>2]|0;
$734 = $733 & 2;
$735 = ($734|0)==(0);
if (!($735)) {
$741 = $730;
break;
}
$736 = ((($trans_i$1144$i27)) + 24|0);
$737 = HEAP32[$736>>2]|0;
$738 = (_iswctype($662,$737)|0);
$739 = ($738|0)==(0);
if ($739) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
$$pre210$i = HEAP32[$676>>2]|0;
$741 = $$pre210$i;
}
} while(0);
$740 = $741 & 4;
$742 = ($740|0)==(0);
do {
if (!($742)) {
$743 = HEAP32[$2>>2]|0;
$744 = $743 & 2;
$745 = ($744|0)==(0);
if ($745) {
break;
}
$746 = (_towlower($662)|0);
$747 = ((($trans_i$1144$i27)) + 24|0);
$748 = HEAP32[$747>>2]|0;
$749 = (_iswctype($746,$748)|0);
$750 = ($749|0)==(0);
if (!($750)) {
break;
}
$751 = (_towupper($662)|0);
$752 = HEAP32[$747>>2]|0;
$753 = (_iswctype($751,$752)|0);
$754 = ($753|0)==(0);
if ($754) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
}
} while(0);
$755 = HEAP32[$676>>2]|0;
$756 = $755 & 8;
$757 = ($756|0)==(0);
if ($757) {
break;
}
$758 = ((($trans_i$1144$i27)) + 28|0);
$759 = HEAP32[$758>>2]|0;
$760 = HEAP32[$2>>2]|0;
$761 = $760 & 2;
$762 = (_tre_neg_char_classes_match($759,$662,$761)|0);
$763 = ($762|0)==(0);
if (!($763)) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break L128;
}
}
} while(0);
if ($501) {
$764 = HEAP32[$670>>2]|0;
$i$5125$i = 0;
while(1) {
$765 = (($764) + ($i$5125$i<<2)|0);
$766 = HEAP32[$765>>2]|0;
$767 = (($768) + ($i$5125$i<<2)|0);
HEAP32[$767>>2] = $766;
$769 = (($i$5125$i) + 1)|0;
$exitcond194$i = ($769|0)==($num_tags$0$i|0);
if ($exitcond194$i) {
break;
} else {
$i$5125$i = $769;
}
}
}
$770 = ((($trans_i$1144$i27)) + 16|0);
$771 = HEAP32[$770>>2]|0;
$772 = ($771|0)==(0|0);
do {
if (!($772)) {
$773 = HEAP32[$771>>2]|0;
$774 = ($773|0)>(-1);
if ($774) {
$775 = $773;$tag_i$1128$i = $771;
} else {
break;
}
while(1) {
$776 = ($775|0)<($num_tags$0$i|0);
if ($776) {
$777 = (($768) + ($775<<2)|0);
HEAP32[$777>>2] = $614;
}
$778 = ((($tag_i$1128$i)) + 4|0);
$779 = HEAP32[$778>>2]|0;
$780 = ($779|0)>(-1);
if ($780) {
$775 = $779;$tag_i$1128$i = $778;
} else {
break;
}
}
}
} while(0);
$781 = ((($trans_i$1144$i27)) + 12|0);
$782 = HEAP32[$781>>2]|0;
$783 = (($479) + ($782<<3)|0);
$784 = HEAP32[$783>>2]|0;
$785 = ($784|0)<($614|0);
if (!($785)) {
$805 = HEAP32[$504>>2]|0;
$806 = (((($479) + ($782<<3)|0)) + 4|0);
$807 = HEAP32[$806>>2]|0;
$808 = HEAP32[$807>>2]|0;
$809 = (_tre_tag_order($num_tags$0$i,$805,$768,$808)|0);
$810 = ($809|0)==(0);
if ($810) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $768;
break;
}
HEAP32[$807>>2] = $768;
$811 = HEAP32[$787>>2]|0;
$812 = HEAP32[$502>>2]|0;
$813 = ($811|0)==($812|0);
if (!($813)) {
$match_eo$9$i = $match_eo$6135$i;$new_match$10$i = $new_match$7138$i;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $808;
break;
}
if ($501) {
$i$7130$i = 0;
} else {
$match_eo$9$i = $614;$new_match$10$i = 1;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $808;
break;
}
while(1) {
$814 = (($768) + ($i$7130$i<<2)|0);
$815 = HEAP32[$814>>2]|0;
$816 = (($tags$0) + ($i$7130$i<<2)|0);
HEAP32[$816>>2] = $815;
$817 = (($i$7130$i) + 1)|0;
$exitcond195$i = ($817|0)==($num_tags$0$i|0);
if ($exitcond195$i) {
$match_eo$9$i = $614;$new_match$10$i = 1;$reach_next_i$7$i = $reach_next_i$6134$i;$tmp_tags$4$i = $808;
break L128;
} else {
$i$7130$i = $817;
}
}
}
$786 = HEAP32[$787>>2]|0;
HEAP32[$reach_next_i$6134$i>>2] = $786;
$788 = ((($reach_next_i$6134$i)) + 4|0);
$789 = HEAP32[$788>>2]|0;
HEAP32[$788>>2] = $768;
HEAP32[$783>>2] = $614;
$790 = (((($479) + ($782<<3)|0)) + 4|0);
HEAP32[$790>>2] = $788;
$791 = $786;
$792 = HEAP32[$502>>2]|0;
$793 = ($791|0)==($792|0);
do {
if ($793) {
$794 = ($match_eo$6135$i|0)==(-1);
if ($794) {
if (!($501)) {
$match_eo$7$i = $614;$new_match$8$i = 1;
break;
}
} else {
if (!($501)) {
$match_eo$7$i = $match_eo$6135$i;$new_match$8$i = $new_match$7138$i;
break;
}
$795 = HEAP32[$768>>2]|0;
$796 = HEAP32[$tags$0>>2]|0;
$797 = ($795|0)>($796|0);
if ($797) {
$match_eo$7$i = $match_eo$6135$i;$new_match$8$i = $new_match$7138$i;
break;
}
}
$798 = HEAP32[$788>>2]|0;
$i$6132$i = 0;
while(1) {
$799 = (($798) + ($i$6132$i<<2)|0);
$800 = HEAP32[$799>>2]|0;
$801 = (($tags$0) + ($i$6132$i<<2)|0);
HEAP32[$801>>2] = $800;
$802 = (($i$6132$i) + 1)|0;
$803 = ($802|0)<($num_tags$0$i|0);
if ($803) {
$i$6132$i = $802;
} else {
$match_eo$7$i = $614;$new_match$8$i = 1;
break;
}
}
} else {
$match_eo$7$i = $match_eo$6135$i;$new_match$8$i = $new_match$7138$i;
}
} while(0);
$804 = ((($reach_next_i$6134$i)) + 8|0);
$match_eo$9$i = $match_eo$7$i;$new_match$10$i = $new_match$8$i;$reach_next_i$7$i = $804;$tmp_tags$4$i = $789;
}
} while(0);
$818 = ((($trans_i$1144$i27)) + 32|0);
$819 = ((($trans_i$1144$i27)) + 40|0);
$820 = HEAP32[$819>>2]|0;
$821 = ($820|0)==(0|0);
if ($821) {
$match_eo$6$lcssa$i = $match_eo$9$i;$new_match$7$lcssa$i = $new_match$10$i;$reach_next_i$6$lcssa$i = $reach_next_i$7$i;$tmp_tags$3$lcssa$i = $tmp_tags$4$i;
break;
} else {
$768 = $tmp_tags$4$i;$787 = $819;$match_eo$6135$i = $match_eo$9$i;$new_match$7138$i = $new_match$10$i;$reach_next_i$6134$i = $reach_next_i$7$i;$trans_i$1144$i27 = $818;
}
}
}
$822 = ((($reach_i$1153$i)) + 8|0);
$823 = HEAP32[$822>>2]|0;
$824 = ($823|0)==(0|0);
if ($824) {
$match_eo$5$lcssa$i = $match_eo$6$lcssa$i;$new_match$6$lcssa$i = $new_match$7$lcssa$i;$reach_next_i$5$lcssa$i = $reach_next_i$6$lcssa$i;$tmp_tags$2$lcssa$i = $tmp_tags$3$lcssa$i;
break;
} else {
$667 = $823;$match_eo$5155$i = $match_eo$6$lcssa$i;$new_match$6156$i = $new_match$7$lcssa$i;$reach_i$1153$i = $822;$reach_next_i$5154$i = $reach_next_i$6$lcssa$i;$tmp_tags$2157$i = $tmp_tags$3$lcssa$i;
}
}
}
HEAP32[$reach_next_i$5$lcssa$i>>2] = 0;
$match_eo$0$i8 = $match_eo$5$lcssa$i;$new_match$0$i = $new_match$6$lcssa$i;$pos$0$i10 = $614;$pos_add_next$1$i9 = $pos_add_next$2$i24;$prev_c$0$i = $662;$reach$1$i = $reach$2$i;$reach_next$1$i = $reach_next$2$i;$reach_next_i$0$i = $reach_next_i$5$lcssa$i;$str_byte$0$i11 = $618;$tmp_tags$1$i = $tmp_tags$2$lcssa$i;
}
$match_eo$10$lobit$i = $match_eo$10$i >>> 31;
$eo$2 = $match_eo$10$i;$ret$0$i = $match_eo$10$lobit$i;
}
} while(0);
_free($459);
$$1$i = $ret$0$i;$eo$3 = $eo$2;
}
$eo$4 = $eo$3;$status$0 = $$1$i;
} else {
HEAP32[$next_c$i>>2] = 0;
$16 = $eflags & 1;
$17 = $eflags & 2;
$18 = HEAP32[$2>>2]|0;
$19 = $18 & 4;
$20 = (___tre_mem_new_impl(0,0)|0);
$21 = ($20|0)==(0|0);
L219: do {
if ($21) {
$$15$i = 12;$eo$1 = 0;
} else {
$22 = (___tre_mem_alloc_impl($20,0,0,0,32)|0);
$23 = ($22|0)==(0|0);
if ($23) {
___tre_mem_destroy($20);
$$15$i = 12;$eo$1 = 0;
break;
}
$24 = ((($22)) + 24|0);
HEAP32[$24>>2] = 0;
$25 = ((($22)) + 28|0);
HEAP32[$25>>2] = 0;
$26 = HEAP32[$6>>2]|0;
$27 = ($26|0)==(0);
if ($27) {
$tags$0$i = 0;
label = 9;
} else {
$28 = $26 << 2;
$29 = (_malloc($28)|0);
$30 = ($29|0)==(0|0);
if ($30) {
$eo$0 = 0;$pmatch$1$i = 0;$ret$7$i = 12;$states_seen$1$i = 0;$tags$1$i = $29;
} else {
$tags$0$i = $29;
label = 9;
}
}
L226: do {
if ((label|0) == 9) {
$31 = ((($1)) + 28|0);
$32 = HEAP32[$31>>2]|0;
$33 = ($32|0)==(0);
if ($33) {
$pmatch$0$i = 0;
} else {
$34 = $32 << 3;
$35 = (_malloc($34)|0);
$36 = ($35|0)==(0|0);
if ($36) {
$eo$0 = 0;$pmatch$1$i = $35;$ret$7$i = 12;$states_seen$1$i = 0;$tags$1$i = $tags$0$i;
break;
} else {
$pmatch$0$i = $35;
}
}
$37 = ((($1)) + 52|0);
$38 = HEAP32[$37>>2]|0;
$39 = ($38|0)==(0);
if ($39) {
$states_seen$0$ph$i = 0;
} else {
$40 = $38 << 2;
$41 = (_malloc($40)|0);
$42 = ($41|0)==(0|0);
if ($42) {
$eo$0 = 0;$pmatch$1$i = $pmatch$0$i;$ret$7$i = 12;$states_seen$1$i = $41;$tags$1$i = $tags$0$i;
break;
} else {
$states_seen$0$ph$i = $41;
}
}
$43 = ((($1)) + 8|0);
$44 = ((($1)) + 12|0);
$45 = ($tags$0|0)==(0|0);
$46 = ($tags$0|0)!=(0|0);
$47 = ((($1)) + 32|0);
$48 = ($19|0)!=(0);
$49 = ($tags$0$i|0)==(0|0);
$50 = ($pmatch$0$i|0)==(0|0);
$51 = ($states_seen$0$ph$i|0)==(0|0);
$notlhs166$i = ($16|0)==(0);
$52 = $26;$match_eo$0$i = -1;$pos_add_next$0$i = 1;$pos_start$0$i = -1;$stack$0$i = $22;$str_byte$0$i = $string;
L234: while(1) {
$53 = ($52|0)>(0);
if ($53) {
$828 = $52;$i$0105$i = 0;
while(1) {
$58 = (($tags$0$i) + ($i$0105$i<<2)|0);
HEAP32[$58>>2] = -1;
if ($45) {
$62 = $828;
} else {
$59 = (($tags$0) + ($i$0105$i<<2)|0);
HEAP32[$59>>2] = -1;
$$pre174$i = HEAP32[$6>>2]|0;
$62 = $$pre174$i;
}
$60 = (($i$0105$i) + 1)|0;
$61 = ($60|0)<($62|0);
if ($61) {
$828 = $62;$i$0105$i = $60;
} else {
break;
}
}
}
$54 = HEAP32[$37>>2]|0;
$55 = ($54|0)>(0);
if ($55) {
$56 = ($54|0)>(1);
$smax$i = $56 ? $54 : 1;
$57 = $smax$i << 2;
_memset(($states_seen$0$ph$i|0),0,($57|0))|0;
}
$63 = HEAP32[$next_c$i>>2]|0;
$64 = (($pos_add_next$0$i) + ($pos_start$0$i))|0;
$65 = (_mbtowc($next_c$i,$str_byte$0$i,4)|0);
$66 = ($65|0)<(1);
if ($66) {
$67 = ($65|0)<(0);
if ($67) {
$eo$0 = 0;$pmatch$1$i = $pmatch$0$i;$ret$7$i = 1;$states_seen$1$i = $states_seen$0$ph$i;$tags$1$i = $tags$0$i;
break L226;
} else {
$pos_add_next$1$i = 1;
}
} else {
$pos_add_next$1$i = $65;
}
$68 = (($str_byte$0$i) + ($pos_add_next$1$i)|0);
$69 = HEAP32[$next_c$i>>2]|0;
$70 = HEAP32[$43>>2]|0;
$71 = ((($70)) + 8|0);
$72 = HEAP32[$71>>2]|0;
$73 = ($72|0)==(0|0);
if ($73) {
$match_eo$2$i = $match_eo$0$i;$next_tags$8$i = 0;$pos$3$i = $64;$pos_add_next$7$i = $pos_add_next$1$i;$stack$12$i = $stack$0$i;$state$3$i = 0;$str_byte$4$i = $68;
label = 174;
} else {
$74 = ($64|0)!=(0);
$75 = ($63|0)==(95);
$76 = ($64|0)==(0);
$77 = ($63|0)==(10);
$or$cond6$i = $48 & $77;
$notrhs$i = ($64|0)<(1);
$or$cond$not$i = $notlhs166$i & $notrhs$i;
$134 = $71;$next_tags$0117$i = 0;$stack$1118$i = $stack$0$i;$state$0116$i = 0;$trans_i$0120$i = $70;
while(1) {
$78 = ((($trans_i$0120$i)) + 20|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($79|0)==(0);
L253: do {
if ($80) {
label = 52;
} else {
$81 = $79 & 1;
$82 = ($81|0)==(0);
$brmerge$i = $or$cond$not$i | $82;
$brmerge159$i = $or$cond6$i | $brmerge$i;
if (!($brmerge159$i)) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
}
$83 = $79 & 2;
$84 = ($83|0)==(0);
if (!($84)) {
$85 = HEAP32[$next_c$i>>2]|0;
$86 = $85 | $17;
$87 = ($86|0)==(0);
$88 = ($85|0)==(10);
$or$cond10$i = $48 & $88;
$or$cond161$i = $87 | $or$cond10$i;
if (!($or$cond161$i)) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
}
}
$89 = $79 & 16;
$90 = ($89|0)==(0);
do {
if (!($90)) {
if ($75) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break L253;
}
$91 = (_iswalnum($63)|0);
$92 = ($91|0)==(0);
if (!($92)) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break L253;
}
$93 = HEAP32[$next_c$i>>2]|0;
$94 = ($93|0)==(95);
if ($94) {
break;
}
$95 = (_iswalnum($93)|0);
$96 = ($95|0)==(0);
if ($96) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break L253;
}
}
} while(0);
$97 = HEAP32[$78>>2]|0;
$98 = $97 & 32;
$99 = ($98|0)==(0);
if ($99) {
$108 = $97;
} else {
if ($75) {
$$old$i = HEAP32[$next_c$i>>2]|0;
$$old11$i = ($$old$i|0)==(95);
if ($$old11$i) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
} else {
$104 = $$old$i;
}
} else {
$100 = (_iswalnum($63)|0);
$101 = ($100|0)==(0);
$102 = HEAP32[$next_c$i>>2]|0;
$103 = ($102|0)==(95);
$or$cond12$i = $101 | $103;
if ($or$cond12$i) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
} else {
$104 = $102;
}
}
$105 = (_iswalnum($104)|0);
$106 = ($105|0)==(0);
if (!($106)) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
}
$$pre176$i = HEAP32[$78>>2]|0;
$108 = $$pre176$i;
}
$107 = $108 & 64;
$109 = ($107|0)!=(0);
$or$cond15$i = $74 & $109;
$110 = HEAP32[$next_c$i>>2]|0;
$111 = ($110|0)!=(0);
$or$cond18$i = $111 & $or$cond15$i;
do {
if ($or$cond18$i) {
if ($75) {
$114 = $110;$118 = 1;
} else {
$112 = (_iswalnum($63)|0);
$113 = ($112|0)!=(0);
$$pre177$i = HEAP32[$next_c$i>>2]|0;
$114 = $$pre177$i;$118 = $113;
}
$115 = ($114|0)==(95);
if ($115) {
if ($118) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break L253;
} else {
break;
}
} else {
$116 = (_iswalnum($114)|0);
$117 = ($116|0)!=(0);
$tmp55$i = $118 ^ $117;
if ($tmp55$i) {
break;
} else {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break L253;
}
}
}
} while(0);
$119 = HEAP32[$78>>2]|0;
$120 = $119 & 128;
$121 = ($120|0)==(0);
if ($121) {
label = 52;
break;
}
$122 = HEAP32[$next_c$i>>2]|0;
$123 = ($122|0)==(0);
$or$cond21$i = $76 | $123;
if ($or$cond21$i) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
}
if ($75) {
$126 = $122;$131 = 1;
} else {
$124 = (_iswalnum($63)|0);
$125 = ($124|0)!=(0);
$$pre178$i = HEAP32[$next_c$i>>2]|0;
$126 = $$pre178$i;$131 = $125;
}
$127 = ($126|0)==(95);
if ($127) {
if ($131) {
label = 52;
break;
} else {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
}
} else {
$128 = (_iswalnum($126)|0);
$129 = ($128|0)!=(0);
$130 = $131 ^ $129;
if ($130) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$1118$i;$state$1$i = $state$0116$i;
break;
} else {
label = 52;
break;
}
}
}
} while(0);
do {
if ((label|0) == 52) {
label = 0;
$132 = ($state$0116$i|0)==(0|0);
if ($132) {
$133 = HEAP32[$134>>2]|0;
$135 = ((($trans_i$0120$i)) + 16|0);
$136 = HEAP32[$135>>2]|0;
$next_tags$1$i = $136;$stack$5$i = $stack$1118$i;$state$1$i = $133;
break;
}
$137 = ((($stack$1118$i)) + 28|0);
$138 = HEAP32[$137>>2]|0;
$139 = ($138|0)==(0|0);
if ($139) {
$140 = (___tre_mem_alloc_impl($20,0,0,0,32)|0);
$141 = ($140|0)==(0|0);
if ($141) {
label = 56;
break L234;
}
$142 = ((($140)) + 24|0);
HEAP32[$142>>2] = $stack$1118$i;
$143 = ((($140)) + 28|0);
HEAP32[$143>>2] = 0;
$144 = HEAP32[$6>>2]|0;
$145 = $144 << 2;
$146 = (___tre_mem_alloc_impl($20,0,0,0,$145)|0);
$147 = ((($140)) + 20|0);
HEAP32[$147>>2] = $146;
$148 = ($146|0)==(0|0);
if ($148) {
label = 63;
break L234;
}
HEAP32[$137>>2] = $140;
$stack$3$i = $140;
} else {
$stack$3$i = $138;
}
HEAP32[$stack$3$i>>2] = $64;
$149 = ((($stack$3$i)) + 4|0);
HEAP32[$149>>2] = $68;
$150 = HEAP32[$134>>2]|0;
$151 = ((($stack$3$i)) + 8|0);
HEAP32[$151>>2] = $150;
$152 = ((($trans_i$0120$i)) + 12|0);
$153 = HEAP32[$152>>2]|0;
$154 = ((($stack$3$i)) + 12|0);
HEAP32[$154>>2] = $153;
$155 = HEAP32[$next_c$i>>2]|0;
$156 = ((($stack$3$i)) + 16|0);
HEAP32[$156>>2] = $155;
$157 = HEAP32[$6>>2]|0;
$158 = ($157|0)>(0);
if ($158) {
$159 = ((($stack$3$i)) + 20|0);
$160 = HEAP32[$159>>2]|0;
$i1$0110$i = 0;
while(1) {
$161 = (($tags$0$i) + ($i1$0110$i<<2)|0);
$162 = HEAP32[$161>>2]|0;
$163 = (($160) + ($i1$0110$i<<2)|0);
HEAP32[$163>>2] = $162;
$164 = (($i1$0110$i) + 1)|0;
$165 = HEAP32[$6>>2]|0;
$166 = ($164|0)<($165|0);
if ($166) {
$i1$0110$i = $164;
} else {
break;
}
}
}
$167 = ((($trans_i$0120$i)) + 16|0);
$168 = HEAP32[$167>>2]|0;
$169 = ($168|0)==(0|0);
if ($169) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$3$i;$state$1$i = $state$0116$i;
break;
}
$170 = HEAP32[$168>>2]|0;
$171 = ($170|0)>(-1);
if (!($171)) {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$3$i;$state$1$i = $state$0116$i;
break;
}
$172 = ((($stack$3$i)) + 20|0);
$173 = HEAP32[$172>>2]|0;
$176 = $170;$tmp$0114$i = $168;
while(1) {
$174 = ((($tmp$0114$i)) + 4|0);
$175 = (($173) + ($176<<2)|0);
HEAP32[$175>>2] = $64;
$177 = HEAP32[$174>>2]|0;
$178 = ($177|0)>(-1);
if ($178) {
$176 = $177;$tmp$0114$i = $174;
} else {
$next_tags$1$i = $next_tags$0117$i;$stack$5$i = $stack$3$i;$state$1$i = $state$0116$i;
break;
}
}
}
} while(0);
$179 = ((($trans_i$0120$i)) + 32|0);
$180 = ((($trans_i$0120$i)) + 40|0);
$181 = HEAP32[$180>>2]|0;
$182 = ($181|0)==(0|0);
if ($182) {
$next_tags$1$i$lcssa = $next_tags$1$i;$stack$5$i$lcssa = $stack$5$i;$state$1$i$lcssa = $state$1$i;
break;
} else {
$134 = $180;$next_tags$0117$i = $next_tags$1$i;$stack$1118$i = $stack$5$i;$state$0116$i = $state$1$i;$trans_i$0120$i = $179;
}
}
$183 = ($next_tags$1$i$lcssa|0)==(0|0);
if ($183) {
$next_tags$3$i = 0;
} else {
$184 = HEAP32[$next_tags$1$i$lcssa>>2]|0;
$185 = ($184|0)>(-1);
if ($185) {
$187 = $184;$next_tags$2127$i = $next_tags$1$i$lcssa;
while(1) {
$186 = (($tags$0$i) + ($187<<2)|0);
HEAP32[$186>>2] = $64;
$188 = ((($next_tags$2127$i)) + 4|0);
$189 = HEAP32[$188>>2]|0;
$190 = ($189|0)>(-1);
if ($190) {
$187 = $189;$next_tags$2127$i = $188;
} else {
$next_tags$3$i = $188;
break;
}
}
} else {
$next_tags$3$i = $next_tags$1$i$lcssa;
}
}
$191 = ($state$1$i$lcssa|0)==(0|0);
if ($191) {
$match_eo$2$i = $match_eo$0$i;$next_tags$8$i = $next_tags$3$i;$pos$3$i = $64;$pos_add_next$7$i = $pos_add_next$1$i;$stack$12$i = $stack$5$i$lcssa;$state$3$i = 0;$str_byte$4$i = $68;
label = 174;
} else {
$match_eo$1$i = $match_eo$0$i;$next_tags$4$i = $next_tags$3$i;$pos$0$i = $64;$pos_add_next$2$i = $pos_add_next$1$i;$stack$6$i = $stack$5$i$lcssa;$state$2$i = $state$1$i$lcssa;$str_byte$1$i = $68;
label = 82;
}
}
L316: while(1) {
L317: do {
if ((label|0) == 82) {
label = 0;
$192 = HEAP32[$44>>2]|0;
$193 = ($state$2$i|0)==($192|0);
if ($193) {
$194 = ($match_eo$1$i|0)<($pos$0$i|0);
if (!($194)) {
$195 = ($match_eo$1$i|0)==($pos$0$i|0);
$or$cond24$i = $46 & $195;
if (!($or$cond24$i)) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
$196 = HEAP32[$6>>2]|0;
$197 = HEAP32[$47>>2]|0;
$198 = (_tre_tag_order($196,$197,$tags$0$i,$tags$0)|0);
$199 = ($198|0)==(0);
if ($199) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $match_eo$1$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
}
if ($45) {
$match_eo$2$i = $pos$0$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
$200 = HEAP32[$6>>2]|0;
$201 = ($200|0)>(0);
if ($201) {
$i3$0157$i = 0;
} else {
$match_eo$2$i = $pos$0$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
while(1) {
$202 = (($tags$0$i) + ($i3$0157$i<<2)|0);
$203 = HEAP32[$202>>2]|0;
$204 = (($tags$0) + ($i3$0157$i<<2)|0);
HEAP32[$204>>2] = $203;
$205 = (($i3$0157$i) + 1)|0;
$206 = HEAP32[$6>>2]|0;
$207 = ($205|0)<($206|0);
if ($207) {
$i3$0157$i = $205;
} else {
$match_eo$2$i = $pos$0$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
}
}
$208 = ((($state$2$i)) + 8|0);
$209 = HEAP32[$208>>2]|0;
$210 = ($209|0)==(0|0);
do {
if ($210) {
label = 97;
} else {
$211 = ((($state$2$i)) + 20|0);
$212 = HEAP32[$211>>2]|0;
$213 = $212 & 256;
$214 = ($213|0)==(0);
if ($214) {
label = 97;
break;
}
$215 = ((($state$2$i)) + 24|0);
$216 = HEAP32[$215>>2]|0;
$217 = (($216) + 1)|0;
$218 = HEAP32[$2>>2]|0;
$219 = $218 & -9;
_tre_fill_pmatch($217,$pmatch$0$i,$219,$1,$tags$0$i,$pos$0$i);
$220 = (($pmatch$0$i) + ($216<<3)|0);
$221 = HEAP32[$220>>2]|0;
$222 = (((($pmatch$0$i) + ($216<<3)|0)) + 4|0);
$223 = HEAP32[$222>>2]|0;
$224 = (($223) - ($221))|0;
$225 = (($string) + ($221)|0);
$226 = ((($str_byte$1$i)) + -1|0);
$227 = (_strncmp($225,$226,$224)|0);
$228 = ($227|0)==(0);
if (!($228)) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
$229 = ($223|0)==($221|0);
$$$i = $229&1;
$230 = ((($state$2$i)) + 12|0);
$231 = HEAP32[$230>>2]|0;
$232 = (($states_seen$0$ph$i) + ($231<<2)|0);
if ($229) {
$233 = HEAP32[$232>>2]|0;
$234 = ($233|0)==(0);
if (!($234)) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
}
HEAP32[$232>>2] = $$$i;
$235 = (($224) + -1)|0;
$236 = (($str_byte$1$i) + ($235)|0);
$237 = HEAP32[$next_c$i>>2]|0;
$238 = (($pos$0$i) + ($pos_add_next$2$i))|0;
$239 = (($238) + ($235))|0;
$240 = (_mbtowc($next_c$i,$236,4)|0);
$241 = ($240|0)<(1);
if ($241) {
$242 = ($240|0)<(0);
if ($242) {
$$554$i = 2;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$4$i;$pos$5$i = $239;$pos_add_next$9$i = $240;$stack$14$i = $stack$6$i;$state$5$i = $state$2$i;$str_byte$6$i = $236;
break L317;
} else {
$pos_add_next$3$i = 1;
}
} else {
$pos_add_next$3$i = $240;
}
$243 = (($236) + ($pos_add_next$3$i)|0);
$pos$2$i = $239;$pos_add_next$6$i = $pos_add_next$3$i;$prev_c$2$i = $237;$str_byte$3$i = $243;
}
} while(0);
if ((label|0) == 97) {
label = 0;
$244 = HEAP32[$next_c$i>>2]|0;
$245 = ($244|0)==(0);
if ($245) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$0$i;$pos_add_next$7$i = $pos_add_next$2$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$1$i;
label = 174;
continue L316;
}
$246 = (($pos$0$i) + ($pos_add_next$2$i))|0;
$247 = (_mbtowc($next_c$i,$str_byte$1$i,4)|0);
$248 = ($247|0)<(1);
if ($248) {
$249 = ($247|0)<(0);
if ($249) {
$$554$i = 2;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$4$i;$pos$5$i = $246;$pos_add_next$9$i = $247;$stack$14$i = $stack$6$i;$state$5$i = $state$2$i;$str_byte$6$i = $str_byte$1$i;
break;
}
$250 = (($247) + 1)|0;
$pos_add_next$5$i = $250;
} else {
$pos_add_next$5$i = $247;
}
$251 = (($str_byte$1$i) + ($pos_add_next$5$i)|0);
$pos$2$i = $246;$pos_add_next$6$i = $pos_add_next$5$i;$prev_c$2$i = $244;$str_byte$3$i = $251;
}
$252 = HEAP32[$208>>2]|0;
$253 = ($252|0)==(0|0);
if ($253) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$4$i;$pos$3$i = $pos$2$i;$pos_add_next$7$i = $pos_add_next$6$i;$stack$12$i = $stack$6$i;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$3$i;
label = 174;
continue L316;
}
$254 = ($pos$2$i|0)!=(0);
$255 = ($prev_c$2$i|0)==(95);
$256 = ($pos$2$i|0)==(0);
$257 = ($prev_c$2$i|0)==(10);
$or$cond30$i = $48 & $257;
$notrhs167$i = ($pos$2$i|0)<(1);
$or$cond27$not$i = $notlhs166$i & $notrhs167$i;
$353 = $208;$next_state$0147$i = 0;$next_tags$5142$i = $next_tags$4$i;$stack$7143$i = $stack$6$i;$trans_i$1144$i = $state$2$i;
L359: while(1) {
$258 = HEAP32[$trans_i$1144$i>>2]|0;
$259 = ($258>>>0)>($prev_c$2$i>>>0);
L361: do {
if ($259) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
} else {
$260 = ((($trans_i$1144$i)) + 4|0);
$261 = HEAP32[$260>>2]|0;
$262 = ($261>>>0)<($prev_c$2$i>>>0);
if ($262) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break;
}
$263 = ((($trans_i$1144$i)) + 20|0);
$264 = HEAP32[$263>>2]|0;
$265 = ($264|0)==(0);
do {
if (!($265)) {
$266 = $264 & 1;
$267 = ($266|0)==(0);
$brmerge162$i = $or$cond27$not$i | $267;
$brmerge163$i = $or$cond30$i | $brmerge162$i;
if (!($brmerge163$i)) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
$268 = $264 & 2;
$269 = ($268|0)==(0);
if (!($269)) {
$270 = HEAP32[$next_c$i>>2]|0;
$271 = $270 | $17;
$272 = ($271|0)==(0);
$273 = ($270|0)==(10);
$or$cond36$i = $48 & $273;
$or$cond165$i = $272 | $or$cond36$i;
if (!($or$cond165$i)) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
}
$274 = $264 & 16;
$275 = ($274|0)==(0);
do {
if (!($275)) {
if ($255) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
$276 = (_iswalnum($prev_c$2$i)|0);
$277 = ($276|0)==(0);
if (!($277)) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
$278 = HEAP32[$next_c$i>>2]|0;
$279 = ($278|0)==(95);
if ($279) {
break;
}
$280 = (_iswalnum($278)|0);
$281 = ($280|0)==(0);
if ($281) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
}
} while(0);
$282 = HEAP32[$263>>2]|0;
$283 = $282 & 32;
$284 = ($283|0)==(0);
if ($284) {
$293 = $282;
} else {
if ($255) {
$$old37$i = HEAP32[$next_c$i>>2]|0;
$$old38$i = ($$old37$i|0)==(95);
if ($$old38$i) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
} else {
$289 = $$old37$i;
}
} else {
$285 = (_iswalnum($prev_c$2$i)|0);
$286 = ($285|0)==(0);
$287 = HEAP32[$next_c$i>>2]|0;
$288 = ($287|0)==(95);
$or$cond39$i = $286 | $288;
if ($or$cond39$i) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
} else {
$289 = $287;
}
}
$290 = (_iswalnum($289)|0);
$291 = ($290|0)==(0);
if (!($291)) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
$$pre182$i = HEAP32[$263>>2]|0;
$293 = $$pre182$i;
}
$292 = $293 & 64;
$294 = ($292|0)!=(0);
$or$cond42$i = $254 & $294;
$295 = HEAP32[$next_c$i>>2]|0;
$296 = ($295|0)!=(0);
$or$cond45$i = $296 & $or$cond42$i;
do {
if ($or$cond45$i) {
if ($255) {
$299 = $295;$303 = 1;
} else {
$297 = (_iswalnum($prev_c$2$i)|0);
$298 = ($297|0)!=(0);
$$pre183$i = HEAP32[$next_c$i>>2]|0;
$299 = $$pre183$i;$303 = $298;
}
$300 = ($299|0)==(95);
if ($300) {
if ($303) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
} else {
break;
}
} else {
$301 = (_iswalnum($299)|0);
$302 = ($301|0)!=(0);
$tmp$i = $303 ^ $302;
if ($tmp$i) {
break;
} else {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
}
}
} while(0);
$304 = HEAP32[$263>>2]|0;
$305 = $304 & 128;
$306 = ($305|0)==(0);
do {
if (!($306)) {
$307 = HEAP32[$next_c$i>>2]|0;
$308 = ($307|0)==(0);
$or$cond48$i = $256 | $308;
if ($or$cond48$i) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
if ($255) {
$311 = $307;$316 = 1;
} else {
$309 = (_iswalnum($prev_c$2$i)|0);
$310 = ($309|0)!=(0);
$$pre184$i = HEAP32[$next_c$i>>2]|0;
$311 = $$pre184$i;$316 = $310;
}
$312 = ($311|0)==(95);
if ($312) {
if ($316) {
break;
} else {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
} else {
$313 = (_iswalnum($311)|0);
$314 = ($313|0)!=(0);
$315 = $316 ^ $314;
if ($315) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
} else {
break;
}
}
}
} while(0);
$317 = HEAP32[$263>>2]|0;
$318 = $317 & 4;
$319 = ($318|0)==(0);
do {
if ($319) {
$328 = $317;
} else {
$320 = HEAP32[$2>>2]|0;
$321 = $320 & 2;
$322 = ($321|0)==(0);
if (!($322)) {
$328 = $317;
break;
}
$323 = ((($trans_i$1144$i)) + 24|0);
$324 = HEAP32[$323>>2]|0;
$325 = (_iswctype($prev_c$2$i,$324)|0);
$326 = ($325|0)==(0);
if ($326) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
$$pre186$i = HEAP32[$263>>2]|0;
$328 = $$pre186$i;
}
} while(0);
$327 = $328 & 4;
$329 = ($327|0)==(0);
do {
if (!($329)) {
$330 = HEAP32[$2>>2]|0;
$331 = $330 & 2;
$332 = ($331|0)==(0);
if ($332) {
break;
}
$333 = (_towlower($prev_c$2$i)|0);
$334 = ((($trans_i$1144$i)) + 24|0);
$335 = HEAP32[$334>>2]|0;
$336 = (_iswctype($333,$335)|0);
$337 = ($336|0)==(0);
if (!($337)) {
break;
}
$338 = (_towupper($prev_c$2$i)|0);
$339 = HEAP32[$334>>2]|0;
$340 = (_iswctype($338,$339)|0);
$341 = ($340|0)==(0);
if ($341) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
}
} while(0);
$342 = HEAP32[$263>>2]|0;
$343 = $342 & 8;
$344 = ($343|0)==(0);
if ($344) {
break;
}
$345 = ((($trans_i$1144$i)) + 28|0);
$346 = HEAP32[$345>>2]|0;
$347 = HEAP32[$2>>2]|0;
$348 = $347 & 2;
$349 = (_tre_neg_char_classes_match($346,$prev_c$2$i,$348)|0);
$350 = ($349|0)==(0);
if (!($350)) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$7143$i;
break L361;
}
}
} while(0);
$351 = ($next_state$0147$i|0)==(0|0);
if ($351) {
$352 = HEAP32[$353>>2]|0;
$354 = ((($trans_i$1144$i)) + 16|0);
$355 = HEAP32[$354>>2]|0;
$next_state$1$i = $352;$next_tags$6$i = $355;$stack$11$i = $stack$7143$i;
break;
}
$356 = ((($stack$7143$i)) + 28|0);
$357 = HEAP32[$356>>2]|0;
$358 = ($357|0)==(0|0);
if ($358) {
$359 = (___tre_mem_alloc_impl($20,0,0,0,32)|0);
$360 = ($359|0)==(0|0);
if ($360) {
$next_tags$5142$i$lcssa = $next_tags$5142$i;$stack$7143$i$lcssa = $stack$7143$i;
label = 148;
break L359;
}
$361 = ((($359)) + 24|0);
HEAP32[$361>>2] = $stack$7143$i;
$362 = ((($359)) + 28|0);
HEAP32[$362>>2] = 0;
$363 = HEAP32[$6>>2]|0;
$364 = $363 << 2;
$365 = (___tre_mem_alloc_impl($20,0,0,0,$364)|0);
$366 = ((($359)) + 20|0);
HEAP32[$366>>2] = $365;
$367 = ($365|0)==(0|0);
if ($367) {
$next_tags$5142$i$lcssa146 = $next_tags$5142$i;$stack$7143$i$lcssa144 = $stack$7143$i;
label = 155;
break L359;
}
HEAP32[$356>>2] = $359;
$stack$9$i = $359;
} else {
$stack$9$i = $357;
}
HEAP32[$stack$9$i>>2] = $pos$2$i;
$368 = ((($stack$9$i)) + 4|0);
HEAP32[$368>>2] = $str_byte$3$i;
$369 = HEAP32[$353>>2]|0;
$370 = ((($stack$9$i)) + 8|0);
HEAP32[$370>>2] = $369;
$371 = ((($trans_i$1144$i)) + 12|0);
$372 = HEAP32[$371>>2]|0;
$373 = ((($stack$9$i)) + 12|0);
HEAP32[$373>>2] = $372;
$374 = HEAP32[$next_c$i>>2]|0;
$375 = ((($stack$9$i)) + 16|0);
HEAP32[$375>>2] = $374;
$376 = HEAP32[$6>>2]|0;
$377 = ($376|0)>(0);
if ($377) {
$378 = ((($stack$9$i)) + 20|0);
$379 = HEAP32[$378>>2]|0;
$i5$0134$i = 0;
while(1) {
$380 = (($tags$0$i) + ($i5$0134$i<<2)|0);
$381 = HEAP32[$380>>2]|0;
$382 = (($379) + ($i5$0134$i<<2)|0);
HEAP32[$382>>2] = $381;
$383 = (($i5$0134$i) + 1)|0;
$384 = HEAP32[$6>>2]|0;
$385 = ($383|0)<($384|0);
if ($385) {
$i5$0134$i = $383;
} else {
break;
}
}
}
$386 = ((($trans_i$1144$i)) + 16|0);
$387 = HEAP32[$386>>2]|0;
$388 = ($387|0)==(0|0);
if ($388) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$9$i;
break;
}
$389 = HEAP32[$387>>2]|0;
$390 = ($389|0)>(-1);
if (!($390)) {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$9$i;
break;
}
$391 = ((($stack$9$i)) + 20|0);
$392 = HEAP32[$391>>2]|0;
$394 = $389;$tmp9$0138$i54 = $387;
while(1) {
$393 = (($392) + ($394<<2)|0);
HEAP32[$393>>2] = $pos$2$i;
$395 = ((($tmp9$0138$i54)) + 4|0);
$396 = HEAP32[$395>>2]|0;
$397 = ($396|0)>(-1);
if ($397) {
$394 = $396;$tmp9$0138$i54 = $395;
} else {
$next_state$1$i = $next_state$0147$i;$next_tags$6$i = $next_tags$5142$i;$stack$11$i = $stack$9$i;
break;
}
}
}
} while(0);
$398 = ((($trans_i$1144$i)) + 32|0);
$399 = ((($trans_i$1144$i)) + 40|0);
$400 = HEAP32[$399>>2]|0;
$401 = ($400|0)==(0|0);
if ($401) {
$next_state$1$i$lcssa = $next_state$1$i;$next_tags$6$i$lcssa = $next_tags$6$i;$stack$11$i$lcssa = $stack$11$i;
label = 170;
break;
} else {
$353 = $399;$next_state$0147$i = $next_state$1$i;$next_tags$5142$i = $next_tags$6$i;$stack$7143$i = $stack$11$i;$trans_i$1144$i = $398;
}
}
if ((label|0) == 148) {
label = 0;
___tre_mem_destroy($20);
if (!($49)) {
_free($tags$0$i);
}
if (!($50)) {
_free($pmatch$0$i);
}
if ($51) {
$$554$i = 1;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$5142$i$lcssa;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$7143$i$lcssa;$state$5$i = $state$2$i;$str_byte$6$i = $str_byte$3$i;
break;
}
_free($states_seen$0$ph$i);
$$554$i = 1;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$5142$i$lcssa;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$7143$i$lcssa;$state$5$i = $state$2$i;$str_byte$6$i = $str_byte$3$i;
break;
}
else if ((label|0) == 155) {
label = 0;
___tre_mem_destroy($20);
if (!($49)) {
_free($tags$0$i);
}
if (!($50)) {
_free($pmatch$0$i);
}
if ($51) {
$$554$i = 1;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$5142$i$lcssa146;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$7143$i$lcssa144;$state$5$i = $state$2$i;$str_byte$6$i = $str_byte$3$i;
break;
}
_free($states_seen$0$ph$i);
$$554$i = 1;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$5142$i$lcssa146;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$7143$i$lcssa144;$state$5$i = $state$2$i;$str_byte$6$i = $str_byte$3$i;
break;
}
else if ((label|0) == 170) {
label = 0;
$402 = ($next_state$1$i$lcssa|0)==(0|0);
if ($402) {
$match_eo$2$i = $match_eo$1$i;$next_tags$8$i = $next_tags$6$i$lcssa;$pos$3$i = $pos$2$i;$pos_add_next$7$i = $pos_add_next$6$i;$stack$12$i = $stack$11$i$lcssa;$state$3$i = $state$2$i;$str_byte$4$i = $str_byte$3$i;
label = 174;
continue L316;
}
$403 = ($next_tags$6$i$lcssa|0)==(0|0);
if ($403) {
$$554$i = 0;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = 0;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$11$i$lcssa;$state$5$i = $next_state$1$i$lcssa;$str_byte$6$i = $str_byte$3$i;
break;
}
$404 = HEAP32[$next_tags$6$i$lcssa>>2]|0;
$405 = ($404|0)>(-1);
if ($405) {
$408 = $404;$next_tags$7154$i = $next_tags$6$i$lcssa;
} else {
$$554$i = 0;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $next_tags$6$i$lcssa;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$11$i$lcssa;$state$5$i = $next_state$1$i$lcssa;$str_byte$6$i = $str_byte$3$i;
break;
}
while(1) {
$406 = ((($next_tags$7154$i)) + 4|0);
$407 = (($tags$0$i) + ($408<<2)|0);
HEAP32[$407>>2] = $pos$2$i;
$409 = HEAP32[$406>>2]|0;
$410 = ($409|0)>(-1);
if ($410) {
$408 = $409;$next_tags$7154$i = $406;
} else {
$$554$i = 0;$match_eo$4$i = $match_eo$1$i;$next_tags$10$i = $406;$pos$5$i = $pos$2$i;$pos_add_next$9$i = $pos_add_next$6$i;$stack$14$i = $stack$11$i$lcssa;$state$5$i = $next_state$1$i$lcssa;$str_byte$6$i = $str_byte$3$i;
break;
}
}
}
}
else if ((label|0) == 174) {
label = 0;
$411 = ((($stack$12$i)) + 24|0);
$412 = HEAP32[$411>>2]|0;
$413 = ($412|0)==(0|0);
if ($413) {
$436 = ($match_eo$2$i|0)>(-1);
$437 = HEAP32[$next_c$i>>2]|0;
$438 = ($437|0)==(0);
$or$cond58$i = $436 | $438;
if ($or$cond58$i) {
$$554$i = 27;$match_eo$4$i = $match_eo$2$i;$next_tags$10$i = $next_tags$8$i;$pos$5$i = $pos$3$i;$pos_add_next$9$i = $pos_add_next$7$i;$stack$14$i = $stack$12$i;$state$5$i = $state$3$i;$str_byte$6$i = $str_byte$4$i;
break;
}
HEAP32[$next_c$i>>2] = $69;
$$554$i = 3;$match_eo$4$i = $match_eo$2$i;$next_tags$10$i = $next_tags$8$i;$pos$5$i = $pos$3$i;$pos_add_next$9$i = $pos_add_next$7$i;$stack$14$i = $stack$12$i;$state$5$i = $state$3$i;$str_byte$6$i = $68;
break;
}
$414 = ((($stack$12$i)) + 8|0);
$415 = HEAP32[$414>>2]|0;
$416 = ((($415)) + 20|0);
$417 = HEAP32[$416>>2]|0;
$418 = $417 & 256;
$419 = ($418|0)==(0);
if (!($419)) {
$420 = ((($stack$12$i)) + 12|0);
$421 = HEAP32[$420>>2]|0;
$422 = (($states_seen$0$ph$i) + ($421<<2)|0);
HEAP32[$422>>2] = 0;
}
$423 = HEAP32[$stack$12$i>>2]|0;
$424 = ((($stack$12$i)) + 4|0);
$425 = HEAP32[$424>>2]|0;
$426 = ((($stack$12$i)) + 16|0);
$427 = HEAP32[$426>>2]|0;
HEAP32[$next_c$i>>2] = $427;
$428 = HEAP32[$6>>2]|0;
$429 = ($428|0)>(0);
if (!($429)) {
$$554$i = 0;$match_eo$4$i = $match_eo$2$i;$next_tags$10$i = $next_tags$8$i;$pos$5$i = $423;$pos_add_next$9$i = $pos_add_next$7$i;$stack$14$i = $412;$state$5$i = $415;$str_byte$6$i = $425;
break;
}
$430 = ((($stack$12$i)) + 20|0);
$431 = HEAP32[$430>>2]|0;
$i10$0130$i = 0;
while(1) {
$432 = (($431) + ($i10$0130$i<<2)|0);
$433 = HEAP32[$432>>2]|0;
$434 = (($tags$0$i) + ($i10$0130$i<<2)|0);
HEAP32[$434>>2] = $433;
$435 = (($i10$0130$i) + 1)|0;
$exitcond75 = ($435|0)==($428|0);
if ($exitcond75) {
$$554$i = 0;$match_eo$4$i = $match_eo$2$i;$next_tags$10$i = $next_tags$8$i;$pos$5$i = $423;$pos_add_next$9$i = $pos_add_next$7$i;$stack$14$i = $412;$state$5$i = $415;$str_byte$6$i = $425;
break;
} else {
$i10$0130$i = $435;
}
}
}
} while(0);
switch ($$554$i|0) {
case 2: {
$eo$0 = 0;$pmatch$1$i = $pmatch$0$i;$ret$7$i = 1;$states_seen$1$i = $states_seen$0$ph$i;$tags$1$i = $tags$0$i;
break L226;
break;
}
case 27: {
$match_eo$4$i$lcssa149 = $match_eo$4$i;
label = 184;
break L234;
break;
}
case 0: {
$match_eo$1$i = $match_eo$4$i;$next_tags$4$i = $next_tags$10$i;$pos$0$i = $pos$5$i;$pos_add_next$2$i = $pos_add_next$9$i;$stack$6$i = $stack$14$i;$state$2$i = $state$5$i;$str_byte$1$i = $str_byte$6$i;
label = 82;
break;
}
case 3: {
break L316;
break;
}
default: {
$$15$i = 12;$eo$1 = 0;
break L219;
}
}
}
$$pre$i = HEAP32[$6>>2]|0;
$52 = $$pre$i;$match_eo$0$i = $match_eo$4$i;$pos_add_next$0$i = $pos_add_next$9$i;$pos_start$0$i = $64;$stack$0$i = $stack$14$i;$str_byte$0$i = $str_byte$6$i;
}
if ((label|0) == 56) {
___tre_mem_destroy($20);
if (!($49)) {
_free($tags$0$i);
}
if (!($50)) {
_free($pmatch$0$i);
}
if ($51) {
$$15$i = 12;$eo$1 = 0;
break L219;
}
_free($states_seen$0$ph$i);
$$15$i = 12;$eo$1 = 0;
break L219;
}
else if ((label|0) == 63) {
___tre_mem_destroy($20);
if (!($49)) {
_free($tags$0$i);
}
if (!($50)) {
_free($pmatch$0$i);
}
if ($51) {
$$15$i = 12;$eo$1 = 0;
break L219;
}
_free($states_seen$0$ph$i);
$$15$i = 12;$eo$1 = 0;
break L219;
}
else if ((label|0) == 184) {
$match_eo$4$lobit$i = $match_eo$4$i$lcssa149 >>> 31;
$eo$0 = $match_eo$4$i$lcssa149;$pmatch$1$i = $pmatch$0$i;$ret$7$i = $match_eo$4$lobit$i;$states_seen$1$i = $states_seen$0$ph$i;$tags$1$i = $tags$0$i;
break;
}
}
} while(0);
___tre_mem_destroy($20);
$439 = ($tags$1$i|0)==(0|0);
if (!($439)) {
_free($tags$1$i);
}
$440 = ($pmatch$1$i|0)==(0|0);
if (!($440)) {
_free($pmatch$1$i);
}
$441 = ($states_seen$1$i|0)==(0|0);
if ($441) {
$$15$i = $ret$7$i;$eo$1 = $eo$0;
} else {
_free($states_seen$1$i);
$$15$i = $ret$7$i;$eo$1 = $eo$0;
}
}
} while(0);
$eo$4 = $eo$1;$status$0 = $$15$i;
}
$825 = ($status$0|0)==(0);
if ($825) {
$826 = HEAP32[$2>>2]|0;
_tre_fill_pmatch($nmatch$,$pmatch,$826,$1,$tags$0,$eo$4);
}
$827 = ($tags$0|0)==(0|0);
if ($827) {
$$0 = $status$0;
} else {
_free($tags$0);
$$0 = $status$0;
}
}
STACKTOP = sp;return ($$0|0);
}
function _tre_tag_order($num_tags,$tag_directions,$t1,$t2) {
$num_tags = $num_tags|0;
$tag_directions = $tag_directions|0;
$t1 = $t1|0;
$t2 = $t2|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$01 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($num_tags|0)>(0);
L1: do {
if ($0) {
$i$01 = 0;
while(1) {
$1 = (($tag_directions) + ($i$01<<2)|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==(0);
$4 = (($t1) + ($i$01<<2)|0);
$5 = HEAP32[$4>>2]|0;
$6 = (($t2) + ($i$01<<2)|0);
$7 = HEAP32[$6>>2]|0;
if ($3) {
$8 = ($5|0)<($7|0);
if ($8) {
$$0 = 1;
break L1;
}
$9 = ($5|0)>($7|0);
if ($9) {
$$0 = 0;
break L1;
}
} else {
$10 = ($5|0)>($7|0);
if ($10) {
$$0 = 1;
break L1;
}
$11 = ($5|0)<($7|0);
if ($11) {
$$0 = 0;
break L1;
}
}
$12 = (($i$01) + 1)|0;
$13 = ($12|0)<($num_tags|0);
if ($13) {
$i$01 = $12;
} else {
$$0 = 0;
break;
}
}
} else {
$$0 = 0;
}
} while(0);
return ($$0|0);
}
function _tre_fill_pmatch($nmatch,$pmatch,$cflags,$tnfa,$tags,$match_eo) {
$nmatch = $nmatch|0;
$pmatch = $pmatch|0;
$cflags = $cflags|0;
$tnfa = $tnfa|0;
$tags = $tags|0;
$match_eo = $match_eo|0;
var $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0;
var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $i$014 = 0, $i$19 = 0, $i$2$ph = 0, $i$25 = 0, $j$06 = 0, $or$cond = 0, $or$cond22 = 0, $or$cond3 = 0, $or$cond313 = 0, $or$cond4 = 0, $or$cond48 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($match_eo|0)>(-1);
$1 = $cflags & 8;
$2 = ($1|0)==(0);
$or$cond = $2 & $0;
if ($or$cond) {
$4 = ((($tnfa)) + 16|0);
$5 = HEAP32[$4>>2]|0;
$6 = ((($tnfa)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)!=(0);
$9 = ($nmatch|0)!=(0);
$or$cond313 = $9 & $8;
if ($or$cond313) {
$10 = ((($tnfa)) + 48|0);
$i$014 = 0;
while(1) {
$13 = (($5) + (($i$014*12)|0)|0);
$14 = HEAP32[$13>>2]|0;
$15 = HEAP32[$10>>2]|0;
$16 = ($14|0)==($15|0);
if ($16) {
$20 = $match_eo;
} else {
$17 = (($tags) + ($14<<2)|0);
$18 = HEAP32[$17>>2]|0;
$20 = $18;
}
$19 = (($pmatch) + ($i$014<<3)|0);
HEAP32[$19>>2] = $20;
$21 = (((($5) + (($i$014*12)|0)|0)) + 4|0);
$22 = HEAP32[$21>>2]|0;
$23 = HEAP32[$10>>2]|0;
$24 = ($22|0)==($23|0);
if ($24) {
$28 = $match_eo;
} else {
$25 = (($tags) + ($22<<2)|0);
$26 = HEAP32[$25>>2]|0;
$28 = $26;
}
$27 = (((($pmatch) + ($i$014<<3)|0)) + 4|0);
HEAP32[$27>>2] = $28;
$29 = ($20|0)==(-1);
$30 = ($28|0)==(-1);
$or$cond22 = $29 | $30;
if ($or$cond22) {
HEAP32[$27>>2] = -1;
HEAP32[$19>>2] = -1;
}
$31 = (($i$014) + 1)|0;
$32 = HEAP32[$6>>2]|0;
$33 = ($31>>>0)<($32>>>0);
$34 = ($31>>>0)<($nmatch>>>0);
$or$cond3 = $34 & $33;
if ($or$cond3) {
$i$014 = $31;
} else {
$11 = $32;
break;
}
}
} else {
$11 = $7;
}
$12 = ($11|0)!=(0);
$or$cond48 = $9 & $12;
if ($or$cond48) {
$i$19 = 0;
while(1) {
$35 = (((($pmatch) + ($i$19<<3)|0)) + 4|0);
$36 = (((($5) + (($i$19*12)|0)|0)) + 8|0);
$37 = HEAP32[$36>>2]|0;
$38 = ($37|0)==(0|0);
if (!($38)) {
$39 = HEAP32[$37>>2]|0;
$40 = ($39|0)>(-1);
if ($40) {
$41 = (($pmatch) + ($i$19<<3)|0);
$$pre = HEAP32[$41>>2]|0;
$43 = $39;$45 = $$pre;$j$06 = 0;
while(1) {
$42 = (($pmatch) + ($43<<3)|0);
$44 = HEAP32[$42>>2]|0;
$46 = ($45|0)<($44|0);
if ($46) {
label = 18;
} else {
$47 = HEAP32[$35>>2]|0;
$48 = (((($pmatch) + ($43<<3)|0)) + 4|0);
$49 = HEAP32[$48>>2]|0;
$50 = ($47|0)>($49|0);
if ($50) {
label = 18;
} else {
$61 = $45;
}
}
if ((label|0) == 18) {
label = 0;
HEAP32[$35>>2] = -1;
HEAP32[$41>>2] = -1;
$61 = -1;
}
$51 = (($j$06) + 1)|0;
$52 = (($37) + ($51<<2)|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($53|0)>(-1);
if ($54) {
$43 = $53;$45 = $61;$j$06 = $51;
} else {
break;
}
}
}
}
$55 = (($i$19) + 1)|0;
$56 = ($55>>>0)<($11>>>0);
$57 = ($55>>>0)<($nmatch>>>0);
$or$cond4 = $57 & $56;
if ($or$cond4) {
$i$19 = $55;
} else {
$i$2$ph = $55;
break;
}
}
} else {
$i$2$ph = 0;
}
} else {
$i$2$ph = 0;
}
$3 = ($i$2$ph>>>0)<($nmatch>>>0);
if ($3) {
$i$25 = $i$2$ph;
while(1) {
$58 = (($pmatch) + ($i$25<<3)|0);
HEAP32[$58>>2] = -1;
$59 = (((($pmatch) + ($i$25<<3)|0)) + 4|0);
HEAP32[$59>>2] = -1;
$60 = (($i$25) + 1)|0;
$exitcond = ($60|0)==($nmatch|0);
if ($exitcond) {
break;
} else {
$i$25 = $60;
}
}
}
return;
}
function _tre_neg_char_classes_match($classes,$wc,$icase) {
$classes = $classes|0;
$wc = $wc|0;
$icase = $icase|0;
var $$0 = 0, $$012 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$0 = HEAP32[$classes>>2]|0;
$1 = ($0|0)==(0);
L1: do {
if ($1) {
$$0 = 0;
} else {
$2 = ($icase|0)==(0);
$$012 = $classes;$3 = $0;
while(1) {
if ($2) {
$4 = (_iswctype($wc,$3)|0);
$5 = ($4|0)==(0);
if (!($5)) {
$$0 = 1;
break L1;
}
} else {
$6 = (_towupper($wc)|0);
$7 = HEAP32[$$012>>2]|0;
$8 = (_iswctype($6,$7)|0);
$9 = ($8|0)==(0);
if (!($9)) {
$$0 = 1;
break L1;
}
$10 = (_towlower($wc)|0);
$11 = HEAP32[$$012>>2]|0;
$12 = (_iswctype($10,$11)|0);
$13 = ($12|0)==(0);
if (!($13)) {
$$0 = 1;
break L1;
}
}
$14 = ((($$012)) + 4|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==(0);
if ($16) {
$$0 = 0;
break;
} else {
$$012 = $14;$3 = $15;
}
}
}
} while(0);
return ($$0|0);
}
function _malloc($bytes) {
$bytes = $bytes|0;
var $$0 = 0, $$lcssa = 0, $$lcssa141 = 0, $$lcssa142 = 0, $$lcssa144 = 0, $$lcssa147 = 0, $$lcssa149 = 0, $$lcssa151 = 0, $$lcssa153 = 0, $$lcssa155 = 0, $$lcssa157 = 0, $$not$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i13 = 0, $$pre$i16$i = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i14Z2D = 0, $$pre$phi$i17$iZ2D = 0;
var $$pre$phi$iZ2D = 0, $$pre$phi10$i$iZ2D = 0, $$pre$phiZ2D = 0, $$pre71 = 0, $$pre9$i$i = 0, $$rsize$0$i = 0, $$rsize$4$i = 0, $$v$0$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0;
var $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0;
var $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0;
var $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0;
var $1062 = 0, $1063 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0;
var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0;
var $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0;
var $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0;
var $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0;
var $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0;
var $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0;
var $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0;
var $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0;
var $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0;
var $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0;
var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0;
var $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0;
var $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0;
var $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0;
var $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0;
var $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0;
var $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0;
var $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0;
var $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0;
var $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0;
var $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0;
var $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0;
var $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0;
var $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0;
var $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0;
var $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0;
var $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0;
var $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0;
var $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0;
var $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0;
var $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0;
var $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0;
var $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0;
var $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0;
var $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0;
var $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0;
var $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0;
var $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0;
var $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0;
var $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0;
var $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0;
var $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0;
var $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0;
var $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0;
var $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0;
var $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0;
var $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0;
var $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0;
var $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0, $F5$0$i = 0, $I1$0$i$i = 0, $I7$0$i = 0, $I7$0$i$i = 0;
var $K12$0$i = 0, $K2$0$i$i = 0, $K8$0$i$i = 0, $R$1$i = 0, $R$1$i$i = 0, $R$1$i$i$lcssa = 0, $R$1$i$lcssa = 0, $R$1$i9 = 0, $R$1$i9$lcssa = 0, $R$3$i = 0, $R$3$i$i = 0, $R$3$i11 = 0, $RP$1$i = 0, $RP$1$i$i = 0, $RP$1$i$i$lcssa = 0, $RP$1$i$lcssa = 0, $RP$1$i8 = 0, $RP$1$i8$lcssa = 0, $T$0$i = 0, $T$0$i$i = 0;
var $T$0$i$i$lcssa = 0, $T$0$i$i$lcssa140 = 0, $T$0$i$lcssa = 0, $T$0$i$lcssa156 = 0, $T$0$i18$i = 0, $T$0$i18$i$lcssa = 0, $T$0$i18$i$lcssa139 = 0, $br$2$ph$i = 0, $cond$i = 0, $cond$i$i = 0, $cond$i12 = 0, $exitcond$i$i = 0, $i$01$i$i = 0, $idx$0$i = 0, $nb$0 = 0, $not$$i$i = 0, $not$$i20$i = 0, $not$7$i = 0, $oldfirst$0$i$i = 0, $or$cond$i = 0;
var $or$cond$i17 = 0, $or$cond1$i = 0, $or$cond1$i16 = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond2$i = 0, $or$cond48$i = 0, $or$cond5$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $p$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$lcssa = 0, $rsize$0$i5 = 0, $rsize$1$i = 0, $rsize$3$i = 0, $rsize$4$lcssa$i = 0, $rsize$412$i = 0, $rst$0$i = 0;
var $rst$1$i = 0, $sizebits$0$$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$068$i = 0, $sp$068$i$lcssa = 0, $sp$167$i = 0, $sp$167$i$lcssa = 0, $ssize$0$i = 0, $ssize$2$ph$i = 0, $ssize$5$i = 0, $t$0$i = 0, $t$0$i4 = 0, $t$2$i = 0, $t$4$ph$i = 0, $t$4$v$4$i = 0, $t$411$i = 0, $tbase$746$i = 0, $tsize$745$i = 0;
var $v$0$i = 0, $v$0$i$lcssa = 0, $v$0$i6 = 0, $v$1$i = 0, $v$3$i = 0, $v$4$lcssa$i = 0, $v$413$i = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($bytes>>>0)<(245);
do {
if ($0) {
$1 = ($bytes>>>0)<(11);
$2 = (($bytes) + 11)|0;
$3 = $2 & -8;
$4 = $1 ? 16 : $3;
$5 = $4 >>> 3;
$6 = HEAP32[17795]|0;
$7 = $6 >>> $5;
$8 = $7 & 3;
$9 = ($8|0)==(0);
if (!($9)) {
$10 = $7 & 1;
$11 = $10 ^ 1;
$12 = (($11) + ($5))|0;
$13 = $12 << 1;
$14 = (71220 + ($13<<2)|0);
$15 = ((($14)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($14|0)==($18|0);
do {
if ($19) {
$20 = 1 << $12;
$21 = $20 ^ -1;
$22 = $6 & $21;
HEAP32[17795] = $22;
} else {
$23 = HEAP32[(71196)>>2]|0;
$24 = ($18>>>0)<($23>>>0);
if ($24) {
_abort();
// unreachable;
}
$25 = ((($18)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = ($26|0)==($16|0);
if ($27) {
HEAP32[$25>>2] = $14;
HEAP32[$15>>2] = $18;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$28 = $12 << 3;
$29 = $28 | 3;
$30 = ((($16)) + 4|0);
HEAP32[$30>>2] = $29;
$31 = (($16) + ($28)|0);
$32 = ((($31)) + 4|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 | 1;
HEAP32[$32>>2] = $34;
$$0 = $17;
return ($$0|0);
}
$35 = HEAP32[(71188)>>2]|0;
$36 = ($4>>>0)>($35>>>0);
if ($36) {
$37 = ($7|0)==(0);
if (!($37)) {
$38 = $7 << $5;
$39 = 2 << $5;
$40 = (0 - ($39))|0;
$41 = $39 | $40;
$42 = $38 & $41;
$43 = (0 - ($42))|0;
$44 = $42 & $43;
$45 = (($44) + -1)|0;
$46 = $45 >>> 12;
$47 = $46 & 16;
$48 = $45 >>> $47;
$49 = $48 >>> 5;
$50 = $49 & 8;
$51 = $50 | $47;
$52 = $48 >>> $50;
$53 = $52 >>> 2;
$54 = $53 & 4;
$55 = $51 | $54;
$56 = $52 >>> $54;
$57 = $56 >>> 1;
$58 = $57 & 2;
$59 = $55 | $58;
$60 = $56 >>> $58;
$61 = $60 >>> 1;
$62 = $61 & 1;
$63 = $59 | $62;
$64 = $60 >>> $62;
$65 = (($63) + ($64))|0;
$66 = $65 << 1;
$67 = (71220 + ($66<<2)|0);
$68 = ((($67)) + 8|0);
$69 = HEAP32[$68>>2]|0;
$70 = ((($69)) + 8|0);
$71 = HEAP32[$70>>2]|0;
$72 = ($67|0)==($71|0);
do {
if ($72) {
$73 = 1 << $65;
$74 = $73 ^ -1;
$75 = $6 & $74;
HEAP32[17795] = $75;
$89 = $35;
} else {
$76 = HEAP32[(71196)>>2]|0;
$77 = ($71>>>0)<($76>>>0);
if ($77) {
_abort();
// unreachable;
}
$78 = ((($71)) + 12|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($79|0)==($69|0);
if ($80) {
HEAP32[$78>>2] = $67;
HEAP32[$68>>2] = $71;
$$pre = HEAP32[(71188)>>2]|0;
$89 = $$pre;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$81 = $65 << 3;
$82 = (($81) - ($4))|0;
$83 = $4 | 3;
$84 = ((($69)) + 4|0);
HEAP32[$84>>2] = $83;
$85 = (($69) + ($4)|0);
$86 = $82 | 1;
$87 = ((($85)) + 4|0);
HEAP32[$87>>2] = $86;
$88 = (($85) + ($82)|0);
HEAP32[$88>>2] = $82;
$90 = ($89|0)==(0);
if (!($90)) {
$91 = HEAP32[(71200)>>2]|0;
$92 = $89 >>> 3;
$93 = $92 << 1;
$94 = (71220 + ($93<<2)|0);
$95 = HEAP32[17795]|0;
$96 = 1 << $92;
$97 = $95 & $96;
$98 = ($97|0)==(0);
if ($98) {
$99 = $95 | $96;
HEAP32[17795] = $99;
$$pre71 = ((($94)) + 8|0);
$$pre$phiZ2D = $$pre71;$F4$0 = $94;
} else {
$100 = ((($94)) + 8|0);
$101 = HEAP32[$100>>2]|0;
$102 = HEAP32[(71196)>>2]|0;
$103 = ($101>>>0)<($102>>>0);
if ($103) {
_abort();
// unreachable;
} else {
$$pre$phiZ2D = $100;$F4$0 = $101;
}
}
HEAP32[$$pre$phiZ2D>>2] = $91;
$104 = ((($F4$0)) + 12|0);
HEAP32[$104>>2] = $91;
$105 = ((($91)) + 8|0);
HEAP32[$105>>2] = $F4$0;
$106 = ((($91)) + 12|0);
HEAP32[$106>>2] = $94;
}
HEAP32[(71188)>>2] = $82;
HEAP32[(71200)>>2] = $85;
$$0 = $70;
return ($$0|0);
}
$107 = HEAP32[(71184)>>2]|0;
$108 = ($107|0)==(0);
if ($108) {
$nb$0 = $4;
} else {
$109 = (0 - ($107))|0;
$110 = $107 & $109;
$111 = (($110) + -1)|0;
$112 = $111 >>> 12;
$113 = $112 & 16;
$114 = $111 >>> $113;
$115 = $114 >>> 5;
$116 = $115 & 8;
$117 = $116 | $113;
$118 = $114 >>> $116;
$119 = $118 >>> 2;
$120 = $119 & 4;
$121 = $117 | $120;
$122 = $118 >>> $120;
$123 = $122 >>> 1;
$124 = $123 & 2;
$125 = $121 | $124;
$126 = $122 >>> $124;
$127 = $126 >>> 1;
$128 = $127 & 1;
$129 = $125 | $128;
$130 = $126 >>> $128;
$131 = (($129) + ($130))|0;
$132 = (71484 + ($131<<2)|0);
$133 = HEAP32[$132>>2]|0;
$134 = ((($133)) + 4|0);
$135 = HEAP32[$134>>2]|0;
$136 = $135 & -8;
$137 = (($136) - ($4))|0;
$rsize$0$i = $137;$t$0$i = $133;$v$0$i = $133;
while(1) {
$138 = ((($t$0$i)) + 16|0);
$139 = HEAP32[$138>>2]|0;
$140 = ($139|0)==(0|0);
if ($140) {
$141 = ((($t$0$i)) + 20|0);
$142 = HEAP32[$141>>2]|0;
$143 = ($142|0)==(0|0);
if ($143) {
$rsize$0$i$lcssa = $rsize$0$i;$v$0$i$lcssa = $v$0$i;
break;
} else {
$145 = $142;
}
} else {
$145 = $139;
}
$144 = ((($145)) + 4|0);
$146 = HEAP32[$144>>2]|0;
$147 = $146 & -8;
$148 = (($147) - ($4))|0;
$149 = ($148>>>0)<($rsize$0$i>>>0);
$$rsize$0$i = $149 ? $148 : $rsize$0$i;
$$v$0$i = $149 ? $145 : $v$0$i;
$rsize$0$i = $$rsize$0$i;$t$0$i = $145;$v$0$i = $$v$0$i;
}
$150 = HEAP32[(71196)>>2]|0;
$151 = ($v$0$i$lcssa>>>0)<($150>>>0);
if ($151) {
_abort();
// unreachable;
}
$152 = (($v$0$i$lcssa) + ($4)|0);
$153 = ($v$0$i$lcssa>>>0)<($152>>>0);
if (!($153)) {
_abort();
// unreachable;
}
$154 = ((($v$0$i$lcssa)) + 24|0);
$155 = HEAP32[$154>>2]|0;
$156 = ((($v$0$i$lcssa)) + 12|0);
$157 = HEAP32[$156>>2]|0;
$158 = ($157|0)==($v$0$i$lcssa|0);
do {
if ($158) {
$168 = ((($v$0$i$lcssa)) + 20|0);
$169 = HEAP32[$168>>2]|0;
$170 = ($169|0)==(0|0);
if ($170) {
$171 = ((($v$0$i$lcssa)) + 16|0);
$172 = HEAP32[$171>>2]|0;
$173 = ($172|0)==(0|0);
if ($173) {
$R$3$i = 0;
break;
} else {
$R$1$i = $172;$RP$1$i = $171;
}
} else {
$R$1$i = $169;$RP$1$i = $168;
}
while(1) {
$174 = ((($R$1$i)) + 20|0);
$175 = HEAP32[$174>>2]|0;
$176 = ($175|0)==(0|0);
if (!($176)) {
$R$1$i = $175;$RP$1$i = $174;
continue;
}
$177 = ((($R$1$i)) + 16|0);
$178 = HEAP32[$177>>2]|0;
$179 = ($178|0)==(0|0);
if ($179) {
$R$1$i$lcssa = $R$1$i;$RP$1$i$lcssa = $RP$1$i;
break;
} else {
$R$1$i = $178;$RP$1$i = $177;
}
}
$180 = ($RP$1$i$lcssa>>>0)<($150>>>0);
if ($180) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$i$lcssa>>2] = 0;
$R$3$i = $R$1$i$lcssa;
break;
}
} else {
$159 = ((($v$0$i$lcssa)) + 8|0);
$160 = HEAP32[$159>>2]|0;
$161 = ($160>>>0)<($150>>>0);
if ($161) {
_abort();
// unreachable;
}
$162 = ((($160)) + 12|0);
$163 = HEAP32[$162>>2]|0;
$164 = ($163|0)==($v$0$i$lcssa|0);
if (!($164)) {
_abort();
// unreachable;
}
$165 = ((($157)) + 8|0);
$166 = HEAP32[$165>>2]|0;
$167 = ($166|0)==($v$0$i$lcssa|0);
if ($167) {
HEAP32[$162>>2] = $157;
HEAP32[$165>>2] = $160;
$R$3$i = $157;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$181 = ($155|0)==(0|0);
do {
if (!($181)) {
$182 = ((($v$0$i$lcssa)) + 28|0);
$183 = HEAP32[$182>>2]|0;
$184 = (71484 + ($183<<2)|0);
$185 = HEAP32[$184>>2]|0;
$186 = ($v$0$i$lcssa|0)==($185|0);
if ($186) {
HEAP32[$184>>2] = $R$3$i;
$cond$i = ($R$3$i|0)==(0|0);
if ($cond$i) {
$187 = 1 << $183;
$188 = $187 ^ -1;
$189 = HEAP32[(71184)>>2]|0;
$190 = $189 & $188;
HEAP32[(71184)>>2] = $190;
break;
}
} else {
$191 = HEAP32[(71196)>>2]|0;
$192 = ($155>>>0)<($191>>>0);
if ($192) {
_abort();
// unreachable;
}
$193 = ((($155)) + 16|0);
$194 = HEAP32[$193>>2]|0;
$195 = ($194|0)==($v$0$i$lcssa|0);
if ($195) {
HEAP32[$193>>2] = $R$3$i;
} else {
$196 = ((($155)) + 20|0);
HEAP32[$196>>2] = $R$3$i;
}
$197 = ($R$3$i|0)==(0|0);
if ($197) {
break;
}
}
$198 = HEAP32[(71196)>>2]|0;
$199 = ($R$3$i>>>0)<($198>>>0);
if ($199) {
_abort();
// unreachable;
}
$200 = ((($R$3$i)) + 24|0);
HEAP32[$200>>2] = $155;
$201 = ((($v$0$i$lcssa)) + 16|0);
$202 = HEAP32[$201>>2]|0;
$203 = ($202|0)==(0|0);
do {
if (!($203)) {
$204 = ($202>>>0)<($198>>>0);
if ($204) {
_abort();
// unreachable;
} else {
$205 = ((($R$3$i)) + 16|0);
HEAP32[$205>>2] = $202;
$206 = ((($202)) + 24|0);
HEAP32[$206>>2] = $R$3$i;
break;
}
}
} while(0);
$207 = ((($v$0$i$lcssa)) + 20|0);
$208 = HEAP32[$207>>2]|0;
$209 = ($208|0)==(0|0);
if (!($209)) {
$210 = HEAP32[(71196)>>2]|0;
$211 = ($208>>>0)<($210>>>0);
if ($211) {
_abort();
// unreachable;
} else {
$212 = ((($R$3$i)) + 20|0);
HEAP32[$212>>2] = $208;
$213 = ((($208)) + 24|0);
HEAP32[$213>>2] = $R$3$i;
break;
}
}
}
} while(0);
$214 = ($rsize$0$i$lcssa>>>0)<(16);
if ($214) {
$215 = (($rsize$0$i$lcssa) + ($4))|0;
$216 = $215 | 3;
$217 = ((($v$0$i$lcssa)) + 4|0);
HEAP32[$217>>2] = $216;
$218 = (($v$0$i$lcssa) + ($215)|0);
$219 = ((($218)) + 4|0);
$220 = HEAP32[$219>>2]|0;
$221 = $220 | 1;
HEAP32[$219>>2] = $221;
} else {
$222 = $4 | 3;
$223 = ((($v$0$i$lcssa)) + 4|0);
HEAP32[$223>>2] = $222;
$224 = $rsize$0$i$lcssa | 1;
$225 = ((($152)) + 4|0);
HEAP32[$225>>2] = $224;
$226 = (($152) + ($rsize$0$i$lcssa)|0);
HEAP32[$226>>2] = $rsize$0$i$lcssa;
$227 = HEAP32[(71188)>>2]|0;
$228 = ($227|0)==(0);
if (!($228)) {
$229 = HEAP32[(71200)>>2]|0;
$230 = $227 >>> 3;
$231 = $230 << 1;
$232 = (71220 + ($231<<2)|0);
$233 = HEAP32[17795]|0;
$234 = 1 << $230;
$235 = $233 & $234;
$236 = ($235|0)==(0);
if ($236) {
$237 = $233 | $234;
HEAP32[17795] = $237;
$$pre$i = ((($232)) + 8|0);
$$pre$phi$iZ2D = $$pre$i;$F1$0$i = $232;
} else {
$238 = ((($232)) + 8|0);
$239 = HEAP32[$238>>2]|0;
$240 = HEAP32[(71196)>>2]|0;
$241 = ($239>>>0)<($240>>>0);
if ($241) {
_abort();
// unreachable;
} else {
$$pre$phi$iZ2D = $238;$F1$0$i = $239;
}
}
HEAP32[$$pre$phi$iZ2D>>2] = $229;
$242 = ((($F1$0$i)) + 12|0);
HEAP32[$242>>2] = $229;
$243 = ((($229)) + 8|0);
HEAP32[$243>>2] = $F1$0$i;
$244 = ((($229)) + 12|0);
HEAP32[$244>>2] = $232;
}
HEAP32[(71188)>>2] = $rsize$0$i$lcssa;
HEAP32[(71200)>>2] = $152;
}
$245 = ((($v$0$i$lcssa)) + 8|0);
$$0 = $245;
return ($$0|0);
}
} else {
$nb$0 = $4;
}
} else {
$246 = ($bytes>>>0)>(4294967231);
if ($246) {
$nb$0 = -1;
} else {
$247 = (($bytes) + 11)|0;
$248 = $247 & -8;
$249 = HEAP32[(71184)>>2]|0;
$250 = ($249|0)==(0);
if ($250) {
$nb$0 = $248;
} else {
$251 = (0 - ($248))|0;
$252 = $247 >>> 8;
$253 = ($252|0)==(0);
if ($253) {
$idx$0$i = 0;
} else {
$254 = ($248>>>0)>(16777215);
if ($254) {
$idx$0$i = 31;
} else {
$255 = (($252) + 1048320)|0;
$256 = $255 >>> 16;
$257 = $256 & 8;
$258 = $252 << $257;
$259 = (($258) + 520192)|0;
$260 = $259 >>> 16;
$261 = $260 & 4;
$262 = $261 | $257;
$263 = $258 << $261;
$264 = (($263) + 245760)|0;
$265 = $264 >>> 16;
$266 = $265 & 2;
$267 = $262 | $266;
$268 = (14 - ($267))|0;
$269 = $263 << $266;
$270 = $269 >>> 15;
$271 = (($268) + ($270))|0;
$272 = $271 << 1;
$273 = (($271) + 7)|0;
$274 = $248 >>> $273;
$275 = $274 & 1;
$276 = $275 | $272;
$idx$0$i = $276;
}
}
$277 = (71484 + ($idx$0$i<<2)|0);
$278 = HEAP32[$277>>2]|0;
$279 = ($278|0)==(0|0);
L123: do {
if ($279) {
$rsize$3$i = $251;$t$2$i = 0;$v$3$i = 0;
label = 86;
} else {
$280 = ($idx$0$i|0)==(31);
$281 = $idx$0$i >>> 1;
$282 = (25 - ($281))|0;
$283 = $280 ? 0 : $282;
$284 = $248 << $283;
$rsize$0$i5 = $251;$rst$0$i = 0;$sizebits$0$i = $284;$t$0$i4 = $278;$v$0$i6 = 0;
while(1) {
$285 = ((($t$0$i4)) + 4|0);
$286 = HEAP32[$285>>2]|0;
$287 = $286 & -8;
$288 = (($287) - ($248))|0;
$289 = ($288>>>0)<($rsize$0$i5>>>0);
if ($289) {
$290 = ($287|0)==($248|0);
if ($290) {
$rsize$412$i = $288;$t$411$i = $t$0$i4;$v$413$i = $t$0$i4;
label = 90;
break L123;
} else {
$rsize$1$i = $288;$v$1$i = $t$0$i4;
}
} else {
$rsize$1$i = $rsize$0$i5;$v$1$i = $v$0$i6;
}
$291 = ((($t$0$i4)) + 20|0);
$292 = HEAP32[$291>>2]|0;
$293 = $sizebits$0$i >>> 31;
$294 = (((($t$0$i4)) + 16|0) + ($293<<2)|0);
$295 = HEAP32[$294>>2]|0;
$296 = ($292|0)==(0|0);
$297 = ($292|0)==($295|0);
$or$cond1$i = $296 | $297;
$rst$1$i = $or$cond1$i ? $rst$0$i : $292;
$298 = ($295|0)==(0|0);
$299 = $298&1;
$300 = $299 ^ 1;
$sizebits$0$$i = $sizebits$0$i << $300;
if ($298) {
$rsize$3$i = $rsize$1$i;$t$2$i = $rst$1$i;$v$3$i = $v$1$i;
label = 86;
break;
} else {
$rsize$0$i5 = $rsize$1$i;$rst$0$i = $rst$1$i;$sizebits$0$i = $sizebits$0$$i;$t$0$i4 = $295;$v$0$i6 = $v$1$i;
}
}
}
} while(0);
if ((label|0) == 86) {
$301 = ($t$2$i|0)==(0|0);
$302 = ($v$3$i|0)==(0|0);
$or$cond$i = $301 & $302;
if ($or$cond$i) {
$303 = 2 << $idx$0$i;
$304 = (0 - ($303))|0;
$305 = $303 | $304;
$306 = $249 & $305;
$307 = ($306|0)==(0);
if ($307) {
$nb$0 = $248;
break;
}
$308 = (0 - ($306))|0;
$309 = $306 & $308;
$310 = (($309) + -1)|0;
$311 = $310 >>> 12;
$312 = $311 & 16;
$313 = $310 >>> $312;
$314 = $313 >>> 5;
$315 = $314 & 8;
$316 = $315 | $312;
$317 = $313 >>> $315;
$318 = $317 >>> 2;
$319 = $318 & 4;
$320 = $316 | $319;
$321 = $317 >>> $319;
$322 = $321 >>> 1;
$323 = $322 & 2;
$324 = $320 | $323;
$325 = $321 >>> $323;
$326 = $325 >>> 1;
$327 = $326 & 1;
$328 = $324 | $327;
$329 = $325 >>> $327;
$330 = (($328) + ($329))|0;
$331 = (71484 + ($330<<2)|0);
$332 = HEAP32[$331>>2]|0;
$t$4$ph$i = $332;
} else {
$t$4$ph$i = $t$2$i;
}
$333 = ($t$4$ph$i|0)==(0|0);
if ($333) {
$rsize$4$lcssa$i = $rsize$3$i;$v$4$lcssa$i = $v$3$i;
} else {
$rsize$412$i = $rsize$3$i;$t$411$i = $t$4$ph$i;$v$413$i = $v$3$i;
label = 90;
}
}
if ((label|0) == 90) {
while(1) {
label = 0;
$334 = ((($t$411$i)) + 4|0);
$335 = HEAP32[$334>>2]|0;
$336 = $335 & -8;
$337 = (($336) - ($248))|0;
$338 = ($337>>>0)<($rsize$412$i>>>0);
$$rsize$4$i = $338 ? $337 : $rsize$412$i;
$t$4$v$4$i = $338 ? $t$411$i : $v$413$i;
$339 = ((($t$411$i)) + 16|0);
$340 = HEAP32[$339>>2]|0;
$341 = ($340|0)==(0|0);
if (!($341)) {
$rsize$412$i = $$rsize$4$i;$t$411$i = $340;$v$413$i = $t$4$v$4$i;
label = 90;
continue;
}
$342 = ((($t$411$i)) + 20|0);
$343 = HEAP32[$342>>2]|0;
$344 = ($343|0)==(0|0);
if ($344) {
$rsize$4$lcssa$i = $$rsize$4$i;$v$4$lcssa$i = $t$4$v$4$i;
break;
} else {
$rsize$412$i = $$rsize$4$i;$t$411$i = $343;$v$413$i = $t$4$v$4$i;
label = 90;
}
}
}
$345 = ($v$4$lcssa$i|0)==(0|0);
if ($345) {
$nb$0 = $248;
} else {
$346 = HEAP32[(71188)>>2]|0;
$347 = (($346) - ($248))|0;
$348 = ($rsize$4$lcssa$i>>>0)<($347>>>0);
if ($348) {
$349 = HEAP32[(71196)>>2]|0;
$350 = ($v$4$lcssa$i>>>0)<($349>>>0);
if ($350) {
_abort();
// unreachable;
}
$351 = (($v$4$lcssa$i) + ($248)|0);
$352 = ($v$4$lcssa$i>>>0)<($351>>>0);
if (!($352)) {
_abort();
// unreachable;
}
$353 = ((($v$4$lcssa$i)) + 24|0);
$354 = HEAP32[$353>>2]|0;
$355 = ((($v$4$lcssa$i)) + 12|0);
$356 = HEAP32[$355>>2]|0;
$357 = ($356|0)==($v$4$lcssa$i|0);
do {
if ($357) {
$367 = ((($v$4$lcssa$i)) + 20|0);
$368 = HEAP32[$367>>2]|0;
$369 = ($368|0)==(0|0);
if ($369) {
$370 = ((($v$4$lcssa$i)) + 16|0);
$371 = HEAP32[$370>>2]|0;
$372 = ($371|0)==(0|0);
if ($372) {
$R$3$i11 = 0;
break;
} else {
$R$1$i9 = $371;$RP$1$i8 = $370;
}
} else {
$R$1$i9 = $368;$RP$1$i8 = $367;
}
while(1) {
$373 = ((($R$1$i9)) + 20|0);
$374 = HEAP32[$373>>2]|0;
$375 = ($374|0)==(0|0);
if (!($375)) {
$R$1$i9 = $374;$RP$1$i8 = $373;
continue;
}
$376 = ((($R$1$i9)) + 16|0);
$377 = HEAP32[$376>>2]|0;
$378 = ($377|0)==(0|0);
if ($378) {
$R$1$i9$lcssa = $R$1$i9;$RP$1$i8$lcssa = $RP$1$i8;
break;
} else {
$R$1$i9 = $377;$RP$1$i8 = $376;
}
}
$379 = ($RP$1$i8$lcssa>>>0)<($349>>>0);
if ($379) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$i8$lcssa>>2] = 0;
$R$3$i11 = $R$1$i9$lcssa;
break;
}
} else {
$358 = ((($v$4$lcssa$i)) + 8|0);
$359 = HEAP32[$358>>2]|0;
$360 = ($359>>>0)<($349>>>0);
if ($360) {
_abort();
// unreachable;
}
$361 = ((($359)) + 12|0);
$362 = HEAP32[$361>>2]|0;
$363 = ($362|0)==($v$4$lcssa$i|0);
if (!($363)) {
_abort();
// unreachable;
}
$364 = ((($356)) + 8|0);
$365 = HEAP32[$364>>2]|0;
$366 = ($365|0)==($v$4$lcssa$i|0);
if ($366) {
HEAP32[$361>>2] = $356;
HEAP32[$364>>2] = $359;
$R$3$i11 = $356;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$380 = ($354|0)==(0|0);
do {
if (!($380)) {
$381 = ((($v$4$lcssa$i)) + 28|0);
$382 = HEAP32[$381>>2]|0;
$383 = (71484 + ($382<<2)|0);
$384 = HEAP32[$383>>2]|0;
$385 = ($v$4$lcssa$i|0)==($384|0);
if ($385) {
HEAP32[$383>>2] = $R$3$i11;
$cond$i12 = ($R$3$i11|0)==(0|0);
if ($cond$i12) {
$386 = 1 << $382;
$387 = $386 ^ -1;
$388 = HEAP32[(71184)>>2]|0;
$389 = $388 & $387;
HEAP32[(71184)>>2] = $389;
break;
}
} else {
$390 = HEAP32[(71196)>>2]|0;
$391 = ($354>>>0)<($390>>>0);
if ($391) {
_abort();
// unreachable;
}
$392 = ((($354)) + 16|0);
$393 = HEAP32[$392>>2]|0;
$394 = ($393|0)==($v$4$lcssa$i|0);
if ($394) {
HEAP32[$392>>2] = $R$3$i11;
} else {
$395 = ((($354)) + 20|0);
HEAP32[$395>>2] = $R$3$i11;
}
$396 = ($R$3$i11|0)==(0|0);
if ($396) {
break;
}
}
$397 = HEAP32[(71196)>>2]|0;
$398 = ($R$3$i11>>>0)<($397>>>0);
if ($398) {
_abort();
// unreachable;
}
$399 = ((($R$3$i11)) + 24|0);
HEAP32[$399>>2] = $354;
$400 = ((($v$4$lcssa$i)) + 16|0);
$401 = HEAP32[$400>>2]|0;
$402 = ($401|0)==(0|0);
do {
if (!($402)) {
$403 = ($401>>>0)<($397>>>0);
if ($403) {
_abort();
// unreachable;
} else {
$404 = ((($R$3$i11)) + 16|0);
HEAP32[$404>>2] = $401;
$405 = ((($401)) + 24|0);
HEAP32[$405>>2] = $R$3$i11;
break;
}
}
} while(0);
$406 = ((($v$4$lcssa$i)) + 20|0);
$407 = HEAP32[$406>>2]|0;
$408 = ($407|0)==(0|0);
if (!($408)) {
$409 = HEAP32[(71196)>>2]|0;
$410 = ($407>>>0)<($409>>>0);
if ($410) {
_abort();
// unreachable;
} else {
$411 = ((($R$3$i11)) + 20|0);
HEAP32[$411>>2] = $407;
$412 = ((($407)) + 24|0);
HEAP32[$412>>2] = $R$3$i11;
break;
}
}
}
} while(0);
$413 = ($rsize$4$lcssa$i>>>0)<(16);
do {
if ($413) {
$414 = (($rsize$4$lcssa$i) + ($248))|0;
$415 = $414 | 3;
$416 = ((($v$4$lcssa$i)) + 4|0);
HEAP32[$416>>2] = $415;
$417 = (($v$4$lcssa$i) + ($414)|0);
$418 = ((($417)) + 4|0);
$419 = HEAP32[$418>>2]|0;
$420 = $419 | 1;
HEAP32[$418>>2] = $420;
} else {
$421 = $248 | 3;
$422 = ((($v$4$lcssa$i)) + 4|0);
HEAP32[$422>>2] = $421;
$423 = $rsize$4$lcssa$i | 1;
$424 = ((($351)) + 4|0);
HEAP32[$424>>2] = $423;
$425 = (($351) + ($rsize$4$lcssa$i)|0);
HEAP32[$425>>2] = $rsize$4$lcssa$i;
$426 = $rsize$4$lcssa$i >>> 3;
$427 = ($rsize$4$lcssa$i>>>0)<(256);
if ($427) {
$428 = $426 << 1;
$429 = (71220 + ($428<<2)|0);
$430 = HEAP32[17795]|0;
$431 = 1 << $426;
$432 = $430 & $431;
$433 = ($432|0)==(0);
if ($433) {
$434 = $430 | $431;
HEAP32[17795] = $434;
$$pre$i13 = ((($429)) + 8|0);
$$pre$phi$i14Z2D = $$pre$i13;$F5$0$i = $429;
} else {
$435 = ((($429)) + 8|0);
$436 = HEAP32[$435>>2]|0;
$437 = HEAP32[(71196)>>2]|0;
$438 = ($436>>>0)<($437>>>0);
if ($438) {
_abort();
// unreachable;
} else {
$$pre$phi$i14Z2D = $435;$F5$0$i = $436;
}
}
HEAP32[$$pre$phi$i14Z2D>>2] = $351;
$439 = ((($F5$0$i)) + 12|0);
HEAP32[$439>>2] = $351;
$440 = ((($351)) + 8|0);
HEAP32[$440>>2] = $F5$0$i;
$441 = ((($351)) + 12|0);
HEAP32[$441>>2] = $429;
break;
}
$442 = $rsize$4$lcssa$i >>> 8;
$443 = ($442|0)==(0);
if ($443) {
$I7$0$i = 0;
} else {
$444 = ($rsize$4$lcssa$i>>>0)>(16777215);
if ($444) {
$I7$0$i = 31;
} else {
$445 = (($442) + 1048320)|0;
$446 = $445 >>> 16;
$447 = $446 & 8;
$448 = $442 << $447;
$449 = (($448) + 520192)|0;
$450 = $449 >>> 16;
$451 = $450 & 4;
$452 = $451 | $447;
$453 = $448 << $451;
$454 = (($453) + 245760)|0;
$455 = $454 >>> 16;
$456 = $455 & 2;
$457 = $452 | $456;
$458 = (14 - ($457))|0;
$459 = $453 << $456;
$460 = $459 >>> 15;
$461 = (($458) + ($460))|0;
$462 = $461 << 1;
$463 = (($461) + 7)|0;
$464 = $rsize$4$lcssa$i >>> $463;
$465 = $464 & 1;
$466 = $465 | $462;
$I7$0$i = $466;
}
}
$467 = (71484 + ($I7$0$i<<2)|0);
$468 = ((($351)) + 28|0);
HEAP32[$468>>2] = $I7$0$i;
$469 = ((($351)) + 16|0);
$470 = ((($469)) + 4|0);
HEAP32[$470>>2] = 0;
HEAP32[$469>>2] = 0;
$471 = HEAP32[(71184)>>2]|0;
$472 = 1 << $I7$0$i;
$473 = $471 & $472;
$474 = ($473|0)==(0);
if ($474) {
$475 = $471 | $472;
HEAP32[(71184)>>2] = $475;
HEAP32[$467>>2] = $351;
$476 = ((($351)) + 24|0);
HEAP32[$476>>2] = $467;
$477 = ((($351)) + 12|0);
HEAP32[$477>>2] = $351;
$478 = ((($351)) + 8|0);
HEAP32[$478>>2] = $351;
break;
}
$479 = HEAP32[$467>>2]|0;
$480 = ($I7$0$i|0)==(31);
$481 = $I7$0$i >>> 1;
$482 = (25 - ($481))|0;
$483 = $480 ? 0 : $482;
$484 = $rsize$4$lcssa$i << $483;
$K12$0$i = $484;$T$0$i = $479;
while(1) {
$485 = ((($T$0$i)) + 4|0);
$486 = HEAP32[$485>>2]|0;
$487 = $486 & -8;
$488 = ($487|0)==($rsize$4$lcssa$i|0);
if ($488) {
$T$0$i$lcssa = $T$0$i;
label = 148;
break;
}
$489 = $K12$0$i >>> 31;
$490 = (((($T$0$i)) + 16|0) + ($489<<2)|0);
$491 = $K12$0$i << 1;
$492 = HEAP32[$490>>2]|0;
$493 = ($492|0)==(0|0);
if ($493) {
$$lcssa157 = $490;$T$0$i$lcssa156 = $T$0$i;
label = 145;
break;
} else {
$K12$0$i = $491;$T$0$i = $492;
}
}
if ((label|0) == 145) {
$494 = HEAP32[(71196)>>2]|0;
$495 = ($$lcssa157>>>0)<($494>>>0);
if ($495) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa157>>2] = $351;
$496 = ((($351)) + 24|0);
HEAP32[$496>>2] = $T$0$i$lcssa156;
$497 = ((($351)) + 12|0);
HEAP32[$497>>2] = $351;
$498 = ((($351)) + 8|0);
HEAP32[$498>>2] = $351;
break;
}
}
else if ((label|0) == 148) {
$499 = ((($T$0$i$lcssa)) + 8|0);
$500 = HEAP32[$499>>2]|0;
$501 = HEAP32[(71196)>>2]|0;
$502 = ($500>>>0)>=($501>>>0);
$not$7$i = ($T$0$i$lcssa>>>0)>=($501>>>0);
$503 = $502 & $not$7$i;
if ($503) {
$504 = ((($500)) + 12|0);
HEAP32[$504>>2] = $351;
HEAP32[$499>>2] = $351;
$505 = ((($351)) + 8|0);
HEAP32[$505>>2] = $500;
$506 = ((($351)) + 12|0);
HEAP32[$506>>2] = $T$0$i$lcssa;
$507 = ((($351)) + 24|0);
HEAP32[$507>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
} while(0);
$508 = ((($v$4$lcssa$i)) + 8|0);
$$0 = $508;
return ($$0|0);
} else {
$nb$0 = $248;
}
}
}
}
}
} while(0);
$509 = HEAP32[(71188)>>2]|0;
$510 = ($509>>>0)<($nb$0>>>0);
if (!($510)) {
$511 = (($509) - ($nb$0))|0;
$512 = HEAP32[(71200)>>2]|0;
$513 = ($511>>>0)>(15);
if ($513) {
$514 = (($512) + ($nb$0)|0);
HEAP32[(71200)>>2] = $514;
HEAP32[(71188)>>2] = $511;
$515 = $511 | 1;
$516 = ((($514)) + 4|0);
HEAP32[$516>>2] = $515;
$517 = (($514) + ($511)|0);
HEAP32[$517>>2] = $511;
$518 = $nb$0 | 3;
$519 = ((($512)) + 4|0);
HEAP32[$519>>2] = $518;
} else {
HEAP32[(71188)>>2] = 0;
HEAP32[(71200)>>2] = 0;
$520 = $509 | 3;
$521 = ((($512)) + 4|0);
HEAP32[$521>>2] = $520;
$522 = (($512) + ($509)|0);
$523 = ((($522)) + 4|0);
$524 = HEAP32[$523>>2]|0;
$525 = $524 | 1;
HEAP32[$523>>2] = $525;
}
$526 = ((($512)) + 8|0);
$$0 = $526;
return ($$0|0);
}
$527 = HEAP32[(71192)>>2]|0;
$528 = ($527>>>0)>($nb$0>>>0);
if ($528) {
$529 = (($527) - ($nb$0))|0;
HEAP32[(71192)>>2] = $529;
$530 = HEAP32[(71204)>>2]|0;
$531 = (($530) + ($nb$0)|0);
HEAP32[(71204)>>2] = $531;
$532 = $529 | 1;
$533 = ((($531)) + 4|0);
HEAP32[$533>>2] = $532;
$534 = $nb$0 | 3;
$535 = ((($530)) + 4|0);
HEAP32[$535>>2] = $534;
$536 = ((($530)) + 8|0);
$$0 = $536;
return ($$0|0);
}
$537 = HEAP32[17913]|0;
$538 = ($537|0)==(0);
do {
if ($538) {
$539 = (_sysconf(30)|0);
$540 = (($539) + -1)|0;
$541 = $540 & $539;
$542 = ($541|0)==(0);
if ($542) {
HEAP32[(71660)>>2] = $539;
HEAP32[(71656)>>2] = $539;
HEAP32[(71664)>>2] = -1;
HEAP32[(71668)>>2] = -1;
HEAP32[(71672)>>2] = 0;
HEAP32[(71624)>>2] = 0;
$543 = (_time((0|0))|0);
$544 = $543 & -16;
$545 = $544 ^ 1431655768;
HEAP32[17913] = $545;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$546 = (($nb$0) + 48)|0;
$547 = HEAP32[(71660)>>2]|0;
$548 = (($nb$0) + 47)|0;
$549 = (($547) + ($548))|0;
$550 = (0 - ($547))|0;
$551 = $549 & $550;
$552 = ($551>>>0)>($nb$0>>>0);
if (!($552)) {
$$0 = 0;
return ($$0|0);
}
$553 = HEAP32[(71620)>>2]|0;
$554 = ($553|0)==(0);
if (!($554)) {
$555 = HEAP32[(71612)>>2]|0;
$556 = (($555) + ($551))|0;
$557 = ($556>>>0)<=($555>>>0);
$558 = ($556>>>0)>($553>>>0);
$or$cond1$i16 = $557 | $558;
if ($or$cond1$i16) {
$$0 = 0;
return ($$0|0);
}
}
$559 = HEAP32[(71624)>>2]|0;
$560 = $559 & 4;
$561 = ($560|0)==(0);
L257: do {
if ($561) {
$562 = HEAP32[(71204)>>2]|0;
$563 = ($562|0)==(0|0);
L259: do {
if ($563) {
label = 173;
} else {
$sp$0$i$i = (71628);
while(1) {
$564 = HEAP32[$sp$0$i$i>>2]|0;
$565 = ($564>>>0)>($562>>>0);
if (!($565)) {
$566 = ((($sp$0$i$i)) + 4|0);
$567 = HEAP32[$566>>2]|0;
$568 = (($564) + ($567)|0);
$569 = ($568>>>0)>($562>>>0);
if ($569) {
$$lcssa153 = $sp$0$i$i;$$lcssa155 = $566;
break;
}
}
$570 = ((($sp$0$i$i)) + 8|0);
$571 = HEAP32[$570>>2]|0;
$572 = ($571|0)==(0|0);
if ($572) {
label = 173;
break L259;
} else {
$sp$0$i$i = $571;
}
}
$595 = HEAP32[(71192)>>2]|0;
$596 = (($549) - ($595))|0;
$597 = $596 & $550;
$598 = ($597>>>0)<(2147483647);
if ($598) {
$599 = (_sbrk(($597|0))|0);
$600 = HEAP32[$$lcssa153>>2]|0;
$601 = HEAP32[$$lcssa155>>2]|0;
$602 = (($600) + ($601)|0);
$603 = ($599|0)==($602|0);
if ($603) {
$604 = ($599|0)==((-1)|0);
if (!($604)) {
$tbase$746$i = $599;$tsize$745$i = $597;
label = 193;
break L257;
}
} else {
$br$2$ph$i = $599;$ssize$2$ph$i = $597;
label = 183;
}
}
}
} while(0);
do {
if ((label|0) == 173) {
$573 = (_sbrk(0)|0);
$574 = ($573|0)==((-1)|0);
if (!($574)) {
$575 = $573;
$576 = HEAP32[(71656)>>2]|0;
$577 = (($576) + -1)|0;
$578 = $577 & $575;
$579 = ($578|0)==(0);
if ($579) {
$ssize$0$i = $551;
} else {
$580 = (($577) + ($575))|0;
$581 = (0 - ($576))|0;
$582 = $580 & $581;
$583 = (($551) - ($575))|0;
$584 = (($583) + ($582))|0;
$ssize$0$i = $584;
}
$585 = HEAP32[(71612)>>2]|0;
$586 = (($585) + ($ssize$0$i))|0;
$587 = ($ssize$0$i>>>0)>($nb$0>>>0);
$588 = ($ssize$0$i>>>0)<(2147483647);
$or$cond$i17 = $587 & $588;
if ($or$cond$i17) {
$589 = HEAP32[(71620)>>2]|0;
$590 = ($589|0)==(0);
if (!($590)) {
$591 = ($586>>>0)<=($585>>>0);
$592 = ($586>>>0)>($589>>>0);
$or$cond2$i = $591 | $592;
if ($or$cond2$i) {
break;
}
}
$593 = (_sbrk(($ssize$0$i|0))|0);
$594 = ($593|0)==($573|0);
if ($594) {
$tbase$746$i = $573;$tsize$745$i = $ssize$0$i;
label = 193;
break L257;
} else {
$br$2$ph$i = $593;$ssize$2$ph$i = $ssize$0$i;
label = 183;
}
}
}
}
} while(0);
L279: do {
if ((label|0) == 183) {
$605 = (0 - ($ssize$2$ph$i))|0;
$606 = ($br$2$ph$i|0)!=((-1)|0);
$607 = ($ssize$2$ph$i>>>0)<(2147483647);
$or$cond7$i = $607 & $606;
$608 = ($546>>>0)>($ssize$2$ph$i>>>0);
$or$cond8$i = $608 & $or$cond7$i;
do {
if ($or$cond8$i) {
$609 = HEAP32[(71660)>>2]|0;
$610 = (($548) - ($ssize$2$ph$i))|0;
$611 = (($610) + ($609))|0;
$612 = (0 - ($609))|0;
$613 = $611 & $612;
$614 = ($613>>>0)<(2147483647);
if ($614) {
$615 = (_sbrk(($613|0))|0);
$616 = ($615|0)==((-1)|0);
if ($616) {
(_sbrk(($605|0))|0);
break L279;
} else {
$617 = (($613) + ($ssize$2$ph$i))|0;
$ssize$5$i = $617;
break;
}
} else {
$ssize$5$i = $ssize$2$ph$i;
}
} else {
$ssize$5$i = $ssize$2$ph$i;
}
} while(0);
$618 = ($br$2$ph$i|0)==((-1)|0);
if (!($618)) {
$tbase$746$i = $br$2$ph$i;$tsize$745$i = $ssize$5$i;
label = 193;
break L257;
}
}
} while(0);
$619 = HEAP32[(71624)>>2]|0;
$620 = $619 | 4;
HEAP32[(71624)>>2] = $620;
label = 190;
} else {
label = 190;
}
} while(0);
if ((label|0) == 190) {
$621 = ($551>>>0)<(2147483647);
if ($621) {
$622 = (_sbrk(($551|0))|0);
$623 = (_sbrk(0)|0);
$624 = ($622|0)!=((-1)|0);
$625 = ($623|0)!=((-1)|0);
$or$cond5$i = $624 & $625;
$626 = ($622>>>0)<($623>>>0);
$or$cond10$i = $626 & $or$cond5$i;
if ($or$cond10$i) {
$627 = $623;
$628 = $622;
$629 = (($627) - ($628))|0;
$630 = (($nb$0) + 40)|0;
$$not$i = ($629>>>0)>($630>>>0);
if ($$not$i) {
$tbase$746$i = $622;$tsize$745$i = $629;
label = 193;
}
}
}
}
if ((label|0) == 193) {
$631 = HEAP32[(71612)>>2]|0;
$632 = (($631) + ($tsize$745$i))|0;
HEAP32[(71612)>>2] = $632;
$633 = HEAP32[(71616)>>2]|0;
$634 = ($632>>>0)>($633>>>0);
if ($634) {
HEAP32[(71616)>>2] = $632;
}
$635 = HEAP32[(71204)>>2]|0;
$636 = ($635|0)==(0|0);
do {
if ($636) {
$637 = HEAP32[(71196)>>2]|0;
$638 = ($637|0)==(0|0);
$639 = ($tbase$746$i>>>0)<($637>>>0);
$or$cond11$i = $638 | $639;
if ($or$cond11$i) {
HEAP32[(71196)>>2] = $tbase$746$i;
}
HEAP32[(71628)>>2] = $tbase$746$i;
HEAP32[(71632)>>2] = $tsize$745$i;
HEAP32[(71640)>>2] = 0;
$640 = HEAP32[17913]|0;
HEAP32[(71216)>>2] = $640;
HEAP32[(71212)>>2] = -1;
$i$01$i$i = 0;
while(1) {
$641 = $i$01$i$i << 1;
$642 = (71220 + ($641<<2)|0);
$643 = ((($642)) + 12|0);
HEAP32[$643>>2] = $642;
$644 = ((($642)) + 8|0);
HEAP32[$644>>2] = $642;
$645 = (($i$01$i$i) + 1)|0;
$exitcond$i$i = ($645|0)==(32);
if ($exitcond$i$i) {
break;
} else {
$i$01$i$i = $645;
}
}
$646 = (($tsize$745$i) + -40)|0;
$647 = ((($tbase$746$i)) + 8|0);
$648 = $647;
$649 = $648 & 7;
$650 = ($649|0)==(0);
$651 = (0 - ($648))|0;
$652 = $651 & 7;
$653 = $650 ? 0 : $652;
$654 = (($tbase$746$i) + ($653)|0);
$655 = (($646) - ($653))|0;
HEAP32[(71204)>>2] = $654;
HEAP32[(71192)>>2] = $655;
$656 = $655 | 1;
$657 = ((($654)) + 4|0);
HEAP32[$657>>2] = $656;
$658 = (($654) + ($655)|0);
$659 = ((($658)) + 4|0);
HEAP32[$659>>2] = 40;
$660 = HEAP32[(71668)>>2]|0;
HEAP32[(71208)>>2] = $660;
} else {
$sp$068$i = (71628);
while(1) {
$661 = HEAP32[$sp$068$i>>2]|0;
$662 = ((($sp$068$i)) + 4|0);
$663 = HEAP32[$662>>2]|0;
$664 = (($661) + ($663)|0);
$665 = ($tbase$746$i|0)==($664|0);
if ($665) {
$$lcssa147 = $661;$$lcssa149 = $662;$$lcssa151 = $663;$sp$068$i$lcssa = $sp$068$i;
label = 203;
break;
}
$666 = ((($sp$068$i)) + 8|0);
$667 = HEAP32[$666>>2]|0;
$668 = ($667|0)==(0|0);
if ($668) {
break;
} else {
$sp$068$i = $667;
}
}
if ((label|0) == 203) {
$669 = ((($sp$068$i$lcssa)) + 12|0);
$670 = HEAP32[$669>>2]|0;
$671 = $670 & 8;
$672 = ($671|0)==(0);
if ($672) {
$673 = ($635>>>0)>=($$lcssa147>>>0);
$674 = ($635>>>0)<($tbase$746$i>>>0);
$or$cond48$i = $674 & $673;
if ($or$cond48$i) {
$675 = (($$lcssa151) + ($tsize$745$i))|0;
HEAP32[$$lcssa149>>2] = $675;
$676 = HEAP32[(71192)>>2]|0;
$677 = ((($635)) + 8|0);
$678 = $677;
$679 = $678 & 7;
$680 = ($679|0)==(0);
$681 = (0 - ($678))|0;
$682 = $681 & 7;
$683 = $680 ? 0 : $682;
$684 = (($635) + ($683)|0);
$685 = (($tsize$745$i) - ($683))|0;
$686 = (($685) + ($676))|0;
HEAP32[(71204)>>2] = $684;
HEAP32[(71192)>>2] = $686;
$687 = $686 | 1;
$688 = ((($684)) + 4|0);
HEAP32[$688>>2] = $687;
$689 = (($684) + ($686)|0);
$690 = ((($689)) + 4|0);
HEAP32[$690>>2] = 40;
$691 = HEAP32[(71668)>>2]|0;
HEAP32[(71208)>>2] = $691;
break;
}
}
}
$692 = HEAP32[(71196)>>2]|0;
$693 = ($tbase$746$i>>>0)<($692>>>0);
if ($693) {
HEAP32[(71196)>>2] = $tbase$746$i;
$757 = $tbase$746$i;
} else {
$757 = $692;
}
$694 = (($tbase$746$i) + ($tsize$745$i)|0);
$sp$167$i = (71628);
while(1) {
$695 = HEAP32[$sp$167$i>>2]|0;
$696 = ($695|0)==($694|0);
if ($696) {
$$lcssa144 = $sp$167$i;$sp$167$i$lcssa = $sp$167$i;
label = 211;
break;
}
$697 = ((($sp$167$i)) + 8|0);
$698 = HEAP32[$697>>2]|0;
$699 = ($698|0)==(0|0);
if ($699) {
$sp$0$i$i$i = (71628);
break;
} else {
$sp$167$i = $698;
}
}
if ((label|0) == 211) {
$700 = ((($sp$167$i$lcssa)) + 12|0);
$701 = HEAP32[$700>>2]|0;
$702 = $701 & 8;
$703 = ($702|0)==(0);
if ($703) {
HEAP32[$$lcssa144>>2] = $tbase$746$i;
$704 = ((($sp$167$i$lcssa)) + 4|0);
$705 = HEAP32[$704>>2]|0;
$706 = (($705) + ($tsize$745$i))|0;
HEAP32[$704>>2] = $706;
$707 = ((($tbase$746$i)) + 8|0);
$708 = $707;
$709 = $708 & 7;
$710 = ($709|0)==(0);
$711 = (0 - ($708))|0;
$712 = $711 & 7;
$713 = $710 ? 0 : $712;
$714 = (($tbase$746$i) + ($713)|0);
$715 = ((($694)) + 8|0);
$716 = $715;
$717 = $716 & 7;
$718 = ($717|0)==(0);
$719 = (0 - ($716))|0;
$720 = $719 & 7;
$721 = $718 ? 0 : $720;
$722 = (($694) + ($721)|0);
$723 = $722;
$724 = $714;
$725 = (($723) - ($724))|0;
$726 = (($714) + ($nb$0)|0);
$727 = (($725) - ($nb$0))|0;
$728 = $nb$0 | 3;
$729 = ((($714)) + 4|0);
HEAP32[$729>>2] = $728;
$730 = ($722|0)==($635|0);
do {
if ($730) {
$731 = HEAP32[(71192)>>2]|0;
$732 = (($731) + ($727))|0;
HEAP32[(71192)>>2] = $732;
HEAP32[(71204)>>2] = $726;
$733 = $732 | 1;
$734 = ((($726)) + 4|0);
HEAP32[$734>>2] = $733;
} else {
$735 = HEAP32[(71200)>>2]|0;
$736 = ($722|0)==($735|0);
if ($736) {
$737 = HEAP32[(71188)>>2]|0;
$738 = (($737) + ($727))|0;
HEAP32[(71188)>>2] = $738;
HEAP32[(71200)>>2] = $726;
$739 = $738 | 1;
$740 = ((($726)) + 4|0);
HEAP32[$740>>2] = $739;
$741 = (($726) + ($738)|0);
HEAP32[$741>>2] = $738;
break;
}
$742 = ((($722)) + 4|0);
$743 = HEAP32[$742>>2]|0;
$744 = $743 & 3;
$745 = ($744|0)==(1);
if ($745) {
$746 = $743 & -8;
$747 = $743 >>> 3;
$748 = ($743>>>0)<(256);
L331: do {
if ($748) {
$749 = ((($722)) + 8|0);
$750 = HEAP32[$749>>2]|0;
$751 = ((($722)) + 12|0);
$752 = HEAP32[$751>>2]|0;
$753 = $747 << 1;
$754 = (71220 + ($753<<2)|0);
$755 = ($750|0)==($754|0);
do {
if (!($755)) {
$756 = ($750>>>0)<($757>>>0);
if ($756) {
_abort();
// unreachable;
}
$758 = ((($750)) + 12|0);
$759 = HEAP32[$758>>2]|0;
$760 = ($759|0)==($722|0);
if ($760) {
break;
}
_abort();
// unreachable;
}
} while(0);
$761 = ($752|0)==($750|0);
if ($761) {
$762 = 1 << $747;
$763 = $762 ^ -1;
$764 = HEAP32[17795]|0;
$765 = $764 & $763;
HEAP32[17795] = $765;
break;
}
$766 = ($752|0)==($754|0);
do {
if ($766) {
$$pre9$i$i = ((($752)) + 8|0);
$$pre$phi10$i$iZ2D = $$pre9$i$i;
} else {
$767 = ($752>>>0)<($757>>>0);
if ($767) {
_abort();
// unreachable;
}
$768 = ((($752)) + 8|0);
$769 = HEAP32[$768>>2]|0;
$770 = ($769|0)==($722|0);
if ($770) {
$$pre$phi10$i$iZ2D = $768;
break;
}
_abort();
// unreachable;
}
} while(0);
$771 = ((($750)) + 12|0);
HEAP32[$771>>2] = $752;
HEAP32[$$pre$phi10$i$iZ2D>>2] = $750;
} else {
$772 = ((($722)) + 24|0);
$773 = HEAP32[$772>>2]|0;
$774 = ((($722)) + 12|0);
$775 = HEAP32[$774>>2]|0;
$776 = ($775|0)==($722|0);
do {
if ($776) {
$786 = ((($722)) + 16|0);
$787 = ((($786)) + 4|0);
$788 = HEAP32[$787>>2]|0;
$789 = ($788|0)==(0|0);
if ($789) {
$790 = HEAP32[$786>>2]|0;
$791 = ($790|0)==(0|0);
if ($791) {
$R$3$i$i = 0;
break;
} else {
$R$1$i$i = $790;$RP$1$i$i = $786;
}
} else {
$R$1$i$i = $788;$RP$1$i$i = $787;
}
while(1) {
$792 = ((($R$1$i$i)) + 20|0);
$793 = HEAP32[$792>>2]|0;
$794 = ($793|0)==(0|0);
if (!($794)) {
$R$1$i$i = $793;$RP$1$i$i = $792;
continue;
}
$795 = ((($R$1$i$i)) + 16|0);
$796 = HEAP32[$795>>2]|0;
$797 = ($796|0)==(0|0);
if ($797) {
$R$1$i$i$lcssa = $R$1$i$i;$RP$1$i$i$lcssa = $RP$1$i$i;
break;
} else {
$R$1$i$i = $796;$RP$1$i$i = $795;
}
}
$798 = ($RP$1$i$i$lcssa>>>0)<($757>>>0);
if ($798) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$i$i$lcssa>>2] = 0;
$R$3$i$i = $R$1$i$i$lcssa;
break;
}
} else {
$777 = ((($722)) + 8|0);
$778 = HEAP32[$777>>2]|0;
$779 = ($778>>>0)<($757>>>0);
if ($779) {
_abort();
// unreachable;
}
$780 = ((($778)) + 12|0);
$781 = HEAP32[$780>>2]|0;
$782 = ($781|0)==($722|0);
if (!($782)) {
_abort();
// unreachable;
}
$783 = ((($775)) + 8|0);
$784 = HEAP32[$783>>2]|0;
$785 = ($784|0)==($722|0);
if ($785) {
HEAP32[$780>>2] = $775;
HEAP32[$783>>2] = $778;
$R$3$i$i = $775;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$799 = ($773|0)==(0|0);
if ($799) {
break;
}
$800 = ((($722)) + 28|0);
$801 = HEAP32[$800>>2]|0;
$802 = (71484 + ($801<<2)|0);
$803 = HEAP32[$802>>2]|0;
$804 = ($722|0)==($803|0);
do {
if ($804) {
HEAP32[$802>>2] = $R$3$i$i;
$cond$i$i = ($R$3$i$i|0)==(0|0);
if (!($cond$i$i)) {
break;
}
$805 = 1 << $801;
$806 = $805 ^ -1;
$807 = HEAP32[(71184)>>2]|0;
$808 = $807 & $806;
HEAP32[(71184)>>2] = $808;
break L331;
} else {
$809 = HEAP32[(71196)>>2]|0;
$810 = ($773>>>0)<($809>>>0);
if ($810) {
_abort();
// unreachable;
}
$811 = ((($773)) + 16|0);
$812 = HEAP32[$811>>2]|0;
$813 = ($812|0)==($722|0);
if ($813) {
HEAP32[$811>>2] = $R$3$i$i;
} else {
$814 = ((($773)) + 20|0);
HEAP32[$814>>2] = $R$3$i$i;
}
$815 = ($R$3$i$i|0)==(0|0);
if ($815) {
break L331;
}
}
} while(0);
$816 = HEAP32[(71196)>>2]|0;
$817 = ($R$3$i$i>>>0)<($816>>>0);
if ($817) {
_abort();
// unreachable;
}
$818 = ((($R$3$i$i)) + 24|0);
HEAP32[$818>>2] = $773;
$819 = ((($722)) + 16|0);
$820 = HEAP32[$819>>2]|0;
$821 = ($820|0)==(0|0);
do {
if (!($821)) {
$822 = ($820>>>0)<($816>>>0);
if ($822) {
_abort();
// unreachable;
} else {
$823 = ((($R$3$i$i)) + 16|0);
HEAP32[$823>>2] = $820;
$824 = ((($820)) + 24|0);
HEAP32[$824>>2] = $R$3$i$i;
break;
}
}
} while(0);
$825 = ((($819)) + 4|0);
$826 = HEAP32[$825>>2]|0;
$827 = ($826|0)==(0|0);
if ($827) {
break;
}
$828 = HEAP32[(71196)>>2]|0;
$829 = ($826>>>0)<($828>>>0);
if ($829) {
_abort();
// unreachable;
} else {
$830 = ((($R$3$i$i)) + 20|0);
HEAP32[$830>>2] = $826;
$831 = ((($826)) + 24|0);
HEAP32[$831>>2] = $R$3$i$i;
break;
}
}
} while(0);
$832 = (($722) + ($746)|0);
$833 = (($746) + ($727))|0;
$oldfirst$0$i$i = $832;$qsize$0$i$i = $833;
} else {
$oldfirst$0$i$i = $722;$qsize$0$i$i = $727;
}
$834 = ((($oldfirst$0$i$i)) + 4|0);
$835 = HEAP32[$834>>2]|0;
$836 = $835 & -2;
HEAP32[$834>>2] = $836;
$837 = $qsize$0$i$i | 1;
$838 = ((($726)) + 4|0);
HEAP32[$838>>2] = $837;
$839 = (($726) + ($qsize$0$i$i)|0);
HEAP32[$839>>2] = $qsize$0$i$i;
$840 = $qsize$0$i$i >>> 3;
$841 = ($qsize$0$i$i>>>0)<(256);
if ($841) {
$842 = $840 << 1;
$843 = (71220 + ($842<<2)|0);
$844 = HEAP32[17795]|0;
$845 = 1 << $840;
$846 = $844 & $845;
$847 = ($846|0)==(0);
do {
if ($847) {
$848 = $844 | $845;
HEAP32[17795] = $848;
$$pre$i16$i = ((($843)) + 8|0);
$$pre$phi$i17$iZ2D = $$pre$i16$i;$F4$0$i$i = $843;
} else {
$849 = ((($843)) + 8|0);
$850 = HEAP32[$849>>2]|0;
$851 = HEAP32[(71196)>>2]|0;
$852 = ($850>>>0)<($851>>>0);
if (!($852)) {
$$pre$phi$i17$iZ2D = $849;$F4$0$i$i = $850;
break;
}
_abort();
// unreachable;
}
} while(0);
HEAP32[$$pre$phi$i17$iZ2D>>2] = $726;
$853 = ((($F4$0$i$i)) + 12|0);
HEAP32[$853>>2] = $726;
$854 = ((($726)) + 8|0);
HEAP32[$854>>2] = $F4$0$i$i;
$855 = ((($726)) + 12|0);
HEAP32[$855>>2] = $843;
break;
}
$856 = $qsize$0$i$i >>> 8;
$857 = ($856|0)==(0);
do {
if ($857) {
$I7$0$i$i = 0;
} else {
$858 = ($qsize$0$i$i>>>0)>(16777215);
if ($858) {
$I7$0$i$i = 31;
break;
}
$859 = (($856) + 1048320)|0;
$860 = $859 >>> 16;
$861 = $860 & 8;
$862 = $856 << $861;
$863 = (($862) + 520192)|0;
$864 = $863 >>> 16;
$865 = $864 & 4;
$866 = $865 | $861;
$867 = $862 << $865;
$868 = (($867) + 245760)|0;
$869 = $868 >>> 16;
$870 = $869 & 2;
$871 = $866 | $870;
$872 = (14 - ($871))|0;
$873 = $867 << $870;
$874 = $873 >>> 15;
$875 = (($872) + ($874))|0;
$876 = $875 << 1;
$877 = (($875) + 7)|0;
$878 = $qsize$0$i$i >>> $877;
$879 = $878 & 1;
$880 = $879 | $876;
$I7$0$i$i = $880;
}
} while(0);
$881 = (71484 + ($I7$0$i$i<<2)|0);
$882 = ((($726)) + 28|0);
HEAP32[$882>>2] = $I7$0$i$i;
$883 = ((($726)) + 16|0);
$884 = ((($883)) + 4|0);
HEAP32[$884>>2] = 0;
HEAP32[$883>>2] = 0;
$885 = HEAP32[(71184)>>2]|0;
$886 = 1 << $I7$0$i$i;
$887 = $885 & $886;
$888 = ($887|0)==(0);
if ($888) {
$889 = $885 | $886;
HEAP32[(71184)>>2] = $889;
HEAP32[$881>>2] = $726;
$890 = ((($726)) + 24|0);
HEAP32[$890>>2] = $881;
$891 = ((($726)) + 12|0);
HEAP32[$891>>2] = $726;
$892 = ((($726)) + 8|0);
HEAP32[$892>>2] = $726;
break;
}
$893 = HEAP32[$881>>2]|0;
$894 = ($I7$0$i$i|0)==(31);
$895 = $I7$0$i$i >>> 1;
$896 = (25 - ($895))|0;
$897 = $894 ? 0 : $896;
$898 = $qsize$0$i$i << $897;
$K8$0$i$i = $898;$T$0$i18$i = $893;
while(1) {
$899 = ((($T$0$i18$i)) + 4|0);
$900 = HEAP32[$899>>2]|0;
$901 = $900 & -8;
$902 = ($901|0)==($qsize$0$i$i|0);
if ($902) {
$T$0$i18$i$lcssa = $T$0$i18$i;
label = 281;
break;
}
$903 = $K8$0$i$i >>> 31;
$904 = (((($T$0$i18$i)) + 16|0) + ($903<<2)|0);
$905 = $K8$0$i$i << 1;
$906 = HEAP32[$904>>2]|0;
$907 = ($906|0)==(0|0);
if ($907) {
$$lcssa = $904;$T$0$i18$i$lcssa139 = $T$0$i18$i;
label = 278;
break;
} else {
$K8$0$i$i = $905;$T$0$i18$i = $906;
}
}
if ((label|0) == 278) {
$908 = HEAP32[(71196)>>2]|0;
$909 = ($$lcssa>>>0)<($908>>>0);
if ($909) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa>>2] = $726;
$910 = ((($726)) + 24|0);
HEAP32[$910>>2] = $T$0$i18$i$lcssa139;
$911 = ((($726)) + 12|0);
HEAP32[$911>>2] = $726;
$912 = ((($726)) + 8|0);
HEAP32[$912>>2] = $726;
break;
}
}
else if ((label|0) == 281) {
$913 = ((($T$0$i18$i$lcssa)) + 8|0);
$914 = HEAP32[$913>>2]|0;
$915 = HEAP32[(71196)>>2]|0;
$916 = ($914>>>0)>=($915>>>0);
$not$$i20$i = ($T$0$i18$i$lcssa>>>0)>=($915>>>0);
$917 = $916 & $not$$i20$i;
if ($917) {
$918 = ((($914)) + 12|0);
HEAP32[$918>>2] = $726;
HEAP32[$913>>2] = $726;
$919 = ((($726)) + 8|0);
HEAP32[$919>>2] = $914;
$920 = ((($726)) + 12|0);
HEAP32[$920>>2] = $T$0$i18$i$lcssa;
$921 = ((($726)) + 24|0);
HEAP32[$921>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
} while(0);
$1052 = ((($714)) + 8|0);
$$0 = $1052;
return ($$0|0);
} else {
$sp$0$i$i$i = (71628);
}
}
while(1) {
$922 = HEAP32[$sp$0$i$i$i>>2]|0;
$923 = ($922>>>0)>($635>>>0);
if (!($923)) {
$924 = ((($sp$0$i$i$i)) + 4|0);
$925 = HEAP32[$924>>2]|0;
$926 = (($922) + ($925)|0);
$927 = ($926>>>0)>($635>>>0);
if ($927) {
$$lcssa142 = $926;
break;
}
}
$928 = ((($sp$0$i$i$i)) + 8|0);
$929 = HEAP32[$928>>2]|0;
$sp$0$i$i$i = $929;
}
$930 = ((($$lcssa142)) + -47|0);
$931 = ((($930)) + 8|0);
$932 = $931;
$933 = $932 & 7;
$934 = ($933|0)==(0);
$935 = (0 - ($932))|0;
$936 = $935 & 7;
$937 = $934 ? 0 : $936;
$938 = (($930) + ($937)|0);
$939 = ((($635)) + 16|0);
$940 = ($938>>>0)<($939>>>0);
$941 = $940 ? $635 : $938;
$942 = ((($941)) + 8|0);
$943 = ((($941)) + 24|0);
$944 = (($tsize$745$i) + -40)|0;
$945 = ((($tbase$746$i)) + 8|0);
$946 = $945;
$947 = $946 & 7;
$948 = ($947|0)==(0);
$949 = (0 - ($946))|0;
$950 = $949 & 7;
$951 = $948 ? 0 : $950;
$952 = (($tbase$746$i) + ($951)|0);
$953 = (($944) - ($951))|0;
HEAP32[(71204)>>2] = $952;
HEAP32[(71192)>>2] = $953;
$954 = $953 | 1;
$955 = ((($952)) + 4|0);
HEAP32[$955>>2] = $954;
$956 = (($952) + ($953)|0);
$957 = ((($956)) + 4|0);
HEAP32[$957>>2] = 40;
$958 = HEAP32[(71668)>>2]|0;
HEAP32[(71208)>>2] = $958;
$959 = ((($941)) + 4|0);
HEAP32[$959>>2] = 27;
;HEAP32[$942>>2]=HEAP32[(71628)>>2]|0;HEAP32[$942+4>>2]=HEAP32[(71628)+4>>2]|0;HEAP32[$942+8>>2]=HEAP32[(71628)+8>>2]|0;HEAP32[$942+12>>2]=HEAP32[(71628)+12>>2]|0;
HEAP32[(71628)>>2] = $tbase$746$i;
HEAP32[(71632)>>2] = $tsize$745$i;
HEAP32[(71640)>>2] = 0;
HEAP32[(71636)>>2] = $942;
$p$0$i$i = $943;
while(1) {
$960 = ((($p$0$i$i)) + 4|0);
HEAP32[$960>>2] = 7;
$961 = ((($960)) + 4|0);
$962 = ($961>>>0)<($$lcssa142>>>0);
if ($962) {
$p$0$i$i = $960;
} else {
break;
}
}
$963 = ($941|0)==($635|0);
if (!($963)) {
$964 = $941;
$965 = $635;
$966 = (($964) - ($965))|0;
$967 = HEAP32[$959>>2]|0;
$968 = $967 & -2;
HEAP32[$959>>2] = $968;
$969 = $966 | 1;
$970 = ((($635)) + 4|0);
HEAP32[$970>>2] = $969;
HEAP32[$941>>2] = $966;
$971 = $966 >>> 3;
$972 = ($966>>>0)<(256);
if ($972) {
$973 = $971 << 1;
$974 = (71220 + ($973<<2)|0);
$975 = HEAP32[17795]|0;
$976 = 1 << $971;
$977 = $975 & $976;
$978 = ($977|0)==(0);
if ($978) {
$979 = $975 | $976;
HEAP32[17795] = $979;
$$pre$i$i = ((($974)) + 8|0);
$$pre$phi$i$iZ2D = $$pre$i$i;$F$0$i$i = $974;
} else {
$980 = ((($974)) + 8|0);
$981 = HEAP32[$980>>2]|0;
$982 = HEAP32[(71196)>>2]|0;
$983 = ($981>>>0)<($982>>>0);
if ($983) {
_abort();
// unreachable;
} else {
$$pre$phi$i$iZ2D = $980;$F$0$i$i = $981;
}
}
HEAP32[$$pre$phi$i$iZ2D>>2] = $635;
$984 = ((($F$0$i$i)) + 12|0);
HEAP32[$984>>2] = $635;
$985 = ((($635)) + 8|0);
HEAP32[$985>>2] = $F$0$i$i;
$986 = ((($635)) + 12|0);
HEAP32[$986>>2] = $974;
break;
}
$987 = $966 >>> 8;
$988 = ($987|0)==(0);
if ($988) {
$I1$0$i$i = 0;
} else {
$989 = ($966>>>0)>(16777215);
if ($989) {
$I1$0$i$i = 31;
} else {
$990 = (($987) + 1048320)|0;
$991 = $990 >>> 16;
$992 = $991 & 8;
$993 = $987 << $992;
$994 = (($993) + 520192)|0;
$995 = $994 >>> 16;
$996 = $995 & 4;
$997 = $996 | $992;
$998 = $993 << $996;
$999 = (($998) + 245760)|0;
$1000 = $999 >>> 16;
$1001 = $1000 & 2;
$1002 = $997 | $1001;
$1003 = (14 - ($1002))|0;
$1004 = $998 << $1001;
$1005 = $1004 >>> 15;
$1006 = (($1003) + ($1005))|0;
$1007 = $1006 << 1;
$1008 = (($1006) + 7)|0;
$1009 = $966 >>> $1008;
$1010 = $1009 & 1;
$1011 = $1010 | $1007;
$I1$0$i$i = $1011;
}
}
$1012 = (71484 + ($I1$0$i$i<<2)|0);
$1013 = ((($635)) + 28|0);
HEAP32[$1013>>2] = $I1$0$i$i;
$1014 = ((($635)) + 20|0);
HEAP32[$1014>>2] = 0;
HEAP32[$939>>2] = 0;
$1015 = HEAP32[(71184)>>2]|0;
$1016 = 1 << $I1$0$i$i;
$1017 = $1015 & $1016;
$1018 = ($1017|0)==(0);
if ($1018) {
$1019 = $1015 | $1016;
HEAP32[(71184)>>2] = $1019;
HEAP32[$1012>>2] = $635;
$1020 = ((($635)) + 24|0);
HEAP32[$1020>>2] = $1012;
$1021 = ((($635)) + 12|0);
HEAP32[$1021>>2] = $635;
$1022 = ((($635)) + 8|0);
HEAP32[$1022>>2] = $635;
break;
}
$1023 = HEAP32[$1012>>2]|0;
$1024 = ($I1$0$i$i|0)==(31);
$1025 = $I1$0$i$i >>> 1;
$1026 = (25 - ($1025))|0;
$1027 = $1024 ? 0 : $1026;
$1028 = $966 << $1027;
$K2$0$i$i = $1028;$T$0$i$i = $1023;
while(1) {
$1029 = ((($T$0$i$i)) + 4|0);
$1030 = HEAP32[$1029>>2]|0;
$1031 = $1030 & -8;
$1032 = ($1031|0)==($966|0);
if ($1032) {
$T$0$i$i$lcssa = $T$0$i$i;
label = 307;
break;
}
$1033 = $K2$0$i$i >>> 31;
$1034 = (((($T$0$i$i)) + 16|0) + ($1033<<2)|0);
$1035 = $K2$0$i$i << 1;
$1036 = HEAP32[$1034>>2]|0;
$1037 = ($1036|0)==(0|0);
if ($1037) {
$$lcssa141 = $1034;$T$0$i$i$lcssa140 = $T$0$i$i;
label = 304;
break;
} else {
$K2$0$i$i = $1035;$T$0$i$i = $1036;
}
}
if ((label|0) == 304) {
$1038 = HEAP32[(71196)>>2]|0;
$1039 = ($$lcssa141>>>0)<($1038>>>0);
if ($1039) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa141>>2] = $635;
$1040 = ((($635)) + 24|0);
HEAP32[$1040>>2] = $T$0$i$i$lcssa140;
$1041 = ((($635)) + 12|0);
HEAP32[$1041>>2] = $635;
$1042 = ((($635)) + 8|0);
HEAP32[$1042>>2] = $635;
break;
}
}
else if ((label|0) == 307) {
$1043 = ((($T$0$i$i$lcssa)) + 8|0);
$1044 = HEAP32[$1043>>2]|0;
$1045 = HEAP32[(71196)>>2]|0;
$1046 = ($1044>>>0)>=($1045>>>0);
$not$$i$i = ($T$0$i$i$lcssa>>>0)>=($1045>>>0);
$1047 = $1046 & $not$$i$i;
if ($1047) {
$1048 = ((($1044)) + 12|0);
HEAP32[$1048>>2] = $635;
HEAP32[$1043>>2] = $635;
$1049 = ((($635)) + 8|0);
HEAP32[$1049>>2] = $1044;
$1050 = ((($635)) + 12|0);
HEAP32[$1050>>2] = $T$0$i$i$lcssa;
$1051 = ((($635)) + 24|0);
HEAP32[$1051>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
}
} while(0);
$1053 = HEAP32[(71192)>>2]|0;
$1054 = ($1053>>>0)>($nb$0>>>0);
if ($1054) {
$1055 = (($1053) - ($nb$0))|0;
HEAP32[(71192)>>2] = $1055;
$1056 = HEAP32[(71204)>>2]|0;
$1057 = (($1056) + ($nb$0)|0);
HEAP32[(71204)>>2] = $1057;
$1058 = $1055 | 1;
$1059 = ((($1057)) + 4|0);
HEAP32[$1059>>2] = $1058;
$1060 = $nb$0 | 3;
$1061 = ((($1056)) + 4|0);
HEAP32[$1061>>2] = $1060;
$1062 = ((($1056)) + 8|0);
$$0 = $1062;
return ($$0|0);
}
}
$1063 = (___errno_location()|0);
HEAP32[$1063>>2] = 12;
$$0 = 0;
return ($$0|0);
}
function _free($mem) {
$mem = $mem|0;
var $$lcssa = 0, $$pre = 0, $$pre$phi41Z2D = 0, $$pre$phi43Z2D = 0, $$pre$phiZ2D = 0, $$pre40 = 0, $$pre42 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0;
var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0;
var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0;
var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0;
var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0;
var $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F18$0 = 0, $I20$0 = 0, $K21$0 = 0, $R$1 = 0, $R$1$lcssa = 0, $R$3 = 0, $R8$1 = 0, $R8$1$lcssa = 0, $R8$3 = 0, $RP$1 = 0, $RP$1$lcssa = 0, $RP10$1 = 0, $RP10$1$lcssa = 0;
var $T$0 = 0, $T$0$lcssa = 0, $T$0$lcssa48 = 0, $cond20 = 0, $cond21 = 0, $not$ = 0, $p$1 = 0, $psize$1 = 0, $psize$2 = 0, $sp$0$i = 0, $sp$0$in$i = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($mem|0)==(0|0);
if ($0) {
return;
}
$1 = ((($mem)) + -8|0);
$2 = HEAP32[(71196)>>2]|0;
$3 = ($1>>>0)<($2>>>0);
if ($3) {
_abort();
// unreachable;
}
$4 = ((($mem)) + -4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 3;
$7 = ($6|0)==(1);
if ($7) {
_abort();
// unreachable;
}
$8 = $5 & -8;
$9 = (($1) + ($8)|0);
$10 = $5 & 1;
$11 = ($10|0)==(0);
do {
if ($11) {
$12 = HEAP32[$1>>2]|0;
$13 = ($6|0)==(0);
if ($13) {
return;
}
$14 = (0 - ($12))|0;
$15 = (($1) + ($14)|0);
$16 = (($12) + ($8))|0;
$17 = ($15>>>0)<($2>>>0);
if ($17) {
_abort();
// unreachable;
}
$18 = HEAP32[(71200)>>2]|0;
$19 = ($15|0)==($18|0);
if ($19) {
$104 = ((($9)) + 4|0);
$105 = HEAP32[$104>>2]|0;
$106 = $105 & 3;
$107 = ($106|0)==(3);
if (!($107)) {
$p$1 = $15;$psize$1 = $16;
break;
}
HEAP32[(71188)>>2] = $16;
$108 = $105 & -2;
HEAP32[$104>>2] = $108;
$109 = $16 | 1;
$110 = ((($15)) + 4|0);
HEAP32[$110>>2] = $109;
$111 = (($15) + ($16)|0);
HEAP32[$111>>2] = $16;
return;
}
$20 = $12 >>> 3;
$21 = ($12>>>0)<(256);
if ($21) {
$22 = ((($15)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = ((($15)) + 12|0);
$25 = HEAP32[$24>>2]|0;
$26 = $20 << 1;
$27 = (71220 + ($26<<2)|0);
$28 = ($23|0)==($27|0);
if (!($28)) {
$29 = ($23>>>0)<($2>>>0);
if ($29) {
_abort();
// unreachable;
}
$30 = ((($23)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = ($31|0)==($15|0);
if (!($32)) {
_abort();
// unreachable;
}
}
$33 = ($25|0)==($23|0);
if ($33) {
$34 = 1 << $20;
$35 = $34 ^ -1;
$36 = HEAP32[17795]|0;
$37 = $36 & $35;
HEAP32[17795] = $37;
$p$1 = $15;$psize$1 = $16;
break;
}
$38 = ($25|0)==($27|0);
if ($38) {
$$pre42 = ((($25)) + 8|0);
$$pre$phi43Z2D = $$pre42;
} else {
$39 = ($25>>>0)<($2>>>0);
if ($39) {
_abort();
// unreachable;
}
$40 = ((($25)) + 8|0);
$41 = HEAP32[$40>>2]|0;
$42 = ($41|0)==($15|0);
if ($42) {
$$pre$phi43Z2D = $40;
} else {
_abort();
// unreachable;
}
}
$43 = ((($23)) + 12|0);
HEAP32[$43>>2] = $25;
HEAP32[$$pre$phi43Z2D>>2] = $23;
$p$1 = $15;$psize$1 = $16;
break;
}
$44 = ((($15)) + 24|0);
$45 = HEAP32[$44>>2]|0;
$46 = ((($15)) + 12|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)==($15|0);
do {
if ($48) {
$58 = ((($15)) + 16|0);
$59 = ((($58)) + 4|0);
$60 = HEAP32[$59>>2]|0;
$61 = ($60|0)==(0|0);
if ($61) {
$62 = HEAP32[$58>>2]|0;
$63 = ($62|0)==(0|0);
if ($63) {
$R$3 = 0;
break;
} else {
$R$1 = $62;$RP$1 = $58;
}
} else {
$R$1 = $60;$RP$1 = $59;
}
while(1) {
$64 = ((($R$1)) + 20|0);
$65 = HEAP32[$64>>2]|0;
$66 = ($65|0)==(0|0);
if (!($66)) {
$R$1 = $65;$RP$1 = $64;
continue;
}
$67 = ((($R$1)) + 16|0);
$68 = HEAP32[$67>>2]|0;
$69 = ($68|0)==(0|0);
if ($69) {
$R$1$lcssa = $R$1;$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $68;$RP$1 = $67;
}
}
$70 = ($RP$1$lcssa>>>0)<($2>>>0);
if ($70) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$lcssa>>2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$49 = ((($15)) + 8|0);
$50 = HEAP32[$49>>2]|0;
$51 = ($50>>>0)<($2>>>0);
if ($51) {
_abort();
// unreachable;
}
$52 = ((($50)) + 12|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($53|0)==($15|0);
if (!($54)) {
_abort();
// unreachable;
}
$55 = ((($47)) + 8|0);
$56 = HEAP32[$55>>2]|0;
$57 = ($56|0)==($15|0);
if ($57) {
HEAP32[$52>>2] = $47;
HEAP32[$55>>2] = $50;
$R$3 = $47;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$71 = ($45|0)==(0|0);
if ($71) {
$p$1 = $15;$psize$1 = $16;
} else {
$72 = ((($15)) + 28|0);
$73 = HEAP32[$72>>2]|0;
$74 = (71484 + ($73<<2)|0);
$75 = HEAP32[$74>>2]|0;
$76 = ($15|0)==($75|0);
if ($76) {
HEAP32[$74>>2] = $R$3;
$cond20 = ($R$3|0)==(0|0);
if ($cond20) {
$77 = 1 << $73;
$78 = $77 ^ -1;
$79 = HEAP32[(71184)>>2]|0;
$80 = $79 & $78;
HEAP32[(71184)>>2] = $80;
$p$1 = $15;$psize$1 = $16;
break;
}
} else {
$81 = HEAP32[(71196)>>2]|0;
$82 = ($45>>>0)<($81>>>0);
if ($82) {
_abort();
// unreachable;
}
$83 = ((($45)) + 16|0);
$84 = HEAP32[$83>>2]|0;
$85 = ($84|0)==($15|0);
if ($85) {
HEAP32[$83>>2] = $R$3;
} else {
$86 = ((($45)) + 20|0);
HEAP32[$86>>2] = $R$3;
}
$87 = ($R$3|0)==(0|0);
if ($87) {
$p$1 = $15;$psize$1 = $16;
break;
}
}
$88 = HEAP32[(71196)>>2]|0;
$89 = ($R$3>>>0)<($88>>>0);
if ($89) {
_abort();
// unreachable;
}
$90 = ((($R$3)) + 24|0);
HEAP32[$90>>2] = $45;
$91 = ((($15)) + 16|0);
$92 = HEAP32[$91>>2]|0;
$93 = ($92|0)==(0|0);
do {
if (!($93)) {
$94 = ($92>>>0)<($88>>>0);
if ($94) {
_abort();
// unreachable;
} else {
$95 = ((($R$3)) + 16|0);
HEAP32[$95>>2] = $92;
$96 = ((($92)) + 24|0);
HEAP32[$96>>2] = $R$3;
break;
}
}
} while(0);
$97 = ((($91)) + 4|0);
$98 = HEAP32[$97>>2]|0;
$99 = ($98|0)==(0|0);
if ($99) {
$p$1 = $15;$psize$1 = $16;
} else {
$100 = HEAP32[(71196)>>2]|0;
$101 = ($98>>>0)<($100>>>0);
if ($101) {
_abort();
// unreachable;
} else {
$102 = ((($R$3)) + 20|0);
HEAP32[$102>>2] = $98;
$103 = ((($98)) + 24|0);
HEAP32[$103>>2] = $R$3;
$p$1 = $15;$psize$1 = $16;
break;
}
}
}
} else {
$p$1 = $1;$psize$1 = $8;
}
} while(0);
$112 = ($p$1>>>0)<($9>>>0);
if (!($112)) {
_abort();
// unreachable;
}
$113 = ((($9)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = $114 & 1;
$116 = ($115|0)==(0);
if ($116) {
_abort();
// unreachable;
}
$117 = $114 & 2;
$118 = ($117|0)==(0);
if ($118) {
$119 = HEAP32[(71204)>>2]|0;
$120 = ($9|0)==($119|0);
if ($120) {
$121 = HEAP32[(71192)>>2]|0;
$122 = (($121) + ($psize$1))|0;
HEAP32[(71192)>>2] = $122;
HEAP32[(71204)>>2] = $p$1;
$123 = $122 | 1;
$124 = ((($p$1)) + 4|0);
HEAP32[$124>>2] = $123;
$125 = HEAP32[(71200)>>2]|0;
$126 = ($p$1|0)==($125|0);
if (!($126)) {
return;
}
HEAP32[(71200)>>2] = 0;
HEAP32[(71188)>>2] = 0;
return;
}
$127 = HEAP32[(71200)>>2]|0;
$128 = ($9|0)==($127|0);
if ($128) {
$129 = HEAP32[(71188)>>2]|0;
$130 = (($129) + ($psize$1))|0;
HEAP32[(71188)>>2] = $130;
HEAP32[(71200)>>2] = $p$1;
$131 = $130 | 1;
$132 = ((($p$1)) + 4|0);
HEAP32[$132>>2] = $131;
$133 = (($p$1) + ($130)|0);
HEAP32[$133>>2] = $130;
return;
}
$134 = $114 & -8;
$135 = (($134) + ($psize$1))|0;
$136 = $114 >>> 3;
$137 = ($114>>>0)<(256);
do {
if ($137) {
$138 = ((($9)) + 8|0);
$139 = HEAP32[$138>>2]|0;
$140 = ((($9)) + 12|0);
$141 = HEAP32[$140>>2]|0;
$142 = $136 << 1;
$143 = (71220 + ($142<<2)|0);
$144 = ($139|0)==($143|0);
if (!($144)) {
$145 = HEAP32[(71196)>>2]|0;
$146 = ($139>>>0)<($145>>>0);
if ($146) {
_abort();
// unreachable;
}
$147 = ((($139)) + 12|0);
$148 = HEAP32[$147>>2]|0;
$149 = ($148|0)==($9|0);
if (!($149)) {
_abort();
// unreachable;
}
}
$150 = ($141|0)==($139|0);
if ($150) {
$151 = 1 << $136;
$152 = $151 ^ -1;
$153 = HEAP32[17795]|0;
$154 = $153 & $152;
HEAP32[17795] = $154;
break;
}
$155 = ($141|0)==($143|0);
if ($155) {
$$pre40 = ((($141)) + 8|0);
$$pre$phi41Z2D = $$pre40;
} else {
$156 = HEAP32[(71196)>>2]|0;
$157 = ($141>>>0)<($156>>>0);
if ($157) {
_abort();
// unreachable;
}
$158 = ((($141)) + 8|0);
$159 = HEAP32[$158>>2]|0;
$160 = ($159|0)==($9|0);
if ($160) {
$$pre$phi41Z2D = $158;
} else {
_abort();
// unreachable;
}
}
$161 = ((($139)) + 12|0);
HEAP32[$161>>2] = $141;
HEAP32[$$pre$phi41Z2D>>2] = $139;
} else {
$162 = ((($9)) + 24|0);
$163 = HEAP32[$162>>2]|0;
$164 = ((($9)) + 12|0);
$165 = HEAP32[$164>>2]|0;
$166 = ($165|0)==($9|0);
do {
if ($166) {
$177 = ((($9)) + 16|0);
$178 = ((($177)) + 4|0);
$179 = HEAP32[$178>>2]|0;
$180 = ($179|0)==(0|0);
if ($180) {
$181 = HEAP32[$177>>2]|0;
$182 = ($181|0)==(0|0);
if ($182) {
$R8$3 = 0;
break;
} else {
$R8$1 = $181;$RP10$1 = $177;
}
} else {
$R8$1 = $179;$RP10$1 = $178;
}
while(1) {
$183 = ((($R8$1)) + 20|0);
$184 = HEAP32[$183>>2]|0;
$185 = ($184|0)==(0|0);
if (!($185)) {
$R8$1 = $184;$RP10$1 = $183;
continue;
}
$186 = ((($R8$1)) + 16|0);
$187 = HEAP32[$186>>2]|0;
$188 = ($187|0)==(0|0);
if ($188) {
$R8$1$lcssa = $R8$1;$RP10$1$lcssa = $RP10$1;
break;
} else {
$R8$1 = $187;$RP10$1 = $186;
}
}
$189 = HEAP32[(71196)>>2]|0;
$190 = ($RP10$1$lcssa>>>0)<($189>>>0);
if ($190) {
_abort();
// unreachable;
} else {
HEAP32[$RP10$1$lcssa>>2] = 0;
$R8$3 = $R8$1$lcssa;
break;
}
} else {
$167 = ((($9)) + 8|0);
$168 = HEAP32[$167>>2]|0;
$169 = HEAP32[(71196)>>2]|0;
$170 = ($168>>>0)<($169>>>0);
if ($170) {
_abort();
// unreachable;
}
$171 = ((($168)) + 12|0);
$172 = HEAP32[$171>>2]|0;
$173 = ($172|0)==($9|0);
if (!($173)) {
_abort();
// unreachable;
}
$174 = ((($165)) + 8|0);
$175 = HEAP32[$174>>2]|0;
$176 = ($175|0)==($9|0);
if ($176) {
HEAP32[$171>>2] = $165;
HEAP32[$174>>2] = $168;
$R8$3 = $165;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$191 = ($163|0)==(0|0);
if (!($191)) {
$192 = ((($9)) + 28|0);
$193 = HEAP32[$192>>2]|0;
$194 = (71484 + ($193<<2)|0);
$195 = HEAP32[$194>>2]|0;
$196 = ($9|0)==($195|0);
if ($196) {
HEAP32[$194>>2] = $R8$3;
$cond21 = ($R8$3|0)==(0|0);
if ($cond21) {
$197 = 1 << $193;
$198 = $197 ^ -1;
$199 = HEAP32[(71184)>>2]|0;
$200 = $199 & $198;
HEAP32[(71184)>>2] = $200;
break;
}
} else {
$201 = HEAP32[(71196)>>2]|0;
$202 = ($163>>>0)<($201>>>0);
if ($202) {
_abort();
// unreachable;
}
$203 = ((($163)) + 16|0);
$204 = HEAP32[$203>>2]|0;
$205 = ($204|0)==($9|0);
if ($205) {
HEAP32[$203>>2] = $R8$3;
} else {
$206 = ((($163)) + 20|0);
HEAP32[$206>>2] = $R8$3;
}
$207 = ($R8$3|0)==(0|0);
if ($207) {
break;
}
}
$208 = HEAP32[(71196)>>2]|0;
$209 = ($R8$3>>>0)<($208>>>0);
if ($209) {
_abort();
// unreachable;
}
$210 = ((($R8$3)) + 24|0);
HEAP32[$210>>2] = $163;
$211 = ((($9)) + 16|0);
$212 = HEAP32[$211>>2]|0;
$213 = ($212|0)==(0|0);
do {
if (!($213)) {
$214 = ($212>>>0)<($208>>>0);
if ($214) {
_abort();
// unreachable;
} else {
$215 = ((($R8$3)) + 16|0);
HEAP32[$215>>2] = $212;
$216 = ((($212)) + 24|0);
HEAP32[$216>>2] = $R8$3;
break;
}
}
} while(0);
$217 = ((($211)) + 4|0);
$218 = HEAP32[$217>>2]|0;
$219 = ($218|0)==(0|0);
if (!($219)) {
$220 = HEAP32[(71196)>>2]|0;
$221 = ($218>>>0)<($220>>>0);
if ($221) {
_abort();
// unreachable;
} else {
$222 = ((($R8$3)) + 20|0);
HEAP32[$222>>2] = $218;
$223 = ((($218)) + 24|0);
HEAP32[$223>>2] = $R8$3;
break;
}
}
}
}
} while(0);
$224 = $135 | 1;
$225 = ((($p$1)) + 4|0);
HEAP32[$225>>2] = $224;
$226 = (($p$1) + ($135)|0);
HEAP32[$226>>2] = $135;
$227 = HEAP32[(71200)>>2]|0;
$228 = ($p$1|0)==($227|0);
if ($228) {
HEAP32[(71188)>>2] = $135;
return;
} else {
$psize$2 = $135;
}
} else {
$229 = $114 & -2;
HEAP32[$113>>2] = $229;
$230 = $psize$1 | 1;
$231 = ((($p$1)) + 4|0);
HEAP32[$231>>2] = $230;
$232 = (($p$1) + ($psize$1)|0);
HEAP32[$232>>2] = $psize$1;
$psize$2 = $psize$1;
}
$233 = $psize$2 >>> 3;
$234 = ($psize$2>>>0)<(256);
if ($234) {
$235 = $233 << 1;
$236 = (71220 + ($235<<2)|0);
$237 = HEAP32[17795]|0;
$238 = 1 << $233;
$239 = $237 & $238;
$240 = ($239|0)==(0);
if ($240) {
$241 = $237 | $238;
HEAP32[17795] = $241;
$$pre = ((($236)) + 8|0);
$$pre$phiZ2D = $$pre;$F18$0 = $236;
} else {
$242 = ((($236)) + 8|0);
$243 = HEAP32[$242>>2]|0;
$244 = HEAP32[(71196)>>2]|0;
$245 = ($243>>>0)<($244>>>0);
if ($245) {
_abort();
// unreachable;
} else {
$$pre$phiZ2D = $242;$F18$0 = $243;
}
}
HEAP32[$$pre$phiZ2D>>2] = $p$1;
$246 = ((($F18$0)) + 12|0);
HEAP32[$246>>2] = $p$1;
$247 = ((($p$1)) + 8|0);
HEAP32[$247>>2] = $F18$0;
$248 = ((($p$1)) + 12|0);
HEAP32[$248>>2] = $236;
return;
}
$249 = $psize$2 >>> 8;
$250 = ($249|0)==(0);
if ($250) {
$I20$0 = 0;
} else {
$251 = ($psize$2>>>0)>(16777215);
if ($251) {
$I20$0 = 31;
} else {
$252 = (($249) + 1048320)|0;
$253 = $252 >>> 16;
$254 = $253 & 8;
$255 = $249 << $254;
$256 = (($255) + 520192)|0;
$257 = $256 >>> 16;
$258 = $257 & 4;
$259 = $258 | $254;
$260 = $255 << $258;
$261 = (($260) + 245760)|0;
$262 = $261 >>> 16;
$263 = $262 & 2;
$264 = $259 | $263;
$265 = (14 - ($264))|0;
$266 = $260 << $263;
$267 = $266 >>> 15;
$268 = (($265) + ($267))|0;
$269 = $268 << 1;
$270 = (($268) + 7)|0;
$271 = $psize$2 >>> $270;
$272 = $271 & 1;
$273 = $272 | $269;
$I20$0 = $273;
}
}
$274 = (71484 + ($I20$0<<2)|0);
$275 = ((($p$1)) + 28|0);
HEAP32[$275>>2] = $I20$0;
$276 = ((($p$1)) + 16|0);
$277 = ((($p$1)) + 20|0);
HEAP32[$277>>2] = 0;
HEAP32[$276>>2] = 0;
$278 = HEAP32[(71184)>>2]|0;
$279 = 1 << $I20$0;
$280 = $278 & $279;
$281 = ($280|0)==(0);
do {
if ($281) {
$282 = $278 | $279;
HEAP32[(71184)>>2] = $282;
HEAP32[$274>>2] = $p$1;
$283 = ((($p$1)) + 24|0);
HEAP32[$283>>2] = $274;
$284 = ((($p$1)) + 12|0);
HEAP32[$284>>2] = $p$1;
$285 = ((($p$1)) + 8|0);
HEAP32[$285>>2] = $p$1;
} else {
$286 = HEAP32[$274>>2]|0;
$287 = ($I20$0|0)==(31);
$288 = $I20$0 >>> 1;
$289 = (25 - ($288))|0;
$290 = $287 ? 0 : $289;
$291 = $psize$2 << $290;
$K21$0 = $291;$T$0 = $286;
while(1) {
$292 = ((($T$0)) + 4|0);
$293 = HEAP32[$292>>2]|0;
$294 = $293 & -8;
$295 = ($294|0)==($psize$2|0);
if ($295) {
$T$0$lcssa = $T$0;
label = 130;
break;
}
$296 = $K21$0 >>> 31;
$297 = (((($T$0)) + 16|0) + ($296<<2)|0);
$298 = $K21$0 << 1;
$299 = HEAP32[$297>>2]|0;
$300 = ($299|0)==(0|0);
if ($300) {
$$lcssa = $297;$T$0$lcssa48 = $T$0;
label = 127;
break;
} else {
$K21$0 = $298;$T$0 = $299;
}
}
if ((label|0) == 127) {
$301 = HEAP32[(71196)>>2]|0;
$302 = ($$lcssa>>>0)<($301>>>0);
if ($302) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa>>2] = $p$1;
$303 = ((($p$1)) + 24|0);
HEAP32[$303>>2] = $T$0$lcssa48;
$304 = ((($p$1)) + 12|0);
HEAP32[$304>>2] = $p$1;
$305 = ((($p$1)) + 8|0);
HEAP32[$305>>2] = $p$1;
break;
}
}
else if ((label|0) == 130) {
$306 = ((($T$0$lcssa)) + 8|0);
$307 = HEAP32[$306>>2]|0;
$308 = HEAP32[(71196)>>2]|0;
$309 = ($307>>>0)>=($308>>>0);
$not$ = ($T$0$lcssa>>>0)>=($308>>>0);
$310 = $309 & $not$;
if ($310) {
$311 = ((($307)) + 12|0);
HEAP32[$311>>2] = $p$1;
HEAP32[$306>>2] = $p$1;
$312 = ((($p$1)) + 8|0);
HEAP32[$312>>2] = $307;
$313 = ((($p$1)) + 12|0);
HEAP32[$313>>2] = $T$0$lcssa;
$314 = ((($p$1)) + 24|0);
HEAP32[$314>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
} while(0);
$315 = HEAP32[(71212)>>2]|0;
$316 = (($315) + -1)|0;
HEAP32[(71212)>>2] = $316;
$317 = ($316|0)==(0);
if ($317) {
$sp$0$in$i = (71636);
} else {
return;
}
while(1) {
$sp$0$i = HEAP32[$sp$0$in$i>>2]|0;
$318 = ($sp$0$i|0)==(0|0);
$319 = ((($sp$0$i)) + 8|0);
if ($318) {
break;
} else {
$sp$0$in$i = $319;
}
}
HEAP32[(71212)>>2] = -1;
return;
}
function _calloc($n_elements,$elem_size) {
$n_elements = $n_elements|0;
$elem_size = $elem_size|0;
var $$ = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $req$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($n_elements|0)==(0);
if ($0) {
$req$0 = 0;
} else {
$1 = Math_imul($elem_size, $n_elements)|0;
$2 = $elem_size | $n_elements;
$3 = ($2>>>0)>(65535);
if ($3) {
$4 = (($1>>>0) / ($n_elements>>>0))&-1;
$5 = ($4|0)==($elem_size|0);
$$ = $5 ? $1 : -1;
$req$0 = $$;
} else {
$req$0 = $1;
}
}
$6 = (_malloc($req$0)|0);
$7 = ($6|0)==(0|0);
if ($7) {
return ($6|0);
}
$8 = ((($6)) + -4|0);
$9 = HEAP32[$8>>2]|0;
$10 = $9 & 3;
$11 = ($10|0)==(0);
if ($11) {
return ($6|0);
}
_memset(($6|0),0,($req$0|0))|0;
return ($6|0);
}
function _realloc($oldmem,$bytes) {
$oldmem = $oldmem|0;
$bytes = $bytes|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
var $7 = 0, $8 = 0, $9 = 0, $mem$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($oldmem|0)==(0|0);
if ($0) {
$1 = (_malloc($bytes)|0);
$mem$1 = $1;
return ($mem$1|0);
}
$2 = ($bytes>>>0)>(4294967231);
if ($2) {
$3 = (___errno_location()|0);
HEAP32[$3>>2] = 12;
$mem$1 = 0;
return ($mem$1|0);
}
$4 = ($bytes>>>0)<(11);
$5 = (($bytes) + 11)|0;
$6 = $5 & -8;
$7 = $4 ? 16 : $6;
$8 = ((($oldmem)) + -8|0);
$9 = (_try_realloc_chunk($8,$7)|0);
$10 = ($9|0)==(0|0);
if (!($10)) {
$11 = ((($9)) + 8|0);
$mem$1 = $11;
return ($mem$1|0);
}
$12 = (_malloc($bytes)|0);
$13 = ($12|0)==(0|0);
if ($13) {
$mem$1 = 0;
return ($mem$1|0);
}
$14 = ((($oldmem)) + -4|0);
$15 = HEAP32[$14>>2]|0;
$16 = $15 & -8;
$17 = $15 & 3;
$18 = ($17|0)==(0);
$19 = $18 ? 8 : 4;
$20 = (($16) - ($19))|0;
$21 = ($20>>>0)<($bytes>>>0);
$22 = $21 ? $20 : $bytes;
_memcpy(($12|0),($oldmem|0),($22|0))|0;
_free($oldmem);
$mem$1 = $12;
return ($mem$1|0);
}
function _try_realloc_chunk($p,$nb) {
$p = $p|0;
$nb = $nb|0;
var $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0;
var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0;
var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0;
var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0;
var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $R$1 = 0, $R$1$lcssa = 0;
var $R$3 = 0, $RP$1 = 0, $RP$1$lcssa = 0, $cond = 0, $newp$2 = 0, $notlhs = 0, $notrhs = 0, $or$cond$not = 0, $or$cond3 = 0, $storemerge = 0, $storemerge1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($p)) + 4|0);
$1 = HEAP32[$0>>2]|0;
$2 = $1 & -8;
$3 = (($p) + ($2)|0);
$4 = HEAP32[(71196)>>2]|0;
$5 = $1 & 3;
$notlhs = ($p>>>0)>=($4>>>0);
$notrhs = ($5|0)!=(1);
$or$cond$not = $notrhs & $notlhs;
$6 = ($p>>>0)<($3>>>0);
$or$cond3 = $or$cond$not & $6;
if (!($or$cond3)) {
_abort();
// unreachable;
}
$7 = ((($3)) + 4|0);
$8 = HEAP32[$7>>2]|0;
$9 = $8 & 1;
$10 = ($9|0)==(0);
if ($10) {
_abort();
// unreachable;
}
$11 = ($5|0)==(0);
if ($11) {
$12 = ($nb>>>0)<(256);
if ($12) {
$newp$2 = 0;
return ($newp$2|0);
}
$13 = (($nb) + 4)|0;
$14 = ($2>>>0)<($13>>>0);
if (!($14)) {
$15 = (($2) - ($nb))|0;
$16 = HEAP32[(71660)>>2]|0;
$17 = $16 << 1;
$18 = ($15>>>0)>($17>>>0);
if (!($18)) {
$newp$2 = $p;
return ($newp$2|0);
}
}
$newp$2 = 0;
return ($newp$2|0);
}
$19 = ($2>>>0)<($nb>>>0);
if (!($19)) {
$20 = (($2) - ($nb))|0;
$21 = ($20>>>0)>(15);
if (!($21)) {
$newp$2 = $p;
return ($newp$2|0);
}
$22 = (($p) + ($nb)|0);
$23 = $1 & 1;
$24 = $23 | $nb;
$25 = $24 | 2;
HEAP32[$0>>2] = $25;
$26 = ((($22)) + 4|0);
$27 = $20 | 3;
HEAP32[$26>>2] = $27;
$28 = (($22) + ($20)|0);
$29 = ((($28)) + 4|0);
$30 = HEAP32[$29>>2]|0;
$31 = $30 | 1;
HEAP32[$29>>2] = $31;
_dispose_chunk($22,$20);
$newp$2 = $p;
return ($newp$2|0);
}
$32 = HEAP32[(71204)>>2]|0;
$33 = ($3|0)==($32|0);
if ($33) {
$34 = HEAP32[(71192)>>2]|0;
$35 = (($34) + ($2))|0;
$36 = ($35>>>0)>($nb>>>0);
if (!($36)) {
$newp$2 = 0;
return ($newp$2|0);
}
$37 = (($35) - ($nb))|0;
$38 = (($p) + ($nb)|0);
$39 = $1 & 1;
$40 = $39 | $nb;
$41 = $40 | 2;
HEAP32[$0>>2] = $41;
$42 = ((($38)) + 4|0);
$43 = $37 | 1;
HEAP32[$42>>2] = $43;
HEAP32[(71204)>>2] = $38;
HEAP32[(71192)>>2] = $37;
$newp$2 = $p;
return ($newp$2|0);
}
$44 = HEAP32[(71200)>>2]|0;
$45 = ($3|0)==($44|0);
if ($45) {
$46 = HEAP32[(71188)>>2]|0;
$47 = (($46) + ($2))|0;
$48 = ($47>>>0)<($nb>>>0);
if ($48) {
$newp$2 = 0;
return ($newp$2|0);
}
$49 = (($47) - ($nb))|0;
$50 = ($49>>>0)>(15);
if ($50) {
$51 = (($p) + ($nb)|0);
$52 = (($51) + ($49)|0);
$53 = $1 & 1;
$54 = $53 | $nb;
$55 = $54 | 2;
HEAP32[$0>>2] = $55;
$56 = ((($51)) + 4|0);
$57 = $49 | 1;
HEAP32[$56>>2] = $57;
HEAP32[$52>>2] = $49;
$58 = ((($52)) + 4|0);
$59 = HEAP32[$58>>2]|0;
$60 = $59 & -2;
HEAP32[$58>>2] = $60;
$storemerge = $51;$storemerge1 = $49;
} else {
$61 = $1 & 1;
$62 = $61 | $47;
$63 = $62 | 2;
HEAP32[$0>>2] = $63;
$64 = (($p) + ($47)|0);
$65 = ((($64)) + 4|0);
$66 = HEAP32[$65>>2]|0;
$67 = $66 | 1;
HEAP32[$65>>2] = $67;
$storemerge = 0;$storemerge1 = 0;
}
HEAP32[(71188)>>2] = $storemerge1;
HEAP32[(71200)>>2] = $storemerge;
$newp$2 = $p;
return ($newp$2|0);
}
$68 = $8 & 2;
$69 = ($68|0)==(0);
if (!($69)) {
$newp$2 = 0;
return ($newp$2|0);
}
$70 = $8 & -8;
$71 = (($70) + ($2))|0;
$72 = ($71>>>0)<($nb>>>0);
if ($72) {
$newp$2 = 0;
return ($newp$2|0);
}
$73 = (($71) - ($nb))|0;
$74 = $8 >>> 3;
$75 = ($8>>>0)<(256);
do {
if ($75) {
$76 = ((($3)) + 8|0);
$77 = HEAP32[$76>>2]|0;
$78 = ((($3)) + 12|0);
$79 = HEAP32[$78>>2]|0;
$80 = $74 << 1;
$81 = (71220 + ($80<<2)|0);
$82 = ($77|0)==($81|0);
if (!($82)) {
$83 = ($77>>>0)<($4>>>0);
if ($83) {
_abort();
// unreachable;
}
$84 = ((($77)) + 12|0);
$85 = HEAP32[$84>>2]|0;
$86 = ($85|0)==($3|0);
if (!($86)) {
_abort();
// unreachable;
}
}
$87 = ($79|0)==($77|0);
if ($87) {
$88 = 1 << $74;
$89 = $88 ^ -1;
$90 = HEAP32[17795]|0;
$91 = $90 & $89;
HEAP32[17795] = $91;
break;
}
$92 = ($79|0)==($81|0);
if ($92) {
$$pre = ((($79)) + 8|0);
$$pre$phiZ2D = $$pre;
} else {
$93 = ($79>>>0)<($4>>>0);
if ($93) {
_abort();
// unreachable;
}
$94 = ((($79)) + 8|0);
$95 = HEAP32[$94>>2]|0;
$96 = ($95|0)==($3|0);
if ($96) {
$$pre$phiZ2D = $94;
} else {
_abort();
// unreachable;
}
}
$97 = ((($77)) + 12|0);
HEAP32[$97>>2] = $79;
HEAP32[$$pre$phiZ2D>>2] = $77;
} else {
$98 = ((($3)) + 24|0);
$99 = HEAP32[$98>>2]|0;
$100 = ((($3)) + 12|0);
$101 = HEAP32[$100>>2]|0;
$102 = ($101|0)==($3|0);
do {
if ($102) {
$112 = ((($3)) + 16|0);
$113 = ((($112)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = ($114|0)==(0|0);
if ($115) {
$116 = HEAP32[$112>>2]|0;
$117 = ($116|0)==(0|0);
if ($117) {
$R$3 = 0;
break;
} else {
$R$1 = $116;$RP$1 = $112;
}
} else {
$R$1 = $114;$RP$1 = $113;
}
while(1) {
$118 = ((($R$1)) + 20|0);
$119 = HEAP32[$118>>2]|0;
$120 = ($119|0)==(0|0);
if (!($120)) {
$R$1 = $119;$RP$1 = $118;
continue;
}
$121 = ((($R$1)) + 16|0);
$122 = HEAP32[$121>>2]|0;
$123 = ($122|0)==(0|0);
if ($123) {
$R$1$lcssa = $R$1;$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $122;$RP$1 = $121;
}
}
$124 = ($RP$1$lcssa>>>0)<($4>>>0);
if ($124) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$lcssa>>2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$103 = ((($3)) + 8|0);
$104 = HEAP32[$103>>2]|0;
$105 = ($104>>>0)<($4>>>0);
if ($105) {
_abort();
// unreachable;
}
$106 = ((($104)) + 12|0);
$107 = HEAP32[$106>>2]|0;
$108 = ($107|0)==($3|0);
if (!($108)) {
_abort();
// unreachable;
}
$109 = ((($101)) + 8|0);
$110 = HEAP32[$109>>2]|0;
$111 = ($110|0)==($3|0);
if ($111) {
HEAP32[$106>>2] = $101;
HEAP32[$109>>2] = $104;
$R$3 = $101;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$125 = ($99|0)==(0|0);
if (!($125)) {
$126 = ((($3)) + 28|0);
$127 = HEAP32[$126>>2]|0;
$128 = (71484 + ($127<<2)|0);
$129 = HEAP32[$128>>2]|0;
$130 = ($3|0)==($129|0);
if ($130) {
HEAP32[$128>>2] = $R$3;
$cond = ($R$3|0)==(0|0);
if ($cond) {
$131 = 1 << $127;
$132 = $131 ^ -1;
$133 = HEAP32[(71184)>>2]|0;
$134 = $133 & $132;
HEAP32[(71184)>>2] = $134;
break;
}
} else {
$135 = HEAP32[(71196)>>2]|0;
$136 = ($99>>>0)<($135>>>0);
if ($136) {
_abort();
// unreachable;
}
$137 = ((($99)) + 16|0);
$138 = HEAP32[$137>>2]|0;
$139 = ($138|0)==($3|0);
if ($139) {
HEAP32[$137>>2] = $R$3;
} else {
$140 = ((($99)) + 20|0);
HEAP32[$140>>2] = $R$3;
}
$141 = ($R$3|0)==(0|0);
if ($141) {
break;
}
}
$142 = HEAP32[(71196)>>2]|0;
$143 = ($R$3>>>0)<($142>>>0);
if ($143) {
_abort();
// unreachable;
}
$144 = ((($R$3)) + 24|0);
HEAP32[$144>>2] = $99;
$145 = ((($3)) + 16|0);
$146 = HEAP32[$145>>2]|0;
$147 = ($146|0)==(0|0);
do {
if (!($147)) {
$148 = ($146>>>0)<($142>>>0);
if ($148) {
_abort();
// unreachable;
} else {
$149 = ((($R$3)) + 16|0);
HEAP32[$149>>2] = $146;
$150 = ((($146)) + 24|0);
HEAP32[$150>>2] = $R$3;
break;
}
}
} while(0);
$151 = ((($145)) + 4|0);
$152 = HEAP32[$151>>2]|0;
$153 = ($152|0)==(0|0);
if (!($153)) {
$154 = HEAP32[(71196)>>2]|0;
$155 = ($152>>>0)<($154>>>0);
if ($155) {
_abort();
// unreachable;
} else {
$156 = ((($R$3)) + 20|0);
HEAP32[$156>>2] = $152;
$157 = ((($152)) + 24|0);
HEAP32[$157>>2] = $R$3;
break;
}
}
}
}
} while(0);
$158 = ($73>>>0)<(16);
if ($158) {
$159 = $1 & 1;
$160 = $71 | $159;
$161 = $160 | 2;
HEAP32[$0>>2] = $161;
$162 = (($p) + ($71)|0);
$163 = ((($162)) + 4|0);
$164 = HEAP32[$163>>2]|0;
$165 = $164 | 1;
HEAP32[$163>>2] = $165;
$newp$2 = $p;
return ($newp$2|0);
} else {
$166 = (($p) + ($nb)|0);
$167 = $1 & 1;
$168 = $167 | $nb;
$169 = $168 | 2;
HEAP32[$0>>2] = $169;
$170 = ((($166)) + 4|0);
$171 = $73 | 3;
HEAP32[$170>>2] = $171;
$172 = (($166) + ($73)|0);
$173 = ((($172)) + 4|0);
$174 = HEAP32[$173>>2]|0;
$175 = $174 | 1;
HEAP32[$173>>2] = $175;
_dispose_chunk($166,$73);
$newp$2 = $p;
return ($newp$2|0);
}
return (0)|0;
}
function _dispose_chunk($p,$psize) {
$p = $p|0;
$psize = $psize|0;
var $$1 = 0, $$14 = 0, $$2 = 0, $$lcssa = 0, $$pre = 0, $$pre$phi22Z2D = 0, $$pre$phi24Z2D = 0, $$pre$phiZ2D = 0, $$pre21 = 0, $$pre23 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0;
var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0;
var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0;
var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0;
var $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0;
var $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0;
var $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0;
var $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0;
var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0;
var $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0;
var $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0;
var $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0;
var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0;
var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F17$0 = 0, $I20$0 = 0, $K21$0 = 0, $R$1 = 0, $R$1$lcssa = 0;
var $R$3 = 0, $R7$1 = 0, $R7$1$lcssa = 0, $R7$3 = 0, $RP$1 = 0, $RP$1$lcssa = 0, $RP9$1 = 0, $RP9$1$lcssa = 0, $T$0 = 0, $T$0$lcssa = 0, $T$0$lcssa30 = 0, $cond = 0, $cond16 = 0, $not$ = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (($p) + ($psize)|0);
$1 = ((($p)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = $2 & 1;
$4 = ($3|0)==(0);
do {
if ($4) {
$5 = HEAP32[$p>>2]|0;
$6 = $2 & 3;
$7 = ($6|0)==(0);
if ($7) {
return;
}
$8 = (0 - ($5))|0;
$9 = (($p) + ($8)|0);
$10 = (($5) + ($psize))|0;
$11 = HEAP32[(71196)>>2]|0;
$12 = ($9>>>0)<($11>>>0);
if ($12) {
_abort();
// unreachable;
}
$13 = HEAP32[(71200)>>2]|0;
$14 = ($9|0)==($13|0);
if ($14) {
$99 = ((($0)) + 4|0);
$100 = HEAP32[$99>>2]|0;
$101 = $100 & 3;
$102 = ($101|0)==(3);
if (!($102)) {
$$1 = $9;$$14 = $10;
break;
}
HEAP32[(71188)>>2] = $10;
$103 = $100 & -2;
HEAP32[$99>>2] = $103;
$104 = $10 | 1;
$105 = ((($9)) + 4|0);
HEAP32[$105>>2] = $104;
$106 = (($9) + ($10)|0);
HEAP32[$106>>2] = $10;
return;
}
$15 = $5 >>> 3;
$16 = ($5>>>0)<(256);
if ($16) {
$17 = ((($9)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($9)) + 12|0);
$20 = HEAP32[$19>>2]|0;
$21 = $15 << 1;
$22 = (71220 + ($21<<2)|0);
$23 = ($18|0)==($22|0);
if (!($23)) {
$24 = ($18>>>0)<($11>>>0);
if ($24) {
_abort();
// unreachable;
}
$25 = ((($18)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = ($26|0)==($9|0);
if (!($27)) {
_abort();
// unreachable;
}
}
$28 = ($20|0)==($18|0);
if ($28) {
$29 = 1 << $15;
$30 = $29 ^ -1;
$31 = HEAP32[17795]|0;
$32 = $31 & $30;
HEAP32[17795] = $32;
$$1 = $9;$$14 = $10;
break;
}
$33 = ($20|0)==($22|0);
if ($33) {
$$pre23 = ((($20)) + 8|0);
$$pre$phi24Z2D = $$pre23;
} else {
$34 = ($20>>>0)<($11>>>0);
if ($34) {
_abort();
// unreachable;
}
$35 = ((($20)) + 8|0);
$36 = HEAP32[$35>>2]|0;
$37 = ($36|0)==($9|0);
if ($37) {
$$pre$phi24Z2D = $35;
} else {
_abort();
// unreachable;
}
}
$38 = ((($18)) + 12|0);
HEAP32[$38>>2] = $20;
HEAP32[$$pre$phi24Z2D>>2] = $18;
$$1 = $9;$$14 = $10;
break;
}
$39 = ((($9)) + 24|0);
$40 = HEAP32[$39>>2]|0;
$41 = ((($9)) + 12|0);
$42 = HEAP32[$41>>2]|0;
$43 = ($42|0)==($9|0);
do {
if ($43) {
$53 = ((($9)) + 16|0);
$54 = ((($53)) + 4|0);
$55 = HEAP32[$54>>2]|0;
$56 = ($55|0)==(0|0);
if ($56) {
$57 = HEAP32[$53>>2]|0;
$58 = ($57|0)==(0|0);
if ($58) {
$R$3 = 0;
break;
} else {
$R$1 = $57;$RP$1 = $53;
}
} else {
$R$1 = $55;$RP$1 = $54;
}
while(1) {
$59 = ((($R$1)) + 20|0);
$60 = HEAP32[$59>>2]|0;
$61 = ($60|0)==(0|0);
if (!($61)) {
$R$1 = $60;$RP$1 = $59;
continue;
}
$62 = ((($R$1)) + 16|0);
$63 = HEAP32[$62>>2]|0;
$64 = ($63|0)==(0|0);
if ($64) {
$R$1$lcssa = $R$1;$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $63;$RP$1 = $62;
}
}
$65 = ($RP$1$lcssa>>>0)<($11>>>0);
if ($65) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$lcssa>>2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$44 = ((($9)) + 8|0);
$45 = HEAP32[$44>>2]|0;
$46 = ($45>>>0)<($11>>>0);
if ($46) {
_abort();
// unreachable;
}
$47 = ((($45)) + 12|0);
$48 = HEAP32[$47>>2]|0;
$49 = ($48|0)==($9|0);
if (!($49)) {
_abort();
// unreachable;
}
$50 = ((($42)) + 8|0);
$51 = HEAP32[$50>>2]|0;
$52 = ($51|0)==($9|0);
if ($52) {
HEAP32[$47>>2] = $42;
HEAP32[$50>>2] = $45;
$R$3 = $42;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$66 = ($40|0)==(0|0);
if ($66) {
$$1 = $9;$$14 = $10;
} else {
$67 = ((($9)) + 28|0);
$68 = HEAP32[$67>>2]|0;
$69 = (71484 + ($68<<2)|0);
$70 = HEAP32[$69>>2]|0;
$71 = ($9|0)==($70|0);
if ($71) {
HEAP32[$69>>2] = $R$3;
$cond = ($R$3|0)==(0|0);
if ($cond) {
$72 = 1 << $68;
$73 = $72 ^ -1;
$74 = HEAP32[(71184)>>2]|0;
$75 = $74 & $73;
HEAP32[(71184)>>2] = $75;
$$1 = $9;$$14 = $10;
break;
}
} else {
$76 = HEAP32[(71196)>>2]|0;
$77 = ($40>>>0)<($76>>>0);
if ($77) {
_abort();
// unreachable;
}
$78 = ((($40)) + 16|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($79|0)==($9|0);
if ($80) {
HEAP32[$78>>2] = $R$3;
} else {
$81 = ((($40)) + 20|0);
HEAP32[$81>>2] = $R$3;
}
$82 = ($R$3|0)==(0|0);
if ($82) {
$$1 = $9;$$14 = $10;
break;
}
}
$83 = HEAP32[(71196)>>2]|0;
$84 = ($R$3>>>0)<($83>>>0);
if ($84) {
_abort();
// unreachable;
}
$85 = ((($R$3)) + 24|0);
HEAP32[$85>>2] = $40;
$86 = ((($9)) + 16|0);
$87 = HEAP32[$86>>2]|0;
$88 = ($87|0)==(0|0);
do {
if (!($88)) {
$89 = ($87>>>0)<($83>>>0);
if ($89) {
_abort();
// unreachable;
} else {
$90 = ((($R$3)) + 16|0);
HEAP32[$90>>2] = $87;
$91 = ((($87)) + 24|0);
HEAP32[$91>>2] = $R$3;
break;
}
}
} while(0);
$92 = ((($86)) + 4|0);
$93 = HEAP32[$92>>2]|0;
$94 = ($93|0)==(0|0);
if ($94) {
$$1 = $9;$$14 = $10;
} else {
$95 = HEAP32[(71196)>>2]|0;
$96 = ($93>>>0)<($95>>>0);
if ($96) {
_abort();
// unreachable;
} else {
$97 = ((($R$3)) + 20|0);
HEAP32[$97>>2] = $93;
$98 = ((($93)) + 24|0);
HEAP32[$98>>2] = $R$3;
$$1 = $9;$$14 = $10;
break;
}
}
}
} else {
$$1 = $p;$$14 = $psize;
}
} while(0);
$107 = HEAP32[(71196)>>2]|0;
$108 = ($0>>>0)<($107>>>0);
if ($108) {
_abort();
// unreachable;
}
$109 = ((($0)) + 4|0);
$110 = HEAP32[$109>>2]|0;
$111 = $110 & 2;
$112 = ($111|0)==(0);
if ($112) {
$113 = HEAP32[(71204)>>2]|0;
$114 = ($0|0)==($113|0);
if ($114) {
$115 = HEAP32[(71192)>>2]|0;
$116 = (($115) + ($$14))|0;
HEAP32[(71192)>>2] = $116;
HEAP32[(71204)>>2] = $$1;
$117 = $116 | 1;
$118 = ((($$1)) + 4|0);
HEAP32[$118>>2] = $117;
$119 = HEAP32[(71200)>>2]|0;
$120 = ($$1|0)==($119|0);
if (!($120)) {
return;
}
HEAP32[(71200)>>2] = 0;
HEAP32[(71188)>>2] = 0;
return;
}
$121 = HEAP32[(71200)>>2]|0;
$122 = ($0|0)==($121|0);
if ($122) {
$123 = HEAP32[(71188)>>2]|0;
$124 = (($123) + ($$14))|0;
HEAP32[(71188)>>2] = $124;
HEAP32[(71200)>>2] = $$1;
$125 = $124 | 1;
$126 = ((($$1)) + 4|0);
HEAP32[$126>>2] = $125;
$127 = (($$1) + ($124)|0);
HEAP32[$127>>2] = $124;
return;
}
$128 = $110 & -8;
$129 = (($128) + ($$14))|0;
$130 = $110 >>> 3;
$131 = ($110>>>0)<(256);
do {
if ($131) {
$132 = ((($0)) + 8|0);
$133 = HEAP32[$132>>2]|0;
$134 = ((($0)) + 12|0);
$135 = HEAP32[$134>>2]|0;
$136 = $130 << 1;
$137 = (71220 + ($136<<2)|0);
$138 = ($133|0)==($137|0);
if (!($138)) {
$139 = ($133>>>0)<($107>>>0);
if ($139) {
_abort();
// unreachable;
}
$140 = ((($133)) + 12|0);
$141 = HEAP32[$140>>2]|0;
$142 = ($141|0)==($0|0);
if (!($142)) {
_abort();
// unreachable;
}
}
$143 = ($135|0)==($133|0);
if ($143) {
$144 = 1 << $130;
$145 = $144 ^ -1;
$146 = HEAP32[17795]|0;
$147 = $146 & $145;
HEAP32[17795] = $147;
break;
}
$148 = ($135|0)==($137|0);
if ($148) {
$$pre21 = ((($135)) + 8|0);
$$pre$phi22Z2D = $$pre21;
} else {
$149 = ($135>>>0)<($107>>>0);
if ($149) {
_abort();
// unreachable;
}
$150 = ((($135)) + 8|0);
$151 = HEAP32[$150>>2]|0;
$152 = ($151|0)==($0|0);
if ($152) {
$$pre$phi22Z2D = $150;
} else {
_abort();
// unreachable;
}
}
$153 = ((($133)) + 12|0);
HEAP32[$153>>2] = $135;
HEAP32[$$pre$phi22Z2D>>2] = $133;
} else {
$154 = ((($0)) + 24|0);
$155 = HEAP32[$154>>2]|0;
$156 = ((($0)) + 12|0);
$157 = HEAP32[$156>>2]|0;
$158 = ($157|0)==($0|0);
do {
if ($158) {
$168 = ((($0)) + 16|0);
$169 = ((($168)) + 4|0);
$170 = HEAP32[$169>>2]|0;
$171 = ($170|0)==(0|0);
if ($171) {
$172 = HEAP32[$168>>2]|0;
$173 = ($172|0)==(0|0);
if ($173) {
$R7$3 = 0;
break;
} else {
$R7$1 = $172;$RP9$1 = $168;
}
} else {
$R7$1 = $170;$RP9$1 = $169;
}
while(1) {
$174 = ((($R7$1)) + 20|0);
$175 = HEAP32[$174>>2]|0;
$176 = ($175|0)==(0|0);
if (!($176)) {
$R7$1 = $175;$RP9$1 = $174;
continue;
}
$177 = ((($R7$1)) + 16|0);
$178 = HEAP32[$177>>2]|0;
$179 = ($178|0)==(0|0);
if ($179) {
$R7$1$lcssa = $R7$1;$RP9$1$lcssa = $RP9$1;
break;
} else {
$R7$1 = $178;$RP9$1 = $177;
}
}
$180 = ($RP9$1$lcssa>>>0)<($107>>>0);
if ($180) {
_abort();
// unreachable;
} else {
HEAP32[$RP9$1$lcssa>>2] = 0;
$R7$3 = $R7$1$lcssa;
break;
}
} else {
$159 = ((($0)) + 8|0);
$160 = HEAP32[$159>>2]|0;
$161 = ($160>>>0)<($107>>>0);
if ($161) {
_abort();
// unreachable;
}
$162 = ((($160)) + 12|0);
$163 = HEAP32[$162>>2]|0;
$164 = ($163|0)==($0|0);
if (!($164)) {
_abort();
// unreachable;
}
$165 = ((($157)) + 8|0);
$166 = HEAP32[$165>>2]|0;
$167 = ($166|0)==($0|0);
if ($167) {
HEAP32[$162>>2] = $157;
HEAP32[$165>>2] = $160;
$R7$3 = $157;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$181 = ($155|0)==(0|0);
if (!($181)) {
$182 = ((($0)) + 28|0);
$183 = HEAP32[$182>>2]|0;
$184 = (71484 + ($183<<2)|0);
$185 = HEAP32[$184>>2]|0;
$186 = ($0|0)==($185|0);
if ($186) {
HEAP32[$184>>2] = $R7$3;
$cond16 = ($R7$3|0)==(0|0);
if ($cond16) {
$187 = 1 << $183;
$188 = $187 ^ -1;
$189 = HEAP32[(71184)>>2]|0;
$190 = $189 & $188;
HEAP32[(71184)>>2] = $190;
break;
}
} else {
$191 = HEAP32[(71196)>>2]|0;
$192 = ($155>>>0)<($191>>>0);
if ($192) {
_abort();
// unreachable;
}
$193 = ((($155)) + 16|0);
$194 = HEAP32[$193>>2]|0;
$195 = ($194|0)==($0|0);
if ($195) {
HEAP32[$193>>2] = $R7$3;
} else {
$196 = ((($155)) + 20|0);
HEAP32[$196>>2] = $R7$3;
}
$197 = ($R7$3|0)==(0|0);
if ($197) {
break;
}
}
$198 = HEAP32[(71196)>>2]|0;
$199 = ($R7$3>>>0)<($198>>>0);
if ($199) {
_abort();
// unreachable;
}
$200 = ((($R7$3)) + 24|0);
HEAP32[$200>>2] = $155;
$201 = ((($0)) + 16|0);
$202 = HEAP32[$201>>2]|0;
$203 = ($202|0)==(0|0);
do {
if (!($203)) {
$204 = ($202>>>0)<($198>>>0);
if ($204) {
_abort();
// unreachable;
} else {
$205 = ((($R7$3)) + 16|0);
HEAP32[$205>>2] = $202;
$206 = ((($202)) + 24|0);
HEAP32[$206>>2] = $R7$3;
break;
}
}
} while(0);
$207 = ((($201)) + 4|0);
$208 = HEAP32[$207>>2]|0;
$209 = ($208|0)==(0|0);
if (!($209)) {
$210 = HEAP32[(71196)>>2]|0;
$211 = ($208>>>0)<($210>>>0);
if ($211) {
_abort();
// unreachable;
} else {
$212 = ((($R7$3)) + 20|0);
HEAP32[$212>>2] = $208;
$213 = ((($208)) + 24|0);
HEAP32[$213>>2] = $R7$3;
break;
}
}
}
}
} while(0);
$214 = $129 | 1;
$215 = ((($$1)) + 4|0);
HEAP32[$215>>2] = $214;
$216 = (($$1) + ($129)|0);
HEAP32[$216>>2] = $129;
$217 = HEAP32[(71200)>>2]|0;
$218 = ($$1|0)==($217|0);
if ($218) {
HEAP32[(71188)>>2] = $129;
return;
} else {
$$2 = $129;
}
} else {
$219 = $110 & -2;
HEAP32[$109>>2] = $219;
$220 = $$14 | 1;
$221 = ((($$1)) + 4|0);
HEAP32[$221>>2] = $220;
$222 = (($$1) + ($$14)|0);
HEAP32[$222>>2] = $$14;
$$2 = $$14;
}
$223 = $$2 >>> 3;
$224 = ($$2>>>0)<(256);
if ($224) {
$225 = $223 << 1;
$226 = (71220 + ($225<<2)|0);
$227 = HEAP32[17795]|0;
$228 = 1 << $223;
$229 = $227 & $228;
$230 = ($229|0)==(0);
if ($230) {
$231 = $227 | $228;
HEAP32[17795] = $231;
$$pre = ((($226)) + 8|0);
$$pre$phiZ2D = $$pre;$F17$0 = $226;
} else {
$232 = ((($226)) + 8|0);
$233 = HEAP32[$232>>2]|0;
$234 = HEAP32[(71196)>>2]|0;
$235 = ($233>>>0)<($234>>>0);
if ($235) {
_abort();
// unreachable;
} else {
$$pre$phiZ2D = $232;$F17$0 = $233;
}
}
HEAP32[$$pre$phiZ2D>>2] = $$1;
$236 = ((($F17$0)) + 12|0);
HEAP32[$236>>2] = $$1;
$237 = ((($$1)) + 8|0);
HEAP32[$237>>2] = $F17$0;
$238 = ((($$1)) + 12|0);
HEAP32[$238>>2] = $226;
return;
}
$239 = $$2 >>> 8;
$240 = ($239|0)==(0);
if ($240) {
$I20$0 = 0;
} else {
$241 = ($$2>>>0)>(16777215);
if ($241) {
$I20$0 = 31;
} else {
$242 = (($239) + 1048320)|0;
$243 = $242 >>> 16;
$244 = $243 & 8;
$245 = $239 << $244;
$246 = (($245) + 520192)|0;
$247 = $246 >>> 16;
$248 = $247 & 4;
$249 = $248 | $244;
$250 = $245 << $248;
$251 = (($250) + 245760)|0;
$252 = $251 >>> 16;
$253 = $252 & 2;
$254 = $249 | $253;
$255 = (14 - ($254))|0;
$256 = $250 << $253;
$257 = $256 >>> 15;
$258 = (($255) + ($257))|0;
$259 = $258 << 1;
$260 = (($258) + 7)|0;
$261 = $$2 >>> $260;
$262 = $261 & 1;
$263 = $262 | $259;
$I20$0 = $263;
}
}
$264 = (71484 + ($I20$0<<2)|0);
$265 = ((($$1)) + 28|0);
HEAP32[$265>>2] = $I20$0;
$266 = ((($$1)) + 16|0);
$267 = ((($$1)) + 20|0);
HEAP32[$267>>2] = 0;
HEAP32[$266>>2] = 0;
$268 = HEAP32[(71184)>>2]|0;
$269 = 1 << $I20$0;
$270 = $268 & $269;
$271 = ($270|0)==(0);
if ($271) {
$272 = $268 | $269;
HEAP32[(71184)>>2] = $272;
HEAP32[$264>>2] = $$1;
$273 = ((($$1)) + 24|0);
HEAP32[$273>>2] = $264;
$274 = ((($$1)) + 12|0);
HEAP32[$274>>2] = $$1;
$275 = ((($$1)) + 8|0);
HEAP32[$275>>2] = $$1;
return;
}
$276 = HEAP32[$264>>2]|0;
$277 = ($I20$0|0)==(31);
$278 = $I20$0 >>> 1;
$279 = (25 - ($278))|0;
$280 = $277 ? 0 : $279;
$281 = $$2 << $280;
$K21$0 = $281;$T$0 = $276;
while(1) {
$282 = ((($T$0)) + 4|0);
$283 = HEAP32[$282>>2]|0;
$284 = $283 & -8;
$285 = ($284|0)==($$2|0);
if ($285) {
$T$0$lcssa = $T$0;
label = 127;
break;
}
$286 = $K21$0 >>> 31;
$287 = (((($T$0)) + 16|0) + ($286<<2)|0);
$288 = $K21$0 << 1;
$289 = HEAP32[$287>>2]|0;
$290 = ($289|0)==(0|0);
if ($290) {
$$lcssa = $287;$T$0$lcssa30 = $T$0;
label = 124;
break;
} else {
$K21$0 = $288;$T$0 = $289;
}
}
if ((label|0) == 124) {
$291 = HEAP32[(71196)>>2]|0;
$292 = ($$lcssa>>>0)<($291>>>0);
if ($292) {
_abort();
// unreachable;
}
HEAP32[$$lcssa>>2] = $$1;
$293 = ((($$1)) + 24|0);
HEAP32[$293>>2] = $T$0$lcssa30;
$294 = ((($$1)) + 12|0);
HEAP32[$294>>2] = $$1;
$295 = ((($$1)) + 8|0);
HEAP32[$295>>2] = $$1;
return;
}
else if ((label|0) == 127) {
$296 = ((($T$0$lcssa)) + 8|0);
$297 = HEAP32[$296>>2]|0;
$298 = HEAP32[(71196)>>2]|0;
$299 = ($297>>>0)>=($298>>>0);
$not$ = ($T$0$lcssa>>>0)>=($298>>>0);
$300 = $299 & $not$;
if (!($300)) {
_abort();
// unreachable;
}
$301 = ((($297)) + 12|0);
HEAP32[$301>>2] = $$1;
HEAP32[$296>>2] = $$1;
$302 = ((($$1)) + 8|0);
HEAP32[$302>>2] = $297;
$303 = ((($$1)) + 12|0);
HEAP32[$303>>2] = $T$0$lcssa;
$304 = ((($$1)) + 24|0);
HEAP32[$304>>2] = 0;
return;
}
}
function runPostSets() {
}
function _i64Subtract(a, b, c, d) {
a = a|0; b = b|0; c = c|0; d = d|0;
var l = 0, h = 0;
l = (a - c)>>>0;
h = (b - d)>>>0;
h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
return ((tempRet0 = h,l|0)|0);
}
function _i64Add(a, b, c, d) {
/*
x = a + b*2^32
y = c + d*2^32
result = l + h*2^32
*/
a = a|0; b = b|0; c = c|0; d = d|0;
var l = 0, h = 0;
l = (a + c)>>>0;
h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
return ((tempRet0 = h,l|0)|0);
}
function _bitshift64Ashr(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
tempRet0 = high >> bits;
return (low >>> bits) | ((high&ander) << (32 - bits));
}
tempRet0 = (high|0) < 0 ? -1 : 0;
return (high >> (bits - 32))|0;
}
function _bitshift64Lshr(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
tempRet0 = high >>> bits;
return (low >>> bits) | ((high&ander) << (32 - bits));
}
tempRet0 = 0;
return (high >>> (bits - 32))|0;
}
function _memcpy(dest, src, num) {
dest = dest|0; src = src|0; num = num|0;
var ret = 0;
if ((num|0) >= 4096) return _emscripten_memcpy_big(dest|0, src|0, num|0)|0;
ret = dest|0;
if ((dest&3) == (src&3)) {
while (dest & 3) {
if ((num|0) == 0) return ret|0;
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
dest = (dest+1)|0;
src = (src+1)|0;
num = (num-1)|0;
}
while ((num|0) >= 4) {
HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
dest = (dest+4)|0;
src = (src+4)|0;
num = (num-4)|0;
}
}
while ((num|0) > 0) {
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
dest = (dest+1)|0;
src = (src+1)|0;
num = (num-1)|0;
}
return ret|0;
}
function _memmove(dest, src, num) {
dest = dest|0; src = src|0; num = num|0;
var ret = 0;
if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) {
// Unlikely case: Copy backwards in a safe manner
ret = dest;
src = (src + num)|0;
dest = (dest + num)|0;
while ((num|0) > 0) {
dest = (dest - 1)|0;
src = (src - 1)|0;
num = (num - 1)|0;
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
}
dest = ret;
} else {
_memcpy(dest, src, num) | 0;
}
return dest | 0;
}
function _memset(ptr, value, num) {
ptr = ptr|0; value = value|0; num = num|0;
var stop = 0, value4 = 0, stop4 = 0, unaligned = 0;
stop = (ptr + num)|0;
if ((num|0) >= 20) {
// This is unaligned, but quite large, so work hard to get to aligned settings
value = value & 0xff;
unaligned = ptr & 3;
value4 = value | (value << 8) | (value << 16) | (value << 24);
stop4 = stop & ~3;
if (unaligned) {
unaligned = (ptr + 4 - unaligned)|0;
while ((ptr|0) < (unaligned|0)) { // no need to check for stop, since we have large num
HEAP8[((ptr)>>0)]=value;
ptr = (ptr+1)|0;
}
}
while ((ptr|0) < (stop4|0)) {
HEAP32[((ptr)>>2)]=value4;
ptr = (ptr+4)|0;
}
}
while ((ptr|0) < (stop|0)) {
HEAP8[((ptr)>>0)]=value;
ptr = (ptr+1)|0;
}
return (ptr-num)|0;
}
function _llvm_cttz_i32(x) {
x = x|0;
var ret = 0;
ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0);
if ((ret|0) < 8) return ret|0;
ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0);
if ((ret|0) < 8) return (ret + 8)|0;
ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0);
if ((ret|0) < 8) return (ret + 16)|0;
return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0;
}
function _llvm_bswap_i32(x) {
x = x|0;
return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0;
}
function _bitshift64Shl(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits));
return low << bits;
}
tempRet0 = low << (bits - 32);
return 0;
}
// ======== compiled code from system/lib/compiler-rt , see readme therein
function ___muldsi3($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
$1 = $a & 65535;
$2 = $b & 65535;
$3 = Math_imul($2, $1) | 0;
$6 = $a >>> 16;
$8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
$11 = $b >>> 16;
$12 = Math_imul($11, $1) | 0;
return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
}
function ___divdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, $7$0 = 0, $7$1 = 0, $8$0 = 0, $10$0 = 0;
$1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$4$0 = _i64Subtract($1$0 ^ $a$0 | 0, $1$1 ^ $a$1 | 0, $1$0 | 0, $1$1 | 0) | 0;
$4$1 = tempRet0;
$6$0 = _i64Subtract($2$0 ^ $b$0 | 0, $2$1 ^ $b$1 | 0, $2$0 | 0, $2$1 | 0) | 0;
$7$0 = $2$0 ^ $1$0;
$7$1 = $2$1 ^ $1$1;
$8$0 = ___udivmoddi4($4$0, $4$1, $6$0, tempRet0, 0) | 0;
$10$0 = _i64Subtract($8$0 ^ $7$0 | 0, tempRet0 ^ $7$1 | 0, $7$0 | 0, $7$1 | 0) | 0;
return $10$0 | 0;
}
function ___remdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $rem = 0, $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, $10$0 = 0, $10$1 = 0, __stackBase__ = 0;
__stackBase__ = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rem = __stackBase__ | 0;
$1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$4$0 = _i64Subtract($1$0 ^ $a$0 | 0, $1$1 ^ $a$1 | 0, $1$0 | 0, $1$1 | 0) | 0;
$4$1 = tempRet0;
$6$0 = _i64Subtract($2$0 ^ $b$0 | 0, $2$1 ^ $b$1 | 0, $2$0 | 0, $2$1 | 0) | 0;
___udivmoddi4($4$0, $4$1, $6$0, tempRet0, $rem) | 0;
$10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0 | 0, HEAP32[$rem + 4 >> 2] ^ $1$1 | 0, $1$0 | 0, $1$1 | 0) | 0;
$10$1 = tempRet0;
STACKTOP = __stackBase__;
return (tempRet0 = $10$1, $10$0) | 0;
}
function ___muldi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0;
$x_sroa_0_0_extract_trunc = $a$0;
$y_sroa_0_0_extract_trunc = $b$0;
$1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
$1$1 = tempRet0;
$2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0;
}
function ___udivdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $1$0 = 0;
$1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0;
return $1$0 | 0;
}
function ___uremdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $rem = 0, __stackBase__ = 0;
__stackBase__ = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rem = __stackBase__ | 0;
___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0;
STACKTOP = __stackBase__;
return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0;
}
function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
$rem = $rem | 0;
var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0;
$n_sroa_0_0_extract_trunc = $a$0;
$n_sroa_1_4_extract_shift$0 = $a$1;
$n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0;
$d_sroa_0_0_extract_trunc = $b$0;
$d_sroa_1_4_extract_shift$0 = $b$1;
$d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0;
if (($n_sroa_1_4_extract_trunc | 0) == 0) {
$4 = ($rem | 0) != 0;
if (($d_sroa_1_4_extract_trunc | 0) == 0) {
if ($4) {
HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0);
HEAP32[$rem + 4 >> 2] = 0;
}
$_0$1 = 0;
$_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
if (!$4) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
}
$17 = ($d_sroa_1_4_extract_trunc | 0) == 0;
do {
if (($d_sroa_0_0_extract_trunc | 0) == 0) {
if ($17) {
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0);
HEAP32[$rem + 4 >> 2] = 0;
}
$_0$1 = 0;
$_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
if (($n_sroa_0_0_extract_trunc | 0) == 0) {
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = 0;
HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0);
}
$_0$1 = 0;
$_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$37 = $d_sroa_1_4_extract_trunc - 1 | 0;
if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) {
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = 0 | $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0;
}
$_0$1 = 0;
$_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0);
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0;
$51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
if ($51 >>> 0 <= 30) {
$57 = $51 + 1 | 0;
$58 = 31 - $51 | 0;
$sr_1_ph = $57;
$r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0);
$r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0);
$q_sroa_0_1_ph = 0;
$q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58;
break;
}
if (($rem | 0) == 0) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = 0 | $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
if (!$17) {
$117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0;
$119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
if ($119 >>> 0 <= 31) {
$125 = $119 + 1 | 0;
$126 = 31 - $119 | 0;
$130 = $119 - 31 >> 31;
$sr_1_ph = $125;
$r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126;
$r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130;
$q_sroa_0_1_ph = 0;
$q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126;
break;
}
if (($rem | 0) == 0) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = 0 | $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$66 = $d_sroa_0_0_extract_trunc - 1 | 0;
if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) {
$86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0;
$88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
$89 = 64 - $88 | 0;
$91 = 32 - $88 | 0;
$92 = $91 >> 31;
$95 = $88 - 32 | 0;
$105 = $95 >> 31;
$sr_1_ph = $88;
$r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105;
$r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0);
$q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92;
$q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31;
break;
}
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc;
HEAP32[$rem + 4 >> 2] = 0;
}
if (($d_sroa_0_0_extract_trunc | 0) == 1) {
$_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$0 = 0 | $a$0 & -1;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
$78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0;
$_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0);
$_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
}
} while (0);
if (($sr_1_ph | 0) == 0) {
$q_sroa_1_1_lcssa = $q_sroa_1_1_ph;
$q_sroa_0_1_lcssa = $q_sroa_0_1_ph;
$r_sroa_1_1_lcssa = $r_sroa_1_1_ph;
$r_sroa_0_1_lcssa = $r_sroa_0_1_ph;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = 0;
} else {
$d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1;
$d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0;
$137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0;
$137$1 = tempRet0;
$q_sroa_1_1198 = $q_sroa_1_1_ph;
$q_sroa_0_1199 = $q_sroa_0_1_ph;
$r_sroa_1_1200 = $r_sroa_1_1_ph;
$r_sroa_0_1201 = $r_sroa_0_1_ph;
$sr_1202 = $sr_1_ph;
$carry_0203 = 0;
while (1) {
$147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1;
$149 = $carry_0203 | $q_sroa_0_1199 << 1;
$r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31);
$r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0;
_i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0;
$150$1 = tempRet0;
$151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1;
$152 = $151$0 & 1;
$154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0;
$r_sroa_0_0_extract_trunc = $154$0;
$r_sroa_1_4_extract_trunc = tempRet0;
$155 = $sr_1202 - 1 | 0;
if (($155 | 0) == 0) {
break;
} else {
$q_sroa_1_1198 = $147;
$q_sroa_0_1199 = $149;
$r_sroa_1_1200 = $r_sroa_1_4_extract_trunc;
$r_sroa_0_1201 = $r_sroa_0_0_extract_trunc;
$sr_1202 = $155;
$carry_0203 = $152;
}
}
$q_sroa_1_1_lcssa = $147;
$q_sroa_0_1_lcssa = $149;
$r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc;
$r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = $152;
}
$q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa;
$q_sroa_0_0_insert_ext75$1 = 0;
$q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1;
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa;
HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0;
}
$_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1;
$_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
// =======================================================================
function dynCall_iiii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
return FUNCTION_TABLE_iiii[index&127](a1|0,a2|0,a3|0)|0;
}
function dynCall_viiiii(index,a1,a2,a3,a4,a5) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0;
FUNCTION_TABLE_viiiii[index&127](a1|0,a2|0,a3|0,a4|0,a5|0);
}
function dynCall_vi(index,a1) {
index = index|0;
a1=a1|0;
FUNCTION_TABLE_vi[index&127](a1|0);
}
function dynCall_vii(index,a1,a2) {
index = index|0;
a1=a1|0; a2=a2|0;
FUNCTION_TABLE_vii[index&63](a1|0,a2|0);
}
function dynCall_ii(index,a1) {
index = index|0;
a1=a1|0;
return FUNCTION_TABLE_ii[index&63](a1|0)|0;
}
function dynCall_viii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
FUNCTION_TABLE_viii[index&127](a1|0,a2|0,a3|0);
}
function dynCall_v(index) {
index = index|0;
FUNCTION_TABLE_v[index&127]();
}
function dynCall_iiiii(index,a1,a2,a3,a4) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
return FUNCTION_TABLE_iiiii[index&127](a1|0,a2|0,a3|0,a4|0)|0;
}
function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0;
FUNCTION_TABLE_viiiiii[index&63](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0);
}
function dynCall_iii(index,a1,a2) {
index = index|0;
a1=a1|0; a2=a2|0;
return FUNCTION_TABLE_iii[index&127](a1|0,a2|0)|0;
}
function dynCall_viiii(index,a1,a2,a3,a4) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
FUNCTION_TABLE_viiii[index&63](a1|0,a2|0,a3|0,a4|0);
}
function b0(p0,p1,p2) {
p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(0);return 0;
}
function b1(p0,p1,p2,p3,p4) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(1);
}
function b2(p0) {
p0 = p0|0; nullFunc_vi(2);
}
function b3(p0,p1) {
p0 = p0|0;p1 = p1|0; nullFunc_vii(3);
}
function b4(p0) {
p0 = p0|0; nullFunc_ii(4);return 0;
}
function b5(p0,p1,p2) {
p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(5);
}
function b6() {
; nullFunc_v(6);
}
function b7(p0,p1,p2,p3) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_iiiii(7);return 0;
}
function b8(p0,p1,p2,p3,p4,p5) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(8);
}
function b9(p0,p1) {
p0 = p0|0;p1 = p1|0; nullFunc_iii(9);return 0;
}
function b10(p0,p1,p2,p3) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(10);
}
// EMSCRIPTEN_END_FUNCS
var FUNCTION_TABLE_iiii = [b0,_rijndael_setkey,_rijndael_encrypt,_rijndael_decrypt,_run_selftests_1176,b0,b0,b0,b0,b0,b0,_rsa_encrypt,_rsa_decrypt,_rsa_sign,_rsa_verify,b0,_run_selftests_1333,b0,b0,b0,b0,_run_selftests_1372,b0,b0,b0,_run_selftests_1395,b0,b0,b0
,b0,_run_selftests_1425,b0,_twofish_setkey,_twofish_encrypt,_twofish_decrypt,b0,b0,_ecc_encrypt_raw,_ecc_decrypt_raw,_ecc_sign,_ecc_verify,b0,_run_selftests_2065,b0,__gcry_ecc_get_curve,b0,b0,_poly1305_blocks_ref32,b0,b0,___stdout_write,___stdio_seek,___stdio_write,_sn_write,__gcry_log_info_with_dummy_fp,_fprintf,b0,b0,b0
,b0,b0,b0,b0,b0,b0,b0,b0,b0,_do_encrypt,_do_decrypt,b0,b0,_transform,b0,_transform_1369,_transform_1391,_transform_1420,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,___stdio_read,b0
,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0
,b0,b0,b0,b0,b0,b0,b0,b0,b0];
var FUNCTION_TABLE_viiiii = [b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1
,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__gcry_aes_cfb_enc,__gcry_aes_cfb_dec
,b1,__gcry_aes_cbc_dec,__gcry_aes_ctr_enc,__gcry_aes_ocb_crypt,b1,__gcry_twofish_cbc_dec,__gcry_twofish_cfb_dec,__gcry_twofish_ctr_enc,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1
,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1
,b1,b1,b1,b1,b1,b1,b1,b1,b1];
var FUNCTION_TABLE_vi = [b2,b2,b2,b2,b2,b2,b2,_rmd160_final,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,_sha1_final,b2,b2,b2,_sha256_final,b2,b2,b2,b2,_sha512_final
,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2
,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,_ec_deinit,b2,b2,b2,b2,b2,b2,b2,_cleanup_92,_cleanup_115,b2,_do_setxid
,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2
,b2,b2,b2,b2,b2,b2,b2,b2,b2];
var FUNCTION_TABLE_vii = [b3,b3,b3,b3,b3,_rmd160_init,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,_sha1_init,b3,b3,b3,_sha224_init,b3,b3,b3,_sha256_init,_sha512_init,b3
,b3,b3,_sha384_init,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,_poly1305_init_ext_ref32,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
,b3,b3,b3,b3,b3];
var FUNCTION_TABLE_ii = [b4,b4,b4,b4,b4,b4,b4,b4,_rmd160_read,b4,_rsa_check_secret_key,b4,b4,b4,b4,_rsa_get_nbits,b4,b4,b4,b4,_sha1_read,b4,b4,b4,_sha256_read,b4,b4,b4,b4
,_sha512_read,b4,b4,b4,b4,b4,b4,_ecc_check_secret_key,b4,b4,b4,b4,_ecc_get_nbits,b4,b4,b4,__gcry_ecc_get_param_sexp,b4,b4,b4,___stdio_close,b4,b4,b4,b4,b4,b4,b4,b4,b4
,b4,b4,b4,b4,b4];
var FUNCTION_TABLE_viii = [b5,b5,b5,b5,b5,b5,__gcry_md_block_write,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5
,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5
,b5,b5,b5,b5,__gcry_aes_ocb_auth,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,_add_randomness,_entropy_collect_cb,_read_cb,b5,b5,b5,b5,b5
,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5
,b5,b5,b5,b5,b5,b5,b5,b5,b5];
var FUNCTION_TABLE_v = [b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6
,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6
,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,_prefetch_enc,_prefetch_dec,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,_do_deinit,b6,b6,b6,b6
,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6
,b6,b6,b6,b6,b6,b6,b6,b6,b6];
var FUNCTION_TABLE_iiiii = [b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,_poly1305_finish_ext_ref32,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,_ghash_internal,_gather_faked,__gcry_rndlinux_gather_random,b7,b7,b7,b7,b7,b7,b7,b7
,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7
,b7,b7,b7,b7,b7,b7,b7,b7,b7];
var FUNCTION_TABLE_viiiiii = [b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8
,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8
,__gcry_aes_cbc_enc,b8,b8,b8,b8];
var FUNCTION_TABLE_iii = [b9,b9,b9,b9,b9,b9,b9,b9,b9,_rsa_generate,b9,b9,b9,b9,b9,b9,b9,_compute_keygrip,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
,b9,b9,b9,b9,b9,b9,_ecc_generate,b9,b9,b9,b9,b9,b9,b9,_compute_keygrip_2068,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
,b9,b9,b9,b9,b9,b9,b9,b9,_pss_verify_cmp,b9,b9,b9,b9,b9,_check_exponent,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9
,b9,b9,b9,b9,b9,b9,b9,b9,b9];
var FUNCTION_TABLE_viiii = [b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10
,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,_reporter,b10,b10
,b10,b10,b10,b10,b10];
return { _WRALL_make_purpose: _WRALL_make_purpose, _GNUNET_CRYPTO_rsa_blinding_key_encode: _GNUNET_CRYPTO_rsa_blinding_key_encode, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Ashr: _bitshift64Ashr, _GNUNET_CRYPTO_eddsa_key_create: _GNUNET_CRYPTO_eddsa_key_create, _memcpy: _memcpy, _TALER_WR_GNUNET_free: _TALER_WR_GNUNET_free, _TALER_WRALL_amount_add: _TALER_WRALL_amount_add, _GNUNET_CRYPTO_rsa_private_key_decode: _GNUNET_CRYPTO_rsa_private_key_decode, _TALER_WR_multiply_amount: _TALER_WR_multiply_amount, _GNUNET_CRYPTO_rsa_blinding_key_decode: _GNUNET_CRYPTO_rsa_blinding_key_decode, _GNUNET_CRYPTO_ecc_ecdh: _GNUNET_CRYPTO_ecc_ecdh, _TALER_amount_hton: _TALER_amount_hton, _TALER_WR_verify_sign_key_enc: _TALER_WR_verify_sign_key_enc, _free: _free, _TALER_WRALL_sign_deposit_permission: _TALER_WRALL_sign_deposit_permission, _TALER_WR_verify_denoms: _TALER_WR_verify_denoms, _GNUNET_CRYPTO_rsa_blinding_key_create: _GNUNET_CRYPTO_rsa_blinding_key_create, _TALER_WR_verify_sign_key: _TALER_WR_verify_sign_key, _TALER_WRALL_rsa_public_key_hash: _TALER_WRALL_rsa_public_key_hash, _TALER_WRALL_gen_key_from_blob: _TALER_WRALL_gen_key_from_blob, _GNUNET_CRYPTO_rsa_private_key_get_public: _GNUNET_CRYPTO_rsa_private_key_get_public, _GNUNET_CRYPTO_eddsa_verify: _GNUNET_CRYPTO_eddsa_verify, _TALER_WRALL_rsa_public_key_decode_from_string: _TALER_WRALL_rsa_public_key_decode_from_string, _GNUNET_CRYPTO_symmetric_encrypt: _GNUNET_CRYPTO_symmetric_encrypt, _TALER_WR_get_fraction: _TALER_WR_get_fraction, _TALER_WR_verify_denoms_enc: _TALER_WR_verify_denoms_enc, _TALER_amount_cmp: _TALER_amount_cmp, _TALER_WRALL_ecdhe_public_key_from_private_key: _TALER_WRALL_ecdhe_public_key_from_private_key, _llvm_cttz_i32: _llvm_cttz_i32, _TALER_WRALL_eddsa_private_key_from_string: _TALER_WRALL_eddsa_private_key_from_string, _TALER_WRALL_gen_init_vector: _TALER_WRALL_gen_init_vector, _TALER_amount_ntoh: _TALER_amount_ntoh, _WR_verify_test: _WR_verify_test, _GNUNET_CRYPTO_rsa_public_key_free: _GNUNET_CRYPTO_rsa_public_key_free, _GNUNET_CRYPTO_hkdf: _GNUNET_CRYPTO_hkdf, _GNUNET_CRYPTO_eddsa_key_get_public: _GNUNET_CRYPTO_eddsa_key_get_public, _llvm_bswap_i32: _llvm_bswap_i32, _GNUNET_CRYPTO_rsa_private_key_create: _GNUNET_CRYPTO_rsa_private_key_create, _GNUNET_STRINGS_data_to_string_alloc: _GNUNET_STRINGS_data_to_string_alloc, _TALER_WRALL_sign_test: _TALER_WRALL_sign_test, _TALER_WR_verify_confirmation: _TALER_WR_verify_confirmation, _GNUNET_CRYPTO_rsa_public_key_decode: _GNUNET_CRYPTO_rsa_public_key_decode, _GNUNET_CRYPTO_rsa_blinding_key_free: _GNUNET_CRYPTO_rsa_blinding_key_free, _GNUNET_CRYPTO_rsa_signature_encode: _GNUNET_CRYPTO_rsa_signature_encode, _GNUNET_CRYPTO_rsa_verify: _GNUNET_CRYPTO_rsa_verify, _TALER_WR_eddsa_verify: _TALER_WR_eddsa_verify, _GNUNET_STRINGS_string_to_data: _GNUNET_STRINGS_string_to_data, _TALER_WRALL_gen_symmetric_key: _TALER_WRALL_gen_symmetric_key, _TALER_WRALL_ecc_ecdh: _TALER_WRALL_ecc_ecdh, _memset: _memset, _GNUNET_CRYPTO_rsa_unblind: _GNUNET_CRYPTO_rsa_unblind, _TALER_WR_get_currency: _TALER_WR_get_currency, _DEBUG_WR_get_purpose: _DEBUG_WR_get_purpose, _TALER_WRALL_get_amount: _TALER_WRALL_get_amount, _GNUNET_CRYPTO_rsa_private_key_encode: _GNUNET_CRYPTO_rsa_private_key_encode, _GNUNET_CRYPTO_symmetric_decrypt: _GNUNET_CRYPTO_symmetric_decrypt, _i64Subtract: _i64Subtract, _TALER_WR_get_value: _TALER_WR_get_value, _GNUNET_CRYPTO_rsa_signature_free: _GNUNET_CRYPTO_rsa_signature_free, _TALER_WRALL_eddsa_public_key_from_priv_string: _TALER_WRALL_eddsa_public_key_from_priv_string, _GNUNET_CRYPTO_rsa_blind: _GNUNET_CRYPTO_rsa_blind, _TALER_WR_verify_denom_enc: _TALER_WR_verify_denom_enc, _malloc: _malloc, _TALER_WR_hello_world: _TALER_WR_hello_world, _TALER_WRALL_make_withdraw_bundle: _TALER_WRALL_make_withdraw_bundle, _GNUNET_CRYPTO_rsa_signature_decode: _GNUNET_CRYPTO_rsa_signature_decode, _GNUNET_CRYPTO_rsa_sign: _GNUNET_CRYPTO_rsa_sign, _GNUNET_CRYPTO_ecdhe_key_create: _GNUNET_CRYPTO_ecdhe_key_create, _TALER_WRALL_get_encoding_from_rsa_signature: _TALER_WRALL_get_encoding_from_rsa_signature, _TALER_WRALL_hash: _TALER_WRALL_hash, _TALER_amount_normalize: _TALER_amount_normalize, _TALER_WRALL_sign_contract: _TALER_WRALL_sign_contract, _bitshift64Shl: _bitshift64Shl, _GNUNET_CRYPTO_rsa_private_key_free: _GNUNET_CRYPTO_rsa_private_key_free, _fflush: _fflush, _GNUNET_CRYPTO_hash_create_random: _GNUNET_CRYPTO_hash_create_random, _TALER_WRALL_eddsa_public_key_from_private: _TALER_WRALL_eddsa_public_key_from_private, _TALER_WR_multiply_amounts: _TALER_WR_multiply_amounts, _TALER_amount_add: _TALER_amount_add, _GNUNET_CRYPTO_ecdhe_key_get_public: _GNUNET_CRYPTO_ecdhe_key_get_public, _TALER_amount_subtract: _TALER_amount_subtract, _i64Add: _i64Add, _TALER_WRALL_purpose_create: _TALER_WRALL_purpose_create, _GNUNET_CRYPTO_eddsa_sign: _GNUNET_CRYPTO_eddsa_sign, _TALER_WR_verify_denom: _TALER_WR_verify_denom, _TALER_WRALL_get_current_time: _TALER_WRALL_get_current_time, ___errno_location: ___errno_location, _TALER_WR_get_fancy_time: _TALER_WR_get_fancy_time, _TALER_WRALL_make_eddsa_signature: _TALER_WRALL_make_eddsa_signature, _memmove: _memmove, _TALER_amount_get_zero: _TALER_amount_get_zero, _DEBUG_WR_dump_amount: _DEBUG_WR_dump_amount, _GNUNET_CRYPTO_rsa_public_key_encode: _GNUNET_CRYPTO_rsa_public_key_encode, _GNUNET_CRYPTO_hash: _GNUNET_CRYPTO_hash, _GNUNET_util_cl_init: _GNUNET_util_cl_init, _GNUNET_CRYPTO_random_init: _GNUNET_CRYPTO_random_init, _gpg_err_init: _gpg_err_init, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_iiii: dynCall_iiii, dynCall_viiiii: dynCall_viiiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viii: dynCall_viii, dynCall_v: dynCall_v, dynCall_iiiii: dynCall_iiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_iii: dynCall_iii, dynCall_viiii: dynCall_viiii };
})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
var real__WRALL_make_purpose = asm["_WRALL_make_purpose"]; asm["_WRALL_make_purpose"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__WRALL_make_purpose.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_blinding_key_encode = asm["_GNUNET_CRYPTO_rsa_blinding_key_encode"]; asm["_GNUNET_CRYPTO_rsa_blinding_key_encode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_blinding_key_encode.apply(null, arguments);
};
var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Lshr.apply(null, arguments);
};
var real__bitshift64Ashr = asm["_bitshift64Ashr"]; asm["_bitshift64Ashr"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Ashr.apply(null, arguments);
};
var real__GNUNET_CRYPTO_eddsa_key_create = asm["_GNUNET_CRYPTO_eddsa_key_create"]; asm["_GNUNET_CRYPTO_eddsa_key_create"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_eddsa_key_create.apply(null, arguments);
};
var real__TALER_WR_GNUNET_free = asm["_TALER_WR_GNUNET_free"]; asm["_TALER_WR_GNUNET_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_GNUNET_free.apply(null, arguments);
};
var real__TALER_WRALL_amount_add = asm["_TALER_WRALL_amount_add"]; asm["_TALER_WRALL_amount_add"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_amount_add.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_private_key_decode = asm["_GNUNET_CRYPTO_rsa_private_key_decode"]; asm["_GNUNET_CRYPTO_rsa_private_key_decode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_private_key_decode.apply(null, arguments);
};
var real__TALER_WR_multiply_amount = asm["_TALER_WR_multiply_amount"]; asm["_TALER_WR_multiply_amount"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_multiply_amount.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_blinding_key_decode = asm["_GNUNET_CRYPTO_rsa_blinding_key_decode"]; asm["_GNUNET_CRYPTO_rsa_blinding_key_decode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_blinding_key_decode.apply(null, arguments);
};
var real__TALER_WR_multiply_amounts = asm["_TALER_WR_multiply_amounts"]; asm["_TALER_WR_multiply_amounts"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_multiply_amounts.apply(null, arguments);
};
var real__TALER_amount_hton = asm["_TALER_amount_hton"]; asm["_TALER_amount_hton"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_hton.apply(null, arguments);
};
var real__TALER_WRALL_eddsa_private_key_from_string = asm["_TALER_WRALL_eddsa_private_key_from_string"]; asm["_TALER_WRALL_eddsa_private_key_from_string"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_eddsa_private_key_from_string.apply(null, arguments);
};
var real__gpg_err_init = asm["_gpg_err_init"]; asm["_gpg_err_init"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__gpg_err_init.apply(null, arguments);
};
var real__free = asm["_free"]; asm["_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__free.apply(null, arguments);
};
var real__TALER_WRALL_sign_deposit_permission = asm["_TALER_WRALL_sign_deposit_permission"]; asm["_TALER_WRALL_sign_deposit_permission"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_sign_deposit_permission.apply(null, arguments);
};
var real__TALER_WR_verify_denoms = asm["_TALER_WR_verify_denoms"]; asm["_TALER_WR_verify_denoms"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_denoms.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_blinding_key_create = asm["_GNUNET_CRYPTO_rsa_blinding_key_create"]; asm["_GNUNET_CRYPTO_rsa_blinding_key_create"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_blinding_key_create.apply(null, arguments);
};
var real__TALER_WR_verify_denom_enc = asm["_TALER_WR_verify_denom_enc"]; asm["_TALER_WR_verify_denom_enc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_denom_enc.apply(null, arguments);
};
var real__TALER_WRALL_rsa_public_key_hash = asm["_TALER_WRALL_rsa_public_key_hash"]; asm["_TALER_WRALL_rsa_public_key_hash"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_rsa_public_key_hash.apply(null, arguments);
};
var real__TALER_WRALL_gen_key_from_blob = asm["_TALER_WRALL_gen_key_from_blob"]; asm["_TALER_WRALL_gen_key_from_blob"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_gen_key_from_blob.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_private_key_get_public = asm["_GNUNET_CRYPTO_rsa_private_key_get_public"]; asm["_GNUNET_CRYPTO_rsa_private_key_get_public"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_private_key_get_public.apply(null, arguments);
};
var real__GNUNET_CRYPTO_eddsa_verify = asm["_GNUNET_CRYPTO_eddsa_verify"]; asm["_GNUNET_CRYPTO_eddsa_verify"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_eddsa_verify.apply(null, arguments);
};
var real__TALER_WRALL_rsa_public_key_decode_from_string = asm["_TALER_WRALL_rsa_public_key_decode_from_string"]; asm["_TALER_WRALL_rsa_public_key_decode_from_string"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_rsa_public_key_decode_from_string.apply(null, arguments);
};
var real__GNUNET_CRYPTO_symmetric_encrypt = asm["_GNUNET_CRYPTO_symmetric_encrypt"]; asm["_GNUNET_CRYPTO_symmetric_encrypt"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_symmetric_encrypt.apply(null, arguments);
};
var real__TALER_WR_get_fraction = asm["_TALER_WR_get_fraction"]; asm["_TALER_WR_get_fraction"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_get_fraction.apply(null, arguments);
};
var real__TALER_WR_verify_denoms_enc = asm["_TALER_WR_verify_denoms_enc"]; asm["_TALER_WR_verify_denoms_enc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_denoms_enc.apply(null, arguments);
};
var real__TALER_amount_cmp = asm["_TALER_amount_cmp"]; asm["_TALER_amount_cmp"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_cmp.apply(null, arguments);
};
var real__TALER_WRALL_ecdhe_public_key_from_private_key = asm["_TALER_WRALL_ecdhe_public_key_from_private_key"]; asm["_TALER_WRALL_ecdhe_public_key_from_private_key"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_ecdhe_public_key_from_private_key.apply(null, arguments);
};
var real__llvm_cttz_i32 = asm["_llvm_cttz_i32"]; asm["_llvm_cttz_i32"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__llvm_cttz_i32.apply(null, arguments);
};
var real__TALER_WR_verify_sign_key_enc = asm["_TALER_WR_verify_sign_key_enc"]; asm["_TALER_WR_verify_sign_key_enc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_sign_key_enc.apply(null, arguments);
};
var real__TALER_WRALL_gen_init_vector = asm["_TALER_WRALL_gen_init_vector"]; asm["_TALER_WRALL_gen_init_vector"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_gen_init_vector.apply(null, arguments);
};
var real__TALER_amount_ntoh = asm["_TALER_amount_ntoh"]; asm["_TALER_amount_ntoh"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_ntoh.apply(null, arguments);
};
var real__WR_verify_test = asm["_WR_verify_test"]; asm["_WR_verify_test"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__WR_verify_test.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_public_key_free = asm["_GNUNET_CRYPTO_rsa_public_key_free"]; asm["_GNUNET_CRYPTO_rsa_public_key_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_public_key_free.apply(null, arguments);
};
var real__GNUNET_CRYPTO_hkdf = asm["_GNUNET_CRYPTO_hkdf"]; asm["_GNUNET_CRYPTO_hkdf"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_hkdf.apply(null, arguments);
};
var real__GNUNET_CRYPTO_eddsa_key_get_public = asm["_GNUNET_CRYPTO_eddsa_key_get_public"]; asm["_GNUNET_CRYPTO_eddsa_key_get_public"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_eddsa_key_get_public.apply(null, arguments);
};
var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__llvm_bswap_i32.apply(null, arguments);
};
var real__TALER_WR_get_value = asm["_TALER_WR_get_value"]; asm["_TALER_WR_get_value"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_get_value.apply(null, arguments);
};
var real__GNUNET_STRINGS_data_to_string_alloc = asm["_GNUNET_STRINGS_data_to_string_alloc"]; asm["_GNUNET_STRINGS_data_to_string_alloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_STRINGS_data_to_string_alloc.apply(null, arguments);
};
var real__TALER_WRALL_sign_test = asm["_TALER_WRALL_sign_test"]; asm["_TALER_WRALL_sign_test"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_sign_test.apply(null, arguments);
};
var real__TALER_WR_verify_confirmation = asm["_TALER_WR_verify_confirmation"]; asm["_TALER_WR_verify_confirmation"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_confirmation.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_public_key_decode = asm["_GNUNET_CRYPTO_rsa_public_key_decode"]; asm["_GNUNET_CRYPTO_rsa_public_key_decode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_public_key_decode.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_blinding_key_free = asm["_GNUNET_CRYPTO_rsa_blinding_key_free"]; asm["_GNUNET_CRYPTO_rsa_blinding_key_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_blinding_key_free.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_signature_encode = asm["_GNUNET_CRYPTO_rsa_signature_encode"]; asm["_GNUNET_CRYPTO_rsa_signature_encode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_signature_encode.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_verify = asm["_GNUNET_CRYPTO_rsa_verify"]; asm["_GNUNET_CRYPTO_rsa_verify"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_verify.apply(null, arguments);
};
var real__TALER_WR_eddsa_verify = asm["_TALER_WR_eddsa_verify"]; asm["_TALER_WR_eddsa_verify"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_eddsa_verify.apply(null, arguments);
};
var real__GNUNET_STRINGS_string_to_data = asm["_GNUNET_STRINGS_string_to_data"]; asm["_GNUNET_STRINGS_string_to_data"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_STRINGS_string_to_data.apply(null, arguments);
};
var real__TALER_WRALL_gen_symmetric_key = asm["_TALER_WRALL_gen_symmetric_key"]; asm["_TALER_WRALL_gen_symmetric_key"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_gen_symmetric_key.apply(null, arguments);
};
var real__TALER_WRALL_ecc_ecdh = asm["_TALER_WRALL_ecc_ecdh"]; asm["_TALER_WRALL_ecc_ecdh"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_ecc_ecdh.apply(null, arguments);
};
var real__TALER_WRALL_get_amount = asm["_TALER_WRALL_get_amount"]; asm["_TALER_WRALL_get_amount"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_get_amount.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_unblind = asm["_GNUNET_CRYPTO_rsa_unblind"]; asm["_GNUNET_CRYPTO_rsa_unblind"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_unblind.apply(null, arguments);
};
var real__TALER_WR_get_currency = asm["_TALER_WR_get_currency"]; asm["_TALER_WR_get_currency"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_get_currency.apply(null, arguments);
};
var real__DEBUG_WR_get_purpose = asm["_DEBUG_WR_get_purpose"]; asm["_DEBUG_WR_get_purpose"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__DEBUG_WR_get_purpose.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_private_key_encode = asm["_GNUNET_CRYPTO_rsa_private_key_encode"]; asm["_GNUNET_CRYPTO_rsa_private_key_encode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_private_key_encode.apply(null, arguments);
};
var real__GNUNET_CRYPTO_symmetric_decrypt = asm["_GNUNET_CRYPTO_symmetric_decrypt"]; asm["_GNUNET_CRYPTO_symmetric_decrypt"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_symmetric_decrypt.apply(null, arguments);
};
var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__i64Subtract.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_private_key_create = asm["_GNUNET_CRYPTO_rsa_private_key_create"]; asm["_GNUNET_CRYPTO_rsa_private_key_create"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_private_key_create.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_signature_free = asm["_GNUNET_CRYPTO_rsa_signature_free"]; asm["_GNUNET_CRYPTO_rsa_signature_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_signature_free.apply(null, arguments);
};
var real__GNUNET_util_cl_init = asm["_GNUNET_util_cl_init"]; asm["_GNUNET_util_cl_init"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_util_cl_init.apply(null, arguments);
};
var real__TALER_WRALL_eddsa_public_key_from_priv_string = asm["_TALER_WRALL_eddsa_public_key_from_priv_string"]; asm["_TALER_WRALL_eddsa_public_key_from_priv_string"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_eddsa_public_key_from_priv_string.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_blind = asm["_GNUNET_CRYPTO_rsa_blind"]; asm["_GNUNET_CRYPTO_rsa_blind"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_blind.apply(null, arguments);
};
var real__TALER_WR_verify_sign_key = asm["_TALER_WR_verify_sign_key"]; asm["_TALER_WR_verify_sign_key"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_sign_key.apply(null, arguments);
};
var real__malloc = asm["_malloc"]; asm["_malloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__malloc.apply(null, arguments);
};
var real__TALER_WR_hello_world = asm["_TALER_WR_hello_world"]; asm["_TALER_WR_hello_world"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_hello_world.apply(null, arguments);
};
var real__TALER_WRALL_make_withdraw_bundle = asm["_TALER_WRALL_make_withdraw_bundle"]; asm["_TALER_WRALL_make_withdraw_bundle"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_make_withdraw_bundle.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_signature_decode = asm["_GNUNET_CRYPTO_rsa_signature_decode"]; asm["_GNUNET_CRYPTO_rsa_signature_decode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_signature_decode.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_sign = asm["_GNUNET_CRYPTO_rsa_sign"]; asm["_GNUNET_CRYPTO_rsa_sign"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_sign.apply(null, arguments);
};
var real__GNUNET_CRYPTO_ecdhe_key_create = asm["_GNUNET_CRYPTO_ecdhe_key_create"]; asm["_GNUNET_CRYPTO_ecdhe_key_create"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_ecdhe_key_create.apply(null, arguments);
};
var real__TALER_WRALL_get_encoding_from_rsa_signature = asm["_TALER_WRALL_get_encoding_from_rsa_signature"]; asm["_TALER_WRALL_get_encoding_from_rsa_signature"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_get_encoding_from_rsa_signature.apply(null, arguments);
};
var real__TALER_WRALL_hash = asm["_TALER_WRALL_hash"]; asm["_TALER_WRALL_hash"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_hash.apply(null, arguments);
};
var real__TALER_amount_normalize = asm["_TALER_amount_normalize"]; asm["_TALER_amount_normalize"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_normalize.apply(null, arguments);
};
var real__TALER_WRALL_sign_contract = asm["_TALER_WRALL_sign_contract"]; asm["_TALER_WRALL_sign_contract"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_sign_contract.apply(null, arguments);
};
var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Shl.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_private_key_free = asm["_GNUNET_CRYPTO_rsa_private_key_free"]; asm["_GNUNET_CRYPTO_rsa_private_key_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_private_key_free.apply(null, arguments);
};
var real__fflush = asm["_fflush"]; asm["_fflush"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__fflush.apply(null, arguments);
};
var real__GNUNET_CRYPTO_hash_create_random = asm["_GNUNET_CRYPTO_hash_create_random"]; asm["_GNUNET_CRYPTO_hash_create_random"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_hash_create_random.apply(null, arguments);
};
var real__TALER_WRALL_eddsa_public_key_from_private = asm["_TALER_WRALL_eddsa_public_key_from_private"]; asm["_TALER_WRALL_eddsa_public_key_from_private"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_eddsa_public_key_from_private.apply(null, arguments);
};
var real__GNUNET_CRYPTO_ecc_ecdh = asm["_GNUNET_CRYPTO_ecc_ecdh"]; asm["_GNUNET_CRYPTO_ecc_ecdh"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_ecc_ecdh.apply(null, arguments);
};
var real__TALER_amount_add = asm["_TALER_amount_add"]; asm["_TALER_amount_add"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_add.apply(null, arguments);
};
var real__GNUNET_CRYPTO_ecdhe_key_get_public = asm["_GNUNET_CRYPTO_ecdhe_key_get_public"]; asm["_GNUNET_CRYPTO_ecdhe_key_get_public"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_ecdhe_key_get_public.apply(null, arguments);
};
var real__TALER_amount_subtract = asm["_TALER_amount_subtract"]; asm["_TALER_amount_subtract"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_subtract.apply(null, arguments);
};
var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__i64Add.apply(null, arguments);
};
var real__TALER_WRALL_purpose_create = asm["_TALER_WRALL_purpose_create"]; asm["_TALER_WRALL_purpose_create"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_purpose_create.apply(null, arguments);
};
var real__GNUNET_CRYPTO_eddsa_sign = asm["_GNUNET_CRYPTO_eddsa_sign"]; asm["_GNUNET_CRYPTO_eddsa_sign"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_eddsa_sign.apply(null, arguments);
};
var real__TALER_WR_verify_denom = asm["_TALER_WR_verify_denom"]; asm["_TALER_WR_verify_denom"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_verify_denom.apply(null, arguments);
};
var real__GNUNET_CRYPTO_hash = asm["_GNUNET_CRYPTO_hash"]; asm["_GNUNET_CRYPTO_hash"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_hash.apply(null, arguments);
};
var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____errno_location.apply(null, arguments);
};
var real__TALER_WR_get_fancy_time = asm["_TALER_WR_get_fancy_time"]; asm["_TALER_WR_get_fancy_time"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WR_get_fancy_time.apply(null, arguments);
};
var real__TALER_WRALL_make_eddsa_signature = asm["_TALER_WRALL_make_eddsa_signature"]; asm["_TALER_WRALL_make_eddsa_signature"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_make_eddsa_signature.apply(null, arguments);
};
var real__memmove = asm["_memmove"]; asm["_memmove"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__memmove.apply(null, arguments);
};
var real__GNUNET_CRYPTO_random_init = asm["_GNUNET_CRYPTO_random_init"]; asm["_GNUNET_CRYPTO_random_init"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_random_init.apply(null, arguments);
};
var real__TALER_amount_get_zero = asm["_TALER_amount_get_zero"]; asm["_TALER_amount_get_zero"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_amount_get_zero.apply(null, arguments);
};
var real__DEBUG_WR_dump_amount = asm["_DEBUG_WR_dump_amount"]; asm["_DEBUG_WR_dump_amount"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__DEBUG_WR_dump_amount.apply(null, arguments);
};
var real__GNUNET_CRYPTO_rsa_public_key_encode = asm["_GNUNET_CRYPTO_rsa_public_key_encode"]; asm["_GNUNET_CRYPTO_rsa_public_key_encode"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__GNUNET_CRYPTO_rsa_public_key_encode.apply(null, arguments);
};
var real__TALER_WRALL_get_current_time = asm["_TALER_WRALL_get_current_time"]; asm["_TALER_WRALL_get_current_time"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__TALER_WRALL_get_current_time.apply(null, arguments);
};
var _WRALL_make_purpose = Module["_WRALL_make_purpose"] = asm["_WRALL_make_purpose"];
var _GNUNET_CRYPTO_rsa_blinding_key_encode = Module["_GNUNET_CRYPTO_rsa_blinding_key_encode"] = asm["_GNUNET_CRYPTO_rsa_blinding_key_encode"];
var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"];
var _GNUNET_CRYPTO_eddsa_key_create = Module["_GNUNET_CRYPTO_eddsa_key_create"] = asm["_GNUNET_CRYPTO_eddsa_key_create"];
var _memcpy = Module["_memcpy"] = asm["_memcpy"];
var _TALER_WR_GNUNET_free = Module["_TALER_WR_GNUNET_free"] = asm["_TALER_WR_GNUNET_free"];
var _TALER_WRALL_amount_add = Module["_TALER_WRALL_amount_add"] = asm["_TALER_WRALL_amount_add"];
var _GNUNET_CRYPTO_rsa_private_key_decode = Module["_GNUNET_CRYPTO_rsa_private_key_decode"] = asm["_GNUNET_CRYPTO_rsa_private_key_decode"];
var _TALER_WR_multiply_amount = Module["_TALER_WR_multiply_amount"] = asm["_TALER_WR_multiply_amount"];
var _GNUNET_CRYPTO_rsa_blinding_key_decode = Module["_GNUNET_CRYPTO_rsa_blinding_key_decode"] = asm["_GNUNET_CRYPTO_rsa_blinding_key_decode"];
var _TALER_WR_multiply_amounts = Module["_TALER_WR_multiply_amounts"] = asm["_TALER_WR_multiply_amounts"];
var _TALER_amount_hton = Module["_TALER_amount_hton"] = asm["_TALER_amount_hton"];
var _TALER_WRALL_eddsa_private_key_from_string = Module["_TALER_WRALL_eddsa_private_key_from_string"] = asm["_TALER_WRALL_eddsa_private_key_from_string"];
var runPostSets = Module["runPostSets"] = asm["runPostSets"];
var _gpg_err_init = Module["_gpg_err_init"] = asm["_gpg_err_init"];
var _free = Module["_free"] = asm["_free"];
var _TALER_WRALL_sign_deposit_permission = Module["_TALER_WRALL_sign_deposit_permission"] = asm["_TALER_WRALL_sign_deposit_permission"];
var _TALER_WR_verify_denoms = Module["_TALER_WR_verify_denoms"] = asm["_TALER_WR_verify_denoms"];
var _GNUNET_CRYPTO_rsa_blinding_key_create = Module["_GNUNET_CRYPTO_rsa_blinding_key_create"] = asm["_GNUNET_CRYPTO_rsa_blinding_key_create"];
var _TALER_WR_verify_denom_enc = Module["_TALER_WR_verify_denom_enc"] = asm["_TALER_WR_verify_denom_enc"];
var _TALER_WRALL_rsa_public_key_hash = Module["_TALER_WRALL_rsa_public_key_hash"] = asm["_TALER_WRALL_rsa_public_key_hash"];
var _TALER_WRALL_gen_key_from_blob = Module["_TALER_WRALL_gen_key_from_blob"] = asm["_TALER_WRALL_gen_key_from_blob"];
var _GNUNET_CRYPTO_rsa_private_key_get_public = Module["_GNUNET_CRYPTO_rsa_private_key_get_public"] = asm["_GNUNET_CRYPTO_rsa_private_key_get_public"];
var _GNUNET_CRYPTO_eddsa_verify = Module["_GNUNET_CRYPTO_eddsa_verify"] = asm["_GNUNET_CRYPTO_eddsa_verify"];
var _TALER_WRALL_rsa_public_key_decode_from_string = Module["_TALER_WRALL_rsa_public_key_decode_from_string"] = asm["_TALER_WRALL_rsa_public_key_decode_from_string"];
var _GNUNET_CRYPTO_symmetric_encrypt = Module["_GNUNET_CRYPTO_symmetric_encrypt"] = asm["_GNUNET_CRYPTO_symmetric_encrypt"];
var _TALER_WR_get_fraction = Module["_TALER_WR_get_fraction"] = asm["_TALER_WR_get_fraction"];
var _TALER_WR_verify_denoms_enc = Module["_TALER_WR_verify_denoms_enc"] = asm["_TALER_WR_verify_denoms_enc"];
var _TALER_amount_cmp = Module["_TALER_amount_cmp"] = asm["_TALER_amount_cmp"];
var _TALER_WRALL_ecdhe_public_key_from_private_key = Module["_TALER_WRALL_ecdhe_public_key_from_private_key"] = asm["_TALER_WRALL_ecdhe_public_key_from_private_key"];
var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"];
var _TALER_WR_verify_sign_key_enc = Module["_TALER_WR_verify_sign_key_enc"] = asm["_TALER_WR_verify_sign_key_enc"];
var _TALER_WRALL_gen_init_vector = Module["_TALER_WRALL_gen_init_vector"] = asm["_TALER_WRALL_gen_init_vector"];
var _TALER_amount_ntoh = Module["_TALER_amount_ntoh"] = asm["_TALER_amount_ntoh"];
var _WR_verify_test = Module["_WR_verify_test"] = asm["_WR_verify_test"];
var _GNUNET_CRYPTO_rsa_public_key_free = Module["_GNUNET_CRYPTO_rsa_public_key_free"] = asm["_GNUNET_CRYPTO_rsa_public_key_free"];
var _GNUNET_CRYPTO_hkdf = Module["_GNUNET_CRYPTO_hkdf"] = asm["_GNUNET_CRYPTO_hkdf"];
var _GNUNET_CRYPTO_eddsa_key_get_public = Module["_GNUNET_CRYPTO_eddsa_key_get_public"] = asm["_GNUNET_CRYPTO_eddsa_key_get_public"];
var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"];
var _TALER_WR_get_value = Module["_TALER_WR_get_value"] = asm["_TALER_WR_get_value"];
var _GNUNET_STRINGS_data_to_string_alloc = Module["_GNUNET_STRINGS_data_to_string_alloc"] = asm["_GNUNET_STRINGS_data_to_string_alloc"];
var _TALER_WRALL_sign_test = Module["_TALER_WRALL_sign_test"] = asm["_TALER_WRALL_sign_test"];
var _TALER_WR_verify_confirmation = Module["_TALER_WR_verify_confirmation"] = asm["_TALER_WR_verify_confirmation"];
var _GNUNET_CRYPTO_rsa_public_key_decode = Module["_GNUNET_CRYPTO_rsa_public_key_decode"] = asm["_GNUNET_CRYPTO_rsa_public_key_decode"];
var _GNUNET_CRYPTO_rsa_blinding_key_free = Module["_GNUNET_CRYPTO_rsa_blinding_key_free"] = asm["_GNUNET_CRYPTO_rsa_blinding_key_free"];
var _GNUNET_CRYPTO_rsa_signature_encode = Module["_GNUNET_CRYPTO_rsa_signature_encode"] = asm["_GNUNET_CRYPTO_rsa_signature_encode"];
var _GNUNET_CRYPTO_rsa_verify = Module["_GNUNET_CRYPTO_rsa_verify"] = asm["_GNUNET_CRYPTO_rsa_verify"];
var _TALER_WR_eddsa_verify = Module["_TALER_WR_eddsa_verify"] = asm["_TALER_WR_eddsa_verify"];
var _GNUNET_STRINGS_string_to_data = Module["_GNUNET_STRINGS_string_to_data"] = asm["_GNUNET_STRINGS_string_to_data"];
var _TALER_WRALL_gen_symmetric_key = Module["_TALER_WRALL_gen_symmetric_key"] = asm["_TALER_WRALL_gen_symmetric_key"];
var _TALER_WRALL_ecc_ecdh = Module["_TALER_WRALL_ecc_ecdh"] = asm["_TALER_WRALL_ecc_ecdh"];
var _TALER_WRALL_get_amount = Module["_TALER_WRALL_get_amount"] = asm["_TALER_WRALL_get_amount"];
var _GNUNET_CRYPTO_rsa_unblind = Module["_GNUNET_CRYPTO_rsa_unblind"] = asm["_GNUNET_CRYPTO_rsa_unblind"];
var _TALER_WR_get_currency = Module["_TALER_WR_get_currency"] = asm["_TALER_WR_get_currency"];
var _DEBUG_WR_get_purpose = Module["_DEBUG_WR_get_purpose"] = asm["_DEBUG_WR_get_purpose"];
var _memset = Module["_memset"] = asm["_memset"];
var _GNUNET_CRYPTO_rsa_private_key_encode = Module["_GNUNET_CRYPTO_rsa_private_key_encode"] = asm["_GNUNET_CRYPTO_rsa_private_key_encode"];
var _GNUNET_CRYPTO_symmetric_decrypt = Module["_GNUNET_CRYPTO_symmetric_decrypt"] = asm["_GNUNET_CRYPTO_symmetric_decrypt"];
var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
var _GNUNET_CRYPTO_rsa_private_key_create = Module["_GNUNET_CRYPTO_rsa_private_key_create"] = asm["_GNUNET_CRYPTO_rsa_private_key_create"];
var _GNUNET_CRYPTO_rsa_signature_free = Module["_GNUNET_CRYPTO_rsa_signature_free"] = asm["_GNUNET_CRYPTO_rsa_signature_free"];
var _GNUNET_util_cl_init = Module["_GNUNET_util_cl_init"] = asm["_GNUNET_util_cl_init"];
var _TALER_WRALL_eddsa_public_key_from_priv_string = Module["_TALER_WRALL_eddsa_public_key_from_priv_string"] = asm["_TALER_WRALL_eddsa_public_key_from_priv_string"];
var _GNUNET_CRYPTO_rsa_blind = Module["_GNUNET_CRYPTO_rsa_blind"] = asm["_GNUNET_CRYPTO_rsa_blind"];
var _TALER_WR_verify_sign_key = Module["_TALER_WR_verify_sign_key"] = asm["_TALER_WR_verify_sign_key"];
var _malloc = Module["_malloc"] = asm["_malloc"];
var _TALER_WR_hello_world = Module["_TALER_WR_hello_world"] = asm["_TALER_WR_hello_world"];
var _TALER_WRALL_make_withdraw_bundle = Module["_TALER_WRALL_make_withdraw_bundle"] = asm["_TALER_WRALL_make_withdraw_bundle"];
var _GNUNET_CRYPTO_rsa_signature_decode = Module["_GNUNET_CRYPTO_rsa_signature_decode"] = asm["_GNUNET_CRYPTO_rsa_signature_decode"];
var _GNUNET_CRYPTO_rsa_sign = Module["_GNUNET_CRYPTO_rsa_sign"] = asm["_GNUNET_CRYPTO_rsa_sign"];
var _GNUNET_CRYPTO_ecdhe_key_create = Module["_GNUNET_CRYPTO_ecdhe_key_create"] = asm["_GNUNET_CRYPTO_ecdhe_key_create"];
var _TALER_WRALL_get_encoding_from_rsa_signature = Module["_TALER_WRALL_get_encoding_from_rsa_signature"] = asm["_TALER_WRALL_get_encoding_from_rsa_signature"];
var _TALER_WRALL_hash = Module["_TALER_WRALL_hash"] = asm["_TALER_WRALL_hash"];
var _TALER_amount_normalize = Module["_TALER_amount_normalize"] = asm["_TALER_amount_normalize"];
var _TALER_WRALL_sign_contract = Module["_TALER_WRALL_sign_contract"] = asm["_TALER_WRALL_sign_contract"];
var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
var _GNUNET_CRYPTO_rsa_private_key_free = Module["_GNUNET_CRYPTO_rsa_private_key_free"] = asm["_GNUNET_CRYPTO_rsa_private_key_free"];
var _fflush = Module["_fflush"] = asm["_fflush"];
var _GNUNET_CRYPTO_hash_create_random = Module["_GNUNET_CRYPTO_hash_create_random"] = asm["_GNUNET_CRYPTO_hash_create_random"];
var _TALER_WRALL_eddsa_public_key_from_private = Module["_TALER_WRALL_eddsa_public_key_from_private"] = asm["_TALER_WRALL_eddsa_public_key_from_private"];
var _GNUNET_CRYPTO_ecc_ecdh = Module["_GNUNET_CRYPTO_ecc_ecdh"] = asm["_GNUNET_CRYPTO_ecc_ecdh"];
var _TALER_amount_add = Module["_TALER_amount_add"] = asm["_TALER_amount_add"];
var _GNUNET_CRYPTO_ecdhe_key_get_public = Module["_GNUNET_CRYPTO_ecdhe_key_get_public"] = asm["_GNUNET_CRYPTO_ecdhe_key_get_public"];
var _TALER_amount_subtract = Module["_TALER_amount_subtract"] = asm["_TALER_amount_subtract"];
var _i64Add = Module["_i64Add"] = asm["_i64Add"];
var _TALER_WRALL_purpose_create = Module["_TALER_WRALL_purpose_create"] = asm["_TALER_WRALL_purpose_create"];
var _GNUNET_CRYPTO_eddsa_sign = Module["_GNUNET_CRYPTO_eddsa_sign"] = asm["_GNUNET_CRYPTO_eddsa_sign"];
var _TALER_WR_verify_denom = Module["_TALER_WR_verify_denom"] = asm["_TALER_WR_verify_denom"];
var _GNUNET_CRYPTO_hash = Module["_GNUNET_CRYPTO_hash"] = asm["_GNUNET_CRYPTO_hash"];
var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
var _TALER_WR_get_fancy_time = Module["_TALER_WR_get_fancy_time"] = asm["_TALER_WR_get_fancy_time"];
var _TALER_WRALL_make_eddsa_signature = Module["_TALER_WRALL_make_eddsa_signature"] = asm["_TALER_WRALL_make_eddsa_signature"];
var _memmove = Module["_memmove"] = asm["_memmove"];
var _GNUNET_CRYPTO_random_init = Module["_GNUNET_CRYPTO_random_init"] = asm["_GNUNET_CRYPTO_random_init"];
var _TALER_amount_get_zero = Module["_TALER_amount_get_zero"] = asm["_TALER_amount_get_zero"];
var _DEBUG_WR_dump_amount = Module["_DEBUG_WR_dump_amount"] = asm["_DEBUG_WR_dump_amount"];
var _GNUNET_CRYPTO_rsa_public_key_encode = Module["_GNUNET_CRYPTO_rsa_public_key_encode"] = asm["_GNUNET_CRYPTO_rsa_public_key_encode"];
var _TALER_WRALL_get_current_time = Module["_TALER_WRALL_get_current_time"] = asm["_TALER_WRALL_get_current_time"];
var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"];
var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"];
var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"];
;
Runtime.stackAlloc = asm['stackAlloc'];
Runtime.stackSave = asm['stackSave'];
Runtime.stackRestore = asm['stackRestore'];
Runtime.establishStackSpace = asm['establishStackSpace'];
Runtime.setTempRet0 = asm['setTempRet0'];
Runtime.getTempRet0 = asm['getTempRet0'];
// === Auto-generated postamble setup entry stuff ===
function ExitStatus(status) {
this.name = "ExitStatus";
this.message = "Program terminated with exit(" + status + ")";
this.status = status;
};
ExitStatus.prototype = new Error();
ExitStatus.prototype.constructor = ExitStatus;
var initialStackTop;
var preloadStartTime = null;
var calledMain = false;
dependenciesFulfilled = function runCaller() {
// If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
if (!Module['calledRun']) run();
if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
}
Module['callMain'] = Module.callMain = function callMain(args) {
assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
args = args || [];
ensureInitRuntime();
var argc = args.length+1;
function pad() {
for (var i = 0; i < 4-1; i++) {
argv.push(0);
}
}
var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ];
pad();
for (var i = 0; i < argc-1; i = i + 1) {
argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
pad();
}
argv.push(0);
argv = allocate(argv, 'i32', ALLOC_NORMAL);
try {
var ret = Module['_main'](argc, argv, 0);
// if we're not running an evented main loop, it's time to exit
exit(ret, /* implicit = */ true);
}
catch(e) {
if (e instanceof ExitStatus) {
// exit() throws this once it's done to make sure execution
// has been stopped completely
return;
} else if (e == 'SimulateInfiniteLoop') {
// running an evented main loop, don't immediately exit
Module['noExitRuntime'] = true;
return;
} else {
if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
throw e;
}
} finally {
calledMain = true;
}
}
function run(args) {
args = args || Module['arguments'];
if (preloadStartTime === null) preloadStartTime = Date.now();
if (runDependencies > 0) {
Module.printErr('run() called, but dependencies remain, so not running');
return;
}
preRun();
if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
function doRun() {
if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
Module['calledRun'] = true;
if (ABORT) return;
ensureInitRuntime();
preMain();
if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms');
}
if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
if (Module['_main'] && shouldRunNow) Module['callMain'](args);
postRun();
}
if (Module['setStatus']) {
Module['setStatus']('Running...');
setTimeout(function() {
setTimeout(function() {
Module['setStatus']('');
}, 1);
doRun();
}, 1);
} else {
doRun();
}
}
Module['run'] = Module.run = run;
function exit(status, implicit) {
if (implicit && Module['noExitRuntime']) {
Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)');
return;
}
if (Module['noExitRuntime']) {
Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)');
} else {
ABORT = true;
EXITSTATUS = status;
STACKTOP = initialStackTop;
exitRuntime();
if (Module['onExit']) Module['onExit'](status);
}
if (ENVIRONMENT_IS_NODE) {
// Work around a node.js bug where stdout buffer is not flushed at process exit:
// Instead of process.exit() directly, wait for stdout flush event.
// See https://github.com/joyent/node/issues/1669 and https://github.com/kripken/emscripten/issues/2582
// Workaround is based on https://github.com/RReverser/acorn/commit/50ab143cecc9ed71a2d66f78b4aec3bb2e9844f6
process['stdout']['once']('drain', function () {
process['exit'](status);
});
console.log(' '); // Make sure to print something to force the drain event to occur, in case the stdout buffer was empty.
// Work around another node bug where sometimes 'drain' is never fired - make another effort
// to emit the exit status, after a significant delay (if node hasn't fired drain by then, give up)
setTimeout(function() {
process['exit'](status);
}, 500);
} else
if (ENVIRONMENT_IS_SHELL && typeof quit === 'function') {
quit(status);
}
// if we reach here, we must throw an exception to halt the current execution
throw new ExitStatus(status);
}
Module['exit'] = Module.exit = exit;
var abortDecorators = [];
function abort(what) {
if (what !== undefined) {
Module.print(what);
Module.printErr(what);
what = JSON.stringify(what)
} else {
what = '';
}
ABORT = true;
EXITSTATUS = 1;
var extra = '';
var output = 'abort(' + what + ') at ' + stackTrace() + extra;
if (abortDecorators) {
abortDecorators.forEach(function(decorator) {
output = decorator(output, what);
});
}
throw output;
}
Module['abort'] = Module.abort = abort;
// {{PRE_RUN_ADDITIONS}}
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
// shouldRunNow refers to calling main(), not run().
var shouldRunNow = true;
if (Module['noInitialRun']) {
shouldRunNow = false;
}
run();
// {{POST_RUN_ADDITIONS}}
// {{MODULE_ADDITIONS}}