wallet-core/extension/background/libwrapper.js
2015-12-13 18:10:33 +01:00

73914 lines
2.6 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) {
eval.call(null, x);
}
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) {
if (!args.splice) args = Array.prototype.slice.call(args);
args.splice(0, 0, ptr);
return Module['dynCall_' + sig].apply(null, args);
} else {
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); return ret; },
staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; },
dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + 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))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); 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) {
try { func = eval('_' + ident); } catch(e) {}
}
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;
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 (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;
}
var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;
function parseJSFunc(jsfunc) {
// Match the body and the return value of a javascript function source
var parsed = jsfunc.toString().match(sourceRegex).slice(1);
return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]}
}
var JSsource = {};
for (var fun in JSfuncs) {
if (JSfuncs.hasOwnProperty(fun)) {
// Elements of toCsource are arrays of three items:
// the code, and the return value
JSsource[fun] = parseJSFunc(JSfuncs[fun]);
}
}
cwrap = function cwrap(ident, returnType, argTypes) {
argTypes = argTypes || [];
var cfunc = getCFunc(ident);
// When the function takes numbers and returns a number, we can just return
// the original function
var numericArgs = argTypes.every(function(type){ return type === 'number'});
var numericRet = (returnType !== 'string');
if ( numericRet && numericArgs) {
return cfunc;
}
// Creation of the arguments list (["$1","$2",...,"$nargs"])
var argNames = argTypes.map(function(x,i){return '$'+i});
var funcstr = "(function(" + argNames.join(',') + ") {";
var nargs = argTypes.length;
if (!numericArgs) {
// Generate the code needed to convert the arguments from javascript
// values to pointers
funcstr += 'var stack = ' + JSsource['stackSave'].body + ';';
for (var i = 0; i < nargs; i++) {
var arg = argNames[i], type = argTypes[i];
if (type === 'number') continue;
var convertCode = JSsource[type + 'ToC']; // [code, return]
funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';';
funcstr += convertCode.body + ';';
funcstr += arg + '=' + convertCode.returnValue + ';';
}
}
// When the code is compressed, the name of cfunc is not literally 'cfunc' anymore
var cfuncname = parseJSFunc(function(){return cfunc}).returnValue;
// Call the function
funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');';
if (!numericRet) { // Return type can only by 'string' or 'number'
// Convert the result to a string
var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue;
funcstr += 'ret = ' + strgfy + '(ret);';
}
if (!numericArgs) {
// If we had a stack, restore it
funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';';
}
funcstr += 'return ret})';
return eval(funcstr);
};
})();
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) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>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 = [_malloc, 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;
}
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) {
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) {
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) {
// 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) {
// 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) {
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);
}
HEAP8 = new Int8Array(buffer);
HEAP16 = new Int16Array(buffer);
HEAP32 = new Int32Array(buffer);
HEAPU8 = new Uint8Array(buffer);
HEAPU16 = new Uint16Array(buffer);
HEAPU32 = new Uint32Array(buffer);
HEAPF32 = new Float32Array(buffer);
HEAPF64 = new Float64Array(buffer);
// 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) {
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) {
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
function getUniqueRunDependency(id) {
return id;
}
function addRunDependency(id) {
runDependencies++;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
}
Module["addRunDependency"] = addRunDependency;
function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (runDependencies == 0) {
if (runDependencyWatcher !== null) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
}
if (dependenciesFulfilled) {
var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
callback(); // can add another dependenciesFulfilled
}
}
}
Module["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 + 76800;
/* 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,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,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,63,87,0,0,2,0,0,0,75,87,0,0,4,0,0,0,87,87,0,0,8,0,0,0,99,87,0,0,16,0,0,0,112,87,0,0,32,0,0,0,122,87,0,0,64,0,0,0,133,87,0,0,128,0,0,0,145,87,0,0,0,1,0,0,158,87,0,0,0,2,0,0,170,87,0,0,0,4,0,0,183,87,0,0,0,8,0,0,193,87,0,0,0,16,0,0,204,87,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,141,138,0,0,0,1,0,0,0,0,0,0,2,0,0,0,1,0,0,0,18,98,0,0,85,98,0,0,91,98,0,0,159,98,0,0,226,98,0,0,37,99,0,0,104,99,0,0,208,94,0,0,192,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,109,99,0,0,160,99,0,0,211,99,0,0,6,100,0,0,57,100,0,0,108,100,0,0,159,100,0,0,13,95,0,0,224,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,164,100,0,0,223,100,0,0,26,101,0,0,85,101,0,0,144,101,0,0,203,101,0,0,159,100,0,0,56,95,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,6,102,0,0,73,102,0,0,140,102,0,0,207,102,0,0,18,103,0,0,85,103,0,0,159,100,0,0,117,95,0,0,128,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,152,103,0,0,251,103,0,0,94,104,0,0,193,104,0,0,36,105,0,0,135,105,0,0,159,100,0,0,160,95,0,0,9,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,234,105,0,0,113,106,0,0,248,106,0,0,126,107,0,0,4,108,0,0,139,108,0,0,159,100,0,0,203,95,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,109,0,0,61,109,0,0,104,109,0,0,147,109,0,0,190,109,0,0,233,109,0,0,159,100,0,0,240,95,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,110,0,0,71,110,0,0,122,110,0,0,173,110,0,0,224,110,0,0,19,111,0,0,159,100,0,0,21,96,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,111,0,0,129,111,0,0,188,111,0,0,247,111,0,0,50,112,0,0,109,112,0,0,159,100,0,0,58,96,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,112,0,0,235,112,0,0,46,113,0,0,113,113,0,0,180,113,0,0,247,113,0,0,159,100,0,0,95,96,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,114,0,0,141,114,0,0,224,114,0,0,51,115,0,0,134,115,0,0,217,115,0,0,159,100,0,0,132,96,0,0,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,116,0,0,143,116,0,0,242,116,0,0,85,117,0,0,184,117,0,0,27,118,0,0,159,100,0,0,170,96,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,118,0,0,1,119,0,0,132,119,0,0,7,120,0,0,138,120,0,0,13,121,0,0,159,100,0,0,208,96,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,121,0,0,211,121,0,0,22,122,0,0,89,122,0,0,156,122,0,0,223,122,0,0,159,100,0,0,239,96,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,123,0,0,101,123,0,0,168,123,0,0,235,123,0,0,46,124,0,0,113,124,0,0,159,100,0,0,21,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,124,0,0,247,124,0,0,58,125,0,0,125,125,0,0,46,124,0,0,192,125,0,0,159,100,0,0,59,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,126,0,0,70,126,0,0,137,126,0,0,204,126,0,0,15,127,0,0,82,127,0,0,159,100,0,0,149,127,0,0,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163,127,0,0,211,121,0,0,38,128,0,0,169,128,0,0,44,129,0,0,175,129,0,0,159,100,0,0,179,97,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,130,0,0,181,130,0,0,56,131,0,0,187,131,0,0,62,132,0,0,193,132,0,0,159,100,0,0,215,97,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,133,0,0,199,133,0,0,74,134,0,0,205,134,0,0,80,135,0,0,211,135,0,0,159,100,0,0,251,97,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,136,0,0,15,127,0,0,211,121,0,0,153,136,0,0,220,136,0,0,31,137,0,0,159,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,138,0,0,185,94,0,0,208,94,0,0,219,94,0,0,208,94,0,0,239,94,0,0,208,94,0,0,250,94,0,0,208,94,0,0,4,95,0,0,13,95,0,0,24,95,0,0,13,95,0,0,34,95,0,0,13,95,0,0,47,95,0,0,56,95,0,0,67,95,0,0,56,95,0,0,87,95,0,0,56,95,0,0,98,95,0,0,56,95,0,0,108,95,0,0,117,95,0,0,128,95,0,0,117,95,0,0,138,95,0,0,117,95,0,0,151,95,0,0,160,95,0,0,171,95,0,0,160,95,0,0,181,95,0,0,160,95,0,0,194,95,0,0,203,95,0,0,219,95,0,0,240,95,0,0,0,96,0,0,21,96,0,0,37,96,0,0,58,96,0,0,74,96,0,0,95,96,0,0,111,96,0,0,132,96,0,0,148,96,0,0,170,96,0,0,186,96,0,0,208,96,0,0,222,96,0,0,239,96,0,0,4,97,0,0,21,97,0,0,42,97,0,0,59,97,0,0,80,97,0,0,239,96,0,0,97,97,0,0,59,97,0,0,121,97,0,0,239,96,0,0,145,97,0,0,59,97,0,0,162,97,0,0,179,97,0,0,195,97,0,0,215,97,0,0,231,97,0,0,251,97,0,0,5,98,0,0,0,0,0,0,0,0,0,0,253,139,0,0,11,140,0,0,40,140,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,45,140,0,0,59,140,0,0,68,140,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,89,140,0,0,104,140,0,0,155,140,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,176,140,0,0,191,140,0,0,242,140,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,12,141,0,0,28,141,0,0,83,141,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,215,141,0,0,232,141,0,0,83,141,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,253,139,0,0,11,140,0,0,40,140,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,45,140,0,0,59,140,0,0,68,140,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,89,140,0,0,104,140,0,0,155,140,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,176,140,0,0,191,140,0,0,242,140,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,12,141,0,0,28,141,0,0,83,141,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,215,141,0,0,232,141,0,0,83,141,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,253,139,0,0,11,140,0,0,40,140,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,45,140,0,0,59,140,0,0,68,140,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,89,140,0,0,104,140,0,0,155,140,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,176,140,0,0,191,140,0,0,242,140,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,12,141,0,0,28,141,0,0,83,141,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,215,141,0,0,232,141,0,0,83,141,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,253,139,0,0,11,140,0,0,40,140,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,45,140,0,0,59,140,0,0,68,140,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,89,140,0,0,104,140,0,0,155,140,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,176,140,0,0,191,140,0,0,242,140,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,12,141,0,0,28,141,0,0,83,141,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,215,141,0,0,232,141,0,0,83,141,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,133,145,0,0,2,0,0,0,138,145,0,0,1,0,0,0,142,145,0,0,8,0,0,0,149,145,0,0,3,0,0,0,159,145,0,0,3,0,0,0,166,145,0,0,9,0,0,0,173,145,0,0,10,0,0,0,180,145,0,0,11,0,0,0,187,145,0,0,5,0,0,0,191,145,0,0,45,1,0,0,195,145,0,0,6,0,0,0,201,145,0,0,7,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,2,0,0,0,51,146,0,0,116,17,0,0,132,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,8,0,0,0,2,0,0,0,55,146,0,0,172,17,0,0,184,17,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,9,0,0,0,2,0,0,0,62,146,0,0,224,17,0,0,236,17,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,123,149,0,0,132,149,0,0,139,149,0,0,0,0,0,0,31,149,0,0,1,0,0,0,54,149,0,0,3,0,0,0,77,149,0,0,5,0,0,0,100,149,0,0,2,0,0,0,0,0,0,0,0,0,0,0,25,147,0,0,37,147,0,0,0,0,0,0,185,146,0,0,1,0,0,0,209,146,0,0,3,0,0,0,233,146,0,0,5,0,0,0,1,147,0,0,2,0,0,0,0,0,0,0,0,0,0,0,165,146,0,0,177,146,0,0,0,0,0,0,69,146,0,0,1,0,0,0,93,146,0,0,3,0,0,0,117,146,0,0,5,0,0,0,141,146,0,0,2,0,0,0,0,0,0,0,0,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,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,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,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,3,0,0,0,0,0,0,0,147,149,0,0,157,149,0,0,15,0,0,0,8,29,0,0,20,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,184,0,0,0,0,0,0,0,172,149,0,0,187,149,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,63,151,0,0,104,29,0,0,67,151,0,0,70,151,0,0,77,151,0,0,79,151,0,0,81,151,0,0,1,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,163,157,0,0,164,162,0,0,176,162,0,0,0,0,0,0,2,0,0,0,2,0,0,0,201,162,0,0,206,162,0,0,15,0,0,0,172,29,0,0,20,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,184,0,0,0,10,0,0,0,28,163,0,0,49,163,0,0,67,163,0,0,81,163,0,0,95,163,0,0,0,0,0,0,11,0,0,0,2,0,0,0,113,163,0,0,120,163,0,0,19,0,0,0,44,30,0,0,28,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,192,0,0,0,11,0,0,0,8,0,0,0,2,0,0,0,139,163,0,0,146,163,0,0,19,0,0,0,52,30,0,0,32,0,0,0,4,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,192,0,0,0,11,0,0,0,197,164,0,0,0,0,0,0,165,163,0,0,188,163,0,0,0,0,0,0,10,0,0,0,2,0,0,0,220,164,0,0,227,164,0,0,19,0,0,0,168,30,0,0,64,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,224,0,0,0,12,0,0,0,9,0,0,0,2,0,0,0,246,164,0,0,253,164,0,0,19,0,0,0,180,30,0,0,48,0,0,0,6,0,0,0,1,0,0,0,4,0,0,0,6,0,0,0,224,0,0,0,12,0,0,0,56,167,0,0,79,167,0,0,0,0,0,0,16,165,0,0,39,165,0,0,0,0,0,0,10,0,0,0,0,0,0,0,101,167,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,1,0,0,160,16,0,0,13,0,0,0,14,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,47,1,0,0,0,0,0,0,109,167,0,0,0,0,0,0,0,0,0,0,16,0,0,0,128,0,0,0,160,16,0,0,13,0,0,0,14,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,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,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
/* memory initializer */ allocate([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,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,183,181,0,0,192,48,0,0,187,181,0,0,195,181,0,0,204,181,0,0,207,181,0,0,187,181,0,0,3,0,0,0,7,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,8,0,0,0,20,0,0,0,4,0,0,0,21,0,0,0,9,0,0,0,108,192,0,0,112,192,0,0,118,192,0,0,123,192,0,0,129,192,0,0,0,0,0,0,16,0,0,0,7,0,0,0,22,0,0,0,1,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,100,61,0,0,100,61,0,0,212,61,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,0,0,0,72,62,0,0,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,5,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,25,0,0,0,0,40,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,5,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,25,0,0,0,248,39,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,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,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,71,111,116,32,45,32,37,108,108,117,32,45,32,37,115,10,0,116,101,115,116,32,105,115,32,37,115,10,0,97,95,116,101,115,116,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,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,71,78,85,78,69,84,95,108,111,103,95,115,107,105,112,0,73,78,86,65,76,73,68,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,37,115,32,37,115,32,37,115,32,37,115,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,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,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,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,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,115,101,116,117,112,95,99,105,112,104,101,114,95,116,119,111,102,105,115,104,0,115,101,116,117,112,95,99,105,112,104,101,114,95,97,101,115,0,99,114,121,112,116,111,95,101,99,99,46,99,0,113,64,101,100,100,115,97,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,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,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,103,99,114,121,95,115,101,120,112,95,98,117,105,108,100,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,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,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,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,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,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,99,114,121,112,116,111,95,114,97,110,100,111,109,46,99,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,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
/* memory initializer */ allocate([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,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,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,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,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,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,100,97,121,0,100,97,121,115,0,194,181,115,0,109,115,0,109,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,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,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,37,42,115,32,32,0,100,105,118,105,100,101,32,98,121,32,122,101,114,111,0,37,48,50,120,0,32,92,10,0,37,42,115,32,37,42,115,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,103,108,111,98,97,108,46,99,0,112,114,105,110,116,95,99,111,110,102,105,103,0,115,121,115,116,101,109,0,102,105,112,115,0,115,116,97,110,100,97,114,100,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,103,108,111,98,97,108,95,105,110,105,116,0,92,120,37,48,50,120,0,115,101,120,112,46,99,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,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,100,111,95,118,115,101,120,112,95,115,115,99,97,110,0,37,100,0,37,117,0,38,92,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,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,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,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,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,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,44,32,102,117,110,99,116,105,111,110,32,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,102,97,116,97,108,32,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,83,104,117,116,100,111,119,110,0,70,97,116,97,108,45,69,114,114,111,114,0,69,114,114,111,114,0,79,112,101,114,97,116,105,111,110,97,108,0,83,101,108,102,45,84,101,115,116,0,73,110,105,116,0,80,111,119,101,114,45,79,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,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,48,52,0,45,112,97,98,103,110,104,0,98,0,103,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,46,120,0,46,121,0,46,122,0,49,46,51,46,54,46,49,46,52,46,49,46,49,49,53,57,49,46,49,53,46,49,0,78,73,83,84,32,80,45,49,57,50,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,78,73,83,84,32,80,45,50,50,52,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,78,73,83,84,32,80,45,50,53,54,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,78,73,83,84,32,80,45,51,56,52,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,78,73,83,84,32,80,45,53,50,49,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,98,114,97,105,110,112,111,111,108,80,49,54,48,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,0,98,114,97,105,110,112,111,111,108,80,49,57,50,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,51,0,98,114,97,105,110,112,111,111,108,80,50,50,52,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,53,0,98,114,97,105,110,112,111,111,108,80,50,53,54,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,55,0,98,114,97,105,110,112,111,111,108,80,51,50,48,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,57,0,98,114,97,105,110,112,111,111,108,80,51,56,52,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,49,0,98,114,97,105,110,112,111,111,108,80,53,49,50,114,49,0,49,46,51,46,51,54,46,51,46,51,46,50,46,56,46,49,46,49,46,49,51,0,71,79,83,84,50,48,48,49,45,116,101,115,116,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,48,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,65,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,49,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,66,0,49,46,50,46,54,52,51,46,50,46,50,46,51,53,46,50,0,71,79,83,84,50,48,48,49,45,67,114,121,112,116,111,80,114,111,45,67,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,71,79,83,84,50,48,49,50,45,116,99,50,54,45,65,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,49,0,71,79,83,84,50,48,49,50,45,116,99,50,54,45,66,0,49,46,50,46,54,52,51,46,55,46,49,46,50,46,49,46,50,46,50,0,115,101,99,112,50,53,54,107,49,0,49,46,51,46,49,51,50,46,48,46,49,48,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,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,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,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,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,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,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,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,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,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,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,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,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+20480);
/* memory initializer */ allocate([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,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,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,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,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,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,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,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,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,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,69,100,119,97,114,100,115,0,87,101,105,101,114,115,116,114,97,115,115,0,69,100,50,53,53,49,57,0,83,116,97,110,100,97,114,100,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,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,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,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,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,70,73,80,83,45,49,57,56,97,44,32,65,46,49,0,70,73,80,83,45,49,57,56,97,44,32,65,46,50,0,70,73,80,83,45,49,57,56,97,44,32,65,46,51,0,70,73,80,83,45,49,57,56,97,44,32,65,46,52,0,104,109,97,99,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,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,100,111,101,115,32,110,111,116,32,109,97,116,99,104,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,105,110,118,97,108,105,100,32,116,101,115,116,115,32,100,97,116,97,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,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,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,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,77,68,53,32,117,115,101,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,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,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,112,114,105,109,101,103,101,110,0,112,114,105,109,101,103,101,110,46,99,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,105,115,95,112,114,105,109,101,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,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,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,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,63,0,103,101,110,107,101,121,0,112,117,98,108,105,99,45,107,101,121,0,112,114,105,118,97,116,101,45,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,65,69,83,49,57,50,0,65,69,83,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,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,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,82,73,74,78,68,65,69,76,49,57,50,0,65,69,83,45,49,57,50,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,100,101,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,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,0,99,102,98,0,111,102,98,0,108,111,119,45,108,101,118,101,108,0,99,105,112,104,101,114,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,100,101,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,101,110,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,100,101,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,101,110,99,114,121,112,116,105,111,110,32,102,97,105,108,101,100,46,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,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,82,73,74,78,68,65,69,76,0,65,69,83,49,50,56,0,65,69,83,45,49,50,56,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,110,101,0,110,101,100,112,113,117,0,97,0,115,0,110,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,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,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,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,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,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,45,118,97,108,0,114,115,97,0,118,97,108,117,101,0,109,105,115,109,97,116,99,104,0,101,110,99,114,121,112,116,32,102,97,105,108,101,100,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,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,99,111,110,118,101,114,116,0,107,101,121,32,99,111,110,115,105,115,116,101,110,99,121,0,115,105,103,110,0,101,110,99,114,121,112,116,0,112,117,98,107,101,121,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,114,115,97,95,115,105,103,110,32,32,32,100,97,116,97,0,110,101,100,112,63,113,63,117,63,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,100,101,99,114,121,112,116,32,100,97,116,97,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+30720);
/* memory initializer */ allocate([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,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,116,101,115,116,107,101,121,32,32,32,32,61,62,32,37,115,10,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,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,83,72,65,49,0,48,33,48,9,6,5,43,14,3,2,26,5,0,4,20,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,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,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,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,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,50,46,49,54,46,56,52,48,46,49,46,49,48,49,46,51,46,52,46,50,46,52,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,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,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,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,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,115,104,111,114,116,32,115,116,114,105,110,103,0,108,111,110,103,32,115,116,114,105,110,103,0,111,110,101,32,109,105,108,108,105,111,110,32,34,97,34,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,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,84,87,79,70,73,83,72,0,84,87,79,70,73,83,72,49,50,56,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,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,100,101,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,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,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,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,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,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,71,67,82,89,80,84,95,66,65,82,82,69,84,84,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,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,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,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,53,45,49,50,45,49,51,84,49,54,58,50,55,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,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,116,107,101,121,32,102,97,105,108,101,100,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,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,112,97,98,103,110,104,113,0,112,97,98,103,110,104,113,100,0,115,119,0,114,115,0,102,108,97,103,115,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,47,113,0,113,0,99,117,114,118,101,0,112,97,98,103,110,104,113,40,49,58,37,99,37,117,58,0,41,0,112,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,43,69,100,68,83,65,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,101,99,99,95,115,105,103,110,32,32,32,100,97,116,97,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,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,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,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,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,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,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,100,105,103,101,115,116,32,109,105,115,109,97,116,99,104,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,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,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,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,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,243,255,199,112,63,148,0,229,42,125,251,75,61,51,5,217,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,80,111,108,121,49,51,48,53,32,116,101,115,116,32,51,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,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,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,114,101,97,100,95,112,111,111,108,0,97,100,100,95,114,97,110,100,111,109,110,101,115,115,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,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,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,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,100,111,95,102,97,115,116,95,114,97,110,100,111,109,95,112,111,108,108,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,109,105,120,95,112,111,111,108,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,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,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,115,101,108,102,116,101,115,116,95,107,97,116,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+40960);
/* memory initializer */ allocate([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,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,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,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,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,105,112,115,95,114,110,103,95,105,115,95,108,111,99,107,101,100,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,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,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,120,57,51,49,95,114,101,115,101,101,100,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,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,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,114,110,103,95,99,116,120,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,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,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,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,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,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,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,47,100,101,118,47,114,97,110,100,111,109,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,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,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,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,116,114,101,97,109,46,99,0,101,115,95,101,109,112,116,121,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,95,102,108,117,115,104,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,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,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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+51200);
/* memory initializer */ allocate([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,114,119,97,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,47,112,114,111,99,47,115,101,108,102,47,102,100,47,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,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,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], "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;
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?
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];
};
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) {
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);
var img = new Image();
img.onload = function img_onload() {
assert(img.complete, 'Image ' + name + ' could not be decoded');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
Module["preloadedImages"][name] = canvas;
Browser.URLObject.revokeObjectURL(url);
if (onload) onload(byteArray);
};
img.onerror = function img_onerror(event) {
console.log('Image ' + url + ' could not be decoded');
if (onerror) onerror();
};
img.src = url;
};
Module['preloadPlugins'].push(imagePlugin);
var audioPlugin = {};
audioPlugin['canHandle'] = function audioPlugin_canHandle(name) {
return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
};
audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) {
var done = false;
function finish(audio) {
if (done) return;
done = true;
Module["preloadedAudios"][name] = audio;
if (onload) onload(byteArray);
}
function fail() {
if (done) return;
done = true;
Module["preloadedAudios"][name] = new Audio(); // empty shim
if (onerror) onerror();
}
if (Browser.hasBlobConstructor) {
try {
var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
} catch(e) {
return fail();
}
var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
var audio = new Audio();
audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
audio.onerror = function audio_onerror(event) {
if (done) return;
console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
function encode64(data) {
var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var PAD = '=';
var ret = '';
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < data.length; i++) {
leftchar = (leftchar << 8) | data[i];
leftbits += 8;
while (leftbits >= 6) {
var curr = (leftchar >> (leftbits-6)) & 0x3f;
leftbits -= 6;
ret += BASE[curr];
}
}
if (leftbits == 2) {
ret += BASE[(leftchar&3) << 4];
ret += PAD + PAD;
} else if (leftbits == 4) {
ret += BASE[(leftchar&0xf) << 2];
ret += PAD;
}
return ret;
}
audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
finish(audio); // we don't wait for confirmation this worked - but it's worth trying
};
audio.src = url;
// workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
Browser.safeSetTimeout(function() {
finish(audio); // try to use it even though it is not necessarily ready to play
}, 10000);
} else {
return fail();
}
};
Module['preloadPlugins'].push(audioPlugin);
// Canvas event setup
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 (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) {
return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour-12, 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 < 13) {
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 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, "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) {
'use 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 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 _transform_1360($context, $data, $nblks) {
$context = $context | 0;
$data = $data | 0;
$nblks = $nblks | 0;
var $$0 = 0, $$01 = 0, $0 = 0, $1 = 0, $10 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1030 = 0, $1041 = 0, $1047 = 0, $1049 = 0, $1051 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1066 = 0, $1067 = 0, $107 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1086 = 0, $1087 = 0, $1093 = 0, $1095 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $1100 = 0, $1101 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $1107 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1140 = 0, $1141 = 0, $1142 = 0, $1143 = 0, $1148 = 0, $1149 = 0, $1150 = 0, $1151 = 0, $1156 = 0, $1167 = 0, $1173 = 0, $1175 = 0, $1177 = 0, $1179 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1192 = 0, $1193 = 0, $1198 = 0, $1199 = 0, $12 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $1212 = 0, $1213 = 0, $1219 = 0, $1221 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1230 = 0, $1231 = 0, $1232 = 0, $1233 = 0, $1238 = 0, $1239 = 0, $1240 = 0, $1241 = 0, $125 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1282 = 0, $1293 = 0, $1299 = 0, $13 = 0, $1301 = 0, $1303 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1318 = 0, $1319 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1336 = 0, $1337 = 0, $1342 = 0, $1343 = 0, $1345 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $1350 = 0, $1351 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $137 = 0, $1379 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1398 = 0, $1399 = 0, $14 = 0, $1400 = 0, $1401 = 0, $1406 = 0, $1417 = 0, $1423 = 0, $1425 = 0, $1427 = 0, $1429 = 0, $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $1442 = 0, $1443 = 0, $1448 = 0, $1449 = 0, $1450 = 0, $1451 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1460 = 0, $1461 = 0, $1467 = 0, $1469 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1478 = 0, $1479 = 0, $1480 = 0, $1481 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $15 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $1510 = 0, $1511 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1530 = 0, $1541 = 0, $1547 = 0, $1549 = 0, $155 = 0, $1551 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1566 = 0, $1567 = 0, $1572 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1578 = 0, $1579 = 0, $1580 = 0, $1581 = 0, $1584 = 0, $1585 = 0, $1591 = 0, $1593 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1638 = 0, $1639 = 0, $1640 = 0, $1641 = 0, $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $1654 = 0, $1665 = 0, $1671 = 0, $1673 = 0, $1675 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1690 = 0, $1691 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0, $1702 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $1708 = 0, $1709 = 0, $171 = 0, $1715 = 0, $1717 = 0, $1719 = 0, $172 = 0, $1720 = 0, $1721 = 0, $1722 = 0, $1723 = 0, $1726 = 0, $1727 = 0, $1728 = 0, $1729 = 0, $1734 = 0, $1735 = 0, $1736 = 0, $1737 = 0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1770 = 0, $1771 = 0, $1772 = 0, $1773 = 0, $1778 = 0, $1789 = 0, $179 = 0, $1795 = 0, $1797 = 0, $1799 = 0, $18 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1808 = 0, $1809 = 0, $1810 = 0, $1811 = 0, $1814 = 0, $1815 = 0, $1820 = 0, $1821 = 0, $1822 = 0, $1823 = 0, $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1832 = 0, $1833 = 0, $1839 = 0, $1841 = 0, $1843 = 0, $1844 = 0, $1845 = 0, $1846 = 0, $1847 = 0, $1850 = 0, $1851 = 0, $1852 = 0, $1853 = 0, $1858 = 0, $1859 = 0, $1860 = 0, $1861 = 0, $1875 = 0, $1876 = 0, $1877 = 0, $1878 = 0, $1879 = 0, $1880 = 0, $1881 = 0, $1882 = 0, $1883 = 0, $1886 = 0, $1887 = 0, $1888 = 0, $1889 = 0, $1894 = 0, $1895 = 0, $1896 = 0, $1897 = 0, $19 = 0, $190 = 0, $1902 = 0, $1913 = 0, $1919 = 0, $1921 = 0, $1923 = 0, $1925 = 0, $1926 = 0, $1927 = 0, $1928 = 0, $1929 = 0, $1932 = 0, $1933 = 0, $1934 = 0, $1935 = 0, $1938 = 0, $1939 = 0, $194 = 0, $1944 = 0, $1945 = 0, $1946 = 0, $1947 = 0, $1950 = 0, $1951 = 0, $1952 = 0, $1953 = 0, $1956 = 0, $1957 = 0, $1963 = 0, $1965 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0, $1970 = 0, $1971 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1999 = 0, $2 = 0, $20 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0, $2005 = 0, $2006 = 0, $2007 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2018 = 0, $2019 = 0, $2020 = 0, $2021 = 0, $2026 = 0, $2037 = 0, $204 = 0, $2043 = 0, $2045 = 0, $2047 = 0, $2049 = 0, $2050 = 0, $2051 = 0, $2052 = 0, $2053 = 0, $2056 = 0, $2057 = 0, $2058 = 0, $2059 = 0, $2062 = 0, $2063 = 0, $2068 = 0, $2069 = 0, $2070 = 0, $2071 = 0, $2074 = 0, $2075 = 0, $2076 = 0, $2077 = 0, $208 = 0, $2080 = 0, $2081 = 0, $2087 = 0, $2089 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2095 = 0, $2098 = 0, $2099 = 0, $21 = 0, $2100 = 0, $2101 = 0, $2106 = 0, $2107 = 0, $2108 = 0, $2109 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $2130 = 0, $2131 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $2142 = 0, $2143 = 0, $2144 = 0, $2145 = 0, $2150 = 0, $2161 = 0, $2167 = 0, $2169 = 0, $217 = 0, $2171 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2180 = 0, $2181 = 0, $2182 = 0, $2183 = 0, $2186 = 0, $2187 = 0, $2192 = 0, $2193 = 0, $2194 = 0, $2195 = 0, $2198 = 0, $2199 = 0, $22 = 0, $2200 = 0, $2201 = 0, $2204 = 0, $2205 = 0, $2211 = 0, $2213 = 0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $222 = 0, $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $224 = 0, $2247 = 0, $2248 = 0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2255 = 0, $2257 = 0, $226 = 0, $2260 = 0, $2261 = 0, $2263 = 0, $2266 = 0, $2267 = 0, $2269 = 0, $2272 = 0, $2273 = 0, $2275 = 0, $2278 = 0, $2279 = 0, $2281 = 0, $2284 = 0, $2285 = 0, $2287 = 0, $229 = 0, $2290 = 0, $2291 = 0, $2293 = 0, $2296 = 0, $2297 = 0, $2299 = 0, $23 = 0, $230 = 0, $2302 = 0, $2303 = 0, $2305 = 0, $2308 = 0, $2309 = 0, $231 = 0, $2311 = 0, $2314 = 0, $2315 = 0, $2317 = 0, $232 = 0, $2320 = 0, $2321 = 0, $2323 = 0, $2326 = 0, $2327 = 0, $2329 = 0, $2332 = 0, $2333 = 0, $2335 = 0, $2338 = 0, $2339 = 0, $2341 = 0, $2344 = 0, $2345 = 0, $2347 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0, $2358 = 0, $2359 = 0, $2360 = 0, $2361 = 0, $2366 = 0, $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2374 = 0, $2376 = 0, $2378 = 0, $238 = 0, $2382 = 0, $2384 = 0, $2387 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0, $2393 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $240 = 0, $2400 = 0, $2401 = 0, $2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 0, $2422 = 0, $2423 = 0, $2425 = 0, $2426 = 0, $2433 = 0, $2434 = 0, $2435 = 0, $2436 = 0, $2437 = 0, $2438 = 0, $2439 = 0, $2440 = 0, $2441 = 0, $2442 = 0, $2443 = 0, $2446 = 0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2454 = 0, $2455 = 0, $2456 = 0, $2457 = 0, $2462 = 0, $247 = 0, $2471 = 0, $2473 = 0, $2475 = 0, $2477 = 0, $2478 = 0, $2479 = 0, $2480 = 0, $2481 = 0, $2484 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $249 = 0, $2492 = 0, $2493 = 0, $2494 = 0, $2495 = 0, $2509 = 0, $2510 = 0, $2511 = 0, $2512 = 0, $2513 = 0, $2514 = 0, $2515 = 0, $2516 = 0, $2517 = 0, $2520 = 0, $2521 = 0, $2522 = 0, $2523 = 0, $2528 = 0, $2529 = 0, $253 = 0, $2530 = 0, $2531 = 0, $2536 = 0, $2545 = 0, $2547 = 0, $2549 = 0, $255 = 0, $2551 = 0, $2552 = 0, $2553 = 0, $2554 = 0, $2555 = 0, $2558 = 0, $2559 = 0, $2560 = 0, $2561 = 0, $2566 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $2583 = 0, $2584 = 0, $2585 = 0, $2586 = 0, $2587 = 0, $2588 = 0, $2589 = 0, $259 = 0, $2590 = 0, $2591 = 0, $2594 = 0, $2595 = 0, $2596 = 0, $2597 = 0, $2602 = 0, $2603 = 0, $2604 = 0, $2605 = 0, $261 = 0, $2610 = 0, $2619 = 0, $2621 = 0, $2623 = 0, $2625 = 0, $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, $2632 = 0, $2633 = 0, $2634 = 0, $2635 = 0, $264 = 0, $2640 = 0, $2641 = 0, $2642 = 0, $2643 = 0, $265 = 0, $2657 = 0, $2658 = 0, $2659 = 0, $266 = 0, $2660 = 0, $2661 = 0, $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, $2668 = 0, $2669 = 0, $267 = 0, $2670 = 0, $2671 = 0, $2676 = 0, $2677 = 0, $2678 = 0, $2679 = 0, $268 = 0, $2684 = 0, $269 = 0, $2693 = 0, $2695 = 0, $2697 = 0, $2699 = 0, $2700 = 0, $2701 = 0, $2702 = 0, $2703 = 0, $2706 = 0, $2707 = 0, $2708 = 0, $2709 = 0, $271 = 0, $2714 = 0, $2715 = 0, $2716 = 0, $2717 = 0, $273 = 0, $2731 = 0, $2732 = 0, $2733 = 0, $2734 = 0, $2735 = 0, $2736 = 0, $2737 = 0, $2738 = 0, $2739 = 0, $2742 = 0, $2743 = 0, $2744 = 0, $2745 = 0, $275 = 0, $2750 = 0, $2751 = 0, $2752 = 0, $2753 = 0, $2758 = 0, $276 = 0, $2767 = 0, $2769 = 0, $277 = 0, $2771 = 0, $2773 = 0, $2774 = 0, $2775 = 0, $2776 = 0, $2777 = 0, $278 = 0, $2780 = 0, $2781 = 0, $2782 = 0, $2783 = 0, $2788 = 0, $2789 = 0, $279 = 0, $2790 = 0, $2791 = 0, $280 = 0, $2805 = 0, $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0, $281 = 0, $2810 = 0, $2811 = 0, $2812 = 0, $2813 = 0, $2816 = 0, $2817 = 0, $2818 = 0, $2819 = 0, $2824 = 0, $2825 = 0, $2826 = 0, $2827 = 0, $2832 = 0, $284 = 0, $2841 = 0, $2843 = 0, $2845 = 0, $2847 = 0, $2848 = 0, $2849 = 0, $285 = 0, $2850 = 0, $2851 = 0, $2854 = 0, $2855 = 0, $2856 = 0, $2857 = 0, $286 = 0, $2862 = 0, $2863 = 0, $2864 = 0, $2865 = 0, $287 = 0, $2879 = 0, $2880 = 0, $2881 = 0, $2882 = 0, $2883 = 0, $2884 = 0, $2885 = 0, $2886 = 0, $2887 = 0, $2890 = 0, $2891 = 0, $2892 = 0, $2893 = 0, $2898 = 0, $2899 = 0, $29 = 0, $290 = 0, $2900 = 0, $2901 = 0, $2906 = 0, $291 = 0, $2915 = 0, $2917 = 0, $2919 = 0, $2921 = 0, $2922 = 0, $2923 = 0, $2924 = 0, $2925 = 0, $2928 = 0, $2929 = 0, $2930 = 0, $2931 = 0, $2936 = 0, $2937 = 0, $2938 = 0, $2939 = 0, $2953 = 0, $2954 = 0, $2955 = 0, $2956 = 0, $2957 = 0, $2958 = 0, $2959 = 0, $296 = 0, $2960 = 0, $2961 = 0, $2964 = 0, $2965 = 0, $2966 = 0, $2967 = 0, $297 = 0, $2972 = 0, $2973 = 0, $2974 = 0, $2975 = 0, $298 = 0, $2980 = 0, $2989 = 0, $299 = 0, $2991 = 0, $2993 = 0, $2995 = 0, $2996 = 0, $2997 = 0, $2998 = 0, $2999 = 0, $3 = 0, $300 = 0, $3002 = 0, $3003 = 0, $3004 = 0, $3005 = 0, $301 = 0, $3010 = 0, $3011 = 0, $3012 = 0, $3013 = 0, $3027 = 0, $3028 = 0, $3029 = 0, $3030 = 0, $3031 = 0, $3032 = 0, $3033 = 0, $3034 = 0, $3035 = 0, $3038 = 0, $3039 = 0, $304 = 0, $3040 = 0, $3041 = 0, $3046 = 0, $3047 = 0, $3048 = 0, $3049 = 0, $305 = 0, $3054 = 0, $306 = 0, $3063 = 0, $3065 = 0, $3067 = 0, $3069 = 0, $307 = 0, $3070 = 0, $3071 = 0, $3072 = 0, $3073 = 0, $3076 = 0, $3077 = 0, $3078 = 0, $3079 = 0, $3084 = 0, $3085 = 0, $3086 = 0, $3087 = 0, $310 = 0, $3101 = 0, $3102 = 0, $3103 = 0, $3104 = 0, $3105 = 0, $3106 = 0, $3107 = 0, $3108 = 0, $3109 = 0, $311 = 0, $3112 = 0, $3113 = 0, $3114 = 0, $3115 = 0, $3120 = 0, $3121 = 0, $3122 = 0, $3123 = 0, $3128 = 0, $3137 = 0, $3139 = 0, $3141 = 0, $3143 = 0, $3144 = 0, $3145 = 0, $3146 = 0, $3147 = 0, $3150 = 0, $3151 = 0, $3152 = 0, $3153 = 0, $3158 = 0, $3159 = 0, $316 = 0, $3160 = 0, $3161 = 0, $317 = 0, $3175 = 0, $3176 = 0, $3177 = 0, $3178 = 0, $3179 = 0, $318 = 0, $3180 = 0, $3181 = 0, $3182 = 0, $3183 = 0, $3186 = 0, $3187 = 0, $3188 = 0, $3189 = 0, $319 = 0, $3194 = 0, $3195 = 0, $3196 = 0, $3197 = 0, $3202 = 0, $321 = 0, $3211 = 0, $3213 = 0, $3215 = 0, $3217 = 0, $3218 = 0, $3219 = 0, $3220 = 0, $3221 = 0, $3224 = 0, $3225 = 0, $3226 = 0, $3227 = 0, $323 = 0, $3232 = 0, $3233 = 0, $3234 = 0, $3235 = 0, $324 = 0, $3249 = 0, $325 = 0, $3250 = 0, $3251 = 0, $3252 = 0, $3253 = 0, $3254 = 0, $3255 = 0, $3256 = 0, $3257 = 0, $326 = 0, $3260 = 0, $3261 = 0, $3262 = 0, $3263 = 0, $3268 = 0, $3269 = 0, $327 = 0, $3270 = 0, $3271 = 0, $3276 = 0, $328 = 0, $3285 = 0, $3287 = 0, $3289 = 0, $329 = 0, $3291 = 0, $3292 = 0, $3293 = 0, $3294 = 0, $3295 = 0, $3298 = 0, $3299 = 0, $3300 = 0, $3301 = 0, $3306 = 0, $3307 = 0, $3308 = 0, $3309 = 0, $332 = 0, $3323 = 0, $3324 = 0, $3325 = 0, $3326 = 0, $3327 = 0, $3328 = 0, $3329 = 0, $333 = 0, $3330 = 0, $3331 = 0, $3334 = 0, $3335 = 0, $3336 = 0, $3337 = 0, $334 = 0, $3342 = 0, $3343 = 0, $3344 = 0, $3345 = 0, $335 = 0, $3350 = 0, $3359 = 0, $3361 = 0, $3363 = 0, $3365 = 0, $3366 = 0, $3367 = 0, $3368 = 0, $3369 = 0, $3372 = 0, $3373 = 0, $3374 = 0, $3375 = 0, $3380 = 0, $3381 = 0, $3382 = 0, $3383 = 0, $3397 = 0, $3398 = 0, $3399 = 0, $340 = 0, $3400 = 0, $3401 = 0, $3402 = 0, $3403 = 0, $3404 = 0, $3405 = 0, $3408 = 0, $3409 = 0, $341 = 0, $3410 = 0, $3411 = 0, $3416 = 0, $3417 = 0, $3418 = 0, $3419 = 0, $342 = 0, $3424 = 0, $343 = 0, $3433 = 0, $3435 = 0, $3437 = 0, $3439 = 0, $3440 = 0, $3441 = 0, $3442 = 0, $3443 = 0, $3446 = 0, $3447 = 0, $3448 = 0, $3449 = 0, $3454 = 0, $3455 = 0, $3456 = 0, $3457 = 0, $3471 = 0, $3472 = 0, $3473 = 0, $3474 = 0, $3475 = 0, $3476 = 0, $3477 = 0, $3478 = 0, $3479 = 0, $3482 = 0, $3483 = 0, $3484 = 0, $3485 = 0, $3490 = 0, $3491 = 0, $3492 = 0, $3493 = 0, $3498 = 0, $35 = 0, $350 = 0, $3507 = 0, $3509 = 0, $351 = 0, $3511 = 0, $3513 = 0, $3514 = 0, $3515 = 0, $3516 = 0, $3517 = 0, $3520 = 0, $3521 = 0, $3522 = 0, $3523 = 0, $3528 = 0, $3529 = 0, $353 = 0, $3530 = 0, $3531 = 0, $354 = 0, $3545 = 0, $3546 = 0, $3547 = 0, $3548 = 0, $3549 = 0, $3551 = 0, $3559 = 0, $3563 = 0, $3571 = 0, $3575 = 0, $3583 = 0, $3587 = 0, $3595 = 0, $3599 = 0, $3607 = 0, $361 = 0, $3611 = 0, $3619 = 0, $362 = 0, $3623 = 0, $363 = 0, $3631 = 0, $3635 = 0, $364 = 0, $3643 = 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, $3663 = 0, $3664 = 0, $3665 = 0, $367 = 0, $368 = 0, $369 = 0, $370 = 0, $371 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $390 = 0, $4 = 0, $401 = 0, $403 = 0, $406 = 0, $407 = 0, $409 = 0, $41 = 0, $411 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $428 = 0, $429 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $448 = 0, $449 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $459 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $500 = 0, $501 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $520 = 0, $53 = 0, $531 = 0, $533 = 0, $536 = 0, $537 = 0, $539 = 0, $541 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $556 = 0, $557 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $576 = 0, $577 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $587 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $648 = 0, $65 = 0, $659 = 0, $661 = 0, $664 = 0, $665 = 0, $667 = 0, $669 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $678 = 0, $679 = 0, $680 = 0, $681 = 0, $684 = 0, $685 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $698 = 0, $699 = 0, $7 = 0, $700 = 0, $701 = 0, $704 = 0, $705 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $715 = 0, $717 = 0, $718 = 0, $719 = 0, $720 = 0, $721 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $749 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $776 = 0, $787 = 0, $793 = 0, $795 = 0, $797 = 0, $799 = 0, $8 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $812 = 0, $813 = 0, $818 = 0, $819 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $832 = 0, $833 = 0, $838 = 0, $839 = 0, $840 = 0, $841 = 0, $843 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $877 = 0, $878 = 0, $879 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $904 = 0, $915 = 0, $921 = 0, $923 = 0, $925 = 0, $927 = 0, $928 = 0, $929 = 0, $930 = 0, $931 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $940 = 0, $941 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $960 = 0, $961 = 0, $967 = 0, $969 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $978 = 0, $979 = 0, $980 = 0, $981 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $t$027$i = 0, $t$122$i = 0, $w$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
$w$i = sp;
$0 = $context + 160 | 0;
$1 = $context + 168 | 0;
$2 = $context + 176 | 0;
$3 = $context + 184 | 0;
$4 = $context + 192 | 0;
$5 = $context + 200 | 0;
$6 = $context + 208 | 0;
$7 = $context + 216 | 0;
$8 = $w$i + 112 | 0;
$9 = $w$i + 72 | 0;
$10 = $w$i + 8 | 0;
$11 = $w$i + 120 | 0;
$12 = $w$i + 80 | 0;
$13 = $w$i + 16 | 0;
$14 = $w$i + 88 | 0;
$15 = $w$i + 24 | 0;
$16 = $w$i + 96 | 0;
$17 = $w$i + 32 | 0;
$18 = $w$i + 104 | 0;
$19 = $w$i + 40 | 0;
$20 = $w$i + 48 | 0;
$21 = $w$i + 56 | 0;
$22 = $w$i + 64 | 0;
$23 = $0;
$29 = $1;
$35 = $2;
$41 = $3;
$47 = $4;
$53 = $5;
$59 = $6;
$65 = $7;
$$0 = $data;
$$01 = $nblks;
$3650 = HEAP32[$65 >> 2] | 0;
$3651 = HEAP32[$65 + 4 >> 2] | 0;
$3652 = HEAP32[$59 >> 2] | 0;
$3653 = HEAP32[$59 + 4 >> 2] | 0;
$3654 = HEAP32[$53 >> 2] | 0;
$3655 = HEAP32[$53 + 4 >> 2] | 0;
$3656 = HEAP32[$47 >> 2] | 0;
$3657 = HEAP32[$47 + 4 >> 2] | 0;
$3658 = HEAP32[$41 >> 2] | 0;
$3659 = HEAP32[$41 + 4 >> 2] | 0;
$3660 = HEAP32[$35 >> 2] | 0;
$3661 = HEAP32[$35 + 4 >> 2] | 0;
$3662 = HEAP32[$29 >> 2] | 0;
$3663 = HEAP32[$29 + 4 >> 2] | 0;
$3664 = HEAP32[$23 >> 2] | 0;
$3665 = HEAP32[$23 + 4 >> 2] | 0;
while (1) {
$t$027$i = 0;
do {
$168 = $$0 + ($t$027$i << 3) | 0;
$171 = _bitshift64Shl(HEAPU8[$168 >> 0] | 0 | 0, 0, 56) | 0;
$172 = tempRet0;
$176 = _bitshift64Shl(HEAPU8[$168 + 1 >> 0] | 0 | 0, 0, 48) | 0;
$179 = tempRet0 | $172;
$183 = _bitshift64Shl(HEAPU8[$168 + 2 >> 0] | 0 | 0, 0, 40) | 0;
$190 = $179 | tempRet0 | (HEAPU8[$168 + 3 >> 0] | 0);
$194 = _bitshift64Shl(HEAPU8[$168 + 4 >> 0] | 0 | 0, 0, 24) | 0;
$197 = $190 | tempRet0;
$201 = _bitshift64Shl(HEAPU8[$168 + 5 >> 0] | 0 | 0, 0, 16) | 0;
$204 = $197 | tempRet0;
$208 = _bitshift64Shl(HEAPU8[$168 + 6 >> 0] | 0 | 0, 0, 8) | 0;
$217 = $w$i + ($t$027$i << 3) | 0;
HEAP32[$217 >> 2] = $176 | $171 | $183 | $194 | $201 | $208 | (HEAPU8[$168 + 7 >> 0] | 0);
HEAP32[$217 + 4 >> 2] = $204 | tempRet0;
$t$027$i = $t$027$i + 1 | 0;
} while (($t$027$i | 0) != 16);
$71 = $w$i;
$77 = $8;
$83 = $9;
$89 = $10;
$95 = $11;
$101 = $12;
$107 = $13;
$113 = $14;
$119 = $15;
$125 = $16;
$131 = $17;
$137 = $18;
$143 = $19;
$149 = $20;
$155 = $21;
$161 = $22;
$1073 = HEAP32[$155 >> 2] | 0;
$1074 = HEAP32[$155 + 4 >> 2] | 0;
$1199 = HEAP32[$161 >> 2] | 0;
$1200 = HEAP32[$161 + 4 >> 2] | 0;
$222 = $3656;
$223 = $3657;
$247 = $3654;
$249 = $3655;
$253 = $3652;
$255 = $3653;
$265 = $3650;
$266 = $3651;
$267 = HEAP32[$71 >> 2] | 0;
$268 = HEAP32[$71 + 4 >> 2] | 0;
$277 = HEAP32[$77 >> 2] | 0;
$278 = HEAP32[$77 + 4 >> 2] | 0;
$297 = HEAP32[$89 >> 2] | 0;
$298 = HEAP32[$89 + 4 >> 2] | 0;
$317 = HEAP32[$83 >> 2] | 0;
$318 = HEAP32[$83 + 4 >> 2] | 0;
$325 = $3664;
$326 = $3665;
$350 = $3662;
$351 = $3660;
$353 = $3663;
$354 = $3661;
$363 = $3658;
$364 = $3659;
$415 = HEAP32[$95 >> 2] | 0;
$416 = HEAP32[$95 + 4 >> 2] | 0;
$435 = HEAP32[$107 >> 2] | 0;
$436 = HEAP32[$107 + 4 >> 2] | 0;
$455 = HEAP32[$101 >> 2] | 0;
$456 = HEAP32[$101 + 4 >> 2] | 0;
$563 = HEAP32[$119 >> 2] | 0;
$564 = HEAP32[$119 + 4 >> 2] | 0;
$583 = HEAP32[$113 >> 2] | 0;
$584 = HEAP32[$113 + 4 >> 2] | 0;
$691 = HEAP32[$131 >> 2] | 0;
$692 = HEAP32[$131 + 4 >> 2] | 0;
$711 = HEAP32[$125 >> 2] | 0;
$712 = HEAP32[$125 + 4 >> 2] | 0;
$819 = HEAP32[$143 >> 2] | 0;
$820 = HEAP32[$143 + 4 >> 2] | 0;
$839 = HEAP32[$137 >> 2] | 0;
$840 = HEAP32[$137 + 4 >> 2] | 0;
$947 = HEAP32[$149 >> 2] | 0;
$948 = HEAP32[$149 + 4 >> 2] | 0;
$t$122$i = 0;
while (1) {
$224 = _bitshift64Lshr($222 | 0, $223 | 0, 14) | 0;
$225 = tempRet0;
$226 = _bitshift64Shl($222 | 0, $223 | 0, 50) | 0;
$229 = tempRet0 | $225;
$230 = _bitshift64Lshr($222 | 0, $223 | 0, 18) | 0;
$231 = tempRet0;
$232 = _bitshift64Shl($222 | 0, $223 | 0, 46) | 0;
$237 = $229 ^ (tempRet0 | $231);
$238 = _bitshift64Lshr($222 | 0, $223 | 0, 41) | 0;
$239 = tempRet0;
$240 = _bitshift64Shl($222 | 0, $223 | 0, 23) | 0;
$245 = $237 ^ (tempRet0 | $239);
$259 = 64 + ($t$122$i << 3) | 0;
$261 = HEAP32[$259 >> 2] | 0;
$264 = HEAP32[$259 + 4 >> 2] | 0;
$269 = _i64Add($265 | 0, $266 | 0, $267 | 0, $268 | 0) | 0;
$271 = _i64Add($269 | 0, tempRet0 | 0, $261 | 0, $264 | 0) | 0;
$273 = _i64Add($271 | 0, tempRet0 | 0, $253 & ~$222 ^ $222 & $247 | 0, $255 & ~$223 ^ $223 & $249 | 0) | 0;
$275 = _i64Add($273 | 0, tempRet0 | 0, ($226 | $224) ^ ($232 | $230) ^ ($240 | $238) | 0, $245 | 0) | 0;
$276 = tempRet0;
$279 = _bitshift64Lshr($277 | 0, $278 | 0, 19) | 0;
$280 = tempRet0;
$281 = _bitshift64Shl($277 | 0, $278 | 0, 45) | 0;
$284 = tempRet0 | $280;
$285 = _bitshift64Lshr($277 | 0, $278 | 0, 61) | 0;
$286 = tempRet0;
$287 = _bitshift64Shl($277 | 0, $278 | 0, 3) | 0;
$290 = tempRet0 | $286;
$291 = _bitshift64Lshr($277 | 0, $278 | 0, 6) | 0;
$296 = $290 ^ tempRet0 ^ $284;
$299 = _bitshift64Lshr($297 | 0, $298 | 0, 1) | 0;
$300 = tempRet0;
$301 = _bitshift64Shl($297 | 0, $298 | 0, 63) | 0;
$304 = tempRet0 | $300;
$305 = _bitshift64Lshr($297 | 0, $298 | 0, 8) | 0;
$306 = tempRet0;
$307 = _bitshift64Shl($297 | 0, $298 | 0, 56) | 0;
$310 = tempRet0 | $306;
$311 = _bitshift64Lshr($297 | 0, $298 | 0, 7) | 0;
$316 = $310 ^ tempRet0 ^ $304;
$319 = _i64Add($267 | 0, $268 | 0, $317 | 0, $318 | 0) | 0;
$321 = _i64Add($319 | 0, tempRet0 | 0, ($307 | $305) ^ $311 ^ ($301 | $299) | 0, $316 | 0) | 0;
$323 = _i64Add($321 | 0, tempRet0 | 0, ($287 | $285) ^ $291 ^ ($281 | $279) | 0, $296 | 0) | 0;
$324 = tempRet0;
$327 = _bitshift64Lshr($325 | 0, $326 | 0, 28) | 0;
$328 = tempRet0;
$329 = _bitshift64Shl($325 | 0, $326 | 0, 36) | 0;
$332 = tempRet0 | $328;
$333 = _bitshift64Lshr($325 | 0, $326 | 0, 34) | 0;
$334 = tempRet0;
$335 = _bitshift64Shl($325 | 0, $326 | 0, 30) | 0;
$340 = $332 ^ (tempRet0 | $334);
$341 = _bitshift64Lshr($325 | 0, $326 | 0, 39) | 0;
$342 = tempRet0;
$343 = _bitshift64Shl($325 | 0, $326 | 0, 25) | 0;
$361 = _i64Add(($351 ^ $350) & $325 ^ $351 & $350 | 0, ($354 ^ $353) & $326 ^ $354 & $353 | 0, ($329 | $327) ^ ($335 | $333) ^ ($343 | $341) | 0, $340 ^ (tempRet0 | $342) | 0) | 0;
$362 = tempRet0;
$365 = _i64Add($275 | 0, $276 | 0, $363 | 0, $364 | 0) | 0;
$366 = tempRet0;
$367 = _i64Add($361 | 0, $362 | 0, $275 | 0, $276 | 0) | 0;
$368 = tempRet0;
$369 = _bitshift64Lshr($365 | 0, $366 | 0, 14) | 0;
$370 = tempRet0;
$371 = _bitshift64Shl($365 | 0, $366 | 0, 50) | 0;
$374 = tempRet0 | $370;
$375 = _bitshift64Lshr($365 | 0, $366 | 0, 18) | 0;
$376 = tempRet0;
$377 = _bitshift64Shl($365 | 0, $366 | 0, 46) | 0;
$382 = $374 ^ (tempRet0 | $376);
$383 = _bitshift64Lshr($365 | 0, $366 | 0, 41) | 0;
$384 = tempRet0;
$385 = _bitshift64Shl($365 | 0, $366 | 0, 23) | 0;
$390 = $382 ^ (tempRet0 | $384);
$401 = 64 + (($t$122$i | 1) << 3) | 0;
$403 = HEAP32[$401 >> 2] | 0;
$406 = HEAP32[$401 + 4 >> 2] | 0;
$407 = _i64Add($253 | 0, $255 | 0, $297 | 0, $298 | 0) | 0;
$409 = _i64Add($407 | 0, tempRet0 | 0, $403 | 0, $406 | 0) | 0;
$411 = _i64Add($409 | 0, tempRet0 | 0, $247 & ~$365 ^ $365 & $222 | 0, $249 & ~$366 ^ $366 & $223 | 0) | 0;
$413 = _i64Add($411 | 0, tempRet0 | 0, ($371 | $369) ^ ($377 | $375) ^ ($385 | $383) | 0, $390 | 0) | 0;
$414 = tempRet0;
$417 = _bitshift64Lshr($415 | 0, $416 | 0, 19) | 0;
$418 = tempRet0;
$419 = _bitshift64Shl($415 | 0, $416 | 0, 45) | 0;
$422 = tempRet0 | $418;
$423 = _bitshift64Lshr($415 | 0, $416 | 0, 61) | 0;
$424 = tempRet0;
$425 = _bitshift64Shl($415 | 0, $416 | 0, 3) | 0;
$428 = tempRet0 | $424;
$429 = _bitshift64Lshr($415 | 0, $416 | 0, 6) | 0;
$434 = $428 ^ tempRet0 ^ $422;
$437 = _bitshift64Lshr($435 | 0, $436 | 0, 1) | 0;
$438 = tempRet0;
$439 = _bitshift64Shl($435 | 0, $436 | 0, 63) | 0;
$442 = tempRet0 | $438;
$443 = _bitshift64Lshr($435 | 0, $436 | 0, 8) | 0;
$444 = tempRet0;
$445 = _bitshift64Shl($435 | 0, $436 | 0, 56) | 0;
$448 = tempRet0 | $444;
$449 = _bitshift64Lshr($435 | 0, $436 | 0, 7) | 0;
$454 = $448 ^ tempRet0 ^ $442;
$457 = _i64Add($297 | 0, $298 | 0, $455 | 0, $456 | 0) | 0;
$459 = _i64Add($457 | 0, tempRet0 | 0, ($445 | $443) ^ $449 ^ ($439 | $437) | 0, $454 | 0) | 0;
$461 = _i64Add($459 | 0, tempRet0 | 0, ($425 | $423) ^ $429 ^ ($419 | $417) | 0, $434 | 0) | 0;
$462 = tempRet0;
$463 = _bitshift64Lshr($367 | 0, $368 | 0, 28) | 0;
$464 = tempRet0;
$465 = _bitshift64Shl($367 | 0, $368 | 0, 36) | 0;
$468 = tempRet0 | $464;
$469 = _bitshift64Lshr($367 | 0, $368 | 0, 34) | 0;
$470 = tempRet0;
$471 = _bitshift64Shl($367 | 0, $368 | 0, 30) | 0;
$476 = $468 ^ (tempRet0 | $470);
$477 = _bitshift64Lshr($367 | 0, $368 | 0, 39) | 0;
$478 = tempRet0;
$479 = _bitshift64Shl($367 | 0, $368 | 0, 25) | 0;
$493 = _i64Add(($465 | $463) ^ ($471 | $469) ^ ($479 | $477) | 0, $476 ^ (tempRet0 | $478) | 0, $367 & ($350 ^ $325) ^ $350 & $325 | 0, $368 & ($353 ^ $326) ^ $353 & $326 | 0) | 0;
$494 = tempRet0;
$495 = _i64Add($413 | 0, $414 | 0, $351 | 0, $354 | 0) | 0;
$496 = tempRet0;
$497 = _i64Add($493 | 0, $494 | 0, $413 | 0, $414 | 0) | 0;
$498 = tempRet0;
$499 = _bitshift64Lshr($495 | 0, $496 | 0, 14) | 0;
$500 = tempRet0;
$501 = _bitshift64Shl($495 | 0, $496 | 0, 50) | 0;
$504 = tempRet0 | $500;
$505 = _bitshift64Lshr($495 | 0, $496 | 0, 18) | 0;
$506 = tempRet0;
$507 = _bitshift64Shl($495 | 0, $496 | 0, 46) | 0;
$512 = $504 ^ (tempRet0 | $506);
$513 = _bitshift64Lshr($495 | 0, $496 | 0, 41) | 0;
$514 = tempRet0;
$515 = _bitshift64Shl($495 | 0, $496 | 0, 23) | 0;
$520 = $512 ^ (tempRet0 | $514);
$531 = 64 + (($t$122$i | 2) << 3) | 0;
$533 = HEAP32[$531 >> 2] | 0;
$536 = HEAP32[$531 + 4 >> 2] | 0;
$537 = _i64Add($247 | 0, $249 | 0, $435 | 0, $436 | 0) | 0;
$539 = _i64Add($537 | 0, tempRet0 | 0, $533 | 0, $536 | 0) | 0;
$541 = _i64Add($539 | 0, tempRet0 | 0, $222 & ~$495 ^ $495 & $365 | 0, $223 & ~$496 ^ $496 & $366 | 0) | 0;
$543 = _i64Add($541 | 0, tempRet0 | 0, ($501 | $499) ^ ($507 | $505) ^ ($515 | $513) | 0, $520 | 0) | 0;
$544 = tempRet0;
$545 = _bitshift64Lshr($323 | 0, $324 | 0, 19) | 0;
$546 = tempRet0;
$547 = _bitshift64Shl($323 | 0, $324 | 0, 45) | 0;
$550 = tempRet0 | $546;
$551 = _bitshift64Lshr($323 | 0, $324 | 0, 61) | 0;
$552 = tempRet0;
$553 = _bitshift64Shl($323 | 0, $324 | 0, 3) | 0;
$556 = tempRet0 | $552;
$557 = _bitshift64Lshr($323 | 0, $324 | 0, 6) | 0;
$562 = $556 ^ tempRet0 ^ $550;
$565 = _bitshift64Lshr($563 | 0, $564 | 0, 1) | 0;
$566 = tempRet0;
$567 = _bitshift64Shl($563 | 0, $564 | 0, 63) | 0;
$570 = tempRet0 | $566;
$571 = _bitshift64Lshr($563 | 0, $564 | 0, 8) | 0;
$572 = tempRet0;
$573 = _bitshift64Shl($563 | 0, $564 | 0, 56) | 0;
$576 = tempRet0 | $572;
$577 = _bitshift64Lshr($563 | 0, $564 | 0, 7) | 0;
$582 = $576 ^ tempRet0 ^ $570;
$585 = _i64Add($435 | 0, $436 | 0, $583 | 0, $584 | 0) | 0;
$587 = _i64Add($585 | 0, tempRet0 | 0, ($573 | $571) ^ $577 ^ ($567 | $565) | 0, $582 | 0) | 0;
$589 = _i64Add($587 | 0, tempRet0 | 0, ($553 | $551) ^ $557 ^ ($547 | $545) | 0, $562 | 0) | 0;
$590 = tempRet0;
$591 = _bitshift64Lshr($497 | 0, $498 | 0, 28) | 0;
$592 = tempRet0;
$593 = _bitshift64Shl($497 | 0, $498 | 0, 36) | 0;
$596 = tempRet0 | $592;
$597 = _bitshift64Lshr($497 | 0, $498 | 0, 34) | 0;
$598 = tempRet0;
$599 = _bitshift64Shl($497 | 0, $498 | 0, 30) | 0;
$604 = $596 ^ (tempRet0 | $598);
$605 = _bitshift64Lshr($497 | 0, $498 | 0, 39) | 0;
$606 = tempRet0;
$607 = _bitshift64Shl($497 | 0, $498 | 0, 25) | 0;
$621 = _i64Add(($593 | $591) ^ ($599 | $597) ^ ($607 | $605) | 0, $604 ^ (tempRet0 | $606) | 0, $497 & ($367 ^ $325) ^ $367 & $325 | 0, $498 & ($368 ^ $326) ^ $368 & $326 | 0) | 0;
$622 = tempRet0;
$623 = _i64Add($543 | 0, $544 | 0, $350 | 0, $353 | 0) | 0;
$624 = tempRet0;
$625 = _i64Add($621 | 0, $622 | 0, $543 | 0, $544 | 0) | 0;
$626 = tempRet0;
$627 = _bitshift64Lshr($623 | 0, $624 | 0, 14) | 0;
$628 = tempRet0;
$629 = _bitshift64Shl($623 | 0, $624 | 0, 50) | 0;
$632 = tempRet0 | $628;
$633 = _bitshift64Lshr($623 | 0, $624 | 0, 18) | 0;
$634 = tempRet0;
$635 = _bitshift64Shl($623 | 0, $624 | 0, 46) | 0;
$640 = $632 ^ (tempRet0 | $634);
$641 = _bitshift64Lshr($623 | 0, $624 | 0, 41) | 0;
$642 = tempRet0;
$643 = _bitshift64Shl($623 | 0, $624 | 0, 23) | 0;
$648 = $640 ^ (tempRet0 | $642);
$659 = 64 + (($t$122$i | 3) << 3) | 0;
$661 = HEAP32[$659 >> 2] | 0;
$664 = HEAP32[$659 + 4 >> 2] | 0;
$665 = _i64Add($222 | 0, $223 | 0, $563 | 0, $564 | 0) | 0;
$667 = _i64Add($665 | 0, tempRet0 | 0, $661 | 0, $664 | 0) | 0;
$669 = _i64Add($667 | 0, tempRet0 | 0, $365 & ~$623 ^ $623 & $495 | 0, $366 & ~$624 ^ $624 & $496 | 0) | 0;
$671 = _i64Add($669 | 0, tempRet0 | 0, ($629 | $627) ^ ($635 | $633) ^ ($643 | $641) | 0, $648 | 0) | 0;
$672 = tempRet0;
$673 = _bitshift64Lshr($461 | 0, $462 | 0, 19) | 0;
$674 = tempRet0;
$675 = _bitshift64Shl($461 | 0, $462 | 0, 45) | 0;
$678 = tempRet0 | $674;
$679 = _bitshift64Lshr($461 | 0, $462 | 0, 61) | 0;
$680 = tempRet0;
$681 = _bitshift64Shl($461 | 0, $462 | 0, 3) | 0;
$684 = tempRet0 | $680;
$685 = _bitshift64Lshr($461 | 0, $462 | 0, 6) | 0;
$690 = $684 ^ tempRet0 ^ $678;
$693 = _bitshift64Lshr($691 | 0, $692 | 0, 1) | 0;
$694 = tempRet0;
$695 = _bitshift64Shl($691 | 0, $692 | 0, 63) | 0;
$698 = tempRet0 | $694;
$699 = _bitshift64Lshr($691 | 0, $692 | 0, 8) | 0;
$700 = tempRet0;
$701 = _bitshift64Shl($691 | 0, $692 | 0, 56) | 0;
$704 = tempRet0 | $700;
$705 = _bitshift64Lshr($691 | 0, $692 | 0, 7) | 0;
$710 = $704 ^ tempRet0 ^ $698;
$713 = _i64Add($563 | 0, $564 | 0, $711 | 0, $712 | 0) | 0;
$715 = _i64Add($713 | 0, tempRet0 | 0, ($701 | $699) ^ $705 ^ ($695 | $693) | 0, $710 | 0) | 0;
$717 = _i64Add($715 | 0, tempRet0 | 0, ($681 | $679) ^ $685 ^ ($675 | $673) | 0, $690 | 0) | 0;
$718 = tempRet0;
$719 = _bitshift64Lshr($625 | 0, $626 | 0, 28) | 0;
$720 = tempRet0;
$721 = _bitshift64Shl($625 | 0, $626 | 0, 36) | 0;
$724 = tempRet0 | $720;
$725 = _bitshift64Lshr($625 | 0, $626 | 0, 34) | 0;
$726 = tempRet0;
$727 = _bitshift64Shl($625 | 0, $626 | 0, 30) | 0;
$732 = $724 ^ (tempRet0 | $726);
$733 = _bitshift64Lshr($625 | 0, $626 | 0, 39) | 0;
$734 = tempRet0;
$735 = _bitshift64Shl($625 | 0, $626 | 0, 25) | 0;
$749 = _i64Add(($721 | $719) ^ ($727 | $725) ^ ($735 | $733) | 0, $732 ^ (tempRet0 | $734) | 0, $625 & ($497 ^ $367) ^ $497 & $367 | 0, $626 & ($498 ^ $368) ^ $498 & $368 | 0) | 0;
$750 = tempRet0;
$751 = _i64Add($671 | 0, $672 | 0, $325 | 0, $326 | 0) | 0;
$752 = tempRet0;
$753 = _i64Add($749 | 0, $750 | 0, $671 | 0, $672 | 0) | 0;
$754 = tempRet0;
$755 = _bitshift64Lshr($751 | 0, $752 | 0, 14) | 0;
$756 = tempRet0;
$757 = _bitshift64Shl($751 | 0, $752 | 0, 50) | 0;
$760 = tempRet0 | $756;
$761 = _bitshift64Lshr($751 | 0, $752 | 0, 18) | 0;
$762 = tempRet0;
$763 = _bitshift64Shl($751 | 0, $752 | 0, 46) | 0;
$768 = $760 ^ (tempRet0 | $762);
$769 = _bitshift64Lshr($751 | 0, $752 | 0, 41) | 0;
$770 = tempRet0;
$771 = _bitshift64Shl($751 | 0, $752 | 0, 23) | 0;
$776 = $768 ^ (tempRet0 | $770);
$787 = 64 + (($t$122$i | 4) << 3) | 0;
$793 = _i64Add(HEAP32[$787 >> 2] | 0, HEAP32[$787 + 4 >> 2] | 0, $691 | 0, $692 | 0) | 0;
$795 = _i64Add($793 | 0, tempRet0 | 0, $365 | 0, $366 | 0) | 0;
$797 = _i64Add($795 | 0, tempRet0 | 0, $495 & ~$751 ^ $751 & $623 | 0, $496 & ~$752 ^ $752 & $624 | 0) | 0;
$799 = _i64Add($797 | 0, tempRet0 | 0, ($757 | $755) ^ ($763 | $761) ^ ($771 | $769) | 0, $776 | 0) | 0;
$800 = tempRet0;
$801 = _bitshift64Lshr($589 | 0, $590 | 0, 19) | 0;
$802 = tempRet0;
$803 = _bitshift64Shl($589 | 0, $590 | 0, 45) | 0;
$806 = tempRet0 | $802;
$807 = _bitshift64Lshr($589 | 0, $590 | 0, 61) | 0;
$808 = tempRet0;
$809 = _bitshift64Shl($589 | 0, $590 | 0, 3) | 0;
$812 = tempRet0 | $808;
$813 = _bitshift64Lshr($589 | 0, $590 | 0, 6) | 0;
$818 = $812 ^ tempRet0 ^ $806;
$821 = _bitshift64Lshr($819 | 0, $820 | 0, 1) | 0;
$822 = tempRet0;
$823 = _bitshift64Shl($819 | 0, $820 | 0, 63) | 0;
$826 = tempRet0 | $822;
$827 = _bitshift64Lshr($819 | 0, $820 | 0, 8) | 0;
$828 = tempRet0;
$829 = _bitshift64Shl($819 | 0, $820 | 0, 56) | 0;
$832 = tempRet0 | $828;
$833 = _bitshift64Lshr($819 | 0, $820 | 0, 7) | 0;
$838 = $832 ^ tempRet0 ^ $826;
$841 = _i64Add($691 | 0, $692 | 0, $839 | 0, $840 | 0) | 0;
$843 = _i64Add($841 | 0, tempRet0 | 0, ($829 | $827) ^ $833 ^ ($823 | $821) | 0, $838 | 0) | 0;
$845 = _i64Add($843 | 0, tempRet0 | 0, ($809 | $807) ^ $813 ^ ($803 | $801) | 0, $818 | 0) | 0;
$846 = tempRet0;
$847 = _bitshift64Lshr($753 | 0, $754 | 0, 28) | 0;
$848 = tempRet0;
$849 = _bitshift64Shl($753 | 0, $754 | 0, 36) | 0;
$852 = tempRet0 | $848;
$853 = _bitshift64Lshr($753 | 0, $754 | 0, 34) | 0;
$854 = tempRet0;
$855 = _bitshift64Shl($753 | 0, $754 | 0, 30) | 0;
$860 = $852 ^ (tempRet0 | $854);
$861 = _bitshift64Lshr($753 | 0, $754 | 0, 39) | 0;
$862 = tempRet0;
$863 = _bitshift64Shl($753 | 0, $754 | 0, 25) | 0;
$877 = _i64Add(($849 | $847) ^ ($855 | $853) ^ ($863 | $861) | 0, $860 ^ (tempRet0 | $862) | 0, $753 & ($625 ^ $497) ^ $625 & $497 | 0, $754 & ($626 ^ $498) ^ $626 & $498 | 0) | 0;
$878 = tempRet0;
$879 = _i64Add($799 | 0, $800 | 0, $367 | 0, $368 | 0) | 0;
$880 = tempRet0;
$881 = _i64Add($877 | 0, $878 | 0, $799 | 0, $800 | 0) | 0;
$882 = tempRet0;
$883 = _bitshift64Lshr($879 | 0, $880 | 0, 14) | 0;
$884 = tempRet0;
$885 = _bitshift64Shl($879 | 0, $880 | 0, 50) | 0;
$888 = tempRet0 | $884;
$889 = _bitshift64Lshr($879 | 0, $880 | 0, 18) | 0;
$890 = tempRet0;
$891 = _bitshift64Shl($879 | 0, $880 | 0, 46) | 0;
$896 = $888 ^ (tempRet0 | $890);
$897 = _bitshift64Lshr($879 | 0, $880 | 0, 41) | 0;
$898 = tempRet0;
$899 = _bitshift64Shl($879 | 0, $880 | 0, 23) | 0;
$904 = $896 ^ (tempRet0 | $898);
$915 = 64 + (($t$122$i | 5) << 3) | 0;
$921 = _i64Add(HEAP32[$915 >> 2] | 0, HEAP32[$915 + 4 >> 2] | 0, $819 | 0, $820 | 0) | 0;
$923 = _i64Add($921 | 0, tempRet0 | 0, $495 | 0, $496 | 0) | 0;
$925 = _i64Add($923 | 0, tempRet0 | 0, $623 & ~$879 ^ $879 & $751 | 0, $624 & ~$880 ^ $880 & $752 | 0) | 0;
$927 = _i64Add($925 | 0, tempRet0 | 0, ($885 | $883) ^ ($891 | $889) ^ ($899 | $897) | 0, $904 | 0) | 0;
$928 = tempRet0;
$929 = _bitshift64Lshr($717 | 0, $718 | 0, 19) | 0;
$930 = tempRet0;
$931 = _bitshift64Shl($717 | 0, $718 | 0, 45) | 0;
$934 = tempRet0 | $930;
$935 = _bitshift64Lshr($717 | 0, $718 | 0, 61) | 0;
$936 = tempRet0;
$937 = _bitshift64Shl($717 | 0, $718 | 0, 3) | 0;
$940 = tempRet0 | $936;
$941 = _bitshift64Lshr($717 | 0, $718 | 0, 6) | 0;
$946 = $940 ^ tempRet0 ^ $934;
$949 = _bitshift64Lshr($947 | 0, $948 | 0, 1) | 0;
$950 = tempRet0;
$951 = _bitshift64Shl($947 | 0, $948 | 0, 63) | 0;
$954 = tempRet0 | $950;
$955 = _bitshift64Lshr($947 | 0, $948 | 0, 8) | 0;
$956 = tempRet0;
$957 = _bitshift64Shl($947 | 0, $948 | 0, 56) | 0;
$960 = tempRet0 | $956;
$961 = _bitshift64Lshr($947 | 0, $948 | 0, 7) | 0;
$967 = _i64Add(($957 | $955) ^ $961 ^ ($951 | $949) | 0, $960 ^ tempRet0 ^ $954 | 0, $819 | 0, $820 | 0) | 0;
$969 = _i64Add($967 | 0, tempRet0 | 0, $277 | 0, $278 | 0) | 0;
$971 = _i64Add($969 | 0, tempRet0 | 0, ($937 | $935) ^ $941 ^ ($931 | $929) | 0, $946 | 0) | 0;
$972 = tempRet0;
$973 = _bitshift64Lshr($881 | 0, $882 | 0, 28) | 0;
$974 = tempRet0;
$975 = _bitshift64Shl($881 | 0, $882 | 0, 36) | 0;
$978 = tempRet0 | $974;
$979 = _bitshift64Lshr($881 | 0, $882 | 0, 34) | 0;
$980 = tempRet0;
$981 = _bitshift64Shl($881 | 0, $882 | 0, 30) | 0;
$986 = $978 ^ (tempRet0 | $980);
$987 = _bitshift64Lshr($881 | 0, $882 | 0, 39) | 0;
$988 = tempRet0;
$989 = _bitshift64Shl($881 | 0, $882 | 0, 25) | 0;
$1003 = _i64Add(($975 | $973) ^ ($981 | $979) ^ ($989 | $987) | 0, $986 ^ (tempRet0 | $988) | 0, $881 & ($753 ^ $625) ^ $753 & $625 | 0, $882 & ($754 ^ $626) ^ $754 & $626 | 0) | 0;
$1004 = tempRet0;
$1005 = _i64Add($927 | 0, $928 | 0, $497 | 0, $498 | 0) | 0;
$1006 = tempRet0;
$1007 = _i64Add($1003 | 0, $1004 | 0, $927 | 0, $928 | 0) | 0;
$1008 = tempRet0;
$1009 = _bitshift64Lshr($1005 | 0, $1006 | 0, 14) | 0;
$1010 = tempRet0;
$1011 = _bitshift64Shl($1005 | 0, $1006 | 0, 50) | 0;
$1014 = tempRet0 | $1010;
$1015 = _bitshift64Lshr($1005 | 0, $1006 | 0, 18) | 0;
$1016 = tempRet0;
$1017 = _bitshift64Shl($1005 | 0, $1006 | 0, 46) | 0;
$1022 = $1014 ^ (tempRet0 | $1016);
$1023 = _bitshift64Lshr($1005 | 0, $1006 | 0, 41) | 0;
$1024 = tempRet0;
$1025 = _bitshift64Shl($1005 | 0, $1006 | 0, 23) | 0;
$1030 = $1022 ^ (tempRet0 | $1024);
$1041 = 64 + (($t$122$i | 6) << 3) | 0;
$1047 = _i64Add(HEAP32[$1041 >> 2] | 0, HEAP32[$1041 + 4 >> 2] | 0, $947 | 0, $948 | 0) | 0;
$1049 = _i64Add($1047 | 0, tempRet0 | 0, $623 | 0, $624 | 0) | 0;
$1051 = _i64Add($1049 | 0, tempRet0 | 0, $751 & ~$1005 ^ $1005 & $879 | 0, $752 & ~$1006 ^ $1006 & $880 | 0) | 0;
$1053 = _i64Add($1051 | 0, tempRet0 | 0, ($1011 | $1009) ^ ($1017 | $1015) ^ ($1025 | $1023) | 0, $1030 | 0) | 0;
$1054 = tempRet0;
$1055 = _bitshift64Lshr($845 | 0, $846 | 0, 19) | 0;
$1056 = tempRet0;
$1057 = _bitshift64Shl($845 | 0, $846 | 0, 45) | 0;
$1060 = tempRet0 | $1056;
$1061 = _bitshift64Lshr($845 | 0, $846 | 0, 61) | 0;
$1062 = tempRet0;
$1063 = _bitshift64Shl($845 | 0, $846 | 0, 3) | 0;
$1066 = tempRet0 | $1062;
$1067 = _bitshift64Lshr($845 | 0, $846 | 0, 6) | 0;
$1072 = $1066 ^ tempRet0 ^ $1060;
$1075 = _bitshift64Lshr($1073 | 0, $1074 | 0, 1) | 0;
$1076 = tempRet0;
$1077 = _bitshift64Shl($1073 | 0, $1074 | 0, 63) | 0;
$1080 = tempRet0 | $1076;
$1081 = _bitshift64Lshr($1073 | 0, $1074 | 0, 8) | 0;
$1082 = tempRet0;
$1083 = _bitshift64Shl($1073 | 0, $1074 | 0, 56) | 0;
$1086 = tempRet0 | $1082;
$1087 = _bitshift64Lshr($1073 | 0, $1074 | 0, 7) | 0;
$1093 = _i64Add(($1083 | $1081) ^ $1087 ^ ($1077 | $1075) | 0, $1086 ^ tempRet0 ^ $1080 | 0, $947 | 0, $948 | 0) | 0;
$1095 = _i64Add($1093 | 0, tempRet0 | 0, $415 | 0, $416 | 0) | 0;
$1097 = _i64Add($1095 | 0, tempRet0 | 0, ($1063 | $1061) ^ $1067 ^ ($1057 | $1055) | 0, $1072 | 0) | 0;
$1098 = tempRet0;
$1099 = _bitshift64Lshr($1007 | 0, $1008 | 0, 28) | 0;
$1100 = tempRet0;
$1101 = _bitshift64Shl($1007 | 0, $1008 | 0, 36) | 0;
$1104 = tempRet0 | $1100;
$1105 = _bitshift64Lshr($1007 | 0, $1008 | 0, 34) | 0;
$1106 = tempRet0;
$1107 = _bitshift64Shl($1007 | 0, $1008 | 0, 30) | 0;
$1112 = $1104 ^ (tempRet0 | $1106);
$1113 = _bitshift64Lshr($1007 | 0, $1008 | 0, 39) | 0;
$1114 = tempRet0;
$1115 = _bitshift64Shl($1007 | 0, $1008 | 0, 25) | 0;
$1129 = _i64Add(($1101 | $1099) ^ ($1107 | $1105) ^ ($1115 | $1113) | 0, $1112 ^ (tempRet0 | $1114) | 0, $1007 & ($881 ^ $753) ^ $881 & $753 | 0, $1008 & ($882 ^ $754) ^ $882 & $754 | 0) | 0;
$1130 = tempRet0;
$1131 = _i64Add($1053 | 0, $1054 | 0, $625 | 0, $626 | 0) | 0;
$1132 = tempRet0;
$1133 = _i64Add($1129 | 0, $1130 | 0, $1053 | 0, $1054 | 0) | 0;
$1134 = tempRet0;
$1135 = _bitshift64Lshr($1131 | 0, $1132 | 0, 14) | 0;
$1136 = tempRet0;
$1137 = _bitshift64Shl($1131 | 0, $1132 | 0, 50) | 0;
$1140 = tempRet0 | $1136;
$1141 = _bitshift64Lshr($1131 | 0, $1132 | 0, 18) | 0;
$1142 = tempRet0;
$1143 = _bitshift64Shl($1131 | 0, $1132 | 0, 46) | 0;
$1148 = $1140 ^ (tempRet0 | $1142);
$1149 = _bitshift64Lshr($1131 | 0, $1132 | 0, 41) | 0;
$1150 = tempRet0;
$1151 = _bitshift64Shl($1131 | 0, $1132 | 0, 23) | 0;
$1156 = $1148 ^ (tempRet0 | $1150);
$1167 = 64 + (($t$122$i | 7) << 3) | 0;
$1173 = _i64Add(HEAP32[$1167 >> 2] | 0, HEAP32[$1167 + 4 >> 2] | 0, $1073 | 0, $1074 | 0) | 0;
$1175 = _i64Add($1173 | 0, tempRet0 | 0, $751 | 0, $752 | 0) | 0;
$1177 = _i64Add($1175 | 0, tempRet0 | 0, $879 & ~$1131 ^ $1131 & $1005 | 0, $880 & ~$1132 ^ $1132 & $1006 | 0) | 0;
$1179 = _i64Add($1177 | 0, tempRet0 | 0, ($1137 | $1135) ^ ($1143 | $1141) ^ ($1151 | $1149) | 0, $1156 | 0) | 0;
$1180 = tempRet0;
$1181 = _bitshift64Lshr($971 | 0, $972 | 0, 19) | 0;
$1182 = tempRet0;
$1183 = _bitshift64Shl($971 | 0, $972 | 0, 45) | 0;
$1186 = tempRet0 | $1182;
$1187 = _bitshift64Lshr($971 | 0, $972 | 0, 61) | 0;
$1188 = tempRet0;
$1189 = _bitshift64Shl($971 | 0, $972 | 0, 3) | 0;
$1192 = tempRet0 | $1188;
$1193 = _bitshift64Lshr($971 | 0, $972 | 0, 6) | 0;
$1198 = $1192 ^ tempRet0 ^ $1186;
$1201 = _bitshift64Lshr($1199 | 0, $1200 | 0, 1) | 0;
$1202 = tempRet0;
$1203 = _bitshift64Shl($1199 | 0, $1200 | 0, 63) | 0;
$1206 = tempRet0 | $1202;
$1207 = _bitshift64Lshr($1199 | 0, $1200 | 0, 8) | 0;
$1208 = tempRet0;
$1209 = _bitshift64Shl($1199 | 0, $1200 | 0, 56) | 0;
$1212 = tempRet0 | $1208;
$1213 = _bitshift64Lshr($1199 | 0, $1200 | 0, 7) | 0;
$1219 = _i64Add(($1209 | $1207) ^ $1213 ^ ($1203 | $1201) | 0, $1212 ^ tempRet0 ^ $1206 | 0, $1073 | 0, $1074 | 0) | 0;
$1221 = _i64Add($1219 | 0, tempRet0 | 0, $323 | 0, $324 | 0) | 0;
$1223 = _i64Add($1221 | 0, tempRet0 | 0, ($1189 | $1187) ^ $1193 ^ ($1183 | $1181) | 0, $1198 | 0) | 0;
$1224 = tempRet0;
$1225 = _bitshift64Lshr($1133 | 0, $1134 | 0, 28) | 0;
$1226 = tempRet0;
$1227 = _bitshift64Shl($1133 | 0, $1134 | 0, 36) | 0;
$1230 = tempRet0 | $1226;
$1231 = _bitshift64Lshr($1133 | 0, $1134 | 0, 34) | 0;
$1232 = tempRet0;
$1233 = _bitshift64Shl($1133 | 0, $1134 | 0, 30) | 0;
$1238 = $1230 ^ (tempRet0 | $1232);
$1239 = _bitshift64Lshr($1133 | 0, $1134 | 0, 39) | 0;
$1240 = tempRet0;
$1241 = _bitshift64Shl($1133 | 0, $1134 | 0, 25) | 0;
$1255 = _i64Add(($1227 | $1225) ^ ($1233 | $1231) ^ ($1241 | $1239) | 0, $1238 ^ (tempRet0 | $1240) | 0, $1133 & ($1007 ^ $881) ^ $1007 & $881 | 0, $1134 & ($1008 ^ $882) ^ $1008 & $882 | 0) | 0;
$1256 = tempRet0;
$1257 = _i64Add($1179 | 0, $1180 | 0, $753 | 0, $754 | 0) | 0;
$1258 = tempRet0;
$1259 = _i64Add($1255 | 0, $1256 | 0, $1179 | 0, $1180 | 0) | 0;
$1260 = tempRet0;
$1261 = _bitshift64Lshr($1257 | 0, $1258 | 0, 14) | 0;
$1262 = tempRet0;
$1263 = _bitshift64Shl($1257 | 0, $1258 | 0, 50) | 0;
$1266 = tempRet0 | $1262;
$1267 = _bitshift64Lshr($1257 | 0, $1258 | 0, 18) | 0;
$1268 = tempRet0;
$1269 = _bitshift64Shl($1257 | 0, $1258 | 0, 46) | 0;
$1274 = $1266 ^ (tempRet0 | $1268);
$1275 = _bitshift64Lshr($1257 | 0, $1258 | 0, 41) | 0;
$1276 = tempRet0;
$1277 = _bitshift64Shl($1257 | 0, $1258 | 0, 23) | 0;
$1282 = $1274 ^ (tempRet0 | $1276);
$1293 = 64 + (($t$122$i | 8) << 3) | 0;
$1299 = _i64Add(HEAP32[$1293 >> 2] | 0, HEAP32[$1293 + 4 >> 2] | 0, $1199 | 0, $1200 | 0) | 0;
$1301 = _i64Add($1299 | 0, tempRet0 | 0, $879 | 0, $880 | 0) | 0;
$1303 = _i64Add($1301 | 0, tempRet0 | 0, $1005 & ~$1257 ^ $1257 & $1131 | 0, $1006 & ~$1258 ^ $1258 & $1132 | 0) | 0;
$1305 = _i64Add($1303 | 0, tempRet0 | 0, ($1263 | $1261) ^ ($1269 | $1267) ^ ($1277 | $1275) | 0, $1282 | 0) | 0;
$1306 = tempRet0;
$1307 = _bitshift64Lshr($1097 | 0, $1098 | 0, 19) | 0;
$1308 = tempRet0;
$1309 = _bitshift64Shl($1097 | 0, $1098 | 0, 45) | 0;
$1312 = tempRet0 | $1308;
$1313 = _bitshift64Lshr($1097 | 0, $1098 | 0, 61) | 0;
$1314 = tempRet0;
$1315 = _bitshift64Shl($1097 | 0, $1098 | 0, 3) | 0;
$1318 = tempRet0 | $1314;
$1319 = _bitshift64Lshr($1097 | 0, $1098 | 0, 6) | 0;
$1324 = $1318 ^ tempRet0 ^ $1312;
$1325 = _bitshift64Lshr($317 | 0, $318 | 0, 1) | 0;
$1326 = tempRet0;
$1327 = _bitshift64Shl($317 | 0, $318 | 0, 63) | 0;
$1330 = tempRet0 | $1326;
$1331 = _bitshift64Lshr($317 | 0, $318 | 0, 8) | 0;
$1332 = tempRet0;
$1333 = _bitshift64Shl($317 | 0, $318 | 0, 56) | 0;
$1336 = tempRet0 | $1332;
$1337 = _bitshift64Lshr($317 | 0, $318 | 0, 7) | 0;
$1342 = $1336 ^ tempRet0 ^ $1330;
$1343 = _i64Add($461 | 0, $462 | 0, $1199 | 0, $1200 | 0) | 0;
$1345 = _i64Add($1343 | 0, tempRet0 | 0, ($1333 | $1331) ^ $1337 ^ ($1327 | $1325) | 0, $1342 | 0) | 0;
$1347 = _i64Add($1345 | 0, tempRet0 | 0, ($1315 | $1313) ^ $1319 ^ ($1309 | $1307) | 0, $1324 | 0) | 0;
$1348 = tempRet0;
$1349 = _bitshift64Lshr($1259 | 0, $1260 | 0, 28) | 0;
$1350 = tempRet0;
$1351 = _bitshift64Shl($1259 | 0, $1260 | 0, 36) | 0;
$1354 = tempRet0 | $1350;
$1355 = _bitshift64Lshr($1259 | 0, $1260 | 0, 34) | 0;
$1356 = tempRet0;
$1357 = _bitshift64Shl($1259 | 0, $1260 | 0, 30) | 0;
$1362 = $1354 ^ (tempRet0 | $1356);
$1363 = _bitshift64Lshr($1259 | 0, $1260 | 0, 39) | 0;
$1364 = tempRet0;
$1365 = _bitshift64Shl($1259 | 0, $1260 | 0, 25) | 0;
$1379 = _i64Add(($1351 | $1349) ^ ($1357 | $1355) ^ ($1365 | $1363) | 0, $1362 ^ (tempRet0 | $1364) | 0, $1259 & ($1133 ^ $1007) ^ $1133 & $1007 | 0, $1260 & ($1134 ^ $1008) ^ $1134 & $1008 | 0) | 0;
$1380 = tempRet0;
$1381 = _i64Add($1305 | 0, $1306 | 0, $881 | 0, $882 | 0) | 0;
$1382 = tempRet0;
$1383 = _i64Add($1379 | 0, $1380 | 0, $1305 | 0, $1306 | 0) | 0;
$1384 = tempRet0;
$1385 = _bitshift64Lshr($1381 | 0, $1382 | 0, 14) | 0;
$1386 = tempRet0;
$1387 = _bitshift64Shl($1381 | 0, $1382 | 0, 50) | 0;
$1390 = tempRet0 | $1386;
$1391 = _bitshift64Lshr($1381 | 0, $1382 | 0, 18) | 0;
$1392 = tempRet0;
$1393 = _bitshift64Shl($1381 | 0, $1382 | 0, 46) | 0;
$1398 = $1390 ^ (tempRet0 | $1392);
$1399 = _bitshift64Lshr($1381 | 0, $1382 | 0, 41) | 0;
$1400 = tempRet0;
$1401 = _bitshift64Shl($1381 | 0, $1382 | 0, 23) | 0;
$1406 = $1398 ^ (tempRet0 | $1400);
$1417 = 64 + (($t$122$i | 9) << 3) | 0;
$1423 = _i64Add(HEAP32[$1417 >> 2] | 0, HEAP32[$1417 + 4 >> 2] | 0, $317 | 0, $318 | 0) | 0;
$1425 = _i64Add($1423 | 0, tempRet0 | 0, $1005 | 0, $1006 | 0) | 0;
$1427 = _i64Add($1425 | 0, tempRet0 | 0, $1131 & ~$1381 ^ $1381 & $1257 | 0, $1132 & ~$1382 ^ $1382 & $1258 | 0) | 0;
$1429 = _i64Add($1427 | 0, tempRet0 | 0, ($1387 | $1385) ^ ($1393 | $1391) ^ ($1401 | $1399) | 0, $1406 | 0) | 0;
$1430 = tempRet0;
$1431 = _bitshift64Lshr($1223 | 0, $1224 | 0, 19) | 0;
$1432 = tempRet0;
$1433 = _bitshift64Shl($1223 | 0, $1224 | 0, 45) | 0;
$1436 = tempRet0 | $1432;
$1437 = _bitshift64Lshr($1223 | 0, $1224 | 0, 61) | 0;
$1438 = tempRet0;
$1439 = _bitshift64Shl($1223 | 0, $1224 | 0, 3) | 0;
$1442 = tempRet0 | $1438;
$1443 = _bitshift64Lshr($1223 | 0, $1224 | 0, 6) | 0;
$1448 = $1442 ^ tempRet0 ^ $1436;
$1449 = _bitshift64Lshr($455 | 0, $456 | 0, 1) | 0;
$1450 = tempRet0;
$1451 = _bitshift64Shl($455 | 0, $456 | 0, 63) | 0;
$1454 = tempRet0 | $1450;
$1455 = _bitshift64Lshr($455 | 0, $456 | 0, 8) | 0;
$1456 = tempRet0;
$1457 = _bitshift64Shl($455 | 0, $456 | 0, 56) | 0;
$1460 = tempRet0 | $1456;
$1461 = _bitshift64Lshr($455 | 0, $456 | 0, 7) | 0;
$1467 = _i64Add(($1457 | $1455) ^ $1461 ^ ($1451 | $1449) | 0, $1460 ^ tempRet0 ^ $1454 | 0, $317 | 0, $318 | 0) | 0;
$1469 = _i64Add($1467 | 0, tempRet0 | 0, $589 | 0, $590 | 0) | 0;
$1471 = _i64Add($1469 | 0, tempRet0 | 0, ($1439 | $1437) ^ $1443 ^ ($1433 | $1431) | 0, $1448 | 0) | 0;
$1472 = tempRet0;
$1473 = _bitshift64Lshr($1383 | 0, $1384 | 0, 28) | 0;
$1474 = tempRet0;
$1475 = _bitshift64Shl($1383 | 0, $1384 | 0, 36) | 0;
$1478 = tempRet0 | $1474;
$1479 = _bitshift64Lshr($1383 | 0, $1384 | 0, 34) | 0;
$1480 = tempRet0;
$1481 = _bitshift64Shl($1383 | 0, $1384 | 0, 30) | 0;
$1486 = $1478 ^ (tempRet0 | $1480);
$1487 = _bitshift64Lshr($1383 | 0, $1384 | 0, 39) | 0;
$1488 = tempRet0;
$1489 = _bitshift64Shl($1383 | 0, $1384 | 0, 25) | 0;
$1503 = _i64Add(($1475 | $1473) ^ ($1481 | $1479) ^ ($1489 | $1487) | 0, $1486 ^ (tempRet0 | $1488) | 0, $1383 & ($1259 ^ $1133) ^ $1259 & $1133 | 0, $1384 & ($1260 ^ $1134) ^ $1260 & $1134 | 0) | 0;
$1504 = tempRet0;
$1505 = _i64Add($1429 | 0, $1430 | 0, $1007 | 0, $1008 | 0) | 0;
$1506 = tempRet0;
$1507 = _i64Add($1503 | 0, $1504 | 0, $1429 | 0, $1430 | 0) | 0;
$1508 = tempRet0;
$1509 = _bitshift64Lshr($1505 | 0, $1506 | 0, 14) | 0;
$1510 = tempRet0;
$1511 = _bitshift64Shl($1505 | 0, $1506 | 0, 50) | 0;
$1514 = tempRet0 | $1510;
$1515 = _bitshift64Lshr($1505 | 0, $1506 | 0, 18) | 0;
$1516 = tempRet0;
$1517 = _bitshift64Shl($1505 | 0, $1506 | 0, 46) | 0;
$1522 = $1514 ^ (tempRet0 | $1516);
$1523 = _bitshift64Lshr($1505 | 0, $1506 | 0, 41) | 0;
$1524 = tempRet0;
$1525 = _bitshift64Shl($1505 | 0, $1506 | 0, 23) | 0;
$1530 = $1522 ^ (tempRet0 | $1524);
$1541 = 64 + (($t$122$i | 10) << 3) | 0;
$1547 = _i64Add(HEAP32[$1541 >> 2] | 0, HEAP32[$1541 + 4 >> 2] | 0, $455 | 0, $456 | 0) | 0;
$1549 = _i64Add($1547 | 0, tempRet0 | 0, $1131 | 0, $1132 | 0) | 0;
$1551 = _i64Add($1549 | 0, tempRet0 | 0, $1257 & ~$1505 ^ $1505 & $1381 | 0, $1258 & ~$1506 ^ $1506 & $1382 | 0) | 0;
$1553 = _i64Add($1551 | 0, tempRet0 | 0, ($1511 | $1509) ^ ($1517 | $1515) ^ ($1525 | $1523) | 0, $1530 | 0) | 0;
$1554 = tempRet0;
$1555 = _bitshift64Lshr($1347 | 0, $1348 | 0, 19) | 0;
$1556 = tempRet0;
$1557 = _bitshift64Shl($1347 | 0, $1348 | 0, 45) | 0;
$1560 = tempRet0 | $1556;
$1561 = _bitshift64Lshr($1347 | 0, $1348 | 0, 61) | 0;
$1562 = tempRet0;
$1563 = _bitshift64Shl($1347 | 0, $1348 | 0, 3) | 0;
$1566 = tempRet0 | $1562;
$1567 = _bitshift64Lshr($1347 | 0, $1348 | 0, 6) | 0;
$1572 = $1566 ^ tempRet0 ^ $1560;
$1573 = _bitshift64Lshr($583 | 0, $584 | 0, 1) | 0;
$1574 = tempRet0;
$1575 = _bitshift64Shl($583 | 0, $584 | 0, 63) | 0;
$1578 = tempRet0 | $1574;
$1579 = _bitshift64Lshr($583 | 0, $584 | 0, 8) | 0;
$1580 = tempRet0;
$1581 = _bitshift64Shl($583 | 0, $584 | 0, 56) | 0;
$1584 = tempRet0 | $1580;
$1585 = _bitshift64Lshr($583 | 0, $584 | 0, 7) | 0;
$1591 = _i64Add(($1581 | $1579) ^ $1585 ^ ($1575 | $1573) | 0, $1584 ^ tempRet0 ^ $1578 | 0, $455 | 0, $456 | 0) | 0;
$1593 = _i64Add($1591 | 0, tempRet0 | 0, $717 | 0, $718 | 0) | 0;
$1595 = _i64Add($1593 | 0, tempRet0 | 0, ($1563 | $1561) ^ $1567 ^ ($1557 | $1555) | 0, $1572 | 0) | 0;
$1596 = tempRet0;
$1597 = _bitshift64Lshr($1507 | 0, $1508 | 0, 28) | 0;
$1598 = tempRet0;
$1599 = _bitshift64Shl($1507 | 0, $1508 | 0, 36) | 0;
$1602 = tempRet0 | $1598;
$1603 = _bitshift64Lshr($1507 | 0, $1508 | 0, 34) | 0;
$1604 = tempRet0;
$1605 = _bitshift64Shl($1507 | 0, $1508 | 0, 30) | 0;
$1610 = $1602 ^ (tempRet0 | $1604);
$1611 = _bitshift64Lshr($1507 | 0, $1508 | 0, 39) | 0;
$1612 = tempRet0;
$1613 = _bitshift64Shl($1507 | 0, $1508 | 0, 25) | 0;
$1627 = _i64Add(($1599 | $1597) ^ ($1605 | $1603) ^ ($1613 | $1611) | 0, $1610 ^ (tempRet0 | $1612) | 0, $1507 & ($1383 ^ $1259) ^ $1383 & $1259 | 0, $1508 & ($1384 ^ $1260) ^ $1384 & $1260 | 0) | 0;
$1628 = tempRet0;
$1629 = _i64Add($1553 | 0, $1554 | 0, $1133 | 0, $1134 | 0) | 0;
$1630 = tempRet0;
$1631 = _i64Add($1627 | 0, $1628 | 0, $1553 | 0, $1554 | 0) | 0;
$1632 = tempRet0;
$1633 = _bitshift64Lshr($1629 | 0, $1630 | 0, 14) | 0;
$1634 = tempRet0;
$1635 = _bitshift64Shl($1629 | 0, $1630 | 0, 50) | 0;
$1638 = tempRet0 | $1634;
$1639 = _bitshift64Lshr($1629 | 0, $1630 | 0, 18) | 0;
$1640 = tempRet0;
$1641 = _bitshift64Shl($1629 | 0, $1630 | 0, 46) | 0;
$1646 = $1638 ^ (tempRet0 | $1640);
$1647 = _bitshift64Lshr($1629 | 0, $1630 | 0, 41) | 0;
$1648 = tempRet0;
$1649 = _bitshift64Shl($1629 | 0, $1630 | 0, 23) | 0;
$1654 = $1646 ^ (tempRet0 | $1648);
$1665 = 64 + (($t$122$i | 11) << 3) | 0;
$1671 = _i64Add(HEAP32[$1665 >> 2] | 0, HEAP32[$1665 + 4 >> 2] | 0, $583 | 0, $584 | 0) | 0;
$1673 = _i64Add($1671 | 0, tempRet0 | 0, $1257 | 0, $1258 | 0) | 0;
$1675 = _i64Add($1673 | 0, tempRet0 | 0, $1381 & ~$1629 ^ $1629 & $1505 | 0, $1382 & ~$1630 ^ $1630 & $1506 | 0) | 0;
$1677 = _i64Add($1675 | 0, tempRet0 | 0, ($1635 | $1633) ^ ($1641 | $1639) ^ ($1649 | $1647) | 0, $1654 | 0) | 0;
$1678 = tempRet0;
$1679 = _bitshift64Lshr($1471 | 0, $1472 | 0, 19) | 0;
$1680 = tempRet0;
$1681 = _bitshift64Shl($1471 | 0, $1472 | 0, 45) | 0;
$1684 = tempRet0 | $1680;
$1685 = _bitshift64Lshr($1471 | 0, $1472 | 0, 61) | 0;
$1686 = tempRet0;
$1687 = _bitshift64Shl($1471 | 0, $1472 | 0, 3) | 0;
$1690 = tempRet0 | $1686;
$1691 = _bitshift64Lshr($1471 | 0, $1472 | 0, 6) | 0;
$1696 = $1690 ^ tempRet0 ^ $1684;
$1697 = _bitshift64Lshr($711 | 0, $712 | 0, 1) | 0;
$1698 = tempRet0;
$1699 = _bitshift64Shl($711 | 0, $712 | 0, 63) | 0;
$1702 = tempRet0 | $1698;
$1703 = _bitshift64Lshr($711 | 0, $712 | 0, 8) | 0;
$1704 = tempRet0;
$1705 = _bitshift64Shl($711 | 0, $712 | 0, 56) | 0;
$1708 = tempRet0 | $1704;
$1709 = _bitshift64Lshr($711 | 0, $712 | 0, 7) | 0;
$1715 = _i64Add(($1705 | $1703) ^ $1709 ^ ($1699 | $1697) | 0, $1708 ^ tempRet0 ^ $1702 | 0, $583 | 0, $584 | 0) | 0;
$1717 = _i64Add($1715 | 0, tempRet0 | 0, $845 | 0, $846 | 0) | 0;
$1719 = _i64Add($1717 | 0, tempRet0 | 0, ($1687 | $1685) ^ $1691 ^ ($1681 | $1679) | 0, $1696 | 0) | 0;
$1720 = tempRet0;
$1721 = _bitshift64Lshr($1631 | 0, $1632 | 0, 28) | 0;
$1722 = tempRet0;
$1723 = _bitshift64Shl($1631 | 0, $1632 | 0, 36) | 0;
$1726 = tempRet0 | $1722;
$1727 = _bitshift64Lshr($1631 | 0, $1632 | 0, 34) | 0;
$1728 = tempRet0;
$1729 = _bitshift64Shl($1631 | 0, $1632 | 0, 30) | 0;
$1734 = $1726 ^ (tempRet0 | $1728);
$1735 = _bitshift64Lshr($1631 | 0, $1632 | 0, 39) | 0;
$1736 = tempRet0;
$1737 = _bitshift64Shl($1631 | 0, $1632 | 0, 25) | 0;
$1751 = _i64Add(($1723 | $1721) ^ ($1729 | $1727) ^ ($1737 | $1735) | 0, $1734 ^ (tempRet0 | $1736) | 0, $1631 & ($1507 ^ $1383) ^ $1507 & $1383 | 0, $1632 & ($1508 ^ $1384) ^ $1508 & $1384 | 0) | 0;
$1752 = tempRet0;
$1753 = _i64Add($1677 | 0, $1678 | 0, $1259 | 0, $1260 | 0) | 0;
$1754 = tempRet0;
$1755 = _i64Add($1751 | 0, $1752 | 0, $1677 | 0, $1678 | 0) | 0;
$1756 = tempRet0;
$1757 = _bitshift64Lshr($1753 | 0, $1754 | 0, 14) | 0;
$1758 = tempRet0;
$1759 = _bitshift64Shl($1753 | 0, $1754 | 0, 50) | 0;
$1762 = tempRet0 | $1758;
$1763 = _bitshift64Lshr($1753 | 0, $1754 | 0, 18) | 0;
$1764 = tempRet0;
$1765 = _bitshift64Shl($1753 | 0, $1754 | 0, 46) | 0;
$1770 = $1762 ^ (tempRet0 | $1764);
$1771 = _bitshift64Lshr($1753 | 0, $1754 | 0, 41) | 0;
$1772 = tempRet0;
$1773 = _bitshift64Shl($1753 | 0, $1754 | 0, 23) | 0;
$1778 = $1770 ^ (tempRet0 | $1772);
$1789 = 64 + (($t$122$i | 12) << 3) | 0;
$1795 = _i64Add(HEAP32[$1789 >> 2] | 0, HEAP32[$1789 + 4 >> 2] | 0, $711 | 0, $712 | 0) | 0;
$1797 = _i64Add($1795 | 0, tempRet0 | 0, $1381 | 0, $1382 | 0) | 0;
$1799 = _i64Add($1797 | 0, tempRet0 | 0, $1505 & ~$1753 ^ $1753 & $1629 | 0, $1506 & ~$1754 ^ $1754 & $1630 | 0) | 0;
$1801 = _i64Add($1799 | 0, tempRet0 | 0, ($1759 | $1757) ^ ($1765 | $1763) ^ ($1773 | $1771) | 0, $1778 | 0) | 0;
$1802 = tempRet0;
$1803 = _bitshift64Lshr($1595 | 0, $1596 | 0, 19) | 0;
$1804 = tempRet0;
$1805 = _bitshift64Shl($1595 | 0, $1596 | 0, 45) | 0;
$1808 = tempRet0 | $1804;
$1809 = _bitshift64Lshr($1595 | 0, $1596 | 0, 61) | 0;
$1810 = tempRet0;
$1811 = _bitshift64Shl($1595 | 0, $1596 | 0, 3) | 0;
$1814 = tempRet0 | $1810;
$1815 = _bitshift64Lshr($1595 | 0, $1596 | 0, 6) | 0;
$1820 = $1814 ^ tempRet0 ^ $1808;
$1821 = _bitshift64Lshr($839 | 0, $840 | 0, 1) | 0;
$1822 = tempRet0;
$1823 = _bitshift64Shl($839 | 0, $840 | 0, 63) | 0;
$1826 = tempRet0 | $1822;
$1827 = _bitshift64Lshr($839 | 0, $840 | 0, 8) | 0;
$1828 = tempRet0;
$1829 = _bitshift64Shl($839 | 0, $840 | 0, 56) | 0;
$1832 = tempRet0 | $1828;
$1833 = _bitshift64Lshr($839 | 0, $840 | 0, 7) | 0;
$1839 = _i64Add(($1829 | $1827) ^ $1833 ^ ($1823 | $1821) | 0, $1832 ^ tempRet0 ^ $1826 | 0, $711 | 0, $712 | 0) | 0;
$1841 = _i64Add($1839 | 0, tempRet0 | 0, $971 | 0, $972 | 0) | 0;
$1843 = _i64Add($1841 | 0, tempRet0 | 0, ($1811 | $1809) ^ $1815 ^ ($1805 | $1803) | 0, $1820 | 0) | 0;
$1844 = tempRet0;
$1845 = _bitshift64Lshr($1755 | 0, $1756 | 0, 28) | 0;
$1846 = tempRet0;
$1847 = _bitshift64Shl($1755 | 0, $1756 | 0, 36) | 0;
$1850 = tempRet0 | $1846;
$1851 = _bitshift64Lshr($1755 | 0, $1756 | 0, 34) | 0;
$1852 = tempRet0;
$1853 = _bitshift64Shl($1755 | 0, $1756 | 0, 30) | 0;
$1858 = $1850 ^ (tempRet0 | $1852);
$1859 = _bitshift64Lshr($1755 | 0, $1756 | 0, 39) | 0;
$1860 = tempRet0;
$1861 = _bitshift64Shl($1755 | 0, $1756 | 0, 25) | 0;
$1875 = _i64Add(($1847 | $1845) ^ ($1853 | $1851) ^ ($1861 | $1859) | 0, $1858 ^ (tempRet0 | $1860) | 0, $1755 & ($1631 ^ $1507) ^ $1631 & $1507 | 0, $1756 & ($1632 ^ $1508) ^ $1632 & $1508 | 0) | 0;
$1876 = tempRet0;
$1877 = _i64Add($1801 | 0, $1802 | 0, $1383 | 0, $1384 | 0) | 0;
$1878 = tempRet0;
$1879 = _i64Add($1875 | 0, $1876 | 0, $1801 | 0, $1802 | 0) | 0;
$1880 = tempRet0;
$1881 = _bitshift64Lshr($1877 | 0, $1878 | 0, 14) | 0;
$1882 = tempRet0;
$1883 = _bitshift64Shl($1877 | 0, $1878 | 0, 50) | 0;
$1886 = tempRet0 | $1882;
$1887 = _bitshift64Lshr($1877 | 0, $1878 | 0, 18) | 0;
$1888 = tempRet0;
$1889 = _bitshift64Shl($1877 | 0, $1878 | 0, 46) | 0;
$1894 = $1886 ^ (tempRet0 | $1888);
$1895 = _bitshift64Lshr($1877 | 0, $1878 | 0, 41) | 0;
$1896 = tempRet0;
$1897 = _bitshift64Shl($1877 | 0, $1878 | 0, 23) | 0;
$1902 = $1894 ^ (tempRet0 | $1896);
$1913 = 64 + (($t$122$i | 13) << 3) | 0;
$1919 = _i64Add(HEAP32[$1913 >> 2] | 0, HEAP32[$1913 + 4 >> 2] | 0, $839 | 0, $840 | 0) | 0;
$1921 = _i64Add($1919 | 0, tempRet0 | 0, $1505 | 0, $1506 | 0) | 0;
$1923 = _i64Add($1921 | 0, tempRet0 | 0, $1629 & ~$1877 ^ $1877 & $1753 | 0, $1630 & ~$1878 ^ $1878 & $1754 | 0) | 0;
$1925 = _i64Add($1923 | 0, tempRet0 | 0, ($1883 | $1881) ^ ($1889 | $1887) ^ ($1897 | $1895) | 0, $1902 | 0) | 0;
$1926 = tempRet0;
$1927 = _bitshift64Lshr($1719 | 0, $1720 | 0, 19) | 0;
$1928 = tempRet0;
$1929 = _bitshift64Shl($1719 | 0, $1720 | 0, 45) | 0;
$1932 = tempRet0 | $1928;
$1933 = _bitshift64Lshr($1719 | 0, $1720 | 0, 61) | 0;
$1934 = tempRet0;
$1935 = _bitshift64Shl($1719 | 0, $1720 | 0, 3) | 0;
$1938 = tempRet0 | $1934;
$1939 = _bitshift64Lshr($1719 | 0, $1720 | 0, 6) | 0;
$1944 = $1938 ^ tempRet0 ^ $1932;
$1945 = _bitshift64Lshr($277 | 0, $278 | 0, 1) | 0;
$1946 = tempRet0;
$1947 = _bitshift64Shl($277 | 0, $278 | 0, 63) | 0;
$1950 = tempRet0 | $1946;
$1951 = _bitshift64Lshr($277 | 0, $278 | 0, 8) | 0;
$1952 = tempRet0;
$1953 = _bitshift64Shl($277 | 0, $278 | 0, 56) | 0;
$1956 = tempRet0 | $1952;
$1957 = _bitshift64Lshr($277 | 0, $278 | 0, 7) | 0;
$1963 = _i64Add(($1953 | $1951) ^ $1957 ^ ($1947 | $1945) | 0, $1956 ^ tempRet0 ^ $1950 | 0, $839 | 0, $840 | 0) | 0;
$1965 = _i64Add($1963 | 0, tempRet0 | 0, $1097 | 0, $1098 | 0) | 0;
$1967 = _i64Add($1965 | 0, tempRet0 | 0, ($1935 | $1933) ^ $1939 ^ ($1929 | $1927) | 0, $1944 | 0) | 0;
$1968 = tempRet0;
$1969 = _bitshift64Lshr($1879 | 0, $1880 | 0, 28) | 0;
$1970 = tempRet0;
$1971 = _bitshift64Shl($1879 | 0, $1880 | 0, 36) | 0;
$1974 = tempRet0 | $1970;
$1975 = _bitshift64Lshr($1879 | 0, $1880 | 0, 34) | 0;
$1976 = tempRet0;
$1977 = _bitshift64Shl($1879 | 0, $1880 | 0, 30) | 0;
$1982 = $1974 ^ (tempRet0 | $1976);
$1983 = _bitshift64Lshr($1879 | 0, $1880 | 0, 39) | 0;
$1984 = tempRet0;
$1985 = _bitshift64Shl($1879 | 0, $1880 | 0, 25) | 0;
$1999 = _i64Add(($1971 | $1969) ^ ($1977 | $1975) ^ ($1985 | $1983) | 0, $1982 ^ (tempRet0 | $1984) | 0, $1879 & ($1755 ^ $1631) ^ $1755 & $1631 | 0, $1880 & ($1756 ^ $1632) ^ $1756 & $1632 | 0) | 0;
$2000 = tempRet0;
$2001 = _i64Add($1925 | 0, $1926 | 0, $1507 | 0, $1508 | 0) | 0;
$2002 = tempRet0;
$2003 = _i64Add($1999 | 0, $2000 | 0, $1925 | 0, $1926 | 0) | 0;
$2004 = tempRet0;
$2005 = _bitshift64Lshr($2001 | 0, $2002 | 0, 14) | 0;
$2006 = tempRet0;
$2007 = _bitshift64Shl($2001 | 0, $2002 | 0, 50) | 0;
$2010 = tempRet0 | $2006;
$2011 = _bitshift64Lshr($2001 | 0, $2002 | 0, 18) | 0;
$2012 = tempRet0;
$2013 = _bitshift64Shl($2001 | 0, $2002 | 0, 46) | 0;
$2018 = $2010 ^ (tempRet0 | $2012);
$2019 = _bitshift64Lshr($2001 | 0, $2002 | 0, 41) | 0;
$2020 = tempRet0;
$2021 = _bitshift64Shl($2001 | 0, $2002 | 0, 23) | 0;
$2026 = $2018 ^ (tempRet0 | $2020);
$2037 = 64 + (($t$122$i | 14) << 3) | 0;
$2043 = _i64Add(HEAP32[$2037 >> 2] | 0, HEAP32[$2037 + 4 >> 2] | 0, $277 | 0, $278 | 0) | 0;
$2045 = _i64Add($2043 | 0, tempRet0 | 0, $1629 | 0, $1630 | 0) | 0;
$2047 = _i64Add($2045 | 0, tempRet0 | 0, $1753 & ~$2001 ^ $2001 & $1877 | 0, $1754 & ~$2002 ^ $2002 & $1878 | 0) | 0;
$2049 = _i64Add($2047 | 0, tempRet0 | 0, ($2007 | $2005) ^ ($2013 | $2011) ^ ($2021 | $2019) | 0, $2026 | 0) | 0;
$2050 = tempRet0;
$2051 = _bitshift64Lshr($1843 | 0, $1844 | 0, 19) | 0;
$2052 = tempRet0;
$2053 = _bitshift64Shl($1843 | 0, $1844 | 0, 45) | 0;
$2056 = tempRet0 | $2052;
$2057 = _bitshift64Lshr($1843 | 0, $1844 | 0, 61) | 0;
$2058 = tempRet0;
$2059 = _bitshift64Shl($1843 | 0, $1844 | 0, 3) | 0;
$2062 = tempRet0 | $2058;
$2063 = _bitshift64Lshr($1843 | 0, $1844 | 0, 6) | 0;
$2068 = $2062 ^ tempRet0 ^ $2056;
$2069 = _bitshift64Lshr($415 | 0, $416 | 0, 1) | 0;
$2070 = tempRet0;
$2071 = _bitshift64Shl($415 | 0, $416 | 0, 63) | 0;
$2074 = tempRet0 | $2070;
$2075 = _bitshift64Lshr($415 | 0, $416 | 0, 8) | 0;
$2076 = tempRet0;
$2077 = _bitshift64Shl($415 | 0, $416 | 0, 56) | 0;
$2080 = tempRet0 | $2076;
$2081 = _bitshift64Lshr($415 | 0, $416 | 0, 7) | 0;
$2087 = _i64Add(($2077 | $2075) ^ $2081 ^ ($2071 | $2069) | 0, $2080 ^ tempRet0 ^ $2074 | 0, $277 | 0, $278 | 0) | 0;
$2089 = _i64Add($2087 | 0, tempRet0 | 0, $1223 | 0, $1224 | 0) | 0;
$2091 = _i64Add($2089 | 0, tempRet0 | 0, ($2059 | $2057) ^ $2063 ^ ($2053 | $2051) | 0, $2068 | 0) | 0;
$2092 = tempRet0;
$2093 = _bitshift64Lshr($2003 | 0, $2004 | 0, 28) | 0;
$2094 = tempRet0;
$2095 = _bitshift64Shl($2003 | 0, $2004 | 0, 36) | 0;
$2098 = tempRet0 | $2094;
$2099 = _bitshift64Lshr($2003 | 0, $2004 | 0, 34) | 0;
$2100 = tempRet0;
$2101 = _bitshift64Shl($2003 | 0, $2004 | 0, 30) | 0;
$2106 = $2098 ^ (tempRet0 | $2100);
$2107 = _bitshift64Lshr($2003 | 0, $2004 | 0, 39) | 0;
$2108 = tempRet0;
$2109 = _bitshift64Shl($2003 | 0, $2004 | 0, 25) | 0;
$2123 = _i64Add(($2095 | $2093) ^ ($2101 | $2099) ^ ($2109 | $2107) | 0, $2106 ^ (tempRet0 | $2108) | 0, $2003 & ($1879 ^ $1755) ^ $1879 & $1755 | 0, $2004 & ($1880 ^ $1756) ^ $1880 & $1756 | 0) | 0;
$2124 = tempRet0;
$2125 = _i64Add($2049 | 0, $2050 | 0, $1631 | 0, $1632 | 0) | 0;
$2126 = tempRet0;
$2127 = _i64Add($2123 | 0, $2124 | 0, $2049 | 0, $2050 | 0) | 0;
$2128 = tempRet0;
$2129 = _bitshift64Lshr($2125 | 0, $2126 | 0, 14) | 0;
$2130 = tempRet0;
$2131 = _bitshift64Shl($2125 | 0, $2126 | 0, 50) | 0;
$2134 = tempRet0 | $2130;
$2135 = _bitshift64Lshr($2125 | 0, $2126 | 0, 18) | 0;
$2136 = tempRet0;
$2137 = _bitshift64Shl($2125 | 0, $2126 | 0, 46) | 0;
$2142 = $2134 ^ (tempRet0 | $2136);
$2143 = _bitshift64Lshr($2125 | 0, $2126 | 0, 41) | 0;
$2144 = tempRet0;
$2145 = _bitshift64Shl($2125 | 0, $2126 | 0, 23) | 0;
$2150 = $2142 ^ (tempRet0 | $2144);
$2161 = 64 + (($t$122$i | 15) << 3) | 0;
$2167 = _i64Add(HEAP32[$2161 >> 2] | 0, HEAP32[$2161 + 4 >> 2] | 0, $415 | 0, $416 | 0) | 0;
$2169 = _i64Add($2167 | 0, tempRet0 | 0, $1753 | 0, $1754 | 0) | 0;
$2171 = _i64Add($2169 | 0, tempRet0 | 0, $1877 & ~$2125 ^ $2125 & $2001 | 0, $1878 & ~$2126 ^ $2126 & $2002 | 0) | 0;
$2173 = _i64Add($2171 | 0, tempRet0 | 0, ($2131 | $2129) ^ ($2137 | $2135) ^ ($2145 | $2143) | 0, $2150 | 0) | 0;
$2174 = tempRet0;
$2175 = _bitshift64Lshr($1967 | 0, $1968 | 0, 19) | 0;
$2176 = tempRet0;
$2177 = _bitshift64Shl($1967 | 0, $1968 | 0, 45) | 0;
$2180 = tempRet0 | $2176;
$2181 = _bitshift64Lshr($1967 | 0, $1968 | 0, 61) | 0;
$2182 = tempRet0;
$2183 = _bitshift64Shl($1967 | 0, $1968 | 0, 3) | 0;
$2186 = tempRet0 | $2182;
$2187 = _bitshift64Lshr($1967 | 0, $1968 | 0, 6) | 0;
$2192 = $2186 ^ tempRet0 ^ $2180;
$2193 = _bitshift64Lshr($323 | 0, $324 | 0, 1) | 0;
$2194 = tempRet0;
$2195 = _bitshift64Shl($323 | 0, $324 | 0, 63) | 0;
$2198 = tempRet0 | $2194;
$2199 = _bitshift64Lshr($323 | 0, $324 | 0, 8) | 0;
$2200 = tempRet0;
$2201 = _bitshift64Shl($323 | 0, $324 | 0, 56) | 0;
$2204 = tempRet0 | $2200;
$2205 = _bitshift64Lshr($323 | 0, $324 | 0, 7) | 0;
$2211 = _i64Add(($2201 | $2199) ^ $2205 ^ ($2195 | $2193) | 0, $2204 ^ tempRet0 ^ $2198 | 0, $415 | 0, $416 | 0) | 0;
$2213 = _i64Add($2211 | 0, tempRet0 | 0, $1347 | 0, $1348 | 0) | 0;
$2215 = _i64Add($2213 | 0, tempRet0 | 0, ($2183 | $2181) ^ $2187 ^ ($2177 | $2175) | 0, $2192 | 0) | 0;
$2216 = tempRet0;
$2217 = _bitshift64Lshr($2127 | 0, $2128 | 0, 28) | 0;
$2218 = tempRet0;
$2219 = _bitshift64Shl($2127 | 0, $2128 | 0, 36) | 0;
$2222 = tempRet0 | $2218;
$2223 = _bitshift64Lshr($2127 | 0, $2128 | 0, 34) | 0;
$2224 = tempRet0;
$2225 = _bitshift64Shl($2127 | 0, $2128 | 0, 30) | 0;
$2230 = $2222 ^ (tempRet0 | $2224);
$2231 = _bitshift64Lshr($2127 | 0, $2128 | 0, 39) | 0;
$2232 = tempRet0;
$2233 = _bitshift64Shl($2127 | 0, $2128 | 0, 25) | 0;
$2247 = _i64Add(($2219 | $2217) ^ ($2225 | $2223) ^ ($2233 | $2231) | 0, $2230 ^ (tempRet0 | $2232) | 0, $2127 & ($2003 ^ $1879) ^ $2003 & $1879 | 0, $2128 & ($2004 ^ $1880) ^ $2004 & $1880 | 0) | 0;
$2248 = tempRet0;
$2249 = _i64Add($2173 | 0, $2174 | 0, $1755 | 0, $1756 | 0) | 0;
$2250 = tempRet0;
$2251 = _i64Add($2247 | 0, $2248 | 0, $2173 | 0, $2174 | 0) | 0;
$2252 = tempRet0;
$t$122$i = $t$122$i + 16 | 0;
if (($t$122$i | 0) >= 64) {
$2257 = $323;
$2260 = $324;
$2263 = $2091;
$2266 = $2092;
$2269 = $1471;
$2272 = $1472;
$2275 = $461;
$2278 = $462;
$2281 = $2215;
$2284 = $2216;
$2287 = $1595;
$2290 = $1596;
$2293 = $589;
$2296 = $590;
$2299 = $1719;
$2302 = $1720;
$2305 = $717;
$2308 = $718;
$2311 = $1843;
$2314 = $1844;
$2317 = $845;
$2320 = $846;
$2323 = $1967;
$2326 = $1968;
$2329 = $971;
$2332 = $972;
$2335 = $1097;
$2338 = $1098;
$2341 = $1223;
$2344 = $1224;
$2347 = $1347;
$2350 = $1348;
$2351 = $2249;
$2352 = $2250;
$2376 = $2125;
$2378 = $2126;
$2382 = $2001;
$2384 = $2002;
$2389 = $1877;
$2390 = $1878;
$2397 = $2251;
$2398 = $2252;
$2422 = $2003;
$2423 = $2127;
$2425 = $2004;
$2426 = $2128;
$2435 = $1879;
$2436 = $1880;
break;
} else {
$1073 = $1223;
$1074 = $1224;
$1199 = $1347;
$1200 = $1348;
$222 = $2249;
$223 = $2250;
$247 = $2125;
$249 = $2126;
$253 = $2001;
$255 = $2002;
$265 = $1877;
$266 = $1878;
$267 = $323;
$268 = $324;
$277 = $2091;
$278 = $2092;
$297 = $461;
$298 = $462;
$317 = $1471;
$318 = $1472;
$325 = $2251;
$326 = $2252;
$350 = $2127;
$351 = $2003;
$353 = $2128;
$354 = $2004;
$363 = $1879;
$364 = $1880;
$415 = $2215;
$416 = $2216;
$435 = $589;
$436 = $590;
$455 = $1595;
$456 = $1596;
$563 = $717;
$564 = $718;
$583 = $1719;
$584 = $1720;
$691 = $845;
$692 = $846;
$711 = $1843;
$712 = $1844;
$819 = $971;
$820 = $972;
$839 = $1967;
$840 = $1968;
$947 = $1097;
$948 = $1098;
}
}
$2255 = $w$i;
HEAP32[$2255 >> 2] = $2257;
HEAP32[$2255 + 4 >> 2] = $2260;
$2261 = $8;
HEAP32[$2261 >> 2] = $2263;
HEAP32[$2261 + 4 >> 2] = $2266;
$2267 = $9;
HEAP32[$2267 >> 2] = $2269;
HEAP32[$2267 + 4 >> 2] = $2272;
$2273 = $10;
HEAP32[$2273 >> 2] = $2275;
HEAP32[$2273 + 4 >> 2] = $2278;
$2279 = $11;
HEAP32[$2279 >> 2] = $2281;
HEAP32[$2279 + 4 >> 2] = $2284;
$2285 = $12;
HEAP32[$2285 >> 2] = $2287;
HEAP32[$2285 + 4 >> 2] = $2290;
$2291 = $13;
HEAP32[$2291 >> 2] = $2293;
HEAP32[$2291 + 4 >> 2] = $2296;
$2297 = $14;
HEAP32[$2297 >> 2] = $2299;
HEAP32[$2297 + 4 >> 2] = $2302;
$2303 = $15;
HEAP32[$2303 >> 2] = $2305;
HEAP32[$2303 + 4 >> 2] = $2308;
$2309 = $16;
HEAP32[$2309 >> 2] = $2311;
HEAP32[$2309 + 4 >> 2] = $2314;
$2315 = $17;
HEAP32[$2315 >> 2] = $2317;
HEAP32[$2315 + 4 >> 2] = $2320;
$2321 = $18;
HEAP32[$2321 >> 2] = $2323;
HEAP32[$2321 + 4 >> 2] = $2326;
$2327 = $19;
HEAP32[$2327 >> 2] = $2329;
HEAP32[$2327 + 4 >> 2] = $2332;
$2333 = $20;
HEAP32[$2333 >> 2] = $2335;
HEAP32[$2333 + 4 >> 2] = $2338;
$2339 = $21;
HEAP32[$2339 >> 2] = $2341;
HEAP32[$2339 + 4 >> 2] = $2344;
$2345 = $22;
HEAP32[$2345 >> 2] = $2347;
HEAP32[$2345 + 4 >> 2] = $2350;
$2353 = _bitshift64Lshr($2351 | 0, $2352 | 0, 14) | 0;
$2354 = tempRet0;
$2355 = _bitshift64Shl($2351 | 0, $2352 | 0, 50) | 0;
$2358 = tempRet0 | $2354;
$2359 = _bitshift64Lshr($2351 | 0, $2352 | 0, 18) | 0;
$2360 = tempRet0;
$2361 = _bitshift64Shl($2351 | 0, $2352 | 0, 46) | 0;
$2366 = $2358 ^ (tempRet0 | $2360);
$2367 = _bitshift64Lshr($2351 | 0, $2352 | 0, 41) | 0;
$2368 = tempRet0;
$2369 = _bitshift64Shl($2351 | 0, $2352 | 0, 23) | 0;
$2374 = $2366 ^ (tempRet0 | $2368);
$2387 = _i64Add($2257 | 0, $2260 | 0, -366583396, -903397682) | 0;
$2391 = _i64Add($2387 | 0, tempRet0 | 0, $2389 | 0, $2390 | 0) | 0;
$2393 = _i64Add($2391 | 0, tempRet0 | 0, $2382 & ~$2351 ^ $2351 & $2376 | 0, $2384 & ~$2352 ^ $2352 & $2378 | 0) | 0;
$2395 = _i64Add($2393 | 0, tempRet0 | 0, ($2355 | $2353) ^ ($2361 | $2359) ^ ($2369 | $2367) | 0, $2374 | 0) | 0;
$2396 = tempRet0;
$2399 = _bitshift64Lshr($2397 | 0, $2398 | 0, 28) | 0;
$2400 = tempRet0;
$2401 = _bitshift64Shl($2397 | 0, $2398 | 0, 36) | 0;
$2404 = tempRet0 | $2400;
$2405 = _bitshift64Lshr($2397 | 0, $2398 | 0, 34) | 0;
$2406 = tempRet0;
$2407 = _bitshift64Shl($2397 | 0, $2398 | 0, 30) | 0;
$2412 = $2404 ^ (tempRet0 | $2406);
$2413 = _bitshift64Lshr($2397 | 0, $2398 | 0, 39) | 0;
$2414 = tempRet0;
$2415 = _bitshift64Shl($2397 | 0, $2398 | 0, 25) | 0;
$2433 = _i64Add(($2401 | $2399) ^ ($2407 | $2405) ^ ($2415 | $2413) | 0, $2412 ^ (tempRet0 | $2414) | 0, $2397 & ($2423 ^ $2422) ^ $2423 & $2422 | 0, $2398 & ($2426 ^ $2425) ^ $2426 & $2425 | 0) | 0;
$2434 = tempRet0;
$2437 = _i64Add($2395 | 0, $2396 | 0, $2435 | 0, $2436 | 0) | 0;
$2438 = tempRet0;
$2439 = _i64Add($2433 | 0, $2434 | 0, $2395 | 0, $2396 | 0) | 0;
$2440 = tempRet0;
$2441 = _bitshift64Lshr($2437 | 0, $2438 | 0, 14) | 0;
$2442 = tempRet0;
$2443 = _bitshift64Shl($2437 | 0, $2438 | 0, 50) | 0;
$2446 = tempRet0 | $2442;
$2447 = _bitshift64Lshr($2437 | 0, $2438 | 0, 18) | 0;
$2448 = tempRet0;
$2449 = _bitshift64Shl($2437 | 0, $2438 | 0, 46) | 0;
$2454 = $2446 ^ (tempRet0 | $2448);
$2455 = _bitshift64Lshr($2437 | 0, $2438 | 0, 41) | 0;
$2456 = tempRet0;
$2457 = _bitshift64Shl($2437 | 0, $2438 | 0, 23) | 0;
$2462 = $2454 ^ (tempRet0 | $2456);
$2471 = _i64Add($2275 | 0, $2278 | 0, 566280711, -779700025) | 0;
$2473 = _i64Add($2471 | 0, tempRet0 | 0, $2382 | 0, $2384 | 0) | 0;
$2475 = _i64Add($2473 | 0, tempRet0 | 0, $2376 & ~$2437 ^ $2437 & $2351 | 0, $2378 & ~$2438 ^ $2438 & $2352 | 0) | 0;
$2477 = _i64Add($2475 | 0, tempRet0 | 0, ($2443 | $2441) ^ ($2449 | $2447) ^ ($2457 | $2455) | 0, $2462 | 0) | 0;
$2478 = tempRet0;
$2479 = _bitshift64Lshr($2439 | 0, $2440 | 0, 28) | 0;
$2480 = tempRet0;
$2481 = _bitshift64Shl($2439 | 0, $2440 | 0, 36) | 0;
$2484 = tempRet0 | $2480;
$2485 = _bitshift64Lshr($2439 | 0, $2440 | 0, 34) | 0;
$2486 = tempRet0;
$2487 = _bitshift64Shl($2439 | 0, $2440 | 0, 30) | 0;
$2492 = $2484 ^ (tempRet0 | $2486);
$2493 = _bitshift64Lshr($2439 | 0, $2440 | 0, 39) | 0;
$2494 = tempRet0;
$2495 = _bitshift64Shl($2439 | 0, $2440 | 0, 25) | 0;
$2509 = _i64Add(($2481 | $2479) ^ ($2487 | $2485) ^ ($2495 | $2493) | 0, $2492 ^ (tempRet0 | $2494) | 0, $2439 & ($2397 ^ $2423) ^ $2397 & $2423 | 0, $2440 & ($2398 ^ $2426) ^ $2398 & $2426 | 0) | 0;
$2510 = tempRet0;
$2511 = _i64Add($2477 | 0, $2478 | 0, $2422 | 0, $2425 | 0) | 0;
$2512 = tempRet0;
$2513 = _i64Add($2509 | 0, $2510 | 0, $2477 | 0, $2478 | 0) | 0;
$2514 = tempRet0;
$2515 = _bitshift64Lshr($2511 | 0, $2512 | 0, 14) | 0;
$2516 = tempRet0;
$2517 = _bitshift64Shl($2511 | 0, $2512 | 0, 50) | 0;
$2520 = tempRet0 | $2516;
$2521 = _bitshift64Lshr($2511 | 0, $2512 | 0, 18) | 0;
$2522 = tempRet0;
$2523 = _bitshift64Shl($2511 | 0, $2512 | 0, 46) | 0;
$2528 = $2520 ^ (tempRet0 | $2522);
$2529 = _bitshift64Lshr($2511 | 0, $2512 | 0, 41) | 0;
$2530 = tempRet0;
$2531 = _bitshift64Shl($2511 | 0, $2512 | 0, 23) | 0;
$2536 = $2528 ^ (tempRet0 | $2530);
$2545 = _i64Add($2293 | 0, $2296 | 0, -840897762, -354779690) | 0;
$2547 = _i64Add($2545 | 0, tempRet0 | 0, $2376 | 0, $2378 | 0) | 0;
$2549 = _i64Add($2547 | 0, tempRet0 | 0, $2351 & ~$2511 ^ $2511 & $2437 | 0, $2352 & ~$2512 ^ $2512 & $2438 | 0) | 0;
$2551 = _i64Add($2549 | 0, tempRet0 | 0, ($2517 | $2515) ^ ($2523 | $2521) ^ ($2531 | $2529) | 0, $2536 | 0) | 0;
$2552 = tempRet0;
$2553 = _bitshift64Lshr($2513 | 0, $2514 | 0, 28) | 0;
$2554 = tempRet0;
$2555 = _bitshift64Shl($2513 | 0, $2514 | 0, 36) | 0;
$2558 = tempRet0 | $2554;
$2559 = _bitshift64Lshr($2513 | 0, $2514 | 0, 34) | 0;
$2560 = tempRet0;
$2561 = _bitshift64Shl($2513 | 0, $2514 | 0, 30) | 0;
$2566 = $2558 ^ (tempRet0 | $2560);
$2567 = _bitshift64Lshr($2513 | 0, $2514 | 0, 39) | 0;
$2568 = tempRet0;
$2569 = _bitshift64Shl($2513 | 0, $2514 | 0, 25) | 0;
$2583 = _i64Add(($2555 | $2553) ^ ($2561 | $2559) ^ ($2569 | $2567) | 0, $2566 ^ (tempRet0 | $2568) | 0, $2513 & ($2439 ^ $2397) ^ $2439 & $2397 | 0, $2514 & ($2440 ^ $2398) ^ $2440 & $2398 | 0) | 0;
$2584 = tempRet0;
$2585 = _i64Add($2551 | 0, $2552 | 0, $2423 | 0, $2426 | 0) | 0;
$2586 = tempRet0;
$2587 = _i64Add($2583 | 0, $2584 | 0, $2551 | 0, $2552 | 0) | 0;
$2588 = tempRet0;
$2589 = _bitshift64Lshr($2585 | 0, $2586 | 0, 14) | 0;
$2590 = tempRet0;
$2591 = _bitshift64Shl($2585 | 0, $2586 | 0, 50) | 0;
$2594 = tempRet0 | $2590;
$2595 = _bitshift64Lshr($2585 | 0, $2586 | 0, 18) | 0;
$2596 = tempRet0;
$2597 = _bitshift64Shl($2585 | 0, $2586 | 0, 46) | 0;
$2602 = $2594 ^ (tempRet0 | $2596);
$2603 = _bitshift64Lshr($2585 | 0, $2586 | 0, 41) | 0;
$2604 = tempRet0;
$2605 = _bitshift64Shl($2585 | 0, $2586 | 0, 23) | 0;
$2610 = $2602 ^ (tempRet0 | $2604);
$2619 = _i64Add($2305 | 0, $2308 | 0, -294727304, -176337025) | 0;
$2621 = _i64Add($2619 | 0, tempRet0 | 0, $2351 | 0, $2352 | 0) | 0;
$2623 = _i64Add($2621 | 0, tempRet0 | 0, $2437 & ~$2585 ^ $2585 & $2511 | 0, $2438 & ~$2586 ^ $2586 & $2512 | 0) | 0;
$2625 = _i64Add($2623 | 0, tempRet0 | 0, ($2591 | $2589) ^ ($2597 | $2595) ^ ($2605 | $2603) | 0, $2610 | 0) | 0;
$2626 = tempRet0;
$2627 = _bitshift64Lshr($2587 | 0, $2588 | 0, 28) | 0;
$2628 = tempRet0;
$2629 = _bitshift64Shl($2587 | 0, $2588 | 0, 36) | 0;
$2632 = tempRet0 | $2628;
$2633 = _bitshift64Lshr($2587 | 0, $2588 | 0, 34) | 0;
$2634 = tempRet0;
$2635 = _bitshift64Shl($2587 | 0, $2588 | 0, 30) | 0;
$2640 = $2632 ^ (tempRet0 | $2634);
$2641 = _bitshift64Lshr($2587 | 0, $2588 | 0, 39) | 0;
$2642 = tempRet0;
$2643 = _bitshift64Shl($2587 | 0, $2588 | 0, 25) | 0;
$2657 = _i64Add(($2629 | $2627) ^ ($2635 | $2633) ^ ($2643 | $2641) | 0, $2640 ^ (tempRet0 | $2642) | 0, $2587 & ($2513 ^ $2439) ^ $2513 & $2439 | 0, $2588 & ($2514 ^ $2440) ^ $2514 & $2440 | 0) | 0;
$2658 = tempRet0;
$2659 = _i64Add($2625 | 0, $2626 | 0, $2397 | 0, $2398 | 0) | 0;
$2660 = tempRet0;
$2661 = _i64Add($2657 | 0, $2658 | 0, $2625 | 0, $2626 | 0) | 0;
$2662 = tempRet0;
$2663 = _bitshift64Lshr($2659 | 0, $2660 | 0, 14) | 0;
$2664 = tempRet0;
$2665 = _bitshift64Shl($2659 | 0, $2660 | 0, 50) | 0;
$2668 = tempRet0 | $2664;
$2669 = _bitshift64Lshr($2659 | 0, $2660 | 0, 18) | 0;
$2670 = tempRet0;
$2671 = _bitshift64Shl($2659 | 0, $2660 | 0, 46) | 0;
$2676 = $2668 ^ (tempRet0 | $2670);
$2677 = _bitshift64Lshr($2659 | 0, $2660 | 0, 41) | 0;
$2678 = tempRet0;
$2679 = _bitshift64Shl($2659 | 0, $2660 | 0, 23) | 0;
$2684 = $2676 ^ (tempRet0 | $2678);
$2693 = _i64Add($2317 | 0, $2320 | 0, 1914138554, 116418474) | 0;
$2695 = _i64Add($2693 | 0, tempRet0 | 0, $2437 | 0, $2438 | 0) | 0;
$2697 = _i64Add($2695 | 0, tempRet0 | 0, $2511 & ~$2659 ^ $2659 & $2585 | 0, $2512 & ~$2660 ^ $2660 & $2586 | 0) | 0;
$2699 = _i64Add($2697 | 0, tempRet0 | 0, ($2665 | $2663) ^ ($2671 | $2669) ^ ($2679 | $2677) | 0, $2684 | 0) | 0;
$2700 = tempRet0;
$2701 = _bitshift64Lshr($2661 | 0, $2662 | 0, 28) | 0;
$2702 = tempRet0;
$2703 = _bitshift64Shl($2661 | 0, $2662 | 0, 36) | 0;
$2706 = tempRet0 | $2702;
$2707 = _bitshift64Lshr($2661 | 0, $2662 | 0, 34) | 0;
$2708 = tempRet0;
$2709 = _bitshift64Shl($2661 | 0, $2662 | 0, 30) | 0;
$2714 = $2706 ^ (tempRet0 | $2708);
$2715 = _bitshift64Lshr($2661 | 0, $2662 | 0, 39) | 0;
$2716 = tempRet0;
$2717 = _bitshift64Shl($2661 | 0, $2662 | 0, 25) | 0;
$2731 = _i64Add(($2703 | $2701) ^ ($2709 | $2707) ^ ($2717 | $2715) | 0, $2714 ^ (tempRet0 | $2716) | 0, $2661 & ($2587 ^ $2513) ^ $2587 & $2513 | 0, $2662 & ($2588 ^ $2514) ^ $2588 & $2514 | 0) | 0;
$2732 = tempRet0;
$2733 = _i64Add($2699 | 0, $2700 | 0, $2439 | 0, $2440 | 0) | 0;
$2734 = tempRet0;
$2735 = _i64Add($2731 | 0, $2732 | 0, $2699 | 0, $2700 | 0) | 0;
$2736 = tempRet0;
$2737 = _bitshift64Lshr($2733 | 0, $2734 | 0, 14) | 0;
$2738 = tempRet0;
$2739 = _bitshift64Shl($2733 | 0, $2734 | 0, 50) | 0;
$2742 = tempRet0 | $2738;
$2743 = _bitshift64Lshr($2733 | 0, $2734 | 0, 18) | 0;
$2744 = tempRet0;
$2745 = _bitshift64Shl($2733 | 0, $2734 | 0, 46) | 0;
$2750 = $2742 ^ (tempRet0 | $2744);
$2751 = _bitshift64Lshr($2733 | 0, $2734 | 0, 41) | 0;
$2752 = tempRet0;
$2753 = _bitshift64Shl($2733 | 0, $2734 | 0, 23) | 0;
$2758 = $2750 ^ (tempRet0 | $2752);
$2767 = _i64Add($2329 | 0, $2332 | 0, -1563912026, 174292421) | 0;
$2769 = _i64Add($2767 | 0, tempRet0 | 0, $2511 | 0, $2512 | 0) | 0;
$2771 = _i64Add($2769 | 0, tempRet0 | 0, $2585 & ~$2733 ^ $2733 & $2659 | 0, $2586 & ~$2734 ^ $2734 & $2660 | 0) | 0;
$2773 = _i64Add($2771 | 0, tempRet0 | 0, ($2739 | $2737) ^ ($2745 | $2743) ^ ($2753 | $2751) | 0, $2758 | 0) | 0;
$2774 = tempRet0;
$2775 = _bitshift64Lshr($2735 | 0, $2736 | 0, 28) | 0;
$2776 = tempRet0;
$2777 = _bitshift64Shl($2735 | 0, $2736 | 0, 36) | 0;
$2780 = tempRet0 | $2776;
$2781 = _bitshift64Lshr($2735 | 0, $2736 | 0, 34) | 0;
$2782 = tempRet0;
$2783 = _bitshift64Shl($2735 | 0, $2736 | 0, 30) | 0;
$2788 = $2780 ^ (tempRet0 | $2782);
$2789 = _bitshift64Lshr($2735 | 0, $2736 | 0, 39) | 0;
$2790 = tempRet0;
$2791 = _bitshift64Shl($2735 | 0, $2736 | 0, 25) | 0;
$2805 = _i64Add(($2777 | $2775) ^ ($2783 | $2781) ^ ($2791 | $2789) | 0, $2788 ^ (tempRet0 | $2790) | 0, $2735 & ($2661 ^ $2587) ^ $2661 & $2587 | 0, $2736 & ($2662 ^ $2588) ^ $2662 & $2588 | 0) | 0;
$2806 = tempRet0;
$2807 = _i64Add($2773 | 0, $2774 | 0, $2513 | 0, $2514 | 0) | 0;
$2808 = tempRet0;
$2809 = _i64Add($2805 | 0, $2806 | 0, $2773 | 0, $2774 | 0) | 0;
$2810 = tempRet0;
$2811 = _bitshift64Lshr($2807 | 0, $2808 | 0, 14) | 0;
$2812 = tempRet0;
$2813 = _bitshift64Shl($2807 | 0, $2808 | 0, 50) | 0;
$2816 = tempRet0 | $2812;
$2817 = _bitshift64Lshr($2807 | 0, $2808 | 0, 18) | 0;
$2818 = tempRet0;
$2819 = _bitshift64Shl($2807 | 0, $2808 | 0, 46) | 0;
$2824 = $2816 ^ (tempRet0 | $2818);
$2825 = _bitshift64Lshr($2807 | 0, $2808 | 0, 41) | 0;
$2826 = tempRet0;
$2827 = _bitshift64Shl($2807 | 0, $2808 | 0, 23) | 0;
$2832 = $2824 ^ (tempRet0 | $2826);
$2841 = _i64Add($2335 | 0, $2338 | 0, -1090974290, 289380356) | 0;
$2843 = _i64Add($2841 | 0, tempRet0 | 0, $2585 | 0, $2586 | 0) | 0;
$2845 = _i64Add($2843 | 0, tempRet0 | 0, $2659 & ~$2807 ^ $2807 & $2733 | 0, $2660 & ~$2808 ^ $2808 & $2734 | 0) | 0;
$2847 = _i64Add($2845 | 0, tempRet0 | 0, ($2813 | $2811) ^ ($2819 | $2817) ^ ($2827 | $2825) | 0, $2832 | 0) | 0;
$2848 = tempRet0;
$2849 = _bitshift64Lshr($2809 | 0, $2810 | 0, 28) | 0;
$2850 = tempRet0;
$2851 = _bitshift64Shl($2809 | 0, $2810 | 0, 36) | 0;
$2854 = tempRet0 | $2850;
$2855 = _bitshift64Lshr($2809 | 0, $2810 | 0, 34) | 0;
$2856 = tempRet0;
$2857 = _bitshift64Shl($2809 | 0, $2810 | 0, 30) | 0;
$2862 = $2854 ^ (tempRet0 | $2856);
$2863 = _bitshift64Lshr($2809 | 0, $2810 | 0, 39) | 0;
$2864 = tempRet0;
$2865 = _bitshift64Shl($2809 | 0, $2810 | 0, 25) | 0;
$2879 = _i64Add(($2851 | $2849) ^ ($2857 | $2855) ^ ($2865 | $2863) | 0, $2862 ^ (tempRet0 | $2864) | 0, $2809 & ($2735 ^ $2661) ^ $2735 & $2661 | 0, $2810 & ($2736 ^ $2662) ^ $2736 & $2662 | 0) | 0;
$2880 = tempRet0;
$2881 = _i64Add($2847 | 0, $2848 | 0, $2587 | 0, $2588 | 0) | 0;
$2882 = tempRet0;
$2883 = _i64Add($2879 | 0, $2880 | 0, $2847 | 0, $2848 | 0) | 0;
$2884 = tempRet0;
$2885 = _bitshift64Lshr($2881 | 0, $2882 | 0, 14) | 0;
$2886 = tempRet0;
$2887 = _bitshift64Shl($2881 | 0, $2882 | 0, 50) | 0;
$2890 = tempRet0 | $2886;
$2891 = _bitshift64Lshr($2881 | 0, $2882 | 0, 18) | 0;
$2892 = tempRet0;
$2893 = _bitshift64Shl($2881 | 0, $2882 | 0, 46) | 0;
$2898 = $2890 ^ (tempRet0 | $2892);
$2899 = _bitshift64Lshr($2881 | 0, $2882 | 0, 41) | 0;
$2900 = tempRet0;
$2901 = _bitshift64Shl($2881 | 0, $2882 | 0, 23) | 0;
$2906 = $2898 ^ (tempRet0 | $2900);
$2915 = _i64Add($2341 | 0, $2344 | 0, 320620315, 460393269) | 0;
$2917 = _i64Add($2915 | 0, tempRet0 | 0, $2659 | 0, $2660 | 0) | 0;
$2919 = _i64Add($2917 | 0, tempRet0 | 0, $2733 & ~$2881 ^ $2881 & $2807 | 0, $2734 & ~$2882 ^ $2882 & $2808 | 0) | 0;
$2921 = _i64Add($2919 | 0, tempRet0 | 0, ($2887 | $2885) ^ ($2893 | $2891) ^ ($2901 | $2899) | 0, $2906 | 0) | 0;
$2922 = tempRet0;
$2923 = _bitshift64Lshr($2883 | 0, $2884 | 0, 28) | 0;
$2924 = tempRet0;
$2925 = _bitshift64Shl($2883 | 0, $2884 | 0, 36) | 0;
$2928 = tempRet0 | $2924;
$2929 = _bitshift64Lshr($2883 | 0, $2884 | 0, 34) | 0;
$2930 = tempRet0;
$2931 = _bitshift64Shl($2883 | 0, $2884 | 0, 30) | 0;
$2936 = $2928 ^ (tempRet0 | $2930);
$2937 = _bitshift64Lshr($2883 | 0, $2884 | 0, 39) | 0;
$2938 = tempRet0;
$2939 = _bitshift64Shl($2883 | 0, $2884 | 0, 25) | 0;
$2953 = _i64Add(($2925 | $2923) ^ ($2931 | $2929) ^ ($2939 | $2937) | 0, $2936 ^ (tempRet0 | $2938) | 0, $2883 & ($2809 ^ $2735) ^ $2809 & $2735 | 0, $2884 & ($2810 ^ $2736) ^ $2810 & $2736 | 0) | 0;
$2954 = tempRet0;
$2955 = _i64Add($2921 | 0, $2922 | 0, $2661 | 0, $2662 | 0) | 0;
$2956 = tempRet0;
$2957 = _i64Add($2953 | 0, $2954 | 0, $2921 | 0, $2922 | 0) | 0;
$2958 = tempRet0;
$2959 = _bitshift64Lshr($2955 | 0, $2956 | 0, 14) | 0;
$2960 = tempRet0;
$2961 = _bitshift64Shl($2955 | 0, $2956 | 0, 50) | 0;
$2964 = tempRet0 | $2960;
$2965 = _bitshift64Lshr($2955 | 0, $2956 | 0, 18) | 0;
$2966 = tempRet0;
$2967 = _bitshift64Shl($2955 | 0, $2956 | 0, 46) | 0;
$2972 = $2964 ^ (tempRet0 | $2966);
$2973 = _bitshift64Lshr($2955 | 0, $2956 | 0, 41) | 0;
$2974 = tempRet0;
$2975 = _bitshift64Shl($2955 | 0, $2956 | 0, 23) | 0;
$2980 = $2972 ^ (tempRet0 | $2974);
$2989 = _i64Add($2347 | 0, $2350 | 0, 587496836, 685471733) | 0;
$2991 = _i64Add($2989 | 0, tempRet0 | 0, $2733 | 0, $2734 | 0) | 0;
$2993 = _i64Add($2991 | 0, tempRet0 | 0, $2807 & ~$2955 ^ $2955 & $2881 | 0, $2808 & ~$2956 ^ $2956 & $2882 | 0) | 0;
$2995 = _i64Add($2993 | 0, tempRet0 | 0, ($2961 | $2959) ^ ($2967 | $2965) ^ ($2975 | $2973) | 0, $2980 | 0) | 0;
$2996 = tempRet0;
$2997 = _bitshift64Lshr($2957 | 0, $2958 | 0, 28) | 0;
$2998 = tempRet0;
$2999 = _bitshift64Shl($2957 | 0, $2958 | 0, 36) | 0;
$3002 = tempRet0 | $2998;
$3003 = _bitshift64Lshr($2957 | 0, $2958 | 0, 34) | 0;
$3004 = tempRet0;
$3005 = _bitshift64Shl($2957 | 0, $2958 | 0, 30) | 0;
$3010 = $3002 ^ (tempRet0 | $3004);
$3011 = _bitshift64Lshr($2957 | 0, $2958 | 0, 39) | 0;
$3012 = tempRet0;
$3013 = _bitshift64Shl($2957 | 0, $2958 | 0, 25) | 0;
$3027 = _i64Add(($2999 | $2997) ^ ($3005 | $3003) ^ ($3013 | $3011) | 0, $3010 ^ (tempRet0 | $3012) | 0, $2957 & ($2883 ^ $2809) ^ $2883 & $2809 | 0, $2958 & ($2884 ^ $2810) ^ $2884 & $2810 | 0) | 0;
$3028 = tempRet0;
$3029 = _i64Add($2995 | 0, $2996 | 0, $2735 | 0, $2736 | 0) | 0;
$3030 = tempRet0;
$3031 = _i64Add($3027 | 0, $3028 | 0, $2995 | 0, $2996 | 0) | 0;
$3032 = tempRet0;
$3033 = _bitshift64Lshr($3029 | 0, $3030 | 0, 14) | 0;
$3034 = tempRet0;
$3035 = _bitshift64Shl($3029 | 0, $3030 | 0, 50) | 0;
$3038 = tempRet0 | $3034;
$3039 = _bitshift64Lshr($3029 | 0, $3030 | 0, 18) | 0;
$3040 = tempRet0;
$3041 = _bitshift64Shl($3029 | 0, $3030 | 0, 46) | 0;
$3046 = $3038 ^ (tempRet0 | $3040);
$3047 = _bitshift64Lshr($3029 | 0, $3030 | 0, 41) | 0;
$3048 = tempRet0;
$3049 = _bitshift64Shl($3029 | 0, $3030 | 0, 23) | 0;
$3054 = $3046 ^ (tempRet0 | $3048);
$3063 = _i64Add($2269 | 0, $2272 | 0, 1086792851, 852142971) | 0;
$3065 = _i64Add($3063 | 0, tempRet0 | 0, $2807 | 0, $2808 | 0) | 0;
$3067 = _i64Add($3065 | 0, tempRet0 | 0, $2881 & ~$3029 ^ $3029 & $2955 | 0, $2882 & ~$3030 ^ $3030 & $2956 | 0) | 0;
$3069 = _i64Add($3067 | 0, tempRet0 | 0, ($3035 | $3033) ^ ($3041 | $3039) ^ ($3049 | $3047) | 0, $3054 | 0) | 0;
$3070 = tempRet0;
$3071 = _bitshift64Lshr($3031 | 0, $3032 | 0, 28) | 0;
$3072 = tempRet0;
$3073 = _bitshift64Shl($3031 | 0, $3032 | 0, 36) | 0;
$3076 = tempRet0 | $3072;
$3077 = _bitshift64Lshr($3031 | 0, $3032 | 0, 34) | 0;
$3078 = tempRet0;
$3079 = _bitshift64Shl($3031 | 0, $3032 | 0, 30) | 0;
$3084 = $3076 ^ (tempRet0 | $3078);
$3085 = _bitshift64Lshr($3031 | 0, $3032 | 0, 39) | 0;
$3086 = tempRet0;
$3087 = _bitshift64Shl($3031 | 0, $3032 | 0, 25) | 0;
$3101 = _i64Add(($3073 | $3071) ^ ($3079 | $3077) ^ ($3087 | $3085) | 0, $3084 ^ (tempRet0 | $3086) | 0, $3031 & ($2957 ^ $2883) ^ $2957 & $2883 | 0, $3032 & ($2958 ^ $2884) ^ $2958 & $2884 | 0) | 0;
$3102 = tempRet0;
$3103 = _i64Add($3069 | 0, $3070 | 0, $2809 | 0, $2810 | 0) | 0;
$3104 = tempRet0;
$3105 = _i64Add($3101 | 0, $3102 | 0, $3069 | 0, $3070 | 0) | 0;
$3106 = tempRet0;
$3107 = _bitshift64Lshr($3103 | 0, $3104 | 0, 14) | 0;
$3108 = tempRet0;
$3109 = _bitshift64Shl($3103 | 0, $3104 | 0, 50) | 0;
$3112 = tempRet0 | $3108;
$3113 = _bitshift64Lshr($3103 | 0, $3104 | 0, 18) | 0;
$3114 = tempRet0;
$3115 = _bitshift64Shl($3103 | 0, $3104 | 0, 46) | 0;
$3120 = $3112 ^ (tempRet0 | $3114);
$3121 = _bitshift64Lshr($3103 | 0, $3104 | 0, 41) | 0;
$3122 = tempRet0;
$3123 = _bitshift64Shl($3103 | 0, $3104 | 0, 23) | 0;
$3128 = $3120 ^ (tempRet0 | $3122);
$3137 = _i64Add($2287 | 0, $2290 | 0, 365543100, 1017036298) | 0;
$3139 = _i64Add($3137 | 0, tempRet0 | 0, $2881 | 0, $2882 | 0) | 0;
$3141 = _i64Add($3139 | 0, tempRet0 | 0, $2955 & ~$3103 ^ $3103 & $3029 | 0, $2956 & ~$3104 ^ $3104 & $3030 | 0) | 0;
$3143 = _i64Add($3141 | 0, tempRet0 | 0, ($3109 | $3107) ^ ($3115 | $3113) ^ ($3123 | $3121) | 0, $3128 | 0) | 0;
$3144 = tempRet0;
$3145 = _bitshift64Lshr($3105 | 0, $3106 | 0, 28) | 0;
$3146 = tempRet0;
$3147 = _bitshift64Shl($3105 | 0, $3106 | 0, 36) | 0;
$3150 = tempRet0 | $3146;
$3151 = _bitshift64Lshr($3105 | 0, $3106 | 0, 34) | 0;
$3152 = tempRet0;
$3153 = _bitshift64Shl($3105 | 0, $3106 | 0, 30) | 0;
$3158 = $3150 ^ (tempRet0 | $3152);
$3159 = _bitshift64Lshr($3105 | 0, $3106 | 0, 39) | 0;
$3160 = tempRet0;
$3161 = _bitshift64Shl($3105 | 0, $3106 | 0, 25) | 0;
$3175 = _i64Add(($3147 | $3145) ^ ($3153 | $3151) ^ ($3161 | $3159) | 0, $3158 ^ (tempRet0 | $3160) | 0, $3105 & ($3031 ^ $2957) ^ $3031 & $2957 | 0, $3106 & ($3032 ^ $2958) ^ $3032 & $2958 | 0) | 0;
$3176 = tempRet0;
$3177 = _i64Add($3143 | 0, $3144 | 0, $2883 | 0, $2884 | 0) | 0;
$3178 = tempRet0;
$3179 = _i64Add($3175 | 0, $3176 | 0, $3143 | 0, $3144 | 0) | 0;
$3180 = tempRet0;
$3181 = _bitshift64Lshr($3177 | 0, $3178 | 0, 14) | 0;
$3182 = tempRet0;
$3183 = _bitshift64Shl($3177 | 0, $3178 | 0, 50) | 0;
$3186 = tempRet0 | $3182;
$3187 = _bitshift64Lshr($3177 | 0, $3178 | 0, 18) | 0;
$3188 = tempRet0;
$3189 = _bitshift64Shl($3177 | 0, $3178 | 0, 46) | 0;
$3194 = $3186 ^ (tempRet0 | $3188);
$3195 = _bitshift64Lshr($3177 | 0, $3178 | 0, 41) | 0;
$3196 = tempRet0;
$3197 = _bitshift64Shl($3177 | 0, $3178 | 0, 23) | 0;
$3202 = $3194 ^ (tempRet0 | $3196);
$3211 = _i64Add($2299 | 0, $2302 | 0, -1676669620, 1126000580) | 0;
$3213 = _i64Add($3211 | 0, tempRet0 | 0, $2955 | 0, $2956 | 0) | 0;
$3215 = _i64Add($3213 | 0, tempRet0 | 0, $3029 & ~$3177 ^ $3177 & $3103 | 0, $3030 & ~$3178 ^ $3178 & $3104 | 0) | 0;
$3217 = _i64Add($3215 | 0, tempRet0 | 0, ($3183 | $3181) ^ ($3189 | $3187) ^ ($3197 | $3195) | 0, $3202 | 0) | 0;
$3218 = tempRet0;
$3219 = _bitshift64Lshr($3179 | 0, $3180 | 0, 28) | 0;
$3220 = tempRet0;
$3221 = _bitshift64Shl($3179 | 0, $3180 | 0, 36) | 0;
$3224 = tempRet0 | $3220;
$3225 = _bitshift64Lshr($3179 | 0, $3180 | 0, 34) | 0;
$3226 = tempRet0;
$3227 = _bitshift64Shl($3179 | 0, $3180 | 0, 30) | 0;
$3232 = $3224 ^ (tempRet0 | $3226);
$3233 = _bitshift64Lshr($3179 | 0, $3180 | 0, 39) | 0;
$3234 = tempRet0;
$3235 = _bitshift64Shl($3179 | 0, $3180 | 0, 25) | 0;
$3249 = _i64Add(($3221 | $3219) ^ ($3227 | $3225) ^ ($3235 | $3233) | 0, $3232 ^ (tempRet0 | $3234) | 0, $3179 & ($3105 ^ $3031) ^ $3105 & $3031 | 0, $3180 & ($3106 ^ $3032) ^ $3106 & $3032 | 0) | 0;
$3250 = tempRet0;
$3251 = _i64Add($3217 | 0, $3218 | 0, $2957 | 0, $2958 | 0) | 0;
$3252 = tempRet0;
$3253 = _i64Add($3249 | 0, $3250 | 0, $3217 | 0, $3218 | 0) | 0;
$3254 = tempRet0;
$3255 = _bitshift64Lshr($3251 | 0, $3252 | 0, 14) | 0;
$3256 = tempRet0;
$3257 = _bitshift64Shl($3251 | 0, $3252 | 0, 50) | 0;
$3260 = tempRet0 | $3256;
$3261 = _bitshift64Lshr($3251 | 0, $3252 | 0, 18) | 0;
$3262 = tempRet0;
$3263 = _bitshift64Shl($3251 | 0, $3252 | 0, 46) | 0;
$3268 = $3260 ^ (tempRet0 | $3262);
$3269 = _bitshift64Lshr($3251 | 0, $3252 | 0, 41) | 0;
$3270 = tempRet0;
$3271 = _bitshift64Shl($3251 | 0, $3252 | 0, 23) | 0;
$3276 = $3268 ^ (tempRet0 | $3270);
$3285 = _i64Add($2311 | 0, $2314 | 0, -885112138, 1288033470) | 0;
$3287 = _i64Add($3285 | 0, tempRet0 | 0, $3029 | 0, $3030 | 0) | 0;
$3289 = _i64Add($3287 | 0, tempRet0 | 0, $3103 & ~$3251 ^ $3251 & $3177 | 0, $3104 & ~$3252 ^ $3252 & $3178 | 0) | 0;
$3291 = _i64Add($3289 | 0, tempRet0 | 0, ($3257 | $3255) ^ ($3263 | $3261) ^ ($3271 | $3269) | 0, $3276 | 0) | 0;
$3292 = tempRet0;
$3293 = _bitshift64Lshr($3253 | 0, $3254 | 0, 28) | 0;
$3294 = tempRet0;
$3295 = _bitshift64Shl($3253 | 0, $3254 | 0, 36) | 0;
$3298 = tempRet0 | $3294;
$3299 = _bitshift64Lshr($3253 | 0, $3254 | 0, 34) | 0;
$3300 = tempRet0;
$3301 = _bitshift64Shl($3253 | 0, $3254 | 0, 30) | 0;
$3306 = $3298 ^ (tempRet0 | $3300);
$3307 = _bitshift64Lshr($3253 | 0, $3254 | 0, 39) | 0;
$3308 = tempRet0;
$3309 = _bitshift64Shl($3253 | 0, $3254 | 0, 25) | 0;
$3323 = _i64Add(($3295 | $3293) ^ ($3301 | $3299) ^ ($3309 | $3307) | 0, $3306 ^ (tempRet0 | $3308) | 0, $3253 & ($3179 ^ $3105) ^ $3179 & $3105 | 0, $3254 & ($3180 ^ $3106) ^ $3180 & $3106 | 0) | 0;
$3324 = tempRet0;
$3325 = _i64Add($3291 | 0, $3292 | 0, $3031 | 0, $3032 | 0) | 0;
$3326 = tempRet0;
$3327 = _i64Add($3323 | 0, $3324 | 0, $3291 | 0, $3292 | 0) | 0;
$3328 = tempRet0;
$3329 = _bitshift64Lshr($3325 | 0, $3326 | 0, 14) | 0;
$3330 = tempRet0;
$3331 = _bitshift64Shl($3325 | 0, $3326 | 0, 50) | 0;
$3334 = tempRet0 | $3330;
$3335 = _bitshift64Lshr($3325 | 0, $3326 | 0, 18) | 0;
$3336 = tempRet0;
$3337 = _bitshift64Shl($3325 | 0, $3326 | 0, 46) | 0;
$3342 = $3334 ^ (tempRet0 | $3336);
$3343 = _bitshift64Lshr($3325 | 0, $3326 | 0, 41) | 0;
$3344 = tempRet0;
$3345 = _bitshift64Shl($3325 | 0, $3326 | 0, 23) | 0;
$3350 = $3342 ^ (tempRet0 | $3344);
$3359 = _i64Add($2323 | 0, $2326 | 0, -60457430, 1501505948) | 0;
$3361 = _i64Add($3359 | 0, tempRet0 | 0, $3103 | 0, $3104 | 0) | 0;
$3363 = _i64Add($3361 | 0, tempRet0 | 0, $3177 & ~$3325 ^ $3325 & $3251 | 0, $3178 & ~$3326 ^ $3326 & $3252 | 0) | 0;
$3365 = _i64Add($3363 | 0, tempRet0 | 0, ($3331 | $3329) ^ ($3337 | $3335) ^ ($3345 | $3343) | 0, $3350 | 0) | 0;
$3366 = tempRet0;
$3367 = _bitshift64Lshr($3327 | 0, $3328 | 0, 28) | 0;
$3368 = tempRet0;
$3369 = _bitshift64Shl($3327 | 0, $3328 | 0, 36) | 0;
$3372 = tempRet0 | $3368;
$3373 = _bitshift64Lshr($3327 | 0, $3328 | 0, 34) | 0;
$3374 = tempRet0;
$3375 = _bitshift64Shl($3327 | 0, $3328 | 0, 30) | 0;
$3380 = $3372 ^ (tempRet0 | $3374);
$3381 = _bitshift64Lshr($3327 | 0, $3328 | 0, 39) | 0;
$3382 = tempRet0;
$3383 = _bitshift64Shl($3327 | 0, $3328 | 0, 25) | 0;
$3397 = _i64Add(($3369 | $3367) ^ ($3375 | $3373) ^ ($3383 | $3381) | 0, $3380 ^ (tempRet0 | $3382) | 0, $3327 & ($3253 ^ $3179) ^ $3253 & $3179 | 0, $3328 & ($3254 ^ $3180) ^ $3254 & $3180 | 0) | 0;
$3398 = tempRet0;
$3399 = _i64Add($3365 | 0, $3366 | 0, $3105 | 0, $3106 | 0) | 0;
$3400 = tempRet0;
$3401 = _i64Add($3397 | 0, $3398 | 0, $3365 | 0, $3366 | 0) | 0;
$3402 = tempRet0;
$3403 = _bitshift64Lshr($3399 | 0, $3400 | 0, 14) | 0;
$3404 = tempRet0;
$3405 = _bitshift64Shl($3399 | 0, $3400 | 0, 50) | 0;
$3408 = tempRet0 | $3404;
$3409 = _bitshift64Lshr($3399 | 0, $3400 | 0, 18) | 0;
$3410 = tempRet0;
$3411 = _bitshift64Shl($3399 | 0, $3400 | 0, 46) | 0;
$3416 = $3408 ^ (tempRet0 | $3410);
$3417 = _bitshift64Lshr($3399 | 0, $3400 | 0, 41) | 0;
$3418 = tempRet0;
$3419 = _bitshift64Shl($3399 | 0, $3400 | 0, 23) | 0;
$3424 = $3416 ^ (tempRet0 | $3418);
$3433 = _i64Add($2263 | 0, $2266 | 0, 987167468, 1607167915) | 0;
$3435 = _i64Add($3433 | 0, tempRet0 | 0, $3177 | 0, $3178 | 0) | 0;
$3437 = _i64Add($3435 | 0, tempRet0 | 0, $3251 & ~$3399 ^ $3399 & $3325 | 0, $3252 & ~$3400 ^ $3400 & $3326 | 0) | 0;
$3439 = _i64Add($3437 | 0, tempRet0 | 0, ($3405 | $3403) ^ ($3411 | $3409) ^ ($3419 | $3417) | 0, $3424 | 0) | 0;
$3440 = tempRet0;
$3441 = _bitshift64Lshr($3401 | 0, $3402 | 0, 28) | 0;
$3442 = tempRet0;
$3443 = _bitshift64Shl($3401 | 0, $3402 | 0, 36) | 0;
$3446 = tempRet0 | $3442;
$3447 = _bitshift64Lshr($3401 | 0, $3402 | 0, 34) | 0;
$3448 = tempRet0;
$3449 = _bitshift64Shl($3401 | 0, $3402 | 0, 30) | 0;
$3454 = $3446 ^ (tempRet0 | $3448);
$3455 = _bitshift64Lshr($3401 | 0, $3402 | 0, 39) | 0;
$3456 = tempRet0;
$3457 = _bitshift64Shl($3401 | 0, $3402 | 0, 25) | 0;
$3471 = _i64Add(($3443 | $3441) ^ ($3449 | $3447) ^ ($3457 | $3455) | 0, $3454 ^ (tempRet0 | $3456) | 0, $3401 & ($3327 ^ $3253) ^ $3327 & $3253 | 0, $3402 & ($3328 ^ $3254) ^ $3328 & $3254 | 0) | 0;
$3472 = tempRet0;
$3473 = _i64Add($3439 | 0, $3440 | 0, $3179 | 0, $3180 | 0) | 0;
$3474 = tempRet0;
$3475 = _i64Add($3471 | 0, $3472 | 0, $3439 | 0, $3440 | 0) | 0;
$3476 = tempRet0;
$3477 = _bitshift64Lshr($3473 | 0, $3474 | 0, 14) | 0;
$3478 = tempRet0;
$3479 = _bitshift64Shl($3473 | 0, $3474 | 0, 50) | 0;
$3482 = tempRet0 | $3478;
$3483 = _bitshift64Lshr($3473 | 0, $3474 | 0, 18) | 0;
$3484 = tempRet0;
$3485 = _bitshift64Shl($3473 | 0, $3474 | 0, 46) | 0;
$3490 = $3482 ^ (tempRet0 | $3484);
$3491 = _bitshift64Lshr($3473 | 0, $3474 | 0, 41) | 0;
$3492 = tempRet0;
$3493 = _bitshift64Shl($3473 | 0, $3474 | 0, 23) | 0;
$3498 = $3490 ^ (tempRet0 | $3492);
$3507 = _i64Add($2281 | 0, $2284 | 0, 1246189591, 1816402316) | 0;
$3509 = _i64Add($3507 | 0, tempRet0 | 0, $3251 | 0, $3252 | 0) | 0;
$3511 = _i64Add($3509 | 0, tempRet0 | 0, $3325 & ~$3473 ^ $3473 & $3399 | 0, $3326 & ~$3474 ^ $3474 & $3400 | 0) | 0;
$3513 = _i64Add($3511 | 0, tempRet0 | 0, ($3479 | $3477) ^ ($3485 | $3483) ^ ($3493 | $3491) | 0, $3498 | 0) | 0;
$3514 = tempRet0;
$3515 = _bitshift64Lshr($3475 | 0, $3476 | 0, 28) | 0;
$3516 = tempRet0;
$3517 = _bitshift64Shl($3475 | 0, $3476 | 0, 36) | 0;
$3520 = tempRet0 | $3516;
$3521 = _bitshift64Lshr($3475 | 0, $3476 | 0, 34) | 0;
$3522 = tempRet0;
$3523 = _bitshift64Shl($3475 | 0, $3476 | 0, 30) | 0;
$3528 = $3520 ^ (tempRet0 | $3522);
$3529 = _bitshift64Lshr($3475 | 0, $3476 | 0, 39) | 0;
$3530 = tempRet0;
$3531 = _bitshift64Shl($3475 | 0, $3476 | 0, 25) | 0;
$3545 = _i64Add(($3517 | $3515) ^ ($3523 | $3521) ^ ($3531 | $3529) | 0, $3528 ^ (tempRet0 | $3530) | 0, $3475 & ($3401 ^ $3327) ^ $3401 & $3327 | 0, $3476 & ($3402 ^ $3328) ^ $3402 & $3328 | 0) | 0;
$3546 = tempRet0;
$3547 = _i64Add($3513 | 0, $3514 | 0, $3253 | 0, $3254 | 0) | 0;
$3548 = tempRet0;
$3549 = _i64Add($3545 | 0, $3546 | 0, $3513 | 0, $3514 | 0) | 0;
$3551 = $0;
$3664 = _i64Add($3549 | 0, tempRet0 | 0, HEAP32[$3551 >> 2] | 0, HEAP32[$3551 + 4 >> 2] | 0) | 0;
$3665 = tempRet0;
$3559 = $0;
HEAP32[$3559 >> 2] = $3664;
HEAP32[$3559 + 4 >> 2] = $3665;
$3563 = $1;
$3662 = _i64Add(HEAP32[$3563 >> 2] | 0, HEAP32[$3563 + 4 >> 2] | 0, $3475 | 0, $3476 | 0) | 0;
$3663 = tempRet0;
$3571 = $1;
HEAP32[$3571 >> 2] = $3662;
HEAP32[$3571 + 4 >> 2] = $3663;
$3575 = $2;
$3660 = _i64Add(HEAP32[$3575 >> 2] | 0, HEAP32[$3575 + 4 >> 2] | 0, $3401 | 0, $3402 | 0) | 0;
$3661 = tempRet0;
$3583 = $2;
HEAP32[$3583 >> 2] = $3660;
HEAP32[$3583 + 4 >> 2] = $3661;
$3587 = $3;
$3658 = _i64Add(HEAP32[$3587 >> 2] | 0, HEAP32[$3587 + 4 >> 2] | 0, $3327 | 0, $3328 | 0) | 0;
$3659 = tempRet0;
$3595 = $3;
HEAP32[$3595 >> 2] = $3658;
HEAP32[$3595 + 4 >> 2] = $3659;
$3599 = $4;
$3656 = _i64Add($3547 | 0, $3548 | 0, HEAP32[$3599 >> 2] | 0, HEAP32[$3599 + 4 >> 2] | 0) | 0;
$3657 = tempRet0;
$3607 = $4;
HEAP32[$3607 >> 2] = $3656;
HEAP32[$3607 + 4 >> 2] = $3657;
$3611 = $5;
$3654 = _i64Add(HEAP32[$3611 >> 2] | 0, HEAP32[$3611 + 4 >> 2] | 0, $3473 | 0, $3474 | 0) | 0;
$3655 = tempRet0;
$3619 = $5;
HEAP32[$3619 >> 2] = $3654;
HEAP32[$3619 + 4 >> 2] = $3655;
$3623 = $6;
$3652 = _i64Add(HEAP32[$3623 >> 2] | 0, HEAP32[$3623 + 4 >> 2] | 0, $3399 | 0, $3400 | 0) | 0;
$3653 = tempRet0;
$3631 = $6;
HEAP32[$3631 >> 2] = $3652;
HEAP32[$3631 + 4 >> 2] = $3653;
$3635 = $7;
$3650 = _i64Add(HEAP32[$3635 >> 2] | 0, HEAP32[$3635 + 4 >> 2] | 0, $3325 | 0, $3326 | 0) | 0;
$3651 = tempRet0;
$3643 = $7;
HEAP32[$3643 >> 2] = $3650;
HEAP32[$3643 + 4 >> 2] = $3651;
$$01 = $$01 + -1 | 0;
if (!$$01) break; else $$0 = $$0 + 128 | 0;
}
STACKTOP = sp;
return 220;
}
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, $$0$i$89 = 0, $$1$i$48110 = 0, $$1$i$50126 = 0, $$1$i$63140 = 0, $$1$i$65154 = 0, $$1$i$67173 = 0, $$1$i$69192 = 0, $$1$i$71215 = 0, $$1$i$73235 = 0, $$1$i$75254 = 0, $$1$i$79273 = 0, $$1$i$81290 = 0, $$1$i$83305 = 0, $$1$i$87320 = 0, $$1$i97 = 0, $$lcssa1430 = 0, $$lcssa1431 = 0, $$lcssa1431$lcssa = 0, $$lcssa1544 = 0, $$lcssa1609 = 0, $$lcssa1610 = 0, $$sink = 0, $102 = 0, $104 = 0, $111 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $119 = 0, $120 = 0, $13 = 0, $131 = 0, $133 = 0, $136 = 0, $138 = 0, $14 = 0, $142 = 0, $144 = 0, $145 = 0, $147 = 0, $15 = 0, $153 = 0, $154 = 0, $160 = 0, $169 = 0, $17 = 0, $173 = 0, $174 = 0, $191 = 0, $193 = 0, $201 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $216 = 0, $218 = 0, $225 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $234 = 0, $238 = 0, $24 = 0, $244 = 0, $247 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $258 = 0, $260 = 0, $262 = 0, $272 = 0, $274 = 0, $280 = 0, $281 = 0, $287 = 0, $289 = 0, $296 = 0, $3 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $31 = 0, $314 = 0, $317 = 0, $323 = 0, $324 = 0, $33 = 0, $331 = 0, $334 = 0, $337 = 0, $338 = 0, $344 = 0, $346 = 0, $353 = 0, $358 = 0, $363 = 0, $365 = 0, $372 = 0, $373 = 0, $375 = 0, $376 = 0, $383 = 0, $384 = 0, $385 = 0, $391 = 0, $393 = 0, $4 = 0, $40 = 0, $400 = 0, $405 = 0, $410 = 0, $412 = 0, $419 = 0, $420 = 0, $422 = 0, $423 = 0, $435 = 0, $436 = 0, $44 = 0, $441 = 0, $442 = 0, $443 = 0, $449 = 0, $45 = 0, $451 = 0, $458 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $47 = 0, $474 = 0, $475 = 0, $481 = 0, $482 = 0, $491 = 0, $492 = 0, $498 = 0, $500 = 0, $507 = 0, $513 = 0, $518 = 0, $52 = 0, $520 = 0, $527 = 0, $528 = 0, $529 = 0, $530 = 0, $538 = 0, $539 = 0, $544 = 0, $545 = 0, $546 = 0, $552 = 0, $554 = 0, $561 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $577 = 0, $578 = 0, $583 = 0, $584 = 0, $585 = 0, $59 = 0, $591 = 0, $593 = 0, $600 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $616 = 0, $617 = 0, $623 = 0, $625 = 0, $626 = 0, $627 = 0, $639 = 0, $641 = 0, $644 = 0, $646 = 0, $647 = 0, $653 = 0, $655 = 0, $662 = 0, $664 = 0, $678 = 0, $679 = 0, $682 = 0, $684 = 0, $69 = 0, $691 = 0, $696 = 0, $704 = 0, $705 = 0, $708 = 0, $71 = 0, $710 = 0, $717 = 0, $72 = 0, $722 = 0, $739 = 0, $753 = 0, $756 = 0, $757 = 0, $760 = 0, $762 = 0, $769 = 0, $779 = 0, $78 = 0, $780 = 0, $789 = 0, $790 = 0, $797 = 0, $798 = 0, $80 = 0, $800 = 0, $815 = 0, $819 = 0, $82 = 0, $84 = 0, $9 = 0, $91 = 0, $92 = 0, $94 = 0, $95 = 0, $96 = 0, $_vlen$0$lcssa = 0, $_vlen$0619 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$3617 = 0, $_vptr$0$lcssa = 0, $_vptr$0618 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$3616 = 0, $aint$0 = 0, $aint43$0 = 0, $alen30$0205 = 0, $aoff$0 = 0, $aoff$0$lcssa = 0, $aoff$2 = 0, $arg_counter$0640 = 0, $arg_counter$1 = 0, $arg_counter$2 = 0, $arg_counter$4 = 0, $arg_counter$5 = 0, $arg_counter$6 = 0, $arg_counter$7 = 0, $arg_counter$9 = 0, $asexp$0 = 0, $astr$0 = 0, $astr29$0 = 0, $base64$0645 = 0, $base64$1 = 0, $c$sroa$0$1$lcssa = 0, $c$sroa$0$10 = 0, $c$sroa$0$10$ph = 0, $c$sroa$0$11168$ph = 0, $c$sroa$0$11168$ph$lcssa = 0, $c$sroa$0$13 = 0, $c$sroa$0$15 = 0, $c$sroa$0$15$ph = 0, $c$sroa$0$16187$ph = 0, $c$sroa$0$1638 = 0, $c$sroa$0$1638$lcssa = 0, $c$sroa$0$17210$ph = 0, $c$sroa$0$17210$ph$lcssa = 0, $c$sroa$0$19 = 0, $c$sroa$0$21230$ph = 0, $c$sroa$0$22249$ph = 0, $c$sroa$0$23268$ph = 0, $c$sroa$0$25285$ph = 0, $c$sroa$0$26300$ph = 0, $c$sroa$0$27 = 0, $c$sroa$0$28315$ph = 0, $c$sroa$0$29 = 0, $c$sroa$0$29$ph = 0, $c$sroa$0$292$ph = 0, $c$sroa$0$29331 = 0, $c$sroa$0$29853 = 0, $c$sroa$0$3 = 0, $c$sroa$0$3$lcssa = 0, $c$sroa$0$3$lcssa1577 = 0, $c$sroa$0$3$lcssa1578 = 0, $c$sroa$0$3$lcssa1579 = 0, $c$sroa$0$3$lcssa1580 = 0, $c$sroa$0$3$lcssa1581 = 0, $c$sroa$0$3$lcssa1582 = 0, $c$sroa$0$3$lcssa1583 = 0, $c$sroa$0$3$lcssa1584 = 0, $c$sroa$0$3$lcssa1585 = 0, $c$sroa$0$3$lcssa1586 = 0, $c$sroa$0$3$lcssa1587 = 0, $c$sroa$0$3$lcssa1589 = 0, $c$sroa$0$3$lcssa1590 = 0, $c$sroa$0$3$lcssa1593 = 0, $c$sroa$0$3$lcssa1596 = 0, $c$sroa$0$3$lcssa1597 = 0, $c$sroa$0$3$lcssa1598 = 0, $c$sroa$0$3$lcssa1599 = 0, $c$sroa$0$3$lcssa1600 = 0, $c$sroa$0$3$lcssa1601 = 0, $c$sroa$0$3$lcssa1602 = 0, $c$sroa$0$3$lcssa1603 = 0, $c$sroa$0$3$lcssa1604 = 0, $c$sroa$0$3$lcssa1605 = 0, $c$sroa$0$3$lcssa1606 = 0, $c$sroa$0$3$lcssa1607 = 0, $c$sroa$0$3$lcssa1608 = 0, $c$sroa$0$4105$ph = 0, $c$sroa$0$5121$ph = 0, $c$sroa$0$6135$ph = 0, $c$sroa$0$7149$ph = 0, $c$sroa$0$7149$ph$lcssa = 0, $c$sroa$0$9 = 0, $c$sroa$47$0$lcssa = 0, $c$sroa$47$0637 = 0, $c$sroa$47$0637$lcssa = 0, $c$sroa$47$10 = 0, $c$sroa$47$10$ph = 0, $c$sroa$47$11186$ph = 0, $c$sroa$47$12209$ph = 0, $c$sroa$47$12209$ph$lcssa = 0, $c$sroa$47$13229$ph = 0, $c$sroa$47$14248$ph = 0, $c$sroa$47$15267$ph = 0, $c$sroa$47$17284$ph = 0, $c$sroa$47$18299$ph = 0, $c$sroa$47$19 = 0, $c$sroa$47$191$ph = 0, $c$sroa$47$2 = 0, $c$sroa$47$2$lcssa = 0, $c$sroa$47$2$lcssa1545 = 0, $c$sroa$47$2$lcssa1546 = 0, $c$sroa$47$2$lcssa1547 = 0, $c$sroa$47$2$lcssa1548 = 0, $c$sroa$47$2$lcssa1549 = 0, $c$sroa$47$2$lcssa1550 = 0, $c$sroa$47$2$lcssa1551 = 0, $c$sroa$47$2$lcssa1552 = 0, $c$sroa$47$2$lcssa1553 = 0, $c$sroa$47$2$lcssa1554 = 0, $c$sroa$47$2$lcssa1555 = 0, $c$sroa$47$2$lcssa1557 = 0, $c$sroa$47$2$lcssa1558 = 0, $c$sroa$47$2$lcssa1561 = 0, $c$sroa$47$2$lcssa1564 = 0, $c$sroa$47$2$lcssa1565 = 0, $c$sroa$47$2$lcssa1566 = 0, $c$sroa$47$2$lcssa1567 = 0, $c$sroa$47$2$lcssa1568 = 0, $c$sroa$47$2$lcssa1569 = 0, $c$sroa$47$2$lcssa1570 = 0, $c$sroa$47$2$lcssa1571 = 0, $c$sroa$47$2$lcssa1572 = 0, $c$sroa$47$2$lcssa1573 = 0, $c$sroa$47$2$lcssa1574 = 0, $c$sroa$47$2$lcssa1575 = 0, $c$sroa$47$2$lcssa1576 = 0, $c$sroa$47$20314$ph = 0, $c$sroa$47$21 = 0, $c$sroa$47$21$ph = 0, $c$sroa$47$21330 = 0, $c$sroa$47$3104$ph = 0, $c$sroa$47$4120$ph = 0, $c$sroa$47$5134$ph = 0, $c$sroa$47$6148$ph = 0, $c$sroa$47$6148$ph$lcssa = 0, $c$sroa$47$7 = 0, $c$sroa$47$7$ph = 0, $c$sroa$47$8166$ph = 0, $c$sroa$47$8166$ph$lcssa = 0, $c$sroa$81$0$lcssa = 0, $c$sroa$81$0636 = 0, $c$sroa$81$10 = 0, $c$sroa$81$11$ph = 0, $c$sroa$81$12165$ph = 0, $c$sroa$81$14 = 0, $c$sroa$81$16 = 0, $c$sroa$81$17185$ph = 0, $c$sroa$81$190$ph = 0, $c$sroa$81$19208$ph = 0, $c$sroa$81$2 = 0, $c$sroa$81$21 = 0, $c$sroa$81$23228$ph = 0, $c$sroa$81$25247$ph = 0, $c$sroa$81$27266$ph = 0, $c$sroa$81$29283$ph = 0, $c$sroa$81$30298$ph = 0, $c$sroa$81$31 = 0, $c$sroa$81$3103$ph = 0, $c$sroa$81$32313$ph = 0, $c$sroa$81$5119$ph = 0, $c$sroa$81$6$ph632 = 0, $c$sroa$81$7133$ph = 0, $c$sroa$81$8147$ph = 0, $d$0$lcssa$i = 0, $d$031$i = 0, $d$2$i = 0, $digptr$0649 = 0, $digptr$1 = 0, $disphint$0644 = 0, $disphint$1 = 0, $dummy_erroff$erroff = 0, $err$10 = 0, $err$15$ph = 0, $err$31 = 0, $err$31$ph = 0, $err$31332 = 0, $esc$029$i = 0, $esc$1$i = 0, $hexcount$0642 = 0, $hexcount$1 = 0, $hexfmt$0$pn$ph633 = 0, $hexfmt$0$pn623 = 0, $hexfmt$0$pn623$lcssa = 0, $hexfmt$0$pn623$phi = 0, $hexfmt$0646 = 0, $hexfmt$1 = 0, $hexfmt$1$622$631 = 0, $hexfmt$1$622634 = 0, $hexfmt$1$val = 0, $hexfmt$1$val$lcssa = 0, $hexfmt$1624 = 0, $hexfmt$2$val = 0, $hexfmt$2$val$lcssa = 0, $hexfmt$2367 = 0, $hexfmt$2628 = 0, $hexfmt$2628$lcssa = 0, $hexfmt$4 = 0, $level$0$lcssa = 0, $level$0$ph$be$i = 0, $level$0$ph6$i = 0, $level$0639 = 0, $level$1 = 0, $m$0 = 0, $n$032$i = 0, $n$0650 = 0, $n$2$i = 0, $n$3 = 0, $nbits = 0, $nm = 0, $p$0$be$i = 0, $p$0$lcssa = 0, $p$0$ph5$i = 0, $p$04$i = 0, $p$04$i$lcssa = 0, $p$0651 = 0, $p$0651$lcssa1442 = 0, $p$0651$lcssa1443 = 0, $p$0651$lcssa1444 = 0, $p$0651$lcssa1446 = 0, $p$0651$lcssa1447 = 0, $p$0651$lcssa1448 = 0, $p$0651$lcssa1449 = 0, $p$0651$lcssa1450 = 0, $p$0651$lcssa1451 = 0, $p$0651$lcssa1452 = 0, $p$0651$lcssa1453 = 0, $p$0651$lcssa1455 = 0, $p$0651$lcssa1456 = 0, $p$0651$lcssa1459 = 0, $p$0651$lcssa1462 = 0, $p$0651$lcssa1463 = 0, $p$0651$lcssa1464 = 0, $p$0651$lcssa1465 = 0, $p$0651$lcssa1466 = 0, $p$0651$lcssa1467 = 0, $p$0651$lcssa1468 = 0, $p$0651$lcssa1469 = 0, $p$0651$lcssa1470 = 0, $p$0651$lcssa1471 = 0, $p$0651$lcssa1472 = 0, $p$0651$lcssa1473 = 0, $p$0651$lcssa1474 = 0, $p$3 = 0, $percent$0643 = 0, $percent$1 = 0, $quoted$0648 = 0, $quoted$2 = 0, $quoted_esc$0641 = 0, $quoted_esc$1 = 0, $s$030$i = 0, $s$2$i = 0, $s$off$i = 0, $s$off$i$55 = 0, $scevgep = 0, $tmpc$0 = 0, $tokenp$0647 = 0, $tokenp$1 = 0, $tokenp$2 = 0, $vararg_buffer = 0, $vararg_buffer16 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer16 = sp + 8 | 0;
$vararg_buffer = sp;
$nm = sp + 16 | 0;
$nbits = sp + 12 | 0;
if (!$retsexp) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$retsexp >> 2] = 0;
if (!$buffer) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$dummy_erroff$erroff = ($erroff | 0) == 0 ? sp + 52 | 0 : $erroff;
$3 = $length + 2 | 0;
$4 = ($length | 0) == 0;
if ($4) label = 6; else if (!(__gcry_is_secure($buffer) | 0)) label = 6; else $$sink = __gcry_malloc_secure($3) | 0;
if ((label | 0) == 6) $$sink = __gcry_malloc($3) | 0;
$9 = $$sink;
L13 : do if (!$$sink) {
$13 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$dummy_erroff$erroff >> 2] = 0;
$c$sroa$0$29 = $9;
$c$sroa$47$21 = $3;
$err$31 = $13;
label = 283;
} else {
L16 : do if ($4) {
$c$sroa$0$1$lcssa = $9;
$c$sroa$47$0$lcssa = $3;
$c$sroa$81$0$lcssa = $9;
$level$0$lcssa = 0;
$p$0$lcssa = $buffer;
label = 274;
} else {
$14 = ($argflag | 0) != 0;
$15 = ($arg_list | 0) == 0;
$arg_counter$0640 = 0;
$base64$0645 = 0;
$c$sroa$0$1638 = $9;
$c$sroa$47$0637 = $3;
$c$sroa$81$0636 = $9;
$digptr$0649 = 0;
$disphint$0644 = 0;
$hexcount$0642 = 0;
$hexfmt$0646 = 0;
$level$0639 = 0;
$n$0650 = $length;
$p$0651 = $buffer;
$percent$0643 = 0;
$quoted$0648 = 0;
$quoted_esc$0641 = 0;
$tokenp$0647 = 0;
L18 : while (1) {
$17 = ($hexfmt$0646 | 0) != 0;
if ($17 | ($tokenp$0647 | 0) == 0) {
$c$sroa$0$3 = $c$sroa$0$1638;
$c$sroa$47$2 = $c$sroa$47$0637;
$c$sroa$81$2 = $c$sroa$81$0636;
$tokenp$1 = $tokenp$0647;
label = 20;
} else if (!(_memchr(22240, HEAP8[$p$0651 >> 0] | 0, 71) | 0)) {
$21 = $p$0651;
$23 = $21 - $tokenp$0647 | 0;
$24 = $c$sroa$0$1638;
$25 = $c$sroa$81$0636 - $c$sroa$0$1638 | 0;
do if (($25 + 3 + $23 | 0) >>> 0 < $c$sroa$47$0637 >>> 0) {
$c$sroa$0$292$ph = $c$sroa$0$1638;
$c$sroa$47$191$ph = $c$sroa$47$0637;
$c$sroa$81$190$ph = $c$sroa$81$0636;
} else {
$31 = $c$sroa$47$0637 + 6 + ($23 << 1) | 0;
if ($31 >>> 0 <= $c$sroa$47$0637 >>> 0) {
$$1$i97 = 67;
$$lcssa1544 = $21;
$c$sroa$0$1638$lcssa = $c$sroa$0$1638;
$c$sroa$47$0637$lcssa = $c$sroa$47$0637;
label = 18;
break L18;
}
$33 = __gcry_realloc($24, $31) | 0;
if (!$33) {
$40 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$40) {
$c$sroa$0$292$ph = $c$sroa$0$1638;
$c$sroa$47$191$ph = $c$sroa$47$0637;
$c$sroa$81$190$ph = $c$sroa$81$0636;
break;
} else {
$$1$i97 = $40;
$$lcssa1544 = $21;
$c$sroa$0$1638$lcssa = $c$sroa$0$1638;
$c$sroa$47$0637$lcssa = $c$sroa$47$0637;
label = 18;
break L18;
}
} else {
$c$sroa$0$292$ph = $33;
$c$sroa$47$191$ph = $31;
$c$sroa$81$190$ph = $33 + $25 | 0;
break;
}
} while (0);
$44 = $c$sroa$81$190$ph;
$45 = $44 + 1 | 0;
HEAP8[$44 >> 0] = 1;
$46 = $23 & 65535;
HEAP8[$45 >> 0] = $46;
HEAP8[$45 + 1 >> 0] = $46 >> 8;
$47 = $44 + 3 | 0;
_memcpy($47 | 0, $tokenp$0647 | 0, $23 | 0) | 0;
$c$sroa$0$3 = $c$sroa$0$292$ph;
$c$sroa$47$2 = $c$sroa$47$191$ph;
$c$sroa$81$2 = $47 + $23 | 0;
$tokenp$1 = 0;
label = 20;
} else {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$1638;
$c$sroa$47$19 = $c$sroa$47$0637;
$c$sroa$81$31 = $c$sroa$81$0636;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$0647;
}
L30 : do if ((label | 0) == 20) {
label = 0;
if ($quoted$0648) {
$52 = HEAP8[$p$0651 >> 0] | 0;
if ($quoted_esc$0641) switch ($52 << 24 >> 24 | 0) {
case 92:
case 39:
case 34:
case 114:
case 102:
case 110:
case 118:
case 116:
case 98:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 55:
case 54:
case 53:
case 52:
case 51:
case 50:
case 49:
case 48:
{
if ($n$0650 >>> 0 <= 2) {
$c$sroa$0$3$lcssa1578 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1546 = $c$sroa$47$2;
$p$0651$lcssa1444 = $p$0651;
label = 26;
break L18;
}
if ((HEAP8[$p$0651 + 1 >> 0] & -8) << 24 >> 24 != 48) {
$c$sroa$0$3$lcssa1578 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1546 = $c$sroa$47$2;
$p$0651$lcssa1444 = $p$0651;
label = 26;
break L18;
}
$59 = $p$0651 + 2 | 0;
if ((HEAP8[$59 >> 0] & -8) << 24 >> 24 != 48) {
$c$sroa$0$3$lcssa1578 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1546 = $c$sroa$47$2;
$p$0651$lcssa1444 = $p$0651;
label = 26;
break L18;
}
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650 + -2 | 0;
$p$3 = $59;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 120:
{
if ($n$0650 >>> 0 <= 2) {
$c$sroa$0$3$lcssa1577 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1545 = $c$sroa$47$2;
$p$0651$lcssa1443 = $p$0651;
label = 33;
break L18;
}
$69 = HEAP8[$p$0651 + 1 >> 0] | 0;
if (($69 + -48 & 255) >= 10) switch ($69 << 24 >> 24) {
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:
case 97:
case 98:
case 99:
case 100:
case 101:
case 102:
break;
default:
{
$c$sroa$0$3$lcssa1577 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1545 = $c$sroa$47$2;
$p$0651$lcssa1443 = $p$0651;
label = 33;
break L18;
}
}
$71 = $p$0651 + 2 | 0;
$72 = HEAP8[$71 >> 0] | 0;
if (($72 + -48 & 255) >= 10) switch ($72 << 24 >> 24) {
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:
case 97:
case 98:
case 99:
case 100:
case 101:
case 102:
break;
default:
{
$c$sroa$0$3$lcssa1577 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1545 = $c$sroa$47$2;
$p$0651$lcssa1443 = $p$0651;
label = 33;
break L18;
}
}
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650 + -2 | 0;
$p$3 = $71;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 13:
{
$78 = $p$0651 + 1 | 0;
$80 = (HEAP8[$78 >> 0] | 0) == 10;
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = ($80 << 31 >> 31) + $n$0650 | 0;
$p$3 = $80 ? $78 : $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 10:
{
$82 = $p$0651 + 1 | 0;
$84 = (HEAP8[$82 >> 0] | 0) == 13;
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = ($84 << 31 >> 31) + $n$0650 | 0;
$p$3 = $84 ? $82 : $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
default:
{
$c$sroa$0$3$lcssa = $c$sroa$0$3;
$c$sroa$47$2$lcssa = $c$sroa$47$2;
$p$0651$lcssa1442 = $p$0651;
label = 37;
break L18;
}
}
if ($52 << 24 >> 24 == 92) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 1;
$tokenp$2 = $tokenp$1;
break;
}
if ($52 << 24 >> 24 != 34) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $quoted$0648;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break;
}
$91 = $quoted$0648 + 1 | 0;
$92 = $p$0651;
$94 = $92 - $91 | 0;
$95 = $c$sroa$0$3;
$96 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($94 + 3 + $96 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$4105$ph = $c$sroa$0$3;
$c$sroa$47$3104$ph = $c$sroa$47$2;
$c$sroa$81$3103$ph = $c$sroa$81$2;
} else {
$102 = ($94 << 1) + 6 + $c$sroa$47$2 | 0;
if ($102 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$48110 = 67;
$$lcssa1609 = $92;
$c$sroa$0$3$lcssa1579 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1547 = $c$sroa$47$2;
label = 81;
break L18;
}
$104 = __gcry_realloc($95, $102) | 0;
if (!$104) {
$111 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$111) {
$c$sroa$0$4105$ph = $c$sroa$0$3;
$c$sroa$47$3104$ph = $c$sroa$47$2;
$c$sroa$81$3103$ph = $c$sroa$81$2;
break;
} else {
$$1$i$48110 = $111;
$$lcssa1609 = $92;
$c$sroa$0$3$lcssa1579 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1547 = $c$sroa$47$2;
label = 81;
break L18;
}
} else {
$c$sroa$0$4105$ph = $104;
$c$sroa$47$3104$ph = $102;
$c$sroa$81$3103$ph = $104 + $96 | 0;
break;
}
} while (0);
$113 = $c$sroa$81$3103$ph;
$114 = $113 + 1 | 0;
HEAP8[$113 >> 0] = 1;
HEAP8[$114 >> 0] = 0;
HEAP8[$114 + 1 >> 0] = 0;
$115 = $113 + 3 | 0;
$116 = $115;
L61 : do if (($p$0651 | 0) == ($91 | 0)) $d$0$lcssa$i = $115; else {
$d$031$i = $115;
$esc$029$i = 0;
$n$032$i = $94;
$s$030$i = $91;
while (1) {
$119 = HEAP8[$s$030$i >> 0] | 0;
$120 = $119 & 255;
L64 : do if (!$esc$029$i) {
if ($119 << 24 >> 24 == 92) {
$d$2$i = $d$031$i;
$esc$1$i = 1;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break;
}
HEAP8[$d$031$i >> 0] = $119;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
} else do switch ($120 | 0) {
case 98:
{
HEAP8[$d$031$i >> 0] = 8;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 116:
{
HEAP8[$d$031$i >> 0] = 9;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 118:
{
HEAP8[$d$031$i >> 0] = 11;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 110:
{
HEAP8[$d$031$i >> 0] = 10;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 102:
{
HEAP8[$d$031$i >> 0] = 12;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 114:
{
HEAP8[$d$031$i >> 0] = 13;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 34:
{
HEAP8[$d$031$i >> 0] = 34;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 39:
{
HEAP8[$d$031$i >> 0] = 39;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 92:
{
HEAP8[$d$031$i >> 0] = 92;
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
break;
}
case 13:
{
if ($n$032$i >>> 0 <= 1) {
$d$0$lcssa$i = $d$031$i;
break L61;
}
$131 = $s$030$i + 1 | 0;
$133 = (HEAP8[$131 >> 0] | 0) == 10;
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = ($133 << 31 >> 31) + $n$032$i | 0;
$s$2$i = $133 ? $131 : $s$030$i;
break L64;
break;
}
case 10:
{
if ($n$032$i >>> 0 <= 1) {
$d$0$lcssa$i = $d$031$i;
break L61;
}
$136 = $s$030$i + 1 | 0;
$138 = (HEAP8[$136 >> 0] | 0) == 13;
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = ($138 << 31 >> 31) + $n$032$i | 0;
$s$2$i = $138 ? $136 : $s$030$i;
break L64;
break;
}
case 120:
{
if ($n$032$i >>> 0 <= 2) {
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
}
$142 = HEAP8[$s$030$i + 1 >> 0] | 0;
if (($142 + -48 & 255) >= 10) switch ($142 << 24 >> 24) {
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:
case 97:
case 98:
case 99:
case 100:
case 101:
case 102:
break;
default:
{
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
}
}
$144 = $s$030$i + 2 | 0;
$145 = HEAP8[$144 >> 0] | 0;
if (($145 + -48 & 255) >= 10) switch ($145 << 24 >> 24) {
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:
case 97:
case 98:
case 99:
case 100:
case 101:
case 102:
break;
default:
{
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
}
}
$147 = $142 & 255;
if (($142 & 255) < 58) $153 = $147 + -48 | 0; else $153 = $147 + 10 + (($142 & 255) < 71 ? -65 : -97) | 0;
$154 = $145 & 255;
if (($145 & 255) < 58) $160 = $154 + -48 | 0; else $160 = $154 + 10 + (($145 & 255) < 71 ? -65 : -97) | 0;
HEAP8[$d$031$i >> 0] = $160 + ($153 << 4);
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i + -2 | 0;
$s$2$i = $144;
break L64;
break;
}
default:
{
if (!($n$032$i >>> 0 > 2 & ($119 & -8) << 24 >> 24 == 48)) {
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
}
$169 = HEAP8[$s$030$i + 1 >> 0] | 0;
if (($169 & -8) << 24 >> 24 != 48) {
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
}
$173 = $s$030$i + 2 | 0;
$174 = HEAP8[$173 >> 0] | 0;
if (($174 & -8) << 24 >> 24 != 48) {
$d$2$i = $d$031$i;
$esc$1$i = 0;
$n$2$i = $n$032$i;
$s$2$i = $s$030$i;
break L64;
}
HEAP8[$d$031$i >> 0] = ($120 << 6) + 80 + (($169 & 255) << 3) + ($174 & 255);
$d$2$i = $d$031$i + 1 | 0;
$esc$1$i = 0;
$n$2$i = $n$032$i + -2 | 0;
$s$2$i = $173;
break L64;
}
} while (0); while (0);
$n$032$i = $n$2$i + -1 | 0;
if (!$n$032$i) {
$d$0$lcssa$i = $d$2$i;
break;
} else {
$d$031$i = $d$2$i;
$esc$029$i = $esc$1$i;
$s$030$i = $s$2$i + 1 | 0;
}
}
} while (0);
$191 = $d$0$lcssa$i;
$193 = $191 - $116 & 65535;
HEAP8[$114 >> 0] = $193;
HEAP8[$114 + 1 >> 0] = $193 >> 8;
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$4105$ph;
$c$sroa$47$19 = $c$sroa$47$3104$ph;
$c$sroa$81$31 = $191;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break;
}
if ($17) {
if (_isxdigit(HEAP8[$p$0651 >> 0] | 0) | 0) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642 + 1 | 0;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break;
}
$201 = HEAP8[$p$0651 >> 0] | 0;
if ($201 << 24 >> 24 != 35) switch ($201 << 24 >> 24 | 0) {
case 10:
case 13:
case 12:
case 11:
case 9:
case 32:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = $hexfmt$0646;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
default:
{
$c$sroa$0$3$lcssa1606 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1574 = $c$sroa$47$2;
$p$0651$lcssa1472 = $p$0651;
label = 112;
break L18;
}
}
if ($hexcount$0642 & 1) {
$c$sroa$0$3$lcssa1607 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1575 = $c$sroa$47$2;
$p$0651$lcssa1473 = $p$0651;
label = 87;
break L18;
}
$208 = ($hexcount$0642 | 0) / 2 | 0;
$209 = $c$sroa$0$3;
$210 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($208 + 3 + $210 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$5121$ph = $c$sroa$0$3;
$c$sroa$47$4120$ph = $c$sroa$47$2;
$c$sroa$81$5119$ph = $c$sroa$81$2;
} else {
$216 = ($208 << 1) + 6 + $c$sroa$47$2 | 0;
if ($216 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$50126 = 67;
$c$sroa$0$3$lcssa1608 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1576 = $c$sroa$47$2;
$p$0651$lcssa1474 = $p$0651;
label = 93;
break L18;
}
$218 = __gcry_realloc($209, $216) | 0;
if (!$218) {
$225 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$225) {
$c$sroa$0$5121$ph = $c$sroa$0$3;
$c$sroa$47$4120$ph = $c$sroa$47$2;
$c$sroa$81$5119$ph = $c$sroa$81$2;
break;
} else {
$$1$i$50126 = $225;
$c$sroa$0$3$lcssa1608 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1576 = $c$sroa$47$2;
$p$0651$lcssa1474 = $p$0651;
label = 93;
break L18;
}
} else {
$c$sroa$0$5121$ph = $218;
$c$sroa$47$4120$ph = $216;
$c$sroa$81$5119$ph = $218 + $210 | 0;
break;
}
} while (0);
$230 = $c$sroa$81$5119$ph;
$231 = $230 + 1 | 0;
HEAP8[$230 >> 0] = 1;
$232 = $208 & 65535;
HEAP8[$231 >> 0] = $232;
HEAP8[$231 + 1 >> 0] = $232 >> 8;
$234 = $230 + 3 | 0;
$hexfmt$1$622$631 = $hexfmt$0646 + 1 | 0;
if ($hexfmt$1$622$631 >>> 0 < $p$0651 >>> 0) {
$c$sroa$81$6$ph632 = $234;
$hexfmt$0$pn$ph633 = $hexfmt$0646;
$hexfmt$1$622634 = $hexfmt$1$622$631;
} else {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$5121$ph;
$c$sroa$47$19 = $c$sroa$47$4120$ph;
$c$sroa$81$31 = $234;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break;
}
while (1) {
$hexfmt$0$pn623 = $hexfmt$0$pn$ph633;
$hexfmt$1624 = $hexfmt$1$622634;
L123 : while (1) {
$hexfmt$1$val = HEAP8[$hexfmt$1624 >> 0] | 0;
switch ($hexfmt$1$val << 24 >> 24 | 0) {
case 10:
case 13:
case 12:
case 11:
case 9:
case 32:
break;
default:
{
$hexfmt$0$pn623$lcssa = $hexfmt$0$pn623;
$hexfmt$1$val$lcssa = $hexfmt$1$val;
break L123;
}
}
$hexfmt$1 = $hexfmt$1624 + 1 | 0;
if ($hexfmt$1 >>> 0 < $p$0651 >>> 0) {
$hexfmt$0$pn623$phi = $hexfmt$1624;
$hexfmt$1624 = $hexfmt$1;
$hexfmt$0$pn623 = $hexfmt$0$pn623$phi;
} else {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$5121$ph;
$c$sroa$47$19 = $c$sroa$47$4120$ph;
$c$sroa$81$31 = $c$sroa$81$6$ph632;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
}
}
$238 = $hexfmt$1$val$lcssa & 255;
$s$off$i = $238 + -48 | 0;
do if ($s$off$i >>> 0 < 10) $250 = $s$off$i; else if (($238 + -65 | 0) >>> 0 < 6) {
$250 = $238 + -55 | 0;
break;
} else {
$250 = ($238 + -97 | 0) >>> 0 < 6 ? $238 + -87 | 0 : 0;
break;
} while (0);
$244 = $hexfmt$0$pn623$lcssa + 2 | 0;
L133 : do if ($244 >>> 0 < $p$0651 >>> 0) {
$hexfmt$2628 = $244;
L134 : while (1) {
$hexfmt$2$val = HEAP8[$hexfmt$2628 >> 0] | 0;
switch ($hexfmt$2$val << 24 >> 24 | 0) {
case 10:
case 13:
case 12:
case 11:
case 9:
case 32:
break;
default:
{
$hexfmt$2$val$lcssa = $hexfmt$2$val;
$hexfmt$2628$lcssa = $hexfmt$2628;
break L134;
}
}
$247 = $hexfmt$2628 + 1 | 0;
if ($247 >>> 0 < $p$0651 >>> 0) $hexfmt$2628 = $247; else {
$hexfmt$2367 = $247;
$tmpc$0 = $250;
break L133;
}
}
$249 = $250 << 4;
$251 = $hexfmt$2$val$lcssa & 255;
$s$off$i$55 = $251 + -48 | 0;
do if ($s$off$i$55 >>> 0 < 10) $258 = $s$off$i$55; else if (($251 + -65 | 0) >>> 0 < 6) {
$258 = $251 + -55 | 0;
break;
} else {
$258 = ($251 + -97 | 0) >>> 0 < 6 ? $251 + -87 | 0 : 0;
break;
} while (0);
$hexfmt$2367 = $hexfmt$2628$lcssa;
$tmpc$0 = $258 + $249 | 0;
} else {
$hexfmt$2367 = $244;
$tmpc$0 = $250;
} while (0);
$260 = $c$sroa$81$6$ph632;
$262 = $260 + 1 | 0;
HEAP8[$260 >> 0] = $tmpc$0;
$hexfmt$1$622634 = $hexfmt$2367 + 1 | 0;
if ($hexfmt$1$622634 >>> 0 >= $p$0651 >>> 0) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $base64$0645;
$c$sroa$0$27 = $c$sroa$0$5121$ph;
$c$sroa$47$19 = $c$sroa$47$4120$ph;
$c$sroa$81$31 = $262;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
} else {
$c$sroa$81$6$ph632 = $262;
$hexfmt$0$pn$ph633 = $hexfmt$2367;
}
}
}
if ($base64$0645) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = (HEAP8[$p$0651 >> 0] | 0) == 124 ? 0 : $base64$0645;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break;
}
if ($digptr$0649) {
$272 = HEAP8[$p$0651 >> 0] | 0;
if (($272 + -48 & 255) < 10) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $digptr$0649;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break;
}
switch ($272 << 24 >> 24) {
case 34:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = $p$0651;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 58:
{
$274 = _atoi($digptr$0649) | 0;
if ($274 >>> 0 > ($n$0650 + -1 | 0) >>> 0) {
$c$sroa$0$3$lcssa1581 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1549 = $c$sroa$47$2;
$p$0651$lcssa1447 = $p$0651;
label = 119;
break L18;
}
$280 = $c$sroa$0$3;
$281 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($281 + 3 + $274 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$6135$ph = $c$sroa$0$3;
$c$sroa$47$5134$ph = $c$sroa$47$2;
$c$sroa$81$7133$ph = $c$sroa$81$2;
} else {
$287 = $c$sroa$47$2 + 6 + ($274 << 1) | 0;
if ($287 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$63140 = 67;
$c$sroa$0$3$lcssa1582 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1550 = $c$sroa$47$2;
$p$0651$lcssa1448 = $p$0651;
label = 125;
break L18;
}
$289 = __gcry_realloc($280, $287) | 0;
if (!$289) {
$296 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$296) {
$c$sroa$0$6135$ph = $c$sroa$0$3;
$c$sroa$47$5134$ph = $c$sroa$47$2;
$c$sroa$81$7133$ph = $c$sroa$81$2;
break;
} else {
$$1$i$63140 = $296;
$c$sroa$0$3$lcssa1582 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1550 = $c$sroa$47$2;
$p$0651$lcssa1448 = $p$0651;
label = 125;
break L18;
}
} else {
$c$sroa$0$6135$ph = $289;
$c$sroa$47$5134$ph = $287;
$c$sroa$81$7133$ph = $289 + $281 | 0;
break;
}
} while (0);
$301 = $c$sroa$81$7133$ph;
$302 = $301 + 1 | 0;
HEAP8[$301 >> 0] = 1;
$303 = $274 & 65535;
HEAP8[$302 >> 0] = $303;
HEAP8[$302 + 1 >> 0] = $303 >> 8;
$304 = $301 + 3 | 0;
_memcpy($304 | 0, $p$0651 + 1 | 0, $274 | 0) | 0;
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$6135$ph;
$c$sroa$47$19 = $c$sroa$47$5134$ph;
$c$sroa$81$31 = $304 + $274 | 0;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650 - $274 | 0;
$p$3 = $p$0651 + $274 | 0;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 35:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = 0;
$hexfmt$4 = $p$0651;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 124:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $p$0651;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $percent$0643;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
default:
{
$c$sroa$0$3$lcssa1580 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1548 = $c$sroa$47$2;
$p$0651$lcssa1446 = $p$0651;
label = 129;
break L18;
}
}
}
$314 = HEAP8[$p$0651 >> 0] | 0;
if (!$percent$0643) switch ($314 << 24 >> 24) {
case 34:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = $p$0651;
$quoted_esc$1 = 0;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 40:
{
if ($disphint$0644) {
$c$sroa$0$3$lcssa1600 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1568 = $c$sroa$47$2;
$p$0651$lcssa1466 = $p$0651;
label = 239;
break L18;
}
$678 = $c$sroa$0$3;
$679 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($679 + 3 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$25285$ph = $c$sroa$0$3;
$c$sroa$47$17284$ph = $c$sroa$47$2;
$c$sroa$81$29283$ph = $c$sroa$81$2;
} else {
$682 = $c$sroa$47$2 + 6 | 0;
if ($c$sroa$47$2 >>> 0 >= 4294967290) {
$$1$i$81290 = 67;
$c$sroa$0$3$lcssa1601 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1569 = $c$sroa$47$2;
$p$0651$lcssa1467 = $p$0651;
label = 245;
break L18;
}
$684 = __gcry_realloc($678, $682) | 0;
if (!$684) {
$691 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$691) {
$c$sroa$0$25285$ph = $c$sroa$0$3;
$c$sroa$47$17284$ph = $c$sroa$47$2;
$c$sroa$81$29283$ph = $c$sroa$81$2;
break;
} else {
$$1$i$81290 = $691;
$c$sroa$0$3$lcssa1601 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1569 = $c$sroa$47$2;
$p$0651$lcssa1467 = $p$0651;
label = 245;
break L18;
}
} else {
$c$sroa$0$25285$ph = $684;
$c$sroa$47$17284$ph = $682;
$c$sroa$81$29283$ph = $684 + $679 | 0;
break;
}
} while (0);
$696 = $c$sroa$81$29283$ph;
HEAP8[$696 >> 0] = 3;
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$25285$ph;
$c$sroa$47$19 = $c$sroa$47$17284$ph;
$c$sroa$81$31 = $696 + 1 | 0;
$digptr$1 = 0;
$disphint$1 = 0;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639 + 1 | 0;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 41:
{
if ($disphint$0644) {
$c$sroa$0$3$lcssa1598 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1566 = $c$sroa$47$2;
$p$0651$lcssa1464 = $p$0651;
label = 248;
break L18;
}
$704 = $c$sroa$0$3;
$705 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($705 + 3 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$26300$ph = $c$sroa$0$3;
$c$sroa$47$18299$ph = $c$sroa$47$2;
$c$sroa$81$30298$ph = $c$sroa$81$2;
} else {
$708 = $c$sroa$47$2 + 6 | 0;
if ($c$sroa$47$2 >>> 0 >= 4294967290) {
$$1$i$83305 = 67;
$c$sroa$0$3$lcssa1599 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1567 = $c$sroa$47$2;
$p$0651$lcssa1465 = $p$0651;
label = 254;
break L18;
}
$710 = __gcry_realloc($704, $708) | 0;
if (!$710) {
$717 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$717) {
$c$sroa$0$26300$ph = $c$sroa$0$3;
$c$sroa$47$18299$ph = $c$sroa$47$2;
$c$sroa$81$30298$ph = $c$sroa$81$2;
break;
} else {
$$1$i$83305 = $717;
$c$sroa$0$3$lcssa1599 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1567 = $c$sroa$47$2;
$p$0651$lcssa1465 = $p$0651;
label = 254;
break L18;
}
} else {
$c$sroa$0$26300$ph = $710;
$c$sroa$47$18299$ph = $708;
$c$sroa$81$30298$ph = $710 + $705 | 0;
break;
}
} while (0);
$722 = $c$sroa$81$30298$ph;
HEAP8[$722 >> 0] = 4;
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$26300$ph;
$c$sroa$47$19 = $c$sroa$47$18299$ph;
$c$sroa$81$31 = $722 + 1 | 0;
$digptr$1 = 0;
$disphint$1 = 0;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639 + -1 | 0;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 35:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = 0;
$hexfmt$4 = $p$0651;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 124:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = $p$0651;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 91:
{
if (!$disphint$0644) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $p$0651;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
} else {
$c$sroa$0$3$lcssa1597 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1565 = $c$sroa$47$2;
$p$0651$lcssa1463 = $p$0651;
label = 259;
break L18;
}
break;
}
case 93:
{
if (!$disphint$0644) {
$c$sroa$0$3$lcssa1596 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1564 = $c$sroa$47$2;
$p$0651$lcssa1462 = $p$0651;
label = 261;
break L18;
} else {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = 0;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
}
break;
}
default:
{
if (($314 + -48 & 255) < 10) if ($314 << 24 >> 24 == 48) {
$c$sroa$0$3$lcssa1605 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1573 = $c$sroa$47$2;
$p$0651$lcssa1471 = $p$0651;
label = 264;
break L18;
} else {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = $p$0651;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
}
$739 = $314 << 24 >> 24;
if (_memchr(22240, $739, 71) | 0) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $p$0651;
break L30;
}
switch ($739 | 0) {
case 10:
case 13:
case 12:
case 11:
case 9:
case 32:
{
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
default:
{}
}
if ($314 << 24 >> 24 == 123) {
$c$sroa$0$3$lcssa1602 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1570 = $c$sroa$47$2;
$p$0651$lcssa1468 = $p$0651;
label = 268;
break L18;
}
if (_memchr(22332, $739, 3) | 0) {
$c$sroa$0$3$lcssa1603 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1571 = $c$sroa$47$2;
$p$0651$lcssa1469 = $p$0651;
label = 270;
break L18;
}
if ($14 & $314 << 24 >> 24 == 37) {
$arg_counter$9 = $arg_counter$0640;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = $p$0651;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
} else {
$c$sroa$0$3$lcssa1604 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1572 = $c$sroa$47$2;
$p$0651$lcssa1470 = $p$0651;
label = 272;
break L18;
}
}
}
switch ($314 << 24 >> 24) {
case 77:
case 109:
{
HEAP32[$nm >> 2] = 0;
$317 = (HEAP8[$p$0651 >> 0] | 0) == 109 ? 1 : 5;
if ($15) {
$323 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$324 = HEAP32[$323 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $323 + 4;
$arg_counter$1 = $arg_counter$0640;
$m$0 = $324;
} else {
$arg_counter$1 = $arg_counter$0640 + 1 | 0;
$m$0 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 << 2) >> 2] >> 2] | 0;
}
if (!(__gcry_mpi_get_flag($m$0, 2) | 0)) {
if (__gcry_mpi_print($317, 0, 0, $nm, $m$0) | 0) {
label = 152;
break L18;
}
$383 = HEAP32[$nm >> 2] | 0;
$384 = $c$sroa$0$3;
$385 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($385 + 3 + $383 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$11168$ph = $c$sroa$0$3;
$c$sroa$47$8166$ph = $c$sroa$47$2;
$c$sroa$81$12165$ph = $c$sroa$81$2;
} else {
$391 = $c$sroa$47$2 + 6 + ($383 << 1) | 0;
if ($391 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$67173 = 67;
$c$sroa$0$3$lcssa1593 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1561 = $c$sroa$47$2;
$p$0651$lcssa1459 = $p$0651;
label = 158;
break L18;
}
$393 = __gcry_realloc($384, $391) | 0;
if (!$393) {
$400 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$400) {
$c$sroa$0$11168$ph = $c$sroa$0$3;
$c$sroa$47$8166$ph = $c$sroa$47$2;
$c$sroa$81$12165$ph = $c$sroa$81$2;
break;
} else {
$$1$i$67173 = $400;
$c$sroa$0$3$lcssa1593 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1561 = $c$sroa$47$2;
$p$0651$lcssa1459 = $p$0651;
label = 158;
break L18;
}
} else {
$c$sroa$0$11168$ph = $393;
$c$sroa$47$8166$ph = $391;
$c$sroa$81$12165$ph = $393 + $385 | 0;
break;
}
} while (0);
$405 = $c$sroa$0$11168$ph;
do if (!(__gcry_is_secure($405) | 0)) {
if (!(__gcry_mpi_get_flag($m$0, 1) | 0)) {
$c$sroa$0$13 = $c$sroa$0$11168$ph;
$c$sroa$81$14 = $c$sroa$81$12165$ph;
break;
}
$410 = __gcry_malloc_secure($c$sroa$47$8166$ph) | 0;
if (!$410) {
$c$sroa$0$11168$ph$lcssa = $c$sroa$0$11168$ph;
$c$sroa$47$8166$ph$lcssa = $c$sroa$47$8166$ph;
label = 163;
break L18;
}
$412 = $c$sroa$81$12165$ph - $c$sroa$0$11168$ph | 0;
_memcpy($410 | 0, $405 | 0, $412 | 0) | 0;
__gcry_free($c$sroa$0$11168$ph);
$c$sroa$0$13 = $410;
$c$sroa$81$14 = $410 + $412 | 0;
} else {
$c$sroa$0$13 = $c$sroa$0$11168$ph;
$c$sroa$81$14 = $c$sroa$81$12165$ph;
} while (0);
$419 = $c$sroa$81$14;
$420 = $419 + 1 | 0;
HEAP8[$419 >> 0] = 1;
$422 = HEAP32[$nm >> 2] & 65535;
HEAP8[$420 >> 0] = $422;
HEAP8[$420 + 1 >> 0] = $422 >> 8;
$423 = $419 + 3 | 0;
if (__gcry_mpi_print($317, $423, HEAP32[$nm >> 2] | 0, $nm, $m$0) | 0) {
label = 165;
break L18;
}
$c$sroa$0$15 = $c$sroa$0$13;
$c$sroa$47$10 = $c$sroa$47$8166$ph;
$c$sroa$81$16 = $423 + (HEAP32[$nm >> 2] | 0) | 0;
} else {
$331 = __gcry_mpi_get_opaque($m$0, $nbits) | 0;
$334 = ((HEAP32[$nbits >> 2] | 0) + 7 | 0) >>> 3;
HEAP32[$nm >> 2] = $334;
if (($331 | 0) != 0 & ($334 | 0) != 0) {
$337 = $c$sroa$0$3;
$338 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($338 + 3 + $334 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$7149$ph = $c$sroa$0$3;
$c$sroa$47$6148$ph = $c$sroa$47$2;
$c$sroa$81$8147$ph = $c$sroa$81$2;
} else {
$344 = $c$sroa$47$2 + 6 + ($334 << 1) | 0;
if ($344 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$65154 = 67;
$c$sroa$0$3$lcssa1590 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1558 = $c$sroa$47$2;
$p$0651$lcssa1456 = $p$0651;
label = 142;
break L18;
}
$346 = __gcry_realloc($337, $344) | 0;
if (!$346) {
$353 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$353) {
$c$sroa$0$7149$ph = $c$sroa$0$3;
$c$sroa$47$6148$ph = $c$sroa$47$2;
$c$sroa$81$8147$ph = $c$sroa$81$2;
break;
} else {
$$1$i$65154 = $353;
$c$sroa$0$3$lcssa1590 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1558 = $c$sroa$47$2;
$p$0651$lcssa1456 = $p$0651;
label = 142;
break L18;
}
} else {
$c$sroa$0$7149$ph = $346;
$c$sroa$47$6148$ph = $344;
$c$sroa$81$8147$ph = $346 + $338 | 0;
break;
}
} while (0);
$358 = $c$sroa$0$7149$ph;
do if (!(__gcry_is_secure($358) | 0)) {
if (!(__gcry_mpi_get_flag($m$0, 1) | 0)) {
$c$sroa$0$9 = $c$sroa$0$7149$ph;
$c$sroa$81$10 = $c$sroa$81$8147$ph;
break;
}
$363 = __gcry_malloc_secure($c$sroa$47$6148$ph) | 0;
if (!$363) {
$c$sroa$0$7149$ph$lcssa = $c$sroa$0$7149$ph;
$c$sroa$47$6148$ph$lcssa = $c$sroa$47$6148$ph;
label = 147;
break L18;
}
$365 = $c$sroa$81$8147$ph - $c$sroa$0$7149$ph | 0;
_memcpy($363 | 0, $358 | 0, $365 | 0) | 0;
__gcry_free($c$sroa$0$7149$ph);
$c$sroa$0$9 = $363;
$c$sroa$81$10 = $363 + $365 | 0;
} else {
$c$sroa$0$9 = $c$sroa$0$7149$ph;
$c$sroa$81$10 = $c$sroa$81$8147$ph;
} while (0);
$372 = $c$sroa$81$10;
$373 = $372 + 1 | 0;
HEAP8[$372 >> 0] = 1;
$375 = HEAP32[$nm >> 2] & 65535;
HEAP8[$373 >> 0] = $375;
HEAP8[$373 + 1 >> 0] = $375 >> 8;
$376 = $372 + 3 | 0;
_memcpy($376 | 0, $331 | 0, HEAP32[$nm >> 2] | 0) | 0;
$c$sroa$0$10$ph = $c$sroa$0$9;
$c$sroa$47$7$ph = $c$sroa$47$6148$ph;
$c$sroa$81$11$ph = $376 + (HEAP32[$nm >> 2] | 0) | 0;
} else {
$c$sroa$0$10$ph = $c$sroa$0$3;
$c$sroa$47$7$ph = $c$sroa$47$2;
$c$sroa$81$11$ph = $c$sroa$81$2;
}
$c$sroa$0$15 = $c$sroa$0$10$ph;
$c$sroa$47$10 = $c$sroa$47$7$ph;
$c$sroa$81$16 = $c$sroa$81$11$ph;
}
$arg_counter$9 = $arg_counter$1;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$15;
$c$sroa$47$19 = $c$sroa$47$10;
$c$sroa$81$31 = $c$sroa$81$16;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 115:
{
if ($15) {
$435 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$436 = HEAP32[$435 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $435 + 4;
$arg_counter$2 = $arg_counter$0640;
$astr$0 = $436;
} else {
$arg_counter$2 = $arg_counter$0640 + 1 | 0;
$astr$0 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 << 2) >> 2] >> 2] | 0;
}
$441 = _strlen($astr$0) | 0;
$442 = $c$sroa$0$3;
$443 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($443 + 3 + $441 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$16187$ph = $c$sroa$0$3;
$c$sroa$47$11186$ph = $c$sroa$47$2;
$c$sroa$81$17185$ph = $c$sroa$81$2;
} else {
$449 = $c$sroa$47$2 + 6 + ($441 << 1) | 0;
if ($449 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$69192 = 67;
$c$sroa$0$3$lcssa1589 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1557 = $c$sroa$47$2;
$p$0651$lcssa1455 = $p$0651;
label = 178;
break L18;
}
$451 = __gcry_realloc($442, $449) | 0;
if (!$451) {
$458 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$458) {
$c$sroa$0$16187$ph = $c$sroa$0$3;
$c$sroa$47$11186$ph = $c$sroa$47$2;
$c$sroa$81$17185$ph = $c$sroa$81$2;
break;
} else {
$$1$i$69192 = $458;
$c$sroa$0$3$lcssa1589 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1557 = $c$sroa$47$2;
$p$0651$lcssa1455 = $p$0651;
label = 178;
break L18;
}
} else {
$c$sroa$0$16187$ph = $451;
$c$sroa$47$11186$ph = $449;
$c$sroa$81$17185$ph = $451 + $443 | 0;
break;
}
} while (0);
$460 = $c$sroa$81$17185$ph;
$461 = $460 + 1 | 0;
HEAP8[$460 >> 0] = 1;
$462 = $441 & 65535;
HEAP8[$461 >> 0] = $462;
HEAP8[$461 + 1 >> 0] = $462 >> 8;
$463 = $460 + 3 | 0;
_memcpy($463 | 0, $astr$0 | 0, $441 | 0) | 0;
$arg_counter$9 = $arg_counter$2;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$16187$ph;
$c$sroa$47$19 = $c$sroa$47$11186$ph;
$c$sroa$81$31 = $463 + $441 | 0;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 98:
{
if ($15) {
$474 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$475 = HEAP32[$474 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $474 + 4;
$481 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$482 = HEAP32[$481 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $481 + 4;
$alen30$0205 = $475;
$arg_counter$4 = $arg_counter$0640;
$astr29$0 = $482;
} else {
$alen30$0205 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 << 2) >> 2] >> 2] | 0;
$arg_counter$4 = $arg_counter$0640 + 2 | 0;
$astr29$0 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 + 1 << 2) >> 2] >> 2] | 0;
}
$491 = $c$sroa$0$3;
$492 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($492 + 3 + $alen30$0205 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$17210$ph = $c$sroa$0$3;
$c$sroa$47$12209$ph = $c$sroa$47$2;
$c$sroa$81$19208$ph = $c$sroa$81$2;
} else {
$498 = $c$sroa$47$2 + 6 + ($alen30$0205 << 1) | 0;
if ($498 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$71215 = 67;
$$lcssa1610 = $491;
$c$sroa$0$3$lcssa1587 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1555 = $c$sroa$47$2;
$p$0651$lcssa1453 = $p$0651;
label = 187;
break L18;
}
$500 = __gcry_realloc($491, $498) | 0;
if (!$500) {
$507 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$507) {
$c$sroa$0$17210$ph = $c$sroa$0$3;
$c$sroa$47$12209$ph = $c$sroa$47$2;
$c$sroa$81$19208$ph = $c$sroa$81$2;
break;
} else {
$$1$i$71215 = $507;
$$lcssa1610 = $491;
$c$sroa$0$3$lcssa1587 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1555 = $c$sroa$47$2;
$p$0651$lcssa1453 = $p$0651;
label = 187;
break L18;
}
} else {
$c$sroa$0$17210$ph = $500;
$c$sroa$47$12209$ph = $498;
$c$sroa$81$19208$ph = $500 + $492 | 0;
break;
}
} while (0);
do if (!$alen30$0205) {
$c$sroa$0$19 = $c$sroa$0$17210$ph;
$c$sroa$81$21 = $c$sroa$81$19208$ph;
} else {
$513 = $c$sroa$0$17210$ph;
if (__gcry_is_secure($513) | 0) {
$c$sroa$0$19 = $c$sroa$0$17210$ph;
$c$sroa$81$21 = $c$sroa$81$19208$ph;
break;
}
if (!(__gcry_is_secure($astr29$0) | 0)) {
$c$sroa$0$19 = $c$sroa$0$17210$ph;
$c$sroa$81$21 = $c$sroa$81$19208$ph;
break;
}
$518 = __gcry_malloc_secure($c$sroa$47$12209$ph) | 0;
if (!$518) {
$c$sroa$0$17210$ph$lcssa = $c$sroa$0$17210$ph;
$c$sroa$47$12209$ph$lcssa = $c$sroa$47$12209$ph;
label = 193;
break L18;
}
$520 = $c$sroa$81$19208$ph - $c$sroa$0$17210$ph | 0;
_memcpy($518 | 0, $513 | 0, $520 | 0) | 0;
__gcry_free($c$sroa$0$17210$ph);
$c$sroa$0$19 = $518;
$c$sroa$81$21 = $518 + $520 | 0;
} while (0);
$527 = $c$sroa$81$21;
$528 = $527 + 1 | 0;
HEAP8[$527 >> 0] = 1;
$529 = $alen30$0205 & 65535;
HEAP8[$528 >> 0] = $529;
HEAP8[$528 + 1 >> 0] = $529 >> 8;
$530 = $527 + 3 | 0;
_memcpy($530 | 0, $astr29$0 | 0, $alen30$0205 | 0) | 0;
$arg_counter$9 = $arg_counter$4;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$19;
$c$sroa$47$19 = $c$sroa$47$12209$ph;
$c$sroa$81$31 = $530 + $alen30$0205 | 0;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 100:
{
if ($15) {
$538 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$539 = HEAP32[$538 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $538 + 4;
$aint$0 = $539;
$arg_counter$5 = $arg_counter$0640;
} else {
$aint$0 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 << 2) >> 2] >> 2] | 0;
$arg_counter$5 = $arg_counter$0640 + 1 | 0;
}
HEAP32[$vararg_buffer >> 2] = $aint$0;
_sprintf($nm, 22326, $vararg_buffer) | 0;
$544 = _strlen($nm) | 0;
$545 = $c$sroa$0$3;
$546 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($546 + 3 + $544 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$21230$ph = $c$sroa$0$3;
$c$sroa$47$13229$ph = $c$sroa$47$2;
$c$sroa$81$23228$ph = $c$sroa$81$2;
} else {
$552 = $c$sroa$47$2 + 6 + ($544 << 1) | 0;
if ($552 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$73235 = 67;
$c$sroa$0$3$lcssa1586 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1554 = $c$sroa$47$2;
$p$0651$lcssa1452 = $p$0651;
label = 204;
break L18;
}
$554 = __gcry_realloc($545, $552) | 0;
if (!$554) {
$561 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$561) {
$c$sroa$0$21230$ph = $c$sroa$0$3;
$c$sroa$47$13229$ph = $c$sroa$47$2;
$c$sroa$81$23228$ph = $c$sroa$81$2;
break;
} else {
$$1$i$73235 = $561;
$c$sroa$0$3$lcssa1586 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1554 = $c$sroa$47$2;
$p$0651$lcssa1452 = $p$0651;
label = 204;
break L18;
}
} else {
$c$sroa$0$21230$ph = $554;
$c$sroa$47$13229$ph = $552;
$c$sroa$81$23228$ph = $554 + $546 | 0;
break;
}
} while (0);
$563 = $c$sroa$81$23228$ph;
$564 = $563 + 1 | 0;
HEAP8[$563 >> 0] = 1;
$565 = $544 & 65535;
HEAP8[$564 >> 0] = $565;
HEAP8[$564 + 1 >> 0] = $565 >> 8;
$566 = $563 + 3 | 0;
_memcpy($566 | 0, $nm | 0, $544 | 0) | 0;
$arg_counter$9 = $arg_counter$5;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$21230$ph;
$c$sroa$47$19 = $c$sroa$47$13229$ph;
$c$sroa$81$31 = $566 + $544 | 0;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 117:
{
if ($15) {
$577 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$578 = HEAP32[$577 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $577 + 4;
$aint43$0 = $578;
$arg_counter$6 = $arg_counter$0640;
} else {
$aint43$0 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 << 2) >> 2] >> 2] | 0;
$arg_counter$6 = $arg_counter$0640 + 1 | 0;
}
HEAP32[$vararg_buffer16 >> 2] = $aint43$0;
_sprintf($nm, 22329, $vararg_buffer16) | 0;
$583 = _strlen($nm) | 0;
$584 = $c$sroa$0$3;
$585 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($585 + 3 + $583 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$22249$ph = $c$sroa$0$3;
$c$sroa$47$14248$ph = $c$sroa$47$2;
$c$sroa$81$25247$ph = $c$sroa$81$2;
} else {
$591 = $c$sroa$47$2 + 6 + ($583 << 1) | 0;
if ($591 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$75254 = 67;
$c$sroa$0$3$lcssa1585 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1553 = $c$sroa$47$2;
$p$0651$lcssa1451 = $p$0651;
label = 214;
break L18;
}
$593 = __gcry_realloc($584, $591) | 0;
if (!$593) {
$600 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$600) {
$c$sroa$0$22249$ph = $c$sroa$0$3;
$c$sroa$47$14248$ph = $c$sroa$47$2;
$c$sroa$81$25247$ph = $c$sroa$81$2;
break;
} else {
$$1$i$75254 = $600;
$c$sroa$0$3$lcssa1585 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1553 = $c$sroa$47$2;
$p$0651$lcssa1451 = $p$0651;
label = 214;
break L18;
}
} else {
$c$sroa$0$22249$ph = $593;
$c$sroa$47$14248$ph = $591;
$c$sroa$81$25247$ph = $593 + $585 | 0;
break;
}
} while (0);
$602 = $c$sroa$81$25247$ph;
$603 = $602 + 1 | 0;
HEAP8[$602 >> 0] = 1;
$604 = $583 & 65535;
HEAP8[$603 >> 0] = $604;
HEAP8[$603 + 1 >> 0] = $604 >> 8;
$605 = $602 + 3 | 0;
_memcpy($605 | 0, $nm | 0, $583 | 0) | 0;
$arg_counter$9 = $arg_counter$6;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$22249$ph;
$c$sroa$47$19 = $c$sroa$47$14248$ph;
$c$sroa$81$31 = $605 + $583 | 0;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
case 83:
{
if ($15) {
$616 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$617 = HEAP32[$616 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $616 + 4;
$arg_counter$7 = $arg_counter$0640;
$asexp$0 = $617;
} else {
$arg_counter$7 = $arg_counter$0640 + 1 | 0;
$asexp$0 = HEAP32[HEAP32[$arg_list + ($arg_counter$0640 << 2) >> 2] >> 2] | 0;
}
if (!$asexp$0) {
$arg_counter$9 = $arg_counter$7;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
}
$623 = HEAP8[$asexp$0 >> 0] | 0;
if (!($623 << 24 >> 24)) {
$arg_counter$9 = $arg_counter$7;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
}
$625 = $asexp$0;
$819 = $623;
$aoff$0 = 0;
$level$0$ph6$i = 0;
$p$0$ph5$i = $asexp$0;
while (1) {
$627 = $819;
$p$04$i = $p$0$ph5$i;
L301 : while (1) {
$626 = $p$04$i + 1 | 0;
switch ($627 << 24 >> 24) {
case 3:
{
$$lcssa1430 = $626;
$p$04$i$lcssa = $p$04$i;
label = 225;
break L301;
break;
}
case 4:
{
$$lcssa1431 = $626;
label = 227;
break L301;
break;
}
case 1:
{
$p$0$be$i = $626 + (((HEAPU8[$626 >> 0] | HEAPU8[$626 + 1 >> 0] << 8) & 65535) + 2) | 0;
break;
}
default:
$p$0$be$i = $626;
}
$627 = HEAP8[$p$0$be$i >> 0] | 0;
if (!($627 << 24 >> 24)) {
$arg_counter$9 = $arg_counter$7;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
} else $p$04$i = $p$0$be$i;
}
if ((label | 0) == 225) {
label = 0;
$639 = $$lcssa1430;
$aoff$2 = ($level$0$ph6$i | 0) == 0 ? $p$04$i$lcssa - $625 | 0 : $aoff$0;
$level$0$ph$be$i = $level$0$ph6$i + 1 | 0;
} else if ((label | 0) == 227) {
label = 0;
$641 = $level$0$ph6$i + -1 | 0;
if (!$641) {
$$lcssa1431$lcssa = $$lcssa1431;
$aoff$0$lcssa = $aoff$0;
break;
} else {
$639 = $$lcssa1431;
$aoff$2 = $aoff$0;
$level$0$ph$be$i = $641;
}
}
$819 = HEAP8[$639 >> 0] | 0;
if (!($819 << 24 >> 24)) {
$arg_counter$9 = $arg_counter$7;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
} else {
$aoff$0 = $aoff$2;
$level$0$ph6$i = $level$0$ph$be$i;
$p$0$ph5$i = $639;
}
}
$644 = $$lcssa1431$lcssa - $625 | 0;
if (($$lcssa1431$lcssa | 0) == ($asexp$0 | 0)) {
$arg_counter$9 = $arg_counter$7;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$3;
$c$sroa$47$19 = $c$sroa$47$2;
$c$sroa$81$31 = $c$sroa$81$2;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
}
$646 = $c$sroa$0$3;
$647 = $c$sroa$81$2 - $c$sroa$0$3 | 0;
do if (($647 + 3 + $644 | 0) >>> 0 < $c$sroa$47$2 >>> 0) {
$c$sroa$0$23268$ph = $c$sroa$0$3;
$c$sroa$47$15267$ph = $c$sroa$47$2;
$c$sroa$81$27266$ph = $c$sroa$81$2;
} else {
$653 = $c$sroa$47$2 + 6 + ($644 << 1) | 0;
if ($653 >>> 0 <= $c$sroa$47$2 >>> 0) {
$$1$i$79273 = 67;
$c$sroa$0$3$lcssa1584 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1552 = $c$sroa$47$2;
$p$0651$lcssa1450 = $p$0651;
label = 235;
break L18;
}
$655 = __gcry_realloc($646, $653) | 0;
if (!$655) {
$662 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$662) {
$c$sroa$0$23268$ph = $c$sroa$0$3;
$c$sroa$47$15267$ph = $c$sroa$47$2;
$c$sroa$81$27266$ph = $c$sroa$81$2;
break;
} else {
$$1$i$79273 = $662;
$c$sroa$0$3$lcssa1584 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1552 = $c$sroa$47$2;
$p$0651$lcssa1450 = $p$0651;
label = 235;
break L18;
}
} else {
$c$sroa$0$23268$ph = $655;
$c$sroa$47$15267$ph = $653;
$c$sroa$81$27266$ph = $655 + $647 | 0;
break;
}
} while (0);
$664 = $c$sroa$81$27266$ph;
_memcpy($664 | 0, $asexp$0 + $aoff$0$lcssa | 0, $644 | 0) | 0;
$arg_counter$9 = $arg_counter$7;
$base64$1 = 0;
$c$sroa$0$27 = $c$sroa$0$23268$ph;
$c$sroa$47$19 = $c$sroa$47$15267$ph;
$c$sroa$81$31 = $664 + $644 | 0;
$digptr$1 = 0;
$disphint$1 = $disphint$0644;
$hexcount$1 = $hexcount$0642;
$hexfmt$4 = 0;
$level$1 = $level$0639;
$n$3 = $n$0650;
$p$3 = $p$0651;
$percent$1 = 0;
$quoted$2 = 0;
$quoted_esc$1 = $quoted_esc$0641;
$tokenp$2 = $tokenp$1;
break L30;
break;
}
default:
{
$c$sroa$0$3$lcssa1583 = $c$sroa$0$3;
$c$sroa$47$2$lcssa1551 = $c$sroa$47$2;
$p$0651$lcssa1449 = $p$0651;
label = 236;
break L18;
}
}
} while (0);
$753 = $p$3 + 1 | 0;
$n$0650 = $n$3 + -1 | 0;
if (!$n$0650) {
$c$sroa$0$1$lcssa = $c$sroa$0$27;
$c$sroa$47$0$lcssa = $c$sroa$47$19;
$c$sroa$81$0$lcssa = $c$sroa$81$31;
$level$0$lcssa = $level$1;
$p$0$lcssa = $753;
label = 274;
break L16;
} else {
$arg_counter$0640 = $arg_counter$9;
$base64$0645 = $base64$1;
$c$sroa$0$1638 = $c$sroa$0$27;
$c$sroa$47$0637 = $c$sroa$47$19;
$c$sroa$81$0636 = $c$sroa$81$31;
$digptr$0649 = $digptr$1;
$disphint$0644 = $disphint$1;
$hexcount$0642 = $hexcount$1;
$hexfmt$0646 = $hexfmt$4;
$level$0639 = $level$1;
$p$0651 = $753;
$percent$0643 = $percent$1;
$quoted$0648 = $quoted$2;
$quoted_esc$0641 = $quoted_esc$1;
$tokenp$0647 = $tokenp$2;
}
}
switch (label | 0) {
case 18:
{
HEAP32[$dummy_erroff$erroff >> 2] = $$lcssa1544 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$1638$lcssa;
$c$sroa$47$21$ph = $c$sroa$47$0637$lcssa;
$err$31$ph = $$1$i97;
break L16;
break;
}
case 26:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1444 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1578;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1546;
$err$31$ph = 206;
break L16;
break;
}
case 33:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1443 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1577;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1545;
$err$31$ph = 206;
break L16;
break;
}
case 37:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1442 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa;
$err$31$ph = 206;
break L16;
break;
}
case 81:
{
HEAP32[$dummy_erroff$erroff >> 2] = $$lcssa1609 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1579;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1547;
$err$31$ph = $$1$i$48110;
break L16;
break;
}
case 87:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1473 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1607;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1575;
$err$31$ph = 212;
break L16;
break;
}
case 93:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1474 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1608;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1576;
$err$31$ph = $$1$i$50126;
break L16;
break;
}
case 112:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1472 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1606;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1574;
$err$31$ph = 211;
break L16;
break;
}
case 119:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1447 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1581;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1549;
$err$31$ph = 202;
break L16;
break;
}
case 125:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1448 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1582;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1550;
$err$31$ph = $$1$i$63140;
break L16;
break;
}
case 129:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1446 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1580;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1548;
$err$31$ph = 201;
break L16;
break;
}
case 142:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1456 - $buffer;
$c$sroa$0$10 = $c$sroa$0$3$lcssa1590;
$c$sroa$47$7 = $c$sroa$47$2$lcssa1558;
$err$10 = $$1$i$65154;
label = 150;
break;
}
case 147:
{
$c$sroa$0$10 = $c$sroa$0$7149$ph$lcssa;
$c$sroa$47$7 = $c$sroa$47$6148$ph$lcssa;
$err$10 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
label = 150;
break;
}
case 152:
{
__gcry_bug(22147, 1433, 22311);
break;
}
case 158:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1459 - $buffer;
$c$sroa$0$15$ph = $c$sroa$0$3$lcssa1593;
$c$sroa$47$10$ph = $c$sroa$47$2$lcssa1561;
$err$15$ph = $$1$i$67173;
break;
}
case 163:
{
$c$sroa$0$15$ph = $c$sroa$0$11168$ph$lcssa;
$c$sroa$47$10$ph = $c$sroa$47$8166$ph$lcssa;
$err$15$ph = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
break;
}
case 165:
{
__gcry_bug(22147, 1460, 22311);
break;
}
case 178:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1455 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1589;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1557;
$err$31$ph = $$1$i$69192;
break L16;
break;
}
case 187:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1453 - $buffer;
$780 = $$lcssa1610;
$c$sroa$0$29331 = $c$sroa$0$3$lcssa1587;
$c$sroa$47$21330 = $c$sroa$47$2$lcssa1555;
$err$31332 = $$1$i$71215;
break L13;
break;
}
case 193:
{
$c$sroa$0$29 = $c$sroa$0$17210$ph$lcssa;
$c$sroa$47$21 = $c$sroa$47$12209$ph$lcssa;
$err$31 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
label = 283;
break L13;
break;
}
case 204:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1452 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1586;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1554;
$err$31$ph = $$1$i$73235;
break L16;
break;
}
case 214:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1451 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1585;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1553;
$err$31$ph = $$1$i$75254;
break L16;
break;
}
case 235:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1450 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1584;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1552;
$err$31$ph = $$1$i$79273;
break L16;
break;
}
case 236:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1449 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1583;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1551;
$err$31$ph = 201;
break L16;
break;
}
case 239:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1466 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1600;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1568;
$err$31$ph = 209;
break L16;
break;
}
case 245:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1467 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1601;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1569;
$err$31$ph = $$1$i$81290;
break L16;
break;
}
case 248:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1464 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1598;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1566;
$err$31$ph = 209;
break L16;
break;
}
case 254:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1465 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1599;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1567;
$err$31$ph = $$1$i$83305;
break L16;
break;
}
case 259:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1463 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1597;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1565;
$err$31$ph = 208;
break L16;
break;
}
case 261:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1462 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1596;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1564;
$err$31$ph = 209;
break L16;
break;
}
case 264:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1471 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1605;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1573;
$err$31$ph = 207;
break L16;
break;
}
case 268:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1468 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1602;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1570;
$err$31$ph = 210;
break L16;
break;
}
case 270:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1469 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1603;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1571;
$err$31$ph = 210;
break L16;
break;
}
case 272:
{
HEAP32[$dummy_erroff$erroff >> 2] = $p$0651$lcssa1470 - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$3$lcssa1604;
$c$sroa$47$21$ph = $c$sroa$47$2$lcssa1572;
$err$31$ph = 205;
break L16;
break;
}
}
if ((label | 0) == 150) {
$c$sroa$0$15$ph = $c$sroa$0$10;
$c$sroa$47$10$ph = $c$sroa$47$7;
$err$15$ph = $err$10;
}
$c$sroa$0$29 = $c$sroa$0$15$ph;
$c$sroa$47$21 = $c$sroa$47$10$ph;
$err$31 = $err$15$ph;
label = 283;
break L13;
} while (0);
L358 : do if ((label | 0) == 274) {
$756 = $c$sroa$0$1$lcssa;
$757 = $c$sroa$81$0$lcssa - $c$sroa$0$1$lcssa | 0;
L360 : do if (($757 + 3 | 0) >>> 0 < $c$sroa$47$0$lcssa >>> 0) {
$c$sroa$0$28315$ph = $c$sroa$0$1$lcssa;
$c$sroa$47$20314$ph = $c$sroa$47$0$lcssa;
$c$sroa$81$32313$ph = $c$sroa$81$0$lcssa;
} else {
$760 = $c$sroa$47$0$lcssa + 6 | 0;
do if ($c$sroa$47$0$lcssa >>> 0 < 4294967290) {
$762 = __gcry_realloc($756, $760) | 0;
if (!$762) {
$769 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$769) {
$c$sroa$0$28315$ph = $c$sroa$0$1$lcssa;
$c$sroa$47$20314$ph = $c$sroa$47$0$lcssa;
$c$sroa$81$32313$ph = $c$sroa$81$0$lcssa;
break L360;
} else {
$$1$i$87320 = $769;
break;
}
} else {
$c$sroa$0$28315$ph = $762;
$c$sroa$47$20314$ph = $760;
$c$sroa$81$32313$ph = $762 + $757 | 0;
break L360;
}
} else $$1$i$87320 = 67; while (0);
HEAP32[$dummy_erroff$erroff >> 2] = $p$0$lcssa - $buffer;
$c$sroa$0$29$ph = $c$sroa$0$1$lcssa;
$c$sroa$47$21$ph = $c$sroa$47$0$lcssa;
$err$31$ph = $$1$i$87320;
break L358;
} while (0);
HEAP8[$c$sroa$81$32313$ph >> 0] = 0;
if (!$level$0$lcssa) {
$815 = $c$sroa$0$28315$ph;
$c$sroa$0$29853 = $c$sroa$0$28315$ph;
label = 295;
break L13;
} else {
$c$sroa$0$29$ph = $c$sroa$0$28315$ph;
$c$sroa$47$21$ph = $c$sroa$47$20314$ph;
$err$31$ph = 203;
}
} while (0);
$780 = $c$sroa$0$29$ph;
$c$sroa$0$29331 = $c$sroa$0$29$ph;
$c$sroa$47$21330 = $c$sroa$47$21$ph;
$err$31332 = $err$31$ph;
} while (0);
if ((label | 0) == 283) {
$779 = $c$sroa$0$29;
if (!$err$31) {
$815 = $779;
$c$sroa$0$29853 = $c$sroa$0$29;
label = 295;
} else {
$780 = $779;
$c$sroa$0$29331 = $c$sroa$0$29;
$c$sroa$47$21330 = $c$sroa$47$21;
$err$31332 = $err$31;
}
}
if ((label | 0) == 295) {
L375 : do if (!$c$sroa$0$29853) $$0$i$89 = 0; else {
switch (HEAP8[$815 >> 0] | 0) {
case 0:
{
__gcry_sexp_release($815);
$$0$i$89 = 0;
break L375;
break;
}
case 3:
break;
default:
{
$$0$i$89 = $815;
break L375;
}
}
if ((HEAP8[$815 + 1 >> 0] | 0) == 4) {
__gcry_sexp_release($815);
$$0$i$89 = 0;
} else $$0$i$89 = $815;
} while (0);
HEAP32[$retsexp >> 2] = $$0$i$89;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!$780) {
$$0 = $err$31332;
STACKTOP = sp;
return $$0 | 0;
}
if (__gcry_is_secure($780) | 0) {
if (($c$sroa$47$21330 | 0) != 0 & ($780 & 7 | 0) != 0) {
$_vlen$0619 = $c$sroa$47$21330;
$_vptr$0618 = $780;
while (1) {
HEAP8[$_vptr$0618 >> 0] = 0;
$789 = $_vptr$0618 + 1 | 0;
$790 = $_vlen$0619 + -1 | 0;
if (($790 | 0) != 0 & ($789 & 7 | 0) != 0) {
$_vlen$0619 = $790;
$_vptr$0618 = $789;
} else {
$_vlen$0$lcssa = $790;
$_vptr$0$lcssa = $789;
break;
}
}
} else {
$_vlen$0$lcssa = $c$sroa$47$21330;
$_vptr$0$lcssa = $780;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$797 = $_vlen$0$lcssa + -8 | 0;
$798 = $797 & -8;
$scevgep = $_vptr$0$lcssa + ($798 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$800 = $_vptr$1;
HEAP32[$800 >> 2] = 0;
HEAP32[$800 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $797 - $798 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$3617 = $_vlen$3$ph;
$_vptr$3616 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$3616 >> 0] = 0;
$_vlen$3617 = $_vlen$3617 + -1 | 0;
if (!$_vlen$3617) break; else $_vptr$3616 = $_vptr$3616 + 1 | 0;
}
}
}
__gcry_free($c$sroa$0$29331);
$$0 = $err$31332;
STACKTOP = sp;
return $$0 | 0;
}
function _do_twofish_setkey($ctx, $key, $keylen) {
$ctx = $ctx | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $$0 = 0, $$0$i$ph = 0, $$0$i1 = 0, $1000 = 0, $1001 = 0, $107 = 0, $108 = 0, $114 = 0, $1172 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $13 = 0, $131 = 0, $132 = 0, $1348 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $138 = 0, $15 = 0, $1524 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $155 = 0, $156 = 0, $162 = 0, $17 = 0, $1700 = 0, $1703 = 0, $1704 = 0, $1705 = 0, $179 = 0, $180 = 0, $186 = 0, $1876 = 0, $1879 = 0, $1880 = 0, $1881 = 0, $20 = 0, $203 = 0, $204 = 0, $2052 = 0, $2055 = 0, $2056 = 0, $2057 = 0, $210 = 0, $219 = 0, $220 = 0, $2228 = 0, $2231 = 0, $2232 = 0, $2233 = 0, $226 = 0, $2404 = 0, $2407 = 0, $2408 = 0, $2409 = 0, $243 = 0, $244 = 0, $250 = 0, $2580 = 0, $2583 = 0, $2584 = 0, $2585 = 0, $26 = 0, $267 = 0, $268 = 0, $274 = 0, $2756 = 0, $2759 = 0, $2760 = 0, $2761 = 0, $291 = 0, $292 = 0, $2932 = 0, $2935 = 0, $2936 = 0, $2937 = 0, $298 = 0, $3108 = 0, $3111 = 0, $3112 = 0, $3113 = 0, $315 = 0, $316 = 0, $322 = 0, $3284 = 0, $3287 = 0, $3288 = 0, $3289 = 0, $339 = 0, $340 = 0, $346 = 0, $3460 = 0, $3463 = 0, $3464 = 0, $3465 = 0, $35 = 0, $36 = 0, $363 = 0, $3636 = 0, $3639 = 0, $364 = 0, $3640 = 0, $3641 = 0, $370 = 0, $3812 = 0, $3815 = 0, $3816 = 0, $3817 = 0, $388 = 0, $389 = 0, $395 = 0, $3988 = 0, $3991 = 0, $3992 = 0, $3993 = 0, $404 = 0, $405 = 0, $411 = 0, $4162 = 0, $4165 = 0, $4166 = 0, $4167 = 0, $42 = 0, $428 = 0, $429 = 0, $4338 = 0, $4341 = 0, $4342 = 0, $4343 = 0, $435 = 0, $4350 = 0, $4361 = 0, $4477 = 0, $4480 = 0, $4481 = 0, $4482 = 0, $452 = 0, $453 = 0, $4573 = 0, $4576 = 0, $4577 = 0, $4578 = 0, $459 = 0, $4669 = 0, $4672 = 0, $4673 = 0, $4674 = 0, $476 = 0, $4765 = 0, $4768 = 0, $4769 = 0, $477 = 0, $4770 = 0, $483 = 0, $4861 = 0, $4864 = 0, $4865 = 0, $4866 = 0, $4957 = 0, $4960 = 0, $4961 = 0, $4962 = 0, $500 = 0, $501 = 0, $5053 = 0, $5056 = 0, $5057 = 0, $5058 = 0, $507 = 0, $5149 = 0, $5152 = 0, $5153 = 0, $5154 = 0, $524 = 0, $5245 = 0, $5248 = 0, $5249 = 0, $525 = 0, $5250 = 0, $531 = 0, $5341 = 0, $5344 = 0, $5345 = 0, $5346 = 0, $5437 = 0, $5440 = 0, $5441 = 0, $5442 = 0, $548 = 0, $549 = 0, $5533 = 0, $5536 = 0, $5537 = 0, $5538 = 0, $555 = 0, $5629 = 0, $5632 = 0, $5633 = 0, $5634 = 0, $572 = 0, $5725 = 0, $5728 = 0, $5729 = 0, $573 = 0, $5730 = 0, $579 = 0, $5821 = 0, $5824 = 0, $5825 = 0, $5826 = 0, $588 = 0, $589 = 0, $59 = 0, $5917 = 0, $5920 = 0, $5921 = 0, $5922 = 0, $595 = 0, $60 = 0, $6013 = 0, $6016 = 0, $6017 = 0, $6018 = 0, $6109 = 0, $6112 = 0, $6113 = 0, $6114 = 0, $612 = 0, $613 = 0, $619 = 0, $6203 = 0, $6206 = 0, $6207 = 0, $6208 = 0, $6299 = 0, $6302 = 0, $6303 = 0, $6304 = 0, $636 = 0, $637 = 0, $643 = 0, $66 = 0, $660 = 0, $661 = 0, $667 = 0, $684 = 0, $685 = 0, $691 = 0, $708 = 0, $709 = 0, $715 = 0, $732 = 0, $733 = 0, $739 = 0, $757 = 0, $776 = 0, $83 = 0, $84 = 0, $90 = 0, $996 = 0, $999 = 0, $ctx$i = 0, $i$02 = 0, $i$15 = 0, $j$03 = 0, $j$16 = 0, $k$04 = 0, $k$17 = 0, $sa$0 = 0, $sa$1 = 0, $sa$2 = 0, $sa$3 = 0, $sa$4 = 0, $sa$5 = 0, $sa$6 = 0, $sa$7 = 0, $sb$0 = 0, $sb$1 = 0, $sb$2 = 0, $sb$3 = 0, $sb$4 = 0, $sb$5 = 0, $sb$6 = 0, $sb$7 = 0, $sc$0 = 0, $sc$1 = 0, $sc$2 = 0, $sc$3 = 0, $sc$4 = 0, $sc$5 = 0, $sc$6 = 0, $sc$7 = 0, $scratch$i = 0, $sd$1 = 0, $sd$2 = 0, $sd$3 = 0, $sd$4 = 0, $sd$5 = 0, $sd$6 = 0, $sd$7 = 0, $se$0 = 0, $se$1 = 0, $se$2 = 0, $se$3 = 0, $se$4 = 0, $se$5 = 0, $se$6 = 0, $se$7 = 0, $sf$0 = 0, $sf$1 = 0, $sf$2 = 0, $sf$3 = 0, $sf$4 = 0, $sf$5 = 0, $sf$6 = 0, $sf$7 = 0, $sg$0 = 0, $sg$1 = 0, $sg$2 = 0, $sg$3 = 0, $sg$4 = 0, $sg$5 = 0, $sg$6 = 0, $sg$7 = 0, $sh$1 = 0, $sh$2 = 0, $sh$3 = 0, $sh$4 = 0, $sh$5 = 0, $sh$6 = 0, $sh$7 = 0, $si$0 = 0, $si$1 = 0, $si$2 = 0, $si$3 = 0, $si$4 = 0, $si$5 = 0, $si$6 = 0, $si$7 = 0, $sj$0 = 0, $sj$1 = 0, $sj$2 = 0, $sj$3 = 0, $sj$4 = 0, $sj$5 = 0, $sj$6 = 0, $sj$7 = 0, $sk$0 = 0, $sk$1 = 0, $sk$2 = 0, $sk$3 = 0, $sk$4 = 0, $sk$5 = 0, $sk$6 = 0, $sk$7 = 0, $sl$1 = 0, $sl$2 = 0, $sl$3 = 0, $sl$4 = 0, $sl$5 = 0, $sl$6 = 0, $sl$7 = 0, $sm$0 = 0, $sm$1 = 0, $sm$2 = 0, $sm$3 = 0, $sm$4 = 0, $sm$5 = 0, $sm$6 = 0, $sm$7 = 0, $sn$0 = 0, $sn$1 = 0, $sn$2 = 0, $sn$3 = 0, $sn$4 = 0, $sn$5 = 0, $sn$6 = 0, $sn$7 = 0, $so$0 = 0, $so$1 = 0, $so$2 = 0, $so$3 = 0, $so$4 = 0, $so$5 = 0, $so$6 = 0, $so$7 = 0, $sp$1 = 0, $sp$2 = 0, $sp$3 = 0, $sp$4 = 0, $sp$5 = 0, $sp$6 = 0, $sp$7 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 4288 | 0;
$vararg_buffer = sp;
$ctx$i = sp + 8 | 0;
$scratch$i = sp + 4264 | 0;
if (($keylen + -16 | 16 | 0) != 16) {
$$0 = 44;
STACKTOP = sp;
return $$0 | 0;
}
do if (!(HEAP32[17515] | 0)) {
HEAP32[17515] = 1;
_do_twofish_setkey($ctx$i, 42872, 16) | 0;
___gcry_burn_stack(47);
_twofish_encrypt($ctx$i, $scratch$i, 42888) | 0;
if (!(_memcmp($scratch$i, 42904, 16) | 0)) {
_twofish_decrypt($ctx$i, $scratch$i, $scratch$i) | 0;
if (!(_memcmp($scratch$i, 42888, 16) | 0)) {
_do_twofish_setkey($ctx$i, 42920, 32) | 0;
___gcry_burn_stack(47);
_twofish_encrypt($ctx$i, $scratch$i, 42952) | 0;
if (!(_memcmp($scratch$i, 42968, 16) | 0)) {
_twofish_decrypt($ctx$i, $scratch$i, $scratch$i) | 0;
if (!(_memcmp($scratch$i, 42952, 16) | 0)) {
$13 = __gcry_selftest_helper_ctr(42853, 13, 14, 8, 4, 16, 4256) | 0;
if (!$13) {
$15 = __gcry_selftest_helper_cbc(42853, 13, 14, 6, 5, 16, 4256) | 0;
if (!$15) {
$17 = __gcry_selftest_helper_cfb(42853, 13, 14, 7, 5, 16, 4256) | 0;
HEAP32[17516] = $17;
if (!$17) break; else $$0$i1 = $17;
} else {
$$0$i$ph = $15;
label = 9;
}
} else {
$$0$i$ph = $13;
label = 9;
}
} else {
$$0$i$ph = 42984;
label = 9;
}
} else {
$$0$i$ph = 43020;
label = 9;
}
} else {
$$0$i$ph = 43056;
label = 9;
}
} else {
$$0$i$ph = 43092;
label = 9;
}
if ((label | 0) == 9) {
HEAP32[17516] = $$0$i$ph;
$$0$i1 = $$0$i$ph;
}
HEAP32[$vararg_buffer >> 2] = $$0$i1;
__gcry_log_error(43128, $vararg_buffer);
label = 12;
} else label = 12; while (0);
if ((label | 0) == 12) if (HEAP32[17516] | 0) {
$$0 = 50;
STACKTOP = sp;
return $$0 | 0;
}
$20 = HEAP8[$key >> 0] | 0;
if (!($20 << 24 >> 24)) {
$sa$0 = 0;
$sb$0 = 0;
$sc$0 = 0;
} else {
$26 = HEAPU8[43132 + (($20 & 255) + -1) >> 0] | 0;
$sa$0 = HEAP8[43387 + $26 >> 0] | 0;
$sb$0 = HEAP8[43387 + ($26 + 45) >> 0] | 0;
$sc$0 = HEAP8[43387 + ($26 + 1) >> 0] | 0;
}
$35 = $key + 1 | 0;
$36 = HEAP8[$35 >> 0] | 0;
if (!($36 << 24 >> 24)) {
$sa$1 = $sa$0;
$sb$1 = $sb$0;
$sc$1 = $sc$0;
$sd$1 = $sb$0;
} else {
$42 = HEAPU8[43132 + (($36 & 255) + -1) >> 0] | 0;
$sa$1 = HEAP8[43387 + ($42 + 45) >> 0] ^ $sa$0;
$sb$1 = HEAP8[43387 + ($42 + 164) >> 0] ^ $sb$0;
$sc$1 = HEAP8[43387 + ($42 + 68) >> 0] ^ $sc$0;
$sd$1 = HEAP8[43387 + ($42 + 138) >> 0] ^ $sb$0;
}
$59 = $key + 2 | 0;
$60 = HEAP8[$59 >> 0] | 0;
if (!($60 << 24 >> 24)) {
$sa$2 = $sa$1;
$sb$2 = $sb$1;
$sc$2 = $sc$1;
$sd$2 = $sd$1;
} else {
$66 = HEAPU8[43132 + (($60 & 255) + -1) >> 0] | 0;
$sa$2 = HEAP8[43387 + ($66 + 138) >> 0] ^ $sa$1;
$sb$2 = HEAP8[43387 + ($66 + 213) >> 0] ^ $sb$1;
$sc$2 = HEAP8[43387 + ($66 + 191) >> 0] ^ $sc$1;
$sd$2 = HEAP8[43387 + ($66 + 209) >> 0] ^ $sd$1;
}
$83 = $key + 3 | 0;
$84 = HEAP8[$83 >> 0] | 0;
if (!($84 << 24 >> 24)) {
$sa$3 = $sa$2;
$sb$3 = $sb$2;
$sc$3 = $sc$2;
$sd$3 = $sd$2;
} else {
$90 = HEAPU8[43132 + (($84 & 255) + -1) >> 0] | 0;
$sa$3 = HEAP8[43387 + ($90 + 209) >> 0] ^ $sa$2;
$sb$3 = HEAP8[43387 + ($90 + 127) >> 0] ^ $sb$2;
$sc$3 = HEAP8[43387 + ($90 + 61) >> 0] ^ $sc$2;
$sd$3 = HEAP8[43387 + ($90 + 153) >> 0] ^ $sd$2;
}
$107 = $key + 4 | 0;
$108 = HEAP8[$107 >> 0] | 0;
if (!($108 << 24 >> 24)) {
$sa$4 = $sa$3;
$sb$4 = $sb$3;
$sc$4 = $sc$3;
$sd$4 = $sd$3;
} else {
$114 = HEAPU8[43132 + (($108 & 255) + -1) >> 0] | 0;
$sa$4 = HEAP8[43387 + ($114 + 153) >> 0] ^ $sa$3;
$sb$4 = HEAP8[43387 + ($114 + 70) >> 0] ^ $sb$3;
$sc$4 = HEAP8[43387 + ($114 + 102) >> 0] ^ $sc$3;
$sd$4 = HEAP8[43387 + ($114 + 150) >> 0] ^ $sd$3;
}
$131 = $key + 5 | 0;
$132 = HEAP8[$131 >> 0] | 0;
if (!($132 << 24 >> 24)) {
$sa$5 = $sa$4;
$sb$5 = $sb$4;
$sc$5 = $sc$4;
$sd$5 = $sd$4;
} else {
$138 = HEAPU8[43132 + (($132 & 255) + -1) >> 0] | 0;
$sa$5 = HEAP8[43387 + ($138 + 150) >> 0] ^ $sa$4;
$sb$5 = HEAP8[43387 + ($138 + 60) >> 0] ^ $sb$4;
$sc$5 = HEAP8[43387 + ($138 + 91) >> 0] ^ $sc$4;
$sd$5 = HEAP8[43387 + ($138 + 237) >> 0] ^ $sd$4;
}
$155 = $key + 6 | 0;
$156 = HEAP8[$155 >> 0] | 0;
if (!($156 << 24 >> 24)) {
$sa$6 = $sa$5;
$sb$6 = $sb$5;
$sc$6 = $sc$5;
$sd$6 = $sd$5;
} else {
$162 = HEAPU8[43132 + (($156 & 255) + -1) >> 0] | 0;
$sa$6 = HEAP8[43387 + ($162 + 237) >> 0] ^ $sa$5;
$sb$6 = HEAP8[43387 + ($162 + 55) >> 0] ^ $sb$5;
$sc$6 = HEAP8[43387 + ($162 + 79) >> 0] ^ $sc$5;
$sd$6 = HEAP8[43387 + ($162 + 224) >> 0] ^ $sd$5;
}
$179 = $key + 7 | 0;
$180 = HEAP8[$179 >> 0] | 0;
if (!($180 << 24 >> 24)) {
$sa$7 = $sa$6;
$sb$7 = $sb$6;
$sc$7 = $sc$6;
$sd$7 = $sd$6;
} else {
$186 = HEAPU8[43132 + (($180 & 255) + -1) >> 0] | 0;
$sa$7 = HEAP8[43387 + ($186 + 224) >> 0] ^ $sa$6;
$sb$7 = HEAP8[43387 + ($186 + 208) >> 0] ^ $sb$6;
$sc$7 = HEAP8[43387 + ($186 + 140) >> 0] ^ $sc$6;
$sd$7 = HEAP8[43387 + ($186 + 23) >> 0] ^ $sd$6;
}
$203 = $key + 8 | 0;
$204 = HEAP8[$203 >> 0] | 0;
if (!($204 << 24 >> 24)) {
$se$0 = 0;
$sf$0 = 0;
$sg$0 = 0;
} else {
$210 = HEAPU8[43132 + (($204 & 255) + -1) >> 0] | 0;
$se$0 = HEAP8[43387 + $210 >> 0] | 0;
$sf$0 = HEAP8[43387 + ($210 + 45) >> 0] | 0;
$sg$0 = HEAP8[43387 + ($210 + 1) >> 0] | 0;
}
$219 = $key + 9 | 0;
$220 = HEAP8[$219 >> 0] | 0;
if (!($220 << 24 >> 24)) {
$se$1 = $se$0;
$sf$1 = $sf$0;
$sg$1 = $sg$0;
$sh$1 = $sf$0;
} else {
$226 = HEAPU8[43132 + (($220 & 255) + -1) >> 0] | 0;
$se$1 = HEAP8[43387 + ($226 + 45) >> 0] ^ $se$0;
$sf$1 = HEAP8[43387 + ($226 + 164) >> 0] ^ $sf$0;
$sg$1 = HEAP8[43387 + ($226 + 68) >> 0] ^ $sg$0;
$sh$1 = HEAP8[43387 + ($226 + 138) >> 0] ^ $sf$0;
}
$243 = $key + 10 | 0;
$244 = HEAP8[$243 >> 0] | 0;
if (!($244 << 24 >> 24)) {
$se$2 = $se$1;
$sf$2 = $sf$1;
$sg$2 = $sg$1;
$sh$2 = $sh$1;
} else {
$250 = HEAPU8[43132 + (($244 & 255) + -1) >> 0] | 0;
$se$2 = HEAP8[43387 + ($250 + 138) >> 0] ^ $se$1;
$sf$2 = HEAP8[43387 + ($250 + 213) >> 0] ^ $sf$1;
$sg$2 = HEAP8[43387 + ($250 + 191) >> 0] ^ $sg$1;
$sh$2 = HEAP8[43387 + ($250 + 209) >> 0] ^ $sh$1;
}
$267 = $key + 11 | 0;
$268 = HEAP8[$267 >> 0] | 0;
if (!($268 << 24 >> 24)) {
$se$3 = $se$2;
$sf$3 = $sf$2;
$sg$3 = $sg$2;
$sh$3 = $sh$2;
} else {
$274 = HEAPU8[43132 + (($268 & 255) + -1) >> 0] | 0;
$se$3 = HEAP8[43387 + ($274 + 209) >> 0] ^ $se$2;
$sf$3 = HEAP8[43387 + ($274 + 127) >> 0] ^ $sf$2;
$sg$3 = HEAP8[43387 + ($274 + 61) >> 0] ^ $sg$2;
$sh$3 = HEAP8[43387 + ($274 + 153) >> 0] ^ $sh$2;
}
$291 = $key + 12 | 0;
$292 = HEAP8[$291 >> 0] | 0;
if (!($292 << 24 >> 24)) {
$se$4 = $se$3;
$sf$4 = $sf$3;
$sg$4 = $sg$3;
$sh$4 = $sh$3;
} else {
$298 = HEAPU8[43132 + (($292 & 255) + -1) >> 0] | 0;
$se$4 = HEAP8[43387 + ($298 + 153) >> 0] ^ $se$3;
$sf$4 = HEAP8[43387 + ($298 + 70) >> 0] ^ $sf$3;
$sg$4 = HEAP8[43387 + ($298 + 102) >> 0] ^ $sg$3;
$sh$4 = HEAP8[43387 + ($298 + 150) >> 0] ^ $sh$3;
}
$315 = $key + 13 | 0;
$316 = HEAP8[$315 >> 0] | 0;
if (!($316 << 24 >> 24)) {
$se$5 = $se$4;
$sf$5 = $sf$4;
$sg$5 = $sg$4;
$sh$5 = $sh$4;
} else {
$322 = HEAPU8[43132 + (($316 & 255) + -1) >> 0] | 0;
$se$5 = HEAP8[43387 + ($322 + 150) >> 0] ^ $se$4;
$sf$5 = HEAP8[43387 + ($322 + 60) >> 0] ^ $sf$4;
$sg$5 = HEAP8[43387 + ($322 + 91) >> 0] ^ $sg$4;
$sh$5 = HEAP8[43387 + ($322 + 237) >> 0] ^ $sh$4;
}
$339 = $key + 14 | 0;
$340 = HEAP8[$339 >> 0] | 0;
if (!($340 << 24 >> 24)) {
$se$6 = $se$5;
$sf$6 = $sf$5;
$sg$6 = $sg$5;
$sh$6 = $sh$5;
} else {
$346 = HEAPU8[43132 + (($340 & 255) + -1) >> 0] | 0;
$se$6 = HEAP8[43387 + ($346 + 237) >> 0] ^ $se$5;
$sf$6 = HEAP8[43387 + ($346 + 55) >> 0] ^ $sf$5;
$sg$6 = HEAP8[43387 + ($346 + 79) >> 0] ^ $sg$5;
$sh$6 = HEAP8[43387 + ($346 + 224) >> 0] ^ $sh$5;
}
$363 = $key + 15 | 0;
$364 = HEAP8[$363 >> 0] | 0;
if (!($364 << 24 >> 24)) {
$se$7 = $se$6;
$sf$7 = $sf$6;
$sg$7 = $sg$6;
$sh$7 = $sh$6;
} else {
$370 = HEAPU8[43132 + (($364 & 255) + -1) >> 0] | 0;
$se$7 = HEAP8[43387 + ($370 + 224) >> 0] ^ $se$6;
$sf$7 = HEAP8[43387 + ($370 + 208) >> 0] ^ $sf$6;
$sg$7 = HEAP8[43387 + ($370 + 140) >> 0] ^ $sg$6;
$sh$7 = HEAP8[43387 + ($370 + 23) >> 0] ^ $sh$6;
}
if (($keylen | 0) != 32) {
$i$15 = 0;
$j$16 = 0;
$k$17 = 1;
while (1) {
$4350 = HEAP8[43879 + $j$16 >> 0] | 0;
HEAP32[$ctx + ($i$15 << 2) >> 2] = HEAP32[8e3 + (((HEAP8[44647 + (($4350 ^ $sa$7) & 255) >> 0] ^ $se$7) & 255) << 2) >> 2];
$4361 = HEAP8[43879 + $k$17 >> 0] | 0;
HEAP32[$ctx + 1024 + ($i$15 << 2) >> 2] = HEAP32[9024 + (((HEAP8[44647 + (($4361 ^ $sb$7) & 255) >> 0] ^ $sf$7) & 255) << 2) >> 2];
HEAP32[$ctx + 2048 + ($i$15 << 2) >> 2] = HEAP32[10048 + (((HEAP8[44391 + (($4350 ^ $sc$7) & 255) >> 0] ^ $sg$7) & 255) << 2) >> 2];
HEAP32[$ctx + 3072 + ($i$15 << 2) >> 2] = HEAP32[11072 + (((HEAP8[44391 + (($4361 ^ $sd$7) & 255) >> 0] ^ $sh$7) & 255) << 2) >> 2];
$i$15 = $i$15 + 1 | 0;
if (($i$15 | 0) == 256) break; else {
$j$16 = $j$16 + 2 | 0;
$k$17 = $k$17 + 2 | 0;
}
}
$4477 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 243) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 103) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 103) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 243) >> 0]) & 255) << 2) >> 2];
$4480 = $4477 << 8 | $4477 >>> 24;
$4481 = $4480 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 117) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 169) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 169) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 117) >> 0]) & 255) << 2) >> 2]) | 0;
$4482 = $4481 + $4480 | 0;
HEAP32[$ctx + 4096 >> 2] = $4481;
HEAP32[$ctx + 4100 >> 2] = $4482 << 9 | $4482 >>> 23;
$4573 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 244) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 232) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 232) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 244) >> 0]) & 255) << 2) >> 2];
$4576 = $4573 << 8 | $4573 >>> 24;
$4577 = $4576 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 198) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 179) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 179) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 198) >> 0]) & 255) << 2) >> 2]) | 0;
$4578 = $4577 + $4576 | 0;
HEAP32[$ctx + 4104 >> 2] = $4577;
HEAP32[$ctx + 4108 >> 2] = $4578 << 9 | $4578 >>> 23;
$4669 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 123) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 253) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 253) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 123) >> 0]) & 255) << 2) >> 2];
$4672 = $4669 << 8 | $4669 >>> 24;
$4673 = $4672 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 219) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 4) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 4) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 219) >> 0]) & 255) << 2) >> 2]) | 0;
$4674 = $4673 + $4672 | 0;
HEAP32[$ctx + 4112 >> 2] = $4673;
HEAP32[$ctx + 4116 >> 2] = $4674 << 9 | $4674 >>> 23;
$4765 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 200) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 118) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 118) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 200) >> 0]) & 255) << 2) >> 2];
$4768 = $4765 << 8 | $4765 >>> 24;
$4769 = $4768 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 251) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 163) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 163) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 251) >> 0]) & 255) << 2) >> 2]) | 0;
$4770 = $4769 + $4768 | 0;
HEAP32[$ctx + 4120 >> 2] = $4769;
HEAP32[$ctx + 4124 >> 2] = $4770 << 9 | $4770 >>> 23;
$4861 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 211) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 146) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 146) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 211) >> 0]) & 255) << 2) >> 2];
$4864 = $4861 << 8 | $4861 >>> 24;
$4865 = $4864 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 74) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 154) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 154) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 74) >> 0]) & 255) << 2) >> 2]) | 0;
$4866 = $4865 + $4864 | 0;
HEAP32[$ctx + 4128 >> 2] = $4865;
HEAP32[$ctx + 4132 >> 2] = $4866 << 9 | $4866 >>> 23;
$4957 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 107) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 120) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 120) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 107) >> 0]) & 255) << 2) >> 2];
$4960 = $4957 << 8 | $4957 >>> 24;
$4961 = $4960 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 230) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 128) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 128) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 230) >> 0]) & 255) << 2) >> 2]) | 0;
$4962 = $4961 + $4960 | 0;
HEAP32[$ctx + 4136 >> 2] = $4961;
HEAP32[$ctx + 4140 >> 2] = $4962 << 9 | $4962 >>> 23;
$5053 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 125) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 221) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 221) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 125) >> 0]) & 255) << 2) >> 2];
$5056 = $5053 << 8 | $5053 >>> 24;
$5057 = $5056 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 69) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 228) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 228) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 69) >> 0]) & 255) << 2) >> 2]) | 0;
$5058 = $5057 + $5056 | 0;
HEAP32[$ctx + 4144 >> 2] = $5057;
HEAP32[$ctx + 4148 >> 2] = $5058 << 9 | $5058 >>> 23;
$5149 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 75) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 56) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 56) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 75) >> 0]) & 255) << 2) >> 2];
$5152 = $5149 << 8 | $5149 >>> 24;
$5153 = $5152 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 232) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 209) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 209) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 232) >> 0]) & 255) << 2) >> 2]) | 0;
$5154 = $5153 + $5152 | 0;
HEAP32[$ctx + 4152 >> 2] = $5153;
HEAP32[$ctx + 4156 >> 2] = $5154 << 9 | $5154 >>> 23;
$5245 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 50) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 198) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 198) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 50) >> 0]) & 255) << 2) >> 2];
$5248 = $5245 << 8 | $5245 >>> 24;
$5249 = $5248 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 214) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 13) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 13) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 214) >> 0]) & 255) << 2) >> 2]) | 0;
$5250 = $5249 + $5248 | 0;
HEAP32[$ctx + 4160 >> 2] = $5249;
HEAP32[$ctx + 4164 >> 2] = $5250 << 9 | $5250 >>> 23;
$5341 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 253) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 152) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 152) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 253) >> 0]) & 255) << 2) >> 2];
$5344 = $5341 << 8 | $5341 >>> 24;
$5345 = $5344 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 216) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 53) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 53) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 216) >> 0]) & 255) << 2) >> 2]) | 0;
$5346 = $5345 + $5344 | 0;
HEAP32[$ctx + 4168 >> 2] = $5345;
HEAP32[$ctx + 4172 >> 2] = $5346 << 9 | $5346 >>> 23;
$5437 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 113) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 247) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 247) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 113) >> 0]) & 255) << 2) >> 2];
$5440 = $5437 << 8 | $5437 >>> 24;
$5441 = $5440 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 55) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 24) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 24) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 55) >> 0]) & 255) << 2) >> 2]) | 0;
$5442 = $5441 + $5440 | 0;
HEAP32[$ctx + 4176 >> 2] = $5441;
HEAP32[$ctx + 4180 >> 2] = $5442 << 9 | $5442 >>> 23;
$5533 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 225) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 108) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 108) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 225) >> 0]) & 255) << 2) >> 2];
$5536 = $5533 << 8 | $5533 >>> 24;
$5537 = $5536 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 241) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 236) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 236) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 241) >> 0]) & 255) << 2) >> 2]) | 0;
$5538 = $5537 + $5536 | 0;
HEAP32[$ctx + 4184 >> 2] = $5537;
HEAP32[$ctx + 4188 >> 2] = $5538 << 9 | $5538 >>> 23;
$5629 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 15) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 117) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 117) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 15) >> 0]) & 255) << 2) >> 2];
$5632 = $5629 << 8 | $5629 >>> 24;
$5633 = $5632 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 48) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 67) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 67) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 48) >> 0]) & 255) << 2) >> 2]) | 0;
$5634 = $5633 + $5632 | 0;
HEAP32[$ctx + 4192 >> 2] = $5633;
HEAP32[$ctx + 4196 >> 2] = $5634 << 9 | $5634 >>> 23;
$5725 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 27) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 38) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 38) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 27) >> 0]) & 255) << 2) >> 2];
$5728 = $5725 << 8 | $5725 >>> 24;
$5729 = $5728 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 248) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 55) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 55) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 248) >> 0]) & 255) << 2) >> 2]) | 0;
$5730 = $5729 + $5728 | 0;
HEAP32[$ctx + 4200 >> 2] = $5729;
HEAP32[$ctx + 4204 >> 2] = $5730 << 9 | $5730 >>> 23;
$5821 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 250) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 19) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 19) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 250) >> 0]) & 255) << 2) >> 2];
$5824 = $5821 << 8 | $5821 >>> 24;
$5825 = $5824 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 135) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 250) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 250) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 135) >> 0]) & 255) << 2) >> 2]) | 0;
$5826 = $5825 + $5824 | 0;
HEAP32[$ctx + 4208 >> 2] = $5825;
HEAP32[$ctx + 4212 >> 2] = $5826 << 9 | $5826 >>> 23;
$5917 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 63) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 72) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 72) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 63) >> 0]) & 255) << 2) >> 2];
$5920 = $5917 << 8 | $5917 >>> 24;
$5921 = $5920 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 6) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 148) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 148) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 6) >> 0]) & 255) << 2) >> 2]) | 0;
$5922 = $5921 + $5920 | 0;
HEAP32[$ctx + 4216 >> 2] = $5921;
HEAP32[$ctx + 4220 >> 2] = $5922 << 9 | $5922 >>> 23;
$6013 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 186) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 208) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 208) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 186) >> 0]) & 255) << 2) >> 2];
$6016 = $6013 << 8 | $6013 >>> 24;
$6017 = $6016 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 94) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 242) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 242) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 94) >> 0]) & 255) << 2) >> 2]) | 0;
$6018 = $6017 + $6016 | 0;
HEAP32[$ctx + 4224 >> 2] = $6017;
HEAP32[$ctx + 4228 >> 2] = $6018 << 9 | $6018 >>> 23;
$6109 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 91) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 48) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 48) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 91) >> 0]) & 255) << 2) >> 2];
$6112 = $6109 << 8 | $6109 >>> 24;
$6113 = $6112 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 174) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 139) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 139) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 174) >> 0]) & 255) << 2) >> 2]) | 0;
$6114 = $6113 + $6112 | 0;
HEAP32[$ctx + 4232 >> 2] = $6113;
HEAP32[$ctx + 4236 >> 2] = $6114 << 9 | $6114 >>> 23;
$6203 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + (HEAPU8[$315 >> 0] | 0) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 84) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 84) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + (HEAPU8[$363 >> 0] | 0) >> 0]) & 255) << 2) >> 2];
$6206 = $6203 << 8 | $6203 >>> 24;
$6207 = $6206 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 138) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 132) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 132) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 138) >> 0]) & 255) << 2) >> 2]) | 0;
$6208 = $6207 + $6206 | 0;
HEAP32[$ctx + 4240 >> 2] = $6207;
HEAP32[$ctx + 4244 >> 2] = $6208 << 9 | $6208 >>> 23;
$6299 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAPU8[$315 >> 0] | 0) ^ 157) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAPU8[$291 >> 0] | 0) ^ 35) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAPU8[$339 >> 0] | 0) ^ 35) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAPU8[$363 >> 0] | 0) ^ 157) >> 0]) & 255) << 2) >> 2];
$6302 = $6299 << 8 | $6299 >>> 24;
$6303 = $6302 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAPU8[$219 >> 0] | 0) ^ 188) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAPU8[$203 >> 0] | 0) ^ 223) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAPU8[$243 >> 0] | 0) ^ 223) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAPU8[$267 >> 0] | 0) ^ 188) >> 0]) & 255) << 2) >> 2]) | 0;
$6304 = $6303 + $6302 | 0;
HEAP32[$ctx + 4248 >> 2] = $6303;
HEAP32[$ctx + 4252 >> 2] = $6304 << 9 | $6304 >>> 23;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$388 = $key + 16 | 0;
$389 = HEAP8[$388 >> 0] | 0;
if (!($389 << 24 >> 24)) {
$si$0 = 0;
$sj$0 = 0;
$sk$0 = 0;
} else {
$395 = HEAPU8[43132 + (($389 & 255) + -1) >> 0] | 0;
$si$0 = HEAP8[43387 + $395 >> 0] | 0;
$sj$0 = HEAP8[43387 + ($395 + 45) >> 0] | 0;
$sk$0 = HEAP8[43387 + ($395 + 1) >> 0] | 0;
}
$404 = $key + 17 | 0;
$405 = HEAP8[$404 >> 0] | 0;
if (!($405 << 24 >> 24)) {
$si$1 = $si$0;
$sj$1 = $sj$0;
$sk$1 = $sk$0;
$sl$1 = $sj$0;
} else {
$411 = HEAPU8[43132 + (($405 & 255) + -1) >> 0] | 0;
$si$1 = HEAP8[43387 + ($411 + 45) >> 0] ^ $si$0;
$sj$1 = HEAP8[43387 + ($411 + 164) >> 0] ^ $sj$0;
$sk$1 = HEAP8[43387 + ($411 + 68) >> 0] ^ $sk$0;
$sl$1 = HEAP8[43387 + ($411 + 138) >> 0] ^ $sj$0;
}
$428 = $key + 18 | 0;
$429 = HEAP8[$428 >> 0] | 0;
if (!($429 << 24 >> 24)) {
$si$2 = $si$1;
$sj$2 = $sj$1;
$sk$2 = $sk$1;
$sl$2 = $sl$1;
} else {
$435 = HEAPU8[43132 + (($429 & 255) + -1) >> 0] | 0;
$si$2 = HEAP8[43387 + ($435 + 138) >> 0] ^ $si$1;
$sj$2 = HEAP8[43387 + ($435 + 213) >> 0] ^ $sj$1;
$sk$2 = HEAP8[43387 + ($435 + 191) >> 0] ^ $sk$1;
$sl$2 = HEAP8[43387 + ($435 + 209) >> 0] ^ $sl$1;
}
$452 = $key + 19 | 0;
$453 = HEAP8[$452 >> 0] | 0;
if (!($453 << 24 >> 24)) {
$si$3 = $si$2;
$sj$3 = $sj$2;
$sk$3 = $sk$2;
$sl$3 = $sl$2;
} else {
$459 = HEAPU8[43132 + (($453 & 255) + -1) >> 0] | 0;
$si$3 = HEAP8[43387 + ($459 + 209) >> 0] ^ $si$2;
$sj$3 = HEAP8[43387 + ($459 + 127) >> 0] ^ $sj$2;
$sk$3 = HEAP8[43387 + ($459 + 61) >> 0] ^ $sk$2;
$sl$3 = HEAP8[43387 + ($459 + 153) >> 0] ^ $sl$2;
}
$476 = $key + 20 | 0;
$477 = HEAP8[$476 >> 0] | 0;
if (!($477 << 24 >> 24)) {
$si$4 = $si$3;
$sj$4 = $sj$3;
$sk$4 = $sk$3;
$sl$4 = $sl$3;
} else {
$483 = HEAPU8[43132 + (($477 & 255) + -1) >> 0] | 0;
$si$4 = HEAP8[43387 + ($483 + 153) >> 0] ^ $si$3;
$sj$4 = HEAP8[43387 + ($483 + 70) >> 0] ^ $sj$3;
$sk$4 = HEAP8[43387 + ($483 + 102) >> 0] ^ $sk$3;
$sl$4 = HEAP8[43387 + ($483 + 150) >> 0] ^ $sl$3;
}
$500 = $key + 21 | 0;
$501 = HEAP8[$500 >> 0] | 0;
if (!($501 << 24 >> 24)) {
$si$5 = $si$4;
$sj$5 = $sj$4;
$sk$5 = $sk$4;
$sl$5 = $sl$4;
} else {
$507 = HEAPU8[43132 + (($501 & 255) + -1) >> 0] | 0;
$si$5 = HEAP8[43387 + ($507 + 150) >> 0] ^ $si$4;
$sj$5 = HEAP8[43387 + ($507 + 60) >> 0] ^ $sj$4;
$sk$5 = HEAP8[43387 + ($507 + 91) >> 0] ^ $sk$4;
$sl$5 = HEAP8[43387 + ($507 + 237) >> 0] ^ $sl$4;
}
$524 = $key + 22 | 0;
$525 = HEAP8[$524 >> 0] | 0;
if (!($525 << 24 >> 24)) {
$si$6 = $si$5;
$sj$6 = $sj$5;
$sk$6 = $sk$5;
$sl$6 = $sl$5;
} else {
$531 = HEAPU8[43132 + (($525 & 255) + -1) >> 0] | 0;
$si$6 = HEAP8[43387 + ($531 + 237) >> 0] ^ $si$5;
$sj$6 = HEAP8[43387 + ($531 + 55) >> 0] ^ $sj$5;
$sk$6 = HEAP8[43387 + ($531 + 79) >> 0] ^ $sk$5;
$sl$6 = HEAP8[43387 + ($531 + 224) >> 0] ^ $sl$5;
}
$548 = $key + 23 | 0;
$549 = HEAP8[$548 >> 0] | 0;
if (!($549 << 24 >> 24)) {
$si$7 = $si$6;
$sj$7 = $sj$6;
$sk$7 = $sk$6;
$sl$7 = $sl$6;
} else {
$555 = HEAPU8[43132 + (($549 & 255) + -1) >> 0] | 0;
$si$7 = HEAP8[43387 + ($555 + 224) >> 0] ^ $si$6;
$sj$7 = HEAP8[43387 + ($555 + 208) >> 0] ^ $sj$6;
$sk$7 = HEAP8[43387 + ($555 + 140) >> 0] ^ $sk$6;
$sl$7 = HEAP8[43387 + ($555 + 23) >> 0] ^ $sl$6;
}
$572 = $key + 24 | 0;
$573 = HEAP8[$572 >> 0] | 0;
if (!($573 << 24 >> 24)) {
$sm$0 = 0;
$sn$0 = 0;
$so$0 = 0;
} else {
$579 = HEAPU8[43132 + (($573 & 255) + -1) >> 0] | 0;
$sm$0 = HEAP8[43387 + $579 >> 0] | 0;
$sn$0 = HEAP8[43387 + ($579 + 45) >> 0] | 0;
$so$0 = HEAP8[43387 + ($579 + 1) >> 0] | 0;
}
$588 = $key + 25 | 0;
$589 = HEAP8[$588 >> 0] | 0;
if (!($589 << 24 >> 24)) {
$sm$1 = $sm$0;
$sn$1 = $sn$0;
$so$1 = $so$0;
$sp$1 = $sn$0;
} else {
$595 = HEAPU8[43132 + (($589 & 255) + -1) >> 0] | 0;
$sm$1 = HEAP8[43387 + ($595 + 45) >> 0] ^ $sm$0;
$sn$1 = HEAP8[43387 + ($595 + 164) >> 0] ^ $sn$0;
$so$1 = HEAP8[43387 + ($595 + 68) >> 0] ^ $so$0;
$sp$1 = HEAP8[43387 + ($595 + 138) >> 0] ^ $sn$0;
}
$612 = $key + 26 | 0;
$613 = HEAP8[$612 >> 0] | 0;
if (!($613 << 24 >> 24)) {
$sm$2 = $sm$1;
$sn$2 = $sn$1;
$so$2 = $so$1;
$sp$2 = $sp$1;
} else {
$619 = HEAPU8[43132 + (($613 & 255) + -1) >> 0] | 0;
$sm$2 = HEAP8[43387 + ($619 + 138) >> 0] ^ $sm$1;
$sn$2 = HEAP8[43387 + ($619 + 213) >> 0] ^ $sn$1;
$so$2 = HEAP8[43387 + ($619 + 191) >> 0] ^ $so$1;
$sp$2 = HEAP8[43387 + ($619 + 209) >> 0] ^ $sp$1;
}
$636 = $key + 27 | 0;
$637 = HEAP8[$636 >> 0] | 0;
if (!($637 << 24 >> 24)) {
$sm$3 = $sm$2;
$sn$3 = $sn$2;
$so$3 = $so$2;
$sp$3 = $sp$2;
} else {
$643 = HEAPU8[43132 + (($637 & 255) + -1) >> 0] | 0;
$sm$3 = HEAP8[43387 + ($643 + 209) >> 0] ^ $sm$2;
$sn$3 = HEAP8[43387 + ($643 + 127) >> 0] ^ $sn$2;
$so$3 = HEAP8[43387 + ($643 + 61) >> 0] ^ $so$2;
$sp$3 = HEAP8[43387 + ($643 + 153) >> 0] ^ $sp$2;
}
$660 = $key + 28 | 0;
$661 = HEAP8[$660 >> 0] | 0;
if (!($661 << 24 >> 24)) {
$sm$4 = $sm$3;
$sn$4 = $sn$3;
$so$4 = $so$3;
$sp$4 = $sp$3;
} else {
$667 = HEAPU8[43132 + (($661 & 255) + -1) >> 0] | 0;
$sm$4 = HEAP8[43387 + ($667 + 153) >> 0] ^ $sm$3;
$sn$4 = HEAP8[43387 + ($667 + 70) >> 0] ^ $sn$3;
$so$4 = HEAP8[43387 + ($667 + 102) >> 0] ^ $so$3;
$sp$4 = HEAP8[43387 + ($667 + 150) >> 0] ^ $sp$3;
}
$684 = $key + 29 | 0;
$685 = HEAP8[$684 >> 0] | 0;
if (!($685 << 24 >> 24)) {
$sm$5 = $sm$4;
$sn$5 = $sn$4;
$so$5 = $so$4;
$sp$5 = $sp$4;
} else {
$691 = HEAPU8[43132 + (($685 & 255) + -1) >> 0] | 0;
$sm$5 = HEAP8[43387 + ($691 + 150) >> 0] ^ $sm$4;
$sn$5 = HEAP8[43387 + ($691 + 60) >> 0] ^ $sn$4;
$so$5 = HEAP8[43387 + ($691 + 91) >> 0] ^ $so$4;
$sp$5 = HEAP8[43387 + ($691 + 237) >> 0] ^ $sp$4;
}
$708 = $key + 30 | 0;
$709 = HEAP8[$708 >> 0] | 0;
if (!($709 << 24 >> 24)) {
$sm$6 = $sm$5;
$sn$6 = $sn$5;
$so$6 = $so$5;
$sp$6 = $sp$5;
} else {
$715 = HEAPU8[43132 + (($709 & 255) + -1) >> 0] | 0;
$sm$6 = HEAP8[43387 + ($715 + 237) >> 0] ^ $sm$5;
$sn$6 = HEAP8[43387 + ($715 + 55) >> 0] ^ $sn$5;
$so$6 = HEAP8[43387 + ($715 + 79) >> 0] ^ $so$5;
$sp$6 = HEAP8[43387 + ($715 + 224) >> 0] ^ $sp$5;
}
$732 = $key + 31 | 0;
$733 = HEAP8[$732 >> 0] | 0;
if (!($733 << 24 >> 24)) {
$sm$7 = $sm$6;
$sn$7 = $sn$6;
$so$7 = $so$6;
$sp$7 = $sp$6;
} else {
$739 = HEAPU8[43132 + (($733 & 255) + -1) >> 0] | 0;
$sm$7 = HEAP8[43387 + ($739 + 224) >> 0] ^ $sm$6;
$sn$7 = HEAP8[43387 + ($739 + 208) >> 0] ^ $sn$6;
$so$7 = HEAP8[43387 + ($739 + 140) >> 0] ^ $so$6;
$sp$7 = HEAP8[43387 + ($739 + 23) >> 0] ^ $sp$6;
}
$i$02 = 0;
$j$03 = 0;
$k$04 = 1;
while (1) {
$757 = HEAP8[43879 + $k$04 >> 0] | 0;
HEAP32[$ctx + ($i$02 << 2) >> 2] = HEAP32[8e3 + (((HEAP8[44647 + ((HEAP8[44647 + ((HEAP8[44391 + (($757 ^ $sa$7) & 255) >> 0] ^ $se$7) & 255) >> 0] ^ $si$7) & 255) >> 0] ^ $sm$7) & 255) << 2) >> 2];
$776 = HEAP8[43879 + $j$03 >> 0] | 0;
HEAP32[$ctx + 1024 + ($i$02 << 2) >> 2] = HEAP32[9024 + (((HEAP8[44647 + ((HEAP8[44391 + ((HEAP8[44391 + (($776 ^ $sb$7) & 255) >> 0] ^ $sf$7) & 255) >> 0] ^ $sj$7) & 255) >> 0] ^ $sn$7) & 255) << 2) >> 2];
HEAP32[$ctx + 2048 + ($i$02 << 2) >> 2] = HEAP32[10048 + (((HEAP8[44391 + ((HEAP8[44647 + ((HEAP8[44647 + (($776 ^ $sc$7) & 255) >> 0] ^ $sg$7) & 255) >> 0] ^ $sk$7) & 255) >> 0] ^ $so$7) & 255) << 2) >> 2];
HEAP32[$ctx + 3072 + ($i$02 << 2) >> 2] = HEAP32[11072 + (((HEAP8[44391 + ((HEAP8[44391 + ((HEAP8[44647 + (($757 ^ $sd$7) & 255) >> 0] ^ $sh$7) & 255) >> 0] ^ $sl$7) & 255) >> 0] ^ $sp$7) & 255) << 2) >> 2];
$i$02 = $i$02 + 1 | 0;
if (($i$02 | 0) == 256) break; else {
$j$03 = $j$03 + 2 | 0;
$k$04 = $k$04 + 2 | 0;
}
}
$996 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 103) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 243) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 103) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 243) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$999 = $996 << 8 | $996 >>> 24;
$1000 = $999 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 169) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 117) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 169) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 117) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$1001 = $1000 + $999 | 0;
HEAP32[$ctx + 4096 >> 2] = $1000;
HEAP32[$ctx + 4100 >> 2] = $1001 << 9 | $1001 >>> 23;
$1172 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 232) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 244) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 232) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 244) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$1175 = $1172 << 8 | $1172 >>> 24;
$1176 = $1175 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 179) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 198) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 179) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 198) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$1177 = $1176 + $1175 | 0;
HEAP32[$ctx + 4104 >> 2] = $1176;
HEAP32[$ctx + 4108 >> 2] = $1177 << 9 | $1177 >>> 23;
$1348 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 253) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 123) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 253) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 123) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$1351 = $1348 << 8 | $1348 >>> 24;
$1352 = $1351 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 4) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 219) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 4) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 219) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$1353 = $1352 + $1351 | 0;
HEAP32[$ctx + 4112 >> 2] = $1352;
HEAP32[$ctx + 4116 >> 2] = $1353 << 9 | $1353 >>> 23;
$1524 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 118) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 200) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 118) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 200) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$1527 = $1524 << 8 | $1524 >>> 24;
$1528 = $1527 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 163) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 251) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 163) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 251) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$1529 = $1528 + $1527 | 0;
HEAP32[$ctx + 4120 >> 2] = $1528;
HEAP32[$ctx + 4124 >> 2] = $1529 << 9 | $1529 >>> 23;
$1700 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 146) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 211) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 146) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 211) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$1703 = $1700 << 8 | $1700 >>> 24;
$1704 = $1703 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 154) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 74) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 154) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 74) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$1705 = $1704 + $1703 | 0;
HEAP32[$ctx + 4128 >> 2] = $1704;
HEAP32[$ctx + 4132 >> 2] = $1705 << 9 | $1705 >>> 23;
$1876 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 120) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 107) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 120) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 107) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$1879 = $1876 << 8 | $1876 >>> 24;
$1880 = $1879 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 128) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 230) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 128) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 230) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$1881 = $1880 + $1879 | 0;
HEAP32[$ctx + 4136 >> 2] = $1880;
HEAP32[$ctx + 4140 >> 2] = $1881 << 9 | $1881 >>> 23;
$2052 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 221) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 125) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 221) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 125) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$2055 = $2052 << 8 | $2052 >>> 24;
$2056 = $2055 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 228) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 69) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 228) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 69) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$2057 = $2056 + $2055 | 0;
HEAP32[$ctx + 4144 >> 2] = $2056;
HEAP32[$ctx + 4148 >> 2] = $2057 << 9 | $2057 >>> 23;
$2228 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 56) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 75) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 56) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 75) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$2231 = $2228 << 8 | $2228 >>> 24;
$2232 = $2231 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 209) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 232) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 209) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 232) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$2233 = $2232 + $2231 | 0;
HEAP32[$ctx + 4152 >> 2] = $2232;
HEAP32[$ctx + 4156 >> 2] = $2233 << 9 | $2233 >>> 23;
$2404 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 198) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 50) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 198) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 50) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$2407 = $2404 << 8 | $2404 >>> 24;
$2408 = $2407 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 13) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 214) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 13) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 214) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$2409 = $2408 + $2407 | 0;
HEAP32[$ctx + 4160 >> 2] = $2408;
HEAP32[$ctx + 4164 >> 2] = $2409 << 9 | $2409 >>> 23;
$2580 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 152) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 253) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 152) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 253) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$2583 = $2580 << 8 | $2580 >>> 24;
$2584 = $2583 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 53) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 216) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 53) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 216) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$2585 = $2584 + $2583 | 0;
HEAP32[$ctx + 4168 >> 2] = $2584;
HEAP32[$ctx + 4172 >> 2] = $2585 << 9 | $2585 >>> 23;
$2756 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 247) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 113) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 247) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 113) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$2759 = $2756 << 8 | $2756 >>> 24;
$2760 = $2759 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 24) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 55) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 24) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 55) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$2761 = $2760 + $2759 | 0;
HEAP32[$ctx + 4176 >> 2] = $2760;
HEAP32[$ctx + 4180 >> 2] = $2761 << 9 | $2761 >>> 23;
$2932 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 108) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 225) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 108) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 225) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$2935 = $2932 << 8 | $2932 >>> 24;
$2936 = $2935 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 236) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 241) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 236) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 241) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$2937 = $2936 + $2935 | 0;
HEAP32[$ctx + 4184 >> 2] = $2936;
HEAP32[$ctx + 4188 >> 2] = $2937 << 9 | $2937 >>> 23;
$3108 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 117) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 15) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 117) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 15) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$3111 = $3108 << 8 | $3108 >>> 24;
$3112 = $3111 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 67) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 48) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 67) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 48) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$3113 = $3112 + $3111 | 0;
HEAP32[$ctx + 4192 >> 2] = $3112;
HEAP32[$ctx + 4196 >> 2] = $3113 << 9 | $3113 >>> 23;
$3284 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 38) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 27) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 38) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 27) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$3287 = $3284 << 8 | $3284 >>> 24;
$3288 = $3287 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 55) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 248) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 55) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 248) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$3289 = $3288 + $3287 | 0;
HEAP32[$ctx + 4200 >> 2] = $3288;
HEAP32[$ctx + 4204 >> 2] = $3289 << 9 | $3289 >>> 23;
$3460 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 19) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 250) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 19) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 250) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$3463 = $3460 << 8 | $3460 >>> 24;
$3464 = $3463 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 250) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 135) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 250) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 135) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$3465 = $3464 + $3463 | 0;
HEAP32[$ctx + 4208 >> 2] = $3464;
HEAP32[$ctx + 4212 >> 2] = $3465 << 9 | $3465 >>> 23;
$3636 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 72) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 63) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 72) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 63) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$3639 = $3636 << 8 | $3636 >>> 24;
$3640 = $3639 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 148) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 6) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 148) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 6) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$3641 = $3640 + $3639 | 0;
HEAP32[$ctx + 4216 >> 2] = $3640;
HEAP32[$ctx + 4220 >> 2] = $3641 << 9 | $3641 >>> 23;
$3812 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 208) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 186) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 208) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 186) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$3815 = $3812 << 8 | $3812 >>> 24;
$3816 = $3815 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 242) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 94) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 242) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 94) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$3817 = $3816 + $3815 | 0;
HEAP32[$ctx + 4224 >> 2] = $3816;
HEAP32[$ctx + 4228 >> 2] = $3817 << 9 | $3817 >>> 23;
$3988 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 48) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 91) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 48) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 91) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$3991 = $3988 << 8 | $3988 >>> 24;
$3992 = $3991 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 139) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 174) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 139) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 174) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$3993 = $3992 + $3991 | 0;
HEAP32[$ctx + 4232 >> 2] = $3992;
HEAP32[$ctx + 4236 >> 2] = $3993 << 9 | $3993 >>> 23;
$4162 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 84) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + (HEAPU8[$660 >> 0] | 0) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 84) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + (HEAPU8[$732 >> 0] | 0) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$4165 = $4162 << 8 | $4162 >>> 24;
$4166 = $4165 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 132) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 138) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 132) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 138) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$4167 = $4166 + $4165 | 0;
HEAP32[$ctx + 4240 >> 2] = $4166;
HEAP32[$ctx + 4244 >> 2] = $4167 << 9 | $4167 >>> 23;
$4338 = HEAP32[9024 + (((HEAP8[$131 >> 0] ^ HEAP8[44647 + ((HEAP8[$315 >> 0] ^ HEAP8[44391 + ((HEAP8[$500 >> 0] ^ HEAP8[44391 + ((HEAPU8[$684 >> 0] | 0) ^ 35) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$107 >> 0] ^ HEAP8[44647 + ((HEAP8[$291 >> 0] ^ HEAP8[44647 + ((HEAP8[$476 >> 0] ^ HEAP8[44391 + ((HEAPU8[$660 >> 0] | 0) ^ 157) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$155 >> 0] ^ HEAP8[44391 + ((HEAP8[$339 >> 0] ^ HEAP8[44647 + ((HEAP8[$524 >> 0] ^ HEAP8[44647 + ((HEAPU8[$708 >> 0] | 0) ^ 35) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$179 >> 0] ^ HEAP8[44391 + ((HEAP8[$363 >> 0] ^ HEAP8[44391 + ((HEAP8[$548 >> 0] ^ HEAP8[44647 + ((HEAPU8[$732 >> 0] | 0) ^ 157) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2];
$4341 = $4338 << 8 | $4338 >>> 24;
$4342 = $4341 + (HEAP32[9024 + (((HEAP8[$35 >> 0] ^ HEAP8[44647 + ((HEAP8[$219 >> 0] ^ HEAP8[44391 + ((HEAP8[$404 >> 0] ^ HEAP8[44391 + ((HEAPU8[$588 >> 0] | 0) ^ 223) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[8e3 + (((HEAP8[$key >> 0] ^ HEAP8[44647 + ((HEAP8[$203 >> 0] ^ HEAP8[44647 + ((HEAP8[$388 >> 0] ^ HEAP8[44391 + ((HEAPU8[$572 >> 0] | 0) ^ 188) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[10048 + (((HEAP8[$59 >> 0] ^ HEAP8[44391 + ((HEAP8[$243 >> 0] ^ HEAP8[44647 + ((HEAP8[$428 >> 0] ^ HEAP8[44647 + ((HEAPU8[$612 >> 0] | 0) ^ 223) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2] ^ HEAP32[11072 + (((HEAP8[$83 >> 0] ^ HEAP8[44391 + ((HEAP8[$267 >> 0] ^ HEAP8[44391 + ((HEAP8[$452 >> 0] ^ HEAP8[44647 + ((HEAPU8[$636 >> 0] | 0) ^ 188) >> 0]) & 255) >> 0]) & 255) >> 0]) & 255) << 2) >> 2]) | 0;
$4343 = $4342 + $4341 | 0;
HEAP32[$ctx + 4248 >> 2] = $4342;
HEAP32[$ctx + 4252 >> 2] = $4343 << 9 | $4343 >>> 23;
$$0 = 0;
STACKTOP = sp;
return $$0 | 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, $$0 = 0, $$1$i = 0, $$15$i = 0, $$554$i = 0, $$lcssa = 0, $$lcssa133 = 0, $$lcssa138 = 0, $$not$i = 0, $$not176$i = 0, $$old$i = 0, $$old$i$15 = 0, $$old34$i = 0, $$old37$i = 0, $$old46$i = 0, $$pre$phi212$iZ2D = 0, $$pre$phi214$iZ2D = 0, $1 = 0, $101 = 0, $102 = 0, $104 = 0, $108 = 0, $11 = 0, $110 = 0, $113 = 0, $114 = 0, $118 = 0, $122 = 0, $125 = 0, $126 = 0, $131 = 0, $134 = 0, $137 = 0, $138 = 0, $140 = 0, $146 = 0, $16 = 0, $160 = 0, $168 = 0, $17 = 0, $170 = 0, $173 = 0, $176 = 0, $184 = 0, $187 = 0, $188 = 0, $19 = 0, $2 = 0, $20 = 0, $205 = 0, $208 = 0, $216 = 0, $22 = 0, $221 = 0, $223 = 0, $224 = 0, $229 = 0, $232 = 0, $235 = 0, $236 = 0, $237 = 0, $239 = 0, $240 = 0, $244 = 0, $246 = 0, $247 = 0, $254 = 0, $255 = 0, $256 = 0, $26 = 0, $263 = 0, $264 = 0, $270 = 0, $278 = 0, $282 = 0, $286 = 0, $287 = 0, $289 = 0, $29 = 0, $293 = 0, $295 = 0, $298 = 0, $299 = 0, $303 = 0, $307 = 0, $310 = 0, $311 = 0, $316 = 0, $317 = 0, $32 = 0, $328 = 0, $333 = 0, $334 = 0, $338 = 0, $35 = 0, $353 = 0, $356 = 0, $357 = 0, $359 = 0, $365 = 0, $37 = 0, $379 = 0, $38 = 0, $387 = 0, $389 = 0, $392 = 0, $394 = 0, $404 = 0, $406 = 0, $408 = 0, $41 = 0, $412 = 0, $415 = 0, $423 = 0, $425 = 0, $428 = 0, $43 = 0, $431 = 0, $44 = 0, $442 = 0, $443 = 0, $445 = 0, $448 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $458 = 0, $459 = 0, $46 = 0, $461 = 0, $463 = 0, $466 = 0, $467 = 0, $469 = 0, $47 = 0, $473 = 0, $474 = 0, $476 = 0, $479 = 0, $48 = 0, $480 = 0, $482 = 0, $489 = 0, $49 = 0, $495 = 0, $499 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $508 = 0, $509 = 0, $51 = 0, $512 = 0, $513 = 0, $514 = 0, $516 = 0, $52 = 0, $521 = 0, $522 = 0, $528 = 0, $536 = 0, $54 = 0, $540 = 0, $544 = 0, $545 = 0, $547 = 0, $551 = 0, $553 = 0, $556 = 0, $557 = 0, $561 = 0, $565 = 0, $568 = 0, $569 = 0, $574 = 0, $583 = 0, $585 = 0, $587 = 0, $588 = 0, $597 = 0, $598 = 0, $6 = 0, $603 = 0, $612 = 0, $614 = 0, $615 = 0, $618 = 0, $62 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $63 = 0, $630 = 0, $631 = 0, $633 = 0, $64 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $657 = 0, $659 = 0, $660 = 0, $661 = 0, $662 = 0, $664 = 0, $665 = 0, $668 = 0, $674 = 0, $675 = 0, $68 = 0, $681 = 0, $689 = 0, $69 = 0, $693 = 0, $697 = 0, $698 = 0, $7 = 0, $70 = 0, $700 = 0, $704 = 0, $706 = 0, $709 = 0, $71 = 0, $710 = 0, $714 = 0, $718 = 0, $721 = 0, $722 = 0, $727 = 0, $728 = 0, $739 = 0, $74 = 0, $744 = 0, $745 = 0, $749 = 0, $75 = 0, $76 = 0, $762 = 0, $766 = 0, $769 = 0, $771 = 0, $773 = 0, $78 = 0, $780 = 0, $781 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $79 = 0, $804 = 0, $805 = 0, $825 = 0, $826 = 0, $827 = 0, $85 = 0, $93 = 0, $97 = 0, $eo$0 = 0, $eo$1 = 0, $eo$2 = 0, $eo$3 = 0, $eo$4 = 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, $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$i$8 = 0, $match_eo$1$i = 0, $match_eo$1$ph$lcssa$i = 0, $match_eo$1$ph108$i = 0, $match_eo$10$i = 0, $match_eo$2$i = 0, $match_eo$2$i$21 = 0, $match_eo$3$i = 0, $match_eo$4$i = 0, $match_eo$4$i$23 = 0, $match_eo$4$i$lcssa149 = 0, $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$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, $next_c$i$3 = 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, $notlhs166$i = 0, $notlhs180$i = 0, $num_tags$0$i = 0, $or$cond$not$i = 0, $or$cond$not$i$12 = 0, $or$cond24$not$i = 0, $or$cond27$i = 0, $or$cond27$not$i = 0, $or$cond3$i = 0, $or$cond30$i = 0, $or$cond6$i = 0, $pmatch$0$i = 0, $pmatch$1$i = 0, $pos$0$i = 0, $pos$0$i$10 = 0, $pos$2$i = 0, $pos$3$i = 0, $pos$5$i = 0, $pos_add_next$0$i = 0, $pos_add_next$0$i$6 = 0, $pos_add_next$1$i = 0, $pos_add_next$1$i$9 = 0, $pos_add_next$2$i = 0, $pos_add_next$2$i$24 = 0, $pos_add_next$3$i = 0, $pos_add_next$5$i = 0, $pos_add_next$6$i = 0, $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, $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, $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, $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$i$11 = 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, $tmp$0114$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$i$27 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$next_c$i$3 = sp;
$1 = HEAP32[$preg + 4 >> 2] | 0;
$2 = $1 + 56 | 0;
$nmatch$ = (HEAP32[$2 >> 2] & 8 | 0) == 0 ? $nmatch : 0;
$6 = $1 + 40 | 0;
$7 = HEAP32[$6 >> 2] | 0;
if (($7 | 0) > 0 & ($nmatch$ | 0) != 0) {
$11 = _malloc($7 << 2) | 0;
if (!$11) $$0 = 12; else {
$tags$0 = $11;
label = 3;
}
} else {
$tags$0 = 0;
label = 3;
}
if ((label | 0) == 3) {
if (!(HEAP32[$1 + 60 >> 2] | 0)) {
HEAP32[$next_c$i$3 >> 2] = 0;
$442 = $eflags & 1;
$443 = $eflags & 2;
$445 = HEAP32[$2 >> 2] & 4;
if (!$tags$0) $num_tags$0$i = 0; else $num_tags$0$i = HEAP32[$6 >> 2] | 0;
$448 = $num_tags$0$i << 2;
$450 = HEAP32[$1 + 52 >> 2] | 0;
$451 = $450 << 3;
$452 = $451 + 8 | 0;
$458 = $448 + 12 + $451 + ($452 + (Math_imul($448, $450) | 0) << 1) | 0;
$459 = _malloc($458) | 0;
if (!$459) {
$$1$i = 12;
$eo$3 = 0;
} else {
_memset($459 | 0, 0, $458 | 0) | 0;
$461 = $459 + $448 | 0;
$463 = $461 & 3;
$466 = $461 + (($463 | 0) == 0 ? 0 : 4 - $463 | 0) | 0;
$467 = $466 + $452 | 0;
$469 = $467 & 3;
$473 = $467 + (($469 | 0) == 0 ? 0 : 4 - $469 | 0) | 0;
$474 = $473 + $452 | 0;
$476 = $474 & 3;
$479 = $474 + (($476 | 0) == 0 ? 0 : 4 - $476 | 0) | 0;
$480 = $479 + $451 | 0;
$482 = $480 & 3;
if (($450 | 0) > 0) {
$i$0165$i = 0;
$tmp_buf$0166$i = $480 + (($482 | 0) == 0 ? 0 : 4 - $482 | 0) | 0;
while (1) {
HEAP32[$473 + ($i$0165$i << 3) + 4 >> 2] = $tmp_buf$0166$i;
$489 = $tmp_buf$0166$i + $448 | 0;
HEAP32[$466 + ($i$0165$i << 3) + 4 >> 2] = $489;
$i$0165$i = $i$0165$i + 1 | 0;
if (($i$0165$i | 0) == ($450 | 0)) {
$i$1163$i = 0;
break;
} else $tmp_buf$0166$i = $489 + $448 | 0;
}
do {
HEAP32[$479 + ($i$1163$i << 3) >> 2] = -1;
$i$1163$i = $i$1163$i + 1 | 0;
} while (($i$1163$i | 0) != ($450 | 0));
}
$495 = _mbtowc($next_c$i$3, $string, 4) | 0;
if (($495 | 0) < 1) if (($495 | 0) < 0) {
$eo$2 = 0;
$ret$0$i = 1;
} else {
$pos_add_next$0$i$6 = 1;
label = 201;
} else {
$pos_add_next$0$i$6 = $495;
label = 201;
}
L21 : do if ((label | 0) == 201) {
$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$i$8 = -1;
$new_match$0$i = 0;
$pos$0$i$10 = 0;
$pos_add_next$1$i$9 = $pos_add_next$0$i$6;
$prev_c$0$i = 0;
$reach$1$i = $473;
$reach_next$1$i = $466;
$reach_next_i$0$i = $466;
$str_byte$0$i$11 = $string + $pos_add_next$0$i$6 | 0;
$tmp_tags$1$i = $459;
while (1) {
if (($match_eo$0$i$8 | 0) < 0) {
$508 = HEAP32[$499 >> 2] | 0;
$509 = $508 + 8 | 0;
L27 : do if (!(HEAP32[$509 >> 2] | 0)) {
$match_eo$1$ph$lcssa$i = $match_eo$0$i$8;
$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$i$10 | 0) != 0;
$513 = ($prev_c$0$i | 0) == 95;
$514 = ($pos$0$i$10 | 0) == 0;
$or$cond3$i = $500 & ($prev_c$0$i | 0) == 10;
$or$cond$not$i$12 = $notlhs180$i & ($pos$0$i$10 | 0) < 1;
$826 = $509;
$match_eo$1$ph108$i = $match_eo$0$i$8;
$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) {
$827 = $826;
$trans_i$085$i = $trans_i$0$ph112$i;
L31 : while (1) {
$516 = $trans_i$085$i + 12 | 0;
if ((HEAP32[$479 + (HEAP32[$516 >> 2] << 3) >> 2] | 0) >= ($pos$0$i$10 | 0)) {
$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;
if (!$522) {
$$lcssa133 = $827;
$$lcssa138 = $516;
$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break;
}
L35 : do if ($or$cond3$i | ($or$cond$not$i$12 | ($522 & 1 | 0) == 0)) {
if ($522 & 2) {
$528 = HEAP32[$next_c$i$3 >> 2] | 0;
if (!(($528 | $443 | 0) == 0 | $500 & ($528 | 0) == 10)) break;
}
do if ($522 & 16) {
if ($513) break L35;
if (_iswalnum($prev_c$0$i) | 0) break L35;
$536 = HEAP32[$next_c$i$3 >> 2] | 0;
if (($536 | 0) == 95) break;
if (!(_iswalnum($536) | 0)) break L35;
} while (0);
$540 = HEAP32[$521 >> 2] | 0;
if (!($540 & 32)) $551 = $540; else {
if ($513) {
$$old$i$15 = HEAP32[$next_c$i$3 >> 2] | 0;
if (($$old$i$15 | 0) == 95) break; else $547 = $$old$i$15;
} else {
$544 = (_iswalnum($prev_c$0$i) | 0) == 0;
$545 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($544 | ($545 | 0) == 95) break; else $547 = $545;
}
if (_iswalnum($547) | 0) break;
$551 = HEAP32[$521 >> 2] | 0;
}
$553 = HEAP32[$next_c$i$3 >> 2] | 0;
do if (($553 | 0) != 0 & ($512 & ($551 & 64 | 0) != 0)) {
if ($513) {
$557 = $553;
$561 = 1;
} else {
$556 = (_iswalnum($prev_c$0$i) | 0) != 0;
$557 = HEAP32[$next_c$i$3 >> 2] | 0;
$561 = $556;
}
if (($557 | 0) == 95) if ($561) break L35; else break; else if ($561 ^ (_iswalnum($557) | 0) != 0) break; else break L35;
} while (0);
if (!(HEAP32[$521 >> 2] & 128)) {
$$lcssa133 = $827;
$$lcssa138 = $516;
$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break L31;
}
$565 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($514 | ($565 | 0) == 0) break;
if ($513) {
$569 = $565;
$574 = 1;
} else {
$568 = (_iswalnum($prev_c$0$i) | 0) != 0;
$569 = HEAP32[$next_c$i$3 >> 2] | 0;
$574 = $568;
}
if (($569 | 0) == 95) if ($574) {
$$lcssa133 = $827;
$$lcssa138 = $516;
$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break L31;
} else break; else if ($574 ^ (_iswalnum($569) | 0) != 0) break; else {
$$lcssa133 = $827;
$$lcssa138 = $516;
$trans_i$085$i$lcssa135 = $trans_i$085$i;
label = 236;
break L31;
}
} while (0);
$827 = $trans_i$085$i + 40 | 0;
if (!(HEAP32[$827 >> 2] | 0)) {
$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 $trans_i$085$i = $trans_i$085$i + 32 | 0;
}
if ((label | 0) == 236) {
label = 0;
HEAP32[$reach_next_i$1$ph101$i >> 2] = HEAP32[$$lcssa133 >> 2];
if ($501) _memset(HEAP32[$reach_next_i$1$ph101$i + 4 >> 2] | 0, -1, $448 | 0) | 0;
$583 = HEAP32[$trans_i$085$i$lcssa135 + 16 >> 2] | 0;
do if ($583) {
$585 = HEAP32[$583 >> 2] | 0;
if (($585 | 0) <= -1) break;
$587 = $reach_next_i$1$ph101$i + 4 | 0;
$588 = $585;
$tag_i$097$i = $583;
do {
if (($588 | 0) < ($num_tags$0$i | 0)) HEAP32[(HEAP32[$587 >> 2] | 0) + ($588 << 2) >> 2] = $pos$0$i$10;
$tag_i$097$i = $tag_i$097$i + 4 | 0;
$588 = HEAP32[$tag_i$097$i >> 2] | 0;
} while (($588 | 0) > -1);
} while (0);
$$not$i = (HEAP32[$reach_next_i$1$ph101$i >> 2] | 0) != (HEAP32[$502 >> 2] | 0);
if ($$not176$i | $$not$i) {
$$pre$phi214$iZ2D = $reach_next_i$1$ph101$i + 4 | 0;
$match_eo$2$i$21 = $$not$i ? $match_eo$1$ph108$i : $pos$0$i$10;
$new_match$2$i = $$not$i ? $new_match$1$ph110$i : 1;
} else {
$597 = $reach_next_i$1$ph101$i + 4 | 0;
$598 = HEAP32[$597 >> 2] | 0;
$i$399$i = 0;
do {
HEAP32[$tags$0 + ($i$399$i << 2) >> 2] = HEAP32[$598 + ($i$399$i << 2) >> 2];
$i$399$i = $i$399$i + 1 | 0;
} while (($i$399$i | 0) != ($num_tags$0$i | 0));
$$pre$phi214$iZ2D = $597;
$match_eo$2$i$21 = $pos$0$i$10;
$new_match$2$i = 1;
}
$603 = HEAP32[$$lcssa138 >> 2] | 0;
HEAP32[$479 + ($603 << 3) >> 2] = $pos$0$i$10;
HEAP32[$479 + ($603 << 3) + 4 >> 2] = $$pre$phi214$iZ2D;
$match_eo$3$i = $match_eo$2$i$21;
$new_match$3$i = $new_match$2$i;
$reach_next_i$2$i = $reach_next_i$1$ph101$i + 8 | 0;
$trans_i$085$i137 = $trans_i$085$i$lcssa135;
}
$826 = $trans_i$085$i137 + 40 | 0;
if (!(HEAP32[$826 >> 2] | 0)) {
$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 {
$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 = $trans_i$085$i137 + 32 | 0;
}
}
} while (0);
HEAP32[$reach_next_i$1$ph$lcssa$i >> 2] = 0;
$$old46$i = HEAP32[$next_c$i$3 >> 2] | 0;
if (!$$old46$i) {
$match_eo$10$i = $match_eo$1$ph$lcssa$i;
break;
} else {
$660 = $$old46$i;
$match_eo$4$i$23 = $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$i$8;
break;
}
$612 = HEAP32[$next_c$i$3 >> 2] | 0;
if (($reach_next_i$0$i | 0) != ($reach_next$1$i | 0) & ($612 | 0) != 0) {
$660 = $612;
$match_eo$4$i$23 = $match_eo$0$i$8;
$new_match$4$i = $new_match$0$i;
} else {
$match_eo$10$i = $match_eo$0$i$8;
break;
}
}
$614 = $pos$0$i$10 + $pos_add_next$1$i$9 | 0;
$615 = _mbtowc($next_c$i$3, $str_byte$0$i$11, 4) | 0;
if (($615 | 0) < 1) if (($615 | 0) < 0) {
$eo$2 = 0;
$ret$0$i = 1;
break L21;
} else $pos_add_next$2$i$24 = 1; else $pos_add_next$2$i$24 = $615;
$618 = $str_byte$0$i$11 + $pos_add_next$2$i$24 | 0;
if (($new_match$4$i | 0) != 0 & (HEAP32[$503 >> 2] | 0) != 0) {
if (!(HEAP32[$reach_next$1$i >> 2] | 0)) $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) {
$631 = $625;
$i$4116$i = 0;
while (1) {
$630 = HEAP32[$624 + (($i$4116$i | 1) << 2) >> 2] | 0;
if (($631 | 0) >= ($num_tags$0$i | 0)) {
$reach_next_i$4$i = $reach_next_i$3121$i;
break L106;
}
$633 = HEAP32[$627 >> 2] | 0;
if ((HEAP32[$633 + ($630 << 2) >> 2] | 0) == (HEAP32[$tags$0 + ($630 << 2) >> 2] | 0)) if ((HEAP32[$633 + ($631 << 2) >> 2] | 0) < (HEAP32[$tags$0 + ($631 << 2) >> 2] | 0)) {
$reach_next_i$4$i = $reach_next_i$3121$i;
break L106;
}
$i$4116$i = $i$4116$i + 2 | 0;
$631 = HEAP32[$624 + ($i$4116$i << 2) >> 2] | 0;
if (($631 | 0) <= -1) {
$$lcssa = $633;
break;
}
}
$$pre$phi212$iZ2D = $627;
$652 = $$lcssa;
label = 265;
} else {
$$pre$phi212$iZ2D = $627;
$652 = HEAP32[$627 >> 2] | 0;
label = 265;
} while (0);
if ((label | 0) == 265) {
label = 0;
HEAP32[$reach_next_i$3121$i >> 2] = HEAP32[$reach_i$0119$i >> 2];
$650 = $reach_next_i$3121$i + 4 | 0;
$651 = HEAP32[$650 >> 2] | 0;
HEAP32[$650 >> 2] = $652;
HEAP32[$$pre$phi212$iZ2D >> 2] = $651;
$reach_next_i$4$i = $reach_next_i$3121$i + 8 | 0;
}
$reach_i$0119$i = $reach_i$0119$i + 8 | 0;
if (!(HEAP32[$reach_i$0119$i >> 2] | 0)) {
$reach_next_i$3$lcssa$i = $reach_next_i$4$i;
break;
} else $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;
}
$657 = HEAP32[$reach$2$i >> 2] | 0;
if (!$657) {
$match_eo$5$lcssa$i = $match_eo$4$i$23;
$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 {
$659 = ($614 | 0) != 0;
$661 = ($660 | 0) == 95;
$662 = ($614 | 0) == 0;
$or$cond27$i = $500 & ($660 | 0) == 10;
$or$cond24$not$i = $notlhs180$i & ($614 | 0) < 1;
$665 = $657;
$match_eo$5155$i = $match_eo$4$i$23;
$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) {
$664 = $665 + 8 | 0;
if (!(HEAP32[$664 >> 2] | 0)) {
$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 {
$668 = $reach_i$1153$i + 4 | 0;
$766 = $tmp_tags$2157$i;
$785 = $664;
$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$i$27 = $665;
while (1) {
L128 : do if ((HEAP32[$trans_i$1144$i$27 >> 2] | 0) >>> 0 > $660 >>> 0) {
$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 = $766;
} else {
if ((HEAP32[$trans_i$1144$i$27 + 4 >> 2] | 0) >>> 0 < $660 >>> 0) {
$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 = $766;
break;
}
$674 = $trans_i$1144$i$27 + 20 | 0;
$675 = HEAP32[$674 >> 2] | 0;
do if ($675) {
if (!($or$cond27$i | ($or$cond24$not$i | ($675 & 1 | 0) == 0))) {
$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 = $766;
break L128;
}
if ($675 & 2) {
$681 = HEAP32[$next_c$i$3 >> 2] | 0;
if (!(($681 | $443 | 0) == 0 | $500 & ($681 | 0) == 10)) {
$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 = $766;
break L128;
}
}
do if ($675 & 16) {
if ($661) {
$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 = $766;
break L128;
}
if (_iswalnum($660) | 0) {
$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 = $766;
break L128;
}
$689 = HEAP32[$next_c$i$3 >> 2] | 0;
if (($689 | 0) == 95) break;
if (!(_iswalnum($689) | 0)) {
$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 = $766;
break L128;
}
} while (0);
$693 = HEAP32[$674 >> 2] | 0;
if (!($693 & 32)) $704 = $693; else {
if ($661) {
$$old34$i = HEAP32[$next_c$i$3 >> 2] | 0;
if (($$old34$i | 0) == 95) {
$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 = $766;
break L128;
} else $700 = $$old34$i;
} else {
$697 = (_iswalnum($660) | 0) == 0;
$698 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($697 | ($698 | 0) == 95) {
$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 = $766;
break L128;
} else $700 = $698;
}
if (_iswalnum($700) | 0) {
$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 = $766;
break L128;
}
$704 = HEAP32[$674 >> 2] | 0;
}
$706 = HEAP32[$next_c$i$3 >> 2] | 0;
do if (($706 | 0) != 0 & ($659 & ($704 & 64 | 0) != 0)) {
if ($661) {
$710 = $706;
$714 = 1;
} else {
$709 = (_iswalnum($660) | 0) != 0;
$710 = HEAP32[$next_c$i$3 >> 2] | 0;
$714 = $709;
}
if (($710 | 0) == 95) if ($714) {
$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 = $766;
break L128;
} else break; else if ($714 ^ (_iswalnum($710) | 0) != 0) 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 = $766;
break L128;
}
} while (0);
do if (HEAP32[$674 >> 2] & 128) {
$718 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($662 | ($718 | 0) == 0) {
$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 = $766;
break L128;
}
if ($661) {
$722 = $718;
$727 = 1;
} else {
$721 = (_iswalnum($660) | 0) != 0;
$722 = HEAP32[$next_c$i$3 >> 2] | 0;
$727 = $721;
}
if (($722 | 0) == 95) if ($727) 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 = $766;
break L128;
} else if ($727 ^ (_iswalnum($722) | 0) != 0) {
$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 = $766;
break L128;
} else break;
} while (0);
$728 = HEAP32[$674 >> 2] | 0;
do if (!($728 & 4)) $739 = $728; else {
if (HEAP32[$2 >> 2] & 2) {
$739 = $728;
break;
}
if (!(_iswctype($660, HEAP32[$trans_i$1144$i$27 + 24 >> 2] | 0) | 0)) {
$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 = $766;
break L128;
}
$739 = HEAP32[$674 >> 2] | 0;
} while (0);
do if ($739 & 4) {
if (!(HEAP32[$2 >> 2] & 2)) break;
$744 = _towlower($660) | 0;
$745 = $trans_i$1144$i$27 + 24 | 0;
if (_iswctype($744, HEAP32[$745 >> 2] | 0) | 0) break;
$749 = _towupper($660) | 0;
if (!(_iswctype($749, HEAP32[$745 >> 2] | 0) | 0)) {
$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 = $766;
break L128;
}
} while (0);
if (!(HEAP32[$674 >> 2] & 8)) break;
if (_tre_neg_char_classes_match(HEAP32[$trans_i$1144$i$27 + 28 >> 2] | 0, $660, HEAP32[$2 >> 2] & 2) | 0) {
$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 = $766;
break L128;
}
} while (0);
if ($501) {
$762 = HEAP32[$668 >> 2] | 0;
$i$5125$i = 0;
do {
HEAP32[$766 + ($i$5125$i << 2) >> 2] = HEAP32[$762 + ($i$5125$i << 2) >> 2];
$i$5125$i = $i$5125$i + 1 | 0;
} while (($i$5125$i | 0) != ($num_tags$0$i | 0));
}
$769 = HEAP32[$trans_i$1144$i$27 + 16 >> 2] | 0;
do if ($769) {
$771 = HEAP32[$769 >> 2] | 0;
if (($771 | 0) > -1) {
$773 = $771;
$tag_i$1128$i = $769;
} else break;
do {
if (($773 | 0) < ($num_tags$0$i | 0)) HEAP32[$766 + ($773 << 2) >> 2] = $614;
$tag_i$1128$i = $tag_i$1128$i + 4 | 0;
$773 = HEAP32[$tag_i$1128$i >> 2] | 0;
} while (($773 | 0) > -1);
} while (0);
$780 = HEAP32[$trans_i$1144$i$27 + 12 >> 2] | 0;
$781 = $479 + ($780 << 3) | 0;
if ((HEAP32[$781 >> 2] | 0) >= ($614 | 0)) {
$804 = HEAP32[$479 + ($780 << 3) + 4 >> 2] | 0;
$805 = HEAP32[$804 >> 2] | 0;
if (!(_tre_tag_order($num_tags$0$i, HEAP32[$504 >> 2] | 0, $766, $805) | 0)) {
$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 = $766;
break;
}
HEAP32[$804 >> 2] = $766;
if ((HEAP32[$785 >> 2] | 0) != (HEAP32[$502 >> 2] | 0)) {
$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 = $805;
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 = $805;
break;
}
while (1) {
HEAP32[$tags$0 + ($i$7130$i << 2) >> 2] = HEAP32[$766 + ($i$7130$i << 2) >> 2];
$i$7130$i = $i$7130$i + 1 | 0;
if (($i$7130$i | 0) == ($num_tags$0$i | 0)) {
$match_eo$9$i = $614;
$new_match$10$i = 1;
$reach_next_i$7$i = $reach_next_i$6134$i;
$tmp_tags$4$i = $805;
break L128;
}
}
}
$784 = HEAP32[$785 >> 2] | 0;
HEAP32[$reach_next_i$6134$i >> 2] = $784;
$786 = $reach_next_i$6134$i + 4 | 0;
$787 = HEAP32[$786 >> 2] | 0;
HEAP32[$786 >> 2] = $766;
HEAP32[$781 >> 2] = $614;
HEAP32[$479 + ($780 << 3) + 4 >> 2] = $786;
do if (($784 | 0) == (HEAP32[$502 >> 2] | 0)) {
if (($match_eo$6135$i | 0) == -1) if ($501) $i$6132$i = 0; else {
$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;
}
if ((HEAP32[$766 >> 2] | 0) > (HEAP32[$tags$0 >> 2] | 0)) {
$match_eo$7$i = $match_eo$6135$i;
$new_match$8$i = $new_match$7138$i;
break;
} else $i$6132$i = 0;
}
do {
HEAP32[$tags$0 + ($i$6132$i << 2) >> 2] = HEAP32[$766 + ($i$6132$i << 2) >> 2];
$i$6132$i = $i$6132$i + 1 | 0;
} while (($i$6132$i | 0) < ($num_tags$0$i | 0));
$match_eo$7$i = $614;
$new_match$8$i = 1;
} else {
$match_eo$7$i = $match_eo$6135$i;
$new_match$8$i = $new_match$7138$i;
} while (0);
$match_eo$9$i = $match_eo$7$i;
$new_match$10$i = $new_match$8$i;
$reach_next_i$7$i = $reach_next_i$6134$i + 8 | 0;
$tmp_tags$4$i = $787;
} while (0);
$785 = $trans_i$1144$i$27 + 40 | 0;
if (!(HEAP32[$785 >> 2] | 0)) {
$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 {
$766 = $tmp_tags$4$i;
$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$i$27 = $trans_i$1144$i$27 + 32 | 0;
}
}
}
$reach_i$1153$i = $reach_i$1153$i + 8 | 0;
$665 = HEAP32[$reach_i$1153$i >> 2] | 0;
if (!$665) {
$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 {
$match_eo$5155$i = $match_eo$6$lcssa$i;
$new_match$6156$i = $new_match$7$lcssa$i;
$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$i$8 = $match_eo$5$lcssa$i;
$new_match$0$i = $new_match$6$lcssa$i;
$pos$0$i$10 = $614;
$pos_add_next$1$i$9 = $pos_add_next$2$i$24;
$prev_c$0$i = $660;
$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$i$11 = $618;
$tmp_tags$1$i = $tmp_tags$2$lcssa$i;
}
$eo$2 = $match_eo$10$i;
$ret$0$i = $match_eo$10$i >>> 31;
} 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$3 >> 2] = 0;
$16 = $eflags & 1;
$17 = $eflags & 2;
$19 = HEAP32[$2 >> 2] & 4;
$20 = ___tre_mem_new_impl(0, 0) | 0;
L218 : do if (!$20) {
$$15$i = 12;
$eo$1 = 0;
} else {
$22 = ___tre_mem_alloc_impl($20, 0, 0, 0, 32) | 0;
if (!$22) {
___tre_mem_destroy($20);
$$15$i = 12;
$eo$1 = 0;
break;
}
HEAP32[$22 + 24 >> 2] = 0;
HEAP32[$22 + 28 >> 2] = 0;
$26 = HEAP32[$6 >> 2] | 0;
if (!$26) {
$tags$0$i = 0;
label = 9;
} else {
$29 = _malloc($26 << 2) | 0;
if (!$29) {
$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;
}
}
L225 : do if ((label | 0) == 9) {
$32 = HEAP32[$1 + 28 >> 2] | 0;
if (!$32) $pmatch$0$i = 0; else {
$35 = _malloc($32 << 3) | 0;
if (!$35) {
$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;
if (!$38) $states_seen$0$ph$i = 0; else {
$41 = _malloc($38 << 2) | 0;
if (!$41) {
$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;
$46 = ($tags$0 | 0) != 0;
$47 = $1 + 32 | 0;
$48 = ($19 | 0) != 0;
$49 = ($tags$0$i | 0) == 0;
$50 = ($pmatch$0$i | 0) == 0;
$51 = ($states_seen$0$ph$i | 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;
L233 : while (1) {
if (($52 | 0) > 0) {
$825 = $52;
$i$0105$i = 0;
while (1) {
HEAP32[$tags$0$i + ($i$0105$i << 2) >> 2] = -1;
if ($45) $62 = $825; else {
HEAP32[$tags$0 + ($i$0105$i << 2) >> 2] = -1;
$62 = HEAP32[$6 >> 2] | 0;
}
$i$0105$i = $i$0105$i + 1 | 0;
if (($i$0105$i | 0) >= ($62 | 0)) break; else $825 = $62;
}
}
$54 = HEAP32[$37 >> 2] | 0;
if (($54 | 0) > 0) _memset($states_seen$0$ph$i | 0, 0, (($54 | 0) > 1 ? $54 : 1) << 2 | 0) | 0;
$63 = HEAP32[$next_c$i$3 >> 2] | 0;
$64 = $pos_add_next$0$i + $pos_start$0$i | 0;
$65 = _mbtowc($next_c$i$3, $str_byte$0$i, 4) | 0;
if (($65 | 0) < 1) if (($65 | 0) < 0) {
$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 L225;
} 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$3 >> 2] | 0;
$70 = HEAP32[$43 >> 2] | 0;
$71 = $70 + 8 | 0;
if (!(HEAP32[$71 >> 2] | 0)) {
$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;
$or$cond6$i = $48 & ($63 | 0) == 10;
$or$cond$not$i = $notlhs166$i & ($64 | 0) < 1;
$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;
L252 : do if (!$79) label = 52; else {
if (!($or$cond6$i | ($or$cond$not$i | ($79 & 1 | 0) == 0))) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break;
}
if ($79 & 2) {
$85 = HEAP32[$next_c$i$3 >> 2] | 0;
if (!(($85 | $17 | 0) == 0 | $48 & ($85 | 0) == 10)) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break;
}
}
do if ($79 & 16) {
if ($75) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break L252;
}
if (_iswalnum($63) | 0) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break L252;
}
$93 = HEAP32[$next_c$i$3 >> 2] | 0;
if (($93 | 0) == 95) break;
if (!(_iswalnum($93) | 0)) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break L252;
}
} while (0);
$97 = HEAP32[$78 >> 2] | 0;
if (!($97 & 32)) $108 = $97; else {
if ($75) {
$$old$i = HEAP32[$next_c$i$3 >> 2] | 0;
if (($$old$i | 0) == 95) {
$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 {
$101 = (_iswalnum($63) | 0) == 0;
$102 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($101 | ($102 | 0) == 95) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break;
} else $104 = $102;
}
if (_iswalnum($104) | 0) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break;
}
$108 = HEAP32[$78 >> 2] | 0;
}
$110 = HEAP32[$next_c$i$3 >> 2] | 0;
do if (($110 | 0) != 0 & ($74 & ($108 & 64 | 0) != 0)) {
if ($75) {
$114 = $110;
$118 = 1;
} else {
$113 = (_iswalnum($63) | 0) != 0;
$114 = HEAP32[$next_c$i$3 >> 2] | 0;
$118 = $113;
}
if (($114 | 0) == 95) if ($118) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break L252;
} else break; else if ($118 ^ (_iswalnum($114) | 0) != 0) break; else {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$1118$i;
$state$1$i = $state$0116$i;
break L252;
}
} while (0);
if (!(HEAP32[$78 >> 2] & 128)) {
label = 52;
break;
}
$122 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($76 | ($122 | 0) == 0) {
$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 {
$125 = (_iswalnum($63) | 0) != 0;
$126 = HEAP32[$next_c$i$3 >> 2] | 0;
$131 = $125;
}
if (($126 | 0) == 95) 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 if ($131 ^ (_iswalnum($126) | 0) != 0) {
$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;
if (!$state$0116$i) {
$next_tags$1$i = HEAP32[$trans_i$0120$i + 16 >> 2] | 0;
$stack$5$i = $stack$1118$i;
$state$1$i = HEAP32[$134 >> 2] | 0;
break;
}
$137 = $stack$1118$i + 28 | 0;
$138 = HEAP32[$137 >> 2] | 0;
if (!$138) {
$140 = ___tre_mem_alloc_impl($20, 0, 0, 0, 32) | 0;
if (!$140) {
label = 56;
break L233;
}
HEAP32[$140 + 24 >> 2] = $stack$1118$i;
HEAP32[$140 + 28 >> 2] = 0;
$146 = ___tre_mem_alloc_impl($20, 0, 0, 0, HEAP32[$6 >> 2] << 2) | 0;
HEAP32[$140 + 20 >> 2] = $146;
if (!$146) {
label = 63;
break L233;
}
HEAP32[$137 >> 2] = $140;
$stack$3$i = $140;
} else $stack$3$i = $138;
HEAP32[$stack$3$i >> 2] = $64;
HEAP32[$stack$3$i + 4 >> 2] = $68;
HEAP32[$stack$3$i + 8 >> 2] = HEAP32[$134 >> 2];
HEAP32[$stack$3$i + 12 >> 2] = HEAP32[$trans_i$0120$i + 12 >> 2];
HEAP32[$stack$3$i + 16 >> 2] = HEAP32[$next_c$i$3 >> 2];
if ((HEAP32[$6 >> 2] | 0) > 0) {
$160 = HEAP32[$stack$3$i + 20 >> 2] | 0;
$i1$0110$i = 0;
do {
HEAP32[$160 + ($i1$0110$i << 2) >> 2] = HEAP32[$tags$0$i + ($i1$0110$i << 2) >> 2];
$i1$0110$i = $i1$0110$i + 1 | 0;
} while (($i1$0110$i | 0) < (HEAP32[$6 >> 2] | 0));
}
$168 = HEAP32[$trans_i$0120$i + 16 >> 2] | 0;
if (!$168) {
$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;
if (($170 | 0) <= -1) {
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$3$i;
$state$1$i = $state$0116$i;
break;
}
$173 = HEAP32[$stack$3$i + 20 >> 2] | 0;
$176 = $170;
$tmp$0114$i = $168;
do {
$tmp$0114$i = $tmp$0114$i + 4 | 0;
HEAP32[$173 + ($176 << 2) >> 2] = $64;
$176 = HEAP32[$tmp$0114$i >> 2] | 0;
} while (($176 | 0) > -1);
$next_tags$1$i = $next_tags$0117$i;
$stack$5$i = $stack$3$i;
$state$1$i = $state$0116$i;
} while (0);
$134 = $trans_i$0120$i + 40 | 0;
if (!(HEAP32[$134 >> 2] | 0)) {
$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 {
$next_tags$0117$i = $next_tags$1$i;
$stack$1118$i = $stack$5$i;
$state$0116$i = $state$1$i;
$trans_i$0120$i = $trans_i$0120$i + 32 | 0;
}
}
if (!$next_tags$1$i$lcssa) $next_tags$3$i = 0; else {
$184 = HEAP32[$next_tags$1$i$lcssa >> 2] | 0;
if (($184 | 0) > -1) {
$187 = $184;
$next_tags$2127$i = $next_tags$1$i$lcssa;
while (1) {
HEAP32[$tags$0$i + ($187 << 2) >> 2] = $64;
$188 = $next_tags$2127$i + 4 | 0;
$187 = HEAP32[$188 >> 2] | 0;
if (($187 | 0) <= -1) {
$next_tags$3$i = $188;
break;
} else $next_tags$2127$i = $188;
}
} else $next_tags$3$i = $next_tags$1$i$lcssa;
}
if (!$state$1$i$lcssa) {
$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;
}
}
L315 : while (1) {
L316 : do if ((label | 0) == 82) {
label = 0;
if (($state$2$i | 0) == (HEAP32[$44 >> 2] | 0)) {
if (($match_eo$1$i | 0) >= ($pos$0$i | 0)) {
if (!($46 & ($match_eo$1$i | 0) == ($pos$0$i | 0))) {
$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 L315;
}
if (!(_tre_tag_order(HEAP32[$6 >> 2] | 0, HEAP32[$47 >> 2] | 0, $tags$0$i, $tags$0) | 0)) {
$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 L315;
}
}
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 L315;
}
if ((HEAP32[$6 >> 2] | 0) > 0) $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 L315;
}
while (1) {
HEAP32[$tags$0 + ($i3$0157$i << 2) >> 2] = HEAP32[$tags$0$i + ($i3$0157$i << 2) >> 2];
$205 = $i3$0157$i + 1 | 0;
if (($205 | 0) < (HEAP32[$6 >> 2] | 0)) $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 L315;
}
}
}
$208 = $state$2$i + 8 | 0;
do if (!(HEAP32[$208 >> 2] | 0)) label = 97; else {
if (!(HEAP32[$state$2$i + 20 >> 2] & 256)) {
label = 97;
break;
}
$216 = HEAP32[$state$2$i + 24 >> 2] | 0;
_tre_fill_pmatch($216 + 1 | 0, $pmatch$0$i, HEAP32[$2 >> 2] & -9, $1, $tags$0$i, $pos$0$i);
$221 = HEAP32[$pmatch$0$i + ($216 << 3) >> 2] | 0;
$223 = HEAP32[$pmatch$0$i + ($216 << 3) + 4 >> 2] | 0;
$224 = $223 - $221 | 0;
if (_strncmp($string + $221 | 0, $str_byte$1$i + -1 | 0, $224) | 0) {
$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 L315;
}
$229 = ($223 | 0) == ($221 | 0);
$$$i = $229 & 1;
$232 = $states_seen$0$ph$i + (HEAP32[$state$2$i + 12 >> 2] << 2) | 0;
if ($229) if (HEAP32[$232 >> 2] | 0) {
$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 L315;
}
HEAP32[$232 >> 2] = $$$i;
$235 = $224 + -1 | 0;
$236 = $str_byte$1$i + $235 | 0;
$237 = HEAP32[$next_c$i$3 >> 2] | 0;
$239 = $pos$0$i + $pos_add_next$2$i + $235 | 0;
$240 = _mbtowc($next_c$i$3, $236, 4) | 0;
if (($240 | 0) < 1) if (($240 | 0) < 0) {
$$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 L316;
} else $pos_add_next$3$i = 1; else $pos_add_next$3$i = $240;
$pos$2$i = $239;
$pos_add_next$6$i = $pos_add_next$3$i;
$prev_c$2$i = $237;
$str_byte$3$i = $236 + $pos_add_next$3$i | 0;
} while (0);
if ((label | 0) == 97) {
label = 0;
$244 = HEAP32[$next_c$i$3 >> 2] | 0;
if (!$244) {
$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 L315;
}
$246 = $pos$0$i + $pos_add_next$2$i | 0;
$247 = _mbtowc($next_c$i$3, $str_byte$1$i, 4) | 0;
if (($247 | 0) < 1) {
if (($247 | 0) < 0) {
$$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;
}
$pos_add_next$5$i = $247 + 1 | 0;
} else $pos_add_next$5$i = $247;
$pos$2$i = $246;
$pos_add_next$6$i = $pos_add_next$5$i;
$prev_c$2$i = $244;
$str_byte$3$i = $str_byte$1$i + $pos_add_next$5$i | 0;
}
if (!(HEAP32[$208 >> 2] | 0)) {
$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 L315;
}
$254 = ($pos$2$i | 0) != 0;
$255 = ($prev_c$2$i | 0) == 95;
$256 = ($pos$2$i | 0) == 0;
$or$cond30$i = $48 & ($prev_c$2$i | 0) == 10;
$or$cond27$not$i = $notlhs166$i & ($pos$2$i | 0) < 1;
$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;
L358 : while (1) {
L360 : do if ((HEAP32[$trans_i$1144$i >> 2] | 0) >>> 0 > $prev_c$2$i >>> 0) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
} else {
if ((HEAP32[$trans_i$1144$i + 4 >> 2] | 0) >>> 0 < $prev_c$2$i >>> 0) {
$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;
do if ($264) {
if (!($or$cond30$i | ($or$cond27$not$i | ($264 & 1 | 0) == 0))) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
if ($264 & 2) {
$270 = HEAP32[$next_c$i$3 >> 2] | 0;
if (!(($270 | $17 | 0) == 0 | $48 & ($270 | 0) == 10)) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
}
do if ($264 & 16) {
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 L360;
}
if (_iswalnum($prev_c$2$i) | 0) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
$278 = HEAP32[$next_c$i$3 >> 2] | 0;
if (($278 | 0) == 95) break;
if (!(_iswalnum($278) | 0)) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
} while (0);
$282 = HEAP32[$263 >> 2] | 0;
if (!($282 & 32)) $293 = $282; else {
if ($255) {
$$old37$i = HEAP32[$next_c$i$3 >> 2] | 0;
if (($$old37$i | 0) == 95) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
} else $289 = $$old37$i;
} else {
$286 = (_iswalnum($prev_c$2$i) | 0) == 0;
$287 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($286 | ($287 | 0) == 95) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
} else $289 = $287;
}
if (_iswalnum($289) | 0) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
$293 = HEAP32[$263 >> 2] | 0;
}
$295 = HEAP32[$next_c$i$3 >> 2] | 0;
do if (($295 | 0) != 0 & ($254 & ($293 & 64 | 0) != 0)) {
if ($255) {
$299 = $295;
$303 = 1;
} else {
$298 = (_iswalnum($prev_c$2$i) | 0) != 0;
$299 = HEAP32[$next_c$i$3 >> 2] | 0;
$303 = $298;
}
if (($299 | 0) == 95) 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 L360;
} else break; else if ($303 ^ (_iswalnum($299) | 0) != 0) 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 L360;
}
} while (0);
do if (HEAP32[$263 >> 2] & 128) {
$307 = HEAP32[$next_c$i$3 >> 2] | 0;
if ($256 | ($307 | 0) == 0) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
if ($255) {
$311 = $307;
$316 = 1;
} else {
$310 = (_iswalnum($prev_c$2$i) | 0) != 0;
$311 = HEAP32[$next_c$i$3 >> 2] | 0;
$316 = $310;
}
if (($311 | 0) == 95) 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 L360;
} else if ($316 ^ (_iswalnum($311) | 0) != 0) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
} else break;
} while (0);
$317 = HEAP32[$263 >> 2] | 0;
do if (!($317 & 4)) $328 = $317; else {
if (HEAP32[$2 >> 2] & 2) {
$328 = $317;
break;
}
if (!(_iswctype($prev_c$2$i, HEAP32[$trans_i$1144$i + 24 >> 2] | 0) | 0)) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
$328 = HEAP32[$263 >> 2] | 0;
} while (0);
do if ($328 & 4) {
if (!(HEAP32[$2 >> 2] & 2)) break;
$333 = _towlower($prev_c$2$i) | 0;
$334 = $trans_i$1144$i + 24 | 0;
if (_iswctype($333, HEAP32[$334 >> 2] | 0) | 0) break;
$338 = _towupper($prev_c$2$i) | 0;
if (!(_iswctype($338, HEAP32[$334 >> 2] | 0) | 0)) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
} while (0);
if (!(HEAP32[$263 >> 2] & 8)) break;
if (_tre_neg_char_classes_match(HEAP32[$trans_i$1144$i + 28 >> 2] | 0, $prev_c$2$i, HEAP32[$2 >> 2] & 2) | 0) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$7143$i;
break L360;
}
} while (0);
if (!$next_state$0147$i) {
$next_state$1$i = HEAP32[$353 >> 2] | 0;
$next_tags$6$i = HEAP32[$trans_i$1144$i + 16 >> 2] | 0;
$stack$11$i = $stack$7143$i;
break;
}
$356 = $stack$7143$i + 28 | 0;
$357 = HEAP32[$356 >> 2] | 0;
if (!$357) {
$359 = ___tre_mem_alloc_impl($20, 0, 0, 0, 32) | 0;
if (!$359) {
$next_tags$5142$i$lcssa = $next_tags$5142$i;
$stack$7143$i$lcssa = $stack$7143$i;
label = 148;
break L358;
}
HEAP32[$359 + 24 >> 2] = $stack$7143$i;
HEAP32[$359 + 28 >> 2] = 0;
$365 = ___tre_mem_alloc_impl($20, 0, 0, 0, HEAP32[$6 >> 2] << 2) | 0;
HEAP32[$359 + 20 >> 2] = $365;
if (!$365) {
$next_tags$5142$i$lcssa146 = $next_tags$5142$i;
$stack$7143$i$lcssa144 = $stack$7143$i;
label = 155;
break L358;
}
HEAP32[$356 >> 2] = $359;
$stack$9$i = $359;
} else $stack$9$i = $357;
HEAP32[$stack$9$i >> 2] = $pos$2$i;
HEAP32[$stack$9$i + 4 >> 2] = $str_byte$3$i;
HEAP32[$stack$9$i + 8 >> 2] = HEAP32[$353 >> 2];
HEAP32[$stack$9$i + 12 >> 2] = HEAP32[$trans_i$1144$i + 12 >> 2];
HEAP32[$stack$9$i + 16 >> 2] = HEAP32[$next_c$i$3 >> 2];
if ((HEAP32[$6 >> 2] | 0) > 0) {
$379 = HEAP32[$stack$9$i + 20 >> 2] | 0;
$i5$0134$i = 0;
do {
HEAP32[$379 + ($i5$0134$i << 2) >> 2] = HEAP32[$tags$0$i + ($i5$0134$i << 2) >> 2];
$i5$0134$i = $i5$0134$i + 1 | 0;
} while (($i5$0134$i | 0) < (HEAP32[$6 >> 2] | 0));
}
$387 = HEAP32[$trans_i$1144$i + 16 >> 2] | 0;
if (!$387) {
$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;
if (($389 | 0) <= -1) {
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$9$i;
break;
}
$392 = HEAP32[$stack$9$i + 20 >> 2] | 0;
$394 = $389;
$tmp9$0138$i54 = $387;
do {
HEAP32[$392 + ($394 << 2) >> 2] = $pos$2$i;
$tmp9$0138$i54 = $tmp9$0138$i54 + 4 | 0;
$394 = HEAP32[$tmp9$0138$i54 >> 2] | 0;
} while (($394 | 0) > -1);
$next_state$1$i = $next_state$0147$i;
$next_tags$6$i = $next_tags$5142$i;
$stack$11$i = $stack$9$i;
} while (0);
$353 = $trans_i$1144$i + 40 | 0;
if (!(HEAP32[$353 >> 2] | 0)) {
$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 {
$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 = $trans_i$1144$i + 32 | 0;
}
}
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;
if (!$next_state$1$i$lcssa) {
$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 L315;
}
if (!$next_tags$6$i$lcssa) {
$$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;
if (($404 | 0) > -1) {
$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;
HEAP32[$tags$0$i + ($408 << 2) >> 2] = $pos$2$i;
$408 = HEAP32[$406 >> 2] | 0;
if (($408 | 0) <= -1) {
$$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 $next_tags$7154$i = $406;
}
}
} else if ((label | 0) == 174) {
label = 0;
$412 = HEAP32[$stack$12$i + 24 >> 2] | 0;
if (!$412) {
if (($match_eo$2$i | 0) > -1 | (HEAP32[$next_c$i$3 >> 2] | 0) == 0) {
$$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$3 >> 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;
}
$415 = HEAP32[$stack$12$i + 8 >> 2] | 0;
if (HEAP32[$415 + 20 >> 2] & 256) HEAP32[$states_seen$0$ph$i + (HEAP32[$stack$12$i + 12 >> 2] << 2) >> 2] = 0;
$423 = HEAP32[$stack$12$i >> 2] | 0;
$425 = HEAP32[$stack$12$i + 4 >> 2] | 0;
HEAP32[$next_c$i$3 >> 2] = HEAP32[$stack$12$i + 16 >> 2];
$428 = HEAP32[$6 >> 2] | 0;
if (($428 | 0) <= 0) {
$$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;
}
$431 = HEAP32[$stack$12$i + 20 >> 2] | 0;
$i10$0130$i = 0;
do {
HEAP32[$tags$0$i + ($i10$0130$i << 2) >> 2] = HEAP32[$431 + ($i10$0130$i << 2) >> 2];
$i10$0130$i = $i10$0130$i + 1 | 0;
} while (($i10$0130$i | 0) != ($428 | 0));
$$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;
} 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 L225;
break;
}
case 27:
{
$match_eo$4$i$lcssa149 = $match_eo$4$i;
label = 184;
break L233;
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 L315;
break;
}
default:
{
$$15$i = 12;
$eo$1 = 0;
break L218;
}
}
}
$52 = HEAP32[$6 >> 2] | 0;
$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 L218;
}
_free($states_seen$0$ph$i);
$$15$i = 12;
$eo$1 = 0;
break L218;
} 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 L218;
}
_free($states_seen$0$ph$i);
$$15$i = 12;
$eo$1 = 0;
break L218;
} else if ((label | 0) == 184) {
$eo$0 = $match_eo$4$i$lcssa149;
$pmatch$1$i = $pmatch$0$i;
$ret$7$i = $match_eo$4$i$lcssa149 >>> 31;
$states_seen$1$i = $states_seen$0$ph$i;
$tags$1$i = $tags$0$i;
break;
}
} while (0);
___tre_mem_destroy($20);
if ($tags$1$i) _free($tags$1$i);
if ($pmatch$1$i) _free($pmatch$1$i);
if (!$states_seen$1$i) {
$$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;
}
if (!$status$0) _tre_fill_pmatch($nmatch$, $pmatch, HEAP32[$2 >> 2] | 0, $1, $tags$0, $eo$4);
if (!$tags$0) $$0 = $status$0; else {
_free($tags$0);
$$0 = $status$0;
}
}
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 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$012$i = 0, $$013$i = 0, $$03$i$33 = 0, $$07$i = 0.0, $$1$i = 0.0, $$114$i = 0, $$2$i = 0.0, $$20$i = 0.0, $$210$i = 0, $$23$i = 0, $$25$i = 0, $$3$i = 0.0, $$311$i = 0, $$33$i = 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$3192$i = 0, $$fl$4 = 0, $$lcssa = 0, $$lcssa162$i = 0, $$lcssa293 = 0, $$lcssa298 = 0, $$lcssa299 = 0, $$lcssa300 = 0, $$lcssa301 = 0, $$lcssa302 = 0, $$lcssa304 = 0, $$lcssa314 = 0, $$lcssa317 = 0.0, $$lcssa319 = 0, $$p$$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr50$i = 0, $$pre$phi190$iZ2D = 0, $$pre171 = 0, $$pre188$i = 0, $$z$4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $107 = 0, $108 = 0, $11 = 0, $110 = 0, $12 = 0, $13 = 0, $134 = 0, $135 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $145 = 0, $147 = 0, $149 = 0, $15 = 0, $150 = 0, $155 = 0, $158 = 0, $16 = 0, $163 = 0, $164 = 0, $169 = 0, $176 = 0, $177 = 0, $188 = 0, $2 = 0, $200 = 0, $207 = 0, $209 = 0, $212 = 0, $213 = 0, $218 = 0, $22 = 0, $224 = 0, $225 = 0, $231 = 0, $24 = 0, $244 = 0, $246 = 0, $249 = 0, $25 = 0, $254 = 0, $257 = 0, $258 = 0, $267 = 0, $270 = 0, $272 = 0, $275 = 0, $277 = 0, $278 = 0, $279 = 0, $285 = 0, $287 = 0, $288 = 0, $29 = 0, $292 = 0, $3 = 0, $30 = 0, $300 = 0, $306 = 0, $318 = 0, $321 = 0, $322 = 0, $334 = 0, $336 = 0, $341 = 0, $345 = 0, $348 = 0, $35 = 0, $358 = 0.0, $365 = 0, $369 = 0, $376 = 0, $378 = 0, $380 = 0, $381 = 0, $385 = 0, $391 = 0.0, $392 = 0, $395 = 0, $397 = 0, $4 = 0, $40 = 0, $400 = 0, $402 = 0, $406 = 0.0, $41 = 0, $416 = 0, $419 = 0, $422 = 0, $431 = 0, $433 = 0, $434 = 0, $440 = 0, $45 = 0, $452 = 0, $457 = 0, $462 = 0, $466 = 0, $47 = 0, $476 = 0, $477 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $487 = 0, $489 = 0, $492 = 0, $494 = 0, $495 = 0, $496 = 0, $498 = 0, $5 = 0, $502 = 0, $504 = 0, $508 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $518 = 0, $52 = 0, $524 = 0, $525 = 0, $526 = 0, $530 = 0, $538 = 0, $552 = 0, $553 = 0, $556 = 0, $561 = 0, $562 = 0, $564 = 0, $57 = 0, $572 = 0, $575 = 0, $578 = 0, $579 = 0, $580 = 0, $583 = 0, $587 = 0, $595 = 0, $598 = 0, $6 = 0, $60 = 0, $600 = 0, $602 = 0, $604 = 0, $609 = 0, $61 = 0, $610 = 0, $613 = 0, $615 = 0, $617 = 0, $619 = 0, $62 = 0, $630 = 0, $633 = 0, $638 = 0, $647 = 0, $648 = 0, $652 = 0, $655 = 0, $657 = 0, $659 = 0, $66 = 0, $663 = 0, $666 = 0, $670 = 0, $68 = 0, $680 = 0, $685 = 0, $692 = 0, $697 = 0, $7 = 0, $705 = 0, $715 = 0, $719 = 0, $727 = 0, $734 = 0, $736 = 0, $740 = 0, $742 = 0, $751 = 0, $757 = 0, $772 = 0, $774 = 0, $787 = 0, $798 = 0, $8 = 0, $9 = 0, $92 = 0, $93 = 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, $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$141$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, $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, $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$i$25 = 0, $i$1$lcssa$i = 0, $i$1116 = 0, $i$1118$i = 0, $i$2105$i = 0, $i$291 = 0, $i$291$lcssa = 0, $i$3101$i = 0, $i$389 = 0, $isdigittmp = 0, $isdigittmp$1$i = 0, $isdigittmp$1$i$22 = 0, $isdigittmp11 = 0, $isdigittmp4$i = 0, $isdigittmp4$i$24 = 0, $isdigittmp9 = 0, $j$0$117$i = 0, $j$0119$i = 0, $j$1102$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1104 = 0, $l$2 = 0, $l10n$0 = 0, $l10n$0$lcssa = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0, $mb = 0, $notrhs$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $p$4176 = 0, $p$5 = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0, $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, $s$7 = 0, $s$7$lcssa296 = 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, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $st$0$lcssa297 = 0, $storemerge = 0, $storemerge$13 = 0, $storemerge$851 = 0, $storemerge$899 = 0, $t$0 = 0, $t$1 = 0, $w$0 = 0, $w$1 = 0, $w$2 = 0, $wc = 0, $ws$0106 = 0, $ws$1117 = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$093 = 0, $z$1$lcssa$i = 0, $z$1148$i = 0, $z$2 = 0, $z$2$i = 0, $z$2$i$lcssa = 0, $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;
$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;
$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) {
do if (($cnt$0 | 0) > -1) if (($l$0 | 0) > (2147483647 - $cnt$0 | 0)) {
HEAP32[(___errno_location() | 0) >> 2] = 75;
$cnt$1 = -1;
break;
} else {
$cnt$1 = $l$0 + $cnt$0 | 0;
break;
} else $cnt$1 = $cnt$0; while (0);
$22 = HEAP8[$s$0 >> 0] | 0;
if (!($22 << 24 >> 24)) {
$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;
$24 = HEAP8[$25 >> 0] | 0;
$s$1 = $25;
}
L12 : do if ((label | 0) == 9) while (1) {
label = 0;
if ((HEAP8[$s$292 + 1 >> 0] | 0) != 37) {
$s$2$lcssa = $s$292;
$z$0$lcssa = $z$093;
break L12;
}
$29 = $z$093 + 1 | 0;
$30 = $s$292 + 2 | 0;
if ((HEAP8[$30 >> 0] | 0) == 37) {
$s$292 = $30;
$z$093 = $29;
label = 9;
} else {
$s$2$lcssa = $30;
$z$0$lcssa = $29;
break;
}
} while (0);
$35 = $z$0$lcssa - $s$0 | 0;
if ($0) if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s$0, $35, $f) | 0;
if (($z$0$lcssa | 0) != ($s$0 | 0)) {
$cnt$0 = $cnt$1;
$l$0 = $35;
$s$0 = $s$2$lcssa;
continue;
}
$40 = $s$2$lcssa + 1 | 0;
$41 = HEAP8[$40 >> 0] | 0;
$isdigittmp = ($41 << 24 >> 24) + -48 | 0;
if ($isdigittmp >>> 0 < 10) {
$45 = (HEAP8[$s$2$lcssa + 2 >> 0] | 0) == 36;
$$43 = $45 ? $s$2$lcssa + 3 | 0 : $40;
$48 = HEAP8[$$43 >> 0] | 0;
$argpos$0 = $45 ? $isdigittmp : -1;
$l10n$1 = $45 ? 1 : $l10n$0;
$storemerge = $$43;
} else {
$48 = $41;
$argpos$0 = -1;
$l10n$1 = $l10n$0;
$storemerge = $40;
}
$47 = $48 << 24 >> 24;
L25 : do if (($47 & -32 | 0) == 32) {
$52 = $47;
$57 = $48;
$fl$0100 = 0;
$storemerge$899 = $storemerge;
while (1) {
if (!(1 << $52 + -32 & 75913)) {
$66 = $57;
$fl$053 = $fl$0100;
$storemerge$851 = $storemerge$899;
break L25;
}
$60 = 1 << ($57 << 24 >> 24) + -32 | $fl$0100;
$61 = $storemerge$899 + 1 | 0;
$62 = HEAP8[$61 >> 0] | 0;
$52 = $62 << 24 >> 24;
if (($52 & -32 | 0) != 32) {
$66 = $62;
$fl$053 = $60;
$storemerge$851 = $61;
break;
} else {
$57 = $62;
$fl$0100 = $60;
$storemerge$899 = $61;
}
}
} else {
$66 = $48;
$fl$053 = 0;
$storemerge$851 = $storemerge;
} while (0);
do if ($66 << 24 >> 24 == 42) {
$68 = $storemerge$851 + 1 | 0;
$isdigittmp11 = (HEAP8[$68 >> 0] | 0) + -48 | 0;
if ($isdigittmp11 >>> 0 < 10) if ((HEAP8[$storemerge$851 + 2 >> 0] | 0) == 36) {
HEAP32[$nl_type + ($isdigittmp11 << 2) >> 2] = 10;
$l10n$2 = 1;
$storemerge$13 = $storemerge$851 + 3 | 0;
$w$0 = HEAP32[$nl_arg + ((HEAP8[$68 >> 0] | 0) + -48 << 3) >> 2] | 0;
} else label = 24; else label = 24;
if ((label | 0) == 24) {
label = 0;
if ($l10n$1) {
$$0 = -1;
break L1;
}
if (!$0) {
$fl$1 = $fl$053;
$l10n$3 = 0;
$s$4 = $68;
$w$1 = 0;
break;
}
$92 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$93 = HEAP32[$92 >> 2] | 0;
HEAP32[$ap >> 2] = $92 + 4;
$l10n$2 = 0;
$storemerge$13 = $68;
$w$0 = $93;
}
if (($w$0 | 0) < 0) {
$fl$1 = $fl$053 | 8192;
$l10n$3 = $l10n$2;
$s$4 = $storemerge$13;
$w$1 = 0 - $w$0 | 0;
} else {
$fl$1 = $fl$053;
$l10n$3 = $l10n$2;
$s$4 = $storemerge$13;
$w$1 = $w$0;
}
} else {
$isdigittmp$1$i = ($66 << 24 >> 24) + -48 | 0;
if ($isdigittmp$1$i >>> 0 < 10) {
$101 = $storemerge$851;
$i$03$i = 0;
$isdigittmp4$i = $isdigittmp$1$i;
while (1) {
$99 = ($i$03$i * 10 | 0) + $isdigittmp4$i | 0;
$100 = $101 + 1 | 0;
$isdigittmp4$i = (HEAP8[$100 >> 0] | 0) + -48 | 0;
if ($isdigittmp4$i >>> 0 >= 10) {
$$lcssa = $99;
$$lcssa293 = $100;
break;
} else {
$101 = $100;
$i$03$i = $99;
}
}
if (($$lcssa | 0) < 0) {
$$0 = -1;
break L1;
} else {
$fl$1 = $fl$053;
$l10n$3 = $l10n$1;
$s$4 = $$lcssa293;
$w$1 = $$lcssa;
}
} else {
$fl$1 = $fl$053;
$l10n$3 = $l10n$1;
$s$4 = $storemerge$851;
$w$1 = 0;
}
} while (0);
L46 : do if ((HEAP8[$s$4 >> 0] | 0) == 46) {
$107 = $s$4 + 1 | 0;
$108 = HEAP8[$107 >> 0] | 0;
if ($108 << 24 >> 24 != 42) {
$isdigittmp$1$i$22 = ($108 << 24 >> 24) + -48 | 0;
if ($isdigittmp$1$i$22 >>> 0 < 10) {
$140 = $107;
$i$03$i$25 = 0;
$isdigittmp4$i$24 = $isdigittmp$1$i$22;
} else {
$p$0 = 0;
$s$6 = $107;
break;
}
while (1) {
$138 = ($i$03$i$25 * 10 | 0) + $isdigittmp4$i$24 | 0;
$139 = $140 + 1 | 0;
$isdigittmp4$i$24 = (HEAP8[$139 >> 0] | 0) + -48 | 0;
if ($isdigittmp4$i$24 >>> 0 >= 10) {
$p$0 = $138;
$s$6 = $139;
break L46;
} else {
$140 = $139;
$i$03$i$25 = $138;
}
}
}
$110 = $s$4 + 2 | 0;
$isdigittmp9 = (HEAP8[$110 >> 0] | 0) + -48 | 0;
if ($isdigittmp9 >>> 0 < 10) if ((HEAP8[$s$4 + 3 >> 0] | 0) == 36) {
HEAP32[$nl_type + ($isdigittmp9 << 2) >> 2] = 10;
$p$0 = HEAP32[$nl_arg + ((HEAP8[$110 >> 0] | 0) + -48 << 3) >> 2] | 0;
$s$6 = $s$4 + 4 | 0;
break;
}
if ($l10n$3) {
$$0 = -1;
break L1;
}
if ($0) {
$134 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$135 = HEAP32[$134 >> 2] | 0;
HEAP32[$ap >> 2] = $134 + 4;
$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) {
$145 = (HEAP8[$s$7 >> 0] | 0) + -65 | 0;
if ($145 >>> 0 > 57) {
$$0 = -1;
break L1;
}
$147 = $s$7 + 1 | 0;
$149 = HEAP8[69264 + ($st$0 * 58 | 0) + $145 >> 0] | 0;
$150 = $149 & 255;
if (($150 + -1 | 0) >>> 0 < 8) {
$s$7 = $147;
$st$0 = $150;
} else {
$$lcssa298 = $147;
$$lcssa299 = $149;
$$lcssa300 = $150;
$s$7$lcssa296 = $s$7;
$st$0$lcssa297 = $st$0;
break;
}
}
if (!($$lcssa299 << 24 >> 24)) {
$$0 = -1;
break;
}
$155 = ($argpos$0 | 0) > -1;
do if ($$lcssa299 << 24 >> 24 == 19) if ($155) {
$$0 = -1;
break L1;
} else label = 52; else {
if ($155) {
HEAP32[$nl_type + ($argpos$0 << 2) >> 2] = $$lcssa300;
$158 = $nl_arg + ($argpos$0 << 3) | 0;
$163 = HEAP32[$158 + 4 >> 2] | 0;
$164 = $arg;
HEAP32[$164 >> 2] = HEAP32[$158 >> 2];
HEAP32[$164 + 4 >> 2] = $163;
label = 52;
break;
}
if (!$0) {
$$0 = 0;
break L1;
}
_pop_arg_180($arg, $$lcssa300, $ap);
} while (0);
if ((label | 0) == 52) {
label = 0;
if (!$0) {
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue;
}
}
$169 = HEAP8[$s$7$lcssa296 >> 0] | 0;
$t$0 = ($st$0$lcssa297 | 0) != 0 & ($169 & 15 | 0) == 3 ? $169 & -33 : $169;
$176 = $fl$1 & -65537;
$fl$1$ = ($fl$1 & 8192 | 0) == 0 ? $fl$1 : $176;
L75 : do switch ($t$0 | 0) {
case 110:
{
switch ($st$0$lcssa297 | 0) {
case 0:
{
HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
case 1:
{
HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
case 2:
{
$188 = HEAP32[$arg >> 2] | 0;
HEAP32[$188 >> 2] = $cnt$1;
HEAP32[$188 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
case 3:
{
HEAP16[HEAP32[$arg >> 2] >> 1] = $cnt$1;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
case 4:
{
HEAP8[HEAP32[$arg >> 2] >> 0] = $cnt$1;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
case 6:
{
HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
case 7:
{
$200 = HEAP32[$arg >> 2] | 0;
HEAP32[$200 >> 2] = $cnt$1;
HEAP32[$200 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31;
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
default:
{
$cnt$0 = $cnt$1;
$l$0 = $35;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
}
}
break;
}
case 112:
{
$fl$3 = $fl$1$ | 8;
$p$1 = $p$0 >>> 0 > 8 ? $p$0 : 8;
$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;
$246 = HEAP32[$244 >> 2] | 0;
$249 = HEAP32[$244 + 4 >> 2] | 0;
if (($246 | 0) == 0 & ($249 | 0) == 0) $$0$lcssa$i = $1; else {
$$03$i$33 = $1;
$254 = $246;
$258 = $249;
while (1) {
$257 = $$03$i$33 + -1 | 0;
HEAP8[$257 >> 0] = $254 & 7 | 48;
$254 = _bitshift64Lshr($254 | 0, $258 | 0, 3) | 0;
$258 = tempRet0;
if (($254 | 0) == 0 & ($258 | 0) == 0) {
$$0$lcssa$i = $257;
break;
} else $$03$i$33 = $257;
}
}
if (!($fl$1$ & 8)) {
$a$0 = $$0$lcssa$i;
$fl$4 = $fl$1$;
$p$2 = $p$0;
$pl$1 = 0;
$prefix$1 = 69744;
label = 77;
} else {
$267 = $2 - $$0$lcssa$i | 0;
$a$0 = $$0$lcssa$i;
$fl$4 = $fl$1$;
$p$2 = ($p$0 | 0) > ($267 | 0) ? $p$0 : $267 + 1 | 0;
$pl$1 = 0;
$prefix$1 = 69744;
label = 77;
}
break;
}
case 105:
case 100:
{
$270 = $arg;
$272 = HEAP32[$270 >> 2] | 0;
$275 = HEAP32[$270 + 4 >> 2] | 0;
if (($275 | 0) < 0) {
$277 = _i64Subtract(0, 0, $272 | 0, $275 | 0) | 0;
$278 = tempRet0;
$279 = $arg;
HEAP32[$279 >> 2] = $277;
HEAP32[$279 + 4 >> 2] = $278;
$287 = $277;
$288 = $278;
$pl$0 = 1;
$prefix$0 = 69744;
label = 76;
break L75;
}
if (!($fl$1$ & 2048)) {
$285 = $fl$1$ & 1;
$287 = $272;
$288 = $275;
$pl$0 = $285;
$prefix$0 = ($285 | 0) == 0 ? 69744 : 69746;
label = 76;
} else {
$287 = $272;
$288 = $275;
$pl$0 = 1;
$prefix$0 = 69745;
label = 76;
}
break;
}
case 117:
{
$177 = $arg;
$287 = HEAP32[$177 >> 2] | 0;
$288 = HEAP32[$177 + 4 >> 2] | 0;
$pl$0 = 0;
$prefix$0 = 69744;
label = 76;
break;
}
case 99:
{
HEAP8[$3 >> 0] = HEAP32[$arg >> 2];
$a$2 = $3;
$fl$6 = $176;
$p$5 = 1;
$pl$2 = 0;
$prefix$2 = 69744;
$z$2 = $1;
break;
}
case 109:
{
$a$1 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
label = 82;
break;
}
case 115:
{
$318 = HEAP32[$arg >> 2] | 0;
$a$1 = ($318 | 0) != 0 ? $318 : 69754;
label = 82;
break;
}
case 67:
{
HEAP32[$wc >> 2] = HEAP32[$arg >> 2];
HEAP32[$4 >> 2] = 0;
HEAP32[$arg >> 2] = $wc;
$798 = $wc;
$p$4176 = -1;
label = 86;
break;
}
case 83:
{
$$pre171 = HEAP32[$arg >> 2] | 0;
if (!$p$0) {
_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;
if ((HEAP32[tempDoublePtr + 4 >> 2] | 0) < 0) {
$$07$i = -$358;
$pl$0$i = 1;
$prefix$0$i = 69761;
} else if (!($fl$1$ & 2048)) {
$365 = $fl$1$ & 1;
$$07$i = $358;
$pl$0$i = $365;
$prefix$0$i = ($365 | 0) == 0 ? 69762 : 69767;
} else {
$$07$i = $358;
$pl$0$i = 1;
$prefix$0$i = 69764;
}
HEAPF64[tempDoublePtr >> 3] = $$07$i;
$369 = HEAP32[tempDoublePtr + 4 >> 2] & 2146435072;
do if ($369 >>> 0 < 2146435072 | ($369 | 0) == 2146435072 & 0 < 0) {
$391 = +_frexpl($$07$i, $e2$i) * 2.0;
$392 = $391 != 0.0;
if ($392) HEAP32[$e2$i >> 2] = (HEAP32[$e2$i >> 2] | 0) + -1;
$395 = $t$0 | 32;
if (($395 | 0) == 97) {
$397 = $t$0 & 32;
$prefix$0$$i = ($397 | 0) == 0 ? $prefix$0$i : $prefix$0$i + 9 | 0;
$400 = $pl$0$i | 2;
$402 = 12 - $p$0 | 0;
do if ($p$0 >>> 0 > 11 | ($402 | 0) == 0) $$1$i = $391; else {
$re$171$i = $402;
$round$070$i = 8.0;
while (1) {
$re$171$i = $re$171$i + -1 | 0;
$406 = $round$070$i * 16.0;
if (!$re$171$i) {
$$lcssa317 = $406;
break;
} else $round$070$i = $406;
}
if ((HEAP8[$prefix$0$$i >> 0] | 0) == 45) {
$$1$i = -($$lcssa317 + (-$391 - $$lcssa317));
break;
} else {
$$1$i = $391 + $$lcssa317 - $$lcssa317;
break;
}
} while (0);
$416 = HEAP32[$e2$i >> 2] | 0;
$419 = ($416 | 0) < 0 ? 0 - $416 | 0 : $416;
$422 = _fmt_u($419, (($419 | 0) < 0) << 31 >> 31, $7) | 0;
if (($422 | 0) == ($7 | 0)) {
HEAP8[$8 >> 0] = 48;
$estr$0$i = $8;
} else $estr$0$i = $422;
HEAP8[$estr$0$i + -1 >> 0] = ($416 >> 31 & 2) + 43;
$431 = $estr$0$i + -2 | 0;
HEAP8[$431 >> 0] = $t$0 + 15;
$notrhs$i = ($p$0 | 0) < 1;
$433 = ($fl$1$ & 8 | 0) == 0;
$$2$i = $$1$i;
$s$0$i = $buf$i;
while (1) {
$434 = ~~$$2$i;
$440 = $s$0$i + 1 | 0;
HEAP8[$s$0$i >> 0] = HEAPU8[69728 + $434 >> 0] | $397;
$$2$i = ($$2$i - +($434 | 0)) * 16.0;
do if (($440 - $5 | 0) == 1) {
if ($433 & ($notrhs$i & $$2$i == 0.0)) {
$s$1$i = $440;
break;
}
HEAP8[$440 >> 0] = 46;
$s$1$i = $s$0$i + 2 | 0;
} else $s$1$i = $440; while (0);
if (!($$2$i != 0.0)) {
$s$1$i$lcssa = $s$1$i;
break;
} else $s$0$i = $s$1$i;
}
$$pre188$i = $s$1$i$lcssa;
$452 = $431;
$l$0$i = ($p$0 | 0) != 0 & ($11 + $$pre188$i | 0) < ($p$0 | 0) ? $12 + $p$0 - $452 | 0 : $10 - $452 + $$pre188$i | 0;
$457 = $l$0$i + $400 | 0;
_pad($f, 32, $w$1, $457, $fl$1$);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$$i, $400, $f) | 0;
_pad($f, 48, $w$1, $457, $fl$1$ ^ 65536);
$462 = $$pre188$i - $5 | 0;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($buf$i, $462, $f) | 0;
$466 = $9 - $452 | 0;
_pad($f, 48, $l$0$i - ($462 + $466) | 0, 0, 0);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($431, $466, $f) | 0;
_pad($f, 32, $w$1, $457, $fl$1$ ^ 8192);
$$0$i = ($457 | 0) < ($w$1 | 0) ? $w$1 : $457;
break;
}
$$p$i = ($p$0 | 0) < 0 ? 6 : $p$0;
if ($392) {
$476 = (HEAP32[$e2$i >> 2] | 0) + -28 | 0;
HEAP32[$e2$i >> 2] = $476;
$$3$i = $391 * 268435456.0;
$477 = $476;
} else {
$$3$i = $391;
$477 = HEAP32[$e2$i >> 2] | 0;
}
$$33$i = ($477 | 0) < 0 ? $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;
$$4$i = ($$4$i - +($480 >>> 0)) * 1.0e9;
if (!($$4$i != 0.0)) {
$$lcssa301 = $481;
break;
} else $z$0$i = $481;
}
$$pr$i = HEAP32[$e2$i >> 2] | 0;
if (($$pr$i | 0) > 0) {
$487 = $$pr$i;
$a$1149$i = $$33$i;
$z$1148$i = $$lcssa301;
while (1) {
$489 = ($487 | 0) > 29 ? 29 : $487;
$d$0$141$i = $z$1148$i + -4 | 0;
do if ($d$0$141$i >>> 0 < $a$1149$i >>> 0) $a$2$ph$i = $a$1149$i; else {
$carry$0142$i = 0;
$d$0143$i = $d$0$141$i;
while (1) {
$492 = _bitshift64Shl(HEAP32[$d$0143$i >> 2] | 0, 0, $489 | 0) | 0;
$494 = _i64Add($492 | 0, tempRet0 | 0, $carry$0142$i | 0, 0) | 0;
$495 = tempRet0;
$496 = ___uremdi3($494 | 0, $495 | 0, 1e9, 0) | 0;
HEAP32[$d$0143$i >> 2] = $496;
$498 = ___udivdi3($494 | 0, $495 | 0, 1e9, 0) | 0;
$d$0143$i = $d$0143$i + -4 | 0;
if ($d$0143$i >>> 0 < $a$1149$i >>> 0) {
$$lcssa302 = $498;
break;
} else $carry$0142$i = $498;
}
if (!$$lcssa302) {
$a$2$ph$i = $a$1149$i;
break;
}
$502 = $a$1149$i + -4 | 0;
HEAP32[$502 >> 2] = $$lcssa302;
$a$2$ph$i = $502;
} while (0);
$z$2$i = $z$1148$i;
while (1) {
if ($z$2$i >>> 0 <= $a$2$ph$i >>> 0) {
$z$2$i$lcssa = $z$2$i;
break;
}
$504 = $z$2$i + -4 | 0;
if (!(HEAP32[$504 >> 2] | 0)) $z$2$i = $504; else {
$z$2$i$lcssa = $z$2$i;
break;
}
}
$508 = (HEAP32[$e2$i >> 2] | 0) - $489 | 0;
HEAP32[$e2$i >> 2] = $508;
if (($508 | 0) > 0) {
$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 = $$lcssa301;
}
if (($$pr50$i | 0) < 0) {
$513 = (($$p$i + 25 | 0) / 9 | 0) + 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;
$518 = ($515 | 0) > 9 ? 9 : $515;
do if ($a$3136$i >>> 0 < $z$3135$i >>> 0) {
$524 = (1 << $518) + -1 | 0;
$525 = 1e9 >>> $518;
$carry3$0130$i = 0;
$d$1129$i = $a$3136$i;
while (1) {
$526 = HEAP32[$d$1129$i >> 2] | 0;
HEAP32[$d$1129$i >> 2] = ($526 >>> $518) + $carry3$0130$i;
$530 = Math_imul($526 & $524, $525) | 0;
$d$1129$i = $d$1129$i + 4 | 0;
if ($d$1129$i >>> 0 >= $z$3135$i >>> 0) {
$$lcssa304 = $530;
break;
} else $carry3$0130$i = $530;
}
$$a$3$i = (HEAP32[$a$3136$i >> 2] | 0) == 0 ? $a$3136$i + 4 | 0 : $a$3136$i;
if (!$$lcssa304) {
$$a$3192$i = $$a$3$i;
$z$4$i = $z$3135$i;
break;
}
HEAP32[$z$3135$i >> 2] = $$lcssa304;
$$a$3192$i = $$a$3$i;
$z$4$i = $z$3135$i + 4 | 0;
} else {
$$a$3192$i = (HEAP32[$a$3136$i >> 2] | 0) == 0 ? $a$3136$i + 4 | 0 : $a$3136$i;
$z$4$i = $z$3135$i;
} while (0);
$538 = $514 ? $$33$i : $$a$3192$i;
$$z$4$i = ($z$4$i - $538 >> 2 | 0) > ($513 | 0) ? $538 + ($513 << 2) | 0 : $z$4$i;
$516 = (HEAP32[$e2$i >> 2] | 0) + $518 | 0;
HEAP32[$e2$i >> 2] = $516;
if (($516 | 0) >= 0) {
$a$3$lcssa$i = $$a$3192$i;
$z$3$lcssa$i = $$z$4$i;
break;
} else {
$a$3136$i = $$a$3192$i;
$z$3135$i = $$z$4$i;
}
}
} else {
$a$3$lcssa$i = $a$1$lcssa$i;
$z$3$lcssa$i = $z$1$lcssa$i;
}
do if ($a$3$lcssa$i >>> 0 < $z$3$lcssa$i >>> 0) {
$552 = ($479 - $a$3$lcssa$i >> 2) * 9 | 0;
$553 = HEAP32[$a$3$lcssa$i >> 2] | 0;
if ($553 >>> 0 < 10) {
$e$1$i = $552;
break;
} else {
$e$0125$i = $552;
$i$0124$i = 10;
}
while (1) {
$i$0124$i = $i$0124$i * 10 | 0;
$556 = $e$0125$i + 1 | 0;
if ($553 >>> 0 < $i$0124$i >>> 0) {
$e$1$i = $556;
break;
} else $e$0125$i = $556;
}
} else $e$1$i = 0; while (0);
$561 = ($395 | 0) == 103;
$562 = ($$p$i | 0) != 0;
$564 = $$p$i - (($395 | 0) != 102 ? $e$1$i : 0) + (($562 & $561) << 31 >> 31) | 0;
if (($564 | 0) < ((($z$3$lcssa$i - $479 >> 2) * 9 | 0) + -9 | 0)) {
$572 = $564 + 9216 | 0;
$575 = $$33$i + 4 + ((($572 | 0) / 9 | 0) + -1024 << 2) | 0;
$j$0$117$i = (($572 | 0) % 9 | 0) + 1 | 0;
if (($j$0$117$i | 0) < 9) {
$i$1118$i = 10;
$j$0119$i = $j$0$117$i;
while (1) {
$578 = $i$1118$i * 10 | 0;
$j$0119$i = $j$0119$i + 1 | 0;
if (($j$0119$i | 0) == 9) {
$i$1$lcssa$i = $578;
break;
} else $i$1118$i = $578;
}
} else $i$1$lcssa$i = 10;
$579 = HEAP32[$575 >> 2] | 0;
$580 = ($579 >>> 0) % ($i$1$lcssa$i >>> 0) | 0;
$583 = ($575 + 4 | 0) == ($z$3$lcssa$i | 0);
do if ($583 & ($580 | 0) == 0) {
$a$8$i = $a$3$lcssa$i;
$d$4$i = $575;
$e$4$i = $e$1$i;
} else {
$$20$i = ((($579 >>> 0) / ($i$1$lcssa$i >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0;
$587 = ($i$1$lcssa$i | 0) / 2 | 0;
if ($580 >>> 0 < $587 >>> 0) $small$0$i = .5; else $small$0$i = $583 & ($580 | 0) == ($587 | 0) ? 1.0 : 1.5;
do if (!$pl$0$i) {
$round6$1$i = $$20$i;
$small$1$i = $small$0$i;
} else {
if ((HEAP8[$prefix$0$i >> 0] | 0) != 45) {
$round6$1$i = $$20$i;
$small$1$i = $small$0$i;
break;
}
$round6$1$i = -$$20$i;
$small$1$i = -$small$0$i;
} while (0);
$595 = $579 - $580 | 0;
HEAP32[$575 >> 2] = $595;
if (!($round6$1$i + $small$1$i != $round6$1$i)) {
$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;
if ($598 >>> 0 > 999999999) {
$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;
if ($600 >>> 0 < $a$5111$i >>> 0) {
$602 = $a$5111$i + -4 | 0;
HEAP32[$602 >> 2] = 0;
$a$6$i = $602;
} else $a$6$i = $a$5111$i;
$604 = (HEAP32[$600 >> 2] | 0) + 1 | 0;
HEAP32[$600 >> 2] = $604;
if ($604 >>> 0 > 999999999) {
$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;
}
$609 = ($479 - $a$5$lcssa$i >> 2) * 9 | 0;
$610 = HEAP32[$a$5$lcssa$i >> 2] | 0;
if ($610 >>> 0 < 10) {
$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) {
$i$2105$i = $i$2105$i * 10 | 0;
$613 = $e$2106$i + 1 | 0;
if ($610 >>> 0 < $i$2105$i >>> 0) {
$a$8$i = $a$5$lcssa$i;
$d$4$i = $d$2$lcssa$i;
$e$4$i = $613;
break;
} else $e$2106$i = $613;
}
} while (0);
$615 = $d$4$i + 4 | 0;
$a$9$ph$i = $a$8$i;
$e$5$ph$i = $e$4$i;
$z$7$ph$i = $z$3$lcssa$i >>> 0 > $615 >>> 0 ? $615 : $z$3$lcssa$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) {
if ($z$7$i >>> 0 <= $a$9$ph$i >>> 0) {
$$lcssa162$i = 0;
$z$7$i$lcssa = $z$7$i;
break;
}
$619 = $z$7$i + -4 | 0;
if (!(HEAP32[$619 >> 2] | 0)) $z$7$i = $619; else {
$$lcssa162$i = 1;
$z$7$i$lcssa = $z$7$i;
break;
}
}
do if ($561) {
$$p$$i = ($562 & 1 ^ 1) + $$p$i | 0;
if (($$p$$i | 0) > ($e$5$ph$i | 0) & ($e$5$ph$i | 0) > -5) {
$$013$i = $t$0 + -1 | 0;
$$210$i = $$p$$i + -1 - $e$5$ph$i | 0;
} else {
$$013$i = $t$0 + -2 | 0;
$$210$i = $$p$$i + -1 | 0;
}
$630 = $fl$1$ & 8;
if ($630) {
$$114$i = $$013$i;
$$311$i = $$210$i;
$$pre$phi190$iZ2D = $630;
break;
}
do if ($$lcssa162$i) {
$633 = HEAP32[$z$7$i$lcssa + -4 >> 2] | 0;
if (!$633) {
$j$2$i = 9;
break;
}
if (!(($633 >>> 0) % 10 | 0)) {
$i$3101$i = 10;
$j$1102$i = 0;
} else {
$j$2$i = 0;
break;
}
while (1) {
$i$3101$i = $i$3101$i * 10 | 0;
$638 = $j$1102$i + 1 | 0;
if (($633 >>> 0) % ($i$3101$i >>> 0) | 0) {
$j$2$i = $638;
break;
} else $j$1102$i = $638;
}
} else $j$2$i = 9; while (0);
$647 = (($z$7$i$lcssa - $479 >> 2) * 9 | 0) + -9 | 0;
if (($$013$i | 32 | 0) == 102) {
$648 = $647 - $j$2$i | 0;
$$23$i = ($648 | 0) < 0 ? 0 : $648;
$$114$i = $$013$i;
$$311$i = ($$210$i | 0) < ($$23$i | 0) ? $$210$i : $$23$i;
$$pre$phi190$iZ2D = 0;
break;
} else {
$652 = $647 + $e$5$ph$i - $j$2$i | 0;
$$25$i = ($652 | 0) < 0 ? 0 : $652;
$$114$i = $$013$i;
$$311$i = ($$210$i | 0) < ($$25$i | 0) ? $$210$i : $$25$i;
$$pre$phi190$iZ2D = 0;
break;
}
} else {
$$114$i = $t$0;
$$311$i = $$p$i;
$$pre$phi190$iZ2D = $fl$1$ & 8;
} while (0);
$655 = $$311$i | $$pre$phi190$iZ2D;
$657 = ($655 | 0) != 0 & 1;
$659 = ($$114$i | 32 | 0) == 102;
if ($659) {
$$pn$i = ($e$5$ph$i | 0) > 0 ? $e$5$ph$i : 0;
$estr$2$i = 0;
} else {
$663 = ($e$5$ph$i | 0) < 0 ? $617 : $e$5$ph$i;
$666 = _fmt_u($663, (($663 | 0) < 0) << 31 >> 31, $7) | 0;
if (($9 - $666 | 0) < 2) {
$estr$195$i = $666;
while (1) {
$670 = $estr$195$i + -1 | 0;
HEAP8[$670 >> 0] = 48;
if (($9 - $670 | 0) < 2) $estr$195$i = $670; else {
$estr$1$lcssa$i = $670;
break;
}
}
} else $estr$1$lcssa$i = $666;
HEAP8[$estr$1$lcssa$i + -1 >> 0] = ($e$5$ph$i >> 31 & 2) + 43;
$680 = $estr$1$lcssa$i + -2 | 0;
HEAP8[$680 >> 0] = $$114$i;
$$pn$i = $9 - $680 | 0;
$estr$2$i = $680;
}
$685 = $pl$0$i + 1 + $$311$i + $657 + $$pn$i | 0;
_pad($f, 32, $w$1, $685, $fl$1$);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$i, $pl$0$i, $f) | 0;
_pad($f, 48, $w$1, $685, $fl$1$ ^ 65536);
do if ($659) {
$r$0$a$9$i = $a$9$ph$i >>> 0 > $$33$i >>> 0 ? $$33$i : $a$9$ph$i;
$d$584$i = $r$0$a$9$i;
while (1) {
$692 = _fmt_u(HEAP32[$d$584$i >> 2] | 0, 0, $14) | 0;
do if (($d$584$i | 0) == ($r$0$a$9$i | 0)) {
if (($692 | 0) != ($14 | 0)) {
$s7$1$i = $692;
break;
}
HEAP8[$16 >> 0] = 48;
$s7$1$i = $16;
} else {
if ($692 >>> 0 <= $buf$i >>> 0) {
$s7$1$i = $692;
break;
}
_memset($buf$i | 0, 48, $692 - $5 | 0) | 0;
$s7$081$i = $692;
while (1) {
$697 = $s7$081$i + -1 | 0;
if ($697 >>> 0 > $buf$i >>> 0) $s7$081$i = $697; else {
$s7$1$i = $697;
break;
}
}
} while (0);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s7$1$i, $15 - $s7$1$i | 0, $f) | 0;
$705 = $d$584$i + 4 | 0;
if ($705 >>> 0 > $$33$i >>> 0) {
$$lcssa314 = $705;
break;
} else $d$584$i = $705;
}
do if ($655) {
if (HEAP32[$f >> 2] & 32) break;
___fwritex(69796, 1, $f) | 0;
} while (0);
if (($$311$i | 0) > 0 & $$lcssa314 >>> 0 < $z$7$i$lcssa >>> 0) {
$$41278$i = $$311$i;
$d$677$i = $$lcssa314;
while (1) {
$715 = _fmt_u(HEAP32[$d$677$i >> 2] | 0, 0, $14) | 0;
if ($715 >>> 0 > $buf$i >>> 0) {
_memset($buf$i | 0, 48, $715 - $5 | 0) | 0;
$s8$072$i = $715;
while (1) {
$719 = $s8$072$i + -1 | 0;
if ($719 >>> 0 > $buf$i >>> 0) $s8$072$i = $719; else {
$s8$0$lcssa$i = $719;
break;
}
}
} else $s8$0$lcssa$i = $715;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s8$0$lcssa$i, ($$41278$i | 0) > 9 ? 9 : $$41278$i, $f) | 0;
$d$677$i = $d$677$i + 4 | 0;
$727 = $$41278$i + -9 | 0;
if (!(($$41278$i | 0) > 9 & $d$677$i >>> 0 < $z$7$i$lcssa >>> 0)) {
$$412$lcssa$i = $727;
break;
} else $$41278$i = $727;
}
} else $$412$lcssa$i = $$311$i;
_pad($f, 48, $$412$lcssa$i + 9 | 0, 9, 0);
} else {
$z$7$$i = $$lcssa162$i ? $z$7$i$lcssa : $a$9$ph$i + 4 | 0;
if (($$311$i | 0) > -1) {
$734 = ($$pre$phi190$iZ2D | 0) == 0;
$$589$i = $$311$i;
$d$788$i = $a$9$ph$i;
while (1) {
$736 = _fmt_u(HEAP32[$d$788$i >> 2] | 0, 0, $14) | 0;
if (($736 | 0) == ($14 | 0)) {
HEAP8[$16 >> 0] = 48;
$s9$0$i = $16;
} else $s9$0$i = $736;
do if (($d$788$i | 0) == ($a$9$ph$i | 0)) {
$742 = $s9$0$i + 1 | 0;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$0$i, 1, $f) | 0;
if ($734 & ($$589$i | 0) < 1) {
$s9$2$i = $742;
break;
}
if (HEAP32[$f >> 2] & 32) {
$s9$2$i = $742;
break;
}
___fwritex(69796, 1, $f) | 0;
$s9$2$i = $742;
} else {
if ($s9$0$i >>> 0 <= $buf$i >>> 0) {
$s9$2$i = $s9$0$i;
break;
}
_memset($buf$i | 0, 48, $s9$0$i + $6 | 0) | 0;
$s9$185$i = $s9$0$i;
while (1) {
$740 = $s9$185$i + -1 | 0;
if ($740 >>> 0 > $buf$i >>> 0) $s9$185$i = $740; else {
$s9$2$i = $740;
break;
}
}
} while (0);
$751 = $15 - $s9$2$i | 0;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$2$i, ($$589$i | 0) > ($751 | 0) ? $751 : $$589$i, $f) | 0;
$757 = $$589$i - $751 | 0;
$d$788$i = $d$788$i + 4 | 0;
if (!($d$788$i >>> 0 < $z$7$$i >>> 0 & ($757 | 0) > -1)) {
$$5$lcssa$i = $757;
break;
} else $$589$i = $757;
}
} else $$5$lcssa$i = $$311$i;
_pad($f, 48, $$5$lcssa$i + 18 | 0, 18, 0);
if (HEAP32[$f >> 2] & 32) break;
___fwritex($estr$2$i, $9 - $estr$2$i | 0, $f) | 0;
} while (0);
_pad($f, 32, $w$1, $685, $fl$1$ ^ 8192);
$$0$i = ($685 | 0) < ($w$1 | 0) ? $w$1 : $685;
} else {
$376 = ($t$0 & 32 | 0) != 0;
$378 = $$07$i != $$07$i | 0.0 != 0.0;
$pl$1$i = $378 ? 0 : $pl$0$i;
$380 = $pl$1$i + 3 | 0;
_pad($f, 32, $w$1, $380, $176);
$381 = HEAP32[$f >> 2] | 0;
if (!($381 & 32)) {
___fwritex($prefix$0$i, $pl$1$i, $f) | 0;
$385 = HEAP32[$f >> 2] | 0;
} else $385 = $381;
if (!($385 & 32)) ___fwritex($378 ? ($376 ? 69788 : 69792) : $376 ? 69780 : 69784, 3, $f) | 0;
_pad($f, 32, $w$1, $380, $fl$1$ ^ 8192);
$$0$i = ($380 | 0) < ($w$1 | 0) ? $w$1 : $380;
} while (0);
$cnt$0 = $cnt$1;
$l$0 = $$0$i;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue L1;
break;
}
default:
{
$a$2 = $s$0;
$fl$6 = $fl$1$;
$p$5 = $p$0;
$pl$2 = 0;
$prefix$2 = 69744;
$z$2 = $1;
}
} while (0);
L311 : do if ((label | 0) == 64) {
label = 0;
$207 = $arg;
$209 = HEAP32[$207 >> 2] | 0;
$212 = HEAP32[$207 + 4 >> 2] | 0;
$213 = $t$1 & 32;
if (($209 | 0) == 0 & ($212 | 0) == 0) {
$a$0 = $1;
$fl$4 = $fl$3;
$p$2 = $p$1;
$pl$1 = 0;
$prefix$1 = 69744;
label = 77;
} else {
$$012$i = $1;
$218 = $209;
$225 = $212;
while (1) {
$224 = $$012$i + -1 | 0;
HEAP8[$224 >> 0] = HEAPU8[69728 + ($218 & 15) >> 0] | $213;
$218 = _bitshift64Lshr($218 | 0, $225 | 0, 4) | 0;
$225 = tempRet0;
if (($218 | 0) == 0 & ($225 | 0) == 0) {
$$lcssa319 = $224;
break;
} else $$012$i = $224;
}
$231 = $arg;
if (($fl$3 & 8 | 0) == 0 | (HEAP32[$231 >> 2] | 0) == 0 & (HEAP32[$231 + 4 >> 2] | 0) == 0) {
$a$0 = $$lcssa319;
$fl$4 = $fl$3;
$p$2 = $p$1;
$pl$1 = 0;
$prefix$1 = 69744;
label = 77;
} else {
$a$0 = $$lcssa319;
$fl$4 = $fl$3;
$p$2 = $p$1;
$pl$1 = 2;
$prefix$1 = 69744 + ($t$1 >> 4) | 0;
label = 77;
}
}
} else if ((label | 0) == 76) {
label = 0;
$a$0 = _fmt_u($287, $288, $1) | 0;
$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;
$a$2 = $a$1;
$fl$6 = $176;
$p$5 = $322 ? $p$0 : $321 - $a$1 | 0;
$pl$2 = 0;
$prefix$2 = 69744;
$z$2 = $322 ? $a$1 + $p$0 | 0 : $321;
} else if ((label | 0) == 86) {
label = 0;
$i$0105 = 0;
$l$1104 = 0;
$ws$0106 = $798;
while (1) {
$334 = HEAP32[$ws$0106 >> 2] | 0;
if (!$334) {
$i$0$lcssa = $i$0105;
$l$2 = $l$1104;
break;
}
$336 = _wctomb($mb, $334) | 0;
if (($336 | 0) < 0 | $336 >>> 0 > ($p$4176 - $i$0105 | 0) >>> 0) {
$i$0$lcssa = $i$0105;
$l$2 = $336;
break;
}
$341 = $336 + $i$0105 | 0;
if ($p$4176 >>> 0 > $341 >>> 0) {
$i$0105 = $341;
$l$1104 = $336;
$ws$0106 = $ws$0106 + 4 | 0;
} else {
$i$0$lcssa = $341;
$l$2 = $336;
break;
}
}
if (($l$2 | 0) < 0) {
$$0 = -1;
break L1;
}
_pad($f, 32, $w$1, $i$0$lcssa, $fl$1$);
if (!$i$0$lcssa) {
$i$0$lcssa178 = 0;
label = 97;
} else {
$i$1116 = 0;
$ws$1117 = $798;
while (1) {
$345 = HEAP32[$ws$1117 >> 2] | 0;
if (!$345) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break L311;
}
$348 = _wctomb($mb, $345) | 0;
$i$1116 = $348 + $i$1116 | 0;
if (($i$1116 | 0) > ($i$0$lcssa | 0)) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break L311;
}
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($mb, $348, $f) | 0;
if ($i$1116 >>> 0 >= $i$0$lcssa >>> 0) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break;
} else $ws$1117 = $ws$1117 + 4 | 0;
}
}
} while (0);
if ((label | 0) == 97) {
label = 0;
_pad($f, 32, $w$1, $i$0$lcssa178, $fl$1$ ^ 8192);
$cnt$0 = $cnt$1;
$l$0 = ($w$1 | 0) > ($i$0$lcssa178 | 0) ? $w$1 : $i$0$lcssa178;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
continue;
}
if ((label | 0) == 77) {
label = 0;
$$fl$4 = ($p$2 | 0) > -1 ? $fl$4 & -65537 : $fl$4;
$292 = $arg;
$300 = (HEAP32[$292 >> 2] | 0) != 0 | (HEAP32[$292 + 4 >> 2] | 0) != 0;
if (($p$2 | 0) != 0 | $300) {
$306 = ($300 & 1 ^ 1) + ($2 - $a$0) | 0;
$a$2 = $a$0;
$fl$6 = $$fl$4;
$p$5 = ($p$2 | 0) > ($306 | 0) ? $p$2 : $306;
$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;
}
}
$772 = $z$2 - $a$2 | 0;
$$p$5 = ($p$5 | 0) < ($772 | 0) ? $772 : $p$5;
$774 = $pl$2 + $$p$5 | 0;
$w$2 = ($w$1 | 0) < ($774 | 0) ? $774 : $w$1;
_pad($f, 32, $w$2, $774, $fl$6);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$2, $pl$2, $f) | 0;
_pad($f, 48, $w$2, $774, $fl$6 ^ 65536);
_pad($f, 48, $$p$5, $772, 0);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($a$2, $772, $f) | 0;
_pad($f, 32, $w$2, $774, $fl$6 ^ 8192);
$cnt$0 = $cnt$1;
$l$0 = $w$2;
$l10n$0 = $l10n$3;
$s$0 = $$lcssa298;
}
L345 : do if ((label | 0) == 244) if (!$f) if (!$l10n$0$lcssa) $$0 = 0; else {
$i$291 = 1;
while (1) {
$787 = HEAP32[$nl_type + ($i$291 << 2) >> 2] | 0;
if (!$787) {
$i$291$lcssa = $i$291;
break;
}
_pop_arg_180($nl_arg + ($i$291 << 3) | 0, $787, $ap);
$i$291 = $i$291 + 1 | 0;
if (($i$291 | 0) >= 10) {
$$0 = 1;
break L345;
}
}
if (($i$291$lcssa | 0) < 10) {
$i$389 = $i$291$lcssa;
while (1) {
if (HEAP32[$nl_type + ($i$389 << 2) >> 2] | 0) {
$$0 = -1;
break L345;
}
$i$389 = $i$389 + 1 | 0;
if (($i$389 | 0) >= 10) {
$$0 = 1;
break;
}
}
} else $$0 = 1;
} else $$0 = $cnt$1$lcssa; while (0);
STACKTOP = sp;
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, $$pre$phi$i$14Z2D = 0, $$pre$phi$i$17$iZ2D = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi10$i$iZ2D = 0, $$pre$phiZ2D = 0, $$rsize$4$i = 0, $100 = 0, $1001 = 0, $1006 = 0, $101 = 0, $1012 = 0, $1015 = 0, $1016 = 0, $1034 = 0, $1036 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1053 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $107 = 0, $111 = 0, $113 = 0, $114 = 0, $116 = 0, $118 = 0, $12 = 0, $120 = 0, $122 = 0, $124 = 0, $126 = 0, $128 = 0, $133 = 0, $139 = 0, $14 = 0, $142 = 0, $145 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $152 = 0, $155 = 0, $157 = 0, $16 = 0, $160 = 0, $162 = 0, $165 = 0, $168 = 0, $169 = 0, $17 = 0, $171 = 0, $172 = 0, $174 = 0, $175 = 0, $177 = 0, $178 = 0, $18 = 0, $183 = 0, $184 = 0, $193 = 0, $198 = 0, $202 = 0, $208 = 0, $215 = 0, $219 = 0, $227 = 0, $229 = 0, $230 = 0, $232 = 0, $233 = 0, $234 = 0, $238 = 0, $239 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $251 = 0, $252 = 0, $257 = 0, $258 = 0, $261 = 0, $263 = 0, $266 = 0, $271 = 0, $278 = 0, $28 = 0, $287 = 0, $288 = 0, $292 = 0, $298 = 0, $303 = 0, $306 = 0, $310 = 0, $312 = 0, $313 = 0, $315 = 0, $317 = 0, $319 = 0, $32 = 0, $321 = 0, $323 = 0, $325 = 0, $327 = 0, $337 = 0, $338 = 0, $340 = 0, $349 = 0, $35 = 0, $351 = 0, $354 = 0, $356 = 0, $359 = 0, $361 = 0, $364 = 0, $367 = 0, $368 = 0, $370 = 0, $371 = 0, $373 = 0, $374 = 0, $376 = 0, $377 = 0, $382 = 0, $383 = 0, $39 = 0, $392 = 0, $397 = 0, $4 = 0, $401 = 0, $407 = 0, $414 = 0, $418 = 0, $42 = 0, $426 = 0, $429 = 0, $430 = 0, $431 = 0, $435 = 0, $436 = 0, $442 = 0, $447 = 0, $448 = 0, $45 = 0, $451 = 0, $453 = 0, $456 = 0, $461 = 0, $467 = 0, $469 = 0, $47 = 0, $471 = 0, $472 = 0, $48 = 0, $490 = 0, $492 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $509 = 0, $511 = 0, $512 = 0, $514 = 0, $52 = 0, $523 = 0, $527 = 0, $529 = 0, $530 = 0, $531 = 0, $539 = 0, $54 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $550 = 0, $551 = 0, $553 = 0, $555 = 0, $556 = 0, $56 = 0, $562 = 0, $564 = 0, $566 = 0, $573 = 0, $575 = 0, $576 = 0, $577 = 0, $58 = 0, $585 = 0, $586 = 0, $589 = 0, $593 = 0, $597 = 0, $599 = 0, $6 = 0, $60 = 0, $605 = 0, $609 = 0, $613 = 0, $62 = 0, $622 = 0, $623 = 0, $629 = 0, $632 = 0, $635 = 0, $637 = 0, $642 = 0, $648 = 0, $65 = 0, $653 = 0, $654 = 0, $655 = 0, $661 = 0, $662 = 0, $663 = 0, $67 = 0, $678 = 0, $68 = 0, $683 = 0, $684 = 0, $686 = 0, $69 = 0, $692 = 0, $694 = 0, $7 = 0, $70 = 0, $704 = 0, $708 = 0, $71 = 0, $714 = 0, $716 = 0, $722 = 0, $726 = 0, $727 = 0, $732 = 0, $738 = 0, $743 = 0, $746 = 0, $747 = 0, $750 = 0, $752 = 0, $754 = 0, $757 = 0, $768 = 0, $773 = 0, $775 = 0, $778 = 0, $78 = 0, $780 = 0, $783 = 0, $786 = 0, $787 = 0, $788 = 0, $790 = 0, $792 = 0, $793 = 0, $795 = 0, $796 = 0, $801 = 0, $802 = 0, $811 = 0, $816 = 0, $819 = 0, $82 = 0, $820 = 0, $826 = 0, $834 = 0, $840 = 0, $843 = 0, $844 = 0, $845 = 0, $849 = 0, $85 = 0, $850 = 0, $856 = 0, $861 = 0, $862 = 0, $865 = 0, $867 = 0, $870 = 0, $875 = 0, $881 = 0, $883 = 0, $885 = 0, $886 = 0, $89 = 0, $904 = 0, $906 = 0, $91 = 0, $913 = 0, $914 = 0, $915 = 0, $92 = 0, $922 = 0, $926 = 0, $930 = 0, $932 = 0, $938 = 0, $939 = 0, $94 = 0, $941 = 0, $942 = 0, $946 = 0, $95 = 0, $951 = 0, $952 = 0, $953 = 0, $959 = 0, $96 = 0, $966 = 0, $971 = 0, $974 = 0, $975 = 0, $976 = 0, $980 = 0, $981 = 0, $987 = 0, $992 = 0, $993 = 0, $996 = 0, $998 = 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, $K12$0$i = 0, $K2$0$i$i = 0, $K8$0$i$i = 0, $R$1$i = 0, $R$1$i$9 = 0, $R$1$i$9$lcssa = 0, $R$1$i$i = 0, $R$1$i$i$lcssa = 0, $R$1$i$lcssa = 0, $R$3$i = 0, $R$3$i$11 = 0, $R$3$i$i = 0, $RP$1$i = 0, $RP$1$i$8 = 0, $RP$1$i$8$lcssa = 0, $RP$1$i$i = 0, $RP$1$i$i$lcssa = 0, $RP$1$i$lcssa = 0, $T$0$i = 0, $T$0$i$18$i = 0, $T$0$i$18$i$lcssa = 0, $T$0$i$18$i$lcssa139 = 0, $T$0$i$i = 0, $T$0$i$i$lcssa = 0, $T$0$i$i$lcssa140 = 0, $T$0$i$lcssa = 0, $T$0$i$lcssa156 = 0, $br$2$ph$i = 0, $i$01$i$i = 0, $idx$0$i = 0, $nb$0 = 0, $oldfirst$0$i$i = 0, $p$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$5 = 0, $rsize$0$i$lcssa = 0, $rsize$1$i = 0, $rsize$3$i = 0, $rsize$4$lcssa$i = 0, $rsize$412$i = 0, $rst$0$i = 0, $rst$1$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$i$4 = 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, $v$0$i = 0, $v$0$i$6 = 0, $v$0$i$lcssa = 0, $v$1$i = 0, $v$3$i = 0, $v$4$lcssa$i = 0, $v$413$i = 0, label = 0;
do if ($bytes >>> 0 < 245) {
$4 = $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8;
$5 = $4 >>> 3;
$6 = HEAP32[17606] | 0;
$7 = $6 >>> $5;
if ($7 & 3) {
$12 = ($7 & 1 ^ 1) + $5 | 0;
$14 = 70464 + ($12 << 1 << 2) | 0;
$15 = $14 + 8 | 0;
$16 = HEAP32[$15 >> 2] | 0;
$17 = $16 + 8 | 0;
$18 = HEAP32[$17 >> 2] | 0;
do if (($14 | 0) == ($18 | 0)) HEAP32[17606] = $6 & ~(1 << $12); else {
if ($18 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$25 = $18 + 12 | 0;
if ((HEAP32[$25 >> 2] | 0) == ($16 | 0)) {
HEAP32[$25 >> 2] = $14;
HEAP32[$15 >> 2] = $18;
break;
} else _abort();
} while (0);
$28 = $12 << 3;
HEAP32[$16 + 4 >> 2] = $28 | 3;
$32 = $16 + $28 + 4 | 0;
HEAP32[$32 >> 2] = HEAP32[$32 >> 2] | 1;
$$0 = $17;
return $$0 | 0;
}
$35 = HEAP32[17608] | 0;
if ($4 >>> 0 > $35 >>> 0) {
if ($7) {
$39 = 2 << $5;
$42 = $7 << $5 & ($39 | 0 - $39);
$45 = ($42 & 0 - $42) + -1 | 0;
$47 = $45 >>> 12 & 16;
$48 = $45 >>> $47;
$50 = $48 >>> 5 & 8;
$52 = $48 >>> $50;
$54 = $52 >>> 2 & 4;
$56 = $52 >>> $54;
$58 = $56 >>> 1 & 2;
$60 = $56 >>> $58;
$62 = $60 >>> 1 & 1;
$65 = ($50 | $47 | $54 | $58 | $62) + ($60 >>> $62) | 0;
$67 = 70464 + ($65 << 1 << 2) | 0;
$68 = $67 + 8 | 0;
$69 = HEAP32[$68 >> 2] | 0;
$70 = $69 + 8 | 0;
$71 = HEAP32[$70 >> 2] | 0;
do if (($67 | 0) == ($71 | 0)) {
HEAP32[17606] = $6 & ~(1 << $65);
$89 = $35;
} else {
if ($71 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$78 = $71 + 12 | 0;
if ((HEAP32[$78 >> 2] | 0) == ($69 | 0)) {
HEAP32[$78 >> 2] = $67;
HEAP32[$68 >> 2] = $71;
$89 = HEAP32[17608] | 0;
break;
} else _abort();
} while (0);
$82 = ($65 << 3) - $4 | 0;
HEAP32[$69 + 4 >> 2] = $4 | 3;
$85 = $69 + $4 | 0;
HEAP32[$85 + 4 >> 2] = $82 | 1;
HEAP32[$85 + $82 >> 2] = $82;
if ($89) {
$91 = HEAP32[17611] | 0;
$92 = $89 >>> 3;
$94 = 70464 + ($92 << 1 << 2) | 0;
$95 = HEAP32[17606] | 0;
$96 = 1 << $92;
if (!($95 & $96)) {
HEAP32[17606] = $95 | $96;
$$pre$phiZ2D = $94 + 8 | 0;
$F4$0 = $94;
} else {
$100 = $94 + 8 | 0;
$101 = HEAP32[$100 >> 2] | 0;
if ($101 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
$$pre$phiZ2D = $100;
$F4$0 = $101;
}
}
HEAP32[$$pre$phiZ2D >> 2] = $91;
HEAP32[$F4$0 + 12 >> 2] = $91;
HEAP32[$91 + 8 >> 2] = $F4$0;
HEAP32[$91 + 12 >> 2] = $94;
}
HEAP32[17608] = $82;
HEAP32[17611] = $85;
$$0 = $70;
return $$0 | 0;
}
$107 = HEAP32[17607] | 0;
if (!$107) $nb$0 = $4; else {
$111 = ($107 & 0 - $107) + -1 | 0;
$113 = $111 >>> 12 & 16;
$114 = $111 >>> $113;
$116 = $114 >>> 5 & 8;
$118 = $114 >>> $116;
$120 = $118 >>> 2 & 4;
$122 = $118 >>> $120;
$124 = $122 >>> 1 & 2;
$126 = $122 >>> $124;
$128 = $126 >>> 1 & 1;
$133 = HEAP32[70728 + (($116 | $113 | $120 | $124 | $128) + ($126 >>> $128) << 2) >> 2] | 0;
$rsize$0$i = (HEAP32[$133 + 4 >> 2] & -8) - $4 | 0;
$t$0$i = $133;
$v$0$i = $133;
while (1) {
$139 = HEAP32[$t$0$i + 16 >> 2] | 0;
if (!$139) {
$142 = HEAP32[$t$0$i + 20 >> 2] | 0;
if (!$142) {
$rsize$0$i$lcssa = $rsize$0$i;
$v$0$i$lcssa = $v$0$i;
break;
} else $145 = $142;
} else $145 = $139;
$148 = (HEAP32[$145 + 4 >> 2] & -8) - $4 | 0;
$149 = $148 >>> 0 < $rsize$0$i >>> 0;
$rsize$0$i = $149 ? $148 : $rsize$0$i;
$t$0$i = $145;
$v$0$i = $149 ? $145 : $v$0$i;
}
$150 = HEAP32[17610] | 0;
if ($v$0$i$lcssa >>> 0 < $150 >>> 0) _abort();
$152 = $v$0$i$lcssa + $4 | 0;
if ($v$0$i$lcssa >>> 0 >= $152 >>> 0) _abort();
$155 = HEAP32[$v$0$i$lcssa + 24 >> 2] | 0;
$157 = HEAP32[$v$0$i$lcssa + 12 >> 2] | 0;
do if (($157 | 0) == ($v$0$i$lcssa | 0)) {
$168 = $v$0$i$lcssa + 20 | 0;
$169 = HEAP32[$168 >> 2] | 0;
if (!$169) {
$171 = $v$0$i$lcssa + 16 | 0;
$172 = HEAP32[$171 >> 2] | 0;
if (!$172) {
$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;
if ($175) {
$R$1$i = $175;
$RP$1$i = $174;
continue;
}
$177 = $R$1$i + 16 | 0;
$178 = HEAP32[$177 >> 2] | 0;
if (!$178) {
$R$1$i$lcssa = $R$1$i;
$RP$1$i$lcssa = $RP$1$i;
break;
} else {
$R$1$i = $178;
$RP$1$i = $177;
}
}
if ($RP$1$i$lcssa >>> 0 < $150 >>> 0) _abort(); else {
HEAP32[$RP$1$i$lcssa >> 2] = 0;
$R$3$i = $R$1$i$lcssa;
break;
}
} else {
$160 = HEAP32[$v$0$i$lcssa + 8 >> 2] | 0;
if ($160 >>> 0 < $150 >>> 0) _abort();
$162 = $160 + 12 | 0;
if ((HEAP32[$162 >> 2] | 0) != ($v$0$i$lcssa | 0)) _abort();
$165 = $157 + 8 | 0;
if ((HEAP32[$165 >> 2] | 0) == ($v$0$i$lcssa | 0)) {
HEAP32[$162 >> 2] = $157;
HEAP32[$165 >> 2] = $160;
$R$3$i = $157;
break;
} else _abort();
} while (0);
do if ($155) {
$183 = HEAP32[$v$0$i$lcssa + 28 >> 2] | 0;
$184 = 70728 + ($183 << 2) | 0;
if (($v$0$i$lcssa | 0) == (HEAP32[$184 >> 2] | 0)) {
HEAP32[$184 >> 2] = $R$3$i;
if (!$R$3$i) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $183);
break;
}
} else {
if ($155 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$193 = $155 + 16 | 0;
if ((HEAP32[$193 >> 2] | 0) == ($v$0$i$lcssa | 0)) HEAP32[$193 >> 2] = $R$3$i; else HEAP32[$155 + 20 >> 2] = $R$3$i;
if (!$R$3$i) break;
}
$198 = HEAP32[17610] | 0;
if ($R$3$i >>> 0 < $198 >>> 0) _abort();
HEAP32[$R$3$i + 24 >> 2] = $155;
$202 = HEAP32[$v$0$i$lcssa + 16 >> 2] | 0;
do if ($202) if ($202 >>> 0 < $198 >>> 0) _abort(); else {
HEAP32[$R$3$i + 16 >> 2] = $202;
HEAP32[$202 + 24 >> 2] = $R$3$i;
break;
} while (0);
$208 = HEAP32[$v$0$i$lcssa + 20 >> 2] | 0;
if ($208) if ($208 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R$3$i + 20 >> 2] = $208;
HEAP32[$208 + 24 >> 2] = $R$3$i;
break;
}
} while (0);
if ($rsize$0$i$lcssa >>> 0 < 16) {
$215 = $rsize$0$i$lcssa + $4 | 0;
HEAP32[$v$0$i$lcssa + 4 >> 2] = $215 | 3;
$219 = $v$0$i$lcssa + $215 + 4 | 0;
HEAP32[$219 >> 2] = HEAP32[$219 >> 2] | 1;
} else {
HEAP32[$v$0$i$lcssa + 4 >> 2] = $4 | 3;
HEAP32[$152 + 4 >> 2] = $rsize$0$i$lcssa | 1;
HEAP32[$152 + $rsize$0$i$lcssa >> 2] = $rsize$0$i$lcssa;
$227 = HEAP32[17608] | 0;
if ($227) {
$229 = HEAP32[17611] | 0;
$230 = $227 >>> 3;
$232 = 70464 + ($230 << 1 << 2) | 0;
$233 = HEAP32[17606] | 0;
$234 = 1 << $230;
if (!($233 & $234)) {
HEAP32[17606] = $233 | $234;
$$pre$phi$iZ2D = $232 + 8 | 0;
$F1$0$i = $232;
} else {
$238 = $232 + 8 | 0;
$239 = HEAP32[$238 >> 2] | 0;
if ($239 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
$$pre$phi$iZ2D = $238;
$F1$0$i = $239;
}
}
HEAP32[$$pre$phi$iZ2D >> 2] = $229;
HEAP32[$F1$0$i + 12 >> 2] = $229;
HEAP32[$229 + 8 >> 2] = $F1$0$i;
HEAP32[$229 + 12 >> 2] = $232;
}
HEAP32[17608] = $rsize$0$i$lcssa;
HEAP32[17611] = $152;
}
$$0 = $v$0$i$lcssa + 8 | 0;
return $$0 | 0;
}
} else $nb$0 = $4;
} else if ($bytes >>> 0 > 4294967231) $nb$0 = -1; else {
$247 = $bytes + 11 | 0;
$248 = $247 & -8;
$249 = HEAP32[17607] | 0;
if (!$249) $nb$0 = $248; else {
$251 = 0 - $248 | 0;
$252 = $247 >>> 8;
if (!$252) $idx$0$i = 0; else if ($248 >>> 0 > 16777215) $idx$0$i = 31; else {
$257 = ($252 + 1048320 | 0) >>> 16 & 8;
$258 = $252 << $257;
$261 = ($258 + 520192 | 0) >>> 16 & 4;
$263 = $258 << $261;
$266 = ($263 + 245760 | 0) >>> 16 & 2;
$271 = 14 - ($261 | $257 | $266) + ($263 << $266 >>> 15) | 0;
$idx$0$i = $248 >>> ($271 + 7 | 0) & 1 | $271 << 1;
}
$278 = HEAP32[70728 + ($idx$0$i << 2) >> 2] | 0;
L123 : do if (!$278) {
$rsize$3$i = $251;
$t$2$i = 0;
$v$3$i = 0;
label = 86;
} else {
$rsize$0$i$5 = $251;
$rst$0$i = 0;
$sizebits$0$i = $248 << (($idx$0$i | 0) == 31 ? 0 : 25 - ($idx$0$i >>> 1) | 0);
$t$0$i$4 = $278;
$v$0$i$6 = 0;
while (1) {
$287 = HEAP32[$t$0$i$4 + 4 >> 2] & -8;
$288 = $287 - $248 | 0;
if ($288 >>> 0 < $rsize$0$i$5 >>> 0) if (($287 | 0) == ($248 | 0)) {
$rsize$412$i = $288;
$t$411$i = $t$0$i$4;
$v$413$i = $t$0$i$4;
label = 90;
break L123;
} else {
$rsize$1$i = $288;
$v$1$i = $t$0$i$4;
} else {
$rsize$1$i = $rsize$0$i$5;
$v$1$i = $v$0$i$6;
}
$292 = HEAP32[$t$0$i$4 + 20 >> 2] | 0;
$t$0$i$4 = HEAP32[$t$0$i$4 + 16 + ($sizebits$0$i >>> 31 << 2) >> 2] | 0;
$rst$1$i = ($292 | 0) == 0 | ($292 | 0) == ($t$0$i$4 | 0) ? $rst$0$i : $292;
$298 = ($t$0$i$4 | 0) == 0;
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$i$5 = $rsize$1$i;
$rst$0$i = $rst$1$i;
$sizebits$0$i = $sizebits$0$i << ($298 & 1 ^ 1);
$v$0$i$6 = $v$1$i;
}
}
} while (0);
if ((label | 0) == 86) {
if (($t$2$i | 0) == 0 & ($v$3$i | 0) == 0) {
$303 = 2 << $idx$0$i;
$306 = $249 & ($303 | 0 - $303);
if (!$306) {
$nb$0 = $248;
break;
}
$310 = ($306 & 0 - $306) + -1 | 0;
$312 = $310 >>> 12 & 16;
$313 = $310 >>> $312;
$315 = $313 >>> 5 & 8;
$317 = $313 >>> $315;
$319 = $317 >>> 2 & 4;
$321 = $317 >>> $319;
$323 = $321 >>> 1 & 2;
$325 = $321 >>> $323;
$327 = $325 >>> 1 & 1;
$t$4$ph$i = HEAP32[70728 + (($315 | $312 | $319 | $323 | $327) + ($325 >>> $327) << 2) >> 2] | 0;
} else $t$4$ph$i = $t$2$i;
if (!$t$4$ph$i) {
$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;
$337 = (HEAP32[$t$411$i + 4 >> 2] & -8) - $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;
$340 = HEAP32[$t$411$i + 16 >> 2] | 0;
if ($340) {
$rsize$412$i = $$rsize$4$i;
$t$411$i = $340;
$v$413$i = $t$4$v$4$i;
label = 90;
continue;
}
$t$411$i = HEAP32[$t$411$i + 20 >> 2] | 0;
if (!$t$411$i) {
$rsize$4$lcssa$i = $$rsize$4$i;
$v$4$lcssa$i = $t$4$v$4$i;
break;
} else {
$rsize$412$i = $$rsize$4$i;
$v$413$i = $t$4$v$4$i;
label = 90;
}
}
if (!$v$4$lcssa$i) $nb$0 = $248; else if ($rsize$4$lcssa$i >>> 0 < ((HEAP32[17608] | 0) - $248 | 0) >>> 0) {
$349 = HEAP32[17610] | 0;
if ($v$4$lcssa$i >>> 0 < $349 >>> 0) _abort();
$351 = $v$4$lcssa$i + $248 | 0;
if ($v$4$lcssa$i >>> 0 >= $351 >>> 0) _abort();
$354 = HEAP32[$v$4$lcssa$i + 24 >> 2] | 0;
$356 = HEAP32[$v$4$lcssa$i + 12 >> 2] | 0;
do if (($356 | 0) == ($v$4$lcssa$i | 0)) {
$367 = $v$4$lcssa$i + 20 | 0;
$368 = HEAP32[$367 >> 2] | 0;
if (!$368) {
$370 = $v$4$lcssa$i + 16 | 0;
$371 = HEAP32[$370 >> 2] | 0;
if (!$371) {
$R$3$i$11 = 0;
break;
} else {
$R$1$i$9 = $371;
$RP$1$i$8 = $370;
}
} else {
$R$1$i$9 = $368;
$RP$1$i$8 = $367;
}
while (1) {
$373 = $R$1$i$9 + 20 | 0;
$374 = HEAP32[$373 >> 2] | 0;
if ($374) {
$R$1$i$9 = $374;
$RP$1$i$8 = $373;
continue;
}
$376 = $R$1$i$9 + 16 | 0;
$377 = HEAP32[$376 >> 2] | 0;
if (!$377) {
$R$1$i$9$lcssa = $R$1$i$9;
$RP$1$i$8$lcssa = $RP$1$i$8;
break;
} else {
$R$1$i$9 = $377;
$RP$1$i$8 = $376;
}
}
if ($RP$1$i$8$lcssa >>> 0 < $349 >>> 0) _abort(); else {
HEAP32[$RP$1$i$8$lcssa >> 2] = 0;
$R$3$i$11 = $R$1$i$9$lcssa;
break;
}
} else {
$359 = HEAP32[$v$4$lcssa$i + 8 >> 2] | 0;
if ($359 >>> 0 < $349 >>> 0) _abort();
$361 = $359 + 12 | 0;
if ((HEAP32[$361 >> 2] | 0) != ($v$4$lcssa$i | 0)) _abort();
$364 = $356 + 8 | 0;
if ((HEAP32[$364 >> 2] | 0) == ($v$4$lcssa$i | 0)) {
HEAP32[$361 >> 2] = $356;
HEAP32[$364 >> 2] = $359;
$R$3$i$11 = $356;
break;
} else _abort();
} while (0);
do if ($354) {
$382 = HEAP32[$v$4$lcssa$i + 28 >> 2] | 0;
$383 = 70728 + ($382 << 2) | 0;
if (($v$4$lcssa$i | 0) == (HEAP32[$383 >> 2] | 0)) {
HEAP32[$383 >> 2] = $R$3$i$11;
if (!$R$3$i$11) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $382);
break;
}
} else {
if ($354 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$392 = $354 + 16 | 0;
if ((HEAP32[$392 >> 2] | 0) == ($v$4$lcssa$i | 0)) HEAP32[$392 >> 2] = $R$3$i$11; else HEAP32[$354 + 20 >> 2] = $R$3$i$11;
if (!$R$3$i$11) break;
}
$397 = HEAP32[17610] | 0;
if ($R$3$i$11 >>> 0 < $397 >>> 0) _abort();
HEAP32[$R$3$i$11 + 24 >> 2] = $354;
$401 = HEAP32[$v$4$lcssa$i + 16 >> 2] | 0;
do if ($401) if ($401 >>> 0 < $397 >>> 0) _abort(); else {
HEAP32[$R$3$i$11 + 16 >> 2] = $401;
HEAP32[$401 + 24 >> 2] = $R$3$i$11;
break;
} while (0);
$407 = HEAP32[$v$4$lcssa$i + 20 >> 2] | 0;
if ($407) if ($407 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R$3$i$11 + 20 >> 2] = $407;
HEAP32[$407 + 24 >> 2] = $R$3$i$11;
break;
}
} while (0);
do if ($rsize$4$lcssa$i >>> 0 < 16) {
$414 = $rsize$4$lcssa$i + $248 | 0;
HEAP32[$v$4$lcssa$i + 4 >> 2] = $414 | 3;
$418 = $v$4$lcssa$i + $414 + 4 | 0;
HEAP32[$418 >> 2] = HEAP32[$418 >> 2] | 1;
} else {
HEAP32[$v$4$lcssa$i + 4 >> 2] = $248 | 3;
HEAP32[$351 + 4 >> 2] = $rsize$4$lcssa$i | 1;
HEAP32[$351 + $rsize$4$lcssa$i >> 2] = $rsize$4$lcssa$i;
$426 = $rsize$4$lcssa$i >>> 3;
if ($rsize$4$lcssa$i >>> 0 < 256) {
$429 = 70464 + ($426 << 1 << 2) | 0;
$430 = HEAP32[17606] | 0;
$431 = 1 << $426;
if (!($430 & $431)) {
HEAP32[17606] = $430 | $431;
$$pre$phi$i$14Z2D = $429 + 8 | 0;
$F5$0$i = $429;
} else {
$435 = $429 + 8 | 0;
$436 = HEAP32[$435 >> 2] | 0;
if ($436 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
$$pre$phi$i$14Z2D = $435;
$F5$0$i = $436;
}
}
HEAP32[$$pre$phi$i$14Z2D >> 2] = $351;
HEAP32[$F5$0$i + 12 >> 2] = $351;
HEAP32[$351 + 8 >> 2] = $F5$0$i;
HEAP32[$351 + 12 >> 2] = $429;
break;
}
$442 = $rsize$4$lcssa$i >>> 8;
if (!$442) $I7$0$i = 0; else if ($rsize$4$lcssa$i >>> 0 > 16777215) $I7$0$i = 31; else {
$447 = ($442 + 1048320 | 0) >>> 16 & 8;
$448 = $442 << $447;
$451 = ($448 + 520192 | 0) >>> 16 & 4;
$453 = $448 << $451;
$456 = ($453 + 245760 | 0) >>> 16 & 2;
$461 = 14 - ($451 | $447 | $456) + ($453 << $456 >>> 15) | 0;
$I7$0$i = $rsize$4$lcssa$i >>> ($461 + 7 | 0) & 1 | $461 << 1;
}
$467 = 70728 + ($I7$0$i << 2) | 0;
HEAP32[$351 + 28 >> 2] = $I7$0$i;
$469 = $351 + 16 | 0;
HEAP32[$469 + 4 >> 2] = 0;
HEAP32[$469 >> 2] = 0;
$471 = HEAP32[17607] | 0;
$472 = 1 << $I7$0$i;
if (!($471 & $472)) {
HEAP32[17607] = $471 | $472;
HEAP32[$467 >> 2] = $351;
HEAP32[$351 + 24 >> 2] = $467;
HEAP32[$351 + 12 >> 2] = $351;
HEAP32[$351 + 8 >> 2] = $351;
break;
}
$K12$0$i = $rsize$4$lcssa$i << (($I7$0$i | 0) == 31 ? 0 : 25 - ($I7$0$i >>> 1) | 0);
$T$0$i = HEAP32[$467 >> 2] | 0;
while (1) {
if ((HEAP32[$T$0$i + 4 >> 2] & -8 | 0) == ($rsize$4$lcssa$i | 0)) {
$T$0$i$lcssa = $T$0$i;
label = 148;
break;
}
$490 = $T$0$i + 16 + ($K12$0$i >>> 31 << 2) | 0;
$492 = HEAP32[$490 >> 2] | 0;
if (!$492) {
$$lcssa157 = $490;
$T$0$i$lcssa156 = $T$0$i;
label = 145;
break;
} else {
$K12$0$i = $K12$0$i << 1;
$T$0$i = $492;
}
}
if ((label | 0) == 145) if ($$lcssa157 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa157 >> 2] = $351;
HEAP32[$351 + 24 >> 2] = $T$0$i$lcssa156;
HEAP32[$351 + 12 >> 2] = $351;
HEAP32[$351 + 8 >> 2] = $351;
break;
} else if ((label | 0) == 148) {
$499 = $T$0$i$lcssa + 8 | 0;
$500 = HEAP32[$499 >> 2] | 0;
$501 = HEAP32[17610] | 0;
if ($500 >>> 0 >= $501 >>> 0 & $T$0$i$lcssa >>> 0 >= $501 >>> 0) {
HEAP32[$500 + 12 >> 2] = $351;
HEAP32[$499 >> 2] = $351;
HEAP32[$351 + 8 >> 2] = $500;
HEAP32[$351 + 12 >> 2] = $T$0$i$lcssa;
HEAP32[$351 + 24 >> 2] = 0;
break;
} else _abort();
}
} while (0);
$$0 = $v$4$lcssa$i + 8 | 0;
return $$0 | 0;
} else $nb$0 = $248;
}
} while (0);
$509 = HEAP32[17608] | 0;
if ($509 >>> 0 >= $nb$0 >>> 0) {
$511 = $509 - $nb$0 | 0;
$512 = HEAP32[17611] | 0;
if ($511 >>> 0 > 15) {
$514 = $512 + $nb$0 | 0;
HEAP32[17611] = $514;
HEAP32[17608] = $511;
HEAP32[$514 + 4 >> 2] = $511 | 1;
HEAP32[$514 + $511 >> 2] = $511;
HEAP32[$512 + 4 >> 2] = $nb$0 | 3;
} else {
HEAP32[17608] = 0;
HEAP32[17611] = 0;
HEAP32[$512 + 4 >> 2] = $509 | 3;
$523 = $512 + $509 + 4 | 0;
HEAP32[$523 >> 2] = HEAP32[$523 >> 2] | 1;
}
$$0 = $512 + 8 | 0;
return $$0 | 0;
}
$527 = HEAP32[17609] | 0;
if ($527 >>> 0 > $nb$0 >>> 0) {
$529 = $527 - $nb$0 | 0;
HEAP32[17609] = $529;
$530 = HEAP32[17612] | 0;
$531 = $530 + $nb$0 | 0;
HEAP32[17612] = $531;
HEAP32[$531 + 4 >> 2] = $529 | 1;
HEAP32[$530 + 4 >> 2] = $nb$0 | 3;
$$0 = $530 + 8 | 0;
return $$0 | 0;
}
do if (!(HEAP32[17724] | 0)) {
$539 = _sysconf(30) | 0;
if (!($539 + -1 & $539)) {
HEAP32[17726] = $539;
HEAP32[17725] = $539;
HEAP32[17727] = -1;
HEAP32[17728] = -1;
HEAP32[17729] = 0;
HEAP32[17717] = 0;
HEAP32[17724] = (_time(0) | 0) & -16 ^ 1431655768;
break;
} else _abort();
} while (0);
$546 = $nb$0 + 48 | 0;
$547 = HEAP32[17726] | 0;
$548 = $nb$0 + 47 | 0;
$549 = $547 + $548 | 0;
$550 = 0 - $547 | 0;
$551 = $549 & $550;
if ($551 >>> 0 <= $nb$0 >>> 0) {
$$0 = 0;
return $$0 | 0;
}
$553 = HEAP32[17716] | 0;
if ($553) {
$555 = HEAP32[17714] | 0;
$556 = $555 + $551 | 0;
if ($556 >>> 0 <= $555 >>> 0 | $556 >>> 0 > $553 >>> 0) {
$$0 = 0;
return $$0 | 0;
}
}
L257 : do if (!(HEAP32[17717] & 4)) {
$562 = HEAP32[17612] | 0;
L259 : do if (!$562) label = 173; else {
$sp$0$i$i = 70872;
while (1) {
$564 = HEAP32[$sp$0$i$i >> 2] | 0;
if ($564 >>> 0 <= $562 >>> 0) {
$566 = $sp$0$i$i + 4 | 0;
if (($564 + (HEAP32[$566 >> 2] | 0) | 0) >>> 0 > $562 >>> 0) {
$$lcssa153 = $sp$0$i$i;
$$lcssa155 = $566;
break;
}
}
$sp$0$i$i = HEAP32[$sp$0$i$i + 8 >> 2] | 0;
if (!$sp$0$i$i) {
label = 173;
break L259;
}
}
$597 = $549 - (HEAP32[17609] | 0) & $550;
if ($597 >>> 0 < 2147483647) {
$599 = _sbrk($597 | 0) | 0;
if (($599 | 0) == ((HEAP32[$$lcssa153 >> 2] | 0) + (HEAP32[$$lcssa155 >> 2] | 0) | 0)) {
if (($599 | 0) != (-1 | 0)) {
$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;
if (($573 | 0) != (-1 | 0)) {
$575 = $573;
$576 = HEAP32[17725] | 0;
$577 = $576 + -1 | 0;
if (!($577 & $575)) $ssize$0$i = $551; else $ssize$0$i = $551 - $575 + ($577 + $575 & 0 - $576) | 0;
$585 = HEAP32[17714] | 0;
$586 = $585 + $ssize$0$i | 0;
if ($ssize$0$i >>> 0 > $nb$0 >>> 0 & $ssize$0$i >>> 0 < 2147483647) {
$589 = HEAP32[17716] | 0;
if ($589) if ($586 >>> 0 <= $585 >>> 0 | $586 >>> 0 > $589 >>> 0) break;
$593 = _sbrk($ssize$0$i | 0) | 0;
if (($593 | 0) == ($573 | 0)) {
$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;
do if ($546 >>> 0 > $ssize$2$ph$i >>> 0 & ($ssize$2$ph$i >>> 0 < 2147483647 & ($br$2$ph$i | 0) != (-1 | 0))) {
$609 = HEAP32[17726] | 0;
$613 = $548 - $ssize$2$ph$i + $609 & 0 - $609;
if ($613 >>> 0 < 2147483647) if ((_sbrk($613 | 0) | 0) == (-1 | 0)) {
_sbrk($605 | 0) | 0;
break L279;
} else {
$ssize$5$i = $613 + $ssize$2$ph$i | 0;
break;
} else $ssize$5$i = $ssize$2$ph$i;
} else $ssize$5$i = $ssize$2$ph$i; while (0);
if (($br$2$ph$i | 0) != (-1 | 0)) {
$tbase$746$i = $br$2$ph$i;
$tsize$745$i = $ssize$5$i;
label = 193;
break L257;
}
} while (0);
HEAP32[17717] = HEAP32[17717] | 4;
label = 190;
} else label = 190; while (0);
if ((label | 0) == 190) if ($551 >>> 0 < 2147483647) {
$622 = _sbrk($551 | 0) | 0;
$623 = _sbrk(0) | 0;
if ($622 >>> 0 < $623 >>> 0 & (($622 | 0) != (-1 | 0) & ($623 | 0) != (-1 | 0))) {
$629 = $623 - $622 | 0;
if ($629 >>> 0 > ($nb$0 + 40 | 0) >>> 0) {
$tbase$746$i = $622;
$tsize$745$i = $629;
label = 193;
}
}
}
if ((label | 0) == 193) {
$632 = (HEAP32[17714] | 0) + $tsize$745$i | 0;
HEAP32[17714] = $632;
if ($632 >>> 0 > (HEAP32[17715] | 0) >>> 0) HEAP32[17715] = $632;
$635 = HEAP32[17612] | 0;
do if (!$635) {
$637 = HEAP32[17610] | 0;
if (($637 | 0) == 0 | $tbase$746$i >>> 0 < $637 >>> 0) HEAP32[17610] = $tbase$746$i;
HEAP32[17718] = $tbase$746$i;
HEAP32[17719] = $tsize$745$i;
HEAP32[17721] = 0;
HEAP32[17615] = HEAP32[17724];
HEAP32[17614] = -1;
$i$01$i$i = 0;
do {
$642 = 70464 + ($i$01$i$i << 1 << 2) | 0;
HEAP32[$642 + 12 >> 2] = $642;
HEAP32[$642 + 8 >> 2] = $642;
$i$01$i$i = $i$01$i$i + 1 | 0;
} while (($i$01$i$i | 0) != 32);
$648 = $tbase$746$i + 8 | 0;
$653 = ($648 & 7 | 0) == 0 ? 0 : 0 - $648 & 7;
$654 = $tbase$746$i + $653 | 0;
$655 = $tsize$745$i + -40 - $653 | 0;
HEAP32[17612] = $654;
HEAP32[17609] = $655;
HEAP32[$654 + 4 >> 2] = $655 | 1;
HEAP32[$654 + $655 + 4 >> 2] = 40;
HEAP32[17613] = HEAP32[17728];
} else {
$sp$068$i = 70872;
do {
$661 = HEAP32[$sp$068$i >> 2] | 0;
$662 = $sp$068$i + 4 | 0;
$663 = HEAP32[$662 >> 2] | 0;
if (($tbase$746$i | 0) == ($661 + $663 | 0)) {
$$lcssa147 = $661;
$$lcssa149 = $662;
$$lcssa151 = $663;
$sp$068$i$lcssa = $sp$068$i;
label = 203;
break;
}
$sp$068$i = HEAP32[$sp$068$i + 8 >> 2] | 0;
} while (($sp$068$i | 0) != 0);
if ((label | 0) == 203) if (!(HEAP32[$sp$068$i$lcssa + 12 >> 2] & 8)) if ($635 >>> 0 < $tbase$746$i >>> 0 & $635 >>> 0 >= $$lcssa147 >>> 0) {
HEAP32[$$lcssa149 >> 2] = $$lcssa151 + $tsize$745$i;
$678 = $635 + 8 | 0;
$683 = ($678 & 7 | 0) == 0 ? 0 : 0 - $678 & 7;
$684 = $635 + $683 | 0;
$686 = $tsize$745$i - $683 + (HEAP32[17609] | 0) | 0;
HEAP32[17612] = $684;
HEAP32[17609] = $686;
HEAP32[$684 + 4 >> 2] = $686 | 1;
HEAP32[$684 + $686 + 4 >> 2] = 40;
HEAP32[17613] = HEAP32[17728];
break;
}
$692 = HEAP32[17610] | 0;
if ($tbase$746$i >>> 0 < $692 >>> 0) {
HEAP32[17610] = $tbase$746$i;
$757 = $tbase$746$i;
} else $757 = $692;
$694 = $tbase$746$i + $tsize$745$i | 0;
$sp$167$i = 70872;
while (1) {
if ((HEAP32[$sp$167$i >> 2] | 0) == ($694 | 0)) {
$$lcssa144 = $sp$167$i;
$sp$167$i$lcssa = $sp$167$i;
label = 211;
break;
}
$sp$167$i = HEAP32[$sp$167$i + 8 >> 2] | 0;
if (!$sp$167$i) {
$sp$0$i$i$i = 70872;
break;
}
}
if ((label | 0) == 211) if (!(HEAP32[$sp$167$i$lcssa + 12 >> 2] & 8)) {
HEAP32[$$lcssa144 >> 2] = $tbase$746$i;
$704 = $sp$167$i$lcssa + 4 | 0;
HEAP32[$704 >> 2] = (HEAP32[$704 >> 2] | 0) + $tsize$745$i;
$708 = $tbase$746$i + 8 | 0;
$714 = $tbase$746$i + (($708 & 7 | 0) == 0 ? 0 : 0 - $708 & 7) | 0;
$716 = $694 + 8 | 0;
$722 = $694 + (($716 & 7 | 0) == 0 ? 0 : 0 - $716 & 7) | 0;
$726 = $714 + $nb$0 | 0;
$727 = $722 - $714 - $nb$0 | 0;
HEAP32[$714 + 4 >> 2] = $nb$0 | 3;
do if (($722 | 0) == ($635 | 0)) {
$732 = (HEAP32[17609] | 0) + $727 | 0;
HEAP32[17609] = $732;
HEAP32[17612] = $726;
HEAP32[$726 + 4 >> 2] = $732 | 1;
} else {
if (($722 | 0) == (HEAP32[17611] | 0)) {
$738 = (HEAP32[17608] | 0) + $727 | 0;
HEAP32[17608] = $738;
HEAP32[17611] = $726;
HEAP32[$726 + 4 >> 2] = $738 | 1;
HEAP32[$726 + $738 >> 2] = $738;
break;
}
$743 = HEAP32[$722 + 4 >> 2] | 0;
if (($743 & 3 | 0) == 1) {
$746 = $743 & -8;
$747 = $743 >>> 3;
L331 : do if ($743 >>> 0 < 256) {
$750 = HEAP32[$722 + 8 >> 2] | 0;
$752 = HEAP32[$722 + 12 >> 2] | 0;
$754 = 70464 + ($747 << 1 << 2) | 0;
do if (($750 | 0) != ($754 | 0)) {
if ($750 >>> 0 < $757 >>> 0) _abort();
if ((HEAP32[$750 + 12 >> 2] | 0) == ($722 | 0)) break;
_abort();
} while (0);
if (($752 | 0) == ($750 | 0)) {
HEAP32[17606] = HEAP32[17606] & ~(1 << $747);
break;
}
do if (($752 | 0) == ($754 | 0)) $$pre$phi10$i$iZ2D = $752 + 8 | 0; else {
if ($752 >>> 0 < $757 >>> 0) _abort();
$768 = $752 + 8 | 0;
if ((HEAP32[$768 >> 2] | 0) == ($722 | 0)) {
$$pre$phi10$i$iZ2D = $768;
break;
}
_abort();
} while (0);
HEAP32[$750 + 12 >> 2] = $752;
HEAP32[$$pre$phi10$i$iZ2D >> 2] = $750;
} else {
$773 = HEAP32[$722 + 24 >> 2] | 0;
$775 = HEAP32[$722 + 12 >> 2] | 0;
do if (($775 | 0) == ($722 | 0)) {
$786 = $722 + 16 | 0;
$787 = $786 + 4 | 0;
$788 = HEAP32[$787 >> 2] | 0;
if (!$788) {
$790 = HEAP32[$786 >> 2] | 0;
if (!$790) {
$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;
if ($793) {
$R$1$i$i = $793;
$RP$1$i$i = $792;
continue;
}
$795 = $R$1$i$i + 16 | 0;
$796 = HEAP32[$795 >> 2] | 0;
if (!$796) {
$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;
}
}
if ($RP$1$i$i$lcssa >>> 0 < $757 >>> 0) _abort(); else {
HEAP32[$RP$1$i$i$lcssa >> 2] = 0;
$R$3$i$i = $R$1$i$i$lcssa;
break;
}
} else {
$778 = HEAP32[$722 + 8 >> 2] | 0;
if ($778 >>> 0 < $757 >>> 0) _abort();
$780 = $778 + 12 | 0;
if ((HEAP32[$780 >> 2] | 0) != ($722 | 0)) _abort();
$783 = $775 + 8 | 0;
if ((HEAP32[$783 >> 2] | 0) == ($722 | 0)) {
HEAP32[$780 >> 2] = $775;
HEAP32[$783 >> 2] = $778;
$R$3$i$i = $775;
break;
} else _abort();
} while (0);
if (!$773) break;
$801 = HEAP32[$722 + 28 >> 2] | 0;
$802 = 70728 + ($801 << 2) | 0;
do if (($722 | 0) == (HEAP32[$802 >> 2] | 0)) {
HEAP32[$802 >> 2] = $R$3$i$i;
if ($R$3$i$i) break;
HEAP32[17607] = HEAP32[17607] & ~(1 << $801);
break L331;
} else {
if ($773 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$811 = $773 + 16 | 0;
if ((HEAP32[$811 >> 2] | 0) == ($722 | 0)) HEAP32[$811 >> 2] = $R$3$i$i; else HEAP32[$773 + 20 >> 2] = $R$3$i$i;
if (!$R$3$i$i) break L331;
} while (0);
$816 = HEAP32[17610] | 0;
if ($R$3$i$i >>> 0 < $816 >>> 0) _abort();
HEAP32[$R$3$i$i + 24 >> 2] = $773;
$819 = $722 + 16 | 0;
$820 = HEAP32[$819 >> 2] | 0;
do if ($820) if ($820 >>> 0 < $816 >>> 0) _abort(); else {
HEAP32[$R$3$i$i + 16 >> 2] = $820;
HEAP32[$820 + 24 >> 2] = $R$3$i$i;
break;
} while (0);
$826 = HEAP32[$819 + 4 >> 2] | 0;
if (!$826) break;
if ($826 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R$3$i$i + 20 >> 2] = $826;
HEAP32[$826 + 24 >> 2] = $R$3$i$i;
break;
}
} while (0);
$oldfirst$0$i$i = $722 + $746 | 0;
$qsize$0$i$i = $746 + $727 | 0;
} else {
$oldfirst$0$i$i = $722;
$qsize$0$i$i = $727;
}
$834 = $oldfirst$0$i$i + 4 | 0;
HEAP32[$834 >> 2] = HEAP32[$834 >> 2] & -2;
HEAP32[$726 + 4 >> 2] = $qsize$0$i$i | 1;
HEAP32[$726 + $qsize$0$i$i >> 2] = $qsize$0$i$i;
$840 = $qsize$0$i$i >>> 3;
if ($qsize$0$i$i >>> 0 < 256) {
$843 = 70464 + ($840 << 1 << 2) | 0;
$844 = HEAP32[17606] | 0;
$845 = 1 << $840;
do if (!($844 & $845)) {
HEAP32[17606] = $844 | $845;
$$pre$phi$i$17$iZ2D = $843 + 8 | 0;
$F4$0$i$i = $843;
} else {
$849 = $843 + 8 | 0;
$850 = HEAP32[$849 >> 2] | 0;
if ($850 >>> 0 >= (HEAP32[17610] | 0) >>> 0) {
$$pre$phi$i$17$iZ2D = $849;
$F4$0$i$i = $850;
break;
}
_abort();
} while (0);
HEAP32[$$pre$phi$i$17$iZ2D >> 2] = $726;
HEAP32[$F4$0$i$i + 12 >> 2] = $726;
HEAP32[$726 + 8 >> 2] = $F4$0$i$i;
HEAP32[$726 + 12 >> 2] = $843;
break;
}
$856 = $qsize$0$i$i >>> 8;
do if (!$856) $I7$0$i$i = 0; else {
if ($qsize$0$i$i >>> 0 > 16777215) {
$I7$0$i$i = 31;
break;
}
$861 = ($856 + 1048320 | 0) >>> 16 & 8;
$862 = $856 << $861;
$865 = ($862 + 520192 | 0) >>> 16 & 4;
$867 = $862 << $865;
$870 = ($867 + 245760 | 0) >>> 16 & 2;
$875 = 14 - ($865 | $861 | $870) + ($867 << $870 >>> 15) | 0;
$I7$0$i$i = $qsize$0$i$i >>> ($875 + 7 | 0) & 1 | $875 << 1;
} while (0);
$881 = 70728 + ($I7$0$i$i << 2) | 0;
HEAP32[$726 + 28 >> 2] = $I7$0$i$i;
$883 = $726 + 16 | 0;
HEAP32[$883 + 4 >> 2] = 0;
HEAP32[$883 >> 2] = 0;
$885 = HEAP32[17607] | 0;
$886 = 1 << $I7$0$i$i;
if (!($885 & $886)) {
HEAP32[17607] = $885 | $886;
HEAP32[$881 >> 2] = $726;
HEAP32[$726 + 24 >> 2] = $881;
HEAP32[$726 + 12 >> 2] = $726;
HEAP32[$726 + 8 >> 2] = $726;
break;
}
$K8$0$i$i = $qsize$0$i$i << (($I7$0$i$i | 0) == 31 ? 0 : 25 - ($I7$0$i$i >>> 1) | 0);
$T$0$i$18$i = HEAP32[$881 >> 2] | 0;
while (1) {
if ((HEAP32[$T$0$i$18$i + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) {
$T$0$i$18$i$lcssa = $T$0$i$18$i;
label = 281;
break;
}
$904 = $T$0$i$18$i + 16 + ($K8$0$i$i >>> 31 << 2) | 0;
$906 = HEAP32[$904 >> 2] | 0;
if (!$906) {
$$lcssa = $904;
$T$0$i$18$i$lcssa139 = $T$0$i$18$i;
label = 278;
break;
} else {
$K8$0$i$i = $K8$0$i$i << 1;
$T$0$i$18$i = $906;
}
}
if ((label | 0) == 278) if ($$lcssa >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa >> 2] = $726;
HEAP32[$726 + 24 >> 2] = $T$0$i$18$i$lcssa139;
HEAP32[$726 + 12 >> 2] = $726;
HEAP32[$726 + 8 >> 2] = $726;
break;
} else if ((label | 0) == 281) {
$913 = $T$0$i$18$i$lcssa + 8 | 0;
$914 = HEAP32[$913 >> 2] | 0;
$915 = HEAP32[17610] | 0;
if ($914 >>> 0 >= $915 >>> 0 & $T$0$i$18$i$lcssa >>> 0 >= $915 >>> 0) {
HEAP32[$914 + 12 >> 2] = $726;
HEAP32[$913 >> 2] = $726;
HEAP32[$726 + 8 >> 2] = $914;
HEAP32[$726 + 12 >> 2] = $T$0$i$18$i$lcssa;
HEAP32[$726 + 24 >> 2] = 0;
break;
} else _abort();
}
} while (0);
$$0 = $714 + 8 | 0;
return $$0 | 0;
} else $sp$0$i$i$i = 70872;
while (1) {
$922 = HEAP32[$sp$0$i$i$i >> 2] | 0;
if ($922 >>> 0 <= $635 >>> 0) {
$926 = $922 + (HEAP32[$sp$0$i$i$i + 4 >> 2] | 0) | 0;
if ($926 >>> 0 > $635 >>> 0) {
$$lcssa142 = $926;
break;
}
}
$sp$0$i$i$i = HEAP32[$sp$0$i$i$i + 8 >> 2] | 0;
}
$930 = $$lcssa142 + -47 | 0;
$932 = $930 + 8 | 0;
$938 = $930 + (($932 & 7 | 0) == 0 ? 0 : 0 - $932 & 7) | 0;
$939 = $635 + 16 | 0;
$941 = $938 >>> 0 < $939 >>> 0 ? $635 : $938;
$942 = $941 + 8 | 0;
$946 = $tbase$746$i + 8 | 0;
$951 = ($946 & 7 | 0) == 0 ? 0 : 0 - $946 & 7;
$952 = $tbase$746$i + $951 | 0;
$953 = $tsize$745$i + -40 - $951 | 0;
HEAP32[17612] = $952;
HEAP32[17609] = $953;
HEAP32[$952 + 4 >> 2] = $953 | 1;
HEAP32[$952 + $953 + 4 >> 2] = 40;
HEAP32[17613] = HEAP32[17728];
$959 = $941 + 4 | 0;
HEAP32[$959 >> 2] = 27;
HEAP32[$942 >> 2] = HEAP32[17718];
HEAP32[$942 + 4 >> 2] = HEAP32[17719];
HEAP32[$942 + 8 >> 2] = HEAP32[17720];
HEAP32[$942 + 12 >> 2] = HEAP32[17721];
HEAP32[17718] = $tbase$746$i;
HEAP32[17719] = $tsize$745$i;
HEAP32[17721] = 0;
HEAP32[17720] = $942;
$p$0$i$i = $941 + 24 | 0;
do {
$p$0$i$i = $p$0$i$i + 4 | 0;
HEAP32[$p$0$i$i >> 2] = 7;
} while (($p$0$i$i + 4 | 0) >>> 0 < $$lcssa142 >>> 0);
if (($941 | 0) != ($635 | 0)) {
$966 = $941 - $635 | 0;
HEAP32[$959 >> 2] = HEAP32[$959 >> 2] & -2;
HEAP32[$635 + 4 >> 2] = $966 | 1;
HEAP32[$941 >> 2] = $966;
$971 = $966 >>> 3;
if ($966 >>> 0 < 256) {
$974 = 70464 + ($971 << 1 << 2) | 0;
$975 = HEAP32[17606] | 0;
$976 = 1 << $971;
if (!($975 & $976)) {
HEAP32[17606] = $975 | $976;
$$pre$phi$i$iZ2D = $974 + 8 | 0;
$F$0$i$i = $974;
} else {
$980 = $974 + 8 | 0;
$981 = HEAP32[$980 >> 2] | 0;
if ($981 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
$$pre$phi$i$iZ2D = $980;
$F$0$i$i = $981;
}
}
HEAP32[$$pre$phi$i$iZ2D >> 2] = $635;
HEAP32[$F$0$i$i + 12 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $F$0$i$i;
HEAP32[$635 + 12 >> 2] = $974;
break;
}
$987 = $966 >>> 8;
if (!$987) $I1$0$i$i = 0; else if ($966 >>> 0 > 16777215) $I1$0$i$i = 31; else {
$992 = ($987 + 1048320 | 0) >>> 16 & 8;
$993 = $987 << $992;
$996 = ($993 + 520192 | 0) >>> 16 & 4;
$998 = $993 << $996;
$1001 = ($998 + 245760 | 0) >>> 16 & 2;
$1006 = 14 - ($996 | $992 | $1001) + ($998 << $1001 >>> 15) | 0;
$I1$0$i$i = $966 >>> ($1006 + 7 | 0) & 1 | $1006 << 1;
}
$1012 = 70728 + ($I1$0$i$i << 2) | 0;
HEAP32[$635 + 28 >> 2] = $I1$0$i$i;
HEAP32[$635 + 20 >> 2] = 0;
HEAP32[$939 >> 2] = 0;
$1015 = HEAP32[17607] | 0;
$1016 = 1 << $I1$0$i$i;
if (!($1015 & $1016)) {
HEAP32[17607] = $1015 | $1016;
HEAP32[$1012 >> 2] = $635;
HEAP32[$635 + 24 >> 2] = $1012;
HEAP32[$635 + 12 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $635;
break;
}
$K2$0$i$i = $966 << (($I1$0$i$i | 0) == 31 ? 0 : 25 - ($I1$0$i$i >>> 1) | 0);
$T$0$i$i = HEAP32[$1012 >> 2] | 0;
while (1) {
if ((HEAP32[$T$0$i$i + 4 >> 2] & -8 | 0) == ($966 | 0)) {
$T$0$i$i$lcssa = $T$0$i$i;
label = 307;
break;
}
$1034 = $T$0$i$i + 16 + ($K2$0$i$i >>> 31 << 2) | 0;
$1036 = HEAP32[$1034 >> 2] | 0;
if (!$1036) {
$$lcssa141 = $1034;
$T$0$i$i$lcssa140 = $T$0$i$i;
label = 304;
break;
} else {
$K2$0$i$i = $K2$0$i$i << 1;
$T$0$i$i = $1036;
}
}
if ((label | 0) == 304) if ($$lcssa141 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa141 >> 2] = $635;
HEAP32[$635 + 24 >> 2] = $T$0$i$i$lcssa140;
HEAP32[$635 + 12 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $635;
break;
} else if ((label | 0) == 307) {
$1043 = $T$0$i$i$lcssa + 8 | 0;
$1044 = HEAP32[$1043 >> 2] | 0;
$1045 = HEAP32[17610] | 0;
if ($1044 >>> 0 >= $1045 >>> 0 & $T$0$i$i$lcssa >>> 0 >= $1045 >>> 0) {
HEAP32[$1044 + 12 >> 2] = $635;
HEAP32[$1043 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $1044;
HEAP32[$635 + 12 >> 2] = $T$0$i$i$lcssa;
HEAP32[$635 + 24 >> 2] = 0;
break;
} else _abort();
}
}
} while (0);
$1053 = HEAP32[17609] | 0;
if ($1053 >>> 0 > $nb$0 >>> 0) {
$1055 = $1053 - $nb$0 | 0;
HEAP32[17609] = $1055;
$1056 = HEAP32[17612] | 0;
$1057 = $1056 + $nb$0 | 0;
HEAP32[17612] = $1057;
HEAP32[$1057 + 4 >> 2] = $1055 | 1;
HEAP32[$1056 + 4 >> 2] = $nb$0 | 3;
$$0 = $1056 + 8 | 0;
return $$0 | 0;
}
}
HEAP32[(___errno_location() | 0) >> 2] = 12;
$$0 = 0;
return $$0 | 0;
}
function _transform($c, $data, $nblks) {
$c = $c | 0;
$data = $data | 0;
$nblks = $nblks | 0;
var $$0 = 0, $$01 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1003 = 0, $1009 = 0, $1013 = 0, $1016 = 0, $1022 = 0, $1026 = 0, $1029 = 0, $103 = 0, $1035 = 0, $1039 = 0, $1042 = 0, $1048 = 0, $1052 = 0, $1055 = 0, $1061 = 0, $1065 = 0, $1068 = 0, $107 = 0, $1074 = 0, $1078 = 0, $1081 = 0, $1087 = 0, $1091 = 0, $1094 = 0, $11 = 0, $110 = 0, $1100 = 0, $1104 = 0, $1107 = 0, $1113 = 0, $1117 = 0, $1120 = 0, $1126 = 0, $1130 = 0, $1133 = 0, $1139 = 0, $114 = 0, $1143 = 0, $1146 = 0, $1152 = 0, $1156 = 0, $1159 = 0, $1165 = 0, $1169 = 0, $117 = 0, $1172 = 0, $1178 = 0, $1182 = 0, $1185 = 0, $1191 = 0, $1195 = 0, $1198 = 0, $12 = 0, $120 = 0, $1204 = 0, $1208 = 0, $1211 = 0, $1217 = 0, $122 = 0, $1221 = 0, $1224 = 0, $1230 = 0, $1234 = 0, $1237 = 0, $1243 = 0, $1247 = 0, $1250 = 0, $1256 = 0, $126 = 0, $1260 = 0, $1263 = 0, $1269 = 0, $1273 = 0, $1276 = 0, $1282 = 0, $1286 = 0, $1289 = 0, $129 = 0, $1295 = 0, $1299 = 0, $13 = 0, $1302 = 0, $1309 = 0, $1313 = 0, $1316 = 0, $1323 = 0, $1327 = 0, $1330 = 0, $1337 = 0, $1341 = 0, $1344 = 0, $135 = 0, $1351 = 0, $1355 = 0, $1358 = 0, $1365 = 0, $1369 = 0, $1372 = 0, $1379 = 0, $1383 = 0, $1386 = 0, $139 = 0, $1393 = 0, $1397 = 0, $14 = 0, $1400 = 0, $1407 = 0, $1411 = 0, $1414 = 0, $142 = 0, $1421 = 0, $1425 = 0, $1428 = 0, $1435 = 0, $1439 = 0, $1442 = 0, $1449 = 0, $145 = 0, $1453 = 0, $1456 = 0, $1463 = 0, $1467 = 0, $147 = 0, $1470 = 0, $1477 = 0, $1481 = 0, $1484 = 0, $1491 = 0, $1495 = 0, $1498 = 0, $15 = 0, $1505 = 0, $1509 = 0, $151 = 0, $1512 = 0, $1519 = 0, $1523 = 0, $1526 = 0, $1533 = 0, $1537 = 0, $154 = 0, $1540 = 0, $1547 = 0, $1551 = 0, $1554 = 0, $1561 = 0, $1565 = 0, $1568 = 0, $1575 = 0, $1579 = 0, $158 = 0, $1582 = 0, $1589 = 0, $1593 = 0, $1596 = 0, $16 = 0, $1603 = 0, $1607 = 0, $161 = 0, $1610 = 0, $1617 = 0, $1621 = 0, $1624 = 0, $1631 = 0, $1635 = 0, $1638 = 0, $1645 = 0, $1649 = 0, $165 = 0, $1652 = 0, $1659 = 0, $1663 = 0, $1666 = 0, $1673 = 0, $1677 = 0, $168 = 0, $1680 = 0, $1687 = 0, $1691 = 0, $1694 = 0, $17 = 0, $1701 = 0, $1705 = 0, $1708 = 0, $1715 = 0, $1719 = 0, $172 = 0, $1722 = 0, $1729 = 0, $1733 = 0, $1736 = 0, $1743 = 0, $1747 = 0, $1750 = 0, $1756 = 0, $176 = 0, $1760 = 0, $1763 = 0, $1767 = 0, $1771 = 0, $1774 = 0, $1780 = 0, $1784 = 0, $1787 = 0, $179 = 0, $1791 = 0, $1795 = 0, $1798 = 0, $18 = 0, $1804 = 0, $1808 = 0, $1811 = 0, $1815 = 0, $1819 = 0, $1822 = 0, $1828 = 0, $1832 = 0, $1835 = 0, $1839 = 0, $1843 = 0, $1846 = 0, $185 = 0, $1852 = 0, $1856 = 0, $1859 = 0, $1863 = 0, $1867 = 0, $1870 = 0, $1876 = 0, $1880 = 0, $1883 = 0, $1887 = 0, $189 = 0, $1891 = 0, $1894 = 0, $19 = 0, $1900 = 0, $1904 = 0, $1907 = 0, $1911 = 0, $1915 = 0, $1918 = 0, $192 = 0, $1924 = 0, $1928 = 0, $1931 = 0, $1935 = 0, $1939 = 0, $1942 = 0, $1948 = 0, $195 = 0, $1952 = 0, $1955 = 0, $1959 = 0, $1963 = 0, $1966 = 0, $197 = 0, $1972 = 0, $1976 = 0, $1979 = 0, $1983 = 0, $1987 = 0, $1990 = 0, $1996 = 0, $2 = 0, $2000 = 0, $2003 = 0, $2007 = 0, $201 = 0, $2011 = 0, $2014 = 0, $2020 = 0, $2024 = 0, $2027 = 0, $2031 = 0, $2035 = 0, $2038 = 0, $204 = 0, $2044 = 0, $2048 = 0, $2051 = 0, $2055 = 0, $2059 = 0, $2062 = 0, $2068 = 0, $2072 = 0, $2075 = 0, $2079 = 0, $208 = 0, $2083 = 0, $2086 = 0, $2092 = 0, $2096 = 0, $2099 = 0, $21 = 0, $2103 = 0, $2107 = 0, $211 = 0, $2110 = 0, $2116 = 0, $2126 = 0, $215 = 0, $218 = 0, $222 = 0, $226 = 0, $229 = 0, $235 = 0, $239 = 0, $242 = 0, $245 = 0, $247 = 0, $251 = 0, $254 = 0, $258 = 0, $261 = 0, $265 = 0, $268 = 0, $272 = 0, $276 = 0, $279 = 0, $285 = 0, $289 = 0, $292 = 0, $295 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $335 = 0, $339 = 0, $342 = 0, $345 = 0, $347 = 0, $351 = 0, $354 = 0, $360 = 0, $364 = 0, $367 = 0, $371 = 0, $375 = 0, $378 = 0, $384 = 0, $388 = 0, $391 = 0, $395 = 0, $399 = 0, $4 = 0, $402 = 0, $408 = 0, $41 = 0, $412 = 0, $415 = 0, $419 = 0, $42 = 0, $423 = 0, $426 = 0, $43 = 0, $432 = 0, $436 = 0, $439 = 0, $44 = 0, $446 = 0, $45 = 0, $450 = 0, $453 = 0, $460 = 0, $464 = 0, $467 = 0, $474 = 0, $478 = 0, $48 = 0, $481 = 0, $488 = 0, $492 = 0, $495 = 0, $5 = 0, $50 = 0, $502 = 0, $506 = 0, $509 = 0, $516 = 0, $520 = 0, $523 = 0, $530 = 0, $534 = 0, $537 = 0, $54 = 0, $544 = 0, $548 = 0, $551 = 0, $558 = 0, $562 = 0, $565 = 0, $57 = 0, $572 = 0, $576 = 0, $579 = 0, $586 = 0, $590 = 0, $593 = 0, $6 = 0, $600 = 0, $604 = 0, $607 = 0, $61 = 0, $614 = 0, $618 = 0, $621 = 0, $628 = 0, $632 = 0, $635 = 0, $64 = 0, $642 = 0, $646 = 0, $649 = 0, $656 = 0, $660 = 0, $663 = 0, $670 = 0, $674 = 0, $677 = 0, $68 = 0, $684 = 0, $688 = 0, $691 = 0, $698 = 0, $7 = 0, $702 = 0, $705 = 0, $71 = 0, $712 = 0, $716 = 0, $719 = 0, $726 = 0, $73 = 0, $730 = 0, $733 = 0, $740 = 0, $744 = 0, $747 = 0, $754 = 0, $758 = 0, $761 = 0, $768 = 0, $77 = 0, $772 = 0, $775 = 0, $782 = 0, $786 = 0, $789 = 0, $796 = 0, $8 = 0, $80 = 0, $800 = 0, $803 = 0, $810 = 0, $814 = 0, $817 = 0, $824 = 0, $828 = 0, $831 = 0, $838 = 0, $84 = 0, $842 = 0, $845 = 0, $852 = 0, $856 = 0, $859 = 0, $861 = 0, $866 = 0, $87 = 0, $870 = 0, $873 = 0, $880 = 0, $884 = 0, $887 = 0, $892 = 0, $896 = 0, $899 = 0, $9 = 0, $905 = 0, $909 = 0, $91 = 0, $912 = 0, $918 = 0, $922 = 0, $925 = 0, $931 = 0, $935 = 0, $938 = 0, $94 = 0, $944 = 0, $948 = 0, $951 = 0, $957 = 0, $96 = 0, $961 = 0, $964 = 0, $970 = 0, $974 = 0, $977 = 0, $983 = 0, $987 = 0, $990 = 0, $996 = 0, $i$01$i = 0, $x$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$x$i = sp;
$0 = $c + 160 | 0;
$1 = $c + 164 | 0;
$2 = $c + 168 | 0;
$3 = $c + 172 | 0;
$4 = $c + 176 | 0;
$5 = $x$i + 20 | 0;
$6 = $x$i + 4 | 0;
$7 = $x$i + 56 | 0;
$8 = $x$i + 8 | 0;
$9 = $x$i + 28 | 0;
$10 = $x$i + 12 | 0;
$11 = $x$i + 16 | 0;
$12 = $x$i + 36 | 0;
$13 = $x$i + 24 | 0;
$14 = $x$i + 44 | 0;
$15 = $x$i + 32 | 0;
$16 = $x$i + 52 | 0;
$17 = $x$i + 40 | 0;
$18 = $x$i + 60 | 0;
$19 = $x$i + 48 | 0;
$$0 = $data;
$$01 = $nblks;
while (1) {
$i$01$i = 0;
do {
$21 = $$0 + ($i$01$i << 2) | 0;
HEAP32[$x$i + ($i$01$i << 2) >> 2] = (HEAPU8[$21 + 2 >> 0] | 0) << 16 | (HEAPU8[$21 + 3 >> 0] | 0) << 24 | (HEAPU8[$21 + 1 >> 0] | 0) << 8 | (HEAPU8[$21 >> 0] | 0);
$i$01$i = $i$01$i + 1 | 0;
} while (($i$01$i | 0) != 16);
$41 = HEAP32[$0 >> 2] | 0;
$42 = HEAP32[$1 >> 2] | 0;
$43 = HEAP32[$2 >> 2] | 0;
$44 = HEAP32[$3 >> 2] | 0;
$45 = HEAP32[$4 >> 2] | 0;
$48 = HEAP32[$x$i >> 2] | 0;
$50 = ($43 ^ $42 ^ $44) + $41 + $48 | 0;
$54 = ($50 << 11 | $50 >>> 21) + $45 | 0;
$57 = $43 << 10 | $43 >>> 22;
$61 = HEAP32[$5 >> 2] | 0;
$64 = $41 + 1352829926 + (($43 | ~$44) ^ $42) + $61 | 0;
$68 = ($64 << 8 | $64 >>> 24) + $45 | 0;
$71 = HEAP32[$6 >> 2] | 0;
$73 = $71 + $45 + ($57 ^ $42 ^ $54) | 0;
$77 = ($73 << 14 | $73 >>> 18) + $44 | 0;
$80 = $42 << 10 | $42 >>> 22;
$84 = HEAP32[$7 >> 2] | 0;
$87 = $45 + 1352829926 + $84 + ($68 ^ ($42 | ~$57)) | 0;
$91 = ($87 << 9 | $87 >>> 23) + $44 | 0;
$94 = HEAP32[$8 >> 2] | 0;
$96 = $94 + $44 + ($54 ^ $80 ^ $77) | 0;
$100 = ($96 << 15 | $96 >>> 17) + $57 | 0;
$103 = $54 << 10 | $54 >>> 22;
$107 = HEAP32[$9 >> 2] | 0;
$110 = $44 + 1352829926 + $107 + ($91 ^ ($68 | ~$80)) | 0;
$114 = ($110 << 9 | $110 >>> 23) + $57 | 0;
$117 = $68 << 10 | $68 >>> 22;
$120 = HEAP32[$10 >> 2] | 0;
$122 = $120 + $57 + ($77 ^ $103 ^ $100) | 0;
$126 = ($122 << 12 | $122 >>> 20) + $80 | 0;
$129 = $77 << 10 | $77 >>> 22;
$135 = $57 + 1352829926 + $48 + ($114 ^ ($91 | ~$117)) | 0;
$139 = ($135 << 11 | $135 >>> 21) + $80 | 0;
$142 = $91 << 10 | $91 >>> 22;
$145 = HEAP32[$11 >> 2] | 0;
$147 = $145 + $80 + ($100 ^ $129 ^ $126) | 0;
$151 = ($147 << 5 | $147 >>> 27) + $103 | 0;
$154 = $100 << 10 | $100 >>> 22;
$158 = HEAP32[$12 >> 2] | 0;
$161 = $80 + 1352829926 + $158 + ($139 ^ ($114 | ~$142)) | 0;
$165 = ($161 << 13 | $161 >>> 19) + $117 | 0;
$168 = $114 << 10 | $114 >>> 22;
$172 = $103 + $61 + ($126 ^ $154 ^ $151) | 0;
$176 = ($172 << 8 | $172 >>> 24) + $129 | 0;
$179 = $126 << 10 | $126 >>> 22;
$185 = $94 + 1352829926 + $117 + ($165 ^ ($139 | ~$168)) | 0;
$189 = ($185 << 15 | $185 >>> 17) + $142 | 0;
$192 = $139 << 10 | $139 >>> 22;
$195 = HEAP32[$13 >> 2] | 0;
$197 = $129 + $195 + ($151 ^ $179 ^ $176) | 0;
$201 = ($197 << 7 | $197 >>> 25) + $154 | 0;
$204 = $151 << 10 | $151 >>> 22;
$208 = HEAP32[$14 >> 2] | 0;
$211 = $208 + 1352829926 + $142 + ($189 ^ ($165 | ~$192)) | 0;
$215 = ($211 << 15 | $211 >>> 17) + $168 | 0;
$218 = $165 << 10 | $165 >>> 22;
$222 = $154 + $107 + ($176 ^ $204 ^ $201) | 0;
$226 = ($222 << 9 | $222 >>> 23) + $179 | 0;
$229 = $176 << 10 | $176 >>> 22;
$235 = $145 + 1352829926 + $168 + ($215 ^ ($189 | ~$218)) | 0;
$239 = ($235 << 5 | $235 >>> 27) + $192 | 0;
$242 = $189 << 10 | $189 >>> 22;
$245 = HEAP32[$15 >> 2] | 0;
$247 = $179 + $245 + ($201 ^ $229 ^ $226) | 0;
$251 = ($247 << 11 | $247 >>> 21) + $204 | 0;
$254 = $201 << 10 | $201 >>> 22;
$258 = HEAP32[$16 >> 2] | 0;
$261 = $258 + 1352829926 + $192 + ($239 ^ ($215 | ~$242)) | 0;
$265 = ($261 << 7 | $261 >>> 25) + $218 | 0;
$268 = $215 << 10 | $215 >>> 22;
$272 = $204 + $158 + ($226 ^ $254 ^ $251) | 0;
$276 = ($272 << 13 | $272 >>> 19) + $229 | 0;
$279 = $226 << 10 | $226 >>> 22;
$285 = $195 + 1352829926 + $218 + ($265 ^ ($239 | ~$268)) | 0;
$289 = ($285 << 7 | $285 >>> 25) + $242 | 0;
$292 = $239 << 10 | $239 >>> 22;
$295 = HEAP32[$17 >> 2] | 0;
$297 = $229 + $295 + ($251 ^ $279 ^ $276) | 0;
$301 = ($297 << 14 | $297 >>> 18) + $254 | 0;
$304 = $251 << 10 | $251 >>> 22;
$308 = HEAP32[$18 >> 2] | 0;
$311 = $308 + 1352829926 + $242 + ($289 ^ ($265 | ~$292)) | 0;
$315 = ($311 << 8 | $311 >>> 24) + $268 | 0;
$318 = $265 << 10 | $265 >>> 22;
$322 = $254 + $208 + ($276 ^ $304 ^ $301) | 0;
$326 = ($322 << 15 | $322 >>> 17) + $279 | 0;
$329 = $276 << 10 | $276 >>> 22;
$335 = $245 + 1352829926 + $268 + ($315 ^ ($289 | ~$318)) | 0;
$339 = ($335 << 11 | $335 >>> 21) + $292 | 0;
$342 = $289 << 10 | $289 >>> 22;
$345 = HEAP32[$19 >> 2] | 0;
$347 = $279 + $345 + ($301 ^ $329 ^ $326) | 0;
$351 = ($347 << 6 | $347 >>> 26) + $304 | 0;
$354 = $301 << 10 | $301 >>> 22;
$360 = $71 + 1352829926 + $292 + ($339 ^ ($315 | ~$342)) | 0;
$364 = ($360 << 14 | $360 >>> 18) + $318 | 0;
$367 = $315 << 10 | $315 >>> 22;
$371 = $304 + $258 + ($326 ^ $354 ^ $351) | 0;
$375 = ($371 << 7 | $371 >>> 25) + $329 | 0;
$378 = $326 << 10 | $326 >>> 22;
$384 = $295 + 1352829926 + $318 + ($364 ^ ($339 | ~$367)) | 0;
$388 = ($384 << 14 | $384 >>> 18) + $342 | 0;
$391 = $339 << 10 | $339 >>> 22;
$395 = $329 + $84 + ($351 ^ $378 ^ $375) | 0;
$399 = ($395 << 9 | $395 >>> 23) + $354 | 0;
$402 = $351 << 10 | $351 >>> 22;
$408 = $120 + 1352829926 + $342 + ($388 ^ ($364 | ~$391)) | 0;
$412 = ($408 << 12 | $408 >>> 20) + $367 | 0;
$415 = $364 << 10 | $364 >>> 22;
$419 = $354 + $308 + ($375 ^ $402 ^ $399) | 0;
$423 = ($419 << 8 | $419 >>> 24) + $378 | 0;
$426 = $375 << 10 | $375 >>> 22;
$432 = $345 + 1352829926 + $367 + ($412 ^ ($388 | ~$415)) | 0;
$436 = ($432 << 6 | $432 >>> 26) + $391 | 0;
$439 = $388 << 10 | $388 >>> 22;
$446 = $107 + 1518500249 + $378 + ($423 & $399 | $426 & ~$423) | 0;
$450 = ($446 << 7 | $446 >>> 25) + $402 | 0;
$453 = $399 << 10 | $399 >>> 22;
$460 = $195 + 1548603684 + $391 + ($436 & $439 | $412 & ~$439) | 0;
$464 = ($460 << 9 | $460 >>> 23) + $415 | 0;
$467 = $412 << 10 | $412 >>> 22;
$474 = $145 + 1518500249 + $402 + ($450 & $423 | $453 & ~$450) | 0;
$478 = ($474 << 6 | $474 >>> 26) + $426 | 0;
$481 = $423 << 10 | $423 >>> 22;
$488 = $208 + 1548603684 + $415 + ($464 & $467 | $436 & ~$467) | 0;
$492 = ($488 << 13 | $488 >>> 19) + $439 | 0;
$495 = $436 << 10 | $436 >>> 22;
$502 = $258 + 1518500249 + $426 + ($478 & $450 | $481 & ~$478) | 0;
$506 = ($502 << 8 | $502 >>> 24) + $453 | 0;
$509 = $450 << 10 | $450 >>> 22;
$516 = $120 + 1548603684 + $439 + ($492 & $495 | $464 & ~$495) | 0;
$520 = ($516 << 15 | $516 >>> 17) + $467 | 0;
$523 = $464 << 10 | $464 >>> 22;
$530 = $71 + 1518500249 + $453 + ($506 & $478 | $509 & ~$506) | 0;
$534 = ($530 << 13 | $530 >>> 19) + $481 | 0;
$537 = $478 << 10 | $478 >>> 22;
$544 = $107 + 1548603684 + $467 + ($520 & $523 | $492 & ~$523) | 0;
$548 = ($544 << 7 | $544 >>> 25) + $495 | 0;
$551 = $492 << 10 | $492 >>> 22;
$558 = $295 + 1518500249 + $481 + ($534 & $506 | $537 & ~$534) | 0;
$562 = ($558 << 11 | $558 >>> 21) + $509 | 0;
$565 = $506 << 10 | $506 >>> 22;
$572 = $48 + 1548603684 + $495 + ($548 & $551 | $520 & ~$551) | 0;
$576 = ($572 << 12 | $572 >>> 20) + $523 | 0;
$579 = $520 << 10 | $520 >>> 22;
$586 = $195 + 1518500249 + $509 + ($562 & $534 | $565 & ~$562) | 0;
$590 = ($586 << 9 | $586 >>> 23) + $537 | 0;
$593 = $534 << 10 | $534 >>> 22;
$600 = $258 + 1548603684 + $523 + ($576 & $579 | $548 & ~$579) | 0;
$604 = ($600 << 8 | $600 >>> 24) + $551 | 0;
$607 = $548 << 10 | $548 >>> 22;
$614 = $308 + 1518500249 + $537 + ($590 & $562 | $593 & ~$590) | 0;
$618 = ($614 << 7 | $614 >>> 25) + $565 | 0;
$621 = $562 << 10 | $562 >>> 22;
$628 = $61 + 1548603684 + $551 + ($604 & $607 | $576 & ~$607) | 0;
$632 = ($628 << 9 | $628 >>> 23) + $579 | 0;
$635 = $576 << 10 | $576 >>> 22;
$642 = $120 + 1518500249 + $565 + ($618 & $590 | $621 & ~$618) | 0;
$646 = ($642 << 15 | $642 >>> 17) + $593 | 0;
$649 = $590 << 10 | $590 >>> 22;
$656 = $295 + 1548603684 + $579 + ($632 & $635 | $604 & ~$635) | 0;
$660 = ($656 << 11 | $656 >>> 21) + $607 | 0;
$663 = $604 << 10 | $604 >>> 22;
$670 = $345 + 1518500249 + $593 + ($646 & $618 | $649 & ~$646) | 0;
$674 = ($670 << 7 | $670 >>> 25) + $621 | 0;
$677 = $618 << 10 | $618 >>> 22;
$684 = $84 + 1548603684 + $607 + ($660 & $663 | $632 & ~$663) | 0;
$688 = ($684 << 7 | $684 >>> 25) + $635 | 0;
$691 = $632 << 10 | $632 >>> 22;
$698 = $48 + 1518500249 + $621 + ($674 & $646 | $677 & ~$674) | 0;
$702 = ($698 << 12 | $698 >>> 20) + $649 | 0;
$705 = $646 << 10 | $646 >>> 22;
$712 = $308 + 1548603684 + $635 + ($688 & $691 | $660 & ~$691) | 0;
$716 = ($712 << 7 | $712 >>> 25) + $663 | 0;
$719 = $660 << 10 | $660 >>> 22;
$726 = $158 + 1518500249 + $649 + ($702 & $674 | $705 & ~$702) | 0;
$730 = ($726 << 15 | $726 >>> 17) + $677 | 0;
$733 = $674 << 10 | $674 >>> 22;
$740 = $245 + 1548603684 + $663 + ($716 & $719 | $688 & ~$719) | 0;
$744 = ($740 << 12 | $740 >>> 20) + $691 | 0;
$747 = $688 << 10 | $688 >>> 22;
$754 = $61 + 1518500249 + $677 + ($730 & $702 | $733 & ~$730) | 0;
$758 = ($754 << 9 | $754 >>> 23) + $705 | 0;
$761 = $702 << 10 | $702 >>> 22;
$768 = $345 + 1548603684 + $691 + ($744 & $747 | $716 & ~$747) | 0;
$772 = ($768 << 7 | $768 >>> 25) + $719 | 0;
$775 = $716 << 10 | $716 >>> 22;
$782 = $94 + 1518500249 + $705 + ($758 & $730 | $761 & ~$758) | 0;
$786 = ($782 << 11 | $782 >>> 21) + $733 | 0;
$789 = $730 << 10 | $730 >>> 22;
$796 = $145 + 1548603684 + $719 + ($772 & $775 | $744 & ~$775) | 0;
$800 = ($796 << 6 | $796 >>> 26) + $747 | 0;
$803 = $744 << 10 | $744 >>> 22;
$810 = $84 + 1518500249 + $733 + ($786 & $758 | $789 & ~$786) | 0;
$814 = ($810 << 7 | $810 >>> 25) + $761 | 0;
$817 = $758 << 10 | $758 >>> 22;
$824 = $158 + 1548603684 + $747 + ($800 & $803 | $772 & ~$803) | 0;
$828 = ($824 << 15 | $824 >>> 17) + $775 | 0;
$831 = $772 << 10 | $772 >>> 22;
$838 = $208 + 1518500249 + $761 + ($814 & $786 | $817 & ~$814) | 0;
$842 = ($838 << 13 | $838 >>> 19) + $789 | 0;
$845 = $786 << 10 | $786 >>> 22;
$852 = $71 + 1548603684 + $775 + ($828 & $831 | $800 & ~$831) | 0;
$856 = ($852 << 13 | $852 >>> 19) + $803 | 0;
$859 = $800 << 10 | $800 >>> 22;
$861 = ~$842;
$866 = $245 + 1518500249 + $789 + ($842 & $814 | $845 & $861) | 0;
$870 = ($866 << 12 | $866 >>> 20) + $817 | 0;
$873 = $814 << 10 | $814 >>> 22;
$880 = $94 + 1548603684 + $803 + ($856 & $859 | $828 & ~$859) | 0;
$884 = ($880 << 11 | $880 >>> 21) + $831 | 0;
$887 = $828 << 10 | $828 >>> 22;
$892 = $120 + 1859775393 + $817 + (($870 | $861) ^ $873) | 0;
$896 = ($892 << 11 | $892 >>> 21) + $845 | 0;
$899 = $842 << 10 | $842 >>> 22;
$905 = $308 + 1836072691 + $831 + (($884 | ~$856) ^ $887) | 0;
$909 = ($905 << 9 | $905 >>> 23) + $859 | 0;
$912 = $856 << 10 | $856 >>> 22;
$918 = $295 + 1859775393 + $845 + (($896 | ~$870) ^ $899) | 0;
$922 = ($918 << 13 | $918 >>> 19) + $873 | 0;
$925 = $870 << 10 | $870 >>> 22;
$931 = $61 + 1836072691 + $859 + (($909 | ~$884) ^ $912) | 0;
$935 = ($931 << 7 | $931 >>> 25) + $887 | 0;
$938 = $884 << 10 | $884 >>> 22;
$944 = $84 + 1859775393 + $873 + (($922 | ~$896) ^ $925) | 0;
$948 = ($944 << 6 | $944 >>> 26) + $899 | 0;
$951 = $896 << 10 | $896 >>> 22;
$957 = $71 + 1836072691 + $887 + (($935 | ~$909) ^ $938) | 0;
$961 = ($957 << 15 | $957 >>> 17) + $912 | 0;
$964 = $909 << 10 | $909 >>> 22;
$970 = $145 + 1859775393 + $899 + (($948 | ~$922) ^ $951) | 0;
$974 = ($970 << 7 | $970 >>> 25) + $925 | 0;
$977 = $922 << 10 | $922 >>> 22;
$983 = $120 + 1836072691 + $912 + (($961 | ~$935) ^ $964) | 0;
$987 = ($983 << 11 | $983 >>> 21) + $938 | 0;
$990 = $935 << 10 | $935 >>> 22;
$996 = $158 + 1859775393 + $925 + (($974 | ~$948) ^ $977) | 0;
$1000 = ($996 << 14 | $996 >>> 18) + $951 | 0;
$1003 = $948 << 10 | $948 >>> 22;
$1009 = $107 + 1836072691 + $938 + (($987 | ~$961) ^ $990) | 0;
$1013 = ($1009 << 8 | $1009 >>> 24) + $964 | 0;
$1016 = $961 << 10 | $961 >>> 22;
$1022 = $308 + 1859775393 + $951 + (($1000 | ~$974) ^ $1003) | 0;
$1026 = ($1022 << 9 | $1022 >>> 23) + $977 | 0;
$1029 = $974 << 10 | $974 >>> 22;
$1035 = $84 + 1836072691 + $964 + (($1013 | ~$987) ^ $1016) | 0;
$1039 = ($1035 << 6 | $1035 >>> 26) + $990 | 0;
$1042 = $987 << 10 | $987 >>> 22;
$1048 = $245 + 1859775393 + $977 + (($1026 | ~$1000) ^ $1029) | 0;
$1052 = ($1048 << 13 | $1048 >>> 19) + $1003 | 0;
$1055 = $1000 << 10 | $1000 >>> 22;
$1061 = $195 + 1836072691 + $990 + (($1039 | ~$1013) ^ $1042) | 0;
$1065 = ($1061 << 6 | $1061 >>> 26) + $1016 | 0;
$1068 = $1013 << 10 | $1013 >>> 22;
$1074 = $71 + 1859775393 + $1003 + (($1052 | ~$1026) ^ $1055) | 0;
$1078 = ($1074 << 15 | $1074 >>> 17) + $1029 | 0;
$1081 = $1026 << 10 | $1026 >>> 22;
$1087 = $158 + 1836072691 + $1016 + (($1065 | ~$1039) ^ $1068) | 0;
$1091 = ($1087 << 14 | $1087 >>> 18) + $1042 | 0;
$1094 = $1039 << 10 | $1039 >>> 22;
$1100 = $94 + 1859775393 + $1029 + (($1078 | ~$1052) ^ $1081) | 0;
$1104 = ($1100 << 14 | $1100 >>> 18) + $1055 | 0;
$1107 = $1052 << 10 | $1052 >>> 22;
$1113 = $208 + 1836072691 + $1042 + (($1091 | ~$1065) ^ $1094) | 0;
$1117 = ($1113 << 12 | $1113 >>> 20) + $1068 | 0;
$1120 = $1065 << 10 | $1065 >>> 22;
$1126 = $107 + 1859775393 + $1055 + (($1104 | ~$1078) ^ $1107) | 0;
$1130 = ($1126 << 8 | $1126 >>> 24) + $1081 | 0;
$1133 = $1078 << 10 | $1078 >>> 22;
$1139 = $245 + 1836072691 + $1068 + (($1117 | ~$1091) ^ $1120) | 0;
$1143 = ($1139 << 13 | $1139 >>> 19) + $1094 | 0;
$1146 = $1091 << 10 | $1091 >>> 22;
$1152 = $48 + 1859775393 + $1081 + (($1130 | ~$1104) ^ $1133) | 0;
$1156 = ($1152 << 13 | $1152 >>> 19) + $1107 | 0;
$1159 = $1104 << 10 | $1104 >>> 22;
$1165 = $345 + 1836072691 + $1094 + (($1143 | ~$1117) ^ $1146) | 0;
$1169 = ($1165 << 5 | $1165 >>> 27) + $1120 | 0;
$1172 = $1117 << 10 | $1117 >>> 22;
$1178 = $195 + 1859775393 + $1107 + (($1156 | ~$1130) ^ $1159) | 0;
$1182 = ($1178 << 6 | $1178 >>> 26) + $1133 | 0;
$1185 = $1130 << 10 | $1130 >>> 22;
$1191 = $94 + 1836072691 + $1120 + (($1169 | ~$1143) ^ $1172) | 0;
$1195 = ($1191 << 14 | $1191 >>> 18) + $1146 | 0;
$1198 = $1143 << 10 | $1143 >>> 22;
$1204 = $258 + 1859775393 + $1133 + (($1182 | ~$1156) ^ $1185) | 0;
$1208 = ($1204 << 5 | $1204 >>> 27) + $1159 | 0;
$1211 = $1156 << 10 | $1156 >>> 22;
$1217 = $295 + 1836072691 + $1146 + (($1195 | ~$1169) ^ $1198) | 0;
$1221 = ($1217 << 13 | $1217 >>> 19) + $1172 | 0;
$1224 = $1169 << 10 | $1169 >>> 22;
$1230 = $208 + 1859775393 + $1159 + (($1208 | ~$1182) ^ $1211) | 0;
$1234 = ($1230 << 12 | $1230 >>> 20) + $1185 | 0;
$1237 = $1182 << 10 | $1182 >>> 22;
$1243 = $48 + 1836072691 + $1172 + (($1221 | ~$1195) ^ $1224) | 0;
$1247 = ($1243 << 13 | $1243 >>> 19) + $1198 | 0;
$1250 = $1195 << 10 | $1195 >>> 22;
$1256 = $61 + 1859775393 + $1185 + (($1234 | ~$1208) ^ $1237) | 0;
$1260 = ($1256 << 7 | $1256 >>> 25) + $1211 | 0;
$1263 = $1208 << 10 | $1208 >>> 22;
$1269 = $145 + 1836072691 + $1198 + (($1247 | ~$1221) ^ $1250) | 0;
$1273 = ($1269 << 7 | $1269 >>> 25) + $1224 | 0;
$1276 = $1221 << 10 | $1221 >>> 22;
$1282 = $345 + 1859775393 + $1211 + (($1260 | ~$1234) ^ $1263) | 0;
$1286 = ($1282 << 5 | $1282 >>> 27) + $1237 | 0;
$1289 = $1234 << 10 | $1234 >>> 22;
$1295 = $258 + 1836072691 + $1224 + (($1273 | ~$1247) ^ $1276) | 0;
$1299 = ($1295 << 5 | $1295 >>> 27) + $1250 | 0;
$1302 = $1247 << 10 | $1247 >>> 22;
$1309 = $71 + -1894007588 + $1237 + ($1286 & $1289 | $1260 & ~$1289) | 0;
$1313 = ($1309 << 11 | $1309 >>> 21) + $1263 | 0;
$1316 = $1260 << 10 | $1260 >>> 22;
$1323 = $245 + 2053994217 + $1250 + ($1299 & $1273 | $1302 & ~$1299) | 0;
$1327 = ($1323 << 15 | $1323 >>> 17) + $1276 | 0;
$1330 = $1273 << 10 | $1273 >>> 22;
$1337 = $158 + -1894007588 + $1263 + ($1313 & $1316 | $1286 & ~$1316) | 0;
$1341 = ($1337 << 12 | $1337 >>> 20) + $1289 | 0;
$1344 = $1286 << 10 | $1286 >>> 22;
$1351 = $195 + 2053994217 + $1276 + ($1327 & $1299 | $1330 & ~$1327) | 0;
$1355 = ($1351 << 5 | $1351 >>> 27) + $1302 | 0;
$1358 = $1299 << 10 | $1299 >>> 22;
$1365 = $208 + -1894007588 + $1289 + ($1341 & $1344 | $1313 & ~$1344) | 0;
$1369 = ($1365 << 14 | $1365 >>> 18) + $1316 | 0;
$1372 = $1313 << 10 | $1313 >>> 22;
$1379 = $145 + 2053994217 + $1302 + ($1355 & $1327 | $1358 & ~$1355) | 0;
$1383 = ($1379 << 8 | $1379 >>> 24) + $1330 | 0;
$1386 = $1327 << 10 | $1327 >>> 22;
$1393 = $295 + -1894007588 + $1316 + ($1369 & $1372 | $1341 & ~$1372) | 0;
$1397 = ($1393 << 15 | $1393 >>> 17) + $1344 | 0;
$1400 = $1341 << 10 | $1341 >>> 22;
$1407 = $71 + 2053994217 + $1330 + ($1383 & $1355 | $1386 & ~$1383) | 0;
$1411 = ($1407 << 11 | $1407 >>> 21) + $1358 | 0;
$1414 = $1355 << 10 | $1355 >>> 22;
$1421 = $48 + -1894007588 + $1344 + ($1397 & $1400 | $1369 & ~$1400) | 0;
$1425 = ($1421 << 14 | $1421 >>> 18) + $1372 | 0;
$1428 = $1369 << 10 | $1369 >>> 22;
$1435 = $120 + 2053994217 + $1358 + ($1411 & $1383 | $1414 & ~$1411) | 0;
$1439 = ($1435 << 14 | $1435 >>> 18) + $1386 | 0;
$1442 = $1383 << 10 | $1383 >>> 22;
$1449 = $245 + -1894007588 + $1372 + ($1425 & $1428 | $1397 & ~$1428) | 0;
$1453 = ($1449 << 15 | $1449 >>> 17) + $1400 | 0;
$1456 = $1397 << 10 | $1397 >>> 22;
$1463 = $208 + 2053994217 + $1386 + ($1439 & $1411 | $1442 & ~$1439) | 0;
$1467 = ($1463 << 14 | $1463 >>> 18) + $1414 | 0;
$1470 = $1411 << 10 | $1411 >>> 22;
$1477 = $345 + -1894007588 + $1400 + ($1453 & $1456 | $1425 & ~$1456) | 0;
$1481 = ($1477 << 9 | $1477 >>> 23) + $1428 | 0;
$1484 = $1425 << 10 | $1425 >>> 22;
$1491 = $308 + 2053994217 + $1414 + ($1467 & $1439 | $1470 & ~$1467) | 0;
$1495 = ($1491 << 6 | $1491 >>> 26) + $1442 | 0;
$1498 = $1439 << 10 | $1439 >>> 22;
$1505 = $145 + -1894007588 + $1428 + ($1481 & $1484 | $1453 & ~$1484) | 0;
$1509 = ($1505 << 8 | $1505 >>> 24) + $1456 | 0;
$1512 = $1453 << 10 | $1453 >>> 22;
$1519 = $48 + 2053994217 + $1442 + ($1495 & $1467 | $1498 & ~$1495) | 0;
$1523 = ($1519 << 14 | $1519 >>> 18) + $1470 | 0;
$1526 = $1467 << 10 | $1467 >>> 22;
$1533 = $258 + -1894007588 + $1456 + ($1509 & $1512 | $1481 & ~$1512) | 0;
$1537 = ($1533 << 9 | $1533 >>> 23) + $1484 | 0;
$1540 = $1481 << 10 | $1481 >>> 22;
$1547 = $61 + 2053994217 + $1470 + ($1523 & $1495 | $1526 & ~$1523) | 0;
$1551 = ($1547 << 6 | $1547 >>> 26) + $1498 | 0;
$1554 = $1495 << 10 | $1495 >>> 22;
$1561 = $120 + -1894007588 + $1484 + ($1537 & $1540 | $1509 & ~$1540) | 0;
$1565 = ($1561 << 14 | $1561 >>> 18) + $1512 | 0;
$1568 = $1509 << 10 | $1509 >>> 22;
$1575 = $345 + 2053994217 + $1498 + ($1551 & $1523 | $1554 & ~$1551) | 0;
$1579 = ($1575 << 9 | $1575 >>> 23) + $1526 | 0;
$1582 = $1523 << 10 | $1523 >>> 22;
$1589 = $107 + -1894007588 + $1512 + ($1565 & $1568 | $1537 & ~$1568) | 0;
$1593 = ($1589 << 5 | $1589 >>> 27) + $1540 | 0;
$1596 = $1537 << 10 | $1537 >>> 22;
$1603 = $94 + 2053994217 + $1526 + ($1579 & $1551 | $1582 & ~$1579) | 0;
$1607 = ($1603 << 12 | $1603 >>> 20) + $1554 | 0;
$1610 = $1551 << 10 | $1551 >>> 22;
$1617 = $308 + -1894007588 + $1540 + ($1593 & $1596 | $1565 & ~$1596) | 0;
$1621 = ($1617 << 6 | $1617 >>> 26) + $1568 | 0;
$1624 = $1565 << 10 | $1565 >>> 22;
$1631 = $258 + 2053994217 + $1554 + ($1607 & $1579 | $1610 & ~$1607) | 0;
$1635 = ($1631 << 9 | $1631 >>> 23) + $1582 | 0;
$1638 = $1579 << 10 | $1579 >>> 22;
$1645 = $84 + -1894007588 + $1568 + ($1621 & $1624 | $1593 & ~$1624) | 0;
$1649 = ($1645 << 8 | $1645 >>> 24) + $1596 | 0;
$1652 = $1593 << 10 | $1593 >>> 22;
$1659 = $158 + 2053994217 + $1582 + ($1635 & $1607 | $1638 & ~$1635) | 0;
$1663 = ($1659 << 12 | $1659 >>> 20) + $1610 | 0;
$1666 = $1607 << 10 | $1607 >>> 22;
$1673 = $61 + -1894007588 + $1596 + ($1649 & $1652 | $1621 & ~$1652) | 0;
$1677 = ($1673 << 6 | $1673 >>> 26) + $1624 | 0;
$1680 = $1621 << 10 | $1621 >>> 22;
$1687 = $107 + 2053994217 + $1610 + ($1663 & $1635 | $1666 & ~$1663) | 0;
$1691 = ($1687 << 5 | $1687 >>> 27) + $1638 | 0;
$1694 = $1635 << 10 | $1635 >>> 22;
$1701 = $195 + -1894007588 + $1624 + ($1677 & $1680 | $1649 & ~$1680) | 0;
$1705 = ($1701 << 5 | $1701 >>> 27) + $1652 | 0;
$1708 = $1649 << 10 | $1649 >>> 22;
$1715 = $295 + 2053994217 + $1638 + ($1691 & $1663 | $1694 & ~$1691) | 0;
$1719 = ($1715 << 15 | $1715 >>> 17) + $1666 | 0;
$1722 = $1663 << 10 | $1663 >>> 22;
$1729 = $94 + -1894007588 + $1652 + ($1705 & $1708 | $1677 & ~$1708) | 0;
$1733 = ($1729 << 12 | $1729 >>> 20) + $1680 | 0;
$1736 = $1677 << 10 | $1677 >>> 22;
$1743 = $84 + 2053994217 + $1666 + ($1719 & $1691 | $1722 & ~$1719) | 0;
$1747 = ($1743 << 8 | $1743 >>> 24) + $1694 | 0;
$1750 = $1691 << 10 | $1691 >>> 22;
$1756 = $145 + -1454113458 + $1680 + ($1733 ^ ($1705 | ~$1736)) | 0;
$1760 = ($1756 << 9 | $1756 >>> 23) + $1708 | 0;
$1763 = $1705 << 10 | $1705 >>> 22;
$1767 = $1694 + $345 + ($1719 ^ $1750 ^ $1747) | 0;
$1771 = ($1767 << 8 | $1767 >>> 24) + $1722 | 0;
$1774 = $1719 << 10 | $1719 >>> 22;
$1780 = $48 + -1454113458 + $1708 + ($1760 ^ ($1733 | ~$1763)) | 0;
$1784 = ($1780 << 15 | $1780 >>> 17) + $1736 | 0;
$1787 = $1733 << 10 | $1733 >>> 22;
$1791 = $1722 + $308 + ($1747 ^ $1774 ^ $1771) | 0;
$1795 = ($1791 << 5 | $1791 >>> 27) + $1750 | 0;
$1798 = $1747 << 10 | $1747 >>> 22;
$1804 = $61 + -1454113458 + $1736 + ($1784 ^ ($1760 | ~$1787)) | 0;
$1808 = ($1804 << 5 | $1804 >>> 27) + $1763 | 0;
$1811 = $1760 << 10 | $1760 >>> 22;
$1815 = $1750 + $295 + ($1771 ^ $1798 ^ $1795) | 0;
$1819 = ($1815 << 12 | $1815 >>> 20) + $1774 | 0;
$1822 = $1771 << 10 | $1771 >>> 22;
$1828 = $158 + -1454113458 + $1763 + ($1808 ^ ($1784 | ~$1811)) | 0;
$1832 = ($1828 << 11 | $1828 >>> 21) + $1787 | 0;
$1835 = $1784 << 10 | $1784 >>> 22;
$1839 = $1774 + $145 + ($1795 ^ $1822 ^ $1819) | 0;
$1843 = ($1839 << 9 | $1839 >>> 23) + $1798 | 0;
$1846 = $1795 << 10 | $1795 >>> 22;
$1852 = $107 + -1454113458 + $1787 + ($1832 ^ ($1808 | ~$1835)) | 0;
$1856 = ($1852 << 6 | $1852 >>> 26) + $1811 | 0;
$1859 = $1808 << 10 | $1808 >>> 22;
$1863 = $1798 + $71 + ($1819 ^ $1846 ^ $1843) | 0;
$1867 = ($1863 << 12 | $1863 >>> 20) + $1822 | 0;
$1870 = $1819 << 10 | $1819 >>> 22;
$1876 = $345 + -1454113458 + $1811 + ($1856 ^ ($1832 | ~$1859)) | 0;
$1880 = ($1876 << 8 | $1876 >>> 24) + $1835 | 0;
$1883 = $1832 << 10 | $1832 >>> 22;
$1887 = $1822 + $61 + ($1843 ^ $1870 ^ $1867) | 0;
$1891 = ($1887 << 5 | $1887 >>> 27) + $1846 | 0;
$1894 = $1843 << 10 | $1843 >>> 22;
$1900 = $94 + -1454113458 + $1835 + ($1880 ^ ($1856 | ~$1883)) | 0;
$1904 = ($1900 << 13 | $1900 >>> 19) + $1859 | 0;
$1907 = $1856 << 10 | $1856 >>> 22;
$1911 = $1846 + $245 + ($1867 ^ $1894 ^ $1891) | 0;
$1915 = ($1911 << 14 | $1911 >>> 18) + $1870 | 0;
$1918 = $1867 << 10 | $1867 >>> 22;
$1924 = $295 + -1454113458 + $1859 + ($1904 ^ ($1880 | ~$1907)) | 0;
$1928 = ($1924 << 12 | $1924 >>> 20) + $1883 | 0;
$1931 = $1880 << 10 | $1880 >>> 22;
$1935 = $1870 + $107 + ($1891 ^ $1918 ^ $1915) | 0;
$1939 = ($1935 << 6 | $1935 >>> 26) + $1894 | 0;
$1942 = $1891 << 10 | $1891 >>> 22;
$1948 = $84 + -1454113458 + $1883 + ($1928 ^ ($1904 | ~$1931)) | 0;
$1952 = ($1948 << 5 | $1948 >>> 27) + $1907 | 0;
$1955 = $1904 << 10 | $1904 >>> 22;
$1959 = $1894 + $195 + ($1915 ^ $1942 ^ $1939) | 0;
$1963 = ($1959 << 8 | $1959 >>> 24) + $1918 | 0;
$1966 = $1915 << 10 | $1915 >>> 22;
$1972 = $71 + -1454113458 + $1907 + ($1952 ^ ($1928 | ~$1955)) | 0;
$1976 = ($1972 << 12 | $1972 >>> 20) + $1931 | 0;
$1979 = $1928 << 10 | $1928 >>> 22;
$1983 = $1918 + $94 + ($1939 ^ $1966 ^ $1963) | 0;
$1987 = ($1983 << 13 | $1983 >>> 19) + $1942 | 0;
$1990 = $1939 << 10 | $1939 >>> 22;
$1996 = $120 + -1454113458 + $1931 + ($1976 ^ ($1952 | ~$1979)) | 0;
$2000 = ($1996 << 13 | $1996 >>> 19) + $1955 | 0;
$2003 = $1952 << 10 | $1952 >>> 22;
$2007 = $1942 + $258 + ($1963 ^ $1990 ^ $1987) | 0;
$2011 = ($2007 << 6 | $2007 >>> 26) + $1966 | 0;
$2014 = $1963 << 10 | $1963 >>> 22;
$2020 = $245 + -1454113458 + $1955 + ($2000 ^ ($1976 | ~$2003)) | 0;
$2024 = ($2020 << 14 | $2020 >>> 18) + $1979 | 0;
$2027 = $1976 << 10 | $1976 >>> 22;
$2031 = $1966 + $84 + ($1987 ^ $2014 ^ $2011) | 0;
$2035 = ($2031 << 5 | $2031 >>> 27) + $1990 | 0;
$2038 = $1987 << 10 | $1987 >>> 22;
$2044 = $208 + -1454113458 + $1979 + ($2024 ^ ($2000 | ~$2027)) | 0;
$2048 = ($2044 << 11 | $2044 >>> 21) + $2003 | 0;
$2051 = $2000 << 10 | $2000 >>> 22;
$2055 = $1990 + $48 + ($2011 ^ $2038 ^ $2035) | 0;
$2059 = ($2055 << 15 | $2055 >>> 17) + $2014 | 0;
$2062 = $2011 << 10 | $2011 >>> 22;
$2068 = $195 + -1454113458 + $2003 + ($2048 ^ ($2024 | ~$2051)) | 0;
$2072 = ($2068 << 8 | $2068 >>> 24) + $2027 | 0;
$2075 = $2024 << 10 | $2024 >>> 22;
$2079 = $2014 + $120 + ($2035 ^ $2062 ^ $2059) | 0;
$2083 = ($2079 << 13 | $2079 >>> 19) + $2038 | 0;
$2086 = $2035 << 10 | $2035 >>> 22;
$2092 = $308 + -1454113458 + $2027 + ($2072 ^ ($2048 | ~$2075)) | 0;
$2096 = ($2092 << 5 | $2092 >>> 27) + $2051 | 0;
$2099 = $2048 << 10 | $2048 >>> 22;
$2103 = $2038 + $158 + ($2059 ^ $2086 ^ $2083) | 0;
$2107 = ($2103 << 11 | $2103 >>> 21) + $2062 | 0;
$2110 = $2059 << 10 | $2059 >>> 22;
$2116 = $258 + -1454113458 + $2051 + ($2096 ^ ($2072 | ~$2099)) | 0;
$2126 = $2062 + $208 + ($2083 ^ $2110 ^ $2107) | 0;
HEAP32[$1 >> 2] = $2110 + $43 + ($2072 << 10 | $2072 >>> 22);
HEAP32[$2 >> 2] = $2086 + (HEAP32[$3 >> 2] | 0) + $2099;
HEAP32[$3 >> 2] = $2075 + (HEAP32[$4 >> 2] | 0) + $2086 + ($2126 << 11 | $2126 >>> 21);
HEAP32[$4 >> 2] = $2075 + (HEAP32[$0 >> 2] | 0) + $2107 + ($2116 << 6 | $2116 >>> 26);
HEAP32[$0 >> 2] = ($2083 << 10 | $2083 >>> 22) + $42 + $2096;
$$01 = $$01 + -1 | 0;
if (!$$01) break; else $$0 = $$0 + 64 | 0;
}
STACKTOP = sp;
return 124;
}
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, $$0$lcssa$i = 0, $$0$lcssa$i$118 = 0, $$06$i = 0, $$06$i$140 = 0, $$06$i$63 = 0, $$08$i$109 = 0, $$1$lcssa = 0, $$1$ph$i$123 = 0, $$1$ph$i$48 = 0, $$1181 = 0, $$13$i$155 = 0, $$13$i$50 = 0, $$13$i$78 = 0, $$13$lcssa = 0, $$13180 = 0, $$14$i$125 = 0, $$16$lcssa = 0, $$16179 = 0, $$2 = 0, $$24 = 0, $$27 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1002 = 0, $1007 = 0, $101 = 0, $1015 = 0, $1020 = 0, $1025 = 0, $1035 = 0, $105 = 0, $11 = 0, $189 = 0, $2 = 0, $22 = 0, $24 = 0, $28 = 0, $290 = 0, $292 = 0, $296 = 0, $300 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $316 = 0, $320 = 0, $324 = 0, $328 = 0, $332 = 0, $336 = 0, $34 = 0, $340 = 0, $344 = 0, $348 = 0, $35 = 0, $352 = 0, $359 = 0, $36 = 0, $363 = 0, $367 = 0, $37 = 0, $38 = 0, $382 = 0, $39 = 0, $390 = 0, $395 = 0, $40 = 0, $400 = 0, $405 = 0, $41 = 0, $410 = 0, $415 = 0, $42 = 0, $420 = 0, $425 = 0, $43 = 0, $430 = 0, $435 = 0, $44 = 0, $440 = 0, $445 = 0, $45 = 0, $450 = 0, $455 = 0, $46 = 0, $460 = 0, $468 = 0, $47 = 0, $473 = 0, $478 = 0, $48 = 0, $488 = 0, $49 = 0, $490 = 0, $492 = 0, $496 = 0, $497 = 0, $498 = 0, $5 = 0, $50 = 0, $51 = 0, $511 = 0, $513 = 0, $519 = 0, $52 = 0, $524 = 0, $529 = 0, $53 = 0, $534 = 0, $539 = 0, $54 = 0, $544 = 0, $549 = 0, $55 = 0, $554 = 0, $559 = 0, $56 = 0, $564 = 0, $569 = 0, $57 = 0, $574 = 0, $579 = 0, $58 = 0, $584 = 0, $589 = 0, $59 = 0, $597 = 0, $6 = 0, $60 = 0, $602 = 0, $607 = 0, $61 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $63 = 0, $64 = 0, $65 = 0, $653 = 0, $654 = 0, $655 = 0, $66 = 0, $67 = 0, $670 = 0, $675 = 0, $68 = 0, $680 = 0, $69 = 0, $691 = 0, $692 = 0, $693 = 0, $70 = 0, $706 = 0, $71 = 0, $712 = 0, $717 = 0, $72 = 0, $722 = 0, $727 = 0, $73 = 0, $732 = 0, $737 = 0, $74 = 0, $742 = 0, $747 = 0, $75 = 0, $752 = 0, $757 = 0, $76 = 0, $762 = 0, $767 = 0, $77 = 0, $772 = 0, $777 = 0, $78 = 0, $782 = 0, $789 = 0, $79 = 0, $793 = 0, $797 = 0, $80 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $82 = 0, $83 = 0, $839 = 0, $84 = 0, $85 = 0, $86 = 0, $863 = 0, $87 = 0, $88 = 0, $887 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $930 = 0, $937 = 0, $942 = 0, $947 = 0, $952 = 0, $957 = 0, $962 = 0, $967 = 0, $972 = 0, $977 = 0, $982 = 0, $987 = 0, $99 = 0, $992 = 0, $997 = 0, $burn$0$lcssa = 0, $burn$0182 = 0, $burn$1 = 0, $burn$2 = 0, $burn$3 = 0, $dst$0$ph$i$120 = 0, $dst$0$ph$i$47 = 0, $dst$01$i$128 = 0, $dst$01$i$157 = 0, $dst$01$i$52 = 0, $dst$01$i$80 = 0, $l_tmp = 0, $ldst$0$lcssa$i = 0, $ldst$0$lcssa$i$119 = 0, $ldst$04$i = 0, $ldst$04$i$142 = 0, $ldst$04$i$65 = 0, $ldst$05$i$112 = 0, $lsrc$0$lcssa$i = 0, $lsrc$05$i = 0, $lsrc$05$i$141 = 0, $lsrc$05$i$64 = 0, $lsrc1$0$lcssa$i = 0, $lsrc1$06$i$111 = 0, $lsrc2$0$lcssa$i = 0, $lsrc2$07$i$110 = 0, $pad = 0, $scevgep$i$137 = 0, $scevgep$i$46 = 0, $scevgep$i$60 = 0, $scevgep19$i$107 = 0, $src$0$ph$i = 0, $src$02$i$156 = 0, $src$02$i$51 = 0, $src$02$i$79 = 0, $src1$0$ph$i$121 = 0, $src1$02$i$127 = 0, $src2$0$ph$i$122 = 0, $src2$03$i$126 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$l_tmp = sp + 16 | 0;
$pad = sp;
$0 = $inbuflen >>> 4;
$1 = $c + 56 | 0;
$2 = HEAP8[$1 >> 0] | 0;
if (!($2 & 2)) {
$$0 = 156;
STACKTOP = sp;
return $$0 | 0;
}
$5 = $c + 128 | 0;
$6 = $5 + 353 | 0;
if (HEAP8[$6 >> 0] & 1) {
$$0 = 156;
STACKTOP = sp;
return $$0 | 0;
}
$10 = $c + 12 | 0;
$11 = HEAP32[$10 >> 2] | 0;
if ((HEAP32[$11 + 20 >> 2] | 0) != 16) {
$$0 = 12;
STACKTOP = sp;
return $$0 | 0;
}
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
STACKTOP = sp;
return $$0 | 0;
}
if (!(($inbuflen & 15 | 0) == 0 | ($2 & 8) != 0)) {
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
do if (!$0) {
$$2 = $inbuflen;
$$24 = $inbuf;
$$27 = $outbuf;
$burn$1 = 0;
} else {
$22 = HEAP32[$c + 40 >> 2] | 0;
if ($22) {
FUNCTION_TABLE_viiiii[$22 & 15]($c, $outbuf, $inbuf, $0, $encrypt);
$24 = $0 << 4;
$$2 = $inbuflen - $24 | 0;
$$24 = $inbuf + $24 | 0;
$$27 = $outbuf + $24 | 0;
$burn$1 = 0;
break;
}
$28 = ($encrypt | 0) != 0;
$31 = HEAP32[($28 ? $11 + 36 | 0 : $11 + 40 | 0) >> 2] | 0;
if ($28) _ocb_checksum($c + 80 | 0, $inbuf, $0);
if ($inbuflen >>> 0 > 15) {
$34 = $c + 464 | 0;
$35 = $c + 64 | 0;
$36 = $35;
$37 = $35 + 4 | 0;
$38 = $c + 72 | 0;
$39 = $c + 76 | 0;
$40 = $c + 496 | 0;
$41 = $inbuflen + -16 | 0;
$42 = $41 & -16;
$43 = $42 + 16 | 0;
$44 = $41 - $42 | 0;
$45 = $c + 72 | 0;
$46 = $35 + 4 | 0;
$47 = $c + 76 | 0;
$48 = $35 + 1 | 0;
$49 = $35 + 2 | 0;
$50 = $35 + 3 | 0;
$51 = $35 + 4 | 0;
$52 = $35 + 5 | 0;
$53 = $35 + 6 | 0;
$54 = $35 + 7 | 0;
$55 = $c + 72 | 0;
$56 = $c + 73 | 0;
$57 = $c + 74 | 0;
$58 = $c + 75 | 0;
$59 = $c + 76 | 0;
$60 = $c + 77 | 0;
$61 = $c + 78 | 0;
$62 = $c + 79 | 0;
$63 = $35 + 1 | 0;
$64 = $35 + 2 | 0;
$65 = $35 + 3 | 0;
$66 = $35 + 4 | 0;
$67 = $35 + 5 | 0;
$68 = $35 + 6 | 0;
$69 = $35 + 7 | 0;
$70 = $c + 72 | 0;
$71 = $c + 73 | 0;
$72 = $c + 74 | 0;
$73 = $c + 75 | 0;
$74 = $c + 76 | 0;
$75 = $c + 77 | 0;
$76 = $c + 78 | 0;
$77 = $c + 79 | 0;
$78 = $35 + 1 | 0;
$79 = $35 + 2 | 0;
$80 = $35 + 3 | 0;
$81 = $35 + 4 | 0;
$82 = $35 + 5 | 0;
$83 = $35 + 6 | 0;
$84 = $35 + 7 | 0;
$85 = $c + 72 | 0;
$86 = $c + 73 | 0;
$87 = $c + 74 | 0;
$88 = $c + 75 | 0;
$89 = $c + 76 | 0;
$90 = $c + 77 | 0;
$91 = $c + 78 | 0;
$92 = $c + 79 | 0;
$$1181 = $inbuflen;
$$13180 = $inbuf;
$$16179 = $outbuf;
$burn$0182 = 0;
while (1) {
$93 = $34;
$99 = _i64Add(HEAP32[$93 >> 2] | 0, HEAP32[$93 + 4 >> 2] | 0, 1, 0) | 0;
$100 = tempRet0;
$101 = $34;
HEAP32[$101 >> 2] = $99;
HEAP32[$101 + 4 >> 2] = $100;
$105 = __gcry_cipher_ocb_get_l($c, $l_tmp, $99, $100) | 0;
if (!(($105 | $36) & 3)) {
HEAP32[$35 >> 2] = HEAP32[$35 >> 2] ^ HEAP32[$105 >> 2];
HEAP32[$37 >> 2] = HEAP32[$37 >> 2] ^ HEAP32[$105 + 4 >> 2];
HEAP32[$38 >> 2] = HEAP32[$38 >> 2] ^ HEAP32[$105 + 8 >> 2];
HEAP32[$39 >> 2] = HEAP32[$39 >> 2] ^ HEAP32[$105 + 12 >> 2];
} else {
HEAP8[$35 >> 0] = HEAP8[$35 >> 0] ^ HEAP8[$105 >> 0];
HEAP8[$78 >> 0] = HEAP8[$78 >> 0] ^ HEAP8[$105 + 1 >> 0];
HEAP8[$79 >> 0] = HEAP8[$79 >> 0] ^ HEAP8[$105 + 2 >> 0];
HEAP8[$80 >> 0] = HEAP8[$80 >> 0] ^ HEAP8[$105 + 3 >> 0];
HEAP8[$81 >> 0] = HEAP8[$81 >> 0] ^ HEAP8[$105 + 4 >> 0];
HEAP8[$82 >> 0] = HEAP8[$82 >> 0] ^ HEAP8[$105 + 5 >> 0];
HEAP8[$83 >> 0] = HEAP8[$83 >> 0] ^ HEAP8[$105 + 6 >> 0];
HEAP8[$84 >> 0] = HEAP8[$84 >> 0] ^ HEAP8[$105 + 7 >> 0];
HEAP8[$85 >> 0] = HEAP8[$85 >> 0] ^ HEAP8[$105 + 8 >> 0];
HEAP8[$86 >> 0] = HEAP8[$86 >> 0] ^ HEAP8[$105 + 9 >> 0];
HEAP8[$87 >> 0] = HEAP8[$87 >> 0] ^ HEAP8[$105 + 10 >> 0];
HEAP8[$88 >> 0] = HEAP8[$88 >> 0] ^ HEAP8[$105 + 11 >> 0];
HEAP8[$89 >> 0] = HEAP8[$89 >> 0] ^ HEAP8[$105 + 12 >> 0];
HEAP8[$90 >> 0] = HEAP8[$90 >> 0] ^ HEAP8[$105 + 13 >> 0];
HEAP8[$91 >> 0] = HEAP8[$91 >> 0] ^ HEAP8[$105 + 14 >> 0];
HEAP8[$92 >> 0] = HEAP8[$92 >> 0] ^ HEAP8[$105 + 15 >> 0];
}
$189 = $$16179 | $36;
if (!(($189 | $$13180) & 3)) {
HEAP32[$$16179 >> 2] = HEAP32[$$13180 >> 2] ^ HEAP32[$35 >> 2];
HEAP32[$$16179 + 4 >> 2] = HEAP32[$$13180 + 4 >> 2] ^ HEAP32[$46 >> 2];
HEAP32[$$16179 + 8 >> 2] = HEAP32[$$13180 + 8 >> 2] ^ HEAP32[$45 >> 2];
HEAP32[$$16179 + 12 >> 2] = HEAP32[$$13180 + 12 >> 2] ^ HEAP32[$47 >> 2];
} else {
HEAP8[$$16179 >> 0] = HEAP8[$$13180 >> 0] ^ HEAP8[$35 >> 0];
HEAP8[$$16179 + 1 >> 0] = HEAP8[$$13180 + 1 >> 0] ^ HEAP8[$63 >> 0];
HEAP8[$$16179 + 2 >> 0] = HEAP8[$$13180 + 2 >> 0] ^ HEAP8[$64 >> 0];
HEAP8[$$16179 + 3 >> 0] = HEAP8[$$13180 + 3 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$$16179 + 4 >> 0] = HEAP8[$$13180 + 4 >> 0] ^ HEAP8[$66 >> 0];
HEAP8[$$16179 + 5 >> 0] = HEAP8[$$13180 + 5 >> 0] ^ HEAP8[$67 >> 0];
HEAP8[$$16179 + 6 >> 0] = HEAP8[$$13180 + 6 >> 0] ^ HEAP8[$68 >> 0];
HEAP8[$$16179 + 7 >> 0] = HEAP8[$$13180 + 7 >> 0] ^ HEAP8[$69 >> 0];
HEAP8[$$16179 + 8 >> 0] = HEAP8[$$13180 + 8 >> 0] ^ HEAP8[$70 >> 0];
HEAP8[$$16179 + 9 >> 0] = HEAP8[$$13180 + 9 >> 0] ^ HEAP8[$71 >> 0];
HEAP8[$$16179 + 10 >> 0] = HEAP8[$$13180 + 10 >> 0] ^ HEAP8[$72 >> 0];
HEAP8[$$16179 + 11 >> 0] = HEAP8[$$13180 + 11 >> 0] ^ HEAP8[$73 >> 0];
HEAP8[$$16179 + 12 >> 0] = HEAP8[$$13180 + 12 >> 0] ^ HEAP8[$74 >> 0];
HEAP8[$$16179 + 13 >> 0] = HEAP8[$$13180 + 13 >> 0] ^ HEAP8[$75 >> 0];
HEAP8[$$16179 + 14 >> 0] = HEAP8[$$13180 + 14 >> 0] ^ HEAP8[$76 >> 0];
HEAP8[$$16179 + 15 >> 0] = HEAP8[$$13180 + 15 >> 0] ^ HEAP8[$77 >> 0];
}
$290 = FUNCTION_TABLE_iiii[$31 & 63]($40, $$16179, $$16179) | 0;
$292 = $290 >>> 0 > $burn$0182 >>> 0 ? $290 : $burn$0182;
if (!($189 & 3)) {
$359 = $$16179 + 4 | 0;
HEAP32[$$16179 >> 2] = HEAP32[$$16179 >> 2] ^ HEAP32[$35 >> 2];
$363 = $$16179 + 8 | 0;
HEAP32[$359 >> 2] = HEAP32[$359 >> 2] ^ HEAP32[$37 >> 2];
$367 = $$16179 + 12 | 0;
HEAP32[$363 >> 2] = HEAP32[$363 >> 2] ^ HEAP32[$38 >> 2];
HEAP32[$367 >> 2] = HEAP32[$367 >> 2] ^ HEAP32[$39 >> 2];
} else {
$296 = $$16179 + 1 | 0;
HEAP8[$$16179 >> 0] = HEAP8[$$16179 >> 0] ^ HEAP8[$35 >> 0];
$300 = $$16179 + 2 | 0;
HEAP8[$296 >> 0] = HEAP8[$296 >> 0] ^ HEAP8[$48 >> 0];
$304 = $$16179 + 3 | 0;
HEAP8[$300 >> 0] = HEAP8[$300 >> 0] ^ HEAP8[$49 >> 0];
$308 = $$16179 + 4 | 0;
HEAP8[$304 >> 0] = HEAP8[$304 >> 0] ^ HEAP8[$50 >> 0];
$312 = $$16179 + 5 | 0;
HEAP8[$308 >> 0] = HEAP8[$308 >> 0] ^ HEAP8[$51 >> 0];
$316 = $$16179 + 6 | 0;
HEAP8[$312 >> 0] = HEAP8[$312 >> 0] ^ HEAP8[$52 >> 0];
$320 = $$16179 + 7 | 0;
HEAP8[$316 >> 0] = HEAP8[$316 >> 0] ^ HEAP8[$53 >> 0];
$324 = $$16179 + 8 | 0;
HEAP8[$320 >> 0] = HEAP8[$320 >> 0] ^ HEAP8[$54 >> 0];
$328 = $$16179 + 9 | 0;
HEAP8[$324 >> 0] = HEAP8[$324 >> 0] ^ HEAP8[$55 >> 0];
$332 = $$16179 + 10 | 0;
HEAP8[$328 >> 0] = HEAP8[$328 >> 0] ^ HEAP8[$56 >> 0];
$336 = $$16179 + 11 | 0;
HEAP8[$332 >> 0] = HEAP8[$332 >> 0] ^ HEAP8[$57 >> 0];
$340 = $$16179 + 12 | 0;
HEAP8[$336 >> 0] = HEAP8[$336 >> 0] ^ HEAP8[$58 >> 0];
$344 = $$16179 + 13 | 0;
HEAP8[$340 >> 0] = HEAP8[$340 >> 0] ^ HEAP8[$59 >> 0];
$348 = $$16179 + 14 | 0;
HEAP8[$344 >> 0] = HEAP8[$344 >> 0] ^ HEAP8[$60 >> 0];
$352 = $$16179 + 15 | 0;
HEAP8[$348 >> 0] = HEAP8[$348 >> 0] ^ HEAP8[$61 >> 0];
HEAP8[$352 >> 0] = HEAP8[$352 >> 0] ^ HEAP8[$62 >> 0];
}
$$1181 = $$1181 + -16 | 0;
if ($$1181 >>> 0 <= 15) {
$$lcssa = $292;
break;
} else {
$$13180 = $$13180 + 16 | 0;
$$16179 = $$16179 + 16 | 0;
$burn$0182 = $292;
}
}
$$1$lcssa = $44;
$$13$lcssa = $inbuf + $43 | 0;
$$16$lcssa = $outbuf + $43 | 0;
$burn$0$lcssa = $$lcssa;
} else {
$$1$lcssa = $inbuflen;
$$13$lcssa = $inbuf;
$$16$lcssa = $outbuf;
$burn$0$lcssa = 0;
}
if ($28) {
$$2 = $$1$lcssa;
$$24 = $$13$lcssa;
$$27 = $$16$lcssa;
$burn$1 = $burn$0$lcssa;
} else {
_ocb_checksum($c + 80 | 0, $$16$lcssa + (0 - ($0 << 4)) | 0, $0);
$$2 = $$1$lcssa;
$$24 = $$13$lcssa;
$$27 = $$16$lcssa;
$burn$1 = $burn$0$lcssa;
}
} while (0);
if (!$$2) $burn$2 = $burn$1; else {
$382 = $c + 64 | 0;
if (!(($5 | $382) & 3)) {
$468 = $382 + 4 | 0;
HEAP32[$382 >> 2] = HEAP32[$382 >> 2] ^ HEAP32[$5 >> 2];
$473 = $c + 72 | 0;
HEAP32[$468 >> 2] = HEAP32[$468 >> 2] ^ HEAP32[$5 + 4 >> 2];
$478 = $c + 76 | 0;
HEAP32[$473 >> 2] = HEAP32[$473 >> 2] ^ HEAP32[$c + 136 >> 2];
HEAP32[$478 >> 2] = HEAP32[$478 >> 2] ^ HEAP32[$c + 140 >> 2];
} else {
$390 = $382 + 1 | 0;
HEAP8[$382 >> 0] = HEAP8[$382 >> 0] ^ HEAP8[$5 >> 0];
$395 = $382 + 2 | 0;
HEAP8[$390 >> 0] = HEAP8[$390 >> 0] ^ HEAP8[$5 + 1 >> 0];
$400 = $382 + 3 | 0;
HEAP8[$395 >> 0] = HEAP8[$395 >> 0] ^ HEAP8[$5 + 2 >> 0];
$405 = $382 + 4 | 0;
HEAP8[$400 >> 0] = HEAP8[$400 >> 0] ^ HEAP8[$5 + 3 >> 0];
$410 = $382 + 5 | 0;
HEAP8[$405 >> 0] = HEAP8[$405 >> 0] ^ HEAP8[$5 + 4 >> 0];
$415 = $382 + 6 | 0;
HEAP8[$410 >> 0] = HEAP8[$410 >> 0] ^ HEAP8[$5 + 5 >> 0];
$420 = $382 + 7 | 0;
HEAP8[$415 >> 0] = HEAP8[$415 >> 0] ^ HEAP8[$5 + 6 >> 0];
$425 = $c + 72 | 0;
HEAP8[$420 >> 0] = HEAP8[$420 >> 0] ^ HEAP8[$5 + 7 >> 0];
$430 = $c + 73 | 0;
HEAP8[$425 >> 0] = HEAP8[$425 >> 0] ^ HEAP8[$c + 136 >> 0];
$435 = $c + 74 | 0;
HEAP8[$430 >> 0] = HEAP8[$430 >> 0] ^ HEAP8[$c + 137 >> 0];
$440 = $c + 75 | 0;
HEAP8[$435 >> 0] = HEAP8[$435 >> 0] ^ HEAP8[$c + 138 >> 0];
$445 = $c + 76 | 0;
HEAP8[$440 >> 0] = HEAP8[$440 >> 0] ^ HEAP8[$c + 139 >> 0];
$450 = $c + 77 | 0;
HEAP8[$445 >> 0] = HEAP8[$445 >> 0] ^ HEAP8[$c + 140 >> 0];
$455 = $c + 78 | 0;
HEAP8[$450 >> 0] = HEAP8[$450 >> 0] ^ HEAP8[$c + 141 >> 0];
$460 = $c + 79 | 0;
HEAP8[$455 >> 0] = HEAP8[$455 >> 0] ^ HEAP8[$c + 142 >> 0];
HEAP8[$460 >> 0] = HEAP8[$460 >> 0] ^ HEAP8[$c + 143 >> 0];
}
$488 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$10 >> 2] | 0) + 36 >> 2] & 63]($c + 496 | 0, $pad, $382) | 0;
$490 = $488 >>> 0 > $burn$1 >>> 0 ? $488 : $burn$1;
do if (!$encrypt) {
HEAP32[$l_tmp >> 2] = HEAP32[$pad >> 2];
HEAP32[$l_tmp + 4 >> 2] = HEAP32[$pad + 4 >> 2];
HEAP32[$l_tmp + 8 >> 2] = HEAP32[$pad + 8 >> 2];
HEAP32[$l_tmp + 12 >> 2] = HEAP32[$pad + 12 >> 2];
do if (!($$24 & 3)) {
if ($$2 >>> 0 <= 3) {
$$13$i$78 = $$2;
$dst$01$i$80 = $l_tmp;
$src$02$i$79 = $$24;
label = 55;
break;
}
$653 = $$2 + -4 | 0;
$654 = $653 & -4;
$655 = $654 + 4 | 0;
$scevgep$i$60 = $l_tmp + $655 | 0;
$$06$i$63 = $$2;
$ldst$04$i$65 = $l_tmp;
$lsrc$05$i$64 = $$24;
while (1) {
HEAP32[$ldst$04$i$65 >> 2] = HEAP32[$lsrc$05$i$64 >> 2];
$$06$i$63 = $$06$i$63 + -4 | 0;
if ($$06$i$63 >>> 0 <= 3) break; else {
$ldst$04$i$65 = $ldst$04$i$65 + 4 | 0;
$lsrc$05$i$64 = $lsrc$05$i$64 + 4 | 0;
}
}
if (($653 | 0) != ($654 | 0)) {
$$13$i$78 = $653 - $654 | 0;
$dst$01$i$80 = $scevgep$i$60;
$src$02$i$79 = $$24 + $655 | 0;
label = 55;
}
} else {
$$13$i$78 = $$2;
$dst$01$i$80 = $l_tmp;
$src$02$i$79 = $$24;
label = 55;
} while (0);
if ((label | 0) == 55) while (1) {
label = 0;
HEAP8[$dst$01$i$80 >> 0] = HEAP8[$src$02$i$79 >> 0] | 0;
$$13$i$78 = $$13$i$78 + -1 | 0;
if (!$$13$i$78) break; else {
$dst$01$i$80 = $dst$01$i$80 + 1 | 0;
$src$02$i$79 = $src$02$i$79 + 1 | 0;
label = 55;
}
}
$670 = $l_tmp + 4 | 0;
HEAP32[$l_tmp >> 2] = HEAP32[$l_tmp >> 2] ^ HEAP32[$pad >> 2];
$675 = $l_tmp + 8 | 0;
HEAP32[$670 >> 2] = HEAP32[$670 >> 2] ^ HEAP32[$pad + 4 >> 2];
$680 = $l_tmp + 12 | 0;
HEAP32[$675 >> 2] = HEAP32[$675 >> 2] ^ HEAP32[$pad + 8 >> 2];
HEAP32[$680 >> 2] = HEAP32[$680 >> 2] ^ HEAP32[$pad + 12 >> 2];
HEAP8[$l_tmp + $$2 >> 0] = -128;
if (!($$27 & 3)) {
if ($$2 >>> 0 > 3) {
$691 = $$2 + -4 | 0;
$692 = $691 & -4;
$693 = $692 + 4 | 0;
$scevgep$i$46 = $$27 + $693 | 0;
$$06$i = $$2;
$ldst$04$i = $$27;
$lsrc$05$i = $l_tmp;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i = $691 - $692 | 0;
$ldst$0$lcssa$i = $scevgep$i$46;
$lsrc$0$lcssa$i = $l_tmp + $693 | 0;
} else {
$$0$lcssa$i = $$2;
$ldst$0$lcssa$i = $$27;
$lsrc$0$lcssa$i = $l_tmp;
}
$$1$ph$i$48 = $$0$lcssa$i;
$dst$0$ph$i$47 = $ldst$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i$48 = $$2;
$dst$0$ph$i$47 = $$27;
$src$0$ph$i = $l_tmp;
}
if ($$1$ph$i$48) {
$$13$i$50 = $$1$ph$i$48;
$dst$01$i$52 = $dst$0$ph$i$47;
$src$02$i$51 = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i$52 >> 0] = HEAP8[$src$02$i$51 >> 0] | 0;
$$13$i$50 = $$13$i$50 + -1 | 0;
if (!$$13$i$50) break; else {
$dst$01$i$52 = $dst$01$i$52 + 1 | 0;
$src$02$i$51 = $src$02$i$51 + 1 | 0;
}
}
}
$706 = $c + 80 | 0;
if (!($706 & 3)) {
$789 = $706 + 4 | 0;
HEAP32[$706 >> 2] = HEAP32[$706 >> 2] ^ HEAP32[$l_tmp >> 2];
$793 = $c + 88 | 0;
HEAP32[$789 >> 2] = HEAP32[$789 >> 2] ^ HEAP32[$670 >> 2];
$797 = $c + 92 | 0;
HEAP32[$793 >> 2] = HEAP32[$793 >> 2] ^ HEAP32[$675 >> 2];
HEAP32[$797 >> 2] = HEAP32[$797 >> 2] ^ HEAP32[$680 >> 2];
break;
} else {
$712 = $706 + 1 | 0;
HEAP8[$706 >> 0] = HEAP8[$706 >> 0] ^ HEAP8[$l_tmp >> 0];
$717 = $706 + 2 | 0;
HEAP8[$712 >> 0] = HEAP8[$712 >> 0] ^ HEAP8[$l_tmp + 1 >> 0];
$722 = $706 + 3 | 0;
HEAP8[$717 >> 0] = HEAP8[$717 >> 0] ^ HEAP8[$l_tmp + 2 >> 0];
$727 = $706 + 4 | 0;
HEAP8[$722 >> 0] = HEAP8[$722 >> 0] ^ HEAP8[$l_tmp + 3 >> 0];
$732 = $706 + 5 | 0;
HEAP8[$727 >> 0] = HEAP8[$727 >> 0] ^ HEAP8[$l_tmp + 4 >> 0];
$737 = $706 + 6 | 0;
HEAP8[$732 >> 0] = HEAP8[$732 >> 0] ^ HEAP8[$l_tmp + 5 >> 0];
$742 = $706 + 7 | 0;
HEAP8[$737 >> 0] = HEAP8[$737 >> 0] ^ HEAP8[$l_tmp + 6 >> 0];
$747 = $c + 88 | 0;
HEAP8[$742 >> 0] = HEAP8[$742 >> 0] ^ HEAP8[$l_tmp + 7 >> 0];
$752 = $c + 89 | 0;
HEAP8[$747 >> 0] = HEAP8[$747 >> 0] ^ HEAP8[$l_tmp + 8 >> 0];
$757 = $c + 90 | 0;
HEAP8[$752 >> 0] = HEAP8[$752 >> 0] ^ HEAP8[$l_tmp + 9 >> 0];
$762 = $c + 91 | 0;
HEAP8[$757 >> 0] = HEAP8[$757 >> 0] ^ HEAP8[$l_tmp + 10 >> 0];
$767 = $c + 92 | 0;
HEAP8[$762 >> 0] = HEAP8[$762 >> 0] ^ HEAP8[$l_tmp + 11 >> 0];
$772 = $c + 93 | 0;
HEAP8[$767 >> 0] = HEAP8[$767 >> 0] ^ HEAP8[$l_tmp + 12 >> 0];
$777 = $c + 94 | 0;
HEAP8[$772 >> 0] = HEAP8[$772 >> 0] ^ HEAP8[$l_tmp + 13 >> 0];
$782 = $c + 95 | 0;
HEAP8[$777 >> 0] = HEAP8[$777 >> 0] ^ HEAP8[$l_tmp + 14 >> 0];
HEAP8[$782 >> 0] = HEAP8[$782 >> 0] ^ HEAP8[$l_tmp + 15 >> 0];
break;
}
} else {
$492 = $$24;
do if (!($492 & 3)) {
if ($$2 >>> 0 <= 3) {
$$13$i$155 = $$2;
$dst$01$i$157 = $l_tmp;
$src$02$i$156 = $$24;
label = 37;
break;
}
$496 = $$2 + -4 | 0;
$497 = $496 & -4;
$498 = $497 + 4 | 0;
$scevgep$i$137 = $l_tmp + $498 | 0;
$$06$i$140 = $$2;
$ldst$04$i$142 = $l_tmp;
$lsrc$05$i$141 = $$24;
while (1) {
HEAP32[$ldst$04$i$142 >> 2] = HEAP32[$lsrc$05$i$141 >> 2];
$$06$i$140 = $$06$i$140 + -4 | 0;
if ($$06$i$140 >>> 0 <= 3) break; else {
$ldst$04$i$142 = $ldst$04$i$142 + 4 | 0;
$lsrc$05$i$141 = $lsrc$05$i$141 + 4 | 0;
}
}
if (($496 | 0) != ($497 | 0)) {
$$13$i$155 = $496 - $497 | 0;
$dst$01$i$157 = $scevgep$i$137;
$src$02$i$156 = $$24 + $498 | 0;
label = 37;
}
} else {
$$13$i$155 = $$2;
$dst$01$i$157 = $l_tmp;
$src$02$i$156 = $$24;
label = 37;
} while (0);
if ((label | 0) == 37) while (1) {
label = 0;
HEAP8[$dst$01$i$157 >> 0] = HEAP8[$src$02$i$156 >> 0] | 0;
$$13$i$155 = $$13$i$155 + -1 | 0;
if (!$$13$i$155) break; else {
$dst$01$i$157 = $dst$01$i$157 + 1 | 0;
$src$02$i$156 = $src$02$i$156 + 1 | 0;
label = 37;
}
}
$511 = $l_tmp + $$2 | 0;
_memset($511 | 0, 0, 16 - $$2 | 0) | 0;
HEAP8[$511 >> 0] = -128;
$513 = $c + 80 | 0;
if (!($513 & 3)) {
$597 = $513 + 4 | 0;
HEAP32[$513 >> 2] = HEAP32[$513 >> 2] ^ HEAP32[$l_tmp >> 2];
$602 = $c + 88 | 0;
HEAP32[$597 >> 2] = HEAP32[$597 >> 2] ^ HEAP32[$l_tmp + 4 >> 2];
$607 = $c + 92 | 0;
HEAP32[$602 >> 2] = HEAP32[$602 >> 2] ^ HEAP32[$l_tmp + 8 >> 2];
HEAP32[$607 >> 2] = HEAP32[$607 >> 2] ^ HEAP32[$l_tmp + 12 >> 2];
} else {
$519 = $513 + 1 | 0;
HEAP8[$513 >> 0] = HEAP8[$513 >> 0] ^ HEAP8[$l_tmp >> 0];
$524 = $513 + 2 | 0;
HEAP8[$519 >> 0] = HEAP8[$519 >> 0] ^ HEAP8[$l_tmp + 1 >> 0];
$529 = $513 + 3 | 0;
HEAP8[$524 >> 0] = HEAP8[$524 >> 0] ^ HEAP8[$l_tmp + 2 >> 0];
$534 = $513 + 4 | 0;
HEAP8[$529 >> 0] = HEAP8[$529 >> 0] ^ HEAP8[$l_tmp + 3 >> 0];
$539 = $513 + 5 | 0;
HEAP8[$534 >> 0] = HEAP8[$534 >> 0] ^ HEAP8[$l_tmp + 4 >> 0];
$544 = $513 + 6 | 0;
HEAP8[$539 >> 0] = HEAP8[$539 >> 0] ^ HEAP8[$l_tmp + 5 >> 0];
$549 = $513 + 7 | 0;
HEAP8[$544 >> 0] = HEAP8[$544 >> 0] ^ HEAP8[$l_tmp + 6 >> 0];
$554 = $c + 88 | 0;
HEAP8[$549 >> 0] = HEAP8[$549 >> 0] ^ HEAP8[$l_tmp + 7 >> 0];
$559 = $c + 89 | 0;
HEAP8[$554 >> 0] = HEAP8[$554 >> 0] ^ HEAP8[$l_tmp + 8 >> 0];
$564 = $c + 90 | 0;
HEAP8[$559 >> 0] = HEAP8[$559 >> 0] ^ HEAP8[$l_tmp + 9 >> 0];
$569 = $c + 91 | 0;
HEAP8[$564 >> 0] = HEAP8[$564 >> 0] ^ HEAP8[$l_tmp + 10 >> 0];
$574 = $c + 92 | 0;
HEAP8[$569 >> 0] = HEAP8[$569 >> 0] ^ HEAP8[$l_tmp + 11 >> 0];
$579 = $c + 93 | 0;
HEAP8[$574 >> 0] = HEAP8[$574 >> 0] ^ HEAP8[$l_tmp + 12 >> 0];
$584 = $c + 94 | 0;
HEAP8[$579 >> 0] = HEAP8[$579 >> 0] ^ HEAP8[$l_tmp + 13 >> 0];
$589 = $c + 95 | 0;
HEAP8[$584 >> 0] = HEAP8[$584 >> 0] ^ HEAP8[$l_tmp + 14 >> 0];
HEAP8[$589 >> 0] = HEAP8[$589 >> 0] ^ HEAP8[$l_tmp + 15 >> 0];
}
if (!(($492 | $$27) & 3)) {
if ($$2 >>> 0 > 3) {
$618 = $$2 + -4 | 0;
$619 = $618 & -4;
$620 = $619 + 4 | 0;
$scevgep19$i$107 = $pad + $620 | 0;
$$08$i$109 = $$2;
$ldst$05$i$112 = $$27;
$lsrc1$06$i$111 = $$24;
$lsrc2$07$i$110 = $pad;
while (1) {
HEAP32[$ldst$05$i$112 >> 2] = HEAP32[$lsrc2$07$i$110 >> 2] ^ HEAP32[$lsrc1$06$i$111 >> 2];
$$08$i$109 = $$08$i$109 + -4 | 0;
if ($$08$i$109 >>> 0 <= 3) break; else {
$ldst$05$i$112 = $ldst$05$i$112 + 4 | 0;
$lsrc1$06$i$111 = $lsrc1$06$i$111 + 4 | 0;
$lsrc2$07$i$110 = $lsrc2$07$i$110 + 4 | 0;
}
}
$$0$lcssa$i$118 = $618 - $619 | 0;
$ldst$0$lcssa$i$119 = $$27 + $620 | 0;
$lsrc1$0$lcssa$i = $$24 + $620 | 0;
$lsrc2$0$lcssa$i = $scevgep19$i$107;
} else {
$$0$lcssa$i$118 = $$2;
$ldst$0$lcssa$i$119 = $$27;
$lsrc1$0$lcssa$i = $$24;
$lsrc2$0$lcssa$i = $pad;
}
$$1$ph$i$123 = $$0$lcssa$i$118;
$dst$0$ph$i$120 = $ldst$0$lcssa$i$119;
$src1$0$ph$i$121 = $lsrc1$0$lcssa$i;
$src2$0$ph$i$122 = $lsrc2$0$lcssa$i;
} else {
$$1$ph$i$123 = $$2;
$dst$0$ph$i$120 = $$27;
$src1$0$ph$i$121 = $$24;
$src2$0$ph$i$122 = $pad;
}
if ($$1$ph$i$123) {
$$14$i$125 = $$1$ph$i$123;
$dst$01$i$128 = $dst$0$ph$i$120;
$src1$02$i$127 = $src1$0$ph$i$121;
$src2$03$i$126 = $src2$0$ph$i$122;
while (1) {
HEAP8[$dst$01$i$128 >> 0] = HEAP8[$src2$03$i$126 >> 0] ^ HEAP8[$src1$02$i$127 >> 0];
$$14$i$125 = $$14$i$125 + -1 | 0;
if (!$$14$i$125) break; else {
$dst$01$i$128 = $dst$01$i$128 + 1 | 0;
$src1$02$i$127 = $src1$02$i$127 + 1 | 0;
$src2$03$i$126 = $src2$03$i$126 + 1 | 0;
}
}
}
} while (0);
$burn$2 = $490;
}
if (!(HEAP8[$1 >> 0] & 8)) $burn$3 = $burn$2; else {
$806 = $c + 416 | 0;
$807 = $c + 80 | 0;
$808 = $c + 64 | 0;
$809 = $806;
if (!(($807 | $809 | $808) & 3)) {
HEAP32[$806 >> 2] = HEAP32[$808 >> 2] ^ HEAP32[$807 >> 2];
HEAP32[$c + 420 >> 2] = HEAP32[$808 + 4 >> 2] ^ HEAP32[$807 + 4 >> 2];
HEAP32[$c + 424 >> 2] = HEAP32[$c + 72 >> 2] ^ HEAP32[$c + 88 >> 2];
HEAP32[$c + 428 >> 2] = HEAP32[$c + 76 >> 2] ^ HEAP32[$c + 92 >> 2];
} else {
HEAP8[$806 >> 0] = HEAP8[$808 >> 0] ^ HEAP8[$807 >> 0];
HEAP8[$806 + 1 >> 0] = HEAP8[$808 + 1 >> 0] ^ HEAP8[$807 + 1 >> 0];
HEAP8[$806 + 2 >> 0] = HEAP8[$808 + 2 >> 0] ^ HEAP8[$807 + 2 >> 0];
$839 = $c + 420 | 0;
HEAP8[$806 + 3 >> 0] = HEAP8[$808 + 3 >> 0] ^ HEAP8[$807 + 3 >> 0];
HEAP8[$839 >> 0] = HEAP8[$808 + 4 >> 0] ^ HEAP8[$807 + 4 >> 0];
HEAP8[$839 + 1 >> 0] = HEAP8[$808 + 5 >> 0] ^ HEAP8[$807 + 5 >> 0];
HEAP8[$839 + 2 >> 0] = HEAP8[$808 + 6 >> 0] ^ HEAP8[$807 + 6 >> 0];
$863 = $c + 424 | 0;
HEAP8[$839 + 3 >> 0] = HEAP8[$808 + 7 >> 0] ^ HEAP8[$807 + 7 >> 0];
HEAP8[$863 >> 0] = HEAP8[$c + 72 >> 0] ^ HEAP8[$c + 88 >> 0];
HEAP8[$863 + 1 >> 0] = HEAP8[$c + 73 >> 0] ^ HEAP8[$c + 89 >> 0];
HEAP8[$863 + 2 >> 0] = HEAP8[$c + 74 >> 0] ^ HEAP8[$c + 90 >> 0];
$887 = $c + 428 | 0;
HEAP8[$863 + 3 >> 0] = HEAP8[$c + 75 >> 0] ^ HEAP8[$c + 91 >> 0];
HEAP8[$887 >> 0] = HEAP8[$c + 76 >> 0] ^ HEAP8[$c + 92 >> 0];
HEAP8[$887 + 1 >> 0] = HEAP8[$c + 77 >> 0] ^ HEAP8[$c + 93 >> 0];
HEAP8[$887 + 2 >> 0] = HEAP8[$c + 78 >> 0] ^ HEAP8[$c + 94 >> 0];
HEAP8[$887 + 3 >> 0] = HEAP8[$c + 79 >> 0] ^ HEAP8[$c + 95 >> 0];
}
$930 = $c + 144 | 0;
if (!(($930 | $809) & 3)) {
$1015 = $c + 420 | 0;
HEAP32[$806 >> 2] = HEAP32[$806 >> 2] ^ HEAP32[$930 >> 2];
$1020 = $c + 424 | 0;
HEAP32[$1015 >> 2] = HEAP32[$1015 >> 2] ^ HEAP32[$c + 148 >> 2];
$1025 = $c + 428 | 0;
HEAP32[$1020 >> 2] = HEAP32[$1020 >> 2] ^ HEAP32[$c + 152 >> 2];
HEAP32[$1025 >> 2] = HEAP32[$1025 >> 2] ^ HEAP32[$c + 156 >> 2];
} else {
$937 = $806 + 1 | 0;
HEAP8[$806 >> 0] = HEAP8[$806 >> 0] ^ HEAP8[$930 >> 0];
$942 = $806 + 2 | 0;
HEAP8[$937 >> 0] = HEAP8[$937 >> 0] ^ HEAP8[$c + 145 >> 0];
$947 = $806 + 3 | 0;
HEAP8[$942 >> 0] = HEAP8[$942 >> 0] ^ HEAP8[$c + 146 >> 0];
$952 = $c + 420 | 0;
HEAP8[$947 >> 0] = HEAP8[$947 >> 0] ^ HEAP8[$c + 147 >> 0];
$957 = $952 + 1 | 0;
HEAP8[$952 >> 0] = HEAP8[$952 >> 0] ^ HEAP8[$c + 148 >> 0];
$962 = $952 + 2 | 0;
HEAP8[$957 >> 0] = HEAP8[$957 >> 0] ^ HEAP8[$c + 149 >> 0];
$967 = $952 + 3 | 0;
HEAP8[$962 >> 0] = HEAP8[$962 >> 0] ^ HEAP8[$c + 150 >> 0];
$972 = $c + 424 | 0;
HEAP8[$967 >> 0] = HEAP8[$967 >> 0] ^ HEAP8[$c + 151 >> 0];
$977 = $972 + 1 | 0;
HEAP8[$972 >> 0] = HEAP8[$972 >> 0] ^ HEAP8[$c + 152 >> 0];
$982 = $972 + 2 | 0;
HEAP8[$977 >> 0] = HEAP8[$977 >> 0] ^ HEAP8[$c + 153 >> 0];
$987 = $972 + 3 | 0;
HEAP8[$982 >> 0] = HEAP8[$982 >> 0] ^ HEAP8[$c + 154 >> 0];
$992 = $c + 428 | 0;
HEAP8[$987 >> 0] = HEAP8[$987 >> 0] ^ HEAP8[$c + 155 >> 0];
$997 = $992 + 1 | 0;
HEAP8[$992 >> 0] = HEAP8[$992 >> 0] ^ HEAP8[$c + 156 >> 0];
$1002 = $992 + 2 | 0;
HEAP8[$997 >> 0] = HEAP8[$997 >> 0] ^ HEAP8[$c + 157 >> 0];
$1007 = $992 + 3 | 0;
HEAP8[$1002 >> 0] = HEAP8[$1002 >> 0] ^ HEAP8[$c + 158 >> 0];
HEAP8[$1007 >> 0] = HEAP8[$1007 >> 0] ^ HEAP8[$c + 159 >> 0];
}
$1035 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$10 >> 2] | 0) + 36 >> 2] & 63]($c + 496 | 0, $806, $806) | 0;
HEAP8[$6 >> 0] = HEAP8[$6 >> 0] | 1;
$burn$3 = $1035 >>> 0 > $burn$2 >>> 0 ? $1035 : $burn$2;
}
if (!$burn$3) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
___gcry_burn_stack($burn$3 + 16 | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
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 $$074 = 0, $$171 = 0, $0 = 0, $100 = 0, $1006 = 0, $1007 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $14 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $151 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $278 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $326 = 0, $33 = 0, $34 = 0, $341 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $387 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $448 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $507 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $519 = 0, $52 = 0, $520 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $649 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $81 = 0, $82 = 0, $824 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $885 = 0, $89 = 0, $898 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $946 = 0, $95 = 0, $96 = 0, $963 = 0, $97 = 0, $98 = 0, $99 = 0, $burn_depth$0$lcssa = 0, $burn_depth$1$lcssa = 0, $burn_depth$2 = 0, $inbuf$072 = 0, $inbuf$169 = 0, $l$0 = 0, $l4$0 = 0, $l_tmp = 0, $outbuf$073 = 0, $outbuf$170 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$l_tmp = sp;
$0 = $c + 496 | 0;
if (!$encrypt) {
_check_decryption_preparation($0);
$6 = HEAP32[$0 + 500 >> 2] | 0;
if ($6) FUNCTION_TABLE_v[$6 & 3]();
$507 = HEAP32[$0 + 492 >> 2] | 0;
if (!$nblocks) $burn_depth$1$lcssa = 0; else {
$509 = $c + 464 | 0;
$510 = $c + 64 | 0;
$511 = $510;
$512 = $510 + 4 | 0;
$513 = $c + 72 | 0;
$514 = $c + 76 | 0;
$515 = $l_tmp + 4 | 0;
$516 = $l_tmp + 8 | 0;
$517 = $l_tmp + 12 | 0;
$519 = ($511 & 3 | 0) == 0;
$520 = $c + 80 | 0;
$523 = ($520 & 3 | 0) == 0;
$524 = $520 + 4 | 0;
$525 = $c + 88 | 0;
$526 = $c + 92 | 0;
$527 = $c + 160 | 0;
$528 = $l_tmp + 1 | 0;
$529 = $l_tmp + 2 | 0;
$530 = $l_tmp + 3 | 0;
$531 = $l_tmp + 4 | 0;
$532 = $531 + 1 | 0;
$533 = $531 + 2 | 0;
$534 = $531 + 3 | 0;
$535 = $l_tmp + 8 | 0;
$536 = $535 + 1 | 0;
$537 = $535 + 2 | 0;
$538 = $535 + 3 | 0;
$539 = $l_tmp + 12 | 0;
$540 = $539 + 1 | 0;
$541 = $539 + 2 | 0;
$542 = $539 + 3 | 0;
$543 = $l_tmp + 1 | 0;
$544 = $520 + 1 | 0;
$545 = $l_tmp + 2 | 0;
$546 = $520 + 2 | 0;
$547 = $l_tmp + 3 | 0;
$548 = $520 + 3 | 0;
$549 = $l_tmp + 4 | 0;
$550 = $520 + 4 | 0;
$551 = $549 + 1 | 0;
$552 = $520 + 5 | 0;
$553 = $549 + 2 | 0;
$554 = $520 + 6 | 0;
$555 = $549 + 3 | 0;
$556 = $520 + 7 | 0;
$557 = $l_tmp + 8 | 0;
$558 = $c + 88 | 0;
$559 = $557 + 1 | 0;
$560 = $c + 89 | 0;
$561 = $557 + 2 | 0;
$562 = $c + 90 | 0;
$563 = $557 + 3 | 0;
$564 = $c + 91 | 0;
$565 = $l_tmp + 12 | 0;
$566 = $c + 92 | 0;
$567 = $565 + 1 | 0;
$568 = $c + 93 | 0;
$569 = $565 + 2 | 0;
$570 = $c + 94 | 0;
$571 = $565 + 3 | 0;
$572 = $c + 95 | 0;
$573 = $510 + 1 | 0;
$574 = $l_tmp + 1 | 0;
$575 = $510 + 2 | 0;
$576 = $l_tmp + 2 | 0;
$577 = $510 + 3 | 0;
$578 = $l_tmp + 3 | 0;
$579 = $510 + 4 | 0;
$580 = $l_tmp + 4 | 0;
$581 = $510 + 5 | 0;
$582 = $580 + 1 | 0;
$583 = $510 + 6 | 0;
$584 = $580 + 2 | 0;
$585 = $510 + 7 | 0;
$586 = $580 + 3 | 0;
$587 = $c + 72 | 0;
$588 = $l_tmp + 8 | 0;
$589 = $c + 73 | 0;
$590 = $588 + 1 | 0;
$591 = $c + 74 | 0;
$592 = $588 + 2 | 0;
$593 = $c + 75 | 0;
$594 = $588 + 3 | 0;
$595 = $c + 76 | 0;
$596 = $l_tmp + 12 | 0;
$597 = $c + 77 | 0;
$598 = $596 + 1 | 0;
$599 = $c + 78 | 0;
$600 = $596 + 2 | 0;
$601 = $c + 79 | 0;
$602 = $596 + 3 | 0;
$603 = $l_tmp + 1 | 0;
$604 = $l_tmp + 2 | 0;
$605 = $l_tmp + 3 | 0;
$606 = $l_tmp + 4 | 0;
$607 = $606 + 1 | 0;
$608 = $606 + 2 | 0;
$609 = $606 + 3 | 0;
$610 = $l_tmp + 8 | 0;
$611 = $610 + 1 | 0;
$612 = $610 + 2 | 0;
$613 = $610 + 3 | 0;
$614 = $l_tmp + 12 | 0;
$615 = $614 + 1 | 0;
$616 = $614 + 2 | 0;
$617 = $614 + 3 | 0;
$618 = $510 + 1 | 0;
$619 = $510 + 2 | 0;
$620 = $510 + 3 | 0;
$621 = $510 + 4 | 0;
$622 = $510 + 5 | 0;
$623 = $510 + 6 | 0;
$624 = $510 + 7 | 0;
$625 = $c + 72 | 0;
$626 = $c + 73 | 0;
$627 = $c + 74 | 0;
$628 = $c + 75 | 0;
$629 = $c + 76 | 0;
$630 = $c + 77 | 0;
$631 = $c + 78 | 0;
$632 = $c + 79 | 0;
$$171 = $nblocks;
$inbuf$169 = $inbuf_arg;
$outbuf$170 = $outbuf_arg;
while (1) {
$633 = $509;
$639 = _i64Add(HEAP32[$633 >> 2] | 0, HEAP32[$633 + 4 >> 2] | 0, 1, 0) | 0;
$640 = tempRet0;
$641 = $509;
HEAP32[$641 >> 2] = $639;
HEAP32[$641 + 4 >> 2] = $640;
if (($639 | 0) == 0 & 0 == 0) label = 36; else if (!$639) label = 36; else {
$649 = _llvm_cttz_i32($639 | 0) | 0;
if ($649 >>> 0 < 16) $l4$0 = $527 + ($649 << 4) | 0; else label = 36;
}
if ((label | 0) == 36) {
label = 0;
$l4$0 = __gcry_cipher_ocb_get_l($c, $l_tmp, $639, $640) | 0;
}
if (!(($l4$0 | $511) & 3)) {
HEAP32[$510 >> 2] = HEAP32[$510 >> 2] ^ HEAP32[$l4$0 >> 2];
HEAP32[$512 >> 2] = HEAP32[$512 >> 2] ^ HEAP32[$l4$0 + 4 >> 2];
HEAP32[$513 >> 2] = HEAP32[$513 >> 2] ^ HEAP32[$l4$0 + 8 >> 2];
HEAP32[$514 >> 2] = HEAP32[$514 >> 2] ^ HEAP32[$l4$0 + 12 >> 2];
} else {
HEAP8[$510 >> 0] = HEAP8[$510 >> 0] ^ HEAP8[$l4$0 >> 0];
HEAP8[$618 >> 0] = HEAP8[$618 >> 0] ^ HEAP8[$l4$0 + 1 >> 0];
HEAP8[$619 >> 0] = HEAP8[$619 >> 0] ^ HEAP8[$l4$0 + 2 >> 0];
HEAP8[$620 >> 0] = HEAP8[$620 >> 0] ^ HEAP8[$l4$0 + 3 >> 0];
HEAP8[$621 >> 0] = HEAP8[$621 >> 0] ^ HEAP8[$l4$0 + 4 >> 0];
HEAP8[$622 >> 0] = HEAP8[$622 >> 0] ^ HEAP8[$l4$0 + 5 >> 0];
HEAP8[$623 >> 0] = HEAP8[$623 >> 0] ^ HEAP8[$l4$0 + 6 >> 0];
HEAP8[$624 >> 0] = HEAP8[$624 >> 0] ^ HEAP8[$l4$0 + 7 >> 0];
HEAP8[$625 >> 0] = HEAP8[$625 >> 0] ^ HEAP8[$l4$0 + 8 >> 0];
HEAP8[$626 >> 0] = HEAP8[$626 >> 0] ^ HEAP8[$l4$0 + 9 >> 0];
HEAP8[$627 >> 0] = HEAP8[$627 >> 0] ^ HEAP8[$l4$0 + 10 >> 0];
HEAP8[$628 >> 0] = HEAP8[$628 >> 0] ^ HEAP8[$l4$0 + 11 >> 0];
HEAP8[$629 >> 0] = HEAP8[$629 >> 0] ^ HEAP8[$l4$0 + 12 >> 0];
HEAP8[$630 >> 0] = HEAP8[$630 >> 0] ^ HEAP8[$l4$0 + 13 >> 0];
HEAP8[$631 >> 0] = HEAP8[$631 >> 0] ^ HEAP8[$l4$0 + 14 >> 0];
HEAP8[$632 >> 0] = HEAP8[$632 >> 0] ^ HEAP8[$l4$0 + 15 >> 0];
}
if (!($inbuf$169 & 3)) {
HEAP32[$l_tmp >> 2] = HEAP32[$inbuf$169 >> 2];
HEAP32[$515 >> 2] = HEAP32[$inbuf$169 + 4 >> 2];
HEAP32[$516 >> 2] = HEAP32[$inbuf$169 + 8 >> 2];
HEAP32[$517 >> 2] = HEAP32[$inbuf$169 + 12 >> 2];
} else {
HEAP8[$l_tmp >> 0] = HEAP8[$inbuf$169 >> 0] | 0;
HEAP8[$603 >> 0] = HEAP8[$inbuf$169 + 1 >> 0] | 0;
HEAP8[$604 >> 0] = HEAP8[$inbuf$169 + 2 >> 0] | 0;
HEAP8[$605 >> 0] = HEAP8[$inbuf$169 + 3 >> 0] | 0;
HEAP8[$606 >> 0] = HEAP8[$inbuf$169 + 4 >> 0] | 0;
HEAP8[$607 >> 0] = HEAP8[$inbuf$169 + 5 >> 0] | 0;
HEAP8[$608 >> 0] = HEAP8[$inbuf$169 + 6 >> 0] | 0;
HEAP8[$609 >> 0] = HEAP8[$inbuf$169 + 7 >> 0] | 0;
HEAP8[$610 >> 0] = HEAP8[$inbuf$169 + 8 >> 0] | 0;
HEAP8[$611 >> 0] = HEAP8[$inbuf$169 + 9 >> 0] | 0;
HEAP8[$612 >> 0] = HEAP8[$inbuf$169 + 10 >> 0] | 0;
HEAP8[$613 >> 0] = HEAP8[$inbuf$169 + 11 >> 0] | 0;
HEAP8[$614 >> 0] = HEAP8[$inbuf$169 + 12 >> 0] | 0;
HEAP8[$615 >> 0] = HEAP8[$inbuf$169 + 13 >> 0] | 0;
HEAP8[$616 >> 0] = HEAP8[$inbuf$169 + 14 >> 0] | 0;
HEAP8[$617 >> 0] = HEAP8[$inbuf$169 + 15 >> 0] | 0;
}
if ($519) {
HEAP32[$l_tmp >> 2] = HEAP32[$l_tmp >> 2] ^ HEAP32[$510 >> 2];
HEAP32[$515 >> 2] = HEAP32[$515 >> 2] ^ HEAP32[$512 >> 2];
HEAP32[$516 >> 2] = HEAP32[$516 >> 2] ^ HEAP32[$513 >> 2];
HEAP32[$517 >> 2] = HEAP32[$517 >> 2] ^ HEAP32[$514 >> 2];
$885 = FUNCTION_TABLE_iiii[$507 & 63]($0, $l_tmp, $l_tmp) | 0;
HEAP32[$l_tmp >> 2] = HEAP32[$l_tmp >> 2] ^ HEAP32[$510 >> 2];
HEAP32[$515 >> 2] = HEAP32[$515 >> 2] ^ HEAP32[$512 >> 2];
HEAP32[$516 >> 2] = HEAP32[$516 >> 2] ^ HEAP32[$513 >> 2];
HEAP32[$517 >> 2] = HEAP32[$517 >> 2] ^ HEAP32[$514 >> 2];
$1007 = $885;
} else {
HEAP8[$l_tmp >> 0] = HEAP8[$l_tmp >> 0] ^ HEAP8[$510 >> 0];
HEAP8[$574 >> 0] = HEAP8[$574 >> 0] ^ HEAP8[$573 >> 0];
HEAP8[$576 >> 0] = HEAP8[$576 >> 0] ^ HEAP8[$575 >> 0];
HEAP8[$578 >> 0] = HEAP8[$578 >> 0] ^ HEAP8[$577 >> 0];
HEAP8[$580 >> 0] = HEAP8[$580 >> 0] ^ HEAP8[$579 >> 0];
HEAP8[$582 >> 0] = HEAP8[$582 >> 0] ^ HEAP8[$581 >> 0];
HEAP8[$584 >> 0] = HEAP8[$584 >> 0] ^ HEAP8[$583 >> 0];
HEAP8[$586 >> 0] = HEAP8[$586 >> 0] ^ HEAP8[$585 >> 0];
HEAP8[$588 >> 0] = HEAP8[$588 >> 0] ^ HEAP8[$587 >> 0];
HEAP8[$590 >> 0] = HEAP8[$590 >> 0] ^ HEAP8[$589 >> 0];
HEAP8[$592 >> 0] = HEAP8[$592 >> 0] ^ HEAP8[$591 >> 0];
HEAP8[$594 >> 0] = HEAP8[$594 >> 0] ^ HEAP8[$593 >> 0];
HEAP8[$596 >> 0] = HEAP8[$596 >> 0] ^ HEAP8[$595 >> 0];
HEAP8[$598 >> 0] = HEAP8[$598 >> 0] ^ HEAP8[$597 >> 0];
HEAP8[$600 >> 0] = HEAP8[$600 >> 0] ^ HEAP8[$599 >> 0];
HEAP8[$602 >> 0] = HEAP8[$602 >> 0] ^ HEAP8[$601 >> 0];
$824 = FUNCTION_TABLE_iiii[$507 & 63]($0, $l_tmp, $l_tmp) | 0;
HEAP8[$l_tmp >> 0] = HEAP8[$l_tmp >> 0] ^ HEAP8[$510 >> 0];
HEAP8[$574 >> 0] = HEAP8[$574 >> 0] ^ HEAP8[$573 >> 0];
HEAP8[$576 >> 0] = HEAP8[$576 >> 0] ^ HEAP8[$575 >> 0];
HEAP8[$578 >> 0] = HEAP8[$578 >> 0] ^ HEAP8[$577 >> 0];
HEAP8[$580 >> 0] = HEAP8[$580 >> 0] ^ HEAP8[$579 >> 0];
HEAP8[$582 >> 0] = HEAP8[$582 >> 0] ^ HEAP8[$581 >> 0];
HEAP8[$584 >> 0] = HEAP8[$584 >> 0] ^ HEAP8[$583 >> 0];
HEAP8[$586 >> 0] = HEAP8[$586 >> 0] ^ HEAP8[$585 >> 0];
HEAP8[$588 >> 0] = HEAP8[$588 >> 0] ^ HEAP8[$587 >> 0];
HEAP8[$590 >> 0] = HEAP8[$590 >> 0] ^ HEAP8[$589 >> 0];
HEAP8[$592 >> 0] = HEAP8[$592 >> 0] ^ HEAP8[$591 >> 0];
HEAP8[$594 >> 0] = HEAP8[$594 >> 0] ^ HEAP8[$593 >> 0];
HEAP8[$596 >> 0] = HEAP8[$596 >> 0] ^ HEAP8[$595 >> 0];
HEAP8[$598 >> 0] = HEAP8[$598 >> 0] ^ HEAP8[$597 >> 0];
HEAP8[$600 >> 0] = HEAP8[$600 >> 0] ^ HEAP8[$599 >> 0];
HEAP8[$602 >> 0] = HEAP8[$602 >> 0] ^ HEAP8[$601 >> 0];
$1007 = $824;
}
if ($523) {
$946 = HEAP32[$l_tmp >> 2] | 0;
HEAP32[$520 >> 2] = HEAP32[$520 >> 2] ^ $946;
HEAP32[$524 >> 2] = HEAP32[$524 >> 2] ^ HEAP32[$515 >> 2];
HEAP32[$525 >> 2] = HEAP32[$525 >> 2] ^ HEAP32[$516 >> 2];
HEAP32[$526 >> 2] = HEAP32[$526 >> 2] ^ HEAP32[$517 >> 2];
$963 = $946 & 255;
} else {
$898 = HEAP8[$l_tmp >> 0] | 0;
HEAP8[$520 >> 0] = HEAP8[$520 >> 0] ^ $898;
HEAP8[$544 >> 0] = HEAP8[$544 >> 0] ^ HEAP8[$543 >> 0];
HEAP8[$546 >> 0] = HEAP8[$546 >> 0] ^ HEAP8[$545 >> 0];
HEAP8[$548 >> 0] = HEAP8[$548 >> 0] ^ HEAP8[$547 >> 0];
HEAP8[$550 >> 0] = HEAP8[$550 >> 0] ^ HEAP8[$549 >> 0];
HEAP8[$552 >> 0] = HEAP8[$552 >> 0] ^ HEAP8[$551 >> 0];
HEAP8[$554 >> 0] = HEAP8[$554 >> 0] ^ HEAP8[$553 >> 0];
HEAP8[$556 >> 0] = HEAP8[$556 >> 0] ^ HEAP8[$555 >> 0];
HEAP8[$558 >> 0] = HEAP8[$558 >> 0] ^ HEAP8[$557 >> 0];
HEAP8[$560 >> 0] = HEAP8[$560 >> 0] ^ HEAP8[$559 >> 0];
HEAP8[$562 >> 0] = HEAP8[$562 >> 0] ^ HEAP8[$561 >> 0];
HEAP8[$564 >> 0] = HEAP8[$564 >> 0] ^ HEAP8[$563 >> 0];
HEAP8[$566 >> 0] = HEAP8[$566 >> 0] ^ HEAP8[$565 >> 0];
HEAP8[$568 >> 0] = HEAP8[$568 >> 0] ^ HEAP8[$567 >> 0];
HEAP8[$570 >> 0] = HEAP8[$570 >> 0] ^ HEAP8[$569 >> 0];
HEAP8[$572 >> 0] = HEAP8[$572 >> 0] ^ HEAP8[$571 >> 0];
$963 = $898;
}
if (!($outbuf$170 & 3)) {
HEAP32[$outbuf$170 >> 2] = HEAP32[$l_tmp >> 2];
HEAP32[$outbuf$170 + 4 >> 2] = HEAP32[$515 >> 2];
HEAP32[$outbuf$170 + 8 >> 2] = HEAP32[$516 >> 2];
HEAP32[$outbuf$170 + 12 >> 2] = HEAP32[$517 >> 2];
} else {
HEAP8[$outbuf$170 >> 0] = $963;
HEAP8[$outbuf$170 + 1 >> 0] = HEAP8[$528 >> 0] | 0;
HEAP8[$outbuf$170 + 2 >> 0] = HEAP8[$529 >> 0] | 0;
HEAP8[$outbuf$170 + 3 >> 0] = HEAP8[$530 >> 0] | 0;
HEAP8[$outbuf$170 + 4 >> 0] = HEAP8[$531 >> 0] | 0;
HEAP8[$outbuf$170 + 5 >> 0] = HEAP8[$532 >> 0] | 0;
HEAP8[$outbuf$170 + 6 >> 0] = HEAP8[$533 >> 0] | 0;
HEAP8[$outbuf$170 + 7 >> 0] = HEAP8[$534 >> 0] | 0;
HEAP8[$outbuf$170 + 8 >> 0] = HEAP8[$535 >> 0] | 0;
HEAP8[$outbuf$170 + 9 >> 0] = HEAP8[$536 >> 0] | 0;
HEAP8[$outbuf$170 + 10 >> 0] = HEAP8[$537 >> 0] | 0;
HEAP8[$outbuf$170 + 11 >> 0] = HEAP8[$538 >> 0] | 0;
HEAP8[$outbuf$170 + 12 >> 0] = HEAP8[$539 >> 0] | 0;
HEAP8[$outbuf$170 + 13 >> 0] = HEAP8[$540 >> 0] | 0;
HEAP8[$outbuf$170 + 14 >> 0] = HEAP8[$541 >> 0] | 0;
HEAP8[$outbuf$170 + 15 >> 0] = HEAP8[$542 >> 0] | 0;
}
$$171 = $$171 + -1 | 0;
if (!$$171) {
$burn_depth$1$lcssa = $1007;
break;
} else {
$inbuf$169 = $inbuf$169 + 16 | 0;
$outbuf$170 = $outbuf$170 + 16 | 0;
}
}
}
$burn_depth$2 = $burn_depth$1$lcssa;
} else {
$3 = HEAP32[$0 + 496 >> 2] | 0;
if ($3) FUNCTION_TABLE_v[$3 & 3]();
$9 = HEAP32[$0 + 488 >> 2] | 0;
if (!$nblocks) $burn_depth$0$lcssa = 0; else {
$11 = $c + 464 | 0;
$12 = $c + 64 | 0;
$13 = $12;
$14 = $12 + 4 | 0;
$15 = $c + 72 | 0;
$16 = $c + 76 | 0;
$17 = $l_tmp + 4 | 0;
$18 = $l_tmp + 8 | 0;
$19 = $l_tmp + 12 | 0;
$20 = $c + 80 | 0;
$23 = ($20 & 3 | 0) == 0;
$24 = $20 + 4 | 0;
$25 = $c + 88 | 0;
$26 = $c + 92 | 0;
$28 = ($13 & 3 | 0) == 0;
$29 = $c + 160 | 0;
$30 = $l_tmp + 1 | 0;
$31 = $l_tmp + 2 | 0;
$32 = $l_tmp + 3 | 0;
$33 = $l_tmp + 4 | 0;
$34 = $33 + 1 | 0;
$35 = $33 + 2 | 0;
$36 = $33 + 3 | 0;
$37 = $l_tmp + 8 | 0;
$38 = $37 + 1 | 0;
$39 = $37 + 2 | 0;
$40 = $37 + 3 | 0;
$41 = $l_tmp + 12 | 0;
$42 = $41 + 1 | 0;
$43 = $41 + 2 | 0;
$44 = $41 + 3 | 0;
$45 = $12 + 1 | 0;
$46 = $l_tmp + 1 | 0;
$47 = $12 + 2 | 0;
$48 = $l_tmp + 2 | 0;
$49 = $12 + 3 | 0;
$50 = $l_tmp + 3 | 0;
$51 = $12 + 4 | 0;
$52 = $l_tmp + 4 | 0;
$53 = $12 + 5 | 0;
$54 = $52 + 1 | 0;
$55 = $12 + 6 | 0;
$56 = $52 + 2 | 0;
$57 = $12 + 7 | 0;
$58 = $52 + 3 | 0;
$59 = $c + 72 | 0;
$60 = $l_tmp + 8 | 0;
$61 = $c + 73 | 0;
$62 = $60 + 1 | 0;
$63 = $c + 74 | 0;
$64 = $60 + 2 | 0;
$65 = $c + 75 | 0;
$66 = $60 + 3 | 0;
$67 = $c + 76 | 0;
$68 = $l_tmp + 12 | 0;
$69 = $c + 77 | 0;
$70 = $68 + 1 | 0;
$71 = $c + 78 | 0;
$72 = $68 + 2 | 0;
$73 = $c + 79 | 0;
$74 = $68 + 3 | 0;
$75 = $l_tmp + 1 | 0;
$76 = $20 + 1 | 0;
$77 = $l_tmp + 2 | 0;
$78 = $20 + 2 | 0;
$79 = $l_tmp + 3 | 0;
$80 = $20 + 3 | 0;
$81 = $l_tmp + 4 | 0;
$82 = $20 + 4 | 0;
$83 = $81 + 1 | 0;
$84 = $20 + 5 | 0;
$85 = $81 + 2 | 0;
$86 = $20 + 6 | 0;
$87 = $81 + 3 | 0;
$88 = $20 + 7 | 0;
$89 = $l_tmp + 8 | 0;
$90 = $c + 88 | 0;
$91 = $89 + 1 | 0;
$92 = $c + 89 | 0;
$93 = $89 + 2 | 0;
$94 = $c + 90 | 0;
$95 = $89 + 3 | 0;
$96 = $c + 91 | 0;
$97 = $l_tmp + 12 | 0;
$98 = $c + 92 | 0;
$99 = $97 + 1 | 0;
$100 = $c + 93 | 0;
$101 = $97 + 2 | 0;
$102 = $c + 94 | 0;
$103 = $97 + 3 | 0;
$104 = $c + 95 | 0;
$105 = $l_tmp + 1 | 0;
$106 = $l_tmp + 2 | 0;
$107 = $l_tmp + 3 | 0;
$108 = $l_tmp + 4 | 0;
$109 = $108 + 1 | 0;
$110 = $108 + 2 | 0;
$111 = $108 + 3 | 0;
$112 = $l_tmp + 8 | 0;
$113 = $112 + 1 | 0;
$114 = $112 + 2 | 0;
$115 = $112 + 3 | 0;
$116 = $l_tmp + 12 | 0;
$117 = $116 + 1 | 0;
$118 = $116 + 2 | 0;
$119 = $116 + 3 | 0;
$120 = $12 + 1 | 0;
$121 = $12 + 2 | 0;
$122 = $12 + 3 | 0;
$123 = $12 + 4 | 0;
$124 = $12 + 5 | 0;
$125 = $12 + 6 | 0;
$126 = $12 + 7 | 0;
$127 = $c + 72 | 0;
$128 = $c + 73 | 0;
$129 = $c + 74 | 0;
$130 = $c + 75 | 0;
$131 = $c + 76 | 0;
$132 = $c + 77 | 0;
$133 = $c + 78 | 0;
$134 = $c + 79 | 0;
$$074 = $nblocks;
$inbuf$072 = $inbuf_arg;
$outbuf$073 = $outbuf_arg;
while (1) {
$135 = $11;
$141 = _i64Add(HEAP32[$135 >> 2] | 0, HEAP32[$135 + 4 >> 2] | 0, 1, 0) | 0;
$142 = tempRet0;
$143 = $11;
HEAP32[$143 >> 2] = $141;
HEAP32[$143 + 4 >> 2] = $142;
if (($141 | 0) == 0 & 0 == 0) label = 12; else if (!$141) label = 12; else {
$151 = _llvm_cttz_i32($141 | 0) | 0;
if ($151 >>> 0 < 16) $l$0 = $29 + ($151 << 4) | 0; else label = 12;
}
if ((label | 0) == 12) {
label = 0;
$l$0 = __gcry_cipher_ocb_get_l($c, $l_tmp, $141, $142) | 0;
}
if (!(($l$0 | $13) & 3)) {
HEAP32[$12 >> 2] = HEAP32[$12 >> 2] ^ HEAP32[$l$0 >> 2];
HEAP32[$14 >> 2] = HEAP32[$14 >> 2] ^ HEAP32[$l$0 + 4 >> 2];
HEAP32[$15 >> 2] = HEAP32[$15 >> 2] ^ HEAP32[$l$0 + 8 >> 2];
HEAP32[$16 >> 2] = HEAP32[$16 >> 2] ^ HEAP32[$l$0 + 12 >> 2];
} else {
HEAP8[$12 >> 0] = HEAP8[$12 >> 0] ^ HEAP8[$l$0 >> 0];
HEAP8[$120 >> 0] = HEAP8[$120 >> 0] ^ HEAP8[$l$0 + 1 >> 0];
HEAP8[$121 >> 0] = HEAP8[$121 >> 0] ^ HEAP8[$l$0 + 2 >> 0];
HEAP8[$122 >> 0] = HEAP8[$122 >> 0] ^ HEAP8[$l$0 + 3 >> 0];
HEAP8[$123 >> 0] = HEAP8[$123 >> 0] ^ HEAP8[$l$0 + 4 >> 0];
HEAP8[$124 >> 0] = HEAP8[$124 >> 0] ^ HEAP8[$l$0 + 5 >> 0];
HEAP8[$125 >> 0] = HEAP8[$125 >> 0] ^ HEAP8[$l$0 + 6 >> 0];
HEAP8[$126 >> 0] = HEAP8[$126 >> 0] ^ HEAP8[$l$0 + 7 >> 0];
HEAP8[$127 >> 0] = HEAP8[$127 >> 0] ^ HEAP8[$l$0 + 8 >> 0];
HEAP8[$128 >> 0] = HEAP8[$128 >> 0] ^ HEAP8[$l$0 + 9 >> 0];
HEAP8[$129 >> 0] = HEAP8[$129 >> 0] ^ HEAP8[$l$0 + 10 >> 0];
HEAP8[$130 >> 0] = HEAP8[$130 >> 0] ^ HEAP8[$l$0 + 11 >> 0];
HEAP8[$131 >> 0] = HEAP8[$131 >> 0] ^ HEAP8[$l$0 + 12 >> 0];
HEAP8[$132 >> 0] = HEAP8[$132 >> 0] ^ HEAP8[$l$0 + 13 >> 0];
HEAP8[$133 >> 0] = HEAP8[$133 >> 0] ^ HEAP8[$l$0 + 14 >> 0];
HEAP8[$134 >> 0] = HEAP8[$134 >> 0] ^ HEAP8[$l$0 + 15 >> 0];
}
if (!($inbuf$072 & 3)) {
HEAP32[$l_tmp >> 2] = HEAP32[$inbuf$072 >> 2];
HEAP32[$17 >> 2] = HEAP32[$inbuf$072 + 4 >> 2];
HEAP32[$18 >> 2] = HEAP32[$inbuf$072 + 8 >> 2];
HEAP32[$19 >> 2] = HEAP32[$inbuf$072 + 12 >> 2];
} else {
HEAP8[$l_tmp >> 0] = HEAP8[$inbuf$072 >> 0] | 0;
HEAP8[$105 >> 0] = HEAP8[$inbuf$072 + 1 >> 0] | 0;
HEAP8[$106 >> 0] = HEAP8[$inbuf$072 + 2 >> 0] | 0;
HEAP8[$107 >> 0] = HEAP8[$inbuf$072 + 3 >> 0] | 0;
HEAP8[$108 >> 0] = HEAP8[$inbuf$072 + 4 >> 0] | 0;
HEAP8[$109 >> 0] = HEAP8[$inbuf$072 + 5 >> 0] | 0;
HEAP8[$110 >> 0] = HEAP8[$inbuf$072 + 6 >> 0] | 0;
HEAP8[$111 >> 0] = HEAP8[$inbuf$072 + 7 >> 0] | 0;
HEAP8[$112 >> 0] = HEAP8[$inbuf$072 + 8 >> 0] | 0;
HEAP8[$113 >> 0] = HEAP8[$inbuf$072 + 9 >> 0] | 0;
HEAP8[$114 >> 0] = HEAP8[$inbuf$072 + 10 >> 0] | 0;
HEAP8[$115 >> 0] = HEAP8[$inbuf$072 + 11 >> 0] | 0;
HEAP8[$116 >> 0] = HEAP8[$inbuf$072 + 12 >> 0] | 0;
HEAP8[$117 >> 0] = HEAP8[$inbuf$072 + 13 >> 0] | 0;
HEAP8[$118 >> 0] = HEAP8[$inbuf$072 + 14 >> 0] | 0;
HEAP8[$119 >> 0] = HEAP8[$inbuf$072 + 15 >> 0] | 0;
}
if ($23) {
$326 = HEAP32[$l_tmp >> 2] | 0;
HEAP32[$20 >> 2] = HEAP32[$20 >> 2] ^ $326;
HEAP32[$24 >> 2] = HEAP32[$24 >> 2] ^ HEAP32[$17 >> 2];
HEAP32[$25 >> 2] = HEAP32[$25 >> 2] ^ HEAP32[$18 >> 2];
HEAP32[$26 >> 2] = HEAP32[$26 >> 2] ^ HEAP32[$19 >> 2];
$341 = $326 & 255;
} else {
$278 = HEAP8[$l_tmp >> 0] | 0;
HEAP8[$20 >> 0] = HEAP8[$20 >> 0] ^ $278;
HEAP8[$76 >> 0] = HEAP8[$76 >> 0] ^ HEAP8[$75 >> 0];
HEAP8[$78 >> 0] = HEAP8[$78 >> 0] ^ HEAP8[$77 >> 0];
HEAP8[$80 >> 0] = HEAP8[$80 >> 0] ^ HEAP8[$79 >> 0];
HEAP8[$82 >> 0] = HEAP8[$82 >> 0] ^ HEAP8[$81 >> 0];
HEAP8[$84 >> 0] = HEAP8[$84 >> 0] ^ HEAP8[$83 >> 0];
HEAP8[$86 >> 0] = HEAP8[$86 >> 0] ^ HEAP8[$85 >> 0];
HEAP8[$88 >> 0] = HEAP8[$88 >> 0] ^ HEAP8[$87 >> 0];
HEAP8[$90 >> 0] = HEAP8[$90 >> 0] ^ HEAP8[$89 >> 0];
HEAP8[$92 >> 0] = HEAP8[$92 >> 0] ^ HEAP8[$91 >> 0];
HEAP8[$94 >> 0] = HEAP8[$94 >> 0] ^ HEAP8[$93 >> 0];
HEAP8[$96 >> 0] = HEAP8[$96 >> 0] ^ HEAP8[$95 >> 0];
HEAP8[$98 >> 0] = HEAP8[$98 >> 0] ^ HEAP8[$97 >> 0];
HEAP8[$100 >> 0] = HEAP8[$100 >> 0] ^ HEAP8[$99 >> 0];
HEAP8[$102 >> 0] = HEAP8[$102 >> 0] ^ HEAP8[$101 >> 0];
HEAP8[$104 >> 0] = HEAP8[$104 >> 0] ^ HEAP8[$103 >> 0];
$341 = $278;
}
if ($28) {
HEAP32[$l_tmp >> 2] = HEAP32[$l_tmp >> 2] ^ HEAP32[$12 >> 2];
HEAP32[$17 >> 2] = HEAP32[$17 >> 2] ^ HEAP32[$14 >> 2];
HEAP32[$18 >> 2] = HEAP32[$18 >> 2] ^ HEAP32[$15 >> 2];
HEAP32[$19 >> 2] = HEAP32[$19 >> 2] ^ HEAP32[$16 >> 2];
$448 = FUNCTION_TABLE_iiii[$9 & 63]($0, $l_tmp, $l_tmp) | 0;
HEAP32[$l_tmp >> 2] = HEAP32[$l_tmp >> 2] ^ HEAP32[$12 >> 2];
HEAP32[$17 >> 2] = HEAP32[$17 >> 2] ^ HEAP32[$14 >> 2];
HEAP32[$18 >> 2] = HEAP32[$18 >> 2] ^ HEAP32[$15 >> 2];
HEAP32[$19 >> 2] = HEAP32[$19 >> 2] ^ HEAP32[$16 >> 2];
$1006 = $448;
} else {
HEAP8[$l_tmp >> 0] = $341 ^ HEAP8[$12 >> 0];
HEAP8[$46 >> 0] = HEAP8[$46 >> 0] ^ HEAP8[$45 >> 0];
HEAP8[$48 >> 0] = HEAP8[$48 >> 0] ^ HEAP8[$47 >> 0];
HEAP8[$50 >> 0] = HEAP8[$50 >> 0] ^ HEAP8[$49 >> 0];
HEAP8[$52 >> 0] = HEAP8[$52 >> 0] ^ HEAP8[$51 >> 0];
HEAP8[$54 >> 0] = HEAP8[$54 >> 0] ^ HEAP8[$53 >> 0];
HEAP8[$56 >> 0] = HEAP8[$56 >> 0] ^ HEAP8[$55 >> 0];
HEAP8[$58 >> 0] = HEAP8[$58 >> 0] ^ HEAP8[$57 >> 0];
HEAP8[$60 >> 0] = HEAP8[$60 >> 0] ^ HEAP8[$59 >> 0];
HEAP8[$62 >> 0] = HEAP8[$62 >> 0] ^ HEAP8[$61 >> 0];
HEAP8[$64 >> 0] = HEAP8[$64 >> 0] ^ HEAP8[$63 >> 0];
HEAP8[$66 >> 0] = HEAP8[$66 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$68 >> 0] = HEAP8[$68 >> 0] ^ HEAP8[$67 >> 0];
HEAP8[$70 >> 0] = HEAP8[$70 >> 0] ^ HEAP8[$69 >> 0];
HEAP8[$72 >> 0] = HEAP8[$72 >> 0] ^ HEAP8[$71 >> 0];
HEAP8[$74 >> 0] = HEAP8[$74 >> 0] ^ HEAP8[$73 >> 0];
$387 = FUNCTION_TABLE_iiii[$9 & 63]($0, $l_tmp, $l_tmp) | 0;
HEAP8[$l_tmp >> 0] = HEAP8[$l_tmp >> 0] ^ HEAP8[$12 >> 0];
HEAP8[$46 >> 0] = HEAP8[$46 >> 0] ^ HEAP8[$45 >> 0];
HEAP8[$48 >> 0] = HEAP8[$48 >> 0] ^ HEAP8[$47 >> 0];
HEAP8[$50 >> 0] = HEAP8[$50 >> 0] ^ HEAP8[$49 >> 0];
HEAP8[$52 >> 0] = HEAP8[$52 >> 0] ^ HEAP8[$51 >> 0];
HEAP8[$54 >> 0] = HEAP8[$54 >> 0] ^ HEAP8[$53 >> 0];
HEAP8[$56 >> 0] = HEAP8[$56 >> 0] ^ HEAP8[$55 >> 0];
HEAP8[$58 >> 0] = HEAP8[$58 >> 0] ^ HEAP8[$57 >> 0];
HEAP8[$60 >> 0] = HEAP8[$60 >> 0] ^ HEAP8[$59 >> 0];
HEAP8[$62 >> 0] = HEAP8[$62 >> 0] ^ HEAP8[$61 >> 0];
HEAP8[$64 >> 0] = HEAP8[$64 >> 0] ^ HEAP8[$63 >> 0];
HEAP8[$66 >> 0] = HEAP8[$66 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$68 >> 0] = HEAP8[$68 >> 0] ^ HEAP8[$67 >> 0];
HEAP8[$70 >> 0] = HEAP8[$70 >> 0] ^ HEAP8[$69 >> 0];
HEAP8[$72 >> 0] = HEAP8[$72 >> 0] ^ HEAP8[$71 >> 0];
HEAP8[$74 >> 0] = HEAP8[$74 >> 0] ^ HEAP8[$73 >> 0];
$1006 = $387;
}
if (!($outbuf$073 & 3)) {
HEAP32[$outbuf$073 >> 2] = HEAP32[$l_tmp >> 2];
HEAP32[$outbuf$073 + 4 >> 2] = HEAP32[$17 >> 2];
HEAP32[$outbuf$073 + 8 >> 2] = HEAP32[$18 >> 2];
HEAP32[$outbuf$073 + 12 >> 2] = HEAP32[$19 >> 2];
} else {
HEAP8[$outbuf$073 >> 0] = HEAP8[$l_tmp >> 0] | 0;
HEAP8[$outbuf$073 + 1 >> 0] = HEAP8[$30 >> 0] | 0;
HEAP8[$outbuf$073 + 2 >> 0] = HEAP8[$31 >> 0] | 0;
HEAP8[$outbuf$073 + 3 >> 0] = HEAP8[$32 >> 0] | 0;
HEAP8[$outbuf$073 + 4 >> 0] = HEAP8[$33 >> 0] | 0;
HEAP8[$outbuf$073 + 5 >> 0] = HEAP8[$34 >> 0] | 0;
HEAP8[$outbuf$073 + 6 >> 0] = HEAP8[$35 >> 0] | 0;
HEAP8[$outbuf$073 + 7 >> 0] = HEAP8[$36 >> 0] | 0;
HEAP8[$outbuf$073 + 8 >> 0] = HEAP8[$37 >> 0] | 0;
HEAP8[$outbuf$073 + 9 >> 0] = HEAP8[$38 >> 0] | 0;
HEAP8[$outbuf$073 + 10 >> 0] = HEAP8[$39 >> 0] | 0;
HEAP8[$outbuf$073 + 11 >> 0] = HEAP8[$40 >> 0] | 0;
HEAP8[$outbuf$073 + 12 >> 0] = HEAP8[$41 >> 0] | 0;
HEAP8[$outbuf$073 + 13 >> 0] = HEAP8[$42 >> 0] | 0;
HEAP8[$outbuf$073 + 14 >> 0] = HEAP8[$43 >> 0] | 0;
HEAP8[$outbuf$073 + 15 >> 0] = HEAP8[$44 >> 0] | 0;
}
$$074 = $$074 + -1 | 0;
if (!$$074) {
$burn_depth$0$lcssa = $1006;
break;
} else {
$inbuf$072 = $inbuf$072 + 16 | 0;
$outbuf$073 = $outbuf$073 + 16 | 0;
}
}
}
$burn_depth$2 = $burn_depth$0$lcssa;
}
if (!$burn_depth$2) {
STACKTOP = sp;
return;
}
___gcry_burn_stack($burn_depth$2 + 16 | 0);
STACKTOP = sp;
return;
}
function __gcry_mpi_powm($res, $base, $expo, $mod) {
$res = $res | 0;
$base = $base | 0;
$expo = $expo | 0;
$mod = $mod | 0;
var $$01$i$i = 0, $$02$i$i = 0, $$04$i$i = 0, $$1$i$i = 0, $$13$i$i = 0, $$15$i$i = 0, $$lcssa268 = 0, $$lcssa274 = 0, $$lcssa281 = 0, $$lcssa282 = 0, $$lcssa283 = 0, $$lcssa284 = 0, $$max_u_size$0 = 0, $$neg40 = 0, $1 = 0, $106 = 0, $107 = 0, $116 = 0, $117 = 0, $118 = 0, $123 = 0, $126 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $134 = 0, $135 = 0, $14 = 0, $142 = 0, $144 = 0, $15 = 0, $156 = 0, $159 = 0, $168 = 0, $174 = 0, $179 = 0, $18 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $205 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $218 = 0, $222 = 0, $223 = 0, $229 = 0, $235 = 0, $241 = 0, $243 = 0, $244 = 0, $248 = 0, $25 = 0, $254 = 0, $257 = 0, $26 = 0, $260 = 0, $264 = 0, $268 = 0, $27 = 0, $272 = 0, $278 = 0, $28 = 0, $284 = 0, $290 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $305 = 0, $308 = 0, $311 = 0, $315 = 0, $320 = 0, $325 = 0, $326 = 0, $327 = 0, $340 = 0, $356 = 0, $358 = 0, $359 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $366 = 0, $368 = 0, $369 = 0, $371 = 0, $375 = 0, $38 = 0, $381 = 0, $4 = 0, $44 = 0, $46 = 0, $47 = 0, $50 = 0, $52 = 0, $58 = 0, $6 = 0, $63 = 0, $64 = 0, $7 = 0, $71 = 0, $73 = 0, $75 = 0, $76 = 0, $77 = 0, $80 = 0, $87 = 0, $98 = 0, $99 = 0, $W$0 = 0, $_i$0158 = 0, $_i1$0154 = 0, $_i2$0151 = 0, $_i21$082 = 0, $_i3$0148 = 0, $_i4$0146 = 0, $_i5$0135 = 0, $_i8$0126 = 0, $base_u$0140 = 0, $base_u_size$0138 = 0, $base_u_size$1$lcssa196 = 0, $base_u_size$1$lcssa197 = 0, $base_u_size$1121 = 0, $base_u_size$2$lcssa198 = 0, $base_u_size$2$lcssa199 = 0, $base_u_size$291 = 0, $bp$0 = 0, $bp$021 = 0, $bp$1 = 0, $bp_marker$0 = 0, $bp_marker$018 = 0, $bp_marker$1 = 0, $bp_marker$2 = 0, $bp_nlimbs$0 = 0, $bp_nlimbs$017 = 0, $bp_nlimbs$1 = 0, $bp_nlimbs$2 = 0, $bsize$0 = 0, $bsize$1 = 0, $bsize$119 = 0, $c$0$lcssa = 0, $c$0$lcssa$lcssa = 0, $c$0$ph = 0, $c$0106 = 0, $c$1 = 0, $c$4$ph = 0, $c$587 = 0, $e$0$lcssa = 0, $e$0$ph = 0, $e$1 = 0, $e$4$ph = 0, $e0$0 = 0, $ep$0 = 0, $ep_marker$0 = 0, $ep_marker$1 = 0, $ep_nlimbs$0 = 0, $ep_nlimbs$1 = 0, $i$011$i$i = 0, $i$0141 = 0, $i$1$lcssa = 0, $i$1$ph = 0, $i$1104 = 0, $i$2 = 0, $i$481 = 0, $i$481$us = 0, $j$0$lcssa = 0, $j$0$lcssa$lcssa = 0, $j$0$ph = 0, $j$0105 = 0, $j$1113 = 0, $j$4$ph = 0, $j$497 = 0, $k$0122 = 0, $k$192 = 0, $karactx = 0, $max_u_size$0$lcssa = 0, $max_u_size$0139 = 0, $precomp = 0, $precomp_size = 0, $rp$0 = 0, $rp$1$ph = 0, $rp$1$ph$lcssa279 = 0, $rp$1$ph280 = 0, $rp$2$lcssa = 0, $rp$2115 = 0, $rp$2115$phi = 0, $rp$5$lcssa = 0, $rp$599 = 0, $rp$599$phi = 0, $rp$688 = 0, $rp$688$phi = 0, $rp$7 = 0, $rp$8 = 0, $rsign$0 = 0, $rsize$0 = 0, $rsize$1$ph = 0, $rsize$10 = 0, $rsize$11 = 0, $rsize$11$lcssa = 0, $rsize$12 = 0, $rsize$2$ph = 0, $rsize$2$ph$lcssa275 = 0, $rsize$2$ph276 = 0, $rsize$3$lcssa = 0, $rsize$3112 = 0, $rsize$6$be = 0, $rsize$6$lcssa = 0, $rsize$696 = 0, $rsize$7$ph = 0, $rsize$785 = 0, $rsize$8 = 0, $rsize$9 = 0, $storemerge = 0, $storemerge$i$14 = 0, $storemerge$i$6 = 0, $u = 0, $w = 0, $xp$0$ph = 0, $xp$0$ph$lcssa277 = 0, $xp$0$ph278 = 0, $xp$1$lcssa = 0, $xp$1114 = 0, $xp$4$lcssa = 0, $xp$498 = 0, $xp$586 = 0, $xp_marker$0 = 0, $xp_nlimbs$0 = 0, $xsize$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208 | 0;
$precomp = sp + 136 | 0;
$precomp_size = sp + 72 | 0;
$karactx = sp + 40 | 0;
$w = sp + 20 | 0;
$u = sp;
$1 = HEAP32[$expo + 4 >> 2] | 0;
$3 = HEAP32[$mod + 4 >> 2] | 0;
$4 = $3 << 1;
$6 = HEAP32[$mod + 8 >> 2] | 0;
$7 = $1 << 5;
if (($7 | 0) > 512) $W$0 = 5; else if (($7 | 0) > 256) $W$0 = 4; else if (($7 | 0) > 128) $W$0 = 3; else $W$0 = ($7 | 0) > 64 ? 2 : 1;
$14 = HEAP32[$expo + 12 >> 2] & 1;
$15 = ($14 | 0) != 0;
$18 = HEAP32[$mod + 12 >> 2] & 1;
$19 = ($18 | 0) != 0;
if (!$base) $26 = 0; else $26 = (HEAP32[$base + 12 >> 2] & 1 | 0) != 0;
$25 = $26 & 1;
$27 = $res + 16 | 0;
$28 = HEAP32[$27 >> 2] | 0;
$30 = HEAP32[$expo + 16 >> 2] | 0;
if (!$3) __gcry_divide_by_zero();
if (!$1) {
if (($3 | 0) == 1) {
$38 = (HEAP32[HEAP32[$mod + 16 >> 2] >> 2] | 0) == 1;
HEAP32[$res + 4 >> 2] = $38 & 1 ^ 1;
if (!$38) label = 13;
} else {
HEAP32[$res + 4 >> 2] = 1;
label = 13;
}
if ((label | 0) == 13) {
if ((HEAP32[$res >> 2] | 0) < 1) {
__gcry_mpi_resize($res, 1);
$44 = HEAP32[$27 >> 2] | 0;
} else $44 = $28;
HEAP32[$44 >> 2] = 1;
}
HEAP32[$res + 8 >> 2] = 0;
STACKTOP = sp;
return;
}
$46 = $19 ? $3 : 0;
$47 = __gcry_mpi_alloc_limb_space($3, $18) | 0;
$50 = HEAP32[$mod + 16 >> 2] | 0;
$52 = HEAP32[$50 + ($3 + -1 << 2) >> 2] | 0;
$58 = $52 >>> 0 < 65536 ? ($52 >>> 0 < 256 ? 0 : 8) : $52 >>> 0 < 16777216 ? 16 : 24;
$$neg40 = 32 - (HEAPU8[45217 + ($52 >>> $58) >> 0] | 0) | 0;
$63 = $$neg40 - $58 | 0;
$64 = ($$neg40 | 0) != ($58 | 0);
if ($64) __gcry_mpih_lshift($47, $50, $3, $63) | 0; else if (($3 | 0) > 0) {
$_i$0158 = 0;
do {
HEAP32[$47 + ($_i$0158 << 2) >> 2] = HEAP32[$50 + ($_i$0158 << 2) >> 2];
$_i$0158 = $_i$0158 + 1 | 0;
} while (($_i$0158 | 0) != ($3 | 0));
}
$71 = HEAP32[$base + 4 >> 2] | 0;
$73 = HEAP32[$base + 8 >> 2] | 0;
L31 : do if (($71 | 0) > ($3 | 0)) {
$75 = $71 + 1 | 0;
$76 = $26 ? $75 : 0;
$77 = __gcry_mpi_alloc_limb_space($75, $25) | 0;
if (($71 | 0) > 0) {
$80 = HEAP32[$base + 16 >> 2] | 0;
$_i1$0154 = 0;
do {
HEAP32[$77 + ($_i1$0154 << 2) >> 2] = HEAP32[$80 + ($_i1$0154 << 2) >> 2];
$_i1$0154 = $_i1$0154 + 1 | 0;
} while (($_i1$0154 | 0) != ($71 | 0));
}
__gcry_mpih_divrem($77 + ($3 << 2) | 0, 0, $77, $71, $47, $3) | 0;
$bsize$0 = $3;
while (1) {
if (($bsize$0 | 0) <= 0) {
$bp$0 = $77;
$bp_marker$0 = $77;
$bp_nlimbs$0 = $76;
$bsize$1 = $bsize$0;
label = 29;
break L31;
}
$87 = $bsize$0 + -1 | 0;
if (!(HEAP32[$77 + ($87 << 2) >> 2] | 0)) $bsize$0 = $87; else {
$bp$021 = $77;
$bp_marker$018 = $77;
$bp_nlimbs$017 = $76;
$bsize$119 = $bsize$0;
label = 31;
break;
}
}
} else {
$bp$0 = HEAP32[$base + 16 >> 2] | 0;
$bp_marker$0 = 0;
$bp_nlimbs$0 = 0;
$bsize$1 = $71;
label = 29;
} while (0);
if ((label | 0) == 29) if (!$bsize$1) {
HEAP32[$res + 4 >> 2] = 0;
HEAP32[$res + 8 >> 2] = 0;
$bp_marker$2 = $bp_marker$0;
$bp_nlimbs$2 = $bp_nlimbs$0;
$ep_marker$1 = 0;
$ep_nlimbs$1 = 0;
$xp_marker$0 = 0;
$xp_nlimbs$0 = 0;
} else {
$bp$021 = $bp$0;
$bp_marker$018 = $bp_marker$0;
$bp_nlimbs$017 = $bp_nlimbs$0;
$bsize$119 = $bsize$1;
label = 31;
}
do if ((label | 0) == 31) {
if (($28 | 0) == ($bp$021 | 0)) {
if ($bp_marker$018) __gcry_assert_failed(45473, 45484, 515, 45494);
$98 = $26 ? $bsize$119 : 0;
$99 = __gcry_mpi_alloc_limb_space($bsize$119, $25) | 0;
if (($bsize$119 | 0) > 0) {
$_i2$0151 = 0;
do {
HEAP32[$99 + ($_i2$0151 << 2) >> 2] = HEAP32[$28 + ($_i2$0151 << 2) >> 2];
$_i2$0151 = $_i2$0151 + 1 | 0;
} while (($_i2$0151 | 0) != ($bsize$119 | 0));
$bp$1 = $99;
$bp_marker$1 = $99;
$bp_nlimbs$1 = $98;
} else {
$bp$1 = $99;
$bp_marker$1 = $99;
$bp_nlimbs$1 = $98;
}
} else {
$bp$1 = $bp$021;
$bp_marker$1 = $bp_marker$018;
$bp_nlimbs$1 = $bp_nlimbs$017;
}
if (($28 | 0) == ($30 | 0)) {
$106 = $15 ? $1 : 0;
$107 = __gcry_mpi_alloc_limb_space($1, $14) | 0;
if (($1 | 0) > 0) {
$_i3$0148 = 0;
do {
HEAP32[$107 + ($_i3$0148 << 2) >> 2] = HEAP32[$28 + ($_i3$0148 << 2) >> 2];
$_i3$0148 = $_i3$0148 + 1 | 0;
} while (($_i3$0148 | 0) != ($1 | 0));
$ep$0 = $107;
$ep_marker$0 = $107;
$ep_nlimbs$0 = $106;
} else {
$ep$0 = $107;
$ep_marker$0 = $107;
$ep_nlimbs$0 = $106;
}
} else {
$ep$0 = $30;
$ep_marker$0 = 0;
$ep_nlimbs$0 = 0;
}
if ((HEAP32[$res >> 2] | 0) < ($4 | 0)) {
__gcry_mpi_resize($res, $4);
$rp$0 = HEAP32[$27 >> 2] | 0;
} else $rp$0 = $28;
$116 = $4 + 2 | 0;
$117 = $19 ? $116 : 0;
$118 = __gcry_mpi_alloc_limb_space($116, $18) | 0;
HEAP32[$karactx >> 2] = 0;
HEAP32[$karactx + 4 >> 2] = 0;
HEAP32[$karactx + 8 >> 2] = 0;
HEAP32[$karactx + 12 >> 2] = 0;
HEAP32[$karactx + 16 >> 2] = 0;
HEAP32[$karactx + 20 >> 2] = 0;
HEAP32[$karactx + 24 >> 2] = 0;
$123 = ($73 | 0) != 0 & (HEAP32[$ep$0 >> 2] & 1 | 0) != 0;
if ($W$0 >>> 0 > 1) {
if (($bsize$119 | 0) < 16) __gcry_mpih_mul($118, $bp$1, $bsize$119, $bp$1, $bsize$119) | 0; else __gcry_mpih_mul_karatsuba_case($118, $bp$1, $bsize$119, $bp$1, $bsize$119, $karactx);
$126 = $bsize$119 << 1;
if (($126 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($118 + ($3 << 2) | 0, 0, $118, $126, $47, $3) | 0;
$xsize$0 = $3;
} else $xsize$0 = $126;
} else $xsize$0 = 0;
$129 = __gcry_mpi_alloc_limb_space($bsize$119, $14) | 0;
HEAP32[$precomp >> 2] = $129;
HEAP32[$precomp_size >> 2] = $bsize$119;
$130 = ($bsize$119 | 0) > 0;
if ($130) {
$_i4$0146 = 0;
do {
HEAP32[$129 + ($_i4$0146 << 2) >> 2] = HEAP32[$bp$1 + ($_i4$0146 << 2) >> 2];
$_i4$0146 = $_i4$0146 + 1 | 0;
} while (($_i4$0146 | 0) != ($bsize$119 | 0));
}
$131 = $W$0 + -1 | 0;
$132 = 1 << $131;
if (($132 | 0) > 1) {
$134 = ($xsize$0 | 0) < 16;
$135 = $rp$0 + ($3 << 2) | 0;
$base_u$0140 = $129;
$base_u_size$0138 = $bsize$119;
$i$0141 = 1;
$max_u_size$0139 = $bsize$119;
while (1) {
if (($xsize$0 | 0) < ($base_u_size$0138 | 0)) {
if ($134) __gcry_mpih_mul($rp$0, $base_u$0140, $base_u_size$0138, $118, $xsize$0) | 0; else __gcry_mpih_mul_karatsuba_case($rp$0, $base_u$0140, $base_u_size$0138, $118, $xsize$0, $karactx);
$144 = $base_u_size$0138 + $xsize$0 | 0;
if (($144 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($135, 0, $rp$0, $144, $47, $3) | 0;
$rsize$0 = $3;
} else $rsize$0 = $144;
} else {
if (($base_u_size$0138 | 0) < 16) __gcry_mpih_mul($rp$0, $118, $xsize$0, $base_u$0140, $base_u_size$0138) | 0; else __gcry_mpih_mul_karatsuba_case($rp$0, $118, $xsize$0, $base_u$0140, $base_u_size$0138, $karactx);
$142 = $base_u_size$0138 + $xsize$0 | 0;
if (($142 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($135, 0, $rp$0, $142, $47, $3) | 0;
$rsize$0 = $3;
} else $rsize$0 = $142;
}
$base_u$0140 = __gcry_mpi_alloc_limb_space($rsize$0, $14) | 0;
HEAP32[$precomp + ($i$0141 << 2) >> 2] = $base_u$0140;
HEAP32[$precomp_size + ($i$0141 << 2) >> 2] = $rsize$0;
$$max_u_size$0 = ($max_u_size$0139 | 0) < ($rsize$0 | 0) ? $rsize$0 : $max_u_size$0139;
if (($rsize$0 | 0) > 0) {
$_i5$0135 = 0;
do {
HEAP32[$base_u$0140 + ($_i5$0135 << 2) >> 2] = HEAP32[$rp$0 + ($_i5$0135 << 2) >> 2];
$_i5$0135 = $_i5$0135 + 1 | 0;
} while (($_i5$0135 | 0) != ($rsize$0 | 0));
}
$i$0141 = $i$0141 + 1 | 0;
if (($i$0141 | 0) == ($132 | 0)) {
$max_u_size$0$lcssa = $$max_u_size$0;
break;
} else {
$base_u_size$0138 = $rsize$0;
$max_u_size$0139 = $$max_u_size$0;
}
}
} else $max_u_size$0$lcssa = $bsize$119;
$156 = __gcry_mpi_alloc_limb_space($max_u_size$0$lcssa, $14) | 0;
if (($max_u_size$0$lcssa | 0) > 0) _memset($156 | 0, 0, $max_u_size$0$lcssa << 2 | 0) | 0;
$159 = $1 + -1 | 0;
if (($W$0 | 0) == 1) $rsize$1$ph = $bsize$119; else if (($3 | 0) > 0) {
_memset($rp$0 | 0, 0, $3 << 2 | 0) | 0;
$rsize$1$ph = $3;
} else $rsize$1$ph = $3;
if ($130) {
$_i8$0126 = 0;
do {
HEAP32[$rp$0 + ($_i8$0126 << 2) >> 2] = HEAP32[$bp$1 + ($_i8$0126 << 2) >> 2];
$_i8$0126 = $_i8$0126 + 1 | 0;
} while (($_i8$0126 | 0) != ($bsize$119 | 0));
}
$168 = HEAP32[$ep$0 + ($159 << 2) >> 2] | 0;
$174 = $168 >>> 0 < 65536 ? ($168 >>> 0 < 256 ? 0 : 8) : $168 >>> 0 < 16777216 ? 16 : 24;
$179 = 32 - (HEAPU8[45217 + ($168 >>> $174) >> 0] | 0) - $174 | 0;
$183 = 32 - $W$0 | 0;
$184 = ($131 | 0) == 31;
$185 = $w + 4 | 0;
$186 = $u + 4 | 0;
$187 = $u + 8 | 0;
$188 = $w + 8 | 0;
$189 = $u + 12 | 0;
$190 = $w + 12 | 0;
$191 = $w + 16 | 0;
$192 = $u + 16 | 0;
$c$0$ph = 31 - $179 | 0;
$e$0$ph = $168 << $179 << 1;
$i$1$ph = $159;
$j$0$ph = 0;
$rp$1$ph = $rp$0;
$rsize$2$ph = $rsize$1$ph;
$xp$0$ph = $118;
L109 : while (1) {
if (!$e$0$ph) {
$c$0106 = $c$0$ph;
$i$1104 = $i$1$ph;
$j$0105 = $j$0$ph;
while (1) {
$194 = $c$0106 + $j$0105 | 0;
$195 = $i$1104 + -1 | 0;
if (($i$1104 | 0) < 1) {
$c$4$ph = 0;
$e$4$ph = 0;
$j$4$ph = $194;
$rp$1$ph280 = $rp$1$ph;
$rsize$2$ph276 = $rsize$2$ph;
$xp$0$ph278 = $xp$0$ph;
break L109;
}
$198 = HEAP32[$ep$0 + ($195 << 2) >> 2] | 0;
if (!$198) {
$c$0106 = 32;
$i$1104 = $195;
$j$0105 = $194;
} else {
$c$0$lcssa = 32;
$e$0$lcssa = $198;
$i$1$lcssa = $195;
$j$0$lcssa = $194;
break;
}
}
} else {
$c$0$lcssa = $c$0$ph;
$e$0$lcssa = $e$0$ph;
$i$1$lcssa = $i$1$ph;
$j$0$lcssa = $j$0$ph;
}
$205 = $e$0$lcssa >>> 0 < 65536 ? ($e$0$lcssa >>> 0 < 256 ? 0 : 8) : $e$0$lcssa >>> 0 < 16777216 ? 16 : 24;
$210 = 32 - $205 - (HEAPU8[45217 + ($e$0$lcssa >>> $205) >> 0] | 0) | 0;
$211 = $e$0$lcssa << $210;
$212 = $c$0$lcssa - $210 | 0;
$213 = $210 + $j$0$lcssa | 0;
if (($212 | 0) < ($W$0 | 0)) {
$218 = $i$1$lcssa + -1 | 0;
if (($i$1$lcssa | 0) < 1) {
$$lcssa281 = $210;
$$lcssa282 = $211;
$$lcssa283 = $212;
$$lcssa284 = $213;
$c$0$lcssa$lcssa = $c$0$lcssa;
$j$0$lcssa$lcssa = $j$0$lcssa;
$rp$1$ph$lcssa279 = $rp$1$ph;
$rsize$2$ph$lcssa275 = $rsize$2$ph;
$xp$0$ph$lcssa277 = $xp$0$ph;
label = 95;
break;
}
$222 = HEAP32[$ep$0 + ($218 << 2) >> 2] | 0;
$223 = $212 + $183 | 0;
$c$1 = $223;
$e$1 = $222 << $W$0 - $212;
$e0$0 = $222 >>> $223 | $211 >>> $183;
$i$2 = $218;
} else {
$c$1 = $212 - $W$0 | 0;
$e$1 = $211 << $W$0;
$e0$0 = $211 >>> $183;
$i$2 = $i$1$lcssa;
}
$229 = $e0$0 & 0 - $e0$0;
$235 = $229 >>> 0 < 65536 ? ($229 >>> 0 < 256 ? 0 : 8) : $229 >>> 0 < 16777216 ? 16 : 24;
$241 = (HEAPU8[45217 + ($229 >>> $235) >> 0] | 0) + -1 + $235 | 0;
$243 = $e0$0 >>> $241 >>> 1;
$244 = $213 + $W$0 | 0;
if (($244 | 0) == ($241 | 0)) {
$rp$2$lcssa = $rp$1$ph;
$rsize$3$lcssa = $rsize$2$ph;
$xp$1$lcssa = $xp$0$ph;
} else {
$j$1113 = $244 - $241 | 0;
$rp$2115 = $rp$1$ph;
$rsize$3112 = $rsize$2$ph;
$xp$1114 = $xp$0$ph;
while (1) {
if (($rsize$3112 | 0) < 16) __gcry_mpih_mul($xp$1114, $rp$2115, $rsize$3112, $rp$2115, $rsize$3112) | 0; else __gcry_mpih_mul_karatsuba_case($xp$1114, $rp$2115, $rsize$3112, $rp$2115, $rsize$3112, $karactx);
$248 = $rsize$3112 << 1;
if (($248 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($xp$1114 + ($3 << 2) | 0, 0, $xp$1114, $248, $47, $3) | 0;
$storemerge$i$6 = $3;
} else $storemerge$i$6 = $248;
$j$1113 = $j$1113 + -1 | 0;
if (!$j$1113) {
$rp$2$lcssa = $xp$1114;
$rsize$3$lcssa = $storemerge$i$6;
$xp$1$lcssa = $rp$2115;
break;
} else {
$rp$2115$phi = $xp$1114;
$rsize$3112 = $storemerge$i$6;
$xp$1114 = $rp$2115;
$rp$2115 = $rp$2115$phi;
}
}
}
do if ($184) {
$base_u_size$1$lcssa197 = 0;
label = 91;
} else {
$base_u_size$1121 = 0;
$k$0122 = 0;
while (1) {
$254 = HEAP32[$precomp_size + ($k$0122 << 2) >> 2] | 0;
HEAP32[$185 >> 2] = $254;
HEAP32[$w >> 2] = $254;
HEAP32[$186 >> 2] = $254;
HEAP32[$u >> 2] = $254;
HEAP32[$187 >> 2] = 0;
HEAP32[$188 >> 2] = 0;
HEAP32[$189 >> 2] = 0;
HEAP32[$190 >> 2] = 0;
HEAP32[$191 >> 2] = $156;
HEAP32[$192 >> 2] = HEAP32[$precomp + ($k$0122 << 2) >> 2];
$257 = ($k$0122 | 0) == ($243 | 0);
__gcry_mpi_set_cond($w, $u, $257 & 1) | 0;
$260 = ($257 ? $254 : 0) | $base_u_size$1121;
$k$0122 = $k$0122 + 1 | 0;
if (($k$0122 | 0) >= ($132 | 0)) {
$$lcssa274 = $260;
break;
} else $base_u_size$1121 = $260;
}
if (($$lcssa274 | 0) < 16) {
$base_u_size$1$lcssa197 = $$lcssa274;
label = 91;
break;
}
__gcry_mpih_mul_karatsuba_case($xp$1$lcssa, $rp$2$lcssa, $rsize$3$lcssa, $156, $$lcssa274, $karactx);
$base_u_size$1$lcssa196 = $$lcssa274;
} while (0);
if ((label | 0) == 91) {
label = 0;
__gcry_mpih_mul($xp$1$lcssa, $rp$2$lcssa, $rsize$3$lcssa, $156, $base_u_size$1$lcssa197) | 0;
$base_u_size$1$lcssa196 = $base_u_size$1$lcssa197;
}
$264 = $base_u_size$1$lcssa196 + $rsize$3$lcssa | 0;
if (($264 | 0) <= ($3 | 0)) {
$c$0$ph = $c$1;
$e$0$ph = $e$1;
$i$1$ph = $i$2;
$j$0$ph = $241;
$rp$1$ph = $xp$1$lcssa;
$rsize$2$ph = $264;
$xp$0$ph = $rp$2$lcssa;
continue;
}
__gcry_mpih_divrem($xp$1$lcssa + ($3 << 2) | 0, 0, $xp$1$lcssa, $264, $47, $3) | 0;
$c$0$ph = $c$1;
$e$0$ph = $e$1;
$i$1$ph = $i$2;
$j$0$ph = $241;
$rp$1$ph = $xp$1$lcssa;
$rsize$2$ph = $3;
$xp$0$ph = $rp$2$lcssa;
}
if ((label | 0) == 95) {
$268 = $$lcssa282 >>> (32 - $$lcssa283 | 0);
if (($c$0$lcssa$lcssa | 0) == ($$lcssa281 | 0)) {
$c$4$ph = 0;
$e$4$ph = $268;
$j$4$ph = $$lcssa284;
$rp$1$ph280 = $rp$1$ph$lcssa279;
$rsize$2$ph276 = $rsize$2$ph$lcssa275;
$xp$0$ph278 = $xp$0$ph$lcssa277;
} else {
$272 = $268 & 0 - $268;
$278 = $272 >>> 0 < 65536 ? ($272 >>> 0 < 256 ? 0 : 8) : $272 >>> 0 < 16777216 ? 16 : 24;
$284 = $278 + -1 + (HEAPU8[45217 + ($272 >>> $278) >> 0] | 0) | 0;
$c$4$ph = $284;
$e$4$ph = $268 >>> $284;
$j$4$ph = $c$0$lcssa$lcssa + $j$0$lcssa$lcssa - $284 | 0;
$rp$1$ph280 = $rp$1$ph$lcssa279;
$rsize$2$ph276 = $rsize$2$ph$lcssa275;
$xp$0$ph278 = $xp$0$ph$lcssa277;
}
}
if (!$j$4$ph) {
$rp$5$lcssa = $rp$1$ph280;
$rsize$6$lcssa = $rsize$2$ph276;
$xp$4$lcssa = $xp$0$ph278;
} else {
$j$497 = $j$4$ph;
$rp$599 = $rp$1$ph280;
$rsize$696 = $rsize$2$ph276;
$xp$498 = $xp$0$ph278;
while (1) {
$j$497 = $j$497 + -1 | 0;
if (($rsize$696 | 0) < 16) __gcry_mpih_mul($xp$498, $rp$599, $rsize$696, $rp$599, $rsize$696) | 0; else __gcry_mpih_mul_karatsuba_case($xp$498, $rp$599, $rsize$696, $rp$599, $rsize$696, $karactx);
$290 = $rsize$696 << 1;
if (($290 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($xp$498 + ($3 << 2) | 0, 0, $xp$498, $290, $47, $3) | 0;
$rsize$6$be = $3;
} else $rsize$6$be = $290;
if (!$j$497) {
$rp$5$lcssa = $xp$498;
$rsize$6$lcssa = $rsize$6$be;
$xp$4$lcssa = $rp$599;
break;
} else {
$rp$599$phi = $xp$498;
$rsize$696 = $rsize$6$be;
$xp$498 = $rp$599;
$rp$599 = $rp$599$phi;
}
}
}
do if (!$e$4$ph) {
$rp$7 = $rp$5$lcssa;
$rsize$8 = $rsize$6$lcssa;
} else {
do if ($184) {
$base_u_size$2$lcssa199 = 0;
label = 109;
} else {
$295 = $w + 4 | 0;
$296 = $u + 4 | 0;
$297 = $u + 8 | 0;
$298 = $w + 8 | 0;
$299 = $u + 12 | 0;
$300 = $w + 12 | 0;
$301 = $w + 16 | 0;
$302 = $u + 16 | 0;
$303 = $e$4$ph >>> 1;
$base_u_size$291 = 0;
$k$192 = 0;
while (1) {
$305 = HEAP32[$precomp_size + ($k$192 << 2) >> 2] | 0;
HEAP32[$295 >> 2] = $305;
HEAP32[$w >> 2] = $305;
HEAP32[$296 >> 2] = $305;
HEAP32[$u >> 2] = $305;
HEAP32[$297 >> 2] = 0;
HEAP32[$298 >> 2] = 0;
HEAP32[$299 >> 2] = 0;
HEAP32[$300 >> 2] = 0;
HEAP32[$301 >> 2] = $156;
HEAP32[$302 >> 2] = HEAP32[$precomp + ($k$192 << 2) >> 2];
$308 = ($k$192 | 0) == ($303 | 0);
__gcry_mpi_set_cond($w, $u, $308 & 1) | 0;
$311 = ($308 ? $305 : 0) | $base_u_size$291;
$k$192 = $k$192 + 1 | 0;
if (($k$192 | 0) >= ($132 | 0)) {
$$lcssa268 = $311;
break;
} else $base_u_size$291 = $311;
}
if (($$lcssa268 | 0) < 16) {
$base_u_size$2$lcssa199 = $$lcssa268;
label = 109;
break;
}
__gcry_mpih_mul_karatsuba_case($xp$4$lcssa, $rp$5$lcssa, $rsize$6$lcssa, $156, $$lcssa268, $karactx);
$base_u_size$2$lcssa198 = $$lcssa268;
} while (0);
if ((label | 0) == 109) {
__gcry_mpih_mul($xp$4$lcssa, $rp$5$lcssa, $rsize$6$lcssa, $156, $base_u_size$2$lcssa199) | 0;
$base_u_size$2$lcssa198 = $base_u_size$2$lcssa199;
}
$315 = $base_u_size$2$lcssa198 + $rsize$6$lcssa | 0;
if (($315 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($xp$4$lcssa + ($3 << 2) | 0, 0, $xp$4$lcssa, $315, $47, $3) | 0;
$rsize$7$ph = $3;
} else $rsize$7$ph = $315;
if (!$c$4$ph) {
$rp$7 = $xp$4$lcssa;
$rsize$8 = $rsize$7$ph;
break;
} else {
$c$587 = $c$4$ph;
$rp$688 = $xp$4$lcssa;
$rsize$785 = $rsize$7$ph;
$xp$586 = $rp$5$lcssa;
}
while (1) {
if (($rsize$785 | 0) < 16) __gcry_mpih_mul($xp$586, $rp$688, $rsize$785, $rp$688, $rsize$785) | 0; else __gcry_mpih_mul_karatsuba_case($xp$586, $rp$688, $rsize$785, $rp$688, $rsize$785, $karactx);
$320 = $rsize$785 << 1;
if (($320 | 0) > ($3 | 0)) {
__gcry_mpih_divrem($xp$586 + ($3 << 2) | 0, 0, $xp$586, $320, $47, $3) | 0;
$storemerge$i$14 = $3;
} else $storemerge$i$14 = $320;
$c$587 = $c$587 + -1 | 0;
if (!$c$587) {
$rp$7 = $xp$586;
$rsize$8 = $storemerge$i$14;
break;
} else {
$rp$688$phi = $xp$586;
$rsize$785 = $storemerge$i$14;
$xp$586 = $rp$688;
$rp$688 = $rp$688$phi;
}
}
} while (0);
$325 = HEAP32[$27 >> 2] | 0;
do if ($64) {
$326 = __gcry_mpih_lshift($325, $rp$7, $rsize$8, $63) | 0;
$327 = HEAP32[$27 >> 2] | 0;
if (!$326) {
$rp$8 = $327;
$rsize$9 = $rsize$8;
break;
}
HEAP32[$327 + ($rsize$8 << 2) >> 2] = $326;
$rp$8 = $327;
$rsize$9 = $rsize$8 + 1 | 0;
} else {
if (($325 | 0) == ($rp$7 | 0)) {
$rp$8 = $rp$7;
$rsize$9 = $rsize$8;
break;
}
if (($rsize$8 | 0) > 0) $_i21$082 = 0; else {
$rp$8 = $325;
$rsize$9 = $rsize$8;
break;
}
do {
HEAP32[$325 + ($_i21$082 << 2) >> 2] = HEAP32[$rp$7 + ($_i21$082 << 2) >> 2];
$_i21$082 = $_i21$082 + 1 | 0;
} while (($_i21$082 | 0) != ($rsize$8 | 0));
$rp$8 = $325;
$rsize$9 = $rsize$8;
} while (0);
if (($rsize$9 | 0) < ($3 | 0)) $rsize$10 = $rsize$9; else {
__gcry_mpih_divrem($rp$8 + ($3 << 2) | 0, 0, $rp$8, $rsize$9, $47, $3) | 0;
$rsize$10 = $3;
}
if ($64) {
__gcry_mpih_rshift($rp$8, $rp$8, $rsize$10, $63) | 0;
$rsize$11 = $rsize$10;
} else $rsize$11 = $rsize$10;
while (1) {
if (($rsize$11 | 0) <= 0) {
$rsize$11$lcssa = $rsize$11;
break;
}
$340 = $rsize$11 + -1 | 0;
if (!(HEAP32[$rp$8 + ($340 << 2) >> 2] | 0)) $rsize$11 = $340; else {
$rsize$11$lcssa = $rsize$11;
break;
}
}
__gcry_mpih_release_karatsuba_ctx($karactx);
if (!$184) if ($15) {
$i$481$us = 0;
do {
__gcry_mpi_free_limb_space(HEAP32[$precomp + ($i$481$us << 2) >> 2] | 0, HEAP32[$precomp_size + ($i$481$us << 2) >> 2] | 0);
$i$481$us = $i$481$us + 1 | 0;
} while (($i$481$us | 0) < ($132 | 0));
} else {
$i$481 = 0;
do {
__gcry_mpi_free_limb_space(HEAP32[$precomp + ($i$481 << 2) >> 2] | 0, 0);
$i$481 = $i$481 + 1 | 0;
} while (($i$481 | 0) < ($132 | 0));
}
__gcry_mpi_free_limb_space($156, $15 ? $max_u_size$0$lcssa : 0);
L206 : do if ($123 & ($rsize$11$lcssa | 0) != 0) {
if ($64) __gcry_mpih_rshift($47, $47, $3, $63) | 0;
$356 = __gcry_mpih_sub_n($rp$8, $47, $rp$8, $rsize$11$lcssa) | 0;
L211 : do if (($3 | 0) == ($rsize$11$lcssa | 0)) $storemerge = $3; else {
$358 = $3 - $rsize$11$lcssa | 0;
$359 = $rp$8 + ($rsize$11$lcssa << 2) | 0;
$360 = $47 + ($rsize$11$lcssa << 2) | 0;
$361 = $360 + 4 | 0;
$362 = HEAP32[$360 >> 2] | 0;
$363 = $362 - $356 | 0;
$364 = $359 + 4 | 0;
HEAP32[$359 >> 2] = $363;
if ($363 >>> 0 > $362 >>> 0) {
$$01$i$i = $358;
$$02$i$i = $361;
$$04$i$i = $364;
while (1) {
$366 = $$01$i$i + -1 | 0;
if (!$366) {
$storemerge = $3;
break L211;
}
$368 = $$02$i$i + 4 | 0;
$369 = HEAP32[$$02$i$i >> 2] | 0;
$371 = $$04$i$i + 4 | 0;
HEAP32[$$04$i$i >> 2] = $369 + -1;
if (!$369) {
$$01$i$i = $366;
$$02$i$i = $368;
$$04$i$i = $371;
} else {
$$1$i$i = $366;
$$13$i$i = $368;
$$15$i$i = $371;
break;
}
}
} else {
$$1$i$i = $358;
$$13$i$i = $361;
$$15$i$i = $364;
}
if (!(($$15$i$i | 0) != ($$13$i$i | 0) & ($$1$i$i | 0) > 1)) {
$storemerge = $3;
break;
}
$375 = $$1$i$i + -1 | 0;
$i$011$i$i = 0;
do {
HEAP32[$$15$i$i + ($i$011$i$i << 2) >> 2] = HEAP32[$$13$i$i + ($i$011$i$i << 2) >> 2];
$i$011$i$i = $i$011$i$i + 1 | 0;
} while (($i$011$i$i | 0) != ($375 | 0));
$storemerge = $3;
} while (0);
while (1) {
if (($storemerge | 0) <= 0) {
$rsign$0 = $6;
$rsize$12 = $storemerge;
break L206;
}
$381 = $storemerge + -1 | 0;
if (!(HEAP32[$rp$8 + ($381 << 2) >> 2] | 0)) $storemerge = $381; else {
$rsign$0 = $6;
$rsize$12 = $storemerge;
break;
}
}
} else {
$rsign$0 = 0;
$rsize$12 = $rsize$11$lcssa;
} while (0);
if ((HEAP32[$27 >> 2] | 0) == ($rp$8 | 0)) {
HEAP32[$res + 4 >> 2] = $rsize$12;
HEAP32[$res + 8 >> 2] = $rsign$0;
$bp_marker$2 = $bp_marker$1;
$bp_nlimbs$2 = $bp_nlimbs$1;
$ep_marker$1 = $ep_marker$0;
$ep_nlimbs$1 = $ep_nlimbs$0;
$xp_marker$0 = $118;
$xp_nlimbs$0 = $117;
break;
} else __gcry_assert_failed(45509, 45484, 786, 45494);
} while (0);
if ($47) __gcry_mpi_free_limb_space($47, $46);
if ($bp_marker$2) __gcry_mpi_free_limb_space($bp_marker$2, $bp_nlimbs$2);
if ($ep_marker$1) __gcry_mpi_free_limb_space($ep_marker$1, $ep_nlimbs$1);
if (!$xp_marker$0) {
STACKTOP = sp;
return;
}
__gcry_mpi_free_limb_space($xp_marker$0, $xp_nlimbs$0);
STACKTOP = sp;
return;
}
function __gcry_rngcsprng_randomize($buffer, $length, $level) {
$buffer = $buffer | 0;
$length = $length | 0;
$level = $level | 0;
var $$$02$i = 0, $$$i = 0, $$$i$lcssa = 0, $$0$i = 0, $$02$i = 0, $$045 = 0, $$1$lcssa$i = 0, $$118$i = 0, $$lcssa14$i = 0, $$pre$phi$i$iZ2D = 0, $100 = 0, $101 = 0, $102 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $120 = 0, $125 = 0, $139 = 0, $140 = 0, $141 = 0, $142 = 0, $148 = 0, $149 = 0, $150 = 0, $151 = 0, $156 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $179 = 0, $18 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $19 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $20 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $288 = 0, $291 = 0, $292 = 0, $3 = 0, $308 = 0, $31 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $338 = 0, $342 = 0, $353 = 0, $355 = 0, $356 = 0, $357 = 0, $363 = 0, $365 = 0, $366 = 0, $369 = 0, $372 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $4 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $433 = 0, $434 = 0, $435 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $45 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $46 = 0, $463 = 0, $465 = 0, $469 = 0, $47 = 0, $48 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $66 = 0, $68 = 0, $70 = 0, $73 = 0, $74 = 0, $76 = 0, $82 = 0, $83 = 0, $86 = 0, $90 = 0, $96 = 0, $99 = 0, $buffer$i$i = 0, $dp$017$i = 0, $i$015$i = 0, $my_pid2$i = 0, $p$02$us$i$i$i = 0, $p$036 = 0, $pool_balance$promoted$i = 0, $sb$i$i = 0, $sp$016$i = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer18 = 0, $vararg_buffer20 = 0, $vararg_buffer24 = 0, $vararg_buffer26 = 0, $vararg_buffer28 = 0, $vararg_buffer3 = 0, $vararg_buffer30 = 0, $vararg_buffer32 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer38 = 0, $vararg_buffer40 = 0, $vararg_buffer5 = 0, $vararg_buffer9 = 0, $vararg_ptr23 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 832 | 0;
$vararg_buffer40 = sp + 136 | 0;
$vararg_buffer38 = sp + 128 | 0;
$vararg_buffer36 = sp + 120 | 0;
$vararg_buffer34 = sp + 112 | 0;
$vararg_buffer32 = sp + 104 | 0;
$vararg_buffer30 = sp + 96 | 0;
$vararg_buffer28 = sp + 88 | 0;
$vararg_buffer26 = sp + 80 | 0;
$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_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$sb$i$i = sp + 144 | 0;
$buffer$i$i = sp + 224 | 0;
$my_pid2$i = sp + 140 | 0;
_initialize();
$3 = $level >>> 0 > 1 & (HEAP32[17555] | 0) != 0 ? 1 : $level & 3;
$4 = _gpgrt_lock_lock(12520) | 0;
if ($4) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($4) | 0;
__gcry_log_fatal(49833, $vararg_buffer);
}
HEAP32[17542] = 1;
if ($3 >>> 0 > 1) {
HEAP32[17553] = (HEAP32[17553] | 0) + $length;
HEAP32[17552] = (HEAP32[17552] | 0) + 1;
} else {
HEAP32[17551] = (HEAP32[17551] | 0) + $length;
HEAP32[17550] = (HEAP32[17550] | 0) + 1;
}
L8 : do if ($length) {
$17 = $sb$i$i + 12 | 0;
$18 = $sb$i$i + 36 | 0;
$19 = ($3 | 0) != 2;
$20 = ($3 | 0) == 2;
$$045 = $length;
$463 = $length >>> 0 > 600 ? 600 : $length;
$p$036 = $buffer;
L10 : while (1) {
$$0$i = $p$036;
$$02$i = $463;
while (1) {
HEAP32[$my_pid2$i >> 2] = _getpid() | 0;
if ((HEAP32[3141] | 0) == -1) HEAP32[3141] = HEAP32[$my_pid2$i >> 2];
if ((HEAP32[3141] | 0) != (HEAP32[$my_pid2$i >> 2] | 0)) {
HEAP32[3141] = HEAP32[$my_pid2$i >> 2];
$31 = HEAP32[3141] | 0;
if (!(HEAP32[17542] | 0)) {
label = 14;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$45 = HEAP32[17557] | 0;
$46 = $45 + 1 | 0;
HEAP32[17557] = $46;
$47 = HEAP32[17556] | 0;
$48 = $47 + $45 | 0;
HEAP8[$48 >> 0] = HEAP8[$48 >> 0] ^ $31 & 255;
if ($46 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($47);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$55 = HEAP32[17557] | 0;
$57 = HEAP32[17556] | 0;
} else {
$55 = $46;
$57 = $47;
}
$54 = $55 + 1 | 0;
HEAP32[17557] = $54;
$56 = $57 + $55 | 0;
HEAP8[$56 >> 0] = HEAP8[$56 >> 0] ^ $31 >>> 8 & 255;
if ($54 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($57);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$405 = HEAP32[17557] | 0;
$407 = HEAP32[17556] | 0;
} else {
$405 = $54;
$407 = $57;
}
$404 = $405 + 1 | 0;
HEAP32[17557] = $404;
$406 = $407 + $405 | 0;
HEAP8[$406 >> 0] = HEAP8[$406 >> 0] ^ $31 >>> 16 & 255;
if ($404 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($407);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$413 = HEAP32[17557] | 0;
$414 = $413 + 1 | 0;
HEAP32[17557] = $414;
$415 = HEAP32[17556] | 0;
$416 = $415 + $413 | 0;
HEAP8[$416 >> 0] = HEAP8[$416 >> 0] ^ $31 >>> 24 & 255;
if ($414 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($415);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
HEAP32[17558] = 0;
}
if (!(HEAP32[17542] | 0)) {
label = 19;
break L10;
}
if ($$02$i >>> 0 > 600) {
label = 21;
break L10;
}
L35 : do if (!(HEAP32[17543] | 0)) {
$66 = HEAP32[17559] | 0;
L37 : do if ($66) {
$68 = _open($66, 0, $vararg_buffer3) | 0;
if (($68 | 0) == -1) {
$70 = ___errno_location() | 0;
if ((HEAP32[$70 >> 2] | 0) == 2) {
HEAP32[17560] = 1;
break;
} else {
$73 = __gcry_gettext(50135) | 0;
$74 = HEAP32[17559] | 0;
$76 = _strerror(HEAP32[$70 >> 2] | 0) | 0;
HEAP32[$vararg_buffer5 >> 2] = $74;
HEAP32[$vararg_buffer5 + 4 >> 2] = $76;
__gcry_log_info($73, $vararg_buffer5);
break;
}
}
if (_lock_seed_file($68, HEAP32[17559] | 0, 0) | 0) {
_close($68) | 0;
break;
}
if (_fstat($68, $sb$i$i) | 0) {
$82 = __gcry_gettext(50156) | 0;
$83 = HEAP32[17559] | 0;
$86 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer9 >> 2] = $83;
HEAP32[$vararg_buffer9 + 4 >> 2] = $86;
__gcry_log_info($82, $vararg_buffer9);
_close($68) | 0;
break;
}
if ((HEAP32[$17 >> 2] & 61440 | 0) != 32768) {
$90 = __gcry_gettext(50177) | 0;
HEAP32[$vararg_buffer13 >> 2] = HEAP32[17559];
__gcry_log_info($90, $vararg_buffer13);
_close($68) | 0;
break;
}
switch (HEAP32[$18 >> 2] | 0) {
case 0:
{
__gcry_log_info(__gcry_gettext(50215) | 0, $vararg_buffer16);
_close($68) | 0;
HEAP32[17560] = 1;
break L37;
break;
}
case 600:
{
L57 : while (1) {
switch (_read($68, $buffer$i$i, 600) | 0) {
case 600:
{
break L57;
break;
}
case -1:
break;
default:
{
label = 38;
break L10;
}
}
$96 = ___errno_location() | 0;
if ((HEAP32[$96 >> 2] | 0) != 4) {
$$pre$phi$i$iZ2D = $96;
label = 40;
break L10;
}
}
_close($68) | 0;
if (!(HEAP32[17542] | 0)) {
label = 42;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 600;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$120 = 599;
$p$02$us$i$i$i = $buffer$i$i;
while (1) {
$110 = HEAP8[$p$02$us$i$i$i >> 0] | 0;
$111 = HEAP32[17557] | 0;
$112 = $111 + 1 | 0;
HEAP32[17557] = $112;
$113 = HEAP32[17556] | 0;
$114 = $113 + $111 | 0;
HEAP8[$114 >> 0] = HEAP8[$114 >> 0] ^ $110;
if ($112 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($113);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = ($120 | 0) == 0 & 1;
}
if (!$120) break; else {
$120 = $120 + -1 | 0;
$p$02$us$i$i$i = $p$02$us$i$i$i + 1 | 0;
}
}
$125 = _getpid() | 0;
if (!(HEAP32[17542] | 0)) {
label = 48;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$139 = HEAP32[17557] | 0;
$140 = $139 + 1 | 0;
HEAP32[17557] = $140;
$141 = HEAP32[17556] | 0;
$142 = $141 + $139 | 0;
HEAP8[$142 >> 0] = HEAP8[$142 >> 0] ^ $125 & 255;
if ($140 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($141);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$149 = HEAP32[17557] | 0;
$151 = HEAP32[17556] | 0;
} else {
$149 = $140;
$151 = $141;
}
$148 = $149 + 1 | 0;
HEAP32[17557] = $148;
$150 = $151 + $149 | 0;
HEAP8[$150 >> 0] = HEAP8[$150 >> 0] ^ $125 >>> 8 & 255;
if ($148 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($151);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$257 = HEAP32[17557] | 0;
$259 = HEAP32[17556] | 0;
} else {
$257 = $148;
$259 = $151;
}
$256 = $257 + 1 | 0;
HEAP32[17557] = $256;
$258 = $259 + $257 | 0;
HEAP8[$258 >> 0] = HEAP8[$258 >> 0] ^ $125 >>> 16 & 255;
if ($256 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($259);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$265 = HEAP32[17557] | 0;
$266 = $265 + 1 | 0;
HEAP32[17557] = $266;
$267 = HEAP32[17556] | 0;
$268 = $267 + $265 | 0;
HEAP8[$268 >> 0] = HEAP8[$268 >> 0] ^ $125 >>> 24 & 255;
if ($266 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($267);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
$156 = _time(0) | 0;
if (!(HEAP32[17542] | 0)) {
label = 52;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$161 = HEAP32[17557] | 0;
$162 = $161 + 1 | 0;
HEAP32[17557] = $162;
$163 = HEAP32[17556] | 0;
$164 = $163 + $161 | 0;
HEAP8[$164 >> 0] = HEAP8[$164 >> 0] ^ $156 & 255;
if ($162 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($163);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$171 = HEAP32[17557] | 0;
$173 = HEAP32[17556] | 0;
} else {
$171 = $162;
$173 = $163;
}
$170 = $171 + 1 | 0;
HEAP32[17557] = $170;
$172 = $173 + $171 | 0;
HEAP8[$172 >> 0] = HEAP8[$172 >> 0] ^ $156 >>> 8 & 255;
if ($170 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($173);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$230 = HEAP32[17557] | 0;
$232 = HEAP32[17556] | 0;
} else {
$230 = $170;
$232 = $173;
}
$229 = $230 + 1 | 0;
HEAP32[17557] = $229;
$231 = $232 + $230 | 0;
HEAP8[$231 >> 0] = HEAP8[$231 >> 0] ^ $156 >>> 16 & 255;
if ($229 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($232);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$239 = HEAP32[17557] | 0;
$240 = $239 + 1 | 0;
HEAP32[17557] = $240;
$241 = HEAP32[17556] | 0;
$242 = $241 + $239 | 0;
HEAP8[$242 >> 0] = HEAP8[$242 >> 0] ^ $156 >>> 24 & 255;
if ($240 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($241);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
$179 = _clock() | 0;
if (!(HEAP32[17542] | 0)) {
label = 56;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$184 = HEAP32[17557] | 0;
$185 = $184 + 1 | 0;
HEAP32[17557] = $185;
$186 = HEAP32[17556] | 0;
$187 = $186 + $184 | 0;
HEAP8[$187 >> 0] = HEAP8[$187 >> 0] ^ $179 & 255;
if ($185 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($186);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$194 = HEAP32[17557] | 0;
$196 = HEAP32[17556] | 0;
} else {
$194 = $185;
$196 = $186;
}
$193 = $194 + 1 | 0;
HEAP32[17557] = $193;
$195 = $196 + $194 | 0;
HEAP8[$195 >> 0] = HEAP8[$195 >> 0] ^ $179 >>> 8 & 255;
if ($193 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($196);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$206 = HEAP32[17557] | 0;
$208 = HEAP32[17556] | 0;
} else {
$206 = $193;
$208 = $196;
}
$205 = $206 + 1 | 0;
HEAP32[17557] = $205;
$207 = $208 + $206 | 0;
HEAP8[$207 >> 0] = HEAP8[$207 >> 0] ^ $179 >>> 16 & 255;
if ($205 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($208);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$215 = HEAP32[17557] | 0;
$216 = $215 + 1 | 0;
HEAP32[17557] = $216;
$217 = HEAP32[17556] | 0;
$218 = $217 + $215 | 0;
HEAP8[$218 >> 0] = HEAP8[$218 >> 0] ^ $179 >>> 24 & 255;
if ($216 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($217);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
if (!(HEAP32[17561] | 0)) {
label = 60;
break L10;
}
if ((__gcry_rndlinux_gather_random(3, 0, 16, 0) | 0) < 0) {
label = 62;
break L10;
}
HEAP32[17560] = 1;
HEAP32[17543] = 1;
break L35;
break;
}
default:
{
__gcry_log_info(__gcry_gettext(50248) | 0, $vararg_buffer18);
_close($68) | 0;
break L37;
}
}
} while (0);
} while (0);
if (!($19 | (HEAP32[17562] | 0) != 0)) {
HEAP32[17563] = 0;
$$$02$i = $$02$i >>> 0 < 16 ? 16 : $$02$i;
if (!(HEAP32[17561] | 0)) {
label = 85;
break L10;
}
if ((__gcry_rndlinux_gather_random(3, 4, $$$02$i, 2) | 0) < 0) {
label = 87;
break L10;
}
HEAP32[17563] = (HEAP32[17563] | 0) + $$$02$i;
HEAP32[17562] = 1;
}
if ($20) {
$288 = HEAP32[17563] | 0;
if ($288 >>> 0 < $$02$i >>> 0) {
if (($288 | 0) < 0) {
HEAP32[17563] = 0;
$292 = 0;
} else $292 = $288;
$291 = $$02$i - $292 | 0;
if ($291 >>> 0 > 600) {
label = 94;
break L10;
}
if (!(HEAP32[17561] | 0)) {
label = 96;
break L10;
}
if ((__gcry_rndlinux_gather_random(3, 4, $291, 2) | 0) < 0) {
label = 98;
break L10;
}
HEAP32[17563] = (HEAP32[17563] | 0) + $291;
}
}
while (1) {
if (HEAP32[17543] | 0) break;
HEAP32[17545] = (HEAP32[17545] | 0) + 1;
if (!(HEAP32[17561] | 0)) {
label = 102;
break L10;
}
if ((__gcry_rndlinux_gather_random(3, 3, 120, 1) | 0) < 0) {
label = 104;
break L10;
}
}
_do_fast_random_poll();
$308 = HEAP32[3141] | 0;
if (!(HEAP32[17542] | 0)) {
label = 106;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$322 = HEAP32[17557] | 0;
$323 = $322 + 1 | 0;
HEAP32[17557] = $323;
$324 = HEAP32[17556] | 0;
$325 = $324 + $322 | 0;
HEAP8[$325 >> 0] = HEAP8[$325 >> 0] ^ $308 & 255;
if ($323 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($324);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$332 = HEAP32[17557] | 0;
$334 = HEAP32[17556] | 0;
} else {
$332 = $323;
$334 = $324;
}
$331 = $332 + 1 | 0;
HEAP32[17557] = $331;
$333 = $334 + $332 | 0;
HEAP8[$333 >> 0] = HEAP8[$333 >> 0] ^ $308 >>> 8 & 255;
if ($331 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($334);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$425 = HEAP32[17557] | 0;
$427 = HEAP32[17556] | 0;
} else {
$425 = $331;
$427 = $334;
}
$424 = $425 + 1 | 0;
HEAP32[17557] = $424;
$426 = $427 + $425 | 0;
HEAP8[$426 >> 0] = HEAP8[$426 >> 0] ^ $308 >>> 16 & 255;
if ($424 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($427);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$433 = HEAP32[17557] | 0;
$434 = $433 + 1 | 0;
HEAP32[17557] = $434;
$338 = HEAP32[17556] | 0;
$435 = $338 + $433 | 0;
HEAP8[$435 >> 0] = HEAP8[$435 >> 0] ^ $308 >>> 24 & 255;
if ($434 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($338);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
} else if (!(HEAP32[17558] | 0)) {
_mix_pool($338);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
}
$342 = HEAP32[17556] | 0;
$dp$017$i = HEAP32[17564] | 0;
$i$015$i = 0;
$sp$016$i = $342;
while (1) {
HEAP32[$dp$017$i >> 2] = (HEAP32[$sp$016$i >> 2] | 0) + -1515870811;
$i$015$i = $i$015$i + 1 | 0;
if (($i$015$i | 0) == 150) break; else {
$dp$017$i = $dp$017$i + 4 | 0;
$sp$016$i = $sp$016$i + 4 | 0;
}
}
_mix_pool($342);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
_mix_pool(HEAP32[17564] | 0);
HEAP32[17549] = (HEAP32[17549] | 0) + 1;
$353 = $$02$i + -1 | 0;
if (!$$02$i) {
$$1$lcssa$i = $$0$i;
$$lcssa14$i = $353;
$366 = HEAP32[17563] | 0;
} else {
$355 = HEAP32[17564] | 0;
$pool_balance$promoted$i = HEAP32[17563] | 0;
$$118$i = $$0$i;
$357 = HEAP32[17565] | 0;
$363 = $353;
while (1) {
$356 = $357 + 1 | 0;
HEAP8[$$118$i >> 0] = HEAP8[$355 + $357 >> 0] | 0;
$$$i = $356 >>> 0 > 599 ? 0 : $356;
if (!$363) {
$$$i$lcssa = $$$i;
break;
} else {
$$118$i = $$118$i + 1 | 0;
$357 = $$$i;
$363 = $363 + -1 | 0;
}
}
$365 = $pool_balance$promoted$i - $$02$i | 0;
HEAP32[17565] = $$$i$lcssa;
HEAP32[17563] = $365;
$$1$lcssa$i = $$0$i + $$02$i | 0;
$$lcssa14$i = -1;
$366 = $365;
}
if (($366 | 0) < 0) HEAP32[17563] = 0;
_memset(HEAP32[17564] | 0, 0, 600) | 0;
$369 = _getpid() | 0;
if (($369 | 0) == (HEAP32[$my_pid2$i >> 2] | 0)) break;
$372 = _getpid() | 0;
if (!(HEAP32[17542] | 0)) {
label = 122;
break L10;
}
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$386 = HEAP32[17557] | 0;
$387 = $386 + 1 | 0;
HEAP32[17557] = $387;
$388 = HEAP32[17556] | 0;
$389 = $388 + $386 | 0;
HEAP8[$389 >> 0] = HEAP8[$389 >> 0] ^ $372 & 255;
if ($387 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($388);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$396 = HEAP32[17557] | 0;
$398 = HEAP32[17556] | 0;
} else {
$396 = $387;
$398 = $388;
}
$395 = $396 + 1 | 0;
HEAP32[17557] = $395;
$397 = $398 + $396 | 0;
HEAP8[$397 >> 0] = HEAP8[$397 >> 0] ^ $372 >>> 8 & 255;
if ($395 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($398);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$445 = HEAP32[17557] | 0;
$447 = HEAP32[17556] | 0;
} else {
$445 = $395;
$447 = $398;
}
$444 = $445 + 1 | 0;
HEAP32[17557] = $444;
$446 = $447 + $445 | 0;
HEAP8[$446 >> 0] = HEAP8[$446 >> 0] ^ $372 >>> 16 & 255;
if ($444 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($447);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$453 = HEAP32[17557] | 0;
$454 = $453 + 1 | 0;
HEAP32[17557] = $454;
$455 = HEAP32[17556] | 0;
$456 = $455 + $453 | 0;
HEAP8[$456 >> 0] = HEAP8[$456 >> 0] ^ $372 >>> 24 & 255;
if ($454 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($455);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
HEAP32[17558] = 0;
HEAP32[3141] = $372;
$$0$i = $$1$lcssa$i;
$$02$i = $$lcssa14$i;
}
if (($$045 | 0) == ($463 | 0)) break L8;
$p$036 = $p$036 + $463 | 0;
$465 = $$045 - $463 | 0;
if (!(HEAP32[17542] | 0)) {
label = 9;
break;
} else {
$$045 = $465;
$463 = $465 >>> 0 > 600 ? 600 : $465;
}
}
switch (label | 0) {
case 9:
{
__gcry_assert_failed(50047, 50062, 934, 50078);
break;
}
case 14:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
case 19:
{
__gcry_assert_failed(50047, 50062, 953, 50078);
break;
}
case 21:
{
__gcry_log_bug(50103, $vararg_buffer1);
break;
}
case 38:
{
$$pre$phi$i$iZ2D = ___errno_location() | 0;
$99 = __gcry_gettext(50302) | 0;
$100 = HEAP32[17559] | 0;
$101 = HEAP32[$$pre$phi$i$iZ2D >> 2] | 0;
$102 = _strerror($101) | 0;
HEAP32[$vararg_buffer20 >> 2] = $100;
$vararg_ptr23 = $vararg_buffer20 + 4 | 0;
HEAP32[$vararg_ptr23 >> 2] = $102;
__gcry_log_fatal($99, $vararg_buffer20);
break;
}
case 40:
{
$99 = __gcry_gettext(50302) | 0;
$100 = HEAP32[17559] | 0;
$101 = HEAP32[$$pre$phi$i$iZ2D >> 2] | 0;
$102 = _strerror($101) | 0;
HEAP32[$vararg_buffer20 >> 2] = $100;
$vararg_ptr23 = $vararg_buffer20 + 4 | 0;
HEAP32[$vararg_ptr23 >> 2] = $102;
__gcry_log_fatal($99, $vararg_buffer20);
break;
}
case 42:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
case 48:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
case 52:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
case 56:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
case 60:
{
__gcry_log_fatal(50323, $vararg_buffer24);
break;
}
case 62:
{
__gcry_log_fatal(50374, $vararg_buffer26);
break;
}
case 85:
{
__gcry_log_fatal(50323, $vararg_buffer28);
break;
}
case 87:
{
__gcry_log_fatal(50374, $vararg_buffer30);
break;
}
case 94:
{
__gcry_bug(50062, 995, 50078);
break;
}
case 96:
{
__gcry_log_fatal(50323, $vararg_buffer32);
break;
}
case 98:
{
__gcry_log_fatal(50374, $vararg_buffer34);
break;
}
case 102:
{
__gcry_log_fatal(50323, $vararg_buffer36);
break;
}
case 104:
{
__gcry_log_fatal(50374, $vararg_buffer38);
break;
}
case 106:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
case 122:
{
__gcry_assert_failed(50047, 50062, 1074, 50088);
break;
}
}
} while (0);
HEAP32[17542] = 0;
$469 = _gpgrt_lock_unlock(12520) | 0;
if (!$469) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer40 >> 2] = _gpg_strerror($469) | 0;
__gcry_log_fatal(49870, $vararg_buffer40);
}
}
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, $$015$ph$i$i = 0, $$015$ph$i$i$18 = 0, $$015$ph$i$i$36 = 0, $$015$ph$i$i$54 = 0, $$02$lcssa = 0, $$02125 = 0, $$03124 = 0, $$2$i = 0, $$2$i$71 = 0, $$in = 0, $$lcssa331 = 0, $$ph$i$i = 0, $$ph$i$i$14 = 0, $$ph$i$i$32 = 0, $$ph$i$i$50 = 0, $$ph12$i$i = 0, $$ph12$i$i$15 = 0, $$ph12$i$i$33 = 0, $$ph12$i$i$51 = 0, $0 = 0, $102 = 0, $103 = 0, $104 = 0, $108 = 0, $117 = 0, $118 = 0, $120 = 0, $126 = 0, $129 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $15 = 0, $151 = 0, $154 = 0, $155 = 0, $157 = 0, $163 = 0, $166 = 0, $176 = 0, $180 = 0, $182 = 0, $185 = 0, $186 = 0, $188 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $207 = 0, $211 = 0, $213 = 0, $215 = 0, $224 = 0, $225 = 0, $227 = 0, $30 = 0, $31 = 0, $36 = 0, $42 = 0, $43 = 0, $49 = 0, $5 = 0, $52 = 0, $53 = 0, $6 = 0, $66 = 0, $67 = 0, $75 = 0, $76 = 0, $77 = 0, $81 = 0, $82 = 0, $84 = 0, $90 = 0, $93 = 0, $a$i$48 = 0, $array = 0, $arrayisdesc = 0, $freethis$0$lcssa = 0, $freethis$0118 = 0, $freethis$0123 = 0, $idx$0$lcssa175 = 0, $idx$0130 = 0, $idx$1 = 0, $idx$1$lcssa = 0, $idx$2 = 0, $idx$2323 = 0, $idx$3 = 0, $idx$4 = 0, $l1$3 = 0, $l1$3326 = 0, $l1$6 = 0, $level$07$i$lcssa$i = 0, $level$07$i$lcssa$i$21 = 0, $level$07$i$lcssa$i$39 = 0, $level$07$i$lcssa$i$57 = 0, $level$07$i21$i = 0, $level$07$i21$i$60 = 0, $level$07$i21$i$60$lcssa = 0, $level$07$i21$i$lcssa = 0, $level$07$i6$i = 0, $level$07$i6$i$lcssa = 0, $level$07$i9$i = 0, $level$07$i9$i$lcssa = 0, $level$07$ph$i$i = 0, $level$07$ph$i$i$16 = 0, $level$07$ph$i$i$34 = 0, $level$07$ph$i$i$52 = 0, $level$1$i$i = 0, $level$1$i$i$27 = 0, $level$1$i$i$44 = 0, $level$1$i$i$65 = 0, $level$1$ph$i$i = 0, $level$1$ph$i$i$24 = 0, $level$1$ph$i$i$41 = 0, $level$1$ph$i$i$62 = 0, $mode$0 = 0, $mode$1 = 0, $p$06$i$lcssa$i = 0, $p$06$i$lcssa$i$20 = 0, $p$06$i$lcssa$i$38 = 0, $p$06$i$lcssa$i$56 = 0, $p$06$i10$i = 0, $p$06$i10$i$lcssa = 0, $p$06$i22$i = 0, $p$06$i22$i$59 = 0, $p$06$i22$i$59$lcssa = 0, $p$06$i22$i$lcssa = 0, $p$06$i7$i = 0, $p$06$i7$i$lcssa = 0, $p$06$ph$i$i = 0, $p$06$ph$i$i$17 = 0, $p$06$ph$i$i$35 = 0, $p$06$ph$i$i$53 = 0, $p$1$i$i = 0, $p$1$i$i$26 = 0, $p$1$i$i$43 = 0, $p$1$i$i$64 = 0, $rc$9 = 0, $s$0131 = 0, $s$1 = 0, $s$2 = 0, $s$3 = 0, $s$4 = 0, $s$5 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$a$i$48 = sp + 80 | 0;
$array = sp;
$arrayisdesc = sp + 84 | 0;
dest = $arrayisdesc;
stop = dest + 20 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
$0 = HEAP8[$list >> 0] | 0;
do if (!($0 << 24 >> 24)) $idx$0$lcssa175 = 0; else {
$2 = $0;
$idx$0130 = 0;
$s$0131 = $list;
L2 : while (1) {
L4 : do switch ($2 << 24 >> 24) {
case 63:
case 47:
case 45:
case 43:
case 38:
{
$idx$1 = $idx$0130;
$s$2 = $s$0131;
break;
}
default:
{
switch ($2 << 24 >> 24 | 0) {
case 10:
case 13:
case 12:
case 11:
case 9:
case 32:
{
$idx$1 = $idx$0130;
$s$2 = $s$0131;
break L4;
break;
}
default:
{}
}
if ($2 << 24 >> 24 == 39) {
$5 = $s$0131 + 1 | 0;
$6 = _strchr($5, 39) | 0;
if (($6 | 0) == 0 | ($6 | 0) == ($5 | 0)) {
$$0 = 29;
label = 94;
break L2;
} else $s$1 = $6;
} else $s$1 = $s$0131;
$14 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$15 = HEAP32[$14 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $14 + 4;
HEAP32[$array + ($idx$0130 << 2) >> 2] = $15;
if (!$15) {
$$0 = 128;
label = 94;
break L2;
}
$idx$1 = $idx$0130 + 1 | 0;
$s$2 = $s$1;
}
} while (0);
$s$0131 = $s$2 + 1 | 0;
$20 = HEAP8[$s$0131 >> 0] | 0;
if (!($idx$1 >>> 0 < 20 & $20 << 24 >> 24 != 0)) {
$$lcssa331 = $20;
$idx$1$lcssa = $idx$1;
label = 9;
break;
} else {
$2 = $20;
$idx$0130 = $idx$1;
}
}
if ((label | 0) == 9) {
if (!($$lcssa331 << 24 >> 24)) {
$idx$0$lcssa175 = $idx$1$lcssa;
break;
} else $$0 = 183;
STACKTOP = sp;
return $$0 | 0;
} else if ((label | 0) == 94) {
STACKTOP = sp;
return $$0 | 0;
}
} while (0);
$30 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$31 = HEAP32[$30 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $30 + 4;
if ($31) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
L21 : do if (!$path) {
$$02$lcssa = $sexp;
$freethis$0$lcssa = 0;
label = 12;
} else {
$$02125 = $sexp;
$$03124 = $path;
$freethis$0123 = 0;
while (1) {
if (!(HEAP8[$$03124 >> 0] | 0)) {
$$02$lcssa = $$02125;
$freethis$0$lcssa = $freethis$0123;
label = 12;
break L21;
}
$36 = _strchr($$03124, 33) | 0;
if (($36 | 0) == ($$03124 | 0)) {
$freethis$0118 = $freethis$0123;
$idx$4 = $idx$0$lcssa175;
$l1$6 = 0;
$rc$9 = 27;
break L21;
}
$42 = ($36 | 0) == 0 ? 0 : $36 - $$03124 | 0;
$43 = __gcry_sexp_find_token($$02125, $$03124, $42) | 0;
if (!$43) {
$freethis$0118 = $freethis$0123;
$idx$4 = $idx$0$lcssa175;
$l1$6 = 0;
$rc$9 = 27;
break L21;
}
__gcry_sexp_release($freethis$0123);
$$03124 = ($42 | 0) == 0 ? 0 : $$03124 + ($42 + 1) | 0;
if (!$$03124) {
$$02$lcssa = $43;
$freethis$0$lcssa = $43;
label = 12;
break;
} else {
$$02125 = $43;
$freethis$0123 = $43;
}
}
} while (0);
L27 : do if ((label | 0) == 12) {
$idx$2 = 0;
$mode$0 = 43;
$s$3 = $list;
L29 : while (1) {
$49 = HEAP8[$s$3 >> 0] | 0;
L31 : do switch ($49 << 24 >> 24) {
case 0:
{
break L29;
break;
}
case 47:
case 45:
case 43:
case 38:
{
$idx$3 = $idx$2;
$mode$1 = $49 << 24 >> 24;
$s$5 = $s$3;
break;
}
default:
{
switch ($49 << 24 >> 24 | 0) {
case 10:
case 13:
case 12:
case 11:
case 9:
case 32:
{
$idx$3 = $idx$2;
$mode$1 = $mode$0;
$s$5 = $s$3;
break L31;
break;
}
default:
{}
}
switch ($49 << 24 >> 24) {
case 63:
{
$idx$3 = $idx$2;
$mode$1 = $mode$0;
$s$5 = $s$3;
break L31;
break;
}
case 39:
{
$52 = $s$3 + 1 | 0;
$53 = _strchr($52, 39) | 0;
if (($53 | 0) == 0 | ($53 | 0) == ($52 | 0)) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = 0;
$rc$9 = 29;
break L27;
}
$l1$3 = __gcry_sexp_find_token($$02$lcssa, $52, $53 - $52 | 0) | 0;
$s$4 = $53;
break;
}
default:
{
$l1$3 = __gcry_sexp_find_token($$02$lcssa, $s$3, 1) | 0;
$s$4 = $s$3;
}
}
do if (!$l1$3) {
if ((HEAP8[$s$4 + 1 >> 0] | 0) != 63) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = 0;
$rc$9 = 68;
break L27;
}
$66 = $array + ($idx$2 << 2) | 0;
if (($mode$0 | 0) != 38) {
HEAP32[HEAP32[$66 >> 2] >> 2] = 0;
break;
}
$67 = HEAP32[$66 >> 2] | 0;
if (!(HEAP32[$67 + 12 >> 2] | 0)) {
HEAP32[$67 >> 2] = 0;
HEAP32[$67 + 4 >> 2] = 0;
}
HEAP32[$67 + 8 >> 2] = 0;
} else {
L49 : do switch ($mode$0 | 0) {
case 38:
{
$75 = HEAP32[$array + ($idx$2 << 2) >> 2] | 0;
$76 = $75 + 12 | 0;
$77 = HEAP32[$76 >> 2] | 0;
if (!$77) {
HEAP32[$75 >> 2] = 0;
if ((HEAP8[$l1$3 >> 0] | 0) != 3) {
$145 = $76;
$idx$2323 = $idx$2;
$l1$3326 = $l1$3;
label = 58;
break L29;
}
$117 = $l1$3 + 1 | 0;
$118 = HEAP8[$117 >> 0] | 0;
$$015$ph$i$i$18 = 1;
$$ph$i$i$14 = $118 << 24 >> 24 == 1;
$$ph12$i$i$15 = $118;
$level$07$ph$i$i$16 = 0;
$p$06$ph$i$i$17 = $117;
while (1) {
L74 : do if ($$ph$i$i$14) {
$level$07$i$lcssa$i$21 = $level$07$ph$i$i$16;
$p$06$i$lcssa$i$20 = $p$06$ph$i$i$17;
label = 49;
} else {
$126 = $$ph12$i$i$15;
$level$07$i9$i = $level$07$ph$i$i$16;
$p$06$i10$i = $p$06$ph$i$i$17;
L75 : while (1) {
switch ($126 << 24 >> 24) {
case 0:
{
$145 = $76;
$idx$2323 = $idx$2;
$l1$3326 = $l1$3;
label = 58;
break L29;
break;
}
case 4:
{
$level$07$i9$i$lcssa = $level$07$i9$i;
$p$06$i10$i$lcssa = $p$06$i10$i;
break L75;
break;
}
case 3:
{
$level$1$ph$i$i$24 = $level$07$i9$i + 1 | 0;
break;
}
default:
$level$1$ph$i$i$24 = $level$07$i9$i;
}
$129 = $p$06$i10$i + 1 | 0;
$126 = HEAP8[$129 >> 0] | 0;
if ($126 << 24 >> 24 == 1) {
$level$07$i$lcssa$i$21 = $level$1$ph$i$i$24;
$p$06$i$lcssa$i$20 = $129;
label = 49;
break L74;
} else {
$level$07$i9$i = $level$1$ph$i$i$24;
$p$06$i10$i = $129;
}
}
$level$1$i$i$27 = $level$07$i9$i$lcssa + -1 | 0;
$p$1$i$i$26 = $p$06$i10$i$lcssa;
} while (0);
if ((label | 0) == 49) {
label = 0;
$120 = $p$06$i$lcssa$i$20 + 1 | 0;
$level$1$i$i$27 = $level$07$i$lcssa$i$21;
$p$1$i$i$26 = $120 + (((HEAPU8[$120 >> 0] | HEAPU8[$120 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i$i$18 = ((($level$1$i$i$27 | 0) == 0) << 31 >> 31) + $$015$ph$i$i$18 | 0;
$p$06$ph$i$i$17 = $p$1$i$i$26 + 1 | 0;
$$ph12$i$i$15 = HEAP8[$p$06$ph$i$i$17 >> 0] | 0;
$$ph$i$i$14 = $$ph12$i$i$15 << 24 >> 24 == 1;
if (($$015$ph$i$i$18 | 0) <= 0) break; else $level$07$ph$i$i$16 = $level$1$i$i$27;
}
if (!$$ph$i$i$14) {
$145 = $76;
$idx$2323 = $idx$2;
$l1$3326 = $l1$3;
label = 58;
break L29;
}
$138 = $p$1$i$i$26 + 2 | 0;
$139 = HEAPU8[$138 >> 0] | HEAPU8[$138 + 1 >> 0] << 8;
$140 = $139 & 65535;
if (!($139 << 16 >> 16)) {
$145 = $76;
$idx$2323 = $idx$2;
$l1$3326 = $l1$3;
label = 58;
break L29;
}
$143 = __gcry_malloc($140) | 0;
if (!$143) {
$145 = $76;
$idx$2323 = $idx$2;
$l1$3326 = $l1$3;
label = 58;
break L29;
}
_memcpy($143 | 0, $p$1$i$i$26 + 4 | 0, $140 | 0) | 0;
HEAP32[$75 >> 2] = $140;
HEAP32[$76 >> 2] = $143;
HEAP32[$75 + 8 >> 2] = $140;
HEAP32[$75 + 4 >> 2] = 0;
HEAP8[$arrayisdesc + $idx$2 >> 0] = 2;
$215 = $75;
break L49;
} else {
if ((HEAP8[$l1$3 >> 0] | 0) != 3) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = $l1$3;
$rc$9 = 65;
break L27;
}
$81 = $l1$3 + 1 | 0;
$82 = HEAP8[$81 >> 0] | 0;
$$015$ph$i$i = 1;
$$ph$i$i = $82 << 24 >> 24 == 1;
$$ph12$i$i = $82;
$level$07$ph$i$i = 0;
$p$06$ph$i$i = $81;
while (1) {
L92 : do if ($$ph$i$i) {
$level$07$i$lcssa$i = $level$07$ph$i$i;
$p$06$i$lcssa$i = $p$06$ph$i$i;
label = 36;
} else {
$90 = $$ph12$i$i;
$level$07$i6$i = $level$07$ph$i$i;
$p$06$i7$i = $p$06$ph$i$i;
L93 : while (1) {
switch ($90 << 24 >> 24) {
case 0:
{
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = $l1$3;
$rc$9 = 65;
break L27;
break;
}
case 4:
{
$level$07$i6$i$lcssa = $level$07$i6$i;
$p$06$i7$i$lcssa = $p$06$i7$i;
break L93;
break;
}
case 3:
{
$level$1$ph$i$i = $level$07$i6$i + 1 | 0;
break;
}
default:
$level$1$ph$i$i = $level$07$i6$i;
}
$93 = $p$06$i7$i + 1 | 0;
$90 = HEAP8[$93 >> 0] | 0;
if ($90 << 24 >> 24 == 1) {
$level$07$i$lcssa$i = $level$1$ph$i$i;
$p$06$i$lcssa$i = $93;
label = 36;
break L92;
} else {
$level$07$i6$i = $level$1$ph$i$i;
$p$06$i7$i = $93;
}
}
$level$1$i$i = $level$07$i6$i$lcssa + -1 | 0;
$p$1$i$i = $p$06$i7$i$lcssa;
} while (0);
if ((label | 0) == 36) {
label = 0;
$84 = $p$06$i$lcssa$i + 1 | 0;
$level$1$i$i = $level$07$i$lcssa$i;
$p$1$i$i = $84 + (((HEAPU8[$84 >> 0] | HEAPU8[$84 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i$i = ((($level$1$i$i | 0) == 0) << 31 >> 31) + $$015$ph$i$i | 0;
$p$06$ph$i$i = $p$1$i$i + 1 | 0;
$$ph12$i$i = HEAP8[$p$06$ph$i$i >> 0] | 0;
$$ph$i$i = $$ph12$i$i << 24 >> 24 == 1;
if (($$015$ph$i$i | 0) <= 0) break; else $level$07$ph$i$i = $level$1$i$i;
}
if (!$$ph$i$i) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = $l1$3;
$rc$9 = 65;
break L27;
}
$102 = $p$1$i$i + 2 | 0;
$103 = HEAPU8[$102 >> 0] | HEAPU8[$102 + 1 >> 0] << 8;
$104 = $103 & 65535;
if (!($103 << 16 >> 16)) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = $l1$3;
$rc$9 = 65;
break L27;
}
$108 = HEAP32[$75 + 4 >> 2] | 0;
if (($108 + $104 | 0) >>> 0 > (HEAP32[$75 >> 2] | 0) >>> 0) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = $l1$3;
$rc$9 = 200;
break L27;
}
_memcpy($77 + $108 | 0, $p$1$i$i + 4 | 0, $104 | 0) | 0;
HEAP32[$75 + 8 >> 2] = $104;
HEAP8[$arrayisdesc + $idx$2 >> 0] = 1;
$215 = $75;
break L49;
}
break;
}
case 47:
{
$149 = __gcry_sexp_nth_mpi($l1$3, 1, 8) | 0;
$151 = HEAP32[$array + ($idx$2 << 2) >> 2] | 0;
HEAP32[$151 >> 2] = $149;
$215 = $151;
break;
}
case 45:
{
L108 : do if ((HEAP8[$l1$3 >> 0] | 0) == 3) {
$154 = $l1$3 + 1 | 0;
$155 = HEAP8[$154 >> 0] | 0;
$$015$ph$i$i$36 = 1;
$$ph$i$i$32 = $155 << 24 >> 24 == 1;
$$ph12$i$i$33 = $155;
$level$07$ph$i$i$34 = 0;
$p$06$ph$i$i$35 = $154;
while (1) {
L112 : do if ($$ph$i$i$32) {
$level$07$i$lcssa$i$39 = $level$07$ph$i$i$34;
$p$06$i$lcssa$i$38 = $p$06$ph$i$i$35;
label = 64;
} else {
$163 = $$ph12$i$i$33;
$level$07$i21$i = $level$07$ph$i$i$34;
$p$06$i22$i = $p$06$ph$i$i$35;
L113 : while (1) {
switch ($163 << 24 >> 24) {
case 0:
{
$$2$i = 0;
break L108;
break;
}
case 4:
{
$level$07$i21$i$lcssa = $level$07$i21$i;
$p$06$i22$i$lcssa = $p$06$i22$i;
break L113;
break;
}
case 3:
{
$level$1$ph$i$i$41 = $level$07$i21$i + 1 | 0;
break;
}
default:
$level$1$ph$i$i$41 = $level$07$i21$i;
}
$166 = $p$06$i22$i + 1 | 0;
$163 = HEAP8[$166 >> 0] | 0;
if ($163 << 24 >> 24 == 1) {
$level$07$i$lcssa$i$39 = $level$1$ph$i$i$41;
$p$06$i$lcssa$i$38 = $166;
label = 64;
break L112;
} else {
$level$07$i21$i = $level$1$ph$i$i$41;
$p$06$i22$i = $166;
}
}
$level$1$i$i$44 = $level$07$i21$i$lcssa + -1 | 0;
$p$1$i$i$43 = $p$06$i22$i$lcssa;
} while (0);
if ((label | 0) == 64) {
label = 0;
$157 = $p$06$i$lcssa$i$38 + 1 | 0;
$level$1$i$i$44 = $level$07$i$lcssa$i$39;
$p$1$i$i$43 = $157 + (((HEAPU8[$157 >> 0] | HEAPU8[$157 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i$i$36 = ((($level$1$i$i$44 | 0) == 0) << 31 >> 31) + $$015$ph$i$i$36 | 0;
$p$06$ph$i$i$35 = $p$1$i$i$43 + 1 | 0;
$$ph12$i$i$33 = HEAP8[$p$06$ph$i$i$35 >> 0] | 0;
$$ph$i$i$32 = $$ph12$i$i$33 << 24 >> 24 == 1;
if (($$015$ph$i$i$36 | 0) <= 0) break; else $level$07$ph$i$i$34 = $level$1$i$i$44;
}
if ($$ph$i$i$32) {
$176 = $p$1$i$i$43 + 2 | 0;
$180 = (__gcry_mpi_scan($a$i$48, 1, $p$1$i$i$43 + 4 | 0, (HEAPU8[$176 >> 0] | HEAPU8[$176 + 1 >> 0] << 8) & 65535, 0) | 0) == 0;
$$2$i = $180 ? HEAP32[$a$i$48 >> 2] | 0 : 0;
} else $$2$i = 0;
} else $$2$i = 0; while (0);
$182 = HEAP32[$array + ($idx$2 << 2) >> 2] | 0;
HEAP32[$182 >> 2] = $$2$i;
$215 = $182;
break;
}
default:
{
L51 : do if ((HEAP8[$l1$3 >> 0] | 0) == 3) {
$185 = $l1$3 + 1 | 0;
$186 = HEAP8[$185 >> 0] | 0;
$$015$ph$i$i$54 = 1;
$$ph$i$i$50 = $186 << 24 >> 24 == 1;
$$ph12$i$i$51 = $186;
$level$07$ph$i$i$52 = 0;
$p$06$ph$i$i$53 = $185;
while (1) {
L55 : do if ($$ph$i$i$50) {
$level$07$i$lcssa$i$57 = $level$07$ph$i$i$52;
$p$06$i$lcssa$i$56 = $p$06$ph$i$i$53;
label = 76;
} else {
$194 = $$ph12$i$i$51;
$level$07$i21$i$60 = $level$07$ph$i$i$52;
$p$06$i22$i$59 = $p$06$ph$i$i$53;
L56 : while (1) {
switch ($194 << 24 >> 24) {
case 0:
{
$$2$i$71 = 0;
break L51;
break;
}
case 4:
{
$level$07$i21$i$60$lcssa = $level$07$i21$i$60;
$p$06$i22$i$59$lcssa = $p$06$i22$i$59;
break L56;
break;
}
case 3:
{
$level$1$ph$i$i$62 = $level$07$i21$i$60 + 1 | 0;
break;
}
default:
$level$1$ph$i$i$62 = $level$07$i21$i$60;
}
$197 = $p$06$i22$i$59 + 1 | 0;
$194 = HEAP8[$197 >> 0] | 0;
if ($194 << 24 >> 24 == 1) {
$level$07$i$lcssa$i$57 = $level$1$ph$i$i$62;
$p$06$i$lcssa$i$56 = $197;
label = 76;
break L55;
} else {
$level$07$i21$i$60 = $level$1$ph$i$i$62;
$p$06$i22$i$59 = $197;
}
}
$level$1$i$i$65 = $level$07$i21$i$60$lcssa + -1 | 0;
$p$1$i$i$64 = $p$06$i22$i$59$lcssa;
} while (0);
if ((label | 0) == 76) {
label = 0;
$188 = $p$06$i$lcssa$i$56 + 1 | 0;
$level$1$i$i$65 = $level$07$i$lcssa$i$57;
$p$1$i$i$64 = $188 + (((HEAPU8[$188 >> 0] | HEAPU8[$188 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i$i$54 = ((($level$1$i$i$65 | 0) == 0) << 31 >> 31) + $$015$ph$i$i$54 | 0;
$p$06$ph$i$i$53 = $p$1$i$i$64 + 1 | 0;
$$ph12$i$i$51 = HEAP8[$p$06$ph$i$i$53 >> 0] | 0;
$$ph$i$i$50 = $$ph12$i$i$51 << 24 >> 24 == 1;
if (($$015$ph$i$i$54 | 0) <= 0) break; else $level$07$ph$i$i$52 = $level$1$i$i$65;
}
if ($$ph$i$i$50) {
$207 = $p$1$i$i$64 + 2 | 0;
$211 = (__gcry_mpi_scan($a$i$48, 5, $p$1$i$i$64 + 4 | 0, (HEAPU8[$207 >> 0] | HEAPU8[$207 + 1 >> 0] << 8) & 65535, 0) | 0) == 0;
$$2$i$71 = $211 ? HEAP32[$a$i$48 >> 2] | 0 : 0;
} else $$2$i$71 = 0;
} else $$2$i$71 = 0; while (0);
$213 = HEAP32[$array + ($idx$2 << 2) >> 2] | 0;
HEAP32[$213 >> 2] = $$2$i$71;
$215 = $213;
}
} while (0);
__gcry_sexp_release($l1$3);
if (!(HEAP32[$215 >> 2] | 0)) {
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2;
$l1$6 = 0;
$rc$9 = 65;
break L27;
}
} while (0);
$idx$3 = $idx$2 + 1 | 0;
$mode$1 = $mode$0;
$s$5 = $s$4;
}
} while (0);
$idx$2 = $idx$3;
$mode$0 = $mode$1;
$s$3 = $s$5 + 1 | 0;
}
if ((label | 0) == 58) {
HEAP32[$145 >> 2] = 0;
$freethis$0118 = $freethis$0$lcssa;
$idx$4 = $idx$2323;
$l1$6 = $l1$3326;
$rc$9 = 65;
break;
}
__gcry_sexp_release($freethis$0$lcssa);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} while (0);
__gcry_sexp_release($freethis$0118);
__gcry_sexp_release($l1$6);
if (!$idx$4) {
$$0 = $rc$9;
STACKTOP = sp;
return $$0 | 0;
} else $$in = $idx$4;
do {
$$in = $$in + -1 | 0;
$224 = $array + ($$in << 2) | 0;
if (!(HEAP8[$arrayisdesc + $$in >> 0] | 0)) {
$225 = HEAP32[$224 >> 2] | 0;
__gcry_mpi_release(HEAP32[$225 >> 2] | 0);
HEAP32[$225 >> 2] = 0;
} else {
$227 = HEAP32[$224 >> 2] | 0;
__gcry_free(HEAP32[$227 + 12 >> 2] | 0);
HEAP32[$227 >> 2] = 0;
HEAP32[$227 + 4 >> 2] = 0;
HEAP32[$227 + 8 >> 2] = 0;
HEAP32[$227 + 12 >> 2] = 0;
}
} while (($$in | 0) != 0);
$$0 = $rc$9;
STACKTOP = sp;
return $$0 | 0;
}
function _transform_1312($ctx, $data, $nblks) {
$ctx = $ctx | 0;
$data = $data | 0;
$nblks = $nblks | 0;
var $$0 = 0, $$01 = 0, $0 = 0, $1 = 0, $10 = 0, $1000 = 0, $101 = 0, $1010 = 0, $1013 = 0, $1017 = 0, $1020 = 0, $1030 = 0, $1033 = 0, $1037 = 0, $1040 = 0, $1050 = 0, $1053 = 0, $1057 = 0, $1060 = 0, $1070 = 0, $1073 = 0, $1077 = 0, $1080 = 0, $1090 = 0, $1093 = 0, $1097 = 0, $11 = 0, $1100 = 0, $1110 = 0, $1113 = 0, $1117 = 0, $1120 = 0, $1130 = 0, $1133 = 0, $1137 = 0, $1140 = 0, $1150 = 0, $1153 = 0, $1157 = 0, $1160 = 0, $1170 = 0, $1173 = 0, $1177 = 0, $1180 = 0, $1190 = 0, $1193 = 0, $1197 = 0, $1200 = 0, $1210 = 0, $1213 = 0, $1217 = 0, $1220 = 0, $1230 = 0, $1233 = 0, $1237 = 0, $1240 = 0, $125 = 0, $1250 = 0, $1253 = 0, $1257 = 0, $1260 = 0, $1270 = 0, $1273 = 0, $1277 = 0, $1280 = 0, $129 = 0, $1290 = 0, $1293 = 0, $1297 = 0, $13 = 0, $1300 = 0, $1310 = 0, $1313 = 0, $1317 = 0, $132 = 0, $1320 = 0, $1330 = 0, $1333 = 0, $1337 = 0, $1340 = 0, $1348 = 0, $1351 = 0, $1355 = 0, $1358 = 0, $1366 = 0, $1369 = 0, $1373 = 0, $1376 = 0, $1384 = 0, $1387 = 0, $1391 = 0, $1394 = 0, $1402 = 0, $1405 = 0, $1409 = 0, $1412 = 0, $1420 = 0, $1423 = 0, $1427 = 0, $1430 = 0, $1438 = 0, $1441 = 0, $1445 = 0, $1448 = 0, $1456 = 0, $1459 = 0, $1463 = 0, $1466 = 0, $1474 = 0, $1477 = 0, $1481 = 0, $1484 = 0, $1492 = 0, $1495 = 0, $1499 = 0, $1502 = 0, $1510 = 0, $1513 = 0, $1517 = 0, $1520 = 0, $1528 = 0, $1531 = 0, $1535 = 0, $1538 = 0, $1546 = 0, $1549 = 0, $1553 = 0, $1556 = 0, $156 = 0, $1564 = 0, $1567 = 0, $1571 = 0, $1574 = 0, $1582 = 0, $1585 = 0, $1589 = 0, $1592 = 0, $160 = 0, $1600 = 0, $1603 = 0, $1607 = 0, $1610 = 0, $1618 = 0, $1621 = 0, $1625 = 0, $1628 = 0, $163 = 0, $1636 = 0, $1639 = 0, $1643 = 0, $1646 = 0, $1654 = 0, $1661 = 0, $1664 = 0, $1672 = 0, $1679 = 0, $1682 = 0, $1690 = 0, $187 = 0, $191 = 0, $194 = 0, $2 = 0, $218 = 0, $222 = 0, $225 = 0, $249 = 0, $253 = 0, $256 = 0, $280 = 0, $284 = 0, $287 = 0, $3 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $34 = 0, $342 = 0, $346 = 0, $349 = 0, $36 = 0, $373 = 0, $377 = 0, $380 = 0, $39 = 0, $4 = 0, $404 = 0, $408 = 0, $411 = 0, $435 = 0, $439 = 0, $442 = 0, $466 = 0, $470 = 0, $473 = 0, $497 = 0, $501 = 0, $504 = 0, $513 = 0, $516 = 0, $520 = 0, $523 = 0, $532 = 0, $535 = 0, $539 = 0, $542 = 0, $551 = 0, $554 = 0, $558 = 0, $561 = 0, $570 = 0, $573 = 0, $577 = 0, $580 = 0, $588 = 0, $591 = 0, $595 = 0, $598 = 0, $6 = 0, $606 = 0, $609 = 0, $613 = 0, $616 = 0, $624 = 0, $627 = 0, $63 = 0, $631 = 0, $634 = 0, $642 = 0, $645 = 0, $649 = 0, $652 = 0, $660 = 0, $663 = 0, $667 = 0, $67 = 0, $670 = 0, $678 = 0, $681 = 0, $685 = 0, $688 = 0, $696 = 0, $699 = 0, $70 = 0, $703 = 0, $706 = 0, $714 = 0, $717 = 0, $721 = 0, $724 = 0, $732 = 0, $735 = 0, $739 = 0, $742 = 0, $750 = 0, $753 = 0, $757 = 0, $760 = 0, $768 = 0, $771 = 0, $775 = 0, $778 = 0, $786 = 0, $789 = 0, $793 = 0, $796 = 0, $804 = 0, $807 = 0, $811 = 0, $814 = 0, $822 = 0, $825 = 0, $829 = 0, $832 = 0, $840 = 0, $843 = 0, $847 = 0, $850 = 0, $858 = 0, $861 = 0, $865 = 0, $868 = 0, $876 = 0, $879 = 0, $883 = 0, $886 = 0, $894 = 0, $897 = 0, $901 = 0, $904 = 0, $912 = 0, $915 = 0, $919 = 0, $922 = 0, $930 = 0, $933 = 0, $937 = 0, $94 = 0, $940 = 0, $950 = 0, $953 = 0, $957 = 0, $960 = 0, $970 = 0, $973 = 0, $977 = 0, $98 = 0, $980 = 0, $990 = 0, $993 = 0, $997 = 0;
$0 = $ctx + 160 | 0;
$1 = $ctx + 164 | 0;
$2 = $ctx + 168 | 0;
$3 = $ctx + 172 | 0;
$4 = $ctx + 176 | 0;
$$0 = $data;
$$01 = $nblks;
$10 = HEAP32[$2 >> 2] | 0;
$11 = HEAP32[$3 >> 2] | 0;
$13 = HEAP32[$1 >> 2] | 0;
$34 = HEAP32[$4 >> 2] | 0;
$6 = HEAP32[$0 >> 2] | 0;
while (1) {
$31 = (HEAPU8[$$0 + 1 >> 0] | 0) << 16 | (HEAPU8[$$0 >> 0] | 0) << 24 | (HEAPU8[$$0 + 2 >> 0] | 0) << 8 | (HEAPU8[$$0 + 3 >> 0] | 0);
$36 = ($6 << 5 | $6 >>> 27) + 1518500249 + $34 + (($11 ^ $10) & $13 ^ $11) + $31 | 0;
$39 = $13 << 30 | $13 >>> 2;
$63 = (HEAPU8[$$0 + 5 >> 0] | 0) << 16 | (HEAPU8[$$0 + 4 >> 0] | 0) << 24 | (HEAPU8[$$0 + 6 >> 0] | 0) << 8 | (HEAPU8[$$0 + 7 >> 0] | 0);
$67 = $11 + 1518500249 + (($39 ^ $10) & $6 ^ $10) + ($36 << 5 | $36 >>> 27) + $63 | 0;
$70 = $6 << 30 | $6 >>> 2;
$94 = (HEAPU8[$$0 + 9 >> 0] | 0) << 16 | (HEAPU8[$$0 + 8 >> 0] | 0) << 24 | (HEAPU8[$$0 + 10 >> 0] | 0) << 8 | (HEAPU8[$$0 + 11 >> 0] | 0);
$98 = $10 + 1518500249 + ($36 & ($39 ^ $70) ^ $39) + ($67 << 5 | $67 >>> 27) + $94 | 0;
$101 = $36 << 30 | $36 >>> 2;
$125 = (HEAPU8[$$0 + 13 >> 0] | 0) << 16 | (HEAPU8[$$0 + 12 >> 0] | 0) << 24 | (HEAPU8[$$0 + 14 >> 0] | 0) << 8 | (HEAPU8[$$0 + 15 >> 0] | 0);
$129 = $39 + 1518500249 + ($67 & ($101 ^ $70) ^ $70) + $125 + ($98 << 5 | $98 >>> 27) | 0;
$132 = $67 << 30 | $67 >>> 2;
$156 = (HEAPU8[$$0 + 17 >> 0] | 0) << 16 | (HEAPU8[$$0 + 16 >> 0] | 0) << 24 | (HEAPU8[$$0 + 18 >> 0] | 0) << 8 | (HEAPU8[$$0 + 19 >> 0] | 0);
$160 = $70 + 1518500249 + ($98 & ($132 ^ $101) ^ $101) + $156 + ($129 << 5 | $129 >>> 27) | 0;
$163 = $98 << 30 | $98 >>> 2;
$187 = (HEAPU8[$$0 + 21 >> 0] | 0) << 16 | (HEAPU8[$$0 + 20 >> 0] | 0) << 24 | (HEAPU8[$$0 + 22 >> 0] | 0) << 8 | (HEAPU8[$$0 + 23 >> 0] | 0);
$191 = $101 + 1518500249 + ($129 & ($163 ^ $132) ^ $132) + $187 + ($160 << 5 | $160 >>> 27) | 0;
$194 = $129 << 30 | $129 >>> 2;
$218 = (HEAPU8[$$0 + 25 >> 0] | 0) << 16 | (HEAPU8[$$0 + 24 >> 0] | 0) << 24 | (HEAPU8[$$0 + 26 >> 0] | 0) << 8 | (HEAPU8[$$0 + 27 >> 0] | 0);
$222 = $132 + 1518500249 + ($160 & ($194 ^ $163) ^ $163) + $218 + ($191 << 5 | $191 >>> 27) | 0;
$225 = $160 << 30 | $160 >>> 2;
$249 = (HEAPU8[$$0 + 29 >> 0] | 0) << 16 | (HEAPU8[$$0 + 28 >> 0] | 0) << 24 | (HEAPU8[$$0 + 30 >> 0] | 0) << 8 | (HEAPU8[$$0 + 31 >> 0] | 0);
$253 = $163 + 1518500249 + ($191 & ($225 ^ $194) ^ $194) + $249 + ($222 << 5 | $222 >>> 27) | 0;
$256 = $191 << 30 | $191 >>> 2;
$280 = (HEAPU8[$$0 + 33 >> 0] | 0) << 16 | (HEAPU8[$$0 + 32 >> 0] | 0) << 24 | (HEAPU8[$$0 + 34 >> 0] | 0) << 8 | (HEAPU8[$$0 + 35 >> 0] | 0);
$284 = $194 + 1518500249 + ($222 & ($256 ^ $225) ^ $225) + $280 + ($253 << 5 | $253 >>> 27) | 0;
$287 = $222 << 30 | $222 >>> 2;
$311 = (HEAPU8[$$0 + 37 >> 0] | 0) << 16 | (HEAPU8[$$0 + 36 >> 0] | 0) << 24 | (HEAPU8[$$0 + 38 >> 0] | 0) << 8 | (HEAPU8[$$0 + 39 >> 0] | 0);
$315 = $225 + 1518500249 + ($253 & ($287 ^ $256) ^ $256) + $311 + ($284 << 5 | $284 >>> 27) | 0;
$318 = $253 << 30 | $253 >>> 2;
$342 = (HEAPU8[$$0 + 41 >> 0] | 0) << 16 | (HEAPU8[$$0 + 40 >> 0] | 0) << 24 | (HEAPU8[$$0 + 42 >> 0] | 0) << 8 | (HEAPU8[$$0 + 43 >> 0] | 0);
$346 = $256 + 1518500249 + ($284 & ($318 ^ $287) ^ $287) + $342 + ($315 << 5 | $315 >>> 27) | 0;
$349 = $284 << 30 | $284 >>> 2;
$373 = (HEAPU8[$$0 + 45 >> 0] | 0) << 16 | (HEAPU8[$$0 + 44 >> 0] | 0) << 24 | (HEAPU8[$$0 + 46 >> 0] | 0) << 8 | (HEAPU8[$$0 + 47 >> 0] | 0);
$377 = $287 + 1518500249 + ($315 & ($349 ^ $318) ^ $318) + $373 + ($346 << 5 | $346 >>> 27) | 0;
$380 = $315 << 30 | $315 >>> 2;
$404 = (HEAPU8[$$0 + 49 >> 0] | 0) << 16 | (HEAPU8[$$0 + 48 >> 0] | 0) << 24 | (HEAPU8[$$0 + 50 >> 0] | 0) << 8 | (HEAPU8[$$0 + 51 >> 0] | 0);
$408 = $318 + 1518500249 + ($346 & ($380 ^ $349) ^ $349) + $404 + ($377 << 5 | $377 >>> 27) | 0;
$411 = $346 << 30 | $346 >>> 2;
$435 = (HEAPU8[$$0 + 53 >> 0] | 0) << 16 | (HEAPU8[$$0 + 52 >> 0] | 0) << 24 | (HEAPU8[$$0 + 54 >> 0] | 0) << 8 | (HEAPU8[$$0 + 55 >> 0] | 0);
$439 = $349 + 1518500249 + ($377 & ($411 ^ $380) ^ $380) + $435 + ($408 << 5 | $408 >>> 27) | 0;
$442 = $377 << 30 | $377 >>> 2;
$466 = (HEAPU8[$$0 + 57 >> 0] | 0) << 16 | (HEAPU8[$$0 + 56 >> 0] | 0) << 24 | (HEAPU8[$$0 + 58 >> 0] | 0) << 8 | (HEAPU8[$$0 + 59 >> 0] | 0);
$470 = $380 + 1518500249 + ($408 & ($442 ^ $411) ^ $411) + $466 + ($439 << 5 | $439 >>> 27) | 0;
$473 = $408 << 30 | $408 >>> 2;
$497 = (HEAPU8[$$0 + 61 >> 0] | 0) << 16 | (HEAPU8[$$0 + 60 >> 0] | 0) << 24 | (HEAPU8[$$0 + 62 >> 0] | 0) << 8 | (HEAPU8[$$0 + 63 >> 0] | 0);
$501 = $411 + 1518500249 + ($439 & ($473 ^ $442) ^ $442) + $497 + ($470 << 5 | $470 >>> 27) | 0;
$504 = $439 << 30 | $439 >>> 2;
$513 = $94 ^ $31 ^ $280 ^ $435;
$516 = $513 << 1 | $513 >>> 31;
$520 = $442 + 1518500249 + $516 + ($470 & ($504 ^ $473) ^ $473) + ($501 << 5 | $501 >>> 27) | 0;
$523 = $470 << 30 | $470 >>> 2;
$532 = $125 ^ $63 ^ $311 ^ $466;
$535 = $532 << 1 | $532 >>> 31;
$539 = $473 + 1518500249 + $535 + ($501 & ($523 ^ $504) ^ $504) + ($520 << 5 | $520 >>> 27) | 0;
$542 = $501 << 30 | $501 >>> 2;
$551 = $156 ^ $94 ^ $342 ^ $497;
$554 = $551 << 1 | $551 >>> 31;
$558 = $504 + 1518500249 + $554 + ($520 & ($542 ^ $523) ^ $523) + ($539 << 5 | $539 >>> 27) | 0;
$561 = $520 << 30 | $520 >>> 2;
$570 = $187 ^ $125 ^ $373 ^ $516;
$573 = $570 << 1 | $570 >>> 31;
$577 = $573 + 1518500249 + $523 + ($539 & ($561 ^ $542) ^ $542) + ($558 << 5 | $558 >>> 27) | 0;
$580 = $539 << 30 | $539 >>> 2;
$588 = $218 ^ $156 ^ $404 ^ $535;
$591 = $588 << 1 | $588 >>> 31;
$595 = $591 + 1859775393 + $542 + ($580 ^ $561 ^ $558) + ($577 << 5 | $577 >>> 27) | 0;
$598 = $558 << 30 | $558 >>> 2;
$606 = $249 ^ $187 ^ $435 ^ $554;
$609 = $606 << 1 | $606 >>> 31;
$613 = $609 + 1859775393 + $561 + ($598 ^ $580 ^ $577) + ($595 << 5 | $595 >>> 27) | 0;
$616 = $577 << 30 | $577 >>> 2;
$624 = $280 ^ $218 ^ $466 ^ $573;
$627 = $624 << 1 | $624 >>> 31;
$631 = $627 + 1859775393 + $580 + ($616 ^ $598 ^ $595) + ($613 << 5 | $613 >>> 27) | 0;
$634 = $595 << 30 | $595 >>> 2;
$642 = $311 ^ $249 ^ $497 ^ $591;
$645 = $642 << 1 | $642 >>> 31;
$649 = $645 + 1859775393 + $598 + ($634 ^ $616 ^ $613) + ($631 << 5 | $631 >>> 27) | 0;
$652 = $613 << 30 | $613 >>> 2;
$660 = $342 ^ $280 ^ $516 ^ $609;
$663 = $660 << 1 | $660 >>> 31;
$667 = $663 + 1859775393 + $616 + ($652 ^ $634 ^ $631) + ($649 << 5 | $649 >>> 27) | 0;
$670 = $631 << 30 | $631 >>> 2;
$678 = $373 ^ $311 ^ $535 ^ $627;
$681 = $678 << 1 | $678 >>> 31;
$685 = $681 + 1859775393 + $634 + ($670 ^ $652 ^ $649) + ($667 << 5 | $667 >>> 27) | 0;
$688 = $649 << 30 | $649 >>> 2;
$696 = $404 ^ $342 ^ $554 ^ $645;
$699 = $696 << 1 | $696 >>> 31;
$703 = $699 + 1859775393 + $652 + ($688 ^ $670 ^ $667) + ($685 << 5 | $685 >>> 27) | 0;
$706 = $667 << 30 | $667 >>> 2;
$714 = $435 ^ $373 ^ $573 ^ $663;
$717 = $714 << 1 | $714 >>> 31;
$721 = $717 + 1859775393 + $670 + ($706 ^ $688 ^ $685) + ($703 << 5 | $703 >>> 27) | 0;
$724 = $685 << 30 | $685 >>> 2;
$732 = $466 ^ $404 ^ $591 ^ $681;
$735 = $732 << 1 | $732 >>> 31;
$739 = $735 + 1859775393 + $688 + ($724 ^ $706 ^ $703) + ($721 << 5 | $721 >>> 27) | 0;
$742 = $703 << 30 | $703 >>> 2;
$750 = $497 ^ $435 ^ $609 ^ $699;
$753 = $750 << 1 | $750 >>> 31;
$757 = $753 + 1859775393 + $706 + ($742 ^ $724 ^ $721) + ($739 << 5 | $739 >>> 27) | 0;
$760 = $721 << 30 | $721 >>> 2;
$768 = $466 ^ $516 ^ $627 ^ $717;
$771 = $768 << 1 | $768 >>> 31;
$775 = $771 + 1859775393 + $724 + ($760 ^ $742 ^ $739) + ($757 << 5 | $757 >>> 27) | 0;
$778 = $739 << 30 | $739 >>> 2;
$786 = $497 ^ $535 ^ $645 ^ $735;
$789 = $786 << 1 | $786 >>> 31;
$793 = $789 + 1859775393 + $742 + ($778 ^ $760 ^ $757) + ($775 << 5 | $775 >>> 27) | 0;
$796 = $757 << 30 | $757 >>> 2;
$804 = $554 ^ $516 ^ $663 ^ $753;
$807 = $804 << 1 | $804 >>> 31;
$811 = $807 + 1859775393 + $760 + ($796 ^ $778 ^ $775) + ($793 << 5 | $793 >>> 27) | 0;
$814 = $775 << 30 | $775 >>> 2;
$822 = $535 ^ $573 ^ $681 ^ $771;
$825 = $822 << 1 | $822 >>> 31;
$829 = $825 + 1859775393 + $778 + ($814 ^ $796 ^ $793) + ($811 << 5 | $811 >>> 27) | 0;
$832 = $793 << 30 | $793 >>> 2;
$840 = $554 ^ $591 ^ $699 ^ $789;
$843 = $840 << 1 | $840 >>> 31;
$847 = $843 + 1859775393 + $796 + ($832 ^ $814 ^ $811) + ($829 << 5 | $829 >>> 27) | 0;
$850 = $811 << 30 | $811 >>> 2;
$858 = $609 ^ $573 ^ $717 ^ $807;
$861 = $858 << 1 | $858 >>> 31;
$865 = $861 + 1859775393 + $814 + ($850 ^ $832 ^ $829) + ($847 << 5 | $847 >>> 27) | 0;
$868 = $829 << 30 | $829 >>> 2;
$876 = $591 ^ $627 ^ $735 ^ $825;
$879 = $876 << 1 | $876 >>> 31;
$883 = $879 + 1859775393 + $832 + ($868 ^ $850 ^ $847) + ($865 << 5 | $865 >>> 27) | 0;
$886 = $847 << 30 | $847 >>> 2;
$894 = $609 ^ $645 ^ $753 ^ $843;
$897 = $894 << 1 | $894 >>> 31;
$901 = $897 + 1859775393 + $850 + ($886 ^ $868 ^ $865) + ($883 << 5 | $883 >>> 27) | 0;
$904 = $865 << 30 | $865 >>> 2;
$912 = $663 ^ $627 ^ $771 ^ $861;
$915 = $912 << 1 | $912 >>> 31;
$919 = $915 + 1859775393 + $868 + ($904 ^ $886 ^ $883) + ($901 << 5 | $901 >>> 27) | 0;
$922 = $883 << 30 | $883 >>> 2;
$930 = $645 ^ $681 ^ $789 ^ $879;
$933 = $930 << 1 | $930 >>> 31;
$937 = $933 + 1859775393 + $886 + ($922 ^ $904 ^ $901) + ($919 << 5 | $919 >>> 27) | 0;
$940 = $901 << 30 | $901 >>> 2;
$950 = $663 ^ $699 ^ $807 ^ $897;
$953 = $950 << 1 | $950 >>> 31;
$957 = $953 + -1894007588 + $904 + (($919 | $940) & $922 | $919 & $940) + ($937 << 5 | $937 >>> 27) | 0;
$960 = $919 << 30 | $919 >>> 2;
$970 = $717 ^ $681 ^ $825 ^ $915;
$973 = $970 << 1 | $970 >>> 31;
$977 = $973 + -1894007588 + $922 + (($937 | $960) & $940 | $937 & $960) + ($957 << 5 | $957 >>> 27) | 0;
$980 = $937 << 30 | $937 >>> 2;
$990 = $699 ^ $735 ^ $843 ^ $933;
$993 = $990 << 1 | $990 >>> 31;
$997 = $993 + -1894007588 + $940 + (($957 | $980) & $960 | $957 & $980) + ($977 << 5 | $977 >>> 27) | 0;
$1000 = $957 << 30 | $957 >>> 2;
$1010 = $717 ^ $753 ^ $861 ^ $953;
$1013 = $1010 << 1 | $1010 >>> 31;
$1017 = $1013 + -1894007588 + $960 + (($977 | $1000) & $980 | $977 & $1000) + ($997 << 5 | $997 >>> 27) | 0;
$1020 = $977 << 30 | $977 >>> 2;
$1030 = $771 ^ $735 ^ $879 ^ $973;
$1033 = $1030 << 1 | $1030 >>> 31;
$1037 = $1033 + -1894007588 + $980 + (($997 | $1020) & $1000 | $997 & $1020) + ($1017 << 5 | $1017 >>> 27) | 0;
$1040 = $997 << 30 | $997 >>> 2;
$1050 = $753 ^ $789 ^ $897 ^ $993;
$1053 = $1050 << 1 | $1050 >>> 31;
$1057 = $1053 + -1894007588 + $1000 + (($1017 | $1040) & $1020 | $1017 & $1040) + ($1037 << 5 | $1037 >>> 27) | 0;
$1060 = $1017 << 30 | $1017 >>> 2;
$1070 = $771 ^ $807 ^ $915 ^ $1013;
$1073 = $1070 << 1 | $1070 >>> 31;
$1077 = $1073 + -1894007588 + $1020 + (($1037 | $1060) & $1040 | $1037 & $1060) + ($1057 << 5 | $1057 >>> 27) | 0;
$1080 = $1037 << 30 | $1037 >>> 2;
$1090 = $825 ^ $789 ^ $933 ^ $1033;
$1093 = $1090 << 1 | $1090 >>> 31;
$1097 = $1093 + -1894007588 + $1040 + (($1057 | $1080) & $1060 | $1057 & $1080) + ($1077 << 5 | $1077 >>> 27) | 0;
$1100 = $1057 << 30 | $1057 >>> 2;
$1110 = $807 ^ $843 ^ $953 ^ $1053;
$1113 = $1110 << 1 | $1110 >>> 31;
$1117 = $1113 + -1894007588 + $1060 + (($1077 | $1100) & $1080 | $1077 & $1100) + ($1097 << 5 | $1097 >>> 27) | 0;
$1120 = $1077 << 30 | $1077 >>> 2;
$1130 = $825 ^ $861 ^ $973 ^ $1073;
$1133 = $1130 << 1 | $1130 >>> 31;
$1137 = $1133 + -1894007588 + $1080 + (($1097 | $1120) & $1100 | $1097 & $1120) + ($1117 << 5 | $1117 >>> 27) | 0;
$1140 = $1097 << 30 | $1097 >>> 2;
$1150 = $879 ^ $843 ^ $993 ^ $1093;
$1153 = $1150 << 1 | $1150 >>> 31;
$1157 = $1153 + -1894007588 + $1100 + (($1117 | $1140) & $1120 | $1117 & $1140) + ($1137 << 5 | $1137 >>> 27) | 0;
$1160 = $1117 << 30 | $1117 >>> 2;
$1170 = $861 ^ $897 ^ $1013 ^ $1113;
$1173 = $1170 << 1 | $1170 >>> 31;
$1177 = $1173 + -1894007588 + $1120 + (($1137 | $1160) & $1140 | $1137 & $1160) + ($1157 << 5 | $1157 >>> 27) | 0;
$1180 = $1137 << 30 | $1137 >>> 2;
$1190 = $879 ^ $915 ^ $1033 ^ $1133;
$1193 = $1190 << 1 | $1190 >>> 31;
$1197 = $1193 + -1894007588 + $1140 + (($1157 | $1180) & $1160 | $1157 & $1180) + ($1177 << 5 | $1177 >>> 27) | 0;
$1200 = $1157 << 30 | $1157 >>> 2;
$1210 = $933 ^ $897 ^ $1053 ^ $1153;
$1213 = $1210 << 1 | $1210 >>> 31;
$1217 = $1213 + -1894007588 + $1160 + (($1177 | $1200) & $1180 | $1177 & $1200) + ($1197 << 5 | $1197 >>> 27) | 0;
$1220 = $1177 << 30 | $1177 >>> 2;
$1230 = $915 ^ $953 ^ $1073 ^ $1173;
$1233 = $1230 << 1 | $1230 >>> 31;
$1237 = $1233 + -1894007588 + $1180 + (($1197 | $1220) & $1200 | $1197 & $1220) + ($1217 << 5 | $1217 >>> 27) | 0;
$1240 = $1197 << 30 | $1197 >>> 2;
$1250 = $933 ^ $973 ^ $1093 ^ $1193;
$1253 = $1250 << 1 | $1250 >>> 31;
$1257 = $1253 + -1894007588 + $1200 + (($1217 | $1240) & $1220 | $1217 & $1240) + ($1237 << 5 | $1237 >>> 27) | 0;
$1260 = $1217 << 30 | $1217 >>> 2;
$1270 = $993 ^ $953 ^ $1113 ^ $1213;
$1273 = $1270 << 1 | $1270 >>> 31;
$1277 = $1273 + -1894007588 + $1220 + (($1237 | $1260) & $1240 | $1237 & $1260) + ($1257 << 5 | $1257 >>> 27) | 0;
$1280 = $1237 << 30 | $1237 >>> 2;
$1290 = $973 ^ $1013 ^ $1133 ^ $1233;
$1293 = $1290 << 1 | $1290 >>> 31;
$1297 = $1293 + -1894007588 + $1240 + (($1257 | $1280) & $1260 | $1257 & $1280) + ($1277 << 5 | $1277 >>> 27) | 0;
$1300 = $1257 << 30 | $1257 >>> 2;
$1310 = $993 ^ $1033 ^ $1153 ^ $1253;
$1313 = $1310 << 1 | $1310 >>> 31;
$1317 = $1313 + -1894007588 + $1260 + (($1277 | $1300) & $1280 | $1277 & $1300) + ($1297 << 5 | $1297 >>> 27) | 0;
$1320 = $1277 << 30 | $1277 >>> 2;
$1330 = $1053 ^ $1013 ^ $1173 ^ $1273;
$1333 = $1330 << 1 | $1330 >>> 31;
$1337 = $1333 + -1894007588 + $1280 + (($1297 | $1320) & $1300 | $1297 & $1320) + ($1317 << 5 | $1317 >>> 27) | 0;
$1340 = $1297 << 30 | $1297 >>> 2;
$1348 = $1033 ^ $1073 ^ $1193 ^ $1293;
$1351 = $1348 << 1 | $1348 >>> 31;
$1355 = $1351 + -899497514 + $1300 + ($1340 ^ $1320 ^ $1317) + ($1337 << 5 | $1337 >>> 27) | 0;
$1358 = $1317 << 30 | $1317 >>> 2;
$1366 = $1053 ^ $1093 ^ $1213 ^ $1313;
$1369 = $1366 << 1 | $1366 >>> 31;
$1373 = $1369 + -899497514 + $1320 + ($1358 ^ $1340 ^ $1337) + ($1355 << 5 | $1355 >>> 27) | 0;
$1376 = $1337 << 30 | $1337 >>> 2;
$1384 = $1113 ^ $1073 ^ $1233 ^ $1333;
$1387 = $1384 << 1 | $1384 >>> 31;
$1391 = $1387 + -899497514 + $1340 + ($1376 ^ $1358 ^ $1355) + ($1373 << 5 | $1373 >>> 27) | 0;
$1394 = $1355 << 30 | $1355 >>> 2;
$1402 = $1093 ^ $1133 ^ $1253 ^ $1351;
$1405 = $1402 << 1 | $1402 >>> 31;
$1409 = $1405 + -899497514 + $1358 + ($1394 ^ $1376 ^ $1373) + ($1391 << 5 | $1391 >>> 27) | 0;
$1412 = $1373 << 30 | $1373 >>> 2;
$1420 = $1113 ^ $1153 ^ $1273 ^ $1369;
$1423 = $1420 << 1 | $1420 >>> 31;
$1427 = $1423 + -899497514 + $1376 + ($1412 ^ $1394 ^ $1391) + ($1409 << 5 | $1409 >>> 27) | 0;
$1430 = $1391 << 30 | $1391 >>> 2;
$1438 = $1173 ^ $1133 ^ $1293 ^ $1387;
$1441 = $1438 << 1 | $1438 >>> 31;
$1445 = $1441 + -899497514 + $1394 + ($1430 ^ $1412 ^ $1409) + ($1427 << 5 | $1427 >>> 27) | 0;
$1448 = $1409 << 30 | $1409 >>> 2;
$1456 = $1153 ^ $1193 ^ $1313 ^ $1405;
$1459 = $1456 << 1 | $1456 >>> 31;
$1463 = $1459 + -899497514 + $1412 + ($1448 ^ $1430 ^ $1427) + ($1445 << 5 | $1445 >>> 27) | 0;
$1466 = $1427 << 30 | $1427 >>> 2;
$1474 = $1173 ^ $1213 ^ $1333 ^ $1423;
$1477 = $1474 << 1 | $1474 >>> 31;
$1481 = $1477 + -899497514 + $1430 + ($1466 ^ $1448 ^ $1445) + ($1463 << 5 | $1463 >>> 27) | 0;
$1484 = $1445 << 30 | $1445 >>> 2;
$1492 = $1233 ^ $1193 ^ $1351 ^ $1441;
$1495 = $1492 << 1 | $1492 >>> 31;
$1499 = $1495 + -899497514 + $1448 + ($1484 ^ $1466 ^ $1463) + ($1481 << 5 | $1481 >>> 27) | 0;
$1502 = $1463 << 30 | $1463 >>> 2;
$1510 = $1213 ^ $1253 ^ $1369 ^ $1459;
$1513 = $1510 << 1 | $1510 >>> 31;
$1517 = $1513 + -899497514 + $1466 + ($1502 ^ $1484 ^ $1481) + ($1499 << 5 | $1499 >>> 27) | 0;
$1520 = $1481 << 30 | $1481 >>> 2;
$1528 = $1233 ^ $1273 ^ $1387 ^ $1477;
$1531 = $1528 << 1 | $1528 >>> 31;
$1535 = $1531 + -899497514 + $1484 + ($1520 ^ $1502 ^ $1499) + ($1517 << 5 | $1517 >>> 27) | 0;
$1538 = $1499 << 30 | $1499 >>> 2;
$1546 = $1293 ^ $1253 ^ $1405 ^ $1495;
$1549 = $1546 << 1 | $1546 >>> 31;
$1553 = $1549 + -899497514 + $1502 + ($1538 ^ $1520 ^ $1517) + ($1535 << 5 | $1535 >>> 27) | 0;
$1556 = $1517 << 30 | $1517 >>> 2;
$1564 = $1273 ^ $1313 ^ $1423 ^ $1513;
$1567 = $1564 << 1 | $1564 >>> 31;
$1571 = $1567 + -899497514 + $1520 + ($1556 ^ $1538 ^ $1535) + ($1553 << 5 | $1553 >>> 27) | 0;
$1574 = $1535 << 30 | $1535 >>> 2;
$1582 = $1293 ^ $1333 ^ $1441 ^ $1531;
$1585 = $1582 << 1 | $1582 >>> 31;
$1589 = $1585 + -899497514 + $1538 + ($1574 ^ $1556 ^ $1553) + ($1571 << 5 | $1571 >>> 27) | 0;
$1592 = $1553 << 30 | $1553 >>> 2;
$1600 = $1351 ^ $1313 ^ $1459 ^ $1549;
$1603 = $1600 << 1 | $1600 >>> 31;
$1607 = $1603 + -899497514 + $1556 + ($1592 ^ $1574 ^ $1571) + ($1589 << 5 | $1589 >>> 27) | 0;
$1610 = $1571 << 30 | $1571 >>> 2;
$1618 = $1333 ^ $1369 ^ $1477 ^ $1567;
$1621 = $1618 << 1 | $1618 >>> 31;
$1625 = $1621 + -899497514 + $1574 + ($1610 ^ $1592 ^ $1589) + ($1607 << 5 | $1607 >>> 27) | 0;
$1628 = $1589 << 30 | $1589 >>> 2;
$1636 = $1351 ^ $1387 ^ $1495 ^ $1585;
$1639 = $1636 << 1 | $1636 >>> 31;
$1643 = $1639 + -899497514 + $1592 + ($1628 ^ $1610 ^ $1607) + ($1625 << 5 | $1625 >>> 27) | 0;
$1646 = $1607 << 30 | $1607 >>> 2;
$1654 = $1405 ^ $1369 ^ $1513 ^ $1603;
$1661 = ($1654 << 1 | $1654 >>> 31) + -899497514 + $1610 + ($1646 ^ $1628 ^ $1625) + ($1643 << 5 | $1643 >>> 27) | 0;
$1664 = $1625 << 30 | $1625 >>> 2;
$1672 = $1387 ^ $1423 ^ $1531 ^ $1621;
$1679 = ($1672 << 1 | $1672 >>> 31) + -899497514 + $1628 + ($1664 ^ $1646 ^ $1643) + ($1661 << 5 | $1661 >>> 27) | 0;
$1682 = $1643 << 30 | $1643 >>> 2;
$1690 = $1405 ^ $1441 ^ $1549 ^ $1639;
$6 = $6 + -899497514 + ($1690 << 1 | $1690 >>> 31) + $1646 + ($1682 ^ $1664 ^ $1661) + ($1679 << 5 | $1679 >>> 27) | 0;
HEAP32[$0 >> 2] = $6;
$13 = $1679 + (HEAP32[$1 >> 2] | 0) | 0;
HEAP32[$1 >> 2] = $13;
$10 = ($1661 << 30 | $1661 >>> 2) + (HEAP32[$2 >> 2] | 0) | 0;
HEAP32[$2 >> 2] = $10;
$11 = $1682 + (HEAP32[$3 >> 2] | 0) | 0;
HEAP32[$3 >> 2] = $11;
$34 = $1664 + (HEAP32[$4 >> 2] | 0) | 0;
HEAP32[$4 >> 2] = $34;
$$01 = $$01 + -1 | 0;
if (!$$01) break; else $$0 = $$0 + 64 | 0;
}
return 104;
}
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 = 0, $$pre = 0, $0 = 0, $10 = 0, $100 = 0, $102 = 0, $104 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $114 = 0, $115 = 0, $12 = 0, $120 = 0, $122 = 0, $125 = 0, $134 = 0, $138 = 0, $139 = 0, $141 = 0, $143 = 0, $15 = 0, $154 = 0, $156 = 0, $16 = 0, $164 = 0, $168 = 0, $170 = 0, $172 = 0, $174 = 0, $183 = 0, $187 = 0, $190 = 0, $192 = 0, $194 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $201 = 0, $203 = 0, $205 = 0, $207 = 0, $209 = 0, $211 = 0, $212 = 0, $22 = 0, $223 = 0, $229 = 0, $231 = 0, $234 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $250 = 0, $254 = 0, $256 = 0, $26 = 0, $260 = 0, $262 = 0, $264 = 0, $266 = 0, $268 = 0, $269 = 0, $278 = 0, $283 = 0, $285 = 0, $288 = 0, $297 = 0, $301 = 0, $304 = 0, $309 = 0, $313 = 0, $35 = 0, $39 = 0, $42 = 0, $43 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $60 = 0, $62 = 0, $65 = 0, $74 = 0, $78 = 0, $81 = 0, $83 = 0, $84 = 0, $87 = 0, $91 = 0, $93 = 0, $96 = 0, $algo$1$i = 0, $algo$1$i$47 = 0, $algo$1$i$51 = 0, $algo$1$i$55 = 0, $algo$1$i$59 = 0, $algo$1$i$63 = 0, $i$02$i = 0, $i$02$i$45 = 0, $i$02$i$45$lcssa = 0, $i$02$i$49 = 0, $i$02$i$49$lcssa = 0, $i$02$i$53 = 0, $i$02$i$53$lcssa = 0, $i$02$i$57 = 0, $i$02$i$57$lcssa = 0, $i$02$i$61 = 0, $i$02$i$61$lcssa = 0, $i$02$i$lcssa = 0, $n = 0, $parsed_flags = 0, $random_override$0$ph = 0, $random_override$1 = 0, $random_override14$0$ph = 0, $random_override14$1 = 0, $random_override20$0$ph = 0, $random_override20$1 = 0, $random_override_len$0$ph = 0, $random_override_len$1 = 0, $random_override_len15$0$ph = 0, $random_override_len15$1 = 0, $random_override_len21$0$ph = 0, $random_override_len21$1 = 0, $rc$0$ph = 0, $rc$10$ph = 0, $rc$17$ph = 0, $rc$21$ph = 0, $rc$23 = 0, $rc$3 = 0, $rc$4 = 0, $rc$7 = 0, $rc$8 = 0, $rc$9 = 0, $unknown_flag$1 = 0, $value$068 = 0, $valuelen = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$n = sp + 8 | 0;
$parsed_flags = sp + 4 | 0;
$valuelen = sp;
HEAP32[$parsed_flags >> 2] = 0;
HEAP32[$ret_mpi >> 2] = 0;
$0 = __gcry_sexp_find_token($input, 37231, 0) | 0;
if (!$0) {
$2 = __gcry_sexp_nth_mpi($input, 0, 0) | 0;
HEAP32[$ret_mpi >> 2] = $2;
$$0 = ($2 | 0) != 0 ? 0 : 65;
STACKTOP = sp;
return $$0 | 0;
}
$5 = __gcry_sexp_find_token($0, 46546, 0) | 0;
$$pre = $ctx + 8 | 0;
if (!$5) $unknown_flag$1 = 0; else {
$$ = (__gcry_pk_util_parse_flaglist($5, $parsed_flags, $$pre) | 0) != 0 & 1;
__gcry_sexp_release($5);
$unknown_flag$1 = $$;
}
if ((HEAP32[$$pre >> 2] | 0) == 5) HEAP32[$$pre >> 2] = 0;
$10 = __gcry_sexp_find_token($0, 37236, 0) | 0;
$11 = ($10 | 0) != 0;
if ($11) {
$42 = 0;
$87 = 0;
label = 9;
} else {
$12 = __gcry_sexp_find_token($0, 40359, 0) | 0;
if (!$12) {
$309 = 0;
$rc$23 = 65;
} else {
$42 = $12;
$87 = 1;
label = 9;
}
}
L13 : do if ((label | 0) == 9) if (!$unknown_flag$1) {
$15 = HEAP32[$$pre >> 2] | 0;
$16 = ($15 | 0) == 0;
if ($16) {
if (HEAP32[$parsed_flags >> 2] & 4096) {
L20 : do if ($87) {
$20 = __gcry_sexp_find_token($0, 37199, 0) | 0;
if (!$20) $rc$3 = 65; else {
$22 = __gcry_sexp_nth_data($20, 1, $n) | 0;
L23 : do if (!$22) $rc$0$ph = 68; else {
$24 = HEAP32[$n >> 2] | 0;
$i$02$i = 0;
while (1) {
$26 = HEAP32[4172 + ($i$02$i << 3) >> 2] | 0;
if ((_strlen($26) | 0) == ($24 | 0)) if (!(_memcmp($26, $22, $24) | 0)) {
$i$02$i$lcssa = $i$02$i;
label = 19;
break;
}
$i$02$i = $i$02$i + 1 | 0;
if (($i$02$i | 0) == 12) {
label = 20;
break;
}
}
do if ((label | 0) == 19) $algo$1$i = HEAP32[4172 + ($i$02$i$lcssa << 3) + 4 >> 2] | 0; else if ((label | 0) == 20) {
$35 = __gcry_malloc($24 + 1 | 0) | 0;
if (!$35) {
HEAP32[$ctx + 16 >> 2] = 0;
$rc$0$ph = 5;
break L23;
} else {
_memcpy($35 | 0, $22 | 0, $24 | 0) | 0;
HEAP8[$35 + $24 >> 0] = 0;
$39 = __gcry_md_map_name($35) | 0;
__gcry_free($35);
$algo$1$i = $39;
break;
}
} while (0);
HEAP32[$ctx + 16 >> 2] = $algo$1$i;
if (!$algo$1$i) $rc$0$ph = 5; else {
__gcry_sexp_release($20);
$43 = __gcry_sexp_nth_buffer($42, 1, $valuelen) | 0;
if (!$43) {
HEAP32[$valuelen >> 2] = 0;
$45 = __gcry_malloc(1) | 0;
if (!$45) {
$50 = _gpg_err_code_from_syserror() | 0;
if (!$50) $value$068 = 0; else {
$rc$3 = $50;
break L20;
}
} else $value$068 = $45;
} else {
$47 = HEAP32[$valuelen >> 2] | 0;
if ($47 << 3 >>> 0 < $47 >>> 0) {
__gcry_free($43);
$rc$3 = 67;
break L20;
} else $value$068 = $43;
}
HEAP32[$ret_mpi >> 2] = __gcry_mpi_set_opaque(0, $value$068, HEAP32[$valuelen >> 2] << 3) | 0;
$rc$3 = 0;
break L20;
}
} while (0);
__gcry_sexp_release($20);
$rc$3 = $rc$0$ph;
}
} else $rc$3 = 65; while (0);
$309 = $42;
$rc$23 = $rc$3;
break;
}
if ($11 & $16) if (HEAP32[$parsed_flags >> 2] & 18) {
if ((__gcry_sexp_length($10) | 0) != 3) {
$309 = $42;
$rc$23 = 65;
break;
}
$60 = __gcry_sexp_nth_data($10, 1, $n) | 0;
$62 = HEAP32[$n >> 2] | 0;
if (!(($60 | 0) != 0 & ($62 | 0) != 0)) {
$309 = $42;
$rc$23 = 65;
break;
}
$i$02$i$45 = 0;
while (1) {
$65 = HEAP32[4172 + ($i$02$i$45 << 3) >> 2] | 0;
if ((_strlen($65) | 0) == ($62 | 0)) if (!(_memcmp($65, $60, $62) | 0)) {
$i$02$i$45$lcssa = $i$02$i$45;
label = 40;
break;
}
$i$02$i$45 = $i$02$i$45 + 1 | 0;
if (($i$02$i$45 | 0) == 12) {
label = 41;
break;
}
}
do if ((label | 0) == 40) {
$algo$1$i$47 = HEAP32[4172 + ($i$02$i$45$lcssa << 3) + 4 >> 2] | 0;
label = 44;
} else if ((label | 0) == 41) {
$74 = __gcry_malloc($62 + 1 | 0) | 0;
if (!$74) {
HEAP32[$ctx + 16 >> 2] = 0;
$rc$4 = 5;
break;
} else {
_memcpy($74 | 0, $60 | 0, $62 | 0) | 0;
HEAP8[$74 + $62 >> 0] = 0;
$78 = __gcry_md_map_name($74) | 0;
__gcry_free($74);
$algo$1$i$47 = $78;
label = 44;
break;
}
} while (0);
do if ((label | 0) == 44) {
HEAP32[$ctx + 16 >> 2] = $algo$1$i$47;
if (!$algo$1$i$47) $rc$4 = 5; else {
$81 = __gcry_sexp_nth_buffer($10, 2, $valuelen) | 0;
if (!$81) $rc$4 = 65; else {
$83 = HEAP32[$valuelen >> 2] | 0;
$84 = $83 << 3;
if ($84 >>> 0 < $83 >>> 0) {
__gcry_free($81);
$rc$4 = 67;
break;
} else {
HEAP32[$ret_mpi >> 2] = __gcry_mpi_set_opaque(0, $81, $84) | 0;
$rc$4 = 0;
break;
}
}
}
} while (0);
$309 = $42;
$rc$23 = $rc$4;
break;
}
if ($87 & $16) {
if (HEAP32[$parsed_flags >> 2] & 2) {
$309 = $42;
$rc$23 = 70;
break;
}
$91 = __gcry_sexp_nth_mpi($42, 1, 5) | 0;
HEAP32[$ret_mpi >> 2] = $91;
$309 = $42;
$rc$23 = ($91 | 0) == 0 ? 65 : 0;
break;
} else $115 = 0;
} else {
$93 = ($15 | 0) == 1;
if ($87 & $93) if (!(HEAP32[$ctx >> 2] | 0)) {
$96 = __gcry_sexp_nth_data($42, 1, $valuelen) | 0;
L77 : do if (($96 | 0) != 0 & (HEAP32[$valuelen >> 2] | 0) != 0) {
$100 = __gcry_sexp_find_token($0, 37215, 0) | 0;
L79 : do if (!$100) {
$random_override$1 = 0;
$random_override_len$1 = 0;
} else {
$102 = __gcry_sexp_nth_data($100, 1, $n) | 0;
if (!$102) {
__gcry_sexp_release($100);
$rc$7 = 68;
break L77;
}
$104 = HEAP32[$n >> 2] | 0;
do if (!$104) {
$random_override$0$ph = 0;
$random_override_len$0$ph = 0;
} else {
$106 = __gcry_malloc($104) | 0;
if (!$106) {
$109 = _gpg_err_code_from_syserror() | 0;
__gcry_sexp_release($100);
if (!$109) {
$random_override$1 = 0;
$random_override_len$1 = 0;
break L79;
} else {
$rc$7 = $109;
break L77;
}
} else {
$108 = HEAP32[$n >> 2] | 0;
_memcpy($106 | 0, $102 | 0, $108 | 0) | 0;
$random_override$0$ph = $106;
$random_override_len$0$ph = $108;
break;
}
} while (0);
__gcry_sexp_release($100);
$random_override$1 = $random_override$0$ph;
$random_override_len$1 = $random_override_len$0$ph;
} while (0);
$114 = __gcry_rsa_pkcs1_encode_for_enc($ret_mpi, HEAP32[$ctx + 4 >> 2] | 0, $96, HEAP32[$valuelen >> 2] | 0, $random_override$1, $random_override_len$1) | 0;
__gcry_free($random_override$1);
$rc$7 = $114;
} else $rc$7 = 65; while (0);
$309 = $42;
$rc$23 = $rc$7;
break;
} else $115 = $93; else $115 = $93;
}
if ($11 & $115) if ((HEAP32[$ctx >> 2] & -2 | 0) == 2) {
if ((__gcry_sexp_length($10) | 0) != 3) {
$309 = $42;
$rc$23 = 65;
break;
}
$120 = __gcry_sexp_nth_data($10, 1, $n) | 0;
$122 = HEAP32[$n >> 2] | 0;
if (!(($120 | 0) != 0 & ($122 | 0) != 0)) {
$309 = $42;
$rc$23 = 65;
break;
}
$i$02$i$49 = 0;
while (1) {
$125 = HEAP32[4172 + ($i$02$i$49 << 3) >> 2] | 0;
if ((_strlen($125) | 0) == ($122 | 0)) if (!(_memcmp($125, $120, $122) | 0)) {
$i$02$i$49$lcssa = $i$02$i$49;
label = 74;
break;
}
$i$02$i$49 = $i$02$i$49 + 1 | 0;
if (($i$02$i$49 | 0) == 12) {
label = 75;
break;
}
}
do if ((label | 0) == 74) {
$algo$1$i$51 = HEAP32[4172 + ($i$02$i$49$lcssa << 3) + 4 >> 2] | 0;
label = 78;
} else if ((label | 0) == 75) {
$134 = __gcry_malloc($122 + 1 | 0) | 0;
if (!$134) {
HEAP32[$ctx + 16 >> 2] = 0;
$rc$8 = 5;
break;
} else {
_memcpy($134 | 0, $120 | 0, $122 | 0) | 0;
HEAP8[$134 + $122 >> 0] = 0;
$138 = __gcry_md_map_name($134) | 0;
__gcry_free($134);
$algo$1$i$51 = $138;
label = 78;
break;
}
} while (0);
if ((label | 0) == 78) {
$139 = $ctx + 16 | 0;
HEAP32[$139 >> 2] = $algo$1$i$51;
if (!$algo$1$i$51) $rc$8 = 5; else {
$141 = __gcry_sexp_nth_data($10, 2, $valuelen) | 0;
$143 = HEAP32[$valuelen >> 2] | 0;
if (($141 | 0) != 0 & ($143 | 0) != 0) $rc$8 = __gcry_rsa_pkcs1_encode_for_sig($ret_mpi, HEAP32[$ctx + 4 >> 2] | 0, $141, $143, HEAP32[$139 >> 2] | 0) | 0; else $rc$8 = 65;
}
}
$309 = $42;
$rc$23 = $rc$8;
break;
}
if ($87 & ($15 | 0) == 2) if ((HEAP32[$ctx >> 2] & -2 | 0) == 2) {
if ((__gcry_sexp_length($42) | 0) == 2) {
$154 = __gcry_sexp_nth_data($42, 1, $valuelen) | 0;
$156 = HEAP32[$valuelen >> 2] | 0;
if (($154 | 0) != 0 & ($156 | 0) != 0) $rc$9 = __gcry_rsa_pkcs1_encode_raw_for_sig($ret_mpi, HEAP32[$ctx + 4 >> 2] | 0, $154, $156) | 0; else $rc$9 = 65;
} else $rc$9 = 65;
$309 = $42;
$rc$23 = $rc$9;
break;
}
if ($87 & ($15 | 0) == 3) if (!(HEAP32[$ctx >> 2] | 0)) {
$164 = __gcry_sexp_nth_data($42, 1, $valuelen) | 0;
L126 : do if (($164 | 0) != 0 & (HEAP32[$valuelen >> 2] | 0) != 0) {
$168 = __gcry_sexp_find_token($0, 37199, 0) | 0;
L128 : do if ($168) {
$170 = __gcry_sexp_nth_data($168, 1, $n) | 0;
L130 : do if (!$170) $rc$10$ph = 68; else {
$172 = HEAP32[$n >> 2] | 0;
$i$02$i$53 = 0;
while (1) {
$174 = HEAP32[4172 + ($i$02$i$53 << 3) >> 2] | 0;
if ((_strlen($174) | 0) == ($172 | 0)) if (!(_memcmp($174, $170, $172) | 0)) {
$i$02$i$53$lcssa = $i$02$i$53;
label = 97;
break;
}
$i$02$i$53 = $i$02$i$53 + 1 | 0;
if (($i$02$i$53 | 0) == 12) {
label = 98;
break;
}
}
do if ((label | 0) == 97) $algo$1$i$55 = HEAP32[4172 + ($i$02$i$53$lcssa << 3) + 4 >> 2] | 0; else if ((label | 0) == 98) {
$183 = __gcry_malloc($172 + 1 | 0) | 0;
if (!$183) {
HEAP32[$ctx + 16 >> 2] = 0;
$rc$10$ph = 5;
break L130;
} else {
_memcpy($183 | 0, $170 | 0, $172 | 0) | 0;
HEAP8[$183 + $172 >> 0] = 0;
$187 = __gcry_md_map_name($183) | 0;
__gcry_free($183);
$algo$1$i$55 = $187;
break;
}
} while (0);
HEAP32[$ctx + 16 >> 2] = $algo$1$i$55;
if (!$algo$1$i$55) $rc$10$ph = 5; else {
__gcry_sexp_release($168);
break L128;
}
} while (0);
__gcry_sexp_release($168);
$rc$17$ph = $rc$10$ph;
break L126;
} while (0);
$190 = __gcry_sexp_find_token($0, 37209, 0) | 0;
L147 : do if ($190) {
$192 = __gcry_sexp_nth_data($190, 1, $n) | 0;
if (!$192) {
__gcry_sexp_release($190);
$rc$17$ph = 68;
break L126;
}
$194 = HEAP32[$n >> 2] | 0;
do if ($194) {
$196 = __gcry_malloc($194) | 0;
HEAP32[$ctx + 20 >> 2] = $196;
if (!$196) {
$201 = _gpg_err_code_from_syserror() | 0;
__gcry_sexp_release($190);
if (!$201) break L147; else {
$rc$17$ph = $201;
break L126;
}
} else {
$199 = HEAP32[$n >> 2] | 0;
_memcpy($196 | 0, $192 | 0, $199 | 0) | 0;
HEAP32[$ctx + 24 >> 2] = $199;
break;
}
} while (0);
__gcry_sexp_release($190);
} while (0);
$203 = __gcry_sexp_find_token($0, 37215, 0) | 0;
L159 : do if (!$203) {
$random_override14$1 = 0;
$random_override_len15$1 = 0;
} else {
$205 = __gcry_sexp_nth_data($203, 1, $n) | 0;
if (!$205) {
__gcry_sexp_release($203);
$rc$17$ph = 68;
break L126;
}
$207 = HEAP32[$n >> 2] | 0;
do if (!$207) {
$random_override14$0$ph = 0;
$random_override_len15$0$ph = 0;
} else {
$209 = __gcry_malloc($207) | 0;
if (!$209) {
$212 = _gpg_err_code_from_syserror() | 0;
__gcry_sexp_release($203);
if (!$212) {
$random_override14$1 = 0;
$random_override_len15$1 = 0;
break L159;
} else {
$rc$17$ph = $212;
break L126;
}
} else {
$211 = HEAP32[$n >> 2] | 0;
_memcpy($209 | 0, $205 | 0, $211 | 0) | 0;
$random_override14$0$ph = $209;
$random_override_len15$0$ph = $211;
break;
}
} while (0);
__gcry_sexp_release($203);
$random_override14$1 = $random_override14$0$ph;
$random_override_len15$1 = $random_override_len15$0$ph;
} while (0);
$223 = __gcry_rsa_oaep_encode($ret_mpi, HEAP32[$ctx + 4 >> 2] | 0, HEAP32[$ctx + 16 >> 2] | 0, $164, HEAP32[$valuelen >> 2] | 0, HEAP32[$ctx + 20 >> 2] | 0, HEAP32[$ctx + 24 >> 2] | 0, $random_override14$1, $random_override_len15$1) | 0;
__gcry_free($random_override14$1);
$rc$17$ph = $223;
} else $rc$17$ph = 65; while (0);
$309 = $42;
$rc$23 = $rc$17$ph;
break;
}
if ($11 & ($15 | 0) == 4) {
if ((HEAP32[$ctx >> 2] | 0) != 2) {
if ((HEAP32[$ctx >> 2] | 0) != 3) {
$309 = $42;
$rc$23 = 70;
break;
}
if ((__gcry_sexp_length($10) | 0) != 3) {
$309 = $42;
$rc$23 = 65;
break;
}
$283 = __gcry_sexp_nth_data($10, 1, $n) | 0;
$285 = HEAP32[$n >> 2] | 0;
if (($283 | 0) != 0 & ($285 | 0) != 0) $i$02$i$61 = 0; else {
$309 = $42;
$rc$23 = 65;
break;
}
while (1) {
$288 = HEAP32[4172 + ($i$02$i$61 << 3) >> 2] | 0;
if ((_strlen($288) | 0) == ($285 | 0)) if (!(_memcmp($288, $283, $285) | 0)) {
$i$02$i$61$lcssa = $i$02$i$61;
label = 155;
break;
}
$i$02$i$61 = $i$02$i$61 + 1 | 0;
if (($i$02$i$61 | 0) == 12) {
label = 156;
break;
}
}
do if ((label | 0) == 155) $algo$1$i$63 = HEAP32[4172 + ($i$02$i$61$lcssa << 3) + 4 >> 2] | 0; else if ((label | 0) == 156) {
$297 = __gcry_malloc($285 + 1 | 0) | 0;
if (!$297) {
HEAP32[$ctx + 16 >> 2] = 0;
$309 = $42;
$rc$23 = 5;
break L13;
} else {
_memcpy($297 | 0, $283 | 0, $285 | 0) | 0;
HEAP8[$297 + $285 >> 0] = 0;
$301 = __gcry_md_map_name($297) | 0;
__gcry_free($297);
$algo$1$i$63 = $301;
break;
}
} while (0);
HEAP32[$ctx + 16 >> 2] = $algo$1$i$63;
if (!$algo$1$i$63) {
$309 = $42;
$rc$23 = 5;
break;
}
$304 = __gcry_sexp_nth_mpi($10, 2, 5) | 0;
HEAP32[$ret_mpi >> 2] = $304;
HEAP32[$ctx + 32 >> 2] = 5;
HEAP32[$ctx + 36 >> 2] = HEAP32[$ret_mpi >> 2];
$309 = $42;
$rc$23 = ($304 | 0) == 0 ? 65 : 0;
break;
}
if ((__gcry_sexp_length($10) | 0) == 3) {
$229 = __gcry_sexp_nth_data($10, 1, $n) | 0;
$231 = HEAP32[$n >> 2] | 0;
if (($229 | 0) != 0 & ($231 | 0) != 0) {
$i$02$i$57 = 0;
while (1) {
$234 = HEAP32[4172 + ($i$02$i$57 << 3) >> 2] | 0;
if ((_strlen($234) | 0) == ($231 | 0)) if (!(_memcmp($234, $229, $231) | 0)) {
$i$02$i$57$lcssa = $i$02$i$57;
label = 130;
break;
}
$i$02$i$57 = $i$02$i$57 + 1 | 0;
if (($i$02$i$57 | 0) == 12) {
label = 131;
break;
}
}
do if ((label | 0) == 130) {
$algo$1$i$59 = HEAP32[4172 + ($i$02$i$57$lcssa << 3) + 4 >> 2] | 0;
label = 134;
} else if ((label | 0) == 131) {
$243 = __gcry_malloc($231 + 1 | 0) | 0;
if (!$243) {
HEAP32[$ctx + 16 >> 2] = 0;
$rc$21$ph = 5;
break;
} else {
_memcpy($243 | 0, $229 | 0, $231 | 0) | 0;
HEAP8[$243 + $231 >> 0] = 0;
$247 = __gcry_md_map_name($243) | 0;
__gcry_free($243);
$algo$1$i$59 = $247;
label = 134;
break;
}
} while (0);
L205 : do if ((label | 0) == 134) {
$248 = $ctx + 16 | 0;
HEAP32[$248 >> 2] = $algo$1$i$59;
if (!$algo$1$i$59) $rc$21$ph = 5; else {
$250 = __gcry_sexp_nth_data($10, 2, $valuelen) | 0;
if (($250 | 0) != 0 & (HEAP32[$valuelen >> 2] | 0) != 0) {
$254 = __gcry_sexp_find_token($0, 37241, 0) | 0;
if ($254) {
$256 = __gcry_sexp_nth_data($254, 1, $n) | 0;
if (!$256) {
$rc$21$ph = 68;
break;
}
HEAP32[$ctx + 28 >> 2] = _strtoul($256, 0, 10) | 0;
__gcry_sexp_release($254);
}
$260 = __gcry_sexp_find_token($0, 37215, 0) | 0;
L213 : do if (!$260) {
$random_override20$1 = 0;
$random_override_len21$1 = 0;
} else {
$262 = __gcry_sexp_nth_data($260, 1, $n) | 0;
if (!$262) {
__gcry_sexp_release($260);
$rc$21$ph = 68;
break L205;
}
$264 = HEAP32[$n >> 2] | 0;
do if (!$264) {
$random_override20$0$ph = 0;
$random_override_len21$0$ph = 0;
} else {
$266 = __gcry_malloc($264) | 0;
if (!$266) {
$269 = _gpg_err_code_from_syserror() | 0;
__gcry_sexp_release($260);
if (!$269) {
$random_override20$1 = 0;
$random_override_len21$1 = 0;
break L213;
} else {
$rc$21$ph = $269;
break L205;
}
} else {
$268 = HEAP32[$n >> 2] | 0;
_memcpy($266 | 0, $262 | 0, $268 | 0) | 0;
$random_override20$0$ph = $266;
$random_override_len21$0$ph = $268;
break;
}
} while (0);
__gcry_sexp_release($260);
$random_override20$1 = $random_override20$0$ph;
$random_override_len21$1 = $random_override_len21$0$ph;
} while (0);
$278 = __gcry_rsa_pss_encode($ret_mpi, (HEAP32[$ctx + 4 >> 2] | 0) + -1 | 0, HEAP32[$248 >> 2] | 0, $250, HEAP32[$valuelen >> 2] | 0, HEAP32[$ctx + 28 >> 2] | 0, $random_override20$1, $random_override_len21$1) | 0;
__gcry_free($random_override20$1);
$rc$21$ph = $278;
} else $rc$21$ph = 65;
}
} while (0);
$309 = $42;
$rc$23 = $rc$21$ph;
} else {
$309 = $42;
$rc$23 = 65;
}
} else {
$309 = $42;
$rc$23 = 65;
}
} else {
$309 = $42;
$rc$23 = 70;
}
} else {
$309 = $42;
$rc$23 = 72;
} while (0);
__gcry_sexp_release($0);
__gcry_sexp_release($10);
__gcry_sexp_release($309);
if (!$rc$23) {
HEAP32[$ctx + 12 >> 2] = HEAP32[$parsed_flags >> 2];
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
$313 = $ctx + 20 | 0;
__gcry_free(HEAP32[$313 >> 2] | 0);
HEAP32[$313 >> 2] = 0;
$$0 = $rc$23;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
function _ecc_generate($genparms, $r_skey) {
$genparms = $genparms | 0;
$r_skey = $r_skey | 0;
var $$1 = 0, $$byval_copy$71 = 0, $$pre$phi$iZ2D = 0, $$pre$phi16Z2D = 0, $$pre$phi18Z2D = 0, $$pre$phi20Z2D = 0, $$pre$phi22Z2D = 0, $$pre$phi24Z2D = 0, $$pre$phi4$iZ2D = 0, $0 = 0, $1 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $126 = 0, $129 = 0, $134 = 0, $15 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $160 = 0, $163 = 0, $18 = 0, $183 = 0, $197 = 0, $198 = 0, $204 = 0, $209 = 0, $219 = 0, $220 = 0, $221 = 0, $23 = 0, $238 = 0, $24 = 0, $240 = 0, $241 = 0, $244 = 0, $246 = 0, $250 = 0, $255 = 0, $257 = 0, $26 = 0, $262 = 0, $263 = 0, $269 = 0, $270 = 0, $271 = 0, $272 = 0, $274 = 0, $276 = 0, $277 = 0, $28 = 0, $284 = 0, $287 = 0, $291 = 0, $292 = 0, $293 = 0, $295 = 0, $297 = 0, $299 = 0, $3 = 0, $30 = 0, $301 = 0, $32 = 0, $34 = 0, $46 = 0, $47 = 0, $5 = 0, $50 = 0, $52 = 0, $55 = 0, $60 = 0, $61 = 0, $67 = 0, $7 = 0, $73 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $81 = 0, $9 = 0, $91 = 0, $E = 0, $Gx$0 = 0, $Gy$0 = 0, $Q$i = 0, $Qx$09 = 0, $Qx$1 = 0, $Qx$2 = 0, $Qx$3 = 0, $Qy$010 = 0, $Qy$1 = 0, $Qy$2 = 0, $Qy$3 = 0, $R_$i$2$i = 0, $base$0 = 0, $ctx$0 = 0, $curve_flags = 0, $curve_info = 0, $curve_name$0 = 0, $flags = 0, $nbits = 0, $pk$i$1$i = 0, $public$1 = 0, $public$2 = 0, $rc$1 = 0, $rc$2 = 0, $secret$0 = 0, $sk = 0, $test$0$i$i = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer12 = 0, $vararg_buffer14 = 0, $vararg_buffer16 = 0, $vararg_buffer18 = 0, $vararg_buffer2 = 0, $vararg_buffer20 = 0, $vararg_buffer22 = 0, $vararg_buffer24 = 0, $vararg_buffer26 = 0, $vararg_buffer28 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer37 = 0, $vararg_buffer39 = 0, $vararg_buffer5 = 0, $vararg_buffer60 = 0, $vararg_buffer69 = 0, $vararg_buffer8 = 0, $x$0$i = 0, $x$2$i = 0, $y$0$i = 0, $y$2$i = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 544 | 0;
$$byval_copy$71 = sp + 496 | 0;
$vararg_buffer69 = sp + 248 | 0;
$vararg_buffer60 = sp + 216 | 0;
$vararg_buffer39 = sp + 136 | 0;
$vararg_buffer37 = sp + 128 | 0;
$vararg_buffer34 = sp + 120 | 0;
$vararg_buffer31 = sp + 112 | 0;
$vararg_buffer28 = sp + 104 | 0;
$vararg_buffer26 = sp + 96 | 0;
$vararg_buffer24 = sp + 88 | 0;
$vararg_buffer22 = sp + 80 | 0;
$vararg_buffer20 = sp + 72 | 0;
$vararg_buffer18 = sp + 64 | 0;
$vararg_buffer16 = sp + 56 | 0;
$vararg_buffer14 = sp + 48 | 0;
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer10 = sp + 32 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer5 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$pk$i$1$i = sp + 440 | 0;
$R_$i$2$i = sp + 428 | 0;
$0 = sp + 384 | 0;
$Q$i = sp + 372 | 0;
$nbits = sp + 368 | 0;
$E = sp + 324 | 0;
$sk = sp + 264 | 0;
$curve_info = sp + 260 | 0;
$curve_flags = sp + 256 | 0;
$flags = sp + 252 | 0;
HEAP32[$curve_info >> 2] = 0;
HEAP32[$curve_flags >> 2] = 0;
HEAP32[$flags >> 2] = 0;
dest = $E;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
dest = $sk;
stop = dest + 60 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
$1 = __gcry_pk_util_get_nbits($genparms, $nbits) | 0;
if ($1) {
$$1 = $1;
STACKTOP = sp;
return $$1 | 0;
}
$3 = __gcry_sexp_find_token($genparms, 46586, 0) | 0;
if (!$3) $curve_name$0 = 0; else {
$5 = __gcry_sexp_nth_string($3, 1) | 0;
__gcry_sexp_release($3);
if (!$5) {
$$1 = 65;
STACKTOP = sp;
return $$1 | 0;
} else $curve_name$0 = $5;
}
$7 = __gcry_sexp_find_token($genparms, 46546, 0) | 0;
if (!$7) label = 6; else {
$9 = __gcry_pk_util_parse_flaglist($7, $flags, 0) | 0;
__gcry_sexp_release($7);
if (!$9) label = 6; else {
$Gx$0 = 0;
$Gy$0 = 0;
$Qx$3 = 0;
$Qy$3 = 0;
$base$0 = 0;
$ctx$0 = 0;
$public$2 = 0;
$rc$2 = $9;
$secret$0 = 0;
}
}
do if ((label | 0) == 6) {
$11 = __gcry_sexp_find_token($genparms, 48293, 0) | 0;
if ($11) {
HEAP32[$flags >> 2] = HEAP32[$flags >> 2] | 32;
__gcry_sexp_release($11);
}
$15 = HEAP32[$nbits >> 2] | 0;
if (!(($curve_name$0 | 0) != 0 | ($15 | 0) != 0)) {
$$1 = 68;
STACKTOP = sp;
return $$1 | 0;
}
$18 = __gcry_ecc_fill_in_curve($15, $curve_name$0, $E, $nbits) | 0;
__gcry_free($curve_name$0);
if (!$18) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$$pre$phi16Z2D = $E + 4 | 0;
$$pre$phi18Z2D = $E + 8 | 0;
$$pre$phi20Z2D = $E + 12 | 0;
$$pre$phi22Z2D = $E + 16 | 0;
} else {
$23 = __gcry_ecc_model2str(HEAP32[$E >> 2] | 0) | 0;
$24 = $E + 4 | 0;
$26 = __gcry_ecc_dialect2str(HEAP32[$24 >> 2] | 0) | 0;
HEAP32[$vararg_buffer >> 2] = $23;
HEAP32[$vararg_buffer + 4 >> 2] = $26;
__gcry_log_debug(48307, $vararg_buffer);
$28 = HEAP32[$E + 40 >> 2] | 0;
if ($28) {
HEAP32[$vararg_buffer2 >> 2] = $28;
__gcry_log_debug(48332, $vararg_buffer2);
}
$30 = $E + 8 | 0;
__gcry_log_printmpi(48354, HEAP32[$30 >> 2] | 0);
$32 = $E + 12 | 0;
__gcry_log_printmpi(48370, HEAP32[$32 >> 2] | 0);
$34 = $E + 16 | 0;
__gcry_log_printmpi(48386, HEAP32[$34 >> 2] | 0);
__gcry_log_printmpi(48402, HEAP32[$E + 32 >> 2] | 0);
__gcry_log_printmpi(48418, HEAP32[$E + 36 >> 2] | 0);
__gcry_mpi_point_log(48434, $E + 20 | 0, 0);
$$pre$phi16Z2D = $24;
$$pre$phi18Z2D = $30;
$$pre$phi20Z2D = $32;
$$pre$phi22Z2D = $34;
}
$46 = __gcry_mpi_ec_p_internal_new(HEAP32[$E >> 2] | 0, HEAP32[$$pre$phi16Z2D >> 2] | 0, 0, HEAP32[$$pre$phi18Z2D >> 2] | 0, HEAP32[$$pre$phi20Z2D >> 2] | 0, HEAP32[$$pre$phi22Z2D >> 2] | 0) | 0;
$47 = HEAP32[$flags >> 2] | 0;
if (!($47 & 4096)) {
$50 = HEAP32[$nbits >> 2] | 0;
$52 = __gcry_mpi_get_nbits(HEAP32[$$pre$phi18Z2D >> 2] | 0) | 0;
__gcry_mpi_point_init($Q$i);
$55 = 2 - ($47 >>> 5 & 1) | 0;
if ((HEAP32[$46 + 4 >> 2] | 0) == 1) {
$60 = $sk + 56 | 0;
HEAP32[$60 >> 2] = __gcry_mpi_snew(256) | 0;
$61 = __gcry_random_bytes_secure(32, $55) | 0;
HEAP8[$61 >> 0] = (HEAPU8[$61 >> 0] | 0) & 63 | 64;
$67 = $61 + 31 | 0;
HEAP8[$67 >> 0] = (HEAPU8[$67 >> 0] | 0) & 248;
__gcry_mpi_set_buffer(HEAP32[$60 >> 2] | 0, $61, 32, 0);
__gcry_free($61);
$$pre$phi$iZ2D = $60;
$$pre$phi4$iZ2D = $E + 32 | 0;
$78 = HEAP32[$60 >> 2] | 0;
} else {
$73 = $E + 32 | 0;
$75 = __gcry_dsa_gen_k(HEAP32[$73 >> 2] | 0, $55) | 0;
$76 = $sk + 56 | 0;
HEAP32[$76 >> 2] = $75;
$$pre$phi$iZ2D = $76;
$$pre$phi4$iZ2D = $73;
$78 = $75;
}
$77 = $E + 20 | 0;
__gcry_mpi_ec_mul_point($Q$i, $78, $77, $46);
HEAP32[$sk >> 2] = HEAP32[$E >> 2];
$81 = $sk + 4 | 0;
HEAP32[$81 >> 2] = HEAP32[$$pre$phi16Z2D >> 2];
HEAP32[$sk + 8 >> 2] = __gcry_mpi_copy(HEAP32[$$pre$phi18Z2D >> 2] | 0) | 0;
HEAP32[$sk + 12 >> 2] = __gcry_mpi_copy(HEAP32[$$pre$phi20Z2D >> 2] | 0) | 0;
HEAP32[$sk + 16 >> 2] = __gcry_mpi_copy(HEAP32[$$pre$phi22Z2D >> 2] | 0) | 0;
$91 = $sk + 20 | 0;
__gcry_mpi_point_init($91);
__gcry_mpi_set(HEAP32[$91 >> 2] | 0, HEAP32[$77 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 24 >> 2] | 0, HEAP32[$E + 24 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 28 >> 2] | 0, HEAP32[$E + 28 >> 2] | 0) | 0;
HEAP32[$sk + 32 >> 2] = __gcry_mpi_copy(HEAP32[$$pre$phi4$iZ2D >> 2] | 0) | 0;
HEAP32[$sk + 36 >> 2] = __gcry_mpi_copy(HEAP32[$E + 36 >> 2] | 0) | 0;
$109 = $sk + 44 | 0;
__gcry_mpi_point_init($109);
$110 = __gcry_mpi_new($52) | 0;
$111 = __gcry_mpi_new($52) | 0;
if (__gcry_mpi_ec_get_affine($110, $111, $Q$i, $46) | 0) {
HEAP32[$vararg_buffer5 >> 2] = 48496;
__gcry_log_fatal(48448, $vararg_buffer5);
}
do if ((HEAP32[$$pre$phi16Z2D >> 2] | 0) == 1) {
__gcry_mpi_set(HEAP32[$109 >> 2] | 0, HEAP32[$Q$i >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 48 >> 2] | 0, HEAP32[$Q$i + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 52 >> 2] | 0, HEAP32[$Q$i + 8 >> 2] | 0) | 0;
$x$2$i = $110;
$y$2$i = $111;
} else {
$126 = __gcry_mpi_new($52) | 0;
$129 = HEAP32[$$pre$phi18Z2D >> 2] | 0;
if (!(HEAP32[$E >> 2] | 0)) __gcry_mpi_sub($126, $129, $111); else __gcry_mpi_sub($126, $129, $110);
if ((__gcry_mpi_cmp($126, $111) | 0) >= 0) {
__gcry_mpi_free($126);
__gcry_mpi_set(HEAP32[$109 >> 2] | 0, HEAP32[$Q$i >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 48 >> 2] | 0, HEAP32[$Q$i + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 52 >> 2] | 0, HEAP32[$Q$i + 8 >> 2] | 0) | 0;
if (!(__gcry_get_debug_flag(1) | 0)) {
$x$2$i = $110;
$y$2$i = $111;
break;
}
__gcry_log_debug(48538, $vararg_buffer10);
$x$2$i = $110;
$y$2$i = $111;
break;
}
if (!(HEAP32[$E >> 2] | 0)) {
__gcry_mpi_free($111);
$x$0$i = $110;
$y$0$i = $126;
} else {
__gcry_mpi_free($110);
$x$0$i = $126;
$y$0$i = $111;
}
$134 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
__gcry_mpi_sub($134, HEAP32[$$pre$phi4$iZ2D >> 2] | 0, $134);
__gcry_mpi_point_set($109, $x$0$i, $y$0$i, __gcry_mpi_const(1) | 0) | 0;
if (!(__gcry_get_debug_flag(1) | 0)) {
$x$2$i = $x$0$i;
$y$2$i = $y$0$i;
} else {
__gcry_log_debug(48498, $vararg_buffer8);
$x$2$i = $x$0$i;
$y$2$i = $y$0$i;
}
} while (0);
__gcry_mpi_point_free_parts($Q$i);
do if (!($47 & 16384)) {
$155 = $50 + -64 | 0;
if ((HEAP32[$sk >> 2] | 0) != 1) {
$156 = __gcry_mpi_new($155) | 0;
$157 = __gcry_mpi_new($155) | 0;
$158 = __gcry_mpi_new($155) | 0;
$159 = __gcry_mpi_new($155) | 0;
$160 = __gcry_mpi_new($155) | 0;
if (__gcry_get_debug_flag(1) | 0) __gcry_log_debug(48591, $vararg_buffer12);
__gcry_mpi_point_init($R_$i$2$i);
dest = $$byval_copy$71;
src = $sk;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_ecc_curve_copy($0, $$byval_copy$71);
dest = $pk$i$1$i;
src = $0;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
$163 = $pk$i$1$i + 44 | 0;
__gcry_mpi_point_init($163);
__gcry_mpi_set(HEAP32[$163 >> 2] | 0, HEAP32[$sk + 44 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$pk$i$1$i + 48 >> 2] | 0, HEAP32[$sk + 48 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$pk$i$1$i + 52 >> 2] | 0, HEAP32[$sk + 52 >> 2] | 0) | 0;
__gcry_mpi_randomize($156, $155, 0);
if (__gcry_ecc_ecdsa_sign($156, $sk, $159, $160, 0, 0) | 0) __gcry_log_fatal(48605, $vararg_buffer14);
if (__gcry_ecc_ecdsa_verify($156, $pk$i$1$i, $159, $160) | 0) __gcry_log_fatal(48635, $vararg_buffer16);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_debug(48673, $vararg_buffer18);
__gcry_mpi_point_free_parts($163);
__gcry_ecc_curve_free($pk$i$1$i);
__gcry_mpi_point_free_parts($R_$i$2$i);
__gcry_mpi_free($160);
__gcry_mpi_free($159);
__gcry_mpi_free($158);
__gcry_mpi_free($157);
__gcry_mpi_free($156);
break;
}
if (__gcry_get_debug_flag(1) | 0) __gcry_log_debug(48591, $vararg_buffer20);
__gcry_mpi_point_init($R_$i$2$i);
dest = $$byval_copy$71;
src = $sk;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_ecc_curve_copy($0, $$byval_copy$71);
dest = $pk$i$1$i;
src = $0;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
$183 = $pk$i$1$i + 44 | 0;
__gcry_mpi_point_init($183);
__gcry_mpi_set(HEAP32[$183 >> 2] | 0, HEAP32[$sk + 44 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$pk$i$1$i + 48 >> 2] | 0, HEAP32[$sk + 48 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$pk$i$1$i + 52 >> 2] | 0, HEAP32[$sk + 52 >> 2] | 0) | 0;
if ((HEAP32[$81 >> 2] | 0) == 1) {
$197 = __gcry_mpi_new(256) | 0;
$198 = __gcry_random_bytes(32, 0) | 0;
HEAP8[$198 >> 0] = (HEAPU8[$198 >> 0] | 0) & 63 | 64;
$204 = $198 + 31 | 0;
HEAP8[$204 >> 0] = (HEAPU8[$204 >> 0] | 0) & 248;
__gcry_mpi_set_buffer($197, $198, 32, 0);
__gcry_free($198);
$test$0$i$i = $197;
} else {
$209 = __gcry_mpi_new($155) | 0;
__gcry_mpi_randomize($209, $155, 0);
$test$0$i$i = $209;
}
$219 = __gcry_mpi_ec_p_internal_new(HEAP32[$pk$i$1$i >> 2] | 0, HEAP32[$pk$i$1$i + 4 >> 2] | 0, 0, HEAP32[$pk$i$1$i + 8 >> 2] | 0, HEAP32[$pk$i$1$i + 12 >> 2] | 0, HEAP32[$pk$i$1$i + 16 >> 2] | 0) | 0;
$220 = __gcry_mpi_new(0) | 0;
$221 = __gcry_mpi_new(0) | 0;
__gcry_mpi_ec_mul_point($R_$i$2$i, $test$0$i$i, $183, $219);
if ((HEAP32[$81 >> 2] | 0) != 1) __gcry_mpi_ec_mul_point($R_$i$2$i, HEAP32[$219 + 36 >> 2] | 0, $R_$i$2$i, $219);
if (__gcry_mpi_ec_get_affine($220, 0, $R_$i$2$i, $219) | 0) __gcry_log_fatal(48708, $vararg_buffer22);
__gcry_mpi_ec_mul_point($R_$i$2$i, $test$0$i$i, $pk$i$1$i + 20 | 0, $219);
__gcry_mpi_ec_mul_point($R_$i$2$i, HEAP32[$$pre$phi$iZ2D >> 2] | 0, $R_$i$2$i, $219);
if ((HEAP32[$81 >> 2] | 0) != 1) __gcry_mpi_ec_mul_point($R_$i$2$i, HEAP32[$219 + 36 >> 2] | 0, $R_$i$2$i, $219);
if (__gcry_mpi_ec_get_affine($221, 0, $R_$i$2$i, $219) | 0) __gcry_log_fatal(48756, $vararg_buffer24);
if (!(__gcry_mpi_cmp($220, $221) | 0)) {
__gcry_mpi_free($220);
__gcry_mpi_free($221);
__gcry_mpi_ec_free($219);
__gcry_mpi_point_free_parts($183);
__gcry_ecc_curve_free($pk$i$1$i);
__gcry_mpi_point_free_parts($R_$i$2$i);
__gcry_mpi_free($test$0$i$i);
break;
} else __gcry_log_fatal(48805, $vararg_buffer26);
} while (0);
$$pre$phi24Z2D = $91;
$Qx$09 = $x$2$i;
$Qy$010 = $y$2$i;
} else {
$238 = __gcry_ecc_eddsa_genkey($sk, $E, $46, $47) | 0;
if ($238) {
$Gx$0 = 0;
$Gy$0 = 0;
$Qx$3 = 0;
$Qy$3 = 0;
$base$0 = 0;
$ctx$0 = $46;
$public$2 = 0;
$rc$2 = $238;
$secret$0 = 0;
break;
}
$$pre$phi24Z2D = $sk + 20 | 0;
$Qx$09 = 0;
$Qy$010 = 0;
}
$240 = __gcry_mpi_new(0) | 0;
$241 = __gcry_mpi_new(0) | 0;
if (__gcry_mpi_ec_get_affine($240, $241, $$pre$phi24Z2D, $46) | 0) {
HEAP32[$vararg_buffer28 >> 2] = 48824;
__gcry_log_fatal(48448, $vararg_buffer28);
}
$244 = $sk + 8 | 0;
$246 = __gcry_ecc_ec2os($240, $241, HEAP32[$244 >> 2] | 0) | 0;
do if ((HEAP32[$sk + 4 >> 2] | 0) == 1) {
$250 = HEAP32[$flags >> 2] | 0;
if (!($250 & 2048)) {
$255 = __gcry_ecc_eddsa_encodepoint($sk + 44 | 0, $46, $240, $241, $250 >>> 10 & 1, $$byval_copy$71, $pk$i$1$i) | 0;
if (!$255) {
$257 = __gcry_mpi_new(0) | 0;
__gcry_mpi_set_opaque($257, HEAP32[$$byval_copy$71 >> 2] | 0, HEAP32[$pk$i$1$i >> 2] << 3) | 0;
$Qx$2 = $Qx$09;
$Qy$2 = $Qy$010;
$public$1 = $257;
break;
}
$$1 = $255;
STACKTOP = sp;
return $$1 | 0;
} else label = 71;
} else label = 71; while (0);
if ((label | 0) == 71) {
if (!$Qx$09) {
$262 = __gcry_mpi_new(0) | 0;
$263 = __gcry_mpi_new(0) | 0;
if (!(__gcry_mpi_ec_get_affine($262, $263, $sk + 44 | 0, $46) | 0)) {
$Qx$1 = $262;
$Qy$1 = $263;
} else {
HEAP32[$vararg_buffer31 >> 2] = 48496;
__gcry_log_fatal(48448, $vararg_buffer31);
}
} else {
$Qx$1 = $Qx$09;
$Qy$1 = $Qy$010;
}
$Qx$2 = $Qx$1;
$Qy$2 = $Qy$1;
$public$1 = __gcry_ecc_ec2os($Qx$1, $Qy$1, HEAP32[$244 >> 2] | 0) | 0;
}
$269 = $sk + 56 | 0;
$270 = HEAP32[$269 >> 2] | 0;
HEAP32[$269 >> 2] = 0;
$271 = $E + 40 | 0;
$272 = HEAP32[$271 >> 2] | 0;
if ($272) {
HEAP32[$vararg_buffer34 >> 2] = $272;
$274 = __gcry_sexp_build($curve_info, 0, 48826, $vararg_buffer34) | 0;
if ($274) {
$Gx$0 = $240;
$Gy$0 = $241;
$Qx$3 = $Qx$2;
$Qy$3 = $Qy$2;
$base$0 = $246;
$ctx$0 = $46;
$public$2 = $public$1;
$rc$2 = $274;
$secret$0 = $270;
break;
}
}
$276 = HEAP32[$flags >> 2] | 0;
$277 = $276 & 4608;
if (!$277) $287 = $276; else {
$284 = __gcry_sexp_build($curve_flags, 0, ($277 | 0) != 4608 ? (($276 & 512 | 0) != 0 ? 48837 : 48851) : 48865, $vararg_buffer37) | 0;
if ($284) {
$Gx$0 = $240;
$Gy$0 = $241;
$Qx$3 = $Qx$2;
$Qy$3 = $Qy$2;
$base$0 = $246;
$ctx$0 = $46;
$public$2 = $public$1;
$rc$2 = $284;
$secret$0 = $270;
break;
}
$287 = HEAP32[$flags >> 2] | 0;
}
$291 = HEAP32[$curve_info >> 2] | 0;
$292 = HEAP32[$curve_flags >> 2] | 0;
if (($287 & 512 | 0) == 0 | (HEAP32[$271 >> 2] | 0) == 0) {
HEAP32[$vararg_buffer60 >> 2] = $291;
HEAP32[$vararg_buffer60 + 4 >> 2] = $292;
HEAP32[$vararg_buffer60 + 8 >> 2] = $public$1;
HEAP32[$vararg_buffer60 + 12 >> 2] = $291;
HEAP32[$vararg_buffer60 + 16 >> 2] = $292;
HEAP32[$vararg_buffer60 + 20 >> 2] = $public$1;
HEAP32[$vararg_buffer60 + 24 >> 2] = $270;
$rc$1 = __gcry_sexp_build($r_skey, 0, 49021, $vararg_buffer60) | 0;
} else {
$293 = HEAP32[$244 >> 2] | 0;
$295 = HEAP32[$sk + 12 >> 2] | 0;
$297 = HEAP32[$sk + 16 >> 2] | 0;
$299 = HEAP32[$sk + 32 >> 2] | 0;
$301 = HEAP32[$sk + 36 >> 2] | 0;
HEAP32[$vararg_buffer39 >> 2] = $291;
HEAP32[$vararg_buffer39 + 4 >> 2] = $292;
HEAP32[$vararg_buffer39 + 8 >> 2] = $293;
HEAP32[$vararg_buffer39 + 12 >> 2] = $295;
HEAP32[$vararg_buffer39 + 16 >> 2] = $297;
HEAP32[$vararg_buffer39 + 20 >> 2] = $246;
HEAP32[$vararg_buffer39 + 24 >> 2] = $299;
HEAP32[$vararg_buffer39 + 28 >> 2] = $301;
HEAP32[$vararg_buffer39 + 32 >> 2] = $public$1;
HEAP32[$vararg_buffer39 + 36 >> 2] = $291;
HEAP32[$vararg_buffer39 + 40 >> 2] = $292;
HEAP32[$vararg_buffer39 + 44 >> 2] = $293;
HEAP32[$vararg_buffer39 + 48 >> 2] = $295;
HEAP32[$vararg_buffer39 + 52 >> 2] = $297;
HEAP32[$vararg_buffer39 + 56 >> 2] = $246;
HEAP32[$vararg_buffer39 + 60 >> 2] = $299;
HEAP32[$vararg_buffer39 + 64 >> 2] = $301;
HEAP32[$vararg_buffer39 + 68 >> 2] = $public$1;
HEAP32[$vararg_buffer39 + 72 >> 2] = $270;
$rc$1 = __gcry_sexp_build($r_skey, 0, 48885, $vararg_buffer39) | 0;
}
if (!$rc$1) if (!(__gcry_get_debug_flag(1) | 0)) {
$Gx$0 = $240;
$Gy$0 = $241;
$Qx$3 = $Qx$2;
$Qy$3 = $Qy$2;
$base$0 = $246;
$ctx$0 = $46;
$public$2 = $public$1;
$rc$2 = 0;
$secret$0 = $270;
} else {
__gcry_log_printmpi(49097, HEAP32[$244 >> 2] | 0);
__gcry_log_printmpi(49113, HEAP32[$sk + 12 >> 2] | 0);
__gcry_log_printmpi(49129, HEAP32[$sk + 16 >> 2] | 0);
__gcry_log_printmpi(49145, $246);
__gcry_log_printmpi(49161, HEAP32[$sk + 32 >> 2] | 0);
__gcry_log_printmpi(49177, HEAP32[$sk + 36 >> 2] | 0);
__gcry_log_printmpi(49193, $public$1);
__gcry_log_printmpi(49209, $270);
if (!(HEAP32[$flags >> 2] & 4096)) {
$Gx$0 = $240;
$Gy$0 = $241;
$Qx$3 = $Qx$2;
$Qy$3 = $Qy$2;
$base$0 = $246;
$ctx$0 = $46;
$public$2 = $public$1;
$rc$2 = 0;
$secret$0 = $270;
} else {
__gcry_log_debug(49225, $vararg_buffer69);
$Gx$0 = $240;
$Gy$0 = $241;
$Qx$3 = $Qx$2;
$Qy$3 = $Qy$2;
$base$0 = $246;
$ctx$0 = $46;
$public$2 = $public$1;
$rc$2 = 0;
$secret$0 = $270;
}
} else {
$Gx$0 = $240;
$Gy$0 = $241;
$Qx$3 = $Qx$2;
$Qy$3 = $Qy$2;
$base$0 = $246;
$ctx$0 = $46;
$public$2 = $public$1;
$rc$2 = $rc$1;
$secret$0 = $270;
}
} else {
$Gx$0 = 0;
$Gy$0 = 0;
$Qx$3 = 0;
$Qy$3 = 0;
$base$0 = 0;
$ctx$0 = 0;
$public$2 = 0;
$rc$2 = $18;
$secret$0 = 0;
}
} while (0);
__gcry_mpi_free($secret$0);
__gcry_mpi_free($public$2);
__gcry_mpi_free($base$0);
__gcry_ecc_curve_free($sk);
__gcry_mpi_point_free_parts($sk + 44 | 0);
__gcry_mpi_free(HEAP32[$sk + 56 >> 2] | 0);
__gcry_ecc_curve_free($E);
__gcry_mpi_free($Gx$0);
__gcry_mpi_free($Gy$0);
__gcry_mpi_free($Qx$3);
__gcry_mpi_free($Qy$3);
__gcry_mpi_ec_free($ctx$0);
__gcry_sexp_release(HEAP32[$curve_flags >> 2] | 0);
__gcry_sexp_release(HEAP32[$curve_info >> 2] | 0);
$$1 = $rc$2;
STACKTOP = sp;
return $$1 | 0;
}
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, $$0$lcssa$i = 0, $$0$lcssa$i$140 = 0, $$0$lcssa$i$i = 0, $$0$lcssa$i$i$23 = 0, $$0$lcssa$i$i$83 = 0, $$01 = 0, $$010$i$i = 0, $$010$i$i$102$us = 0, $$010$i$i$12 = 0, $$010$i$i$42 = 0, $$010$i$i$72 = 0, $$02 = 0, $$06 = 0, $$06$i = 0, $$06$i$133 = 0, $$1$ph$i = 0, $$1$ph$i$146 = 0, $$1$ph$i$i = 0, $$1$ph$i$i$121$us = 0, $$1$ph$i$i$31 = 0, $$1$ph$i$i$91 = 0, $$1158 = 0, $$1158$us = 0, $$13$i = 0, $$13$i$148 = 0, $$13155 = 0, $$13155$us = 0, $$15$i$i = 0, $$15$i$i$123 = 0, $$15$i$i$123$us = 0, $$15$i$i$33 = 0, $$15$i$i$63 = 0, $$15$i$i$93 = 0, $$17154 = 0, $$17154$us = 0, $$2 = 0, $$24 = 0, $$28 = 0, $$3 = 0, $$35 = 0, $$39 = 0, $1 = 0, $101 = 0, $109 = 0, $118 = 0, $125 = 0, $126 = 0, $127 = 0, $129 = 0, $132 = 0, $136 = 0, $138 = 0, $14 = 0, $140 = 0, $147 = 0, $148 = 0, $149 = 0, $152 = 0, $153 = 0, $155 = 0, $160 = 0, $161 = 0, $162 = 0, $176 = 0, $178 = 0, $186 = 0, $187 = 0, $188 = 0, $190 = 0, $200 = 0, $211 = 0, $212 = 0, $214 = 0, $219 = 0, $220 = 0, $221 = 0, $23 = 0, $235 = 0, $237 = 0, $24 = 0, $246 = 0, $247 = 0, $248 = 0, $25 = 0, $250 = 0, $260 = 0, $27 = 0, $3 = 0, $37 = 0, $45 = 0, $47 = 0, $5 = 0, $51 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $64 = 0, $74 = 0, $8 = 0, $84 = 0, $88 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $burn$0159 = 0, $burn$0159$us = 0, $burn$1 = 0, $burn$2 = 0, $burn$3 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$144 = 0, $dst$01$i = 0, $dst$01$i$150 = 0, $dst_xor$0$ph$i$i = 0, $dst_xor$0$ph$i$i$120$us = 0, $dst_xor$0$ph$i$i$30 = 0, $dst_xor$0$ph$i$i$90 = 0, $dst_xor$04$i$i = 0, $dst_xor$04$i$i$124 = 0, $dst_xor$04$i$i$124$us = 0, $dst_xor$04$i$i$34 = 0, $dst_xor$04$i$i$64 = 0, $dst_xor$04$i$i$94 = 0, $ldst$0$lcssa$i = 0, $ldst$0$lcssa$i$142 = 0, $ldst$04$i = 0, $ldst$04$i$135 = 0, $ldst_xor$0$lcssa$i$i = 0, $ldst_xor$0$lcssa$i$i$26 = 0, $ldst_xor$0$lcssa$i$i$86 = 0, $ldst_xor$06$i$i = 0, $ldst_xor$06$i$i$105$us = 0, $ldst_xor$06$i$i$15 = 0, $ldst_xor$06$i$i$45 = 0, $ldst_xor$06$i$i$75 = 0, $lsrc$0$lcssa$i = 0, $lsrc$0$lcssa$i$141 = 0, $lsrc$05$i = 0, $lsrc$05$i$134 = 0, $lsrc_xor$0$lcssa$i$i = 0, $lsrc_xor$0$lcssa$i$i$24 = 0, $lsrc_xor$0$lcssa$i$i$84 = 0, $lsrc_xor$09$i$i = 0, $lsrc_xor$09$i$i$103$us = 0, $lsrc_xor$09$i$i$13 = 0, $lsrc_xor$09$i$i$43 = 0, $lsrc_xor$09$i$i$73 = 0, $lsrcdst_cpy$0$lcssa$i$i = 0, $lsrcdst_cpy$0$lcssa$i$i$25 = 0, $lsrcdst_cpy$0$lcssa$i$i$85 = 0, $lsrcdst_cpy$07$i$i = 0, $lsrcdst_cpy$07$i$i$104$us = 0, $lsrcdst_cpy$07$i$i$14 = 0, $lsrcdst_cpy$07$i$i$44 = 0, $lsrcdst_cpy$07$i$i$74 = 0, $scevgep$i = 0, $scevgep$i$130 = 0, $scevgep$i$i$107 = 0, $scevgep25$i$i$48 = 0, $src$0$ph$i = 0, $src$0$ph$i$145 = 0, $src$02$i = 0, $src$02$i$149 = 0, $src_cpy$02$i$i = 0, $src_cpy$02$i$i$126 = 0, $src_cpy$02$i$i$126$us = 0, $src_cpy$02$i$i$36 = 0, $src_cpy$02$i$i$66 = 0, $src_cpy$02$i$i$96 = 0, $src_xor$0$ph$i$i = 0, $src_xor$0$ph$i$i$118$us = 0, $src_xor$0$ph$i$i$28 = 0, $src_xor$0$ph$i$i$88 = 0, $src_xor$01$i$i$67 = 0, $srcdst_cpy$0$ph$i$i = 0, $srcdst_cpy$0$ph$i$i$119$us = 0, $srcdst_cpy$0$ph$i$i$29 = 0, $srcdst_cpy$0$ph$i$i$89 = 0, $srcdst_cpy$03$i$i = 0, $srcdst_cpy$03$i$i$125 = 0, $srcdst_cpy$03$i$i$125$us = 0, $srcdst_cpy$03$i$i$35 = 0, $srcdst_cpy$03$i$i$65 = 0, $srcdst_cpy$03$i$i$95 = 0, label = 0;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 36 >> 2] | 0;
$5 = HEAP32[$1 + 20 >> 2] | 0;
$6 = $5 << 1;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$8 = $c + 112 | 0;
$9 = HEAP32[$8 >> 2] | 0;
if ($9 >>> 0 >= $inbuflen >>> 0) {
$14 = $c + 64 + $5 + (0 - $9) | 0;
if (!(($inbuf | $outbuf | $14) & 3)) {
if ($inbuflen >>> 0 > 3) {
$23 = $inbuflen + -4 | 0;
$24 = $23 & -4;
$25 = $24 + 4 | 0;
$$010$i$i = $inbuflen;
$ldst_xor$06$i$i = $outbuf;
$lsrc_xor$09$i$i = $inbuf;
$lsrcdst_cpy$07$i$i = $14;
while (1) {
$27 = HEAP32[$lsrc_xor$09$i$i >> 2] | 0;
HEAP32[$ldst_xor$06$i$i >> 2] = HEAP32[$lsrcdst_cpy$07$i$i >> 2] ^ $27;
HEAP32[$lsrcdst_cpy$07$i$i >> 2] = $27;
$$010$i$i = $$010$i$i + -4 | 0;
if ($$010$i$i >>> 0 <= 3) break; else {
$ldst_xor$06$i$i = $ldst_xor$06$i$i + 4 | 0;
$lsrc_xor$09$i$i = $lsrc_xor$09$i$i + 4 | 0;
$lsrcdst_cpy$07$i$i = $lsrcdst_cpy$07$i$i + 4 | 0;
}
}
$$0$lcssa$i$i = $23 - $24 | 0;
$ldst_xor$0$lcssa$i$i = $outbuf + $25 | 0;
$lsrc_xor$0$lcssa$i$i = $inbuf + $25 | 0;
$lsrcdst_cpy$0$lcssa$i$i = $14 + $25 | 0;
} else {
$$0$lcssa$i$i = $inbuflen;
$ldst_xor$0$lcssa$i$i = $outbuf;
$lsrc_xor$0$lcssa$i$i = $inbuf;
$lsrcdst_cpy$0$lcssa$i$i = $14;
}
$$1$ph$i$i = $$0$lcssa$i$i;
$dst_xor$0$ph$i$i = $ldst_xor$0$lcssa$i$i;
$src_xor$0$ph$i$i = $lsrc_xor$0$lcssa$i$i;
$srcdst_cpy$0$ph$i$i = $lsrcdst_cpy$0$lcssa$i$i;
} else {
$$1$ph$i$i = $inbuflen;
$dst_xor$0$ph$i$i = $outbuf;
$src_xor$0$ph$i$i = $inbuf;
$srcdst_cpy$0$ph$i$i = $14;
}
if (!$$1$ph$i$i) $45 = $9; else {
$$15$i$i = $$1$ph$i$i;
$dst_xor$04$i$i = $dst_xor$0$ph$i$i;
$src_cpy$02$i$i = $src_xor$0$ph$i$i;
$srcdst_cpy$03$i$i = $srcdst_cpy$0$ph$i$i;
while (1) {
$37 = HEAP8[$src_cpy$02$i$i >> 0] | 0;
HEAP8[$dst_xor$04$i$i >> 0] = $37 ^ HEAP8[$srcdst_cpy$03$i$i >> 0];
HEAP8[$srcdst_cpy$03$i$i >> 0] = $37;
$$15$i$i = $$15$i$i + -1 | 0;
if (!$$15$i$i) break; else {
$dst_xor$04$i$i = $dst_xor$04$i$i + 1 | 0;
$src_cpy$02$i$i = $src_cpy$02$i$i + 1 | 0;
$srcdst_cpy$03$i$i = $srcdst_cpy$03$i$i + 1 | 0;
}
}
$45 = HEAP32[$8 >> 2] | 0;
}
HEAP32[$8 >> 2] = $45 - $inbuflen;
$$0 = 0;
return $$0 | 0;
}
if (!$9) {
$$01 = $outbuf;
$$02 = $inbuf;
$$06 = $inbuflen;
} else {
$47 = $inbuflen - $9 | 0;
$51 = $c + 64 + $5 + (0 - $9) | 0;
if ($9 >>> 0 > 3 & (($inbuf | $outbuf | $51) & 3 | 0) == 0) {
$60 = $9 + -4 | 0;
$61 = $60 & -4;
$62 = $61 + 4 | 0;
$$010$i$i$42 = $9;
$ldst_xor$06$i$i$45 = $outbuf;
$lsrc_xor$09$i$i$43 = $inbuf;
$lsrcdst_cpy$07$i$i$44 = $51;
while (1) {
$64 = HEAP32[$lsrc_xor$09$i$i$43 >> 2] | 0;
HEAP32[$ldst_xor$06$i$i$45 >> 2] = HEAP32[$lsrcdst_cpy$07$i$i$44 >> 2] ^ $64;
HEAP32[$lsrcdst_cpy$07$i$i$44 >> 2] = $64;
$$010$i$i$42 = $$010$i$i$42 + -4 | 0;
if ($$010$i$i$42 >>> 0 <= 3) break; else {
$ldst_xor$06$i$i$45 = $ldst_xor$06$i$i$45 + 4 | 0;
$lsrc_xor$09$i$i$43 = $lsrc_xor$09$i$i$43 + 4 | 0;
$lsrcdst_cpy$07$i$i$44 = $lsrcdst_cpy$07$i$i$44 + 4 | 0;
}
}
$scevgep25$i$i$48 = $inbuf + $62 | 0;
if (($60 | 0) == ($61 | 0)) $84 = $9; else {
$$15$i$i$63 = $60 - $61 | 0;
$dst_xor$04$i$i$64 = $outbuf + $62 | 0;
$src_cpy$02$i$i$66 = $scevgep25$i$i$48;
$src_xor$01$i$i$67 = $scevgep25$i$i$48;
$srcdst_cpy$03$i$i$65 = $51 + $62 | 0;
label = 18;
}
} else {
$$15$i$i$63 = $9;
$dst_xor$04$i$i$64 = $outbuf;
$src_cpy$02$i$i$66 = $inbuf;
$src_xor$01$i$i$67 = $inbuf;
$srcdst_cpy$03$i$i$65 = $51;
label = 18;
}
if ((label | 0) == 18) {
while (1) {
label = 0;
$74 = HEAP8[$src_cpy$02$i$i$66 >> 0] | 0;
HEAP8[$dst_xor$04$i$i$64 >> 0] = HEAP8[$src_xor$01$i$i$67 >> 0] ^ HEAP8[$srcdst_cpy$03$i$i$65 >> 0];
HEAP8[$srcdst_cpy$03$i$i$65 >> 0] = $74;
$$15$i$i$63 = $$15$i$i$63 + -1 | 0;
if (!$$15$i$i$63) break; else {
$dst_xor$04$i$i$64 = $dst_xor$04$i$i$64 + 1 | 0;
$src_cpy$02$i$i$66 = $src_cpy$02$i$i$66 + 1 | 0;
$src_xor$01$i$i$67 = $src_xor$01$i$i$67 + 1 | 0;
$srcdst_cpy$03$i$i$65 = $srcdst_cpy$03$i$i$65 + 1 | 0;
label = 18;
}
}
$84 = HEAP32[$8 >> 2] | 0;
}
HEAP32[$8 >> 2] = 0;
$$01 = $outbuf + $84 | 0;
$$02 = $inbuf + $84 | 0;
$$06 = $47;
}
L35 : do if ($$06 >>> 0 < $6 >>> 0) {
$$2 = $$01;
$$24 = $$02;
$$28 = $$06;
$burn$1 = 0;
} else {
$88 = HEAP32[$c + 24 >> 2] | 0;
if ($88) {
$129 = ($$06 >>> 0) / ($5 >>> 0) | 0;
FUNCTION_TABLE_viiiii[$88 & 15]($c + 496 | 0, $c + 64 | 0, $$01, $$02, $129);
$132 = Math_imul($129, $5) | 0;
$$2 = $$01 + $132 | 0;
$$24 = $$02 + $132 | 0;
$$28 = $$06 - $132 | 0;
$burn$1 = 0;
break;
}
$90 = $c + 496 | 0;
$91 = $c + 64 | 0;
$92 = $91;
$94 = $5 + -4 | 0;
$95 = $94 & -4;
$96 = $95 + 4 | 0;
$scevgep$i$i$107 = $91 + $96 | 0;
$97 = $94 - $95 | 0;
if ($5 >>> 0 > 3) {
$$1158$us = $$01;
$$13155$us = $$02;
$$17154$us = $$06;
$burn$0159$us = 0;
} else {
$98 = ($5 | 0) == 0;
$$1158 = $$01;
$$13155 = $$02;
$$17154 = $$06;
$burn$0159 = 0;
while (1) {
$136 = FUNCTION_TABLE_iiii[$3 & 63]($90, $91, $91) | 0;
$138 = $136 >>> 0 > $burn$0159 >>> 0 ? $136 : $burn$0159;
if (!$98) {
$$15$i$i$123 = $5;
$dst_xor$04$i$i$124 = $$1158;
$src_cpy$02$i$i$126 = $$13155;
$srcdst_cpy$03$i$i$125 = $91;
while (1) {
$140 = HEAP8[$src_cpy$02$i$i$126 >> 0] | 0;
HEAP8[$dst_xor$04$i$i$124 >> 0] = $140 ^ HEAP8[$srcdst_cpy$03$i$i$125 >> 0];
HEAP8[$srcdst_cpy$03$i$i$125 >> 0] = $140;
$$15$i$i$123 = $$15$i$i$123 + -1 | 0;
if (!$$15$i$i$123) break; else {
$dst_xor$04$i$i$124 = $dst_xor$04$i$i$124 + 1 | 0;
$src_cpy$02$i$i$126 = $src_cpy$02$i$i$126 + 1 | 0;
$srcdst_cpy$03$i$i$125 = $srcdst_cpy$03$i$i$125 + 1 | 0;
}
}
}
$147 = $$1158 + $5 | 0;
$148 = $$13155 + $5 | 0;
$149 = $$17154 - $5 | 0;
if ($149 >>> 0 < $6 >>> 0) {
$$2 = $147;
$$24 = $148;
$$28 = $149;
$burn$1 = $138;
break L35;
} else {
$$1158 = $147;
$$13155 = $148;
$$17154 = $149;
$burn$0159 = $138;
}
}
}
while (1) {
$99 = FUNCTION_TABLE_iiii[$3 & 63]($90, $91, $91) | 0;
$101 = $99 >>> 0 > $burn$0159$us >>> 0 ? $99 : $burn$0159$us;
if (!(($$13155$us | $92 | $$1158$us) & 3)) {
$$010$i$i$102$us = $5;
$ldst_xor$06$i$i$105$us = $$1158$us;
$lsrc_xor$09$i$i$103$us = $$13155$us;
$lsrcdst_cpy$07$i$i$104$us = $91;
while (1) {
$109 = HEAP32[$lsrc_xor$09$i$i$103$us >> 2] | 0;
HEAP32[$ldst_xor$06$i$i$105$us >> 2] = HEAP32[$lsrcdst_cpy$07$i$i$104$us >> 2] ^ $109;
HEAP32[$lsrcdst_cpy$07$i$i$104$us >> 2] = $109;
$$010$i$i$102$us = $$010$i$i$102$us + -4 | 0;
if ($$010$i$i$102$us >>> 0 <= 3) break; else {
$ldst_xor$06$i$i$105$us = $ldst_xor$06$i$i$105$us + 4 | 0;
$lsrc_xor$09$i$i$103$us = $lsrc_xor$09$i$i$103$us + 4 | 0;
$lsrcdst_cpy$07$i$i$104$us = $lsrcdst_cpy$07$i$i$104$us + 4 | 0;
}
}
$$1$ph$i$i$121$us = $97;
$dst_xor$0$ph$i$i$120$us = $$1158$us + $96 | 0;
$src_xor$0$ph$i$i$118$us = $$13155$us + $96 | 0;
$srcdst_cpy$0$ph$i$i$119$us = $scevgep$i$i$107;
} else {
$$1$ph$i$i$121$us = $5;
$dst_xor$0$ph$i$i$120$us = $$1158$us;
$src_xor$0$ph$i$i$118$us = $$13155$us;
$srcdst_cpy$0$ph$i$i$119$us = $91;
}
if ($$1$ph$i$i$121$us) {
$$15$i$i$123$us = $$1$ph$i$i$121$us;
$dst_xor$04$i$i$124$us = $dst_xor$0$ph$i$i$120$us;
$src_cpy$02$i$i$126$us = $src_xor$0$ph$i$i$118$us;
$srcdst_cpy$03$i$i$125$us = $srcdst_cpy$0$ph$i$i$119$us;
while (1) {
$118 = HEAP8[$src_cpy$02$i$i$126$us >> 0] | 0;
HEAP8[$dst_xor$04$i$i$124$us >> 0] = $118 ^ HEAP8[$srcdst_cpy$03$i$i$125$us >> 0];
HEAP8[$srcdst_cpy$03$i$i$125$us >> 0] = $118;
$$15$i$i$123$us = $$15$i$i$123$us + -1 | 0;
if (!$$15$i$i$123$us) break; else {
$dst_xor$04$i$i$124$us = $dst_xor$04$i$i$124$us + 1 | 0;
$src_cpy$02$i$i$126$us = $src_cpy$02$i$i$126$us + 1 | 0;
$srcdst_cpy$03$i$i$125$us = $srcdst_cpy$03$i$i$125$us + 1 | 0;
}
}
}
$125 = $$1158$us + $5 | 0;
$126 = $$13155$us + $5 | 0;
$127 = $$17154$us - $5 | 0;
if ($127 >>> 0 < $6 >>> 0) {
$$2 = $125;
$$24 = $126;
$$28 = $127;
$burn$1 = $101;
break;
} else {
$$1158$us = $125;
$$13155$us = $126;
$$17154$us = $127;
$burn$0159$us = $101;
}
}
} while (0);
if ($$28 >>> 0 < $5 >>> 0) {
$$3 = $$2;
$$35 = $$24;
$$39 = $$28;
$burn$2 = $burn$1;
} else {
$152 = $c + 96 | 0;
$153 = $c + 64 | 0;
$155 = $153;
if (!(($155 | $152) & 3)) {
if ($5 >>> 0 > 3) {
$160 = $5 + -4 | 0;
$161 = $160 & -4;
$162 = $161 + 4 | 0;
$scevgep$i$130 = $c + 96 + $162 | 0;
$$06$i$133 = $5;
$ldst$04$i$135 = $152;
$lsrc$05$i$134 = $153;
while (1) {
HEAP32[$ldst$04$i$135 >> 2] = HEAP32[$lsrc$05$i$134 >> 2];
$$06$i$133 = $$06$i$133 + -4 | 0;
if ($$06$i$133 >>> 0 <= 3) break; else {
$ldst$04$i$135 = $ldst$04$i$135 + 4 | 0;
$lsrc$05$i$134 = $lsrc$05$i$134 + 4 | 0;
}
}
$$0$lcssa$i$140 = $160 - $161 | 0;
$ldst$0$lcssa$i$142 = $scevgep$i$130;
$lsrc$0$lcssa$i$141 = $153 + $162 | 0;
} else {
$$0$lcssa$i$140 = $5;
$ldst$0$lcssa$i$142 = $152;
$lsrc$0$lcssa$i$141 = $153;
}
$$1$ph$i$146 = $$0$lcssa$i$140;
$dst$0$ph$i$144 = $ldst$0$lcssa$i$142;
$src$0$ph$i$145 = $lsrc$0$lcssa$i$141;
} else {
$$1$ph$i$146 = $5;
$dst$0$ph$i$144 = $152;
$src$0$ph$i$145 = $153;
}
if ($$1$ph$i$146) {
$$13$i$148 = $$1$ph$i$146;
$dst$01$i$150 = $dst$0$ph$i$144;
$src$02$i$149 = $src$0$ph$i$145;
while (1) {
HEAP8[$dst$01$i$150 >> 0] = HEAP8[$src$02$i$149 >> 0] | 0;
$$13$i$148 = $$13$i$148 + -1 | 0;
if (!$$13$i$148) break; else {
$dst$01$i$150 = $dst$01$i$150 + 1 | 0;
$src$02$i$149 = $src$02$i$149 + 1 | 0;
}
}
}
$176 = FUNCTION_TABLE_iiii[$3 & 63]($c + 496 | 0, $153, $153) | 0;
$178 = $176 >>> 0 > $burn$1 >>> 0 ? $176 : $burn$1;
if (!(($$24 | $155 | $$2) & 3)) {
if ($5 >>> 0 > 3) {
$186 = $5 + -4 | 0;
$187 = $186 & -4;
$188 = $187 + 4 | 0;
$$010$i$i$72 = $5;
$ldst_xor$06$i$i$75 = $$2;
$lsrc_xor$09$i$i$73 = $$24;
$lsrcdst_cpy$07$i$i$74 = $153;
while (1) {
$190 = HEAP32[$lsrc_xor$09$i$i$73 >> 2] | 0;
HEAP32[$ldst_xor$06$i$i$75 >> 2] = HEAP32[$lsrcdst_cpy$07$i$i$74 >> 2] ^ $190;
HEAP32[$lsrcdst_cpy$07$i$i$74 >> 2] = $190;
$$010$i$i$72 = $$010$i$i$72 + -4 | 0;
if ($$010$i$i$72 >>> 0 <= 3) break; else {
$ldst_xor$06$i$i$75 = $ldst_xor$06$i$i$75 + 4 | 0;
$lsrc_xor$09$i$i$73 = $lsrc_xor$09$i$i$73 + 4 | 0;
$lsrcdst_cpy$07$i$i$74 = $lsrcdst_cpy$07$i$i$74 + 4 | 0;
}
}
$$0$lcssa$i$i$83 = $186 - $187 | 0;
$ldst_xor$0$lcssa$i$i$86 = $$2 + $188 | 0;
$lsrc_xor$0$lcssa$i$i$84 = $$24 + $188 | 0;
$lsrcdst_cpy$0$lcssa$i$i$85 = $153 + $188 | 0;
} else {
$$0$lcssa$i$i$83 = $5;
$ldst_xor$0$lcssa$i$i$86 = $$2;
$lsrc_xor$0$lcssa$i$i$84 = $$24;
$lsrcdst_cpy$0$lcssa$i$i$85 = $153;
}
$$1$ph$i$i$91 = $$0$lcssa$i$i$83;
$dst_xor$0$ph$i$i$90 = $ldst_xor$0$lcssa$i$i$86;
$src_xor$0$ph$i$i$88 = $lsrc_xor$0$lcssa$i$i$84;
$srcdst_cpy$0$ph$i$i$89 = $lsrcdst_cpy$0$lcssa$i$i$85;
} else {
$$1$ph$i$i$91 = $5;
$dst_xor$0$ph$i$i$90 = $$2;
$src_xor$0$ph$i$i$88 = $$24;
$srcdst_cpy$0$ph$i$i$89 = $153;
}
if ($$1$ph$i$i$91) {
$$15$i$i$93 = $$1$ph$i$i$91;
$dst_xor$04$i$i$94 = $dst_xor$0$ph$i$i$90;
$src_cpy$02$i$i$96 = $src_xor$0$ph$i$i$88;
$srcdst_cpy$03$i$i$95 = $srcdst_cpy$0$ph$i$i$89;
while (1) {
$200 = HEAP8[$src_cpy$02$i$i$96 >> 0] | 0;
HEAP8[$dst_xor$04$i$i$94 >> 0] = $200 ^ HEAP8[$srcdst_cpy$03$i$i$95 >> 0];
HEAP8[$srcdst_cpy$03$i$i$95 >> 0] = $200;
$$15$i$i$93 = $$15$i$i$93 + -1 | 0;
if (!$$15$i$i$93) break; else {
$dst_xor$04$i$i$94 = $dst_xor$04$i$i$94 + 1 | 0;
$src_cpy$02$i$i$96 = $src_cpy$02$i$i$96 + 1 | 0;
$srcdst_cpy$03$i$i$95 = $srcdst_cpy$03$i$i$95 + 1 | 0;
}
}
}
$$3 = $$2 + $5 | 0;
$$35 = $$24 + $5 | 0;
$$39 = $$28 - $5 | 0;
$burn$2 = $178;
}
if (!$$39) $burn$3 = $burn$2; else {
$211 = $c + 96 | 0;
$212 = $c + 64 | 0;
$214 = $212;
if (!(($214 | $211) & 3)) {
if ($5 >>> 0 > 3) {
$219 = $5 + -4 | 0;
$220 = $219 & -4;
$221 = $220 + 4 | 0;
$scevgep$i = $c + 96 + $221 | 0;
$$06$i = $5;
$ldst$04$i = $211;
$lsrc$05$i = $212;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i = $219 - $220 | 0;
$ldst$0$lcssa$i = $scevgep$i;
$lsrc$0$lcssa$i = $212 + $221 | 0;
} else {
$$0$lcssa$i = $5;
$ldst$0$lcssa$i = $211;
$lsrc$0$lcssa$i = $212;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i = $5;
$dst$0$ph$i = $211;
$src$0$ph$i = $212;
}
if ($$1$ph$i) {
$$13$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src$02$i = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
$235 = FUNCTION_TABLE_iiii[$3 & 63]($c + 496 | 0, $212, $212) | 0;
$237 = $235 >>> 0 > $burn$2 >>> 0 ? $235 : $burn$2;
HEAP32[$8 >> 2] = $5 - $$39;
if (!(($$35 | $214 | $$3) & 3)) {
if ($$39 >>> 0 > 3) {
$246 = $$39 + -4 | 0;
$247 = $246 & -4;
$248 = $247 + 4 | 0;
$$010$i$i$12 = $$39;
$ldst_xor$06$i$i$15 = $$3;
$lsrc_xor$09$i$i$13 = $$35;
$lsrcdst_cpy$07$i$i$14 = $212;
while (1) {
$250 = HEAP32[$lsrc_xor$09$i$i$13 >> 2] | 0;
HEAP32[$ldst_xor$06$i$i$15 >> 2] = HEAP32[$lsrcdst_cpy$07$i$i$14 >> 2] ^ $250;
HEAP32[$lsrcdst_cpy$07$i$i$14 >> 2] = $250;
$$010$i$i$12 = $$010$i$i$12 + -4 | 0;
if ($$010$i$i$12 >>> 0 <= 3) break; else {
$ldst_xor$06$i$i$15 = $ldst_xor$06$i$i$15 + 4 | 0;
$lsrc_xor$09$i$i$13 = $lsrc_xor$09$i$i$13 + 4 | 0;
$lsrcdst_cpy$07$i$i$14 = $lsrcdst_cpy$07$i$i$14 + 4 | 0;
}
}
$$0$lcssa$i$i$23 = $246 - $247 | 0;
$ldst_xor$0$lcssa$i$i$26 = $$3 + $248 | 0;
$lsrc_xor$0$lcssa$i$i$24 = $$35 + $248 | 0;
$lsrcdst_cpy$0$lcssa$i$i$25 = $212 + $248 | 0;
} else {
$$0$lcssa$i$i$23 = $$39;
$ldst_xor$0$lcssa$i$i$26 = $$3;
$lsrc_xor$0$lcssa$i$i$24 = $$35;
$lsrcdst_cpy$0$lcssa$i$i$25 = $212;
}
$$1$ph$i$i$31 = $$0$lcssa$i$i$23;
$dst_xor$0$ph$i$i$30 = $ldst_xor$0$lcssa$i$i$26;
$src_xor$0$ph$i$i$28 = $lsrc_xor$0$lcssa$i$i$24;
$srcdst_cpy$0$ph$i$i$29 = $lsrcdst_cpy$0$lcssa$i$i$25;
} else {
$$1$ph$i$i$31 = $$39;
$dst_xor$0$ph$i$i$30 = $$3;
$src_xor$0$ph$i$i$28 = $$35;
$srcdst_cpy$0$ph$i$i$29 = $212;
}
if (!$$1$ph$i$i$31) $burn$3 = $237; else {
$$15$i$i$33 = $$1$ph$i$i$31;
$dst_xor$04$i$i$34 = $dst_xor$0$ph$i$i$30;
$src_cpy$02$i$i$36 = $src_xor$0$ph$i$i$28;
$srcdst_cpy$03$i$i$35 = $srcdst_cpy$0$ph$i$i$29;
while (1) {
$260 = HEAP8[$src_cpy$02$i$i$36 >> 0] | 0;
HEAP8[$dst_xor$04$i$i$34 >> 0] = $260 ^ HEAP8[$srcdst_cpy$03$i$i$35 >> 0];
HEAP8[$srcdst_cpy$03$i$i$35 >> 0] = $260;
$$15$i$i$33 = $$15$i$i$33 + -1 | 0;
if (!$$15$i$i$33) {
$burn$3 = $237;
break;
} else {
$dst_xor$04$i$i$34 = $dst_xor$04$i$i$34 + 1 | 0;
$src_cpy$02$i$i$36 = $src_cpy$02$i$i$36 + 1 | 0;
$srcdst_cpy$03$i$i$35 = $srcdst_cpy$03$i$i$35 + 1 | 0;
}
}
}
}
if (!$burn$3) {
$$0 = 0;
return $$0 | 0;
}
___gcry_burn_stack($burn$3 + 16 | 0);
$$0 = 0;
return $$0 | 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, $$lcssa = 0, $$lcssa80 = 0, $$lcssa81 = 0, $$lcssa82 = 0, $$lcssa83 = 0, $$lcssa84 = 0, $$lcssa85 = 0, $$lcssa86 = 0, $$lcssa87 = 0, $$lcssa88 = 0, $$lcssa89 = 0, $$lcssa90 = 0, $$lcssa91 = 0, $$pre$phiZ2D = 0, $0 = 0, $102 = 0, $104 = 0, $105 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $112 = 0, $115 = 0, $117 = 0, $118 = 0, $119 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $126 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $140 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $147 = 0, $148 = 0, $149 = 0, $150 = 0, $152 = 0, $156 = 0, $158 = 0, $159 = 0, $160 = 0, $162 = 0, $163 = 0, $167 = 0, $17 = 0, $170 = 0, $173 = 0, $176 = 0, $179 = 0, $18 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $197 = 0, $203 = 0, $204 = 0, $206 = 0, $207 = 0, $209 = 0, $21 = 0, $210 = 0, $212 = 0, $213 = 0, $215 = 0, $216 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $223 = 0, $224 = 0, $226 = 0, $227 = 0, $229 = 0, $23 = 0, $230 = 0, $232 = 0, $233 = 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, $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, $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, $30 = 0, $32 = 0, $36 = 0, $37 = 0, $38 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $86 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $98 = 0, $burn$05 = 0, $burn$1$lcssa = 0, $burn$1$lcssa$lcssa = 0, $burn$13 = 0, $burn$13$us = 0, $i$02 = 0, $i$02$us = 0, $j$04 = 0, $t = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$t = sp;
$0 = $c + 12 | 0;
if ((HEAP32[(HEAP32[$0 >> 2] | 0) + 20 >> 2] | 0) != 16) {
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
if (($inbuflen + 8 | 0) >>> 0 > $outbuflen >>> 0) {
$$0 = 200;
STACKTOP = sp;
return $$0 | 0;
}
if ($inbuflen & 7) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$9 = $inbuflen >>> 3;
if ($inbuflen >>> 0 < 16) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$11 = $c + 80 | 0;
if (!(HEAP8[$c + 56 >> 0] & 2)) {
$27 = $outbuf;
$28 = $27;
HEAP8[$28 >> 0] = -1499027802;
HEAP8[$28 + 1 >> 0] = -1499027802 >> 8;
HEAP8[$28 + 2 >> 0] = -1499027802 >> 16;
HEAP8[$28 + 3 >> 0] = -1499027802 >> 24;
$30 = $27 + 4 | 0;
HEAP8[$30 >> 0] = -1499027802;
HEAP8[$30 + 1 >> 0] = -1499027802 >> 8;
HEAP8[$30 + 2 >> 0] = -1499027802 >> 16;
HEAP8[$30 + 3 >> 0] = -1499027802 >> 24;
$$pre$phiZ2D = $outbuf;
} else {
$17 = $c + 64 | 0;
$18 = $17;
$19 = HEAPU8[$18 >> 0] | HEAPU8[$18 + 1 >> 0] << 8 | HEAPU8[$18 + 2 >> 0] << 16 | HEAPU8[$18 + 3 >> 0] << 24;
$21 = $17 + 4 | 0;
$22 = HEAPU8[$21 >> 0] | HEAPU8[$21 + 1 >> 0] << 8 | HEAPU8[$21 + 2 >> 0] << 16 | HEAPU8[$21 + 3 >> 0] << 24;
$23 = $outbuf;
$24 = $23;
HEAP8[$24 >> 0] = $19;
HEAP8[$24 + 1 >> 0] = $19 >> 8;
HEAP8[$24 + 2 >> 0] = $19 >> 16;
HEAP8[$24 + 3 >> 0] = $19 >> 24;
$26 = $23 + 4 | 0;
HEAP8[$26 >> 0] = $22;
HEAP8[$26 + 1 >> 0] = $22 >> 8;
HEAP8[$26 + 2 >> 0] = $22 >> 16;
HEAP8[$26 + 3 >> 0] = $22 >> 24;
$$pre$phiZ2D = $outbuf;
}
_memmove($outbuf + 8 | 0, $inbuf | 0, $inbuflen | 0) | 0;
$32 = $t;
HEAP32[$32 >> 2] = 0;
HEAP32[$32 + 4 >> 2] = 0;
$36 = ($9 | 0) == 0;
$37 = $c + 88 | 0;
$38 = $c + 496 | 0;
$43 = (($11 | $outbuf) & 3 | 0) == 0;
$44 = $11 + 4 | 0;
$45 = $t + 4 | 0;
$46 = $outbuf + 4 | 0;
$47 = $11 + 1 | 0;
$48 = $t + 7 | 0;
$49 = $t + 6 | 0;
$50 = $t + 5 | 0;
$51 = $t + 4 | 0;
$52 = $t + 3 | 0;
$53 = $t + 2 | 0;
$54 = $t + 1 | 0;
$55 = $outbuf + 1 | 0;
$56 = $11 + 2 | 0;
$57 = $outbuf + 2 | 0;
$58 = $11 + 3 | 0;
$59 = $outbuf + 3 | 0;
$60 = $11 + 4 | 0;
$61 = $outbuf + 4 | 0;
$62 = $11 + 5 | 0;
$63 = $t + 5 | 0;
$64 = $outbuf + 5 | 0;
$65 = $11 + 6 | 0;
$66 = $t + 6 | 0;
$67 = $outbuf + 6 | 0;
$68 = $11 + 7 | 0;
$69 = $outbuf + 7 | 0;
$70 = $t + 7 | 0;
$71 = $t + 6 | 0;
$72 = $t + 5 | 0;
$73 = $t + 4 | 0;
$74 = $t + 3 | 0;
$75 = $t + 2 | 0;
$76 = $t + 1 | 0;
$237 = 0;
$238 = 0;
$239 = 0;
$240 = 0;
$241 = 0;
$242 = 0;
$243 = 0;
$244 = 0;
$245 = 0;
$246 = 0;
$247 = 0;
$248 = 0;
$249 = 0;
$250 = 0;
$burn$05 = 0;
$j$04 = 0;
while (1) {
L19 : do if ($36) {
$251 = $237;
$252 = $238;
$253 = $239;
$254 = $240;
$255 = $241;
$256 = $242;
$257 = $243;
$258 = $244;
$259 = $245;
$260 = $246;
$261 = $247;
$262 = $248;
$263 = $249;
$264 = $250;
$burn$1$lcssa = $burn$05;
} else {
if ($43) {
$106 = $250;
$109 = $240;
$221 = $239;
$224 = $238;
$227 = $246;
$230 = $245;
$233 = $244;
$236 = $237;
$265 = $248;
$266 = $249;
$burn$13$us = $burn$05;
$i$02$us = 1;
while (1) {
$77 = $$pre$phiZ2D;
$78 = $77;
$79 = HEAPU8[$78 >> 0] | HEAPU8[$78 + 1 >> 0] << 8 | HEAPU8[$78 + 2 >> 0] << 16 | HEAPU8[$78 + 3 >> 0] << 24;
$81 = $77 + 4 | 0;
$82 = HEAPU8[$81 >> 0] | HEAPU8[$81 + 1 >> 0] << 8 | HEAPU8[$81 + 2 >> 0] << 16 | HEAPU8[$81 + 3 >> 0] << 24;
$83 = $11;
$84 = $83;
HEAP8[$84 >> 0] = $79;
HEAP8[$84 + 1 >> 0] = $79 >> 8;
HEAP8[$84 + 2 >> 0] = $79 >> 16;
HEAP8[$84 + 3 >> 0] = $79 >> 24;
$86 = $83 + 4 | 0;
HEAP8[$86 >> 0] = $82;
HEAP8[$86 + 1 >> 0] = $82 >> 8;
HEAP8[$86 + 2 >> 0] = $82 >> 16;
HEAP8[$86 + 3 >> 0] = $82 >> 24;
$88 = $outbuf + ($i$02$us << 3) | 0;
$89 = $88;
$90 = $89;
$91 = HEAPU8[$90 >> 0] | HEAPU8[$90 + 1 >> 0] << 8 | HEAPU8[$90 + 2 >> 0] << 16 | HEAPU8[$90 + 3 >> 0] << 24;
$93 = $89 + 4 | 0;
$94 = HEAPU8[$93 >> 0] | HEAPU8[$93 + 1 >> 0] << 8 | HEAPU8[$93 + 2 >> 0] << 16 | HEAPU8[$93 + 3 >> 0] << 24;
$95 = $37;
$96 = $95;
HEAP8[$96 >> 0] = $91;
HEAP8[$96 + 1 >> 0] = $91 >> 8;
HEAP8[$96 + 2 >> 0] = $91 >> 16;
HEAP8[$96 + 3 >> 0] = $91 >> 24;
$98 = $95 + 4 | 0;
HEAP8[$98 >> 0] = $94;
HEAP8[$98 + 1 >> 0] = $94 >> 8;
HEAP8[$98 + 2 >> 0] = $94 >> 16;
HEAP8[$98 + 3 >> 0] = $94 >> 24;
$102 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 63]($38, $11, $11) | 0;
$104 = $102 >>> 0 > $burn$13$us >>> 0 ? $102 : $burn$13$us;
$105 = $106 + 1 << 24 >> 24;
HEAP8[$70 >> 0] = $105;
if (!($105 << 24 >> 24)) {
$108 = $109 + 1 << 24 >> 24;
HEAP8[$71 >> 0] = $108;
if (!($108 << 24 >> 24)) {
$220 = $221 + 1 << 24 >> 24;
HEAP8[$72 >> 0] = $220;
if (!($220 << 24 >> 24)) {
$223 = $224 + 1 << 24 >> 24;
HEAP8[$73 >> 0] = $223;
if (!($223 << 24 >> 24)) {
$226 = $227 + 1 << 24 >> 24;
HEAP8[$74 >> 0] = $226;
if (!($226 << 24 >> 24)) {
$229 = $230 + 1 << 24 >> 24;
HEAP8[$75 >> 0] = $229;
if (!($229 << 24 >> 24)) {
$232 = $233 + 1 << 24 >> 24;
HEAP8[$76 >> 0] = $232;
if (!($232 << 24 >> 24)) {
HEAP8[$t >> 0] = $236 + 1 << 24 >> 24;
$273 = 0;
$274 = 0;
$275 = 0;
$276 = 0;
$277 = 0;
$278 = 0;
$279 = 0;
} else {
$273 = 0;
$274 = 0;
$275 = $232;
$276 = 0;
$277 = 0;
$278 = 0;
$279 = 0;
}
} else {
$273 = 0;
$274 = 0;
$275 = $233;
$276 = $229;
$277 = 0;
$278 = 0;
$279 = 0;
}
} else {
$273 = 0;
$274 = 0;
$275 = $233;
$276 = $230;
$277 = $226;
$278 = 0;
$279 = 0;
}
} else {
$273 = 0;
$274 = 0;
$275 = $233;
$276 = $230;
$277 = $227;
$278 = 0;
$279 = 0;
}
} else {
$273 = $220;
$274 = 0;
$275 = $233;
$276 = $230;
$277 = $227;
$278 = $220;
$279 = 0;
}
} else {
$273 = $221;
$274 = $108;
$275 = $233;
$276 = $230;
$277 = $227;
$278 = $265;
$279 = $108;
}
} else {
$273 = $221;
$274 = $109;
$275 = $233;
$276 = $230;
$277 = $227;
$278 = $265;
$279 = $266;
}
$112 = HEAP32[$t >> 2] | 0;
HEAP32[$outbuf >> 2] = $112 ^ HEAP32[$11 >> 2];
$115 = HEAP32[$45 >> 2] | 0;
HEAP32[$46 >> 2] = $115 ^ HEAP32[$44 >> 2];
$117 = $37;
$118 = $117;
$119 = HEAPU8[$118 >> 0] | HEAPU8[$118 + 1 >> 0] << 8 | HEAPU8[$118 + 2 >> 0] << 16 | HEAPU8[$118 + 3 >> 0] << 24;
$121 = $117 + 4 | 0;
$122 = HEAPU8[$121 >> 0] | HEAPU8[$121 + 1 >> 0] << 8 | HEAPU8[$121 + 2 >> 0] << 16 | HEAPU8[$121 + 3 >> 0] << 24;
$123 = $88;
$124 = $123;
HEAP8[$124 >> 0] = $119;
HEAP8[$124 + 1 >> 0] = $119 >> 8;
HEAP8[$124 + 2 >> 0] = $119 >> 16;
HEAP8[$124 + 3 >> 0] = $119 >> 24;
$126 = $123 + 4 | 0;
HEAP8[$126 >> 0] = $122;
HEAP8[$126 + 1 >> 0] = $122 >> 8;
HEAP8[$126 + 2 >> 0] = $122 >> 16;
HEAP8[$126 + 3 >> 0] = $122 >> 24;
$i$02$us = $i$02$us + 1 | 0;
$129 = $115 & 255;
$130 = $112 & 255;
if ($i$02$us >>> 0 > $9 >>> 0) {
$251 = $130;
$252 = $129;
$253 = $273;
$254 = $274;
$255 = $129;
$256 = $130;
$257 = $130;
$258 = $275;
$259 = $276;
$260 = $277;
$261 = $129;
$262 = $278;
$263 = $279;
$264 = $105;
$burn$1$lcssa = $104;
break L19;
} else {
$106 = $105;
$109 = $274;
$221 = $273;
$224 = $129;
$227 = $277;
$230 = $276;
$233 = $275;
$236 = $130;
$265 = $278;
$266 = $279;
$burn$13$us = $104;
}
}
} else {
$160 = $250;
$163 = $249;
$204 = $248;
$207 = $247;
$210 = $246;
$213 = $245;
$216 = $244;
$219 = $243;
$267 = $237;
$268 = $238;
$269 = $239;
$270 = $240;
$271 = $241;
$272 = $242;
$burn$13 = $burn$05;
$i$02 = 1;
}
while (1) {
$131 = $$pre$phiZ2D;
$132 = $131;
$133 = HEAPU8[$132 >> 0] | HEAPU8[$132 + 1 >> 0] << 8 | HEAPU8[$132 + 2 >> 0] << 16 | HEAPU8[$132 + 3 >> 0] << 24;
$135 = $131 + 4 | 0;
$136 = HEAPU8[$135 >> 0] | HEAPU8[$135 + 1 >> 0] << 8 | HEAPU8[$135 + 2 >> 0] << 16 | HEAPU8[$135 + 3 >> 0] << 24;
$137 = $11;
$138 = $137;
HEAP8[$138 >> 0] = $133;
HEAP8[$138 + 1 >> 0] = $133 >> 8;
HEAP8[$138 + 2 >> 0] = $133 >> 16;
HEAP8[$138 + 3 >> 0] = $133 >> 24;
$140 = $137 + 4 | 0;
HEAP8[$140 >> 0] = $136;
HEAP8[$140 + 1 >> 0] = $136 >> 8;
HEAP8[$140 + 2 >> 0] = $136 >> 16;
HEAP8[$140 + 3 >> 0] = $136 >> 24;
$142 = $outbuf + ($i$02 << 3) | 0;
$143 = $142;
$144 = $143;
$145 = HEAPU8[$144 >> 0] | HEAPU8[$144 + 1 >> 0] << 8 | HEAPU8[$144 + 2 >> 0] << 16 | HEAPU8[$144 + 3 >> 0] << 24;
$147 = $143 + 4 | 0;
$148 = HEAPU8[$147 >> 0] | HEAPU8[$147 + 1 >> 0] << 8 | HEAPU8[$147 + 2 >> 0] << 16 | HEAPU8[$147 + 3 >> 0] << 24;
$149 = $37;
$150 = $149;
HEAP8[$150 >> 0] = $145;
HEAP8[$150 + 1 >> 0] = $145 >> 8;
HEAP8[$150 + 2 >> 0] = $145 >> 16;
HEAP8[$150 + 3 >> 0] = $145 >> 24;
$152 = $149 + 4 | 0;
HEAP8[$152 >> 0] = $148;
HEAP8[$152 + 1 >> 0] = $148 >> 8;
HEAP8[$152 + 2 >> 0] = $148 >> 16;
HEAP8[$152 + 3 >> 0] = $148 >> 24;
$156 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 63]($38, $11, $11) | 0;
$158 = $156 >>> 0 > $burn$13 >>> 0 ? $156 : $burn$13;
$159 = $160 + 1 << 24 >> 24;
if (!($159 << 24 >> 24)) {
$162 = $163 + 1 << 24 >> 24;
HEAP8[$49 >> 0] = $162;
if (!($162 << 24 >> 24)) {
$203 = $204 + 1 << 24 >> 24;
HEAP8[$50 >> 0] = $203;
if (!($203 << 24 >> 24)) {
$206 = $207 + 1 << 24 >> 24;
HEAP8[$51 >> 0] = $206;
if (!($206 << 24 >> 24)) {
$209 = $210 + 1 << 24 >> 24;
HEAP8[$52 >> 0] = $209;
if (!($209 << 24 >> 24)) {
$212 = $213 + 1 << 24 >> 24;
HEAP8[$53 >> 0] = $212;
if (!($212 << 24 >> 24)) {
$215 = $216 + 1 << 24 >> 24;
HEAP8[$54 >> 0] = $215;
if (!($215 << 24 >> 24)) {
$218 = $219 + 1 << 24 >> 24;
HEAP8[$t >> 0] = $218;
$167 = $218;
$170 = 0;
$173 = 0;
$176 = 0;
$179 = 0;
$280 = $218;
$281 = 0;
$282 = 0;
$283 = 0;
$284 = 0;
$285 = 0;
} else {
$167 = $272;
$170 = $215;
$173 = 0;
$176 = 0;
$179 = 0;
$280 = $267;
$281 = 0;
$282 = 0;
$283 = 0;
$284 = 0;
$285 = 0;
}
} else {
$167 = $272;
$170 = $216;
$173 = $212;
$176 = 0;
$179 = 0;
$280 = $267;
$281 = 0;
$282 = 0;
$283 = 0;
$284 = 0;
$285 = 0;
}
} else {
$167 = $272;
$170 = $216;
$173 = $213;
$176 = $209;
$179 = 0;
$280 = $267;
$281 = 0;
$282 = 0;
$283 = 0;
$284 = 0;
$285 = 0;
}
} else {
$167 = $272;
$170 = $216;
$173 = $213;
$176 = $210;
$179 = $206;
$280 = $267;
$281 = $206;
$282 = 0;
$283 = 0;
$284 = 0;
$285 = 0;
}
} else {
$167 = $272;
$170 = $216;
$173 = $213;
$176 = $210;
$179 = $271;
$280 = $267;
$281 = $268;
$282 = $203;
$283 = 0;
$284 = $203;
$285 = 0;
}
} else {
$167 = $272;
$170 = $216;
$173 = $213;
$176 = $210;
$179 = $271;
$280 = $267;
$281 = $268;
$282 = $269;
$283 = $162;
$284 = $204;
$285 = $162;
}
} else {
$167 = $272;
$170 = $216;
$173 = $213;
$176 = $210;
$179 = $271;
$280 = $267;
$281 = $268;
$282 = $269;
$283 = $270;
$284 = $204;
$285 = $163;
}
HEAP8[$outbuf >> 0] = $167 ^ HEAP8[$11 >> 0];
HEAP8[$55 >> 0] = $170 ^ HEAP8[$47 >> 0];
HEAP8[$57 >> 0] = $173 ^ HEAP8[$56 >> 0];
HEAP8[$59 >> 0] = $176 ^ HEAP8[$58 >> 0];
HEAP8[$61 >> 0] = $179 ^ HEAP8[$60 >> 0];
HEAP8[$64 >> 0] = HEAP8[$63 >> 0] ^ HEAP8[$62 >> 0];
HEAP8[$67 >> 0] = HEAP8[$66 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$69 >> 0] = $159 ^ HEAP8[$68 >> 0];
$188 = $37;
$189 = $188;
$190 = HEAPU8[$189 >> 0] | HEAPU8[$189 + 1 >> 0] << 8 | HEAPU8[$189 + 2 >> 0] << 16 | HEAPU8[$189 + 3 >> 0] << 24;
$192 = $188 + 4 | 0;
$193 = HEAPU8[$192 >> 0] | HEAPU8[$192 + 1 >> 0] << 8 | HEAPU8[$192 + 2 >> 0] << 16 | HEAPU8[$192 + 3 >> 0] << 24;
$194 = $142;
$195 = $194;
HEAP8[$195 >> 0] = $190;
HEAP8[$195 + 1 >> 0] = $190 >> 8;
HEAP8[$195 + 2 >> 0] = $190 >> 16;
HEAP8[$195 + 3 >> 0] = $190 >> 24;
$197 = $194 + 4 | 0;
HEAP8[$197 >> 0] = $193;
HEAP8[$197 + 1 >> 0] = $193 >> 8;
HEAP8[$197 + 2 >> 0] = $193 >> 16;
HEAP8[$197 + 3 >> 0] = $193 >> 24;
$i$02 = $i$02 + 1 | 0;
if ($i$02 >>> 0 > $9 >>> 0) {
$$lcssa = $158;
$$lcssa80 = $159;
$$lcssa81 = $280;
$$lcssa82 = $281;
$$lcssa83 = $282;
$$lcssa84 = $283;
$$lcssa85 = $179;
$$lcssa86 = $176;
$$lcssa87 = $173;
$$lcssa88 = $170;
$$lcssa89 = $167;
$$lcssa90 = $284;
$$lcssa91 = $285;
break;
} else {
$160 = $159;
$163 = $285;
$204 = $284;
$207 = $179;
$210 = $176;
$213 = $173;
$216 = $170;
$219 = $167;
$267 = $280;
$268 = $281;
$269 = $282;
$270 = $283;
$271 = $179;
$272 = $167;
$burn$13 = $158;
}
}
HEAP8[$48 >> 0] = $$lcssa80;
$251 = $$lcssa81;
$252 = $$lcssa82;
$253 = $$lcssa83;
$254 = $$lcssa84;
$255 = $$lcssa85;
$256 = $$lcssa89;
$257 = $$lcssa89;
$258 = $$lcssa88;
$259 = $$lcssa87;
$260 = $$lcssa86;
$261 = $$lcssa85;
$262 = $$lcssa90;
$263 = $$lcssa91;
$264 = $$lcssa80;
$burn$1$lcssa = $$lcssa;
} while (0);
$j$04 = $j$04 + 1 | 0;
if (($j$04 | 0) == 6) {
$burn$1$lcssa$lcssa = $burn$1$lcssa;
break;
} else {
$237 = $251;
$238 = $252;
$239 = $253;
$240 = $254;
$241 = $255;
$242 = $256;
$243 = $257;
$244 = $258;
$245 = $259;
$246 = $260;
$247 = $261;
$248 = $262;
$249 = $263;
$250 = $264;
$burn$05 = $burn$1$lcssa;
}
}
if (!$burn$1$lcssa$lcssa) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
___gcry_burn_stack($burn$1$lcssa$lcssa + 16 | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 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, $$0$lcssa$i = 0, $$0$lcssa$i$143 = 0, $$0$lcssa$i$23 = 0, $$0$lcssa$i$69 = 0, $$0$lcssa$i$88 = 0, $$01 = 0, $$02 = 0, $$06 = 0, $$06$i = 0, $$06$i$136 = 0, $$08$i = 0, $$08$i$108$us = 0, $$08$i$14 = 0, $$08$i$43 = 0, $$08$i$79 = 0, $$1$ph$i = 0, $$1$ph$i$125$us = 0, $$1$ph$i$149 = 0, $$1$ph$i$31 = 0, $$1$ph$i$72 = 0, $$1$ph$i$96 = 0, $$1159 = 0, $$1159$us = 0, $$13$i = 0, $$13$i$151 = 0, $$13158 = 0, $$13158$us = 0, $$14$i = 0, $$14$i$127 = 0, $$14$i$127$us = 0, $$14$i$33 = 0, $$14$i$62 = 0, $$14$i$98 = 0, $$17157 = 0, $$17157$us = 0, $$2 = 0, $$24 = 0, $$28 = 0, $$3 = 0, $$35 = 0, $$39 = 0, $1 = 0, $110 = 0, $119 = 0, $123 = 0, $124 = 0, $125 = 0, $127 = 0, $130 = 0, $134 = 0, $136 = 0, $14 = 0, $141 = 0, $145 = 0, $146 = 0, $147 = 0, $150 = 0, $151 = 0, $153 = 0, $158 = 0, $159 = 0, $160 = 0, $174 = 0, $176 = 0, $184 = 0, $185 = 0, $186 = 0, $191 = 0, $201 = 0, $209 = 0, $210 = 0, $212 = 0, $217 = 0, $218 = 0, $219 = 0, $23 = 0, $233 = 0, $235 = 0, $24 = 0, $244 = 0, $245 = 0, $246 = 0, $25 = 0, $251 = 0, $261 = 0, $3 = 0, $30 = 0, $40 = 0, $45 = 0, $47 = 0, $5 = 0, $51 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $67 = 0, $77 = 0, $8 = 0, $82 = 0, $86 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $99 = 0, $burn$0160 = 0, $burn$0160$us = 0, $burn$1 = 0, $burn$2 = 0, $burn$3 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$147 = 0, $dst$01$i = 0, $dst$01$i$153 = 0, $dst1$0$ph$i = 0, $dst1$0$ph$i$122$us = 0, $dst1$0$ph$i$28 = 0, $dst1$0$ph$i$93 = 0, $dst1$01$i = 0, $dst1$01$i$101 = 0, $dst1$01$i$130 = 0, $dst1$01$i$130$us = 0, $dst1$01$i$36 = 0, $dst1$01$i$65 = 0, $dst2$0$ph$i = 0, $dst2$0$ph$i$123$us = 0, $dst2$0$ph$i$29 = 0, $dst2$0$ph$i$94 = 0, $dst2$02$i = 0, $dst2$02$i$100 = 0, $dst2$02$i$129 = 0, $dst2$02$i$129$us = 0, $dst2$02$i$35 = 0, $dst2$02$i$64 = 0, $ldst$0$lcssa$i = 0, $ldst$0$lcssa$i$145 = 0, $ldst$04$i = 0, $ldst$04$i$138 = 0, $ldst1$0$lcssa$i = 0, $ldst1$0$lcssa$i$26 = 0, $ldst1$0$lcssa$i$91 = 0, $ldst1$05$i = 0, $ldst1$05$i$111$us = 0, $ldst1$05$i$17 = 0, $ldst1$05$i$46 = 0, $ldst1$05$i$82 = 0, $ldst2$0$lcssa$i = 0, $ldst2$0$lcssa$i$25 = 0, $ldst2$0$lcssa$i$90 = 0, $ldst2$06$i = 0, $ldst2$06$i$110$us = 0, $ldst2$06$i$16 = 0, $ldst2$06$i$45 = 0, $ldst2$06$i$81 = 0, $lsrc$0$lcssa$i = 0, $lsrc$0$lcssa$i$144 = 0, $lsrc$0$lcssa$i$24 = 0, $lsrc$0$lcssa$i$70 = 0, $lsrc$0$lcssa$i$89 = 0, $lsrc$05$i = 0, $lsrc$05$i$137 = 0, $lsrc$07$i = 0, $lsrc$07$i$109$us = 0, $lsrc$07$i$15 = 0, $lsrc$07$i$44 = 0, $lsrc$07$i$80 = 0, $scevgep$i$104$us = 0, $scevgep$i$133 = 0, $scevgep$i$68 = 0, $scevgep19$i = 0, $scevgep19$i$105 = 0, $scevgep19$i$11 = 0, $scevgep19$i$40 = 0, $scevgep19$i$76 = 0, $src$0$ph$i = 0, $src$0$ph$i$124$us = 0, $src$0$ph$i$148 = 0, $src$0$ph$i$30 = 0, $src$0$ph$i$71 = 0, $src$0$ph$i$95 = 0, $src$02$i = 0, $src$02$i$152 = 0, $src$03$i = 0, $src$03$i$128 = 0, $src$03$i$128$us = 0, $src$03$i$34 = 0, $src$03$i$63 = 0, $src$03$i$99 = 0, label = 0;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 36 >> 2] | 0;
$5 = HEAP32[$1 + 20 >> 2] | 0;
$6 = $5 << 1;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$8 = $c + 112 | 0;
$9 = HEAP32[$8 >> 2] | 0;
if ($9 >>> 0 >= $inbuflen >>> 0) {
$14 = $c + 64 + $5 + (0 - $9) | 0;
if (!(($inbuf | $outbuf | $14) & 3)) {
if ($inbuflen >>> 0 > 3) {
$23 = $inbuflen + -4 | 0;
$24 = $23 & -4;
$25 = $24 + 4 | 0;
$scevgep19$i = $14 + $25 | 0;
$$08$i = $inbuflen;
$ldst1$05$i = $outbuf;
$ldst2$06$i = $14;
$lsrc$07$i = $inbuf;
while (1) {
$30 = HEAP32[$ldst2$06$i >> 2] ^ HEAP32[$lsrc$07$i >> 2];
HEAP32[$ldst2$06$i >> 2] = $30;
HEAP32[$ldst1$05$i >> 2] = $30;
$$08$i = $$08$i + -4 | 0;
if ($$08$i >>> 0 <= 3) break; else {
$ldst1$05$i = $ldst1$05$i + 4 | 0;
$ldst2$06$i = $ldst2$06$i + 4 | 0;
$lsrc$07$i = $lsrc$07$i + 4 | 0;
}
}
$$0$lcssa$i = $23 - $24 | 0;
$ldst1$0$lcssa$i = $outbuf + $25 | 0;
$ldst2$0$lcssa$i = $scevgep19$i;
$lsrc$0$lcssa$i = $inbuf + $25 | 0;
} else {
$$0$lcssa$i = $inbuflen;
$ldst1$0$lcssa$i = $outbuf;
$ldst2$0$lcssa$i = $14;
$lsrc$0$lcssa$i = $inbuf;
}
$$1$ph$i = $$0$lcssa$i;
$dst1$0$ph$i = $ldst1$0$lcssa$i;
$dst2$0$ph$i = $ldst2$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i = $inbuflen;
$dst1$0$ph$i = $outbuf;
$dst2$0$ph$i = $14;
$src$0$ph$i = $inbuf;
}
if (!$$1$ph$i) $45 = $9; else {
$$14$i = $$1$ph$i;
$dst1$01$i = $dst1$0$ph$i;
$dst2$02$i = $dst2$0$ph$i;
$src$03$i = $src$0$ph$i;
while (1) {
$40 = HEAP8[$dst2$02$i >> 0] ^ HEAP8[$src$03$i >> 0];
HEAP8[$dst2$02$i >> 0] = $40;
HEAP8[$dst1$01$i >> 0] = $40;
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) break; else {
$dst1$01$i = $dst1$01$i + 1 | 0;
$dst2$02$i = $dst2$02$i + 1 | 0;
$src$03$i = $src$03$i + 1 | 0;
}
}
$45 = HEAP32[$8 >> 2] | 0;
}
HEAP32[$8 >> 2] = $45 - $inbuflen;
$$0 = 0;
return $$0 | 0;
}
if (!$9) {
$$01 = $outbuf;
$$02 = $inbuf;
$$06 = $inbuflen;
} else {
$47 = $inbuflen - $9 | 0;
$51 = $c + 64 + $5 + (0 - $9) | 0;
if ($9 >>> 0 > 3 & (($inbuf | $outbuf | $51) & 3 | 0) == 0) {
$60 = $9 + -4 | 0;
$61 = $60 & -4;
$62 = $61 + 4 | 0;
$scevgep19$i$40 = $51 + $62 | 0;
$$08$i$43 = $9;
$ldst1$05$i$46 = $outbuf;
$ldst2$06$i$45 = $51;
$lsrc$07$i$44 = $inbuf;
while (1) {
$67 = HEAP32[$ldst2$06$i$45 >> 2] ^ HEAP32[$lsrc$07$i$44 >> 2];
HEAP32[$ldst2$06$i$45 >> 2] = $67;
HEAP32[$ldst1$05$i$46 >> 2] = $67;
$$08$i$43 = $$08$i$43 + -4 | 0;
if ($$08$i$43 >>> 0 <= 3) break; else {
$ldst1$05$i$46 = $ldst1$05$i$46 + 4 | 0;
$ldst2$06$i$45 = $ldst2$06$i$45 + 4 | 0;
$lsrc$07$i$44 = $lsrc$07$i$44 + 4 | 0;
}
}
if (($60 | 0) == ($61 | 0)) $82 = $9; else {
$$14$i$62 = $60 - $61 | 0;
$dst1$01$i$65 = $outbuf + $62 | 0;
$dst2$02$i$64 = $scevgep19$i$40;
$src$03$i$63 = $inbuf + $62 | 0;
label = 18;
}
} else {
$$14$i$62 = $9;
$dst1$01$i$65 = $outbuf;
$dst2$02$i$64 = $51;
$src$03$i$63 = $inbuf;
label = 18;
}
if ((label | 0) == 18) {
while (1) {
label = 0;
$77 = HEAP8[$dst2$02$i$64 >> 0] ^ HEAP8[$src$03$i$63 >> 0];
HEAP8[$dst2$02$i$64 >> 0] = $77;
HEAP8[$dst1$01$i$65 >> 0] = $77;
$$14$i$62 = $$14$i$62 + -1 | 0;
if (!$$14$i$62) break; else {
$dst1$01$i$65 = $dst1$01$i$65 + 1 | 0;
$dst2$02$i$64 = $dst2$02$i$64 + 1 | 0;
$src$03$i$63 = $src$03$i$63 + 1 | 0;
label = 18;
}
}
$82 = HEAP32[$8 >> 2] | 0;
}
HEAP32[$8 >> 2] = 0;
$$01 = $outbuf + $82 | 0;
$$02 = $inbuf + $82 | 0;
$$06 = $47;
}
L35 : do if ($$06 >>> 0 < $6 >>> 0) {
$$2 = $$01;
$$24 = $$02;
$$28 = $$06;
$burn$1 = 0;
} else {
$86 = HEAP32[$c + 20 >> 2] | 0;
if ($86) {
$127 = ($$06 >>> 0) / ($5 >>> 0) | 0;
FUNCTION_TABLE_viiiii[$86 & 15]($c + 496 | 0, $c + 64 | 0, $$01, $$02, $127);
$130 = Math_imul($127, $5) | 0;
$$2 = $$01 + $130 | 0;
$$24 = $$02 + $130 | 0;
$$28 = $$06 - $130 | 0;
$burn$1 = 0;
break;
}
$88 = $c + 496 | 0;
$89 = $c + 64 | 0;
$90 = $89;
$92 = $5 + -4 | 0;
$93 = $92 & -4;
$94 = $93 + 4 | 0;
$scevgep19$i$105 = $89 + $94 | 0;
$95 = $92 - $93 | 0;
if ($5 >>> 0 > 3) {
$$1159$us = $$01;
$$13158$us = $$02;
$$17157$us = $$06;
$burn$0160$us = 0;
} else {
$96 = ($5 | 0) == 0;
$$1159 = $$01;
$$13158 = $$02;
$$17157 = $$06;
$burn$0160 = 0;
while (1) {
$134 = FUNCTION_TABLE_iiii[$3 & 63]($88, $89, $89) | 0;
$136 = $134 >>> 0 > $burn$0160 >>> 0 ? $134 : $burn$0160;
if (!$96) {
$$14$i$127 = $5;
$dst1$01$i$130 = $$1159;
$dst2$02$i$129 = $89;
$src$03$i$128 = $$13158;
while (1) {
$141 = HEAP8[$dst2$02$i$129 >> 0] ^ HEAP8[$src$03$i$128 >> 0];
HEAP8[$dst2$02$i$129 >> 0] = $141;
HEAP8[$dst1$01$i$130 >> 0] = $141;
$$14$i$127 = $$14$i$127 + -1 | 0;
if (!$$14$i$127) break; else {
$dst1$01$i$130 = $dst1$01$i$130 + 1 | 0;
$dst2$02$i$129 = $dst2$02$i$129 + 1 | 0;
$src$03$i$128 = $src$03$i$128 + 1 | 0;
}
}
}
$145 = $$1159 + $5 | 0;
$146 = $$13158 + $5 | 0;
$147 = $$17157 - $5 | 0;
if ($147 >>> 0 < $6 >>> 0) {
$$2 = $145;
$$24 = $146;
$$28 = $147;
$burn$1 = $136;
break L35;
} else {
$$1159 = $145;
$$13158 = $146;
$$17157 = $147;
$burn$0160 = $136;
}
}
}
while (1) {
$97 = FUNCTION_TABLE_iiii[$3 & 63]($88, $89, $89) | 0;
$99 = $97 >>> 0 > $burn$0160$us >>> 0 ? $97 : $burn$0160$us;
if (!(($$13158$us | $90 | $$1159$us) & 3)) {
$scevgep$i$104$us = $$1159$us + $94 | 0;
$$08$i$108$us = $5;
$ldst1$05$i$111$us = $$1159$us;
$ldst2$06$i$110$us = $89;
$lsrc$07$i$109$us = $$13158$us;
while (1) {
$110 = HEAP32[$ldst2$06$i$110$us >> 2] ^ HEAP32[$lsrc$07$i$109$us >> 2];
HEAP32[$ldst2$06$i$110$us >> 2] = $110;
HEAP32[$ldst1$05$i$111$us >> 2] = $110;
$$08$i$108$us = $$08$i$108$us + -4 | 0;
if ($$08$i$108$us >>> 0 <= 3) break; else {
$ldst1$05$i$111$us = $ldst1$05$i$111$us + 4 | 0;
$ldst2$06$i$110$us = $ldst2$06$i$110$us + 4 | 0;
$lsrc$07$i$109$us = $lsrc$07$i$109$us + 4 | 0;
}
}
$$1$ph$i$125$us = $95;
$dst1$0$ph$i$122$us = $scevgep$i$104$us;
$dst2$0$ph$i$123$us = $scevgep19$i$105;
$src$0$ph$i$124$us = $$13158$us + $94 | 0;
} else {
$$1$ph$i$125$us = $5;
$dst1$0$ph$i$122$us = $$1159$us;
$dst2$0$ph$i$123$us = $89;
$src$0$ph$i$124$us = $$13158$us;
}
if ($$1$ph$i$125$us) {
$$14$i$127$us = $$1$ph$i$125$us;
$dst1$01$i$130$us = $dst1$0$ph$i$122$us;
$dst2$02$i$129$us = $dst2$0$ph$i$123$us;
$src$03$i$128$us = $src$0$ph$i$124$us;
while (1) {
$119 = HEAP8[$dst2$02$i$129$us >> 0] ^ HEAP8[$src$03$i$128$us >> 0];
HEAP8[$dst2$02$i$129$us >> 0] = $119;
HEAP8[$dst1$01$i$130$us >> 0] = $119;
$$14$i$127$us = $$14$i$127$us + -1 | 0;
if (!$$14$i$127$us) break; else {
$dst1$01$i$130$us = $dst1$01$i$130$us + 1 | 0;
$dst2$02$i$129$us = $dst2$02$i$129$us + 1 | 0;
$src$03$i$128$us = $src$03$i$128$us + 1 | 0;
}
}
}
$123 = $$1159$us + $5 | 0;
$124 = $$13158$us + $5 | 0;
$125 = $$17157$us - $5 | 0;
if ($125 >>> 0 < $6 >>> 0) {
$$2 = $123;
$$24 = $124;
$$28 = $125;
$burn$1 = $99;
break;
} else {
$$1159$us = $123;
$$13158$us = $124;
$$17157$us = $125;
$burn$0160$us = $99;
}
}
} while (0);
if ($$28 >>> 0 < $5 >>> 0) {
$$3 = $$2;
$$35 = $$24;
$$39 = $$28;
$burn$2 = $burn$1;
} else {
$150 = $c + 96 | 0;
$151 = $c + 64 | 0;
$153 = $151;
if (!(($153 | $150) & 3)) {
if ($5 >>> 0 > 3) {
$158 = $5 + -4 | 0;
$159 = $158 & -4;
$160 = $159 + 4 | 0;
$scevgep$i$133 = $c + 96 + $160 | 0;
$$06$i$136 = $5;
$ldst$04$i$138 = $150;
$lsrc$05$i$137 = $151;
while (1) {
HEAP32[$ldst$04$i$138 >> 2] = HEAP32[$lsrc$05$i$137 >> 2];
$$06$i$136 = $$06$i$136 + -4 | 0;
if ($$06$i$136 >>> 0 <= 3) break; else {
$ldst$04$i$138 = $ldst$04$i$138 + 4 | 0;
$lsrc$05$i$137 = $lsrc$05$i$137 + 4 | 0;
}
}
$$0$lcssa$i$143 = $158 - $159 | 0;
$ldst$0$lcssa$i$145 = $scevgep$i$133;
$lsrc$0$lcssa$i$144 = $151 + $160 | 0;
} else {
$$0$lcssa$i$143 = $5;
$ldst$0$lcssa$i$145 = $150;
$lsrc$0$lcssa$i$144 = $151;
}
$$1$ph$i$149 = $$0$lcssa$i$143;
$dst$0$ph$i$147 = $ldst$0$lcssa$i$145;
$src$0$ph$i$148 = $lsrc$0$lcssa$i$144;
} else {
$$1$ph$i$149 = $5;
$dst$0$ph$i$147 = $150;
$src$0$ph$i$148 = $151;
}
if ($$1$ph$i$149) {
$$13$i$151 = $$1$ph$i$149;
$dst$01$i$153 = $dst$0$ph$i$147;
$src$02$i$152 = $src$0$ph$i$148;
while (1) {
HEAP8[$dst$01$i$153 >> 0] = HEAP8[$src$02$i$152 >> 0] | 0;
$$13$i$151 = $$13$i$151 + -1 | 0;
if (!$$13$i$151) break; else {
$dst$01$i$153 = $dst$01$i$153 + 1 | 0;
$src$02$i$152 = $src$02$i$152 + 1 | 0;
}
}
}
$174 = FUNCTION_TABLE_iiii[$3 & 63]($c + 496 | 0, $151, $151) | 0;
$176 = $174 >>> 0 > $burn$1 >>> 0 ? $174 : $burn$1;
if (!(($$24 | $153 | $$2) & 3)) {
if ($5 >>> 0 > 3) {
$184 = $5 + -4 | 0;
$185 = $184 & -4;
$186 = $185 + 4 | 0;
$scevgep19$i$76 = $151 + $186 | 0;
$$08$i$79 = $5;
$ldst1$05$i$82 = $$2;
$ldst2$06$i$81 = $151;
$lsrc$07$i$80 = $$24;
while (1) {
$191 = HEAP32[$ldst2$06$i$81 >> 2] ^ HEAP32[$lsrc$07$i$80 >> 2];
HEAP32[$ldst2$06$i$81 >> 2] = $191;
HEAP32[$ldst1$05$i$82 >> 2] = $191;
$$08$i$79 = $$08$i$79 + -4 | 0;
if ($$08$i$79 >>> 0 <= 3) break; else {
$ldst1$05$i$82 = $ldst1$05$i$82 + 4 | 0;
$ldst2$06$i$81 = $ldst2$06$i$81 + 4 | 0;
$lsrc$07$i$80 = $lsrc$07$i$80 + 4 | 0;
}
}
$$0$lcssa$i$88 = $184 - $185 | 0;
$ldst1$0$lcssa$i$91 = $$2 + $186 | 0;
$ldst2$0$lcssa$i$90 = $scevgep19$i$76;
$lsrc$0$lcssa$i$89 = $$24 + $186 | 0;
} else {
$$0$lcssa$i$88 = $5;
$ldst1$0$lcssa$i$91 = $$2;
$ldst2$0$lcssa$i$90 = $151;
$lsrc$0$lcssa$i$89 = $$24;
}
$$1$ph$i$96 = $$0$lcssa$i$88;
$dst1$0$ph$i$93 = $ldst1$0$lcssa$i$91;
$dst2$0$ph$i$94 = $ldst2$0$lcssa$i$90;
$src$0$ph$i$95 = $lsrc$0$lcssa$i$89;
} else {
$$1$ph$i$96 = $5;
$dst1$0$ph$i$93 = $$2;
$dst2$0$ph$i$94 = $151;
$src$0$ph$i$95 = $$24;
}
if ($$1$ph$i$96) {
$$14$i$98 = $$1$ph$i$96;
$dst1$01$i$101 = $dst1$0$ph$i$93;
$dst2$02$i$100 = $dst2$0$ph$i$94;
$src$03$i$99 = $src$0$ph$i$95;
while (1) {
$201 = HEAP8[$dst2$02$i$100 >> 0] ^ HEAP8[$src$03$i$99 >> 0];
HEAP8[$dst2$02$i$100 >> 0] = $201;
HEAP8[$dst1$01$i$101 >> 0] = $201;
$$14$i$98 = $$14$i$98 + -1 | 0;
if (!$$14$i$98) break; else {
$dst1$01$i$101 = $dst1$01$i$101 + 1 | 0;
$dst2$02$i$100 = $dst2$02$i$100 + 1 | 0;
$src$03$i$99 = $src$03$i$99 + 1 | 0;
}
}
}
$$3 = $$2 + $5 | 0;
$$35 = $$24 + $5 | 0;
$$39 = $$28 - $5 | 0;
$burn$2 = $176;
}
if (!$$39) $burn$3 = $burn$2; else {
$209 = $c + 96 | 0;
$210 = $c + 64 | 0;
$212 = $210;
if (!(($212 | $209) & 3)) {
if ($5 >>> 0 > 3) {
$217 = $5 + -4 | 0;
$218 = $217 & -4;
$219 = $218 + 4 | 0;
$scevgep$i$68 = $c + 96 + $219 | 0;
$$06$i = $5;
$ldst$04$i = $209;
$lsrc$05$i = $210;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i$69 = $217 - $218 | 0;
$ldst$0$lcssa$i = $scevgep$i$68;
$lsrc$0$lcssa$i$70 = $210 + $219 | 0;
} else {
$$0$lcssa$i$69 = $5;
$ldst$0$lcssa$i = $209;
$lsrc$0$lcssa$i$70 = $210;
}
$$1$ph$i$72 = $$0$lcssa$i$69;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src$0$ph$i$71 = $lsrc$0$lcssa$i$70;
} else {
$$1$ph$i$72 = $5;
$dst$0$ph$i = $209;
$src$0$ph$i$71 = $210;
}
if ($$1$ph$i$72) {
$$13$i = $$1$ph$i$72;
$dst$01$i = $dst$0$ph$i;
$src$02$i = $src$0$ph$i$71;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
$233 = FUNCTION_TABLE_iiii[$3 & 63]($c + 496 | 0, $210, $210) | 0;
$235 = $233 >>> 0 > $burn$2 >>> 0 ? $233 : $burn$2;
HEAP32[$8 >> 2] = $5 - $$39;
if (!(($$35 | $212 | $$3) & 3)) {
if ($$39 >>> 0 > 3) {
$244 = $$39 + -4 | 0;
$245 = $244 & -4;
$246 = $245 + 4 | 0;
$scevgep19$i$11 = $210 + $246 | 0;
$$08$i$14 = $$39;
$ldst1$05$i$17 = $$3;
$ldst2$06$i$16 = $210;
$lsrc$07$i$15 = $$35;
while (1) {
$251 = HEAP32[$ldst2$06$i$16 >> 2] ^ HEAP32[$lsrc$07$i$15 >> 2];
HEAP32[$ldst2$06$i$16 >> 2] = $251;
HEAP32[$ldst1$05$i$17 >> 2] = $251;
$$08$i$14 = $$08$i$14 + -4 | 0;
if ($$08$i$14 >>> 0 <= 3) break; else {
$ldst1$05$i$17 = $ldst1$05$i$17 + 4 | 0;
$ldst2$06$i$16 = $ldst2$06$i$16 + 4 | 0;
$lsrc$07$i$15 = $lsrc$07$i$15 + 4 | 0;
}
}
$$0$lcssa$i$23 = $244 - $245 | 0;
$ldst1$0$lcssa$i$26 = $$3 + $246 | 0;
$ldst2$0$lcssa$i$25 = $scevgep19$i$11;
$lsrc$0$lcssa$i$24 = $$35 + $246 | 0;
} else {
$$0$lcssa$i$23 = $$39;
$ldst1$0$lcssa$i$26 = $$3;
$ldst2$0$lcssa$i$25 = $210;
$lsrc$0$lcssa$i$24 = $$35;
}
$$1$ph$i$31 = $$0$lcssa$i$23;
$dst1$0$ph$i$28 = $ldst1$0$lcssa$i$26;
$dst2$0$ph$i$29 = $ldst2$0$lcssa$i$25;
$src$0$ph$i$30 = $lsrc$0$lcssa$i$24;
} else {
$$1$ph$i$31 = $$39;
$dst1$0$ph$i$28 = $$3;
$dst2$0$ph$i$29 = $210;
$src$0$ph$i$30 = $$35;
}
if (!$$1$ph$i$31) $burn$3 = $235; else {
$$14$i$33 = $$1$ph$i$31;
$dst1$01$i$36 = $dst1$0$ph$i$28;
$dst2$02$i$35 = $dst2$0$ph$i$29;
$src$03$i$34 = $src$0$ph$i$30;
while (1) {
$261 = HEAP8[$dst2$02$i$35 >> 0] ^ HEAP8[$src$03$i$34 >> 0];
HEAP8[$dst2$02$i$35 >> 0] = $261;
HEAP8[$dst1$01$i$36 >> 0] = $261;
$$14$i$33 = $$14$i$33 + -1 | 0;
if (!$$14$i$33) {
$burn$3 = $235;
break;
} else {
$dst1$01$i$36 = $dst1$01$i$36 + 1 | 0;
$dst2$02$i$35 = $dst2$02$i$35 + 1 | 0;
$src$03$i$34 = $src$03$i$34 + 1 | 0;
}
}
}
}
if (!$burn$3) {
$$0 = 0;
return $$0 | 0;
}
___gcry_burn_stack($burn$3 + 16 | 0);
$$0 = 0;
return $$0 | 0;
}
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, $$lcssa = 0, $$lcssa87 = 0, $$lcssa88 = 0, $$lcssa89 = 0, $$lcssa90 = 0, $$lcssa91 = 0, $$lcssa92 = 0, $$lcssa93 = 0, $$lcssa94 = 0, $$lcssa95 = 0, $$lcssa96 = 0, $0 = 0, $100 = 0, $101 = 0, $102 = 0, $104 = 0, $105 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $123 = 0, $128 = 0, $13 = 0, $131 = 0, $134 = 0, $137 = 0, $14 = 0, $140 = 0, $149 = 0, $15 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $157 = 0, $158 = 0, $159 = 0, $160 = 0, $162 = 0, $166 = 0, $168 = 0, $17 = 0, $170 = 0, $172 = 0, $173 = 0, $175 = 0, $176 = 0, $177 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $194 = 0, $20 = 0, $22 = 0, $230 = 0, $231 = 0, $233 = 0, $234 = 0, $236 = 0, $238 = 0, $240 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $247 = 0, $249 = 0, $25 = 0, $250 = 0, $252 = 0, $253 = 0, $255 = 0, $256 = 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, $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, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $30 = 0, $31 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $38 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $72 = 0, $75 = 0, $79 = 0, $80 = 0, $81 = 0, $82 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $89 = 0, $93 = 0, $95 = 0, $96 = 0, $97 = 0, $99 = 0, $burn$09 = 0, $burn$1$lcssa = 0, $burn$1$lcssa$lcssa = 0, $burn$17 = 0, $burn$17$us = 0, $i$06 = 0, $i$06$us = 0, $j$08 = 0, $j$1 = 0, $t = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$t = sp;
$0 = $c + 12 | 0;
if ((HEAP32[(HEAP32[$0 >> 2] | 0) + 20 >> 2] | 0) != 16) {
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
if (($outbuflen + 8 | 0) >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
STACKTOP = sp;
return $$0 | 0;
}
if ($inbuflen >>> 0 < 24 | ($inbuflen & 7 | 0) != 0) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$11 = $c + 96 | 0;
$12 = $c + 80 | 0;
$13 = $inbuf;
$14 = $13;
$15 = HEAPU8[$14 >> 0] | HEAPU8[$14 + 1 >> 0] << 8 | HEAPU8[$14 + 2 >> 0] << 16 | HEAPU8[$14 + 3 >> 0] << 24;
$17 = $13 + 4 | 0;
$18 = HEAPU8[$17 >> 0] | HEAPU8[$17 + 1 >> 0] << 8 | HEAPU8[$17 + 2 >> 0] << 16 | HEAPU8[$17 + 3 >> 0] << 24;
$19 = $11;
$20 = $19;
HEAP8[$20 >> 0] = $15;
HEAP8[$20 + 1 >> 0] = $15 >> 8;
HEAP8[$20 + 2 >> 0] = $15 >> 16;
HEAP8[$20 + 3 >> 0] = $15 >> 24;
$22 = $19 + 4 | 0;
HEAP8[$22 >> 0] = $18;
HEAP8[$22 + 1 >> 0] = $18 >> 8;
HEAP8[$22 + 2 >> 0] = $18 >> 16;
HEAP8[$22 + 3 >> 0] = $18 >> 24;
_memmove($outbuf | 0, $inbuf + 8 | 0, $inbuflen + -8 | 0) | 0;
$25 = ($inbuflen >>> 3) + -1 | 0;
$26 = $25 * 6 | 0;
$27 = $26 & 255;
$28 = $t + 7 | 0;
HEAP8[$28 >> 0] = $27;
$30 = $26 >>> 8 & 255;
$31 = $t + 6 | 0;
HEAP8[$31 >> 0] = $30;
$33 = $26 >>> 16 & 255;
$34 = $t + 5 | 0;
HEAP8[$34 >> 0] = $33;
$36 = $26 >>> 24 & 255;
$37 = $t + 4 | 0;
HEAP8[$37 >> 0] = $36;
HEAP32[$t >> 2] = 0;
$38 = ($25 | 0) == 0;
$43 = (($11 | $12) & 3 | 0) == 0;
$44 = $c + 100 | 0;
$45 = $12 + 4 | 0;
$46 = $c + 88 | 0;
$47 = $c + 496 | 0;
$48 = $t + 3 | 0;
$49 = $t + 2 | 0;
$50 = $t + 1 | 0;
$51 = $c + 97 | 0;
$52 = $12 + 1 | 0;
$53 = $c + 98 | 0;
$54 = $12 + 2 | 0;
$55 = $c + 99 | 0;
$56 = $12 + 3 | 0;
$57 = $c + 100 | 0;
$58 = $12 + 4 | 0;
$59 = $c + 101 | 0;
$60 = $t + 5 | 0;
$61 = $12 + 5 | 0;
$62 = $c + 102 | 0;
$63 = $t + 6 | 0;
$64 = $12 + 6 | 0;
$65 = $c + 103 | 0;
$66 = $t + 7 | 0;
$67 = $12 + 7 | 0;
$68 = $t + 3 | 0;
$69 = $t + 2 | 0;
$70 = $t + 1 | 0;
$259 = 0;
$260 = $36;
$261 = $33;
$262 = $30;
$263 = $27;
$264 = $36;
$265 = 0;
$266 = 0;
$267 = 0;
$268 = 0;
$burn$09 = 0;
$j$08 = 5;
while (1) {
L12 : do if ($38) {
$269 = $259;
$270 = $260;
$271 = $261;
$272 = $262;
$273 = $263;
$274 = $264;
$275 = $265;
$276 = $266;
$277 = $267;
$278 = $268;
$burn$1$lcssa = $burn$09;
} else {
if ($43) {
$102 = $262;
$245 = $261;
$250 = $265;
$253 = $266;
$256 = $267;
$97 = $263;
$burn$17$us = $burn$09;
$i$06$us = $25;
while (1) {
$72 = HEAP32[$t >> 2] | 0;
HEAP32[$12 >> 2] = $72 ^ HEAP32[$11 >> 2];
$75 = HEAP32[$37 >> 2] | 0;
HEAP32[$45 >> 2] = $75 ^ HEAP32[$44 >> 2];
$79 = $outbuf + (($i$06$us << 3) + -8) | 0;
$80 = $79;
$81 = $80;
$82 = HEAPU8[$81 >> 0] | HEAPU8[$81 + 1 >> 0] << 8 | HEAPU8[$81 + 2 >> 0] << 16 | HEAPU8[$81 + 3 >> 0] << 24;
$84 = $80 + 4 | 0;
$85 = HEAPU8[$84 >> 0] | HEAPU8[$84 + 1 >> 0] << 8 | HEAPU8[$84 + 2 >> 0] << 16 | HEAPU8[$84 + 3 >> 0] << 24;
$86 = $46;
$87 = $86;
HEAP8[$87 >> 0] = $82;
HEAP8[$87 + 1 >> 0] = $82 >> 8;
HEAP8[$87 + 2 >> 0] = $82 >> 16;
HEAP8[$87 + 3 >> 0] = $82 >> 24;
$89 = $86 + 4 | 0;
HEAP8[$89 >> 0] = $85;
HEAP8[$89 + 1 >> 0] = $85 >> 8;
HEAP8[$89 + 2 >> 0] = $85 >> 16;
HEAP8[$89 + 3 >> 0] = $85 >> 24;
$93 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 40 >> 2] & 63]($47, $12, $12) | 0;
$95 = $93 >>> 0 > $burn$17$us >>> 0 ? $93 : $burn$17$us;
$96 = $97 + -1 << 24 >> 24;
HEAP8[$28 >> 0] = $96;
$99 = $72 & 255;
$100 = $75 & 255;
if (!($97 << 24 >> 24)) {
$101 = $102 + -1 << 24 >> 24;
HEAP8[$31 >> 0] = $101;
if (!($102 << 24 >> 24)) {
$244 = $245 + -1 << 24 >> 24;
HEAP8[$34 >> 0] = $244;
if (!($245 << 24 >> 24)) {
$247 = $100 + -1 << 24 >> 24;
HEAP8[$37 >> 0] = $247;
if (!($100 << 24 >> 24)) {
$249 = $250 + -1 << 24 >> 24;
HEAP8[$48 >> 0] = $249;
if (!($250 << 24 >> 24)) {
$252 = $253 + -1 << 24 >> 24;
HEAP8[$49 >> 0] = $252;
if (!($253 << 24 >> 24)) {
$255 = $256 + -1 << 24 >> 24;
HEAP8[$50 >> 0] = $255;
if (!($256 << 24 >> 24)) {
$258 = $99 + -1 << 24 >> 24;
HEAP8[$t >> 0] = $258;
$279 = $258;
$280 = $247;
$281 = $244;
$282 = $101;
$283 = $249;
$284 = $252;
$285 = $255;
} else {
$279 = $99;
$280 = $247;
$281 = $244;
$282 = $101;
$283 = $249;
$284 = $252;
$285 = $255;
}
} else {
$279 = $99;
$280 = $247;
$281 = $244;
$282 = $101;
$283 = $249;
$284 = $252;
$285 = $256;
}
} else {
$279 = $99;
$280 = $247;
$281 = $244;
$282 = $101;
$283 = $249;
$284 = $253;
$285 = $256;
}
} else {
$279 = $99;
$280 = $247;
$281 = $244;
$282 = $101;
$283 = $250;
$284 = $253;
$285 = $256;
}
} else {
$279 = $99;
$280 = $100;
$281 = $244;
$282 = $101;
$283 = $250;
$284 = $253;
$285 = $256;
}
} else {
$279 = $99;
$280 = $100;
$281 = $245;
$282 = $101;
$283 = $250;
$284 = $253;
$285 = $256;
}
} else {
$279 = $99;
$280 = $100;
$281 = $245;
$282 = $102;
$283 = $250;
$284 = $253;
$285 = $256;
}
$104 = $12;
$105 = $104;
$106 = HEAPU8[$105 >> 0] | HEAPU8[$105 + 1 >> 0] << 8 | HEAPU8[$105 + 2 >> 0] << 16 | HEAPU8[$105 + 3 >> 0] << 24;
$108 = $104 + 4 | 0;
$109 = HEAPU8[$108 >> 0] | HEAPU8[$108 + 1 >> 0] << 8 | HEAPU8[$108 + 2 >> 0] << 16 | HEAPU8[$108 + 3 >> 0] << 24;
$110 = $11;
$111 = $110;
HEAP8[$111 >> 0] = $106;
HEAP8[$111 + 1 >> 0] = $106 >> 8;
HEAP8[$111 + 2 >> 0] = $106 >> 16;
HEAP8[$111 + 3 >> 0] = $106 >> 24;
$113 = $110 + 4 | 0;
HEAP8[$113 >> 0] = $109;
HEAP8[$113 + 1 >> 0] = $109 >> 8;
HEAP8[$113 + 2 >> 0] = $109 >> 16;
HEAP8[$113 + 3 >> 0] = $109 >> 24;
$114 = $46;
$115 = $114;
$116 = HEAPU8[$115 >> 0] | HEAPU8[$115 + 1 >> 0] << 8 | HEAPU8[$115 + 2 >> 0] << 16 | HEAPU8[$115 + 3 >> 0] << 24;
$118 = $114 + 4 | 0;
$119 = HEAPU8[$118 >> 0] | HEAPU8[$118 + 1 >> 0] << 8 | HEAPU8[$118 + 2 >> 0] << 16 | HEAPU8[$118 + 3 >> 0] << 24;
$120 = $79;
$121 = $120;
HEAP8[$121 >> 0] = $116;
HEAP8[$121 + 1 >> 0] = $116 >> 8;
HEAP8[$121 + 2 >> 0] = $116 >> 16;
HEAP8[$121 + 3 >> 0] = $116 >> 24;
$123 = $120 + 4 | 0;
HEAP8[$123 >> 0] = $119;
HEAP8[$123 + 1 >> 0] = $119 >> 8;
HEAP8[$123 + 2 >> 0] = $119 >> 16;
HEAP8[$123 + 3 >> 0] = $119 >> 24;
$i$06$us = $i$06$us + -1 | 0;
if (!$i$06$us) {
$269 = $279;
$270 = $280;
$271 = $281;
$272 = $282;
$273 = $96;
$274 = $280;
$275 = $283;
$276 = $284;
$277 = $285;
$278 = $279;
$burn$1$lcssa = $95;
break L12;
} else {
$102 = $282;
$245 = $281;
$250 = $283;
$253 = $284;
$256 = $285;
$97 = $96;
$burn$17$us = $95;
}
}
}
$128 = $268;
$131 = $267;
$134 = $266;
$137 = $265;
$140 = $264;
$149 = HEAP8[$66 >> 0] | 0;
$170 = $263;
$173 = $262;
$231 = $261;
$234 = $260;
$243 = $259;
$burn$17 = $burn$09;
$i$06 = $25;
while (1) {
HEAP8[$12 >> 0] = $128 ^ HEAP8[$11 >> 0];
HEAP8[$52 >> 0] = $131 ^ HEAP8[$51 >> 0];
HEAP8[$54 >> 0] = $134 ^ HEAP8[$53 >> 0];
HEAP8[$56 >> 0] = $137 ^ HEAP8[$55 >> 0];
HEAP8[$58 >> 0] = $140 ^ HEAP8[$57 >> 0];
HEAP8[$61 >> 0] = HEAP8[$60 >> 0] ^ HEAP8[$59 >> 0];
HEAP8[$64 >> 0] = HEAP8[$63 >> 0] ^ HEAP8[$62 >> 0];
HEAP8[$67 >> 0] = $149 ^ HEAP8[$65 >> 0];
$152 = $outbuf + (($i$06 << 3) + -8) | 0;
$153 = $152;
$154 = $153;
$155 = HEAPU8[$154 >> 0] | HEAPU8[$154 + 1 >> 0] << 8 | HEAPU8[$154 + 2 >> 0] << 16 | HEAPU8[$154 + 3 >> 0] << 24;
$157 = $153 + 4 | 0;
$158 = HEAPU8[$157 >> 0] | HEAPU8[$157 + 1 >> 0] << 8 | HEAPU8[$157 + 2 >> 0] << 16 | HEAPU8[$157 + 3 >> 0] << 24;
$159 = $46;
$160 = $159;
HEAP8[$160 >> 0] = $155;
HEAP8[$160 + 1 >> 0] = $155 >> 8;
HEAP8[$160 + 2 >> 0] = $155 >> 16;
HEAP8[$160 + 3 >> 0] = $155 >> 24;
$162 = $159 + 4 | 0;
HEAP8[$162 >> 0] = $158;
HEAP8[$162 + 1 >> 0] = $158 >> 8;
HEAP8[$162 + 2 >> 0] = $158 >> 16;
HEAP8[$162 + 3 >> 0] = $158 >> 24;
$166 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 40 >> 2] & 63]($47, $12, $12) | 0;
$168 = $166 >>> 0 > $burn$17 >>> 0 ? $166 : $burn$17;
if (!($170 << 24 >> 24)) {
$172 = $173 + -1 << 24 >> 24;
HEAP8[$31 >> 0] = $172;
if (!($173 << 24 >> 24)) {
$230 = $231 + -1 << 24 >> 24;
HEAP8[$34 >> 0] = $230;
if (!($231 << 24 >> 24)) {
$233 = $234 + -1 << 24 >> 24;
HEAP8[$37 >> 0] = $233;
if (!($234 << 24 >> 24)) {
$236 = $137 + -1 << 24 >> 24;
HEAP8[$68 >> 0] = $236;
if (!($137 << 24 >> 24)) {
$238 = $134 + -1 << 24 >> 24;
HEAP8[$69 >> 0] = $238;
if (!($134 << 24 >> 24)) {
$240 = $131 + -1 << 24 >> 24;
HEAP8[$70 >> 0] = $240;
if (!($131 << 24 >> 24)) {
$242 = $243 + -1 << 24 >> 24;
HEAP8[$t >> 0] = $242;
$286 = $242;
$287 = $233;
$288 = $230;
$289 = $172;
$290 = $233;
$291 = $236;
$292 = $238;
$293 = $240;
$294 = $242;
} else {
$286 = $243;
$287 = $233;
$288 = $230;
$289 = $172;
$290 = $233;
$291 = $236;
$292 = $238;
$293 = $240;
$294 = $128;
}
} else {
$286 = $243;
$287 = $233;
$288 = $230;
$289 = $172;
$290 = $233;
$291 = $236;
$292 = $238;
$293 = $131;
$294 = $128;
}
} else {
$286 = $243;
$287 = $233;
$288 = $230;
$289 = $172;
$290 = $233;
$291 = $236;
$292 = $134;
$293 = $131;
$294 = $128;
}
} else {
$286 = $243;
$287 = $233;
$288 = $230;
$289 = $172;
$290 = $233;
$291 = $137;
$292 = $134;
$293 = $131;
$294 = $128;
}
} else {
$286 = $243;
$287 = $234;
$288 = $230;
$289 = $172;
$290 = $140;
$291 = $137;
$292 = $134;
$293 = $131;
$294 = $128;
}
} else {
$286 = $243;
$287 = $234;
$288 = $231;
$289 = $172;
$290 = $140;
$291 = $137;
$292 = $134;
$293 = $131;
$294 = $128;
}
} else {
$286 = $243;
$287 = $234;
$288 = $231;
$289 = $173;
$290 = $140;
$291 = $137;
$292 = $134;
$293 = $131;
$294 = $128;
}
$170 = $170 + -1 << 24 >> 24;
$175 = $12;
$176 = $175;
$177 = HEAPU8[$176 >> 0] | HEAPU8[$176 + 1 >> 0] << 8 | HEAPU8[$176 + 2 >> 0] << 16 | HEAPU8[$176 + 3 >> 0] << 24;
$179 = $175 + 4 | 0;
$180 = HEAPU8[$179 >> 0] | HEAPU8[$179 + 1 >> 0] << 8 | HEAPU8[$179 + 2 >> 0] << 16 | HEAPU8[$179 + 3 >> 0] << 24;
$181 = $11;
$182 = $181;
HEAP8[$182 >> 0] = $177;
HEAP8[$182 + 1 >> 0] = $177 >> 8;
HEAP8[$182 + 2 >> 0] = $177 >> 16;
HEAP8[$182 + 3 >> 0] = $177 >> 24;
$184 = $181 + 4 | 0;
HEAP8[$184 >> 0] = $180;
HEAP8[$184 + 1 >> 0] = $180 >> 8;
HEAP8[$184 + 2 >> 0] = $180 >> 16;
HEAP8[$184 + 3 >> 0] = $180 >> 24;
$185 = $46;
$186 = $185;
$187 = HEAPU8[$186 >> 0] | HEAPU8[$186 + 1 >> 0] << 8 | HEAPU8[$186 + 2 >> 0] << 16 | HEAPU8[$186 + 3 >> 0] << 24;
$189 = $185 + 4 | 0;
$190 = HEAPU8[$189 >> 0] | HEAPU8[$189 + 1 >> 0] << 8 | HEAPU8[$189 + 2 >> 0] << 16 | HEAPU8[$189 + 3 >> 0] << 24;
$191 = $152;
$192 = $191;
HEAP8[$192 >> 0] = $187;
HEAP8[$192 + 1 >> 0] = $187 >> 8;
HEAP8[$192 + 2 >> 0] = $187 >> 16;
HEAP8[$192 + 3 >> 0] = $187 >> 24;
$194 = $191 + 4 | 0;
HEAP8[$194 >> 0] = $190;
HEAP8[$194 + 1 >> 0] = $190 >> 8;
HEAP8[$194 + 2 >> 0] = $190 >> 16;
HEAP8[$194 + 3 >> 0] = $190 >> 24;
$i$06 = $i$06 + -1 | 0;
if (!$i$06) {
$$lcssa = $168;
$$lcssa87 = $170;
$$lcssa88 = $286;
$$lcssa89 = $287;
$$lcssa90 = $288;
$$lcssa91 = $289;
$$lcssa92 = $290;
$$lcssa93 = $291;
$$lcssa94 = $292;
$$lcssa95 = $293;
$$lcssa96 = $294;
break;
} else {
$128 = $294;
$131 = $293;
$134 = $292;
$137 = $291;
$140 = $290;
$149 = $170;
$173 = $289;
$231 = $288;
$234 = $287;
$243 = $286;
$burn$17 = $168;
}
}
HEAP8[$66 >> 0] = $$lcssa87;
$269 = $$lcssa88;
$270 = $$lcssa89;
$271 = $$lcssa90;
$272 = $$lcssa91;
$273 = $$lcssa87;
$274 = $$lcssa92;
$275 = $$lcssa93;
$276 = $$lcssa94;
$277 = $$lcssa95;
$278 = $$lcssa96;
$burn$1$lcssa = $$lcssa;
} while (0);
if (($j$08 | 0) > 0) {
$259 = $269;
$260 = $270;
$261 = $271;
$262 = $272;
$263 = $273;
$264 = $274;
$265 = $275;
$266 = $276;
$267 = $277;
$268 = $278;
$burn$09 = $burn$1$lcssa;
$j$08 = $j$08 + -1 | 0;
} else {
$burn$1$lcssa$lcssa = $burn$1$lcssa;
break;
}
}
if (!(HEAP8[$c + 56 >> 0] & 2)) if ((HEAP8[$11 >> 0] | 0) == -90) if ((HEAP8[$c + 97 >> 0] | 0) == -90) if ((HEAP8[$c + 98 >> 0] | 0) == -90) if ((HEAP8[$c + 99 >> 0] | 0) == -90) if ((HEAP8[$44 >> 0] | 0) == -90) if ((HEAP8[$c + 101 >> 0] | 0) == -90) if ((HEAP8[$c + 102 >> 0] | 0) == -90) $j$1 = (HEAP8[$c + 103 >> 0] | 0) != -90 & 1; else $j$1 = 1; else $j$1 = 1; else $j$1 = 1; else $j$1 = 1; else $j$1 = 1; else $j$1 = 1; else $j$1 = 1; else $j$1 = _memcmp($11, $c + 64 | 0, 8) | 0;
if ($burn$1$lcssa$lcssa) ___gcry_burn_stack($burn$1$lcssa$lcssa + 16 | 0);
$$0 = ($j$1 | 0) != 0 ? 10 : 0;
STACKTOP = sp;
return $$0 | 0;
}
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 = 0, $$0$lcssa$i = 0, $$0$lcssa$i$104 = 0, $$0$lcssa$i$29 = 0, $$0$lcssa$i$55 = 0, $$0$lcssa$i$7 = 0, $$0$lcssa$i$81 = 0, $$010$i$us = 0, $$01120 = 0, $$01120$us = 0, $$02118 = 0, $$02118$us = 0, $$06$i = 0, $$06$i$22 = 0, $$06$i$74 = 0, $$06$i$97 = 0, $$08$i = 0, $$08$i$46 = 0, $$1 = 0, $$1$ph$i = 0, $$1$ph$i$10 = 0, $$1$ph$i$110 = 0, $$1$ph$i$16$us = 0, $$1$ph$i$35 = 0, $$1$ph$i$63 = 0, $$1$ph$i$87 = 0, $$13 = 0, $$13$i = 0, $$13$i$112 = 0, $$13$i$37 = 0, $$13$i$89 = 0, $$14$i = 0, $$14$i$65 = 0, $$15$i = 0, $$15$i$us = 0, $$5 = 0, $$lcssa = 0, $$lcssa151 = 0, $$phi$trans$insert = 0, $$pre$phiZ2D = 0, $1 = 0, $101 = 0, $11 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $124 = 0, $125 = 0, $126 = 0, $139 = 0, $145 = 0, $146 = 0, $147 = 0, $16 = 0, $160 = 0, $161 = 0, $163 = 0, $164 = 0, $169 = 0, $170 = 0, $171 = 0, $18 = 0, $189 = 0, $19 = 0, $195 = 0, $196 = 0, $197 = 0, $20 = 0, $215 = 0, $217 = 0, $222 = 0, $223 = 0, $224 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $43 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $51 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $61 = 0, $69 = 0, $8 = 0, $80 = 0, $9 = 0, $94 = 0, $97 = 0, $99 = 0, $burn$0121 = 0, $burn$0121$us = 0, $burn$1 = 0, $burn$2 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$108 = 0, $dst$0$ph$i$33 = 0, $dst$0$ph$i$60 = 0, $dst$0$ph$i$85 = 0, $dst$0$ph$i$9 = 0, $dst$01$i = 0, $dst$01$i$114 = 0, $dst$01$i$12 = 0, $dst$01$i$39 = 0, $dst$01$i$68 = 0, $dst$01$i$91 = 0, $dst_xor$0$ph$i$us = 0, $dst_xor$04$i = 0, $dst_xor$04$i$us = 0, $i$0117 = 0, $ldst$0$lcssa$i = 0, $ldst$0$lcssa$i$106 = 0, $ldst$0$lcssa$i$31 = 0, $ldst$0$lcssa$i$83 = 0, $ldst$04$i = 0, $ldst$04$i$24 = 0, $ldst$04$i$76 = 0, $ldst$04$i$99 = 0, $ldst_xor$06$i$us = 0, $lsrc$0$lcssa$i = 0, $lsrc$0$lcssa$i$105 = 0, $lsrc$0$lcssa$i$30 = 0, $lsrc$0$lcssa$i$82 = 0, $lsrc$05$i = 0, $lsrc$05$i$23 = 0, $lsrc$05$i$75 = 0, $lsrc$05$i$98 = 0, $lsrc1$0$lcssa$i = 0, $lsrc1$0$lcssa$i$57 = 0, $lsrc1$06$i = 0, $lsrc1$06$i$48 = 0, $lsrc2$0$lcssa$i = 0, $lsrc2$0$lcssa$i$56 = 0, $lsrc2$07$i = 0, $lsrc2$07$i$47 = 0, $lsrc_cpy$08$i$us = 0, $lsrc_xor$09$i$us = 0, $lsrcdst_cpy$07$i$us = 0, $n$0119 = 0, $n$0119$us = 0, $nblocks$1 = 0, $scevgep = 0, $scevgep$i = 0, $scevgep$i$14 = 0, $scevgep$i$19 = 0, $scevgep$i$42 = 0, $scevgep$i$6 = 0, $scevgep$i$71 = 0, $scevgep$i$94 = 0, $scevgep23$i$us = 0, $scevgep25$i = 0, $src$0$ph$i = 0, $src$0$ph$i$109 = 0, $src$0$ph$i$34 = 0, $src$0$ph$i$86 = 0, $src$02$i = 0, $src$02$i$113 = 0, $src$02$i$38 = 0, $src$02$i$90 = 0, $src1$02$i = 0, $src1$02$i$67 = 0, $src2$0$ph$i = 0, $src2$0$ph$i$62 = 0, $src2$03$i = 0, $src2$03$i$66 = 0, $src_cpy$0$ph$i$us = 0, $src_cpy$02$i = 0, $src_cpy$02$i$us = 0, $src_xor$0$ph$i$us = 0, $src_xor$01$i = 0, $src_xor$01$i$us = 0, $srcdst_cpy$0$ph$i$us = 0, $srcdst_cpy$03$i = 0, $srcdst_cpy$03$i$us = 0;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 20 >> 2] | 0;
$5 = HEAP32[$1 + 40 >> 2] | 0;
$6 = ($inbuflen >>> 0) / ($3 >>> 0) | 0;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$8 = ($inbuflen >>> 0) % ($3 >>> 0) | 0;
$9 = ($8 | 0) == 0;
if ($9) {
$$phi$trans$insert = $c + 52 | 0;
$$pre$phiZ2D = $$phi$trans$insert;
$16 = HEAP32[$$phi$trans$insert >> 2] | 0;
} else {
if ($3 >>> 0 >= $inbuflen >>> 0) {
$$0 = 139;
return $$0 | 0;
}
$11 = $c + 52 | 0;
$12 = HEAP32[$11 >> 2] | 0;
if (!($12 & 4)) {
$$0 = 139;
return $$0 | 0;
} else {
$$pre$phiZ2D = $11;
$16 = $12;
}
}
$18 = $3 >>> 0 < $inbuflen >>> 0;
if ($18 & ($16 & 4 | 0) != 0) {
$$ = ($9 ? -2 : -1) + $6 | 0;
$19 = $c + 96 | 0;
$20 = $c + 64 | 0;
if (!(($20 | $19) & 3)) {
if ($3 >>> 0 > 3) {
$27 = $3 + -4 | 0;
$28 = $27 & -4;
$29 = $28 + 4 | 0;
$scevgep$i = $c + 96 + $29 | 0;
$$06$i = $3;
$ldst$04$i = $19;
$lsrc$05$i = $20;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i = $27 - $28 | 0;
$ldst$0$lcssa$i = $scevgep$i;
$lsrc$0$lcssa$i = $20 + $29 | 0;
} else {
$$0$lcssa$i = $3;
$ldst$0$lcssa$i = $19;
$lsrc$0$lcssa$i = $20;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i = $3;
$dst$0$ph$i = $19;
$src$0$ph$i = $20;
}
if (!$$1$ph$i) $nblocks$1 = $$; else {
$$13$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src$02$i = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) {
$nblocks$1 = $$;
break;
} else {
$dst$01$i = $dst$01$i + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
} else $nblocks$1 = $6;
$43 = HEAP32[$c + 32 >> 2] | 0;
do if (!$43) if (!$nblocks$1) {
$$1 = $outbuf;
$$13 = $inbuf;
$burn$1 = 0;
} else {
$46 = $c + 496 | 0;
$47 = $c + 96 | 0;
$48 = $c + 64 | 0;
$51 = $48 | $47;
$53 = $3 + -4 | 0;
$54 = $53 & -4;
$55 = $54 + 4 | 0;
$scevgep$i$14 = $48 + $55 | 0;
$scevgep25$i = $c + 96 + $55 | 0;
$56 = $53 - $54 | 0;
$57 = Math_imul($nblocks$1, $3) | 0;
$scevgep = $outbuf + $57 | 0;
if ($3 >>> 0 > 3) {
$$01120$us = $outbuf;
$$02118$us = $inbuf;
$burn$0121$us = 0;
$n$0119$us = 0;
} else {
$58 = ($3 | 0) == 0;
$$01120 = $outbuf;
$$02118 = $inbuf;
$burn$0121 = 0;
$n$0119 = 0;
while (1) {
$97 = FUNCTION_TABLE_iiii[$5 & 63]($46, $47, $$02118) | 0;
$99 = $97 >>> 0 > $burn$0121 >>> 0 ? $97 : $burn$0121;
if (!$58) {
$$15$i = $3;
$dst_xor$04$i = $$01120;
$src_cpy$02$i = $$02118;
$src_xor$01$i = $47;
$srcdst_cpy$03$i = $48;
while (1) {
$101 = HEAP8[$src_cpy$02$i >> 0] | 0;
HEAP8[$dst_xor$04$i >> 0] = HEAP8[$src_xor$01$i >> 0] ^ HEAP8[$srcdst_cpy$03$i >> 0];
HEAP8[$srcdst_cpy$03$i >> 0] = $101;
$$15$i = $$15$i + -1 | 0;
if (!$$15$i) break; else {
$dst_xor$04$i = $dst_xor$04$i + 1 | 0;
$src_cpy$02$i = $src_cpy$02$i + 1 | 0;
$src_xor$01$i = $src_xor$01$i + 1 | 0;
$srcdst_cpy$03$i = $srcdst_cpy$03$i + 1 | 0;
}
}
}
$n$0119 = $n$0119 + 1 | 0;
if (($n$0119 | 0) == ($nblocks$1 | 0)) {
$$lcssa151 = $99;
break;
} else {
$$01120 = $$01120 + $3 | 0;
$$02118 = $$02118 + $3 | 0;
$burn$0121 = $99;
}
}
$$1 = $scevgep;
$$13 = $inbuf + $57 | 0;
$burn$1 = $$lcssa151;
break;
}
while (1) {
$59 = FUNCTION_TABLE_iiii[$5 & 63]($46, $47, $$02118$us) | 0;
$61 = $59 >>> 0 > $burn$0121$us >>> 0 ? $59 : $burn$0121$us;
if (!(($51 | $$02118$us | $$01120$us) & 3)) {
$scevgep23$i$us = $$01120$us + $55 | 0;
$$010$i$us = $3;
$ldst_xor$06$i$us = $$01120$us;
$lsrc_cpy$08$i$us = $$02118$us;
$lsrc_xor$09$i$us = $47;
$lsrcdst_cpy$07$i$us = $48;
while (1) {
$69 = HEAP32[$lsrc_cpy$08$i$us >> 2] | 0;
HEAP32[$ldst_xor$06$i$us >> 2] = HEAP32[$lsrc_xor$09$i$us >> 2] ^ HEAP32[$lsrcdst_cpy$07$i$us >> 2];
HEAP32[$lsrcdst_cpy$07$i$us >> 2] = $69;
$$010$i$us = $$010$i$us + -4 | 0;
if ($$010$i$us >>> 0 <= 3) break; else {
$ldst_xor$06$i$us = $ldst_xor$06$i$us + 4 | 0;
$lsrc_cpy$08$i$us = $lsrc_cpy$08$i$us + 4 | 0;
$lsrc_xor$09$i$us = $lsrc_xor$09$i$us + 4 | 0;
$lsrcdst_cpy$07$i$us = $lsrcdst_cpy$07$i$us + 4 | 0;
}
}
$$1$ph$i$16$us = $56;
$dst_xor$0$ph$i$us = $scevgep23$i$us;
$src_cpy$0$ph$i$us = $$02118$us + $55 | 0;
$src_xor$0$ph$i$us = $scevgep25$i;
$srcdst_cpy$0$ph$i$us = $scevgep$i$14;
} else {
$$1$ph$i$16$us = $3;
$dst_xor$0$ph$i$us = $$01120$us;
$src_cpy$0$ph$i$us = $$02118$us;
$src_xor$0$ph$i$us = $47;
$srcdst_cpy$0$ph$i$us = $48;
}
if ($$1$ph$i$16$us) {
$$15$i$us = $$1$ph$i$16$us;
$dst_xor$04$i$us = $dst_xor$0$ph$i$us;
$src_cpy$02$i$us = $src_cpy$0$ph$i$us;
$src_xor$01$i$us = $src_xor$0$ph$i$us;
$srcdst_cpy$03$i$us = $srcdst_cpy$0$ph$i$us;
while (1) {
$80 = HEAP8[$src_cpy$02$i$us >> 0] | 0;
HEAP8[$dst_xor$04$i$us >> 0] = HEAP8[$src_xor$01$i$us >> 0] ^ HEAP8[$srcdst_cpy$03$i$us >> 0];
HEAP8[$srcdst_cpy$03$i$us >> 0] = $80;
$$15$i$us = $$15$i$us + -1 | 0;
if (!$$15$i$us) break; else {
$dst_xor$04$i$us = $dst_xor$04$i$us + 1 | 0;
$src_cpy$02$i$us = $src_cpy$02$i$us + 1 | 0;
$src_xor$01$i$us = $src_xor$01$i$us + 1 | 0;
$srcdst_cpy$03$i$us = $srcdst_cpy$03$i$us + 1 | 0;
}
}
}
$n$0119$us = $n$0119$us + 1 | 0;
if (($n$0119$us | 0) == ($nblocks$1 | 0)) {
$$lcssa = $61;
break;
} else {
$$01120$us = $$01120$us + $3 | 0;
$$02118$us = $$02118$us + $3 | 0;
$burn$0121$us = $61;
}
}
$$1 = $scevgep;
$$13 = $inbuf + $57 | 0;
$burn$1 = $$lcssa;
} else {
FUNCTION_TABLE_viiiii[$43 & 15]($c + 496 | 0, $c + 64 | 0, $outbuf, $inbuf, $nblocks$1);
$94 = Math_imul($nblocks$1, $3) | 0;
$$1 = $outbuf + $94 | 0;
$$13 = $inbuf + $94 | 0;
$burn$1 = 0;
} while (0);
if ($18 & (HEAP32[$$pre$phiZ2D >> 2] & 4 | 0) != 0) {
$$5 = $9 ? $3 : $8;
$116 = $c + 96 | 0;
$117 = $c + 64 | 0;
$118 = $116;
$119 = $117;
if (!(($119 | $118) & 3)) {
if ($3 >>> 0 > 3) {
$124 = $3 + -4 | 0;
$125 = $124 & -4;
$126 = $125 + 4 | 0;
$scevgep$i$71 = $c + 96 + $126 | 0;
$$06$i$74 = $3;
$ldst$04$i$76 = $116;
$lsrc$05$i$75 = $117;
while (1) {
HEAP32[$ldst$04$i$76 >> 2] = HEAP32[$lsrc$05$i$75 >> 2];
$$06$i$74 = $$06$i$74 + -4 | 0;
if ($$06$i$74 >>> 0 <= 3) break; else {
$ldst$04$i$76 = $ldst$04$i$76 + 4 | 0;
$lsrc$05$i$75 = $lsrc$05$i$75 + 4 | 0;
}
}
$$0$lcssa$i$81 = $124 - $125 | 0;
$ldst$0$lcssa$i$83 = $scevgep$i$71;
$lsrc$0$lcssa$i$82 = $117 + $126 | 0;
} else {
$$0$lcssa$i$81 = $3;
$ldst$0$lcssa$i$83 = $116;
$lsrc$0$lcssa$i$82 = $117;
}
$$1$ph$i$87 = $$0$lcssa$i$81;
$dst$0$ph$i$85 = $ldst$0$lcssa$i$83;
$src$0$ph$i$86 = $lsrc$0$lcssa$i$82;
} else {
$$1$ph$i$87 = $3;
$dst$0$ph$i$85 = $116;
$src$0$ph$i$86 = $117;
}
if ($$1$ph$i$87) {
$$13$i$89 = $$1$ph$i$87;
$dst$01$i$91 = $dst$0$ph$i$85;
$src$02$i$90 = $src$0$ph$i$86;
while (1) {
HEAP8[$dst$01$i$91 >> 0] = HEAP8[$src$02$i$90 >> 0] | 0;
$$13$i$89 = $$13$i$89 + -1 | 0;
if (!$$13$i$89) break; else {
$dst$01$i$91 = $dst$01$i$91 + 1 | 0;
$src$02$i$90 = $src$02$i$90 + 1 | 0;
}
}
}
$139 = $$13 + $3 | 0;
if (!(($139 | $119) & 3)) {
if ($$5 >>> 0 > 3) {
$145 = $$5 + -4 | 0;
$146 = $145 & -4;
$147 = $146 + 4 | 0;
$scevgep$i$94 = $117 + $147 | 0;
$$06$i$97 = $$5;
$ldst$04$i$99 = $117;
$lsrc$05$i$98 = $139;
while (1) {
HEAP32[$ldst$04$i$99 >> 2] = HEAP32[$lsrc$05$i$98 >> 2];
$$06$i$97 = $$06$i$97 + -4 | 0;
if ($$06$i$97 >>> 0 <= 3) break; else {
$ldst$04$i$99 = $ldst$04$i$99 + 4 | 0;
$lsrc$05$i$98 = $lsrc$05$i$98 + 4 | 0;
}
}
$$0$lcssa$i$104 = $145 - $146 | 0;
$ldst$0$lcssa$i$106 = $scevgep$i$94;
$lsrc$0$lcssa$i$105 = $139 + $147 | 0;
} else {
$$0$lcssa$i$104 = $$5;
$ldst$0$lcssa$i$106 = $117;
$lsrc$0$lcssa$i$105 = $139;
}
$$1$ph$i$110 = $$0$lcssa$i$104;
$dst$0$ph$i$108 = $ldst$0$lcssa$i$106;
$src$0$ph$i$109 = $lsrc$0$lcssa$i$105;
} else {
$$1$ph$i$110 = $$5;
$dst$0$ph$i$108 = $117;
$src$0$ph$i$109 = $139;
}
if ($$1$ph$i$110) {
$$13$i$112 = $$1$ph$i$110;
$dst$01$i$114 = $dst$0$ph$i$108;
$src$02$i$113 = $src$0$ph$i$109;
while (1) {
HEAP8[$dst$01$i$114 >> 0] = HEAP8[$src$02$i$113 >> 0] | 0;
$$13$i$112 = $$13$i$112 + -1 | 0;
if (!$$13$i$112) break; else {
$dst$01$i$114 = $dst$01$i$114 + 1 | 0;
$src$02$i$113 = $src$02$i$113 + 1 | 0;
}
}
}
$160 = $c + 496 | 0;
$161 = FUNCTION_TABLE_iiii[$5 & 63]($160, $$1, $$13) | 0;
$163 = $161 >>> 0 > $burn$1 >>> 0 ? $161 : $burn$1;
$164 = $$1;
if (!(($164 | $119) & 3)) {
if ($$5 >>> 0 > 3) {
$169 = $$5 + -4 | 0;
$170 = $169 & -4;
$171 = $170 + 4 | 0;
$scevgep$i$42 = $$1 + $171 | 0;
$$08$i$46 = $$5;
$lsrc1$06$i$48 = $$1;
$lsrc2$07$i$47 = $117;
while (1) {
HEAP32[$lsrc1$06$i$48 >> 2] = HEAP32[$lsrc2$07$i$47 >> 2] ^ HEAP32[$lsrc1$06$i$48 >> 2];
$$08$i$46 = $$08$i$46 + -4 | 0;
if ($$08$i$46 >>> 0 <= 3) break; else {
$lsrc1$06$i$48 = $lsrc1$06$i$48 + 4 | 0;
$lsrc2$07$i$47 = $lsrc2$07$i$47 + 4 | 0;
}
}
$$0$lcssa$i$55 = $169 - $170 | 0;
$lsrc1$0$lcssa$i$57 = $scevgep$i$42;
$lsrc2$0$lcssa$i$56 = $117 + $171 | 0;
} else {
$$0$lcssa$i$55 = $$5;
$lsrc1$0$lcssa$i$57 = $$1;
$lsrc2$0$lcssa$i$56 = $117;
}
$$1$ph$i$63 = $$0$lcssa$i$55;
$dst$0$ph$i$60 = $lsrc1$0$lcssa$i$57;
$src2$0$ph$i$62 = $lsrc2$0$lcssa$i$56;
} else {
$$1$ph$i$63 = $$5;
$dst$0$ph$i$60 = $$1;
$src2$0$ph$i$62 = $117;
}
if ($$1$ph$i$63) {
$$14$i$65 = $$1$ph$i$63;
$dst$01$i$68 = $dst$0$ph$i$60;
$src1$02$i$67 = $dst$0$ph$i$60;
$src2$03$i$66 = $src2$0$ph$i$62;
while (1) {
HEAP8[$dst$01$i$68 >> 0] = HEAP8[$src2$03$i$66 >> 0] ^ HEAP8[$src1$02$i$67 >> 0];
$$14$i$65 = $$14$i$65 + -1 | 0;
if (!$$14$i$65) break; else {
$dst$01$i$68 = $dst$01$i$68 + 1 | 0;
$src1$02$i$67 = $src1$02$i$67 + 1 | 0;
$src2$03$i$66 = $src2$03$i$66 + 1 | 0;
}
}
}
$189 = $$1 + $3 | 0;
if (!(($189 | $164) & 3)) {
if ($$5 >>> 0 > 3) {
$195 = $$5 + -4 | 0;
$196 = $195 & -4;
$197 = $196 + 4 | 0;
$scevgep$i$19 = $189 + $197 | 0;
$$06$i$22 = $$5;
$ldst$04$i$24 = $189;
$lsrc$05$i$23 = $$1;
while (1) {
HEAP32[$ldst$04$i$24 >> 2] = HEAP32[$lsrc$05$i$23 >> 2];
$$06$i$22 = $$06$i$22 + -4 | 0;
if ($$06$i$22 >>> 0 <= 3) break; else {
$ldst$04$i$24 = $ldst$04$i$24 + 4 | 0;
$lsrc$05$i$23 = $lsrc$05$i$23 + 4 | 0;
}
}
$$0$lcssa$i$29 = $195 - $196 | 0;
$ldst$0$lcssa$i$31 = $scevgep$i$19;
$lsrc$0$lcssa$i$30 = $$1 + $197 | 0;
} else {
$$0$lcssa$i$29 = $$5;
$ldst$0$lcssa$i$31 = $189;
$lsrc$0$lcssa$i$30 = $$1;
}
$$1$ph$i$35 = $$0$lcssa$i$29;
$dst$0$ph$i$33 = $ldst$0$lcssa$i$31;
$src$0$ph$i$34 = $lsrc$0$lcssa$i$30;
} else {
$$1$ph$i$35 = $$5;
$dst$0$ph$i$33 = $189;
$src$0$ph$i$34 = $$1;
}
if ($$1$ph$i$35) {
$$13$i$37 = $$1$ph$i$35;
$dst$01$i$39 = $dst$0$ph$i$33;
$src$02$i$38 = $src$0$ph$i$34;
while (1) {
HEAP8[$dst$01$i$39 >> 0] = HEAP8[$src$02$i$38 >> 0] | 0;
$$13$i$37 = $$13$i$37 + -1 | 0;
if (!$$13$i$37) break; else {
$dst$01$i$39 = $dst$01$i$39 + 1 | 0;
$src$02$i$38 = $src$02$i$38 + 1 | 0;
}
}
}
if ($$5 >>> 0 < $3 >>> 0) {
$i$0117 = $$5;
do {
HEAP8[$117 + $i$0117 >> 0] = HEAP8[$$1 + $i$0117 >> 0] | 0;
$i$0117 = $i$0117 + 1 | 0;
} while (($i$0117 | 0) != ($3 | 0));
}
$215 = FUNCTION_TABLE_iiii[$5 & 63]($160, $$1, $117) | 0;
$217 = $215 >>> 0 > $163 >>> 0 ? $215 : $163;
if (!(($164 | $118) & 3)) {
if ($3 >>> 0 > 3) {
$222 = $3 + -4 | 0;
$223 = $222 & -4;
$224 = $223 + 4 | 0;
$scevgep$i$6 = $$1 + $224 | 0;
$$08$i = $3;
$lsrc1$06$i = $$1;
$lsrc2$07$i = $116;
while (1) {
HEAP32[$lsrc1$06$i >> 2] = HEAP32[$lsrc2$07$i >> 2] ^ HEAP32[$lsrc1$06$i >> 2];
$$08$i = $$08$i + -4 | 0;
if ($$08$i >>> 0 <= 3) break; else {
$lsrc1$06$i = $lsrc1$06$i + 4 | 0;
$lsrc2$07$i = $lsrc2$07$i + 4 | 0;
}
}
$$0$lcssa$i$7 = $222 - $223 | 0;
$lsrc1$0$lcssa$i = $scevgep$i$6;
$lsrc2$0$lcssa$i = $c + 96 + $224 | 0;
} else {
$$0$lcssa$i$7 = $3;
$lsrc1$0$lcssa$i = $$1;
$lsrc2$0$lcssa$i = $116;
}
$$1$ph$i$10 = $$0$lcssa$i$7;
$dst$0$ph$i$9 = $lsrc1$0$lcssa$i;
$src2$0$ph$i = $lsrc2$0$lcssa$i;
} else {
$$1$ph$i$10 = $3;
$dst$0$ph$i$9 = $$1;
$src2$0$ph$i = $116;
}
if (!$$1$ph$i$10) $burn$2 = $217; else {
$$14$i = $$1$ph$i$10;
$dst$01$i$12 = $dst$0$ph$i$9;
$src1$02$i = $dst$0$ph$i$9;
$src2$03$i = $src2$0$ph$i;
while (1) {
HEAP8[$dst$01$i$12 >> 0] = HEAP8[$src2$03$i >> 0] ^ HEAP8[$src1$02$i >> 0];
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) {
$burn$2 = $217;
break;
} else {
$dst$01$i$12 = $dst$01$i$12 + 1 | 0;
$src1$02$i = $src1$02$i + 1 | 0;
$src2$03$i = $src2$03$i + 1 | 0;
}
}
}
} else $burn$2 = $burn$1;
if (!$burn$2) {
$$0 = 0;
return $$0 | 0;
}
___gcry_burn_stack($burn$2 + 16 | 0);
$$0 = 0;
return $$0 | 0;
}
function _rsa_generate($genparms, $r_skey) {
$genparms = $genparms | 0;
$r_skey = $r_skey | 0;
var $$0 = 0, $$02$i = 0, $$15$i = 0, $$18$i = 0, $$2$i = 0, $$3$i = 0, $$e_value$i = 0, $$lobit = 0, $$pre$phi18Z2D = 0, $$pre$phi20Z2D = 0, $$pre$phi22Z2D = 0, $$pre$phi24Z2D = 0, $$pre$phi26Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $119 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $139 = 0, $143 = 0, $144 = 0, $151 = 0, $154 = 0, $156 = 0, $157 = 0, $159 = 0, $160 = 0, $163 = 0, $164 = 0, $171 = 0, $172 = 0, $177 = 0, $179 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $189 = 0, $190 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $2 = 0, $20 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $27 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $43 = 0, $46 = 0, $49 = 0, $52 = 0, $6 = 0, $66 = 0, $67 = 0, $69 = 0, $76 = 0, $78 = 0, $83 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $e$0$i = 0, $ec$1 = 0, $ec$2 = 0, $evalue = 0, $flags = 0, $idx$022$i = 0, $nbits = 0, $nbits$$i = 0, $p$0$i = 0, $p$0$i$4 = 0, $p$0$us$i = 0, $p$1$lcssa$i = 0, $q$0$i = 0, $q$0$i$3 = 0, $q$0$us$i = 0, $q$1$lcssa$i = 0, $sk = 0, $swap_info = 0, $swapped$0 = 0, $swapped$1 = 0, $tbl$i = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $xp$i = 0, $xp1$i = 0, $xp2$i = 0, $xq$i = 0, $xq1$i = 0, $xq2$i = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$xp1$i = sp + 164 | 0;
$xp2$i = sp + 160 | 0;
$xp$i = sp + 156 | 0;
$xq1$i = sp + 152 | 0;
$xq2$i = sp + 148 | 0;
$xq$i = sp + 144 | 0;
$tbl$i = sp + 88 | 0;
$nbits = sp + 84 | 0;
$evalue = sp + 80 | 0;
$sk = sp + 56 | 0;
$flags = sp + 48 | 0;
$swap_info = sp + 44 | 0;
HEAP32[$flags >> 2] = 0;
HEAP32[$swap_info >> 2] = 0;
HEAP32[$sk >> 2] = 0;
HEAP32[$sk + 4 >> 2] = 0;
HEAP32[$sk + 8 >> 2] = 0;
HEAP32[$sk + 12 >> 2] = 0;
HEAP32[$sk + 16 >> 2] = 0;
HEAP32[$sk + 20 >> 2] = 0;
$0 = __gcry_pk_util_get_nbits($genparms, $nbits) | 0;
if ($0) {
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = __gcry_pk_util_get_rsa_use_e($genparms, $evalue) | 0;
if ($2) {
$$0 = $2;
STACKTOP = sp;
return $$0 | 0;
}
$4 = __gcry_sexp_find_token($genparms, 46546, 0) | 0;
if ($4) {
$6 = __gcry_pk_util_parse_flaglist($4, $flags, 0) | 0;
__gcry_sexp_release($4);
if ($6) {
$$0 = $6;
STACKTOP = sp;
return $$0 | 0;
}
}
if (!$genparms) label = 7; else {
$9 = __gcry_sexp_find_token($genparms, 41164, 0) | 0;
if (!$9) label = 7; else {
$27 = $9;
label = 11;
}
}
do if ((label | 0) == 7) {
$11 = __gcry_sexp_find_token($genparms, 41177, 0) | 0;
if ($11) {
HEAP32[$flags >> 2] = HEAP32[$flags >> 2] | 64;
__gcry_sexp_release($11);
}
if (!(HEAP32[$flags >> 2] & 64)) if (!(__gcry_fips_mode() | 0)) {
if (!(HEAP32[$flags >> 2] & 32)) {
$139 = __gcry_sexp_find_token($genparms, 48293, 0) | 0;
if ($139) {
HEAP32[$flags >> 2] = HEAP32[$flags >> 2] | 32;
__gcry_sexp_release($139);
}
}
$143 = HEAP32[$nbits >> 2] | 0;
$144 = HEAP32[$evalue >> 2] | 0;
$$lobit = (HEAP32[$flags >> 2] | 0) >>> 5 & 1;
if (__gcry_fips_mode() | 0) if (!($143 >>> 0 > 1023 & ($$lobit | 0) == 0)) {
$ec$2 = 55;
break;
}
$151 = 2 - $$lobit | 0;
$nbits$$i = ($143 & 1) + $143 | 0;
$$02$i = ($144 | 0) == 1 ? 65537 : $144;
$154 = __gcry_mpi_alloc(1) | 0;
if (!$$02$i) {
__gcry_mpi_set_ui($154, 41) | 0;
$156 = __gcry_mpi_new($nbits$$i) | 0;
$157 = $nbits$$i >>> 1;
$p$0$i$4 = 0;
$q$0$i$3 = 0;
while (1) {
if ($p$0$i$4) __gcry_mpi_release($p$0$i$4);
if ($q$0$i$3) __gcry_mpi_release($q$0$i$3);
$171 = __gcry_generate_secret_prime($157, $151, 0, 0) | 0;
$172 = __gcry_generate_secret_prime($157, $151, 0, 0) | 0;
if ((__gcry_mpi_cmp($171, $172) | 0) > 0) __gcry_mpi_swap($171, $172);
__gcry_mpi_mul($156, $171, $172);
if ((__gcry_mpi_get_nbits($156) | 0) == ($nbits$$i | 0)) {
$$18$i = 0;
$193 = $156;
$p$1$lcssa$i = $171;
$q$1$lcssa$i = $172;
break;
} else {
$p$0$i$4 = $171;
$q$0$i$3 = $172;
}
}
} else {
__gcry_mpi_set_ui($154, $$02$i | 1) | 0;
$159 = __gcry_mpi_new($nbits$$i) | 0;
$160 = $nbits$$i >>> 1;
$p$0$us$i = 0;
$q$0$us$i = 0;
while (1) {
if ($p$0$us$i) __gcry_mpi_release($p$0$us$i);
if ($q$0$us$i) __gcry_mpi_release($q$0$us$i);
$163 = __gcry_generate_secret_prime($160, $151, 6, $154) | 0;
$164 = __gcry_generate_secret_prime($160, $151, 6, $154) | 0;
if ((__gcry_mpi_cmp($163, $164) | 0) > 0) __gcry_mpi_swap($163, $164);
__gcry_mpi_mul($159, $163, $164);
if ((__gcry_mpi_get_nbits($159) | 0) == ($nbits$$i | 0)) {
$$18$i = 1;
$193 = $159;
$p$1$lcssa$i = $163;
$q$1$lcssa$i = $164;
break;
} else {
$p$0$us$i = $163;
$q$0$us$i = $164;
}
}
}
$177 = $p$1$lcssa$i + 4 | 0;
$179 = __gcry_mpi_alloc_secure(HEAP32[$177 >> 2] | 0) | 0;
$181 = __gcry_mpi_alloc_secure(HEAP32[$177 >> 2] | 0) | 0;
$182 = __gcry_mpi_snew($nbits$$i) | 0;
$183 = __gcry_mpi_snew($nbits$$i) | 0;
$184 = __gcry_mpi_snew($nbits$$i) | 0;
__gcry_mpi_sub_ui($179, $p$1$lcssa$i, 1);
__gcry_mpi_sub_ui($181, $q$1$lcssa$i, 1);
__gcry_mpi_mul($182, $179, $181);
__gcry_mpi_gcd($183, $179, $181) | 0;
__gcry_mpi_fdiv_q($184, $182, $183);
if (!(__gcry_mpi_gcd($179, $154, $182) | 0)) if ($$18$i) __gcry_bug(41222, 287, 41474); else do __gcry_mpi_add_ui($154, $154, 2); while ((__gcry_mpi_gcd($179, $154, $182) | 0) == 0);
$189 = __gcry_mpi_snew($nbits$$i) | 0;
__gcry_mpi_invm($189, $154, $184) | 0;
$190 = __gcry_mpi_snew($nbits$$i) | 0;
__gcry_mpi_invm($190, $p$1$lcssa$i, $q$1$lcssa$i) | 0;
if (__gcry_get_debug_flag(1) | 0) {
__gcry_log_printmpi(41487, $p$1$lcssa$i);
__gcry_log_printmpi(41493, $q$1$lcssa$i);
__gcry_log_printmpi(41499, $182);
__gcry_log_printmpi(41505, $183);
__gcry_log_printmpi(41511, $184);
__gcry_log_printmpi(41517, $193);
__gcry_log_printmpi(41523, $154);
__gcry_log_printmpi(41529, $189);
__gcry_log_printmpi(41535, $190);
}
__gcry_mpi_release($179);
__gcry_mpi_release($181);
__gcry_mpi_release($182);
__gcry_mpi_release($184);
__gcry_mpi_release($183);
HEAP32[$sk >> 2] = $193;
$194 = $sk + 4 | 0;
HEAP32[$194 >> 2] = $154;
$195 = $sk + 12 | 0;
HEAP32[$195 >> 2] = $p$1$lcssa$i;
$196 = $sk + 16 | 0;
HEAP32[$196 >> 2] = $q$1$lcssa$i;
$197 = $sk + 8 | 0;
HEAP32[$197 >> 2] = $189;
$198 = $sk + 20 | 0;
HEAP32[$198 >> 2] = $190;
if (!(_test_keys($sk, $nbits$$i + -64 | 0) | 0)) {
$$pre$phi18Z2D = $194;
$$pre$phi20Z2D = $197;
$$pre$phi22Z2D = $195;
$$pre$phi24Z2D = $196;
$$pre$phi26Z2D = $198;
$$pre$phiZ2D = $sk;
label = 86;
} else {
__gcry_mpi_release(HEAP32[$sk >> 2] | 0);
HEAP32[$sk >> 2] = 0;
__gcry_mpi_release(HEAP32[$194 >> 2] | 0);
HEAP32[$194 >> 2] = 0;
__gcry_mpi_release(HEAP32[$195 >> 2] | 0);
HEAP32[$195 >> 2] = 0;
__gcry_mpi_release(HEAP32[$196 >> 2] | 0);
HEAP32[$196 >> 2] = 0;
__gcry_mpi_release(HEAP32[$197 >> 2] | 0);
HEAP32[$197 >> 2] = 0;
__gcry_mpi_release(HEAP32[$198 >> 2] | 0);
HEAP32[$198 >> 2] = 0;
__gcry_fips_signal_error(41222, 334, 41474, 0, 41407);
$ec$2 = 50;
}
} else {
$27 = 0;
label = 11;
} else {
$27 = 0;
label = 11;
}
} while (0);
if ((label | 0) == 11) {
$20 = HEAP32[$nbits >> 2] | 0;
$21 = HEAP32[$evalue >> 2] | 0;
$$e_value$i = ($21 | 0) == 1 ? 65537 : $21;
if ($20 >>> 0 < 1024 | ($20 & 255 | 0) != 0 | $$e_value$i >>> 0 < 3 | ($$e_value$i & 1 | 0) == 0) {
$$3$i = 55;
$swapped$1 = 0;
} else {
HEAP32[$xp1$i >> 2] = 0;
HEAP32[$xp2$i >> 2] = 0;
HEAP32[$xp$i >> 2] = 0;
HEAP32[$xq1$i >> 2] = 0;
HEAP32[$xq2$i >> 2] = 0;
HEAP32[$xq$i >> 2] = 0;
L68 : do if (!$27) {
$29 = $20 >>> 1;
$30 = __gcry_mpi_snew($29) | 0;
__gcry_mpi_randomize($30, $29, 2);
$31 = $29 + -1 | 0;
__gcry_mpi_set_highbit($30, $31);
$32 = $29 + -2 | 0;
__gcry_mpi_set_bit($30, $32);
if ((__gcry_mpi_get_nbits($30) | 0) != ($29 | 0)) __gcry_assert_failed(41186, 41222, 360, 41228);
HEAP32[$xp$i >> 2] = $30;
$35 = __gcry_mpi_snew($29) | 0;
$36 = $29 + -100 | 0;
$37 = 0;
do {
__gcry_mpi_release($37);
$37 = __gcry_mpi_snew($29) | 0;
__gcry_mpi_randomize($37, $29, 2);
__gcry_mpi_set_highbit($37, $31);
__gcry_mpi_set_bit($37, $32);
if ((__gcry_mpi_get_nbits($37) | 0) != ($29 | 0)) {
label = 17;
break;
}
HEAP32[$xq$i >> 2] = $37;
__gcry_mpi_sub($35, $30, $37);
} while ((__gcry_mpi_get_nbits($35) | 0) >>> 0 <= $36 >>> 0);
if ((label | 0) == 17) __gcry_assert_failed(41186, 41222, 360, 41228);
__gcry_mpi_release($35);
$43 = __gcry_mpi_snew(101) | 0;
__gcry_mpi_randomize($43, 101, 2);
__gcry_mpi_set_highbit($43, 100);
if ((__gcry_mpi_get_nbits($43) | 0) != 101) __gcry_assert_failed(41245, 41222, 375, 41279);
HEAP32[$xp1$i >> 2] = $43;
$46 = __gcry_mpi_snew(101) | 0;
__gcry_mpi_randomize($46, 101, 2);
__gcry_mpi_set_highbit($46, 100);
if ((__gcry_mpi_get_nbits($46) | 0) != 101) __gcry_assert_failed(41245, 41222, 375, 41279);
HEAP32[$xp2$i >> 2] = $46;
$49 = __gcry_mpi_snew(101) | 0;
__gcry_mpi_randomize($49, 101, 2);
__gcry_mpi_set_highbit($49, 100);
if ((__gcry_mpi_get_nbits($49) | 0) != 101) __gcry_assert_failed(41245, 41222, 375, 41279);
HEAP32[$xq1$i >> 2] = $49;
$52 = __gcry_mpi_snew(101) | 0;
__gcry_mpi_randomize($52, 101, 2);
__gcry_mpi_set_highbit($52, 100);
if ((__gcry_mpi_get_nbits($52) | 0) == 101) {
HEAP32[$xq2$i >> 2] = $52;
label = 39;
break;
} else __gcry_assert_failed(41245, 41222, 375, 41279);
} else {
dest = $tbl$i;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$tbl$i >> 2] = 41296;
HEAP32[$tbl$i + 8 >> 2] = 41300;
HEAP32[$tbl$i + 16 >> 2] = 41304;
HEAP32[$tbl$i + 24 >> 2] = 41307;
HEAP32[$tbl$i + 32 >> 2] = 41311;
HEAP32[$tbl$i + 40 >> 2] = 41315;
HEAP32[$tbl$i + 4 >> 2] = $xp1$i;
HEAP32[$tbl$i + 12 >> 2] = $xp2$i;
HEAP32[$tbl$i + 20 >> 2] = $xp$i;
HEAP32[$tbl$i + 28 >> 2] = $xq1$i;
HEAP32[$tbl$i + 36 >> 2] = $xq2$i;
HEAP32[$tbl$i + 44 >> 2] = $xq$i;
$66 = 41296;
$idx$022$i = 0;
do {
$67 = __gcry_sexp_find_token($27, $66, 0) | 0;
if ($67) {
$69 = __gcry_sexp_nth_mpi($67, 1, 5) | 0;
HEAP32[HEAP32[$tbl$i + ($idx$022$i << 3) + 4 >> 2] >> 2] = $69;
__gcry_sexp_release($67);
}
$idx$022$i = $idx$022$i + 1 | 0;
$66 = HEAP32[$tbl$i + ($idx$022$i << 3) >> 2] | 0;
} while (($66 | 0) != 0);
$76 = HEAP32[$xp1$i >> 2] | 0;
L98 : do if ($76) {
$78 = 1;
do {
if (!(HEAP32[HEAP32[$tbl$i + ($78 << 3) + 4 >> 2] >> 2] | 0)) break L98;
$78 = $78 + 1 | 0;
} while ((HEAP32[$tbl$i + ($78 << 3) >> 2] | 0) != 0);
label = 39;
break L68;
} while (0);
__gcry_mpi_release($76);
$83 = 1;
do {
__gcry_mpi_release(HEAP32[HEAP32[$tbl$i + ($83 << 3) + 4 >> 2] >> 2] | 0);
$83 = $83 + 1 | 0;
} while ((HEAP32[$tbl$i + ($83 << 3) >> 2] | 0) != 0);
$$15$i = 0;
$$2$i = 128;
$e$0$i = 0;
$p$0$i = 0;
$q$0$i = 0;
} while (0);
if ((label | 0) == 39) {
$89 = __gcry_mpi_alloc_set_ui($$e_value$i) | 0;
$93 = __gcry_derive_x931_prime(HEAP32[$xp$i >> 2] | 0, HEAP32[$xp1$i >> 2] | 0, HEAP32[$xp2$i >> 2] | 0, $89, 0, 0) | 0;
$97 = __gcry_derive_x931_prime(HEAP32[$xq$i >> 2] | 0, HEAP32[$xq1$i >> 2] | 0, HEAP32[$xq2$i >> 2] | 0, $89, 0, 0) | 0;
__gcry_mpi_release(HEAP32[$xp$i >> 2] | 0);
HEAP32[$xp$i >> 2] = 0;
__gcry_mpi_release(HEAP32[$xp1$i >> 2] | 0);
HEAP32[$xp1$i >> 2] = 0;
__gcry_mpi_release(HEAP32[$xp2$i >> 2] | 0);
HEAP32[$xp2$i >> 2] = 0;
__gcry_mpi_release(HEAP32[$xq$i >> 2] | 0);
HEAP32[$xq$i >> 2] = 0;
__gcry_mpi_release(HEAP32[$xq1$i >> 2] | 0);
HEAP32[$xq1$i >> 2] = 0;
__gcry_mpi_release(HEAP32[$xq2$i >> 2] | 0);
HEAP32[$xq2$i >> 2] = 0;
if (($93 | 0) != 0 & ($97 | 0) != 0) {
$$15$i = 1;
$$2$i = 128;
$e$0$i = $89;
$p$0$i = $93;
$q$0$i = $97;
} else {
__gcry_mpi_release($93);
__gcry_mpi_release($97);
__gcry_mpi_release($89);
$$15$i = 0;
$$2$i = 21;
$e$0$i = $89;
$p$0$i = $93;
$q$0$i = $97;
}
}
if ($$15$i) {
if ((__gcry_mpi_cmp($p$0$i, $q$0$i) | 0) > 0) {
__gcry_mpi_swap($p$0$i, $q$0$i);
$swapped$0 = 1;
} else $swapped$0 = 0;
$108 = __gcry_mpi_new($20) | 0;
__gcry_mpi_mul($108, $p$0$i, $q$0$i);
$109 = $20 >>> 1;
$110 = __gcry_mpi_snew($109) | 0;
$111 = __gcry_mpi_snew($109) | 0;
$112 = __gcry_mpi_snew($20) | 0;
__gcry_mpi_sub_ui($110, $p$0$i, 1);
__gcry_mpi_sub_ui($111, $q$0$i, 1);
__gcry_mpi_mul($112, $110, $111);
$113 = __gcry_mpi_snew($20) | 0;
if (!(__gcry_mpi_gcd($113, $e$0$i, $112) | 0)) __gcry_assert_failed(41318, 41222, 541, 41352);
__gcry_mpi_gcd($113, $110, $111) | 0;
__gcry_mpi_release($111);
__gcry_mpi_fdiv_q($110, $112, $113);
__gcry_mpi_release($112);
__gcry_mpi_invm($113, $e$0$i, $110) | 0;
__gcry_mpi_invm($110, $p$0$i, $q$0$i) | 0;
if (__gcry_get_debug_flag(1) | 0) {
if ($swapped$0) __gcry_log_debug(41366, $vararg_buffer);
__gcry_log_printmpi(45041, $p$0$i);
__gcry_log_printmpi(41387, $q$0$i);
__gcry_log_printmpi(41391, $108);
__gcry_log_printmpi(41395, $e$0$i);
__gcry_log_printmpi(41399, $113);
__gcry_log_printmpi(41403, $110);
}
HEAP32[$sk >> 2] = $108;
$119 = $sk + 4 | 0;
HEAP32[$119 >> 2] = $e$0$i;
$120 = $sk + 12 | 0;
HEAP32[$120 >> 2] = $p$0$i;
$121 = $sk + 16 | 0;
HEAP32[$121 >> 2] = $q$0$i;
$122 = $sk + 8 | 0;
HEAP32[$122 >> 2] = $113;
$123 = $sk + 20 | 0;
HEAP32[$123 >> 2] = $110;
if (!(_test_keys($sk, $20 + -64 | 0) | 0)) {
$$3$i = 0;
$swapped$1 = $swapped$0;
} else {
__gcry_mpi_release(HEAP32[$sk >> 2] | 0);
HEAP32[$sk >> 2] = 0;
__gcry_mpi_release(HEAP32[$119 >> 2] | 0);
HEAP32[$119 >> 2] = 0;
__gcry_mpi_release(HEAP32[$120 >> 2] | 0);
HEAP32[$120 >> 2] = 0;
__gcry_mpi_release(HEAP32[$121 >> 2] | 0);
HEAP32[$121 >> 2] = 0;
__gcry_mpi_release(HEAP32[$122 >> 2] | 0);
HEAP32[$122 >> 2] = 0;
__gcry_mpi_release(HEAP32[$123 >> 2] | 0);
HEAP32[$123 >> 2] = 0;
__gcry_fips_signal_error(41222, 586, 41352, 0, 41407);
$$3$i = 50;
$swapped$1 = $swapped$0;
}
} else {
$$3$i = $$2$i;
$swapped$1 = 0;
}
}
__gcry_sexp_release($27);
if (($swapped$1 | 0) != 0 & ($$3$i | 0) == 0) $ec$1 = __gcry_sexp_new($swap_info, 41445, 0, 1) | 0; else $ec$1 = $$3$i;
if (!$ec$1) {
$$pre$phi18Z2D = $sk + 4 | 0;
$$pre$phi20Z2D = $sk + 8 | 0;
$$pre$phi22Z2D = $sk + 12 | 0;
$$pre$phi24Z2D = $sk + 16 | 0;
$$pre$phi26Z2D = $sk + 20 | 0;
$$pre$phiZ2D = $sk;
label = 86;
} else $ec$2 = $ec$1;
}
if ((label | 0) == 86) {
$209 = HEAP32[$$pre$phiZ2D >> 2] | 0;
$210 = HEAP32[$$pre$phi18Z2D >> 2] | 0;
$211 = HEAP32[$$pre$phi20Z2D >> 2] | 0;
$212 = HEAP32[$$pre$phi22Z2D >> 2] | 0;
$213 = HEAP32[$$pre$phi24Z2D >> 2] | 0;
$214 = HEAP32[$$pre$phi26Z2D >> 2] | 0;
$215 = HEAP32[$swap_info >> 2] | 0;
HEAP32[$vararg_buffer1 >> 2] = $209;
HEAP32[$vararg_buffer1 + 4 >> 2] = $210;
HEAP32[$vararg_buffer1 + 8 >> 2] = $209;
HEAP32[$vararg_buffer1 + 12 >> 2] = $210;
HEAP32[$vararg_buffer1 + 16 >> 2] = $211;
HEAP32[$vararg_buffer1 + 20 >> 2] = $212;
HEAP32[$vararg_buffer1 + 24 >> 2] = $213;
HEAP32[$vararg_buffer1 + 28 >> 2] = $214;
HEAP32[$vararg_buffer1 + 32 >> 2] = $215;
$ec$2 = __gcry_sexp_build($r_skey, 0, 41541, $vararg_buffer1) | 0;
}
__gcry_mpi_free(HEAP32[$sk >> 2] | 0);
__gcry_mpi_free(HEAP32[$sk + 4 >> 2] | 0);
__gcry_mpi_free(HEAP32[$sk + 12 >> 2] | 0);
__gcry_mpi_free(HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_free(HEAP32[$sk + 8 >> 2] | 0);
__gcry_mpi_free(HEAP32[$sk + 20 >> 2] | 0);
__gcry_sexp_release(HEAP32[$swap_info >> 2] | 0);
$$0 = $ec$2;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_mpi_ec_mul_point($result, $scalar, $point, $ctx) {
$result = $result | 0;
$scalar = $scalar | 0;
$point = $point | 0;
$ctx = $ctx | 0;
var $1 = 0, $100 = 0, $103 = 0, $106 = 0, $109 = 0, $111 = 0, $114 = 0, $117 = 0, $119 = 0, $120 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $129 = 0, $13 = 0, $130 = 0, $133 = 0, $136 = 0, $137 = 0, $14 = 0, $140 = 0, $142 = 0, $145 = 0, $147 = 0, $157 = 0, $16 = 0, $164 = 0, $165 = 0, $170 = 0, $172 = 0, $177 = 0, $179 = 0, $181 = 0, $183 = 0, $184 = 0, $187 = 0, $188 = 0, $195 = 0, $201 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $210 = 0, $218 = 0, $225 = 0, $229 = 0, $231 = 0, $233 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $257 = 0, $258 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0, $44 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $54 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $64 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $75 = 0, $78 = 0, $81 = 0, $83 = 0, $86 = 0, $89 = 0, $91 = 0, $94 = 0, $95 = 0, $96 = 0, $99 = 0, $i$09 = 0, $j$0$13 = 0, $j$014 = 0, $j$1$10 = 0, $j$111 = 0, $j2$0$18 = 0, $j2$023 = 0, $loops$0 = 0, $p1 = 0, $p1inv = 0, $p2 = 0, $p2_ = 0, $prd$021 = 0, $prd$021$phi = 0, $q1$019 = 0, $q2$020 = 0, $q2$020$phi = 0, $sum$022 = 0, $tmppnt = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
$vararg_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$p1 = sp + 76 | 0;
$p2 = sp + 64 | 0;
$p1inv = sp + 52 | 0;
$tmppnt = sp + 40 | 0;
$p2_ = sp + 28 | 0;
switch (HEAP32[$ctx >> 2] | 0) {
case 2:
{
$1 = __gcry_mpi_get_nbits($scalar) | 0;
__gcry_mpi_set_ui(HEAP32[$result >> 2] | 0, 0) | 0;
$3 = $result + 4 | 0;
__gcry_mpi_set_ui(HEAP32[$3 >> 2] | 0, 1) | 0;
$5 = $result + 8 | 0;
__gcry_mpi_set_ui(HEAP32[$5 >> 2] | 0, 1) | 0;
if ($scalar) if (HEAP32[$scalar + 12 >> 2] & 1) {
$13 = __gcry_mpi_new(0) | 0;
HEAP32[$tmppnt >> 2] = $13;
$14 = __gcry_mpi_new(0) | 0;
HEAP32[$tmppnt + 4 >> 2] = $14;
$16 = __gcry_mpi_new(0) | 0;
HEAP32[$tmppnt + 8 >> 2] = $16;
$j$0$13 = $1 + -1 | 0;
if (($j$0$13 | 0) > -1) {
$j$014 = $j$0$13;
do {
__gcry_mpi_ec_dup_point($result, $result, $ctx);
__gcry_mpi_ec_add_points($tmppnt, $result, $point, $ctx);
if (__gcry_mpi_test_bit($scalar, $j$014) | 0) {
__gcry_mpi_set(HEAP32[$result >> 2] | 0, $13) | 0;
__gcry_mpi_set(HEAP32[$3 >> 2] | 0, $14) | 0;
__gcry_mpi_set(HEAP32[$5 >> 2] | 0, $16) | 0;
}
$j$014 = $j$014 + -1 | 0;
} while (($j$014 | 0) > -1);
}
__gcry_mpi_free($13);
__gcry_mpi_free($14);
__gcry_mpi_free($16);
STACKTOP = sp;
return;
}
$j$1$10 = $1 + -1 | 0;
if (($j$1$10 | 0) > -1) $j$111 = $j$1$10; else {
STACKTOP = sp;
return;
}
do {
__gcry_mpi_ec_dup_point($result, $result, $ctx);
if (__gcry_mpi_test_bit($scalar, $j$111) | 0) __gcry_mpi_ec_add_points($result, $result, $point, $ctx);
$j$111 = $j$111 + -1 | 0;
} while (($j$111 | 0) > -1);
STACKTOP = sp;
return;
}
case 1:
{
$28 = __gcry_mpi_get_nbits($scalar) | 0;
$29 = __gcry_mpi_new(0) | 0;
HEAP32[$p1 >> 2] = $29;
$30 = __gcry_mpi_new(0) | 0;
$31 = $p1 + 4 | 0;
HEAP32[$31 >> 2] = $30;
$32 = __gcry_mpi_new(0) | 0;
$33 = $p1 + 8 | 0;
HEAP32[$33 >> 2] = $32;
$34 = __gcry_mpi_new(0) | 0;
$35 = __gcry_mpi_new(0) | 0;
$36 = $p2 + 4 | 0;
HEAP32[$36 >> 2] = $35;
$37 = __gcry_mpi_new(0) | 0;
$38 = $p2 + 8 | 0;
HEAP32[$38 >> 2] = $37;
$39 = __gcry_mpi_new(0) | 0;
HEAP32[$tmppnt >> 2] = $39;
$40 = __gcry_mpi_new(0) | 0;
HEAP32[$tmppnt + 4 >> 2] = $40;
$42 = __gcry_mpi_new(0) | 0;
HEAP32[$tmppnt + 8 >> 2] = $42;
$44 = __gcry_mpi_new(0) | 0;
HEAP32[$p2_ >> 2] = $44;
$45 = __gcry_mpi_new(0) | 0;
HEAP32[$p2_ + 4 >> 2] = $45;
$47 = __gcry_mpi_new(0) | 0;
HEAP32[$p2_ + 8 >> 2] = $47;
__gcry_mpi_set_ui($29, 1) | 0;
__gcry_mpi_free($34);
$50 = __gcry_mpi_copy(HEAP32[$point >> 2] | 0) | 0;
HEAP32[$p2 >> 2] = $50;
__gcry_mpi_set_ui($37, 1) | 0;
$54 = ((($28 << 1) + 62 | 0) >>> 5) + 1 | 0;
__gcry_mpi_resize($29, $54);
__gcry_mpi_resize($32, $54);
__gcry_mpi_resize($50, $54);
__gcry_mpi_resize($37, $54);
__gcry_mpi_resize($39, $54);
__gcry_mpi_resize($42, $54);
__gcry_mpi_resize($44, $54);
__gcry_mpi_resize($47, $54);
$j2$0$18 = $28 + -1 | 0;
if (($j2$0$18 | 0) > -1) {
$56 = $ctx + 60 | 0;
$57 = $ctx + 16 | 0;
$58 = $ctx + 20 | 0;
$j2$023 = $j2$0$18;
$prd$021 = $tmppnt;
$q1$019 = $p1;
$q2$020 = $p2;
$sum$022 = $p2_;
while (1) {
$59 = __gcry_mpi_test_bit($scalar, $j2$023) | 0;
__gcry_mpi_swap_cond(HEAP32[$q1$019 >> 2] | 0, HEAP32[$q2$020 >> 2] | 0, $59);
$62 = $q1$019 + 8 | 0;
$64 = $q2$020 + 8 | 0;
__gcry_mpi_swap_cond(HEAP32[$62 >> 2] | 0, HEAP32[$64 >> 2] | 0, $59);
$66 = HEAP32[$point >> 2] | 0;
$67 = HEAP32[$sum$022 >> 2] | 0;
__gcry_mpi_add($67, HEAP32[$q2$020 >> 2] | 0, HEAP32[$64 >> 2] | 0);
$70 = HEAP32[$56 >> 2] | 0;
if (!$70) __gcry_mpi_mod($67, $67, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($67, $67, $70);
$73 = HEAP32[$64 >> 2] | 0;
__gcry_mpi_sub($73, HEAP32[$q2$020 >> 2] | 0, $73);
$75 = HEAP32[$prd$021 >> 2] | 0;
__gcry_mpi_add($75, HEAP32[$q1$019 >> 2] | 0, HEAP32[$62 >> 2] | 0);
$78 = HEAP32[$56 >> 2] | 0;
if (!$78) __gcry_mpi_mod($75, $75, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($75, $75, $78);
$81 = HEAP32[$62 >> 2] | 0;
__gcry_mpi_sub($81, HEAP32[$q1$019 >> 2] | 0, $81);
$83 = HEAP32[$q2$020 >> 2] | 0;
__gcry_mpi_mul($83, HEAP32[$62 >> 2] | 0, HEAP32[$sum$022 >> 2] | 0);
$86 = HEAP32[$56 >> 2] | 0;
if (!$86) __gcry_mpi_mod($83, $83, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($83, $83, $86);
$89 = HEAP32[$64 >> 2] | 0;
__gcry_mpi_mul($89, HEAP32[$prd$021 >> 2] | 0, $89);
$91 = HEAP32[$56 >> 2] | 0;
if (!$91) __gcry_mpi_mod($89, $89, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($89, $89, $91);
$94 = HEAP32[$q1$019 >> 2] | 0;
$95 = HEAP32[$prd$021 >> 2] | 0;
__gcry_mpi_mul($94, $95, $95);
$96 = HEAP32[$56 >> 2] | 0;
if (!$96) __gcry_mpi_mod($94, $94, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($94, $94, $96);
$99 = HEAP32[$62 >> 2] | 0;
__gcry_mpi_mul($99, $99, $99);
$100 = HEAP32[$56 >> 2] | 0;
if (!$100) __gcry_mpi_mod($99, $99, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($99, $99, $100);
$103 = HEAP32[$sum$022 >> 2] | 0;
__gcry_mpi_add($103, HEAP32[$q2$020 >> 2] | 0, HEAP32[$64 >> 2] | 0);
$106 = HEAP32[$56 >> 2] | 0;
if (!$106) __gcry_mpi_mod($103, $103, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($103, $103, $106);
$109 = HEAP32[$64 >> 2] | 0;
__gcry_mpi_sub($109, HEAP32[$q2$020 >> 2] | 0, $109);
$111 = HEAP32[$prd$021 >> 2] | 0;
__gcry_mpi_mul($111, HEAP32[$q1$019 >> 2] | 0, HEAP32[$62 >> 2] | 0);
$114 = HEAP32[$56 >> 2] | 0;
if (!$114) __gcry_mpi_mod($111, $111, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($111, $111, $114);
$117 = HEAP32[$62 >> 2] | 0;
__gcry_mpi_sub($117, HEAP32[$q1$019 >> 2] | 0, $117);
$119 = HEAP32[$sum$022 >> 2] | 0;
__gcry_mpi_mul($119, $119, $119);
$120 = HEAP32[$56 >> 2] | 0;
if (!$120) __gcry_mpi_mod($119, $119, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($119, $119, $120);
$123 = $sum$022 + 8 | 0;
$124 = HEAP32[$123 >> 2] | 0;
$125 = HEAP32[$64 >> 2] | 0;
__gcry_mpi_mul($124, $125, $125);
$126 = HEAP32[$56 >> 2] | 0;
if (!$126) __gcry_mpi_mod($124, $124, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($124, $124, $126);
$129 = $prd$021 + 8 | 0;
$130 = HEAP32[$129 >> 2] | 0;
__gcry_mpi_mul($130, HEAP32[$62 >> 2] | 0, HEAP32[$58 >> 2] | 0);
$133 = HEAP32[$56 >> 2] | 0;
if (!$133) __gcry_mpi_mod($130, $130, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($130, $130, $133);
$136 = HEAP32[$123 >> 2] | 0;
__gcry_mpi_mul($136, $136, $66);
$137 = HEAP32[$56 >> 2] | 0;
if (!$137) __gcry_mpi_mod($136, $136, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($136, $136, $137);
$140 = HEAP32[$129 >> 2] | 0;
__gcry_mpi_add($140, HEAP32[$q1$019 >> 2] | 0, $140);
$142 = HEAP32[$56 >> 2] | 0;
if (!$142) __gcry_mpi_mod($140, $140, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($140, $140, $142);
$145 = HEAP32[$129 >> 2] | 0;
__gcry_mpi_mul($145, $145, HEAP32[$62 >> 2] | 0);
$147 = HEAP32[$56 >> 2] | 0;
if (!$147) __gcry_mpi_mod($145, $145, HEAP32[$57 >> 2] | 0); else __gcry_mpi_mod_barrett($145, $145, $147);
__gcry_mpi_swap_cond(HEAP32[$prd$021 >> 2] | 0, HEAP32[$sum$022 >> 2] | 0, $59);
__gcry_mpi_swap_cond(HEAP32[$129 >> 2] | 0, HEAP32[$123 >> 2] | 0, $59);
$j2$023 = $j2$023 + -1 | 0;
if (($j2$023 | 0) <= -1) break; else {
$q2$020$phi = $sum$022;
$prd$021$phi = $q1$019;
$sum$022 = $q2$020;
$q2$020 = $q2$020$phi;
$q1$019 = $prd$021;
$prd$021 = $prd$021$phi;
}
}
}
__gcry_mpi_clear(HEAP32[$result + 4 >> 2] | 0);
$157 = $28 & 1;
__gcry_mpi_swap_cond($29, $39, $157);
__gcry_mpi_swap_cond($32, $42, $157);
if (!(HEAP32[$32 + 4 >> 2] | 0)) {
__gcry_mpi_set_ui(HEAP32[$result >> 2] | 0, 1) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 0) | 0;
} else {
$164 = __gcry_mpi_new(0) | 0;
$165 = $ctx + 16 | 0;
if (!(__gcry_mpi_invm($164, $32, HEAP32[$165 >> 2] | 0) | 0)) {
__gcry_log_error(45003, $vararg_buffer);
__gcry_log_printmpi(45037, $32);
__gcry_log_printmpi(45041, HEAP32[$165 >> 2] | 0);
}
$170 = HEAP32[$result >> 2] | 0;
__gcry_mpi_mul($170, $29, $164);
$172 = HEAP32[$ctx + 60 >> 2] | 0;
if (!$172) __gcry_mpi_mod($170, $170, HEAP32[$165 >> 2] | 0); else __gcry_mpi_mod_barrett($170, $170, $172);
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 1) | 0;
__gcry_mpi_free($164);
}
__gcry_mpi_free($29);
HEAP32[$p1 >> 2] = 0;
__gcry_mpi_free($30);
HEAP32[$31 >> 2] = 0;
__gcry_mpi_free($32);
HEAP32[$33 >> 2] = 0;
__gcry_mpi_free($50);
HEAP32[$p2 >> 2] = 0;
__gcry_mpi_free($35);
HEAP32[$36 >> 2] = 0;
__gcry_mpi_free($37);
HEAP32[$38 >> 2] = 0;
__gcry_mpi_free($39);
__gcry_mpi_free($40);
__gcry_mpi_free($42);
__gcry_mpi_free($44);
__gcry_mpi_free($45);
__gcry_mpi_free($47);
STACKTOP = sp;
return;
}
default:
{
$177 = $ctx + 16 | 0;
$179 = __gcry_mpi_alloc_like(HEAP32[$177 >> 2] | 0) | 0;
$181 = __gcry_mpi_alloc_like(HEAP32[$177 >> 2] | 0) | 0;
$183 = __gcry_mpi_alloc_like(HEAP32[$177 >> 2] | 0) | 0;
$184 = __gcry_mpi_copy($scalar) | 0;
$187 = __gcry_mpi_copy(HEAP32[$point + 4 >> 2] | 0) | 0;
$188 = $184 + 8 | 0;
if (HEAP32[$188 >> 2] | 0) {
HEAP32[$188 >> 2] = 0;
if (!(__gcry_mpi_invm($187, $187, HEAP32[$177 >> 2] | 0) | 0)) {
__gcry_log_error(45003, $vararg_buffer1);
__gcry_log_printmpi(45037, $187);
__gcry_log_printmpi(45041, HEAP32[$177 >> 2] | 0);
}
}
$195 = $point + 8 | 0;
if (!(__gcry_mpi_cmp_ui(HEAP32[$195 >> 2] | 0, 1) | 0)) {
__gcry_mpi_set($179, HEAP32[$point >> 2] | 0) | 0;
__gcry_mpi_set($181, $187) | 0;
} else {
$201 = __gcry_mpi_alloc_like(HEAP32[$177 >> 2] | 0) | 0;
$203 = __gcry_mpi_alloc_like(HEAP32[$177 >> 2] | 0) | 0;
$204 = HEAP32[$195 >> 2] | 0;
__gcry_mpi_mul($201, $204, $204);
$205 = $ctx + 60 | 0;
$206 = HEAP32[$205 >> 2] | 0;
if (!$206) __gcry_mpi_mod($201, $201, HEAP32[$177 >> 2] | 0); else __gcry_mpi_mod_barrett($201, $201, $206);
__gcry_mpi_mul($203, HEAP32[$195 >> 2] | 0, $201);
$210 = HEAP32[$205 >> 2] | 0;
if (!$210) __gcry_mpi_mod($203, $203, HEAP32[$177 >> 2] | 0); else __gcry_mpi_mod_barrett($203, $203, $210);
if (!(__gcry_mpi_invm($201, $201, HEAP32[$177 >> 2] | 0) | 0)) {
__gcry_log_error(45003, $vararg_buffer3);
__gcry_log_printmpi(45037, $201);
__gcry_log_printmpi(45041, HEAP32[$177 >> 2] | 0);
}
__gcry_mpi_mul($179, HEAP32[$point >> 2] | 0, $201);
$218 = HEAP32[$205 >> 2] | 0;
if (!$218) __gcry_mpi_mod($179, $179, HEAP32[$177 >> 2] | 0); else __gcry_mpi_mod_barrett($179, $179, $218);
if (!(__gcry_mpi_invm($203, $203, HEAP32[$177 >> 2] | 0) | 0)) {
__gcry_log_error(45003, $vararg_buffer5);
__gcry_log_printmpi(45037, $203);
__gcry_log_printmpi(45041, HEAP32[$177 >> 2] | 0);
}
__gcry_mpi_mul($181, $187, $203);
$225 = HEAP32[$205 >> 2] | 0;
if (!$225) __gcry_mpi_mod($181, $181, HEAP32[$177 >> 2] | 0); else __gcry_mpi_mod_barrett($181, $181, $225);
__gcry_mpi_free($201);
__gcry_mpi_free($203);
}
$229 = __gcry_mpi_copy(__gcry_mpi_const(1) | 0) | 0;
__gcry_mpi_mul($183, $184, __gcry_mpi_const(3) | 0);
$231 = __gcry_mpi_get_nbits($183) | 0;
$233 = HEAP32[$result >> 2] | 0;
if ($231 >>> 0 < 2) {
__gcry_mpi_clear($233);
__gcry_mpi_clear(HEAP32[$result + 4 >> 2] | 0);
__gcry_mpi_clear(HEAP32[$result + 8 >> 2] | 0);
$loops$0 = 0;
} else {
__gcry_mpi_set($233, HEAP32[$point >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$result + 4 >> 2] | 0, $187) | 0;
__gcry_mpi_set(HEAP32[$result + 8 >> 2] | 0, HEAP32[$195 >> 2] | 0) | 0;
$loops$0 = $231 + -2 | 0;
}
__gcry_mpi_free($187);
HEAP32[$p1 >> 2] = $179;
$244 = $p1 + 4 | 0;
HEAP32[$244 >> 2] = $181;
$245 = $p1 + 8 | 0;
HEAP32[$245 >> 2] = $229;
$246 = __gcry_mpi_new(0) | 0;
HEAP32[$p2 >> 2] = $246;
$247 = __gcry_mpi_new(0) | 0;
$248 = $p2 + 4 | 0;
HEAP32[$248 >> 2] = $247;
$249 = __gcry_mpi_new(0) | 0;
$250 = $p2 + 8 | 0;
HEAP32[$250 >> 2] = $249;
$251 = __gcry_mpi_new(0) | 0;
HEAP32[$p1inv >> 2] = $251;
$252 = __gcry_mpi_new(0) | 0;
$253 = $p1inv + 4 | 0;
HEAP32[$253 >> 2] = $252;
$254 = __gcry_mpi_new(0) | 0;
$255 = $p1inv + 8 | 0;
HEAP32[$255 >> 2] = $254;
if ($loops$0) {
$257 = $result + 4 | 0;
$258 = $result + 8 | 0;
$i$09 = $loops$0;
do {
__gcry_mpi_ec_dup_point($result, $result, $ctx);
if ((__gcry_mpi_test_bit($183, $i$09) | 0) == 1) if (!(__gcry_mpi_test_bit($184, $i$09) | 0)) {
__gcry_mpi_set($246, HEAP32[$result >> 2] | 0) | 0;
__gcry_mpi_set($247, HEAP32[$257 >> 2] | 0) | 0;
__gcry_mpi_set($249, HEAP32[$258 >> 2] | 0) | 0;
__gcry_mpi_ec_add_points($result, $p2, $p1, $ctx);
}
if (!(__gcry_mpi_test_bit($183, $i$09) | 0)) if ((__gcry_mpi_test_bit($184, $i$09) | 0) == 1) {
__gcry_mpi_set($246, HEAP32[$result >> 2] | 0) | 0;
__gcry_mpi_set($247, HEAP32[$257 >> 2] | 0) | 0;
__gcry_mpi_set($249, HEAP32[$258 >> 2] | 0) | 0;
__gcry_mpi_set($251, $179) | 0;
__gcry_mpi_set($252, $181) | 0;
__gcry_mpi_set($254, $229) | 0;
__gcry_mpi_sub($252, HEAP32[$177 >> 2] | 0, $252);
__gcry_mpi_ec_add_points($result, $p2, $p1inv, $ctx);
}
$i$09 = $i$09 + -1 | 0;
} while (($i$09 | 0) != 0);
}
__gcry_mpi_free($179);
HEAP32[$p1 >> 2] = 0;
__gcry_mpi_free($181);
HEAP32[$244 >> 2] = 0;
__gcry_mpi_free($229);
HEAP32[$245 >> 2] = 0;
__gcry_mpi_free($246);
HEAP32[$p2 >> 2] = 0;
__gcry_mpi_free($247);
HEAP32[$248 >> 2] = 0;
__gcry_mpi_free($249);
HEAP32[$250 >> 2] = 0;
__gcry_mpi_free($251);
HEAP32[$p1inv >> 2] = 0;
__gcry_mpi_free($252);
HEAP32[$253 >> 2] = 0;
__gcry_mpi_free($254);
HEAP32[$255 >> 2] = 0;
__gcry_mpi_free($183);
__gcry_mpi_free($184);
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, $$01$ph47 = 0, $$03$ph45 = 0, $$lcssa = 0, $$lcssa127 = 0, $$lcssa128 = 0, $$lcssa129 = 0, $$lcssa130 = 0, $$lcssa135 = 0, $$lcssa139 = 0, $$lcssa142 = 0, $$lcssa143 = 0, $10 = 0, $100 = 0, $103 = 0, $11 = 0, $110 = 0, $118 = 0, $13 = 0, $136 = 0, $137 = 0, $138 = 0, $14 = 0, $147 = 0, $15 = 0, $16 = 0, $160 = 0, $166 = 0, $17 = 0, $174 = 0, $18 = 0, $182 = 0, $185 = 0, $186 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $237 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $288 = 0, $29 = 0, $291 = 0, $292 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $31 = 0, $314 = 0, $315 = 0, $32 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $33 = 0, $34 = 0, $349 = 0, $35 = 0, $355 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $90 = 0, $91 = 0, $94 = 0, $97 = 0, $98 = 0, $99 = 0, $_vlen$0$lcssa36$i = 0, $_vlen$0$lcssa74 = 0, $_vlen$021$i = 0, $_vlen$038 = 0, $_vlen$1 = 0, $_vlen$1$i = 0, $_vlen$3$ph = 0, $_vlen$3$ph$i = 0, $_vlen$318$i = 0, $_vlen$342 = 0, $_vlen2$0$lcssa37$i = 0, $_vlen2$014$i = 0, $_vlen2$1$i = 0, $_vlen2$3$ph$i = 0, $_vlen2$312$i = 0, $_vptr$0$lcssa35$i = 0, $_vptr$0$lcssa75 = 0, $_vptr$022$i = 0, $_vptr$037 = 0, $_vptr$1 = 0, $_vptr$1$i = 0, $_vptr$3$ph = 0, $_vptr$3$ph$i = 0, $_vptr$319$i = 0, $_vptr$341 = 0, $_vptr1$0$lcssa38$i = 0, $_vptr1$013$i = 0, $_vptr1$1$i = 0, $_vptr1$3$ph$i = 0, $_vptr1$311$i = 0, $datetime_DT = 0, $scevgep73 = 0, $tv$i = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$tv$i = sp + 32 | 0;
$datetime_DT = sp + 40 | 0;
if (!(HEAP32[17569] | 0)) __gcry_assert_failed(51407, 50726, 444, 51426);
$2 = $rng_ctx + 4 | 0;
if (!(HEAP32[$2 >> 2] | 0)) __gcry_assert_failed(51442, 50726, 445, 51426);
$5 = $rng_ctx + 8 | 0;
if (!(HEAP8[$5 >> 0] & 1)) __gcry_assert_failed(51461, 50726, 446, 51426);
$8 = HEAP32[17570] | 0;
if (!$8) __gcry_assert_failed(50910, 50726, 448, 51426);
$10 = $8 + 16 | 0;
$11 = $8 + 32 | 0;
if (!$length) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$13 = $rng_ctx + 52 | 0;
$14 = $rng_ctx + 12 | 0;
$15 = $tv$i + 4 | 0;
$16 = $datetime_DT + 1 | 0;
$17 = $datetime_DT + 2 | 0;
$18 = $datetime_DT + 3 | 0;
$19 = $datetime_DT + 4 | 0;
$20 = $datetime_DT + 5 | 0;
$21 = $datetime_DT + 6 | 0;
$22 = $datetime_DT + 7 | 0;
$23 = $datetime_DT + 8 | 0;
$24 = $datetime_DT + 9 | 0;
$25 = $datetime_DT + 10 | 0;
$26 = $datetime_DT + 11 | 0;
$27 = $datetime_DT + 12 | 0;
$28 = $datetime_DT + 13 | 0;
$29 = $datetime_DT + 14 | 0;
$30 = $datetime_DT + 15 | 0;
$31 = $rng_ctx + 17 | 0;
$32 = $8 + 1 | 0;
$33 = $rng_ctx + 18 | 0;
$34 = $8 + 17 | 0;
$35 = $8 + 2 | 0;
$36 = $rng_ctx + 19 | 0;
$37 = $8 + 18 | 0;
$38 = $8 + 3 | 0;
$39 = $rng_ctx + 20 | 0;
$40 = $8 + 19 | 0;
$41 = $8 + 4 | 0;
$42 = $rng_ctx + 21 | 0;
$43 = $8 + 20 | 0;
$44 = $8 + 5 | 0;
$45 = $rng_ctx + 22 | 0;
$46 = $8 + 21 | 0;
$47 = $8 + 6 | 0;
$48 = $rng_ctx + 23 | 0;
$49 = $8 + 22 | 0;
$50 = $8 + 7 | 0;
$51 = $rng_ctx + 24 | 0;
$52 = $8 + 23 | 0;
$53 = $8 + 8 | 0;
$54 = $rng_ctx + 25 | 0;
$55 = $8 + 24 | 0;
$56 = $8 + 9 | 0;
$57 = $rng_ctx + 26 | 0;
$58 = $8 + 25 | 0;
$59 = $8 + 10 | 0;
$60 = $rng_ctx + 27 | 0;
$61 = $8 + 26 | 0;
$62 = $8 + 11 | 0;
$63 = $rng_ctx + 28 | 0;
$64 = $8 + 27 | 0;
$65 = $8 + 12 | 0;
$66 = $rng_ctx + 29 | 0;
$67 = $8 + 28 | 0;
$68 = $8 + 13 | 0;
$69 = $rng_ctx + 30 | 0;
$70 = $8 + 29 | 0;
$71 = $8 + 14 | 0;
$72 = $rng_ctx + 31 | 0;
$73 = $8 + 30 | 0;
$74 = $8 + 15 | 0;
$75 = $rng_ctx + 32 | 0;
$76 = $8 + 31 | 0;
$77 = $8 + 33 | 0;
$78 = $8 + 34 | 0;
$79 = $8 + 35 | 0;
$80 = $8 + 36 | 0;
$81 = $8 + 37 | 0;
$82 = $8 + 38 | 0;
$83 = $8 + 39 | 0;
$84 = $8 + 40 | 0;
$85 = $8 + 41 | 0;
$86 = $8 + 42 | 0;
$87 = $8 + 43 | 0;
$88 = $8 + 44 | 0;
$89 = $8 + 45 | 0;
$90 = $8 + 46 | 0;
$91 = $8 + 47 | 0;
$94 = ($8 & 7 | 0) == 0;
$97 = ($10 & 7 | 0) == 0;
$98 = $rng_ctx + 51 | 0;
$99 = $rng_ctx + 34 | 0;
$100 = $rng_ctx + 56 | 0;
$103 = ($11 & 7 | 0) == 0;
$$01$ph47 = $output;
$$03$ph45 = $length;
L16 : while (1) {
while (1) {
if (!(HEAP32[$13 >> 2] | 0)) if ((HEAP32[$14 >> 2] | 0) >>> 0 > 1e3) {
_x931_reseed($rng_ctx);
HEAP32[$14 >> 2] = 0;
}
if (!(HEAP32[17569] | 0)) {
label = 16;
break L16;
}
$110 = HEAP32[$13 >> 2] | 0;
if (($110 | 0) == 0 | (HEAP32[17571] | 0) == ($rng_ctx | 0) | (HEAP32[17572] | 0) == ($rng_ctx | 0) | (HEAP32[17573] | 0) == ($rng_ctx | 0)) {
if (!(HEAP32[17574] | 0)) {
HEAP32[17575] = _getpid() | 0;
HEAP32[17576] = _getppid() | 0;
}
if (_gettimeofday($tv$i | 0, 0) | 0) {
label = 22;
break L16;
}
$136 = HEAP32[$15 >> 2] | 0;
$137 = $136 << 4;
$138 = HEAP32[$tv$i >> 2] | 0;
if (($138 | 0) == (HEAP32[17574] | 0) & ($137 | 0) == (HEAP32[17577] | 0)) {
$147 = (HEAP16[35460] | 0) + 1 & 4095;
HEAP16[35460] = $147;
$160 = $147;
} else {
HEAP16[35460] = 0;
HEAP32[17574] = $138;
HEAP32[17577] = $137;
$160 = 0;
}
HEAP8[$datetime_DT >> 0] = $138 >>> 24;
HEAP8[$16 >> 0] = $138 >>> 16;
HEAP8[$17 >> 0] = $138 >>> 8;
HEAP8[$18 >> 0] = $138;
HEAP8[$19 >> 0] = $136 >>> 12;
HEAP8[$20 >> 0] = $136 >>> 4;
HEAP8[$21 >> 0] = ($160 & 65535) >>> 8 & 15 | $137;
HEAP8[$22 >> 0] = $160;
$166 = HEAP32[17575] | 0;
HEAP8[$23 >> 0] = $166 >>> 24;
HEAP8[$24 >> 0] = $166 >>> 16;
HEAP8[$25 >> 0] = $166 >>> 8;
HEAP8[$26 >> 0] = $166;
$174 = HEAP32[17576] | 0;
HEAP8[$27 >> 0] = $174 >>> 24;
HEAP8[$28 >> 0] = $174 >>> 16;
HEAP8[$29 >> 0] = $174 >>> 8;
HEAP8[$30 >> 0] = $174;
$182 = $174 + 1 | 0;
HEAP32[17576] = $182;
if (!$182) HEAP32[17575] = $166 + 1;
} else {
dest = $datetime_DT;
src = $110;
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));
$118 = HEAP32[$100 >> 2] | 0;
HEAP8[$27 >> 0] = $118 >>> 24;
HEAP8[$28 >> 0] = $118 >>> 16;
HEAP8[$29 >> 0] = $118 >>> 8;
HEAP8[$30 >> 0] = $118;
HEAP32[$100 >> 2] = $118 + 1;
}
$185 = HEAP32[$2 >> 2] | 0;
$186 = __gcry_cipher_encrypt($185, $8, 16, $datetime_DT, 16) | 0;
if ($186) {
$$lcssa130 = $186;
label = 30;
break L16;
}
HEAP8[$10 >> 0] = HEAP8[$31 >> 0] ^ HEAP8[$8 >> 0];
HEAP8[$34 >> 0] = HEAP8[$33 >> 0] ^ HEAP8[$32 >> 0];
HEAP8[$37 >> 0] = HEAP8[$36 >> 0] ^ HEAP8[$35 >> 0];
HEAP8[$40 >> 0] = HEAP8[$39 >> 0] ^ HEAP8[$38 >> 0];
HEAP8[$43 >> 0] = HEAP8[$42 >> 0] ^ HEAP8[$41 >> 0];
HEAP8[$46 >> 0] = HEAP8[$45 >> 0] ^ HEAP8[$44 >> 0];
HEAP8[$49 >> 0] = HEAP8[$48 >> 0] ^ HEAP8[$47 >> 0];
HEAP8[$52 >> 0] = HEAP8[$51 >> 0] ^ HEAP8[$50 >> 0];
HEAP8[$55 >> 0] = HEAP8[$54 >> 0] ^ HEAP8[$53 >> 0];
HEAP8[$58 >> 0] = HEAP8[$57 >> 0] ^ HEAP8[$56 >> 0];
HEAP8[$61 >> 0] = HEAP8[$60 >> 0] ^ HEAP8[$59 >> 0];
HEAP8[$64 >> 0] = HEAP8[$63 >> 0] ^ HEAP8[$62 >> 0];
HEAP8[$67 >> 0] = HEAP8[$66 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$70 >> 0] = HEAP8[$69 >> 0] ^ HEAP8[$68 >> 0];
HEAP8[$73 >> 0] = HEAP8[$72 >> 0] ^ HEAP8[$71 >> 0];
HEAP8[$76 >> 0] = HEAP8[$75 >> 0] ^ HEAP8[$74 >> 0];
$237 = __gcry_cipher_encrypt($185, $11, 16, $10, 16) | 0;
if ($237) {
$$lcssa135 = $237;
label = 32;
break L16;
}
HEAP8[$10 >> 0] = HEAP8[$8 >> 0] ^ HEAP8[$11 >> 0];
HEAP8[$34 >> 0] = HEAP8[$32 >> 0] ^ HEAP8[$77 >> 0];
HEAP8[$37 >> 0] = HEAP8[$35 >> 0] ^ HEAP8[$78 >> 0];
HEAP8[$40 >> 0] = HEAP8[$38 >> 0] ^ HEAP8[$79 >> 0];
HEAP8[$43 >> 0] = HEAP8[$41 >> 0] ^ HEAP8[$80 >> 0];
HEAP8[$46 >> 0] = HEAP8[$44 >> 0] ^ HEAP8[$81 >> 0];
HEAP8[$49 >> 0] = HEAP8[$47 >> 0] ^ HEAP8[$82 >> 0];
HEAP8[$52 >> 0] = HEAP8[$50 >> 0] ^ HEAP8[$83 >> 0];
HEAP8[$55 >> 0] = HEAP8[$53 >> 0] ^ HEAP8[$84 >> 0];
HEAP8[$58 >> 0] = HEAP8[$56 >> 0] ^ HEAP8[$85 >> 0];
HEAP8[$61 >> 0] = HEAP8[$59 >> 0] ^ HEAP8[$86 >> 0];
HEAP8[$64 >> 0] = HEAP8[$62 >> 0] ^ HEAP8[$87 >> 0];
HEAP8[$67 >> 0] = HEAP8[$65 >> 0] ^ HEAP8[$88 >> 0];
HEAP8[$70 >> 0] = HEAP8[$68 >> 0] ^ HEAP8[$89 >> 0];
HEAP8[$73 >> 0] = HEAP8[$71 >> 0] ^ HEAP8[$90 >> 0];
HEAP8[$76 >> 0] = HEAP8[$74 >> 0] ^ HEAP8[$91 >> 0];
$288 = __gcry_cipher_encrypt($185, $31, 16, $10, 16) | 0;
if ($288) {
$$lcssa139 = $288;
label = 35;
break L16;
}
if ($94) {
$_vlen$0$lcssa36$i = 16;
$_vptr$0$lcssa35$i = $8;
label = 38;
} else {
$_vlen$021$i = 16;
$_vptr$022$i = $8;
while (1) {
HEAP8[$_vptr$022$i >> 0] = 0;
$291 = $_vptr$022$i + 1 | 0;
$292 = $_vlen$021$i + -1 | 0;
if (($292 | 0) != 0 & ($291 & 7 | 0) != 0) {
$_vlen$021$i = $292;
$_vptr$022$i = $291;
} else {
$$lcssa = $291;
$$lcssa127 = $292;
break;
}
}
if ($$lcssa127 >>> 0 < 8) {
$_vlen$3$ph$i = $$lcssa127;
$_vptr$3$ph$i = $$lcssa;
} else {
$_vlen$0$lcssa36$i = $$lcssa127;
$_vptr$0$lcssa35$i = $$lcssa;
label = 38;
}
}
if ((label | 0) == 38) {
label = 0;
$299 = $_vlen$0$lcssa36$i + -8 | 0;
$300 = $299 & -8;
$301 = $300 + 8 | 0;
$_vlen$1$i = $_vlen$0$lcssa36$i;
$_vptr$1$i = $_vptr$0$lcssa35$i;
while (1) {
$302 = $_vptr$1$i;
HEAP32[$302 >> 2] = 0;
HEAP32[$302 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$ph$i = $299 - $300 | 0;
$_vptr$3$ph$i = $_vptr$0$lcssa35$i + $301 | 0;
}
if ($_vlen$3$ph$i) {
$_vlen$318$i = $_vlen$3$ph$i;
$_vptr$319$i = $_vptr$3$ph$i;
while (1) {
HEAP8[$_vptr$319$i >> 0] = 0;
$_vlen$318$i = $_vlen$318$i + -1 | 0;
if (!$_vlen$318$i) break; else $_vptr$319$i = $_vptr$319$i + 1 | 0;
}
}
if ($97) {
$_vlen2$0$lcssa37$i = 16;
$_vptr1$0$lcssa38$i = $10;
label = 46;
} else {
$_vlen2$014$i = 16;
$_vptr1$013$i = $10;
while (1) {
HEAP8[$_vptr1$013$i >> 0] = 0;
$314 = $_vptr1$013$i + 1 | 0;
$315 = $_vlen2$014$i + -1 | 0;
if (($315 | 0) != 0 & ($314 & 7 | 0) != 0) {
$_vlen2$014$i = $315;
$_vptr1$013$i = $314;
} else {
$$lcssa128 = $314;
$$lcssa129 = $315;
break;
}
}
if ($$lcssa129 >>> 0 < 8) {
$_vlen2$3$ph$i = $$lcssa129;
$_vptr1$3$ph$i = $$lcssa128;
} else {
$_vlen2$0$lcssa37$i = $$lcssa129;
$_vptr1$0$lcssa38$i = $$lcssa128;
label = 46;
}
}
if ((label | 0) == 46) {
label = 0;
$322 = $_vlen2$0$lcssa37$i + -8 | 0;
$323 = $322 & -8;
$324 = $323 + 8 | 0;
$_vlen2$1$i = $_vlen2$0$lcssa37$i;
$_vptr1$1$i = $_vptr1$0$lcssa38$i;
while (1) {
$325 = $_vptr1$1$i;
HEAP32[$325 >> 2] = 0;
HEAP32[$325 + 4 >> 2] = 0;
$_vlen2$1$i = $_vlen2$1$i + -8 | 0;
if ($_vlen2$1$i >>> 0 <= 7) break; else $_vptr1$1$i = $_vptr1$1$i + 8 | 0;
}
$_vlen2$3$ph$i = $322 - $323 | 0;
$_vptr1$3$ph$i = $_vptr1$0$lcssa38$i + $324 | 0;
}
if ($_vlen2$3$ph$i) {
$_vlen2$312$i = $_vlen2$3$ph$i;
$_vptr1$311$i = $_vptr1$3$ph$i;
while (1) {
HEAP8[$_vptr1$311$i >> 0] = 0;
$_vlen2$312$i = $_vlen2$312$i + -1 | 0;
if (!$_vlen2$312$i) break; else $_vptr1$311$i = $_vptr1$311$i + 1 | 0;
}
}
HEAP32[$14 >> 2] = (HEAP32[$14 >> 2] | 0) + 1;
if (HEAP8[$98 >> 0] | 0) if (!((HEAP32[$13 >> 2] | 0) == 0 | (HEAP32[17571] | 0) == ($rng_ctx | 0) | (HEAP32[17572] | 0) == ($rng_ctx | 0) | (HEAP32[17573] | 0) == ($rng_ctx | 0))) {
label = 58;
break;
}
$349 = HEAP8[$5 >> 0] | 0;
if ($349 & 2) {
label = 55;
break;
}
dest = $99;
src = $11;
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));
HEAP8[$5 >> 0] = $349 | 2;
}
if ((label | 0) == 55) {
label = 0;
if (!(_memcmp($99, $11, 16) | 0)) {
label = 56;
break;
}
$355 = $$03$ph45 >>> 0 < 16 ? $$03$ph45 : 16;
dest = $99;
src = $11;
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));
$358 = $355;
} else if ((label | 0) == 58) {
label = 0;
$358 = $$03$ph45 >>> 0 < 16 ? $$03$ph45 : 16;
}
_memcpy($$01$ph47 | 0, $11 | 0, $358 | 0) | 0;
if ($103) {
$_vlen$0$lcssa74 = 16;
$_vptr$0$lcssa75 = $11;
label = 62;
} else {
$_vlen$038 = 16;
$_vptr$037 = $11;
while (1) {
HEAP8[$_vptr$037 >> 0] = 0;
$359 = $_vptr$037 + 1 | 0;
$360 = $_vlen$038 + -1 | 0;
if (($360 | 0) != 0 & ($359 & 7 | 0) != 0) {
$_vlen$038 = $360;
$_vptr$037 = $359;
} else {
$$lcssa142 = $359;
$$lcssa143 = $360;
break;
}
}
if ($$lcssa143 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa143;
$_vptr$3$ph = $$lcssa142;
} else {
$_vlen$0$lcssa74 = $$lcssa143;
$_vptr$0$lcssa75 = $$lcssa142;
label = 62;
}
}
if ((label | 0) == 62) {
label = 0;
$367 = $_vlen$0$lcssa74 + -8 | 0;
$368 = $367 & -8;
$scevgep73 = $_vptr$0$lcssa75 + 8 + $368 | 0;
$_vlen$1 = $_vlen$0$lcssa74;
$_vptr$1 = $_vptr$0$lcssa75;
while (1) {
$369 = $_vptr$1;
HEAP32[$369 >> 2] = 0;
HEAP32[$369 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $367 - $368 | 0;
$_vptr$3$ph = $scevgep73;
}
if ($_vlen$3$ph) {
$_vlen$342 = $_vlen$3$ph;
$_vptr$341 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$341 >> 0] = 0;
$_vlen$342 = $_vlen$342 + -1 | 0;
if (!$_vlen$342) break; else $_vptr$341 = $_vptr$341 + 1 | 0;
}
}
if (($$03$ph45 | 0) == ($358 | 0)) {
$$0 = 0;
label = 68;
break;
} else {
$$01$ph47 = $$01$ph47 + $358 | 0;
$$03$ph45 = $$03$ph45 - $358 | 0;
}
}
if ((label | 0) == 16) __gcry_assert_failed(51407, 50726, 274, 51480); else if ((label | 0) == 22) {
HEAP32[$vararg_buffer >> 2] = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
__gcry_log_fatal(51492, $vararg_buffer);
} else if ((label | 0) == 30) {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($$lcssa130) | 0;
__gcry_log_fatal(51519, $vararg_buffer1);
} else if ((label | 0) == 32) {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($$lcssa135) | 0;
__gcry_log_fatal(51519, $vararg_buffer4);
} else if ((label | 0) == 35) {
HEAP32[$vararg_buffer7 >> 2] = _gpg_strerror($$lcssa139) | 0;
__gcry_log_fatal(51519, $vararg_buffer7);
} else if ((label | 0) == 56) {
__gcry_fips_signal_error(50726, 502, 51426, 0, 51553);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
} else if ((label | 0) == 68) {
STACKTOP = sp;
return $$0 | 0;
}
return 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 $$$i = 0, $$$i$10 = 0, $$$i$24 = 0, $$$i$38 = 0, $$$i$52 = 0, $$7 = 0, $$pn = 0, $$pre = 0, $0 = 0, $10 = 0, $102 = 0, $104 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $121 = 0, $123 = 0, $125 = 0, $128 = 0, $143 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $160 = 0, $162 = 0, $164 = 0, $167 = 0, $17 = 0, $182 = 0, $188 = 0, $19 = 0, $194 = 0, $207 = 0, $21 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $223 = 0, $225 = 0, $227 = 0, $230 = 0, $24 = 0, $245 = 0, $254 = 0, $257 = 0, $265 = 0, $266 = 0, $267 = 0, $274 = 0, $286 = 0, $287 = 0, $39 = 0, $45 = 0, $52 = 0, $53 = 0, $61 = 0, $62 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $74 = 0, $76 = 0, $78 = 0, $8 = 0, $81 = 0, $9 = 0, $96 = 0, $dummy_nwritten$nwritten = 0, $extra$0 = 0, $extra$0858690 = 0, $extra12$0 = 0, $extra8$0 = 0, $i$012$in$i = 0, $i$012$in$i$12 = 0, $i$012$in$i$26 = 0, $i$012$in$i$40 = 0, $i$012$in$i$54 = 0, $i$079 = 0, $n$0 = 0, $n$1 = 0, $n$2 = 0, $n$3 = 0, $n$3838789 = 0, $n$384 = 0, $n1$0 = 0, $n1$1 = 0, $n1$2 = 0, $n1$3 = 0, $n13$0 = 0, $n13$1 = 0, $n13$292 = 0, $n13$293 = 0, $n3$0 = 0, $n3$1 = 0, $n3$2 = 0, $n3$3 = 0, $n9$0 = 0, $n9$1 = 0, $n9$2 = 0, $n9$3 = 0, $negative$0 = 0, $p$011$i = 0, $p$011$i$13 = 0, $p$011$i$27 = 0, $p$011$i$41 = 0, $p$011$i$55 = 0, $p$2$lcssa$i = 0, $p$2$lcssa$i$20 = 0, $p$2$lcssa$i$34 = 0, $p$2$lcssa$i$48 = 0, $p$2$lcssa$i$62 = 0, $p$21$i = 0, $p$21$i$17 = 0, $p$21$i$31 = 0, $p$21$i$45 = 0, $p$21$i$59 = 0, $s$0 = 0, $s10$0 = 0, $s14$0 = 0, $s14$2$lcssa = 0, $s14$2$ph = 0, $s14$280 = 0, $storemerge = 0, label = 0, sp = 0, $i$012$in$i$looptemp = 0, $i$012$in$i$12$looptemp = 0, $i$012$in$i$26$looptemp = 0, $i$012$in$i$40$looptemp = 0, $i$012$in$i$54$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = __gcry_mpi_get_nbits($a) | 0;
$dummy_nwritten$nwritten = ($nwritten | 0) == 0 ? sp : $nwritten;
if (!(HEAP32[$a + 8 >> 2] | 0)) label = 3; else if (!(__gcry_mpi_cmp_ui($a, 0) | 0)) label = 3; else $negative$0 = 1;
if ((label | 0) == 3) $negative$0 = 0;
HEAP32[$dummy_nwritten$nwritten >> 2] = 0;
switch ($format | 0) {
case 1:
{
$7 = $a + 4 | 0;
$8 = HEAP32[$7 >> 2] | 0;
$9 = $8 << 2;
$10 = ($8 | 0) == 0;
$$$i = $10 ? 1 : $9;
if (!(HEAP32[$a + 12 >> 2] & 1)) $17 = __gcry_malloc($$$i) | 0; else $17 = __gcry_malloc_secure($$$i) | 0;
if (!$17) {
$$7 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$7 | 0;
}
$19 = HEAP32[$7 >> 2] | 0;
if (($19 | 0) > 0) {
$21 = $a + 16 | 0;
$i$012$in$i = $19;
$p$011$i = $17;
while (1) {
$i$012$in$i$looptemp = $i$012$in$i;
$i$012$in$i = $i$012$in$i + -1 | 0;
$24 = HEAP32[(HEAP32[$21 >> 2] | 0) + ($i$012$in$i << 2) >> 2] | 0;
HEAP8[$p$011$i >> 0] = $24 >>> 24;
HEAP8[$p$011$i + 1 >> 0] = $24 >>> 16;
HEAP8[$p$011$i + 2 >> 0] = $24 >>> 8;
HEAP8[$p$011$i + 3 >> 0] = $24;
if (($i$012$in$i$looptemp | 0) <= 1) break; else $p$011$i = $p$011$i + 4 | 0;
}
}
if ($10) $n$2 = 0; else {
$n$0 = $9;
$p$21$i = $17;
while (1) {
if (HEAP8[$p$21$i >> 0] | 0) {
$n$1 = $n$0;
$p$2$lcssa$i = $p$21$i;
break;
}
$39 = $p$21$i + 1 | 0;
$n$0 = $n$0 + -1 | 0;
if (!$n$0) {
$n$1 = 0;
$p$2$lcssa$i = $39;
break;
} else $p$21$i = $39;
}
if (($p$2$lcssa$i | 0) == ($17 | 0)) $n$2 = $n$1; else {
_memmove($17 | 0, $p$2$lcssa$i | 0, $n$1 | 0) | 0;
$n$2 = $n$1;
}
}
do if (!$negative$0) if (!$n$2) if (!$buffer) {
$n$384 = 0;
break;
} else {
$extra$0858690 = 0;
$n$3838789 = 0;
$s$0 = $buffer;
label = 29;
break;
} else {
$52 = (HEAPU8[$17 >> 0] | 0) >>> 7 & 255;
$$pn = $52;
$extra$0 = $52;
label = 23;
break;
} else {
_twocompl($17, $n$2);
$45 = HEAP8[$17 >> 0] | 0;
$$pn = ($45 & 255) >>> 7 & 255 ^ 1;
$extra$0 = $45 << 24 >> 24 < 0 ? 0 : 2;
label = 23;
} while (0);
L34 : do if ((label | 0) == 23) {
$n$3 = $$pn + $n$2 | 0;
$53 = ($buffer | 0) != 0;
if ($53 & $n$3 >>> 0 > $buflen >>> 0) {
__gcry_free($17);
$$7 = 66;
STACKTOP = sp;
return $$7 | 0;
}
if ($53) switch ($extra$0 | 0) {
case 0:
{
$extra$0858690 = 0;
$n$3838789 = $n$3;
$s$0 = $buffer;
label = 29;
break L34;
break;
}
case 1:
{
HEAP8[$buffer >> 0] = 0;
$extra$0858690 = 1;
$n$3838789 = $n$3;
$s$0 = $buffer + 1 | 0;
label = 29;
break L34;
break;
}
default:
{
HEAP8[$buffer >> 0] = -1;
$extra$0858690 = $extra$0;
$n$3838789 = $n$3;
$s$0 = $buffer + 1 | 0;
label = 29;
break L34;
}
} else $n$384 = $n$3;
} while (0);
if ((label | 0) == 29) {
_memcpy($s$0 | 0, $17 | 0, $n$3838789 - (($extra$0858690 | 0) != 0 & 1) | 0) | 0;
$n$384 = $n$3838789;
}
__gcry_free($17);
HEAP32[$dummy_nwritten$nwritten >> 2] = $n$384;
$$7 = 0;
STACKTOP = sp;
return $$7 | 0;
}
case 5:
{
$61 = ($0 + 7 | 0) >>> 3;
$62 = ($buffer | 0) != 0;
if ($62 & $61 >>> 0 > $buflen >>> 0) {
$$7 = 66;
STACKTOP = sp;
return $$7 | 0;
}
if ($62) {
$64 = $a + 4 | 0;
$65 = HEAP32[$64 >> 2] | 0;
$66 = $65 << 2;
$67 = ($65 | 0) == 0;
$$$i$10 = $67 ? 1 : $66;
if (!(HEAP32[$a + 12 >> 2] & 1)) $74 = __gcry_malloc($$$i$10) | 0; else $74 = __gcry_malloc_secure($$$i$10) | 0;
if (!$74) {
$$7 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$7 | 0;
}
$76 = HEAP32[$64 >> 2] | 0;
if (($76 | 0) > 0) {
$78 = $a + 16 | 0;
$i$012$in$i$12 = $76;
$p$011$i$13 = $74;
while (1) {
$i$012$in$i$12$looptemp = $i$012$in$i$12;
$i$012$in$i$12 = $i$012$in$i$12 + -1 | 0;
$81 = HEAP32[(HEAP32[$78 >> 2] | 0) + ($i$012$in$i$12 << 2) >> 2] | 0;
HEAP8[$p$011$i$13 >> 0] = $81 >>> 24;
HEAP8[$p$011$i$13 + 1 >> 0] = $81 >>> 16;
HEAP8[$p$011$i$13 + 2 >> 0] = $81 >>> 8;
HEAP8[$p$011$i$13 + 3 >> 0] = $81;
if (($i$012$in$i$12$looptemp | 0) <= 1) break; else $p$011$i$13 = $p$011$i$13 + 4 | 0;
}
}
if ($67) $n1$2 = 0; else {
$n1$0 = $66;
$p$21$i$17 = $74;
while (1) {
if (HEAP8[$p$21$i$17 >> 0] | 0) {
$n1$1 = $n1$0;
$p$2$lcssa$i$20 = $p$21$i$17;
break;
}
$96 = $p$21$i$17 + 1 | 0;
$n1$0 = $n1$0 + -1 | 0;
if (!$n1$0) {
$n1$1 = 0;
$p$2$lcssa$i$20 = $96;
break;
} else $p$21$i$17 = $96;
}
if (($p$2$lcssa$i$20 | 0) == ($74 | 0)) $n1$2 = $n1$1; else {
_memmove($74 | 0, $p$2$lcssa$i$20 | 0, $n1$1 | 0) | 0;
$n1$2 = $n1$1;
}
}
_memcpy($buffer | 0, $74 | 0, $n1$2 | 0) | 0;
__gcry_free($74);
$n1$3 = $n1$2;
} else $n1$3 = $61;
HEAP32[$dummy_nwritten$nwritten >> 2] = $n1$3;
$$7 = 0;
STACKTOP = sp;
return $$7 | 0;
}
case 2:
{
$102 = ($0 + 7 | 0) >>> 3;
if ($negative$0) {
$$7 = 45;
STACKTOP = sp;
return $$7 | 0;
}
$104 = ($buffer | 0) != 0;
if ($104 & ($102 + 2 | 0) >>> 0 > $buflen >>> 0) {
$$7 = 66;
STACKTOP = sp;
return $$7 | 0;
}
if ($104) {
HEAP8[$buffer >> 0] = $0 >>> 8;
HEAP8[$buffer + 1 >> 0] = $0;
$111 = $a + 4 | 0;
$112 = HEAP32[$111 >> 2] | 0;
$113 = $112 << 2;
$114 = ($112 | 0) == 0;
$$$i$24 = $114 ? 1 : $113;
if (!(HEAP32[$a + 12 >> 2] & 1)) $121 = __gcry_malloc($$$i$24) | 0; else $121 = __gcry_malloc_secure($$$i$24) | 0;
if (!$121) {
$$7 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$7 | 0;
}
$123 = HEAP32[$111 >> 2] | 0;
if (($123 | 0) > 0) {
$125 = $a + 16 | 0;
$i$012$in$i$26 = $123;
$p$011$i$27 = $121;
while (1) {
$i$012$in$i$26$looptemp = $i$012$in$i$26;
$i$012$in$i$26 = $i$012$in$i$26 + -1 | 0;
$128 = HEAP32[(HEAP32[$125 >> 2] | 0) + ($i$012$in$i$26 << 2) >> 2] | 0;
HEAP8[$p$011$i$27 >> 0] = $128 >>> 24;
HEAP8[$p$011$i$27 + 1 >> 0] = $128 >>> 16;
HEAP8[$p$011$i$27 + 2 >> 0] = $128 >>> 8;
HEAP8[$p$011$i$27 + 3 >> 0] = $128;
if (($i$012$in$i$26$looptemp | 0) <= 1) break; else $p$011$i$27 = $p$011$i$27 + 4 | 0;
}
}
if ($114) $n3$2 = 0; else {
$n3$0 = $113;
$p$21$i$31 = $121;
while (1) {
if (HEAP8[$p$21$i$31 >> 0] | 0) {
$n3$1 = $n3$0;
$p$2$lcssa$i$34 = $p$21$i$31;
break;
}
$143 = $p$21$i$31 + 1 | 0;
$n3$0 = $n3$0 + -1 | 0;
if (!$n3$0) {
$n3$1 = 0;
$p$2$lcssa$i$34 = $143;
break;
} else $p$21$i$31 = $143;
}
if (($p$2$lcssa$i$34 | 0) == ($121 | 0)) $n3$2 = $n3$1; else {
_memmove($121 | 0, $p$2$lcssa$i$34 | 0, $n3$1 | 0) | 0;
$n3$2 = $n3$1;
}
}
_memcpy($buffer + 2 | 0, $121 | 0, $n3$2 | 0) | 0;
__gcry_free($121);
$n3$3 = $n3$2;
} else $n3$3 = $102;
HEAP32[$dummy_nwritten$nwritten >> 2] = $n3$3 + 2;
$$7 = 0;
STACKTOP = sp;
return $$7 | 0;
}
case 3:
{
$150 = $a + 4 | 0;
$151 = HEAP32[$150 >> 2] | 0;
$152 = $151 << 2;
$153 = ($151 | 0) == 0;
$$$i$38 = $153 ? 1 : $152;
if (!(HEAP32[$a + 12 >> 2] & 1)) $160 = __gcry_malloc($$$i$38) | 0; else $160 = __gcry_malloc_secure($$$i$38) | 0;
if (!$160) {
$$7 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$7 | 0;
}
$162 = HEAP32[$150 >> 2] | 0;
if (($162 | 0) > 0) {
$164 = $a + 16 | 0;
$i$012$in$i$40 = $162;
$p$011$i$41 = $160;
while (1) {
$i$012$in$i$40$looptemp = $i$012$in$i$40;
$i$012$in$i$40 = $i$012$in$i$40 + -1 | 0;
$167 = HEAP32[(HEAP32[$164 >> 2] | 0) + ($i$012$in$i$40 << 2) >> 2] | 0;
HEAP8[$p$011$i$41 >> 0] = $167 >>> 24;
HEAP8[$p$011$i$41 + 1 >> 0] = $167 >>> 16;
HEAP8[$p$011$i$41 + 2 >> 0] = $167 >>> 8;
HEAP8[$p$011$i$41 + 3 >> 0] = $167;
if (($i$012$in$i$40$looptemp | 0) <= 1) break; else $p$011$i$41 = $p$011$i$41 + 4 | 0;
}
}
if ($153) $n9$2 = 0; else {
$n9$0 = $152;
$p$21$i$45 = $160;
while (1) {
if (HEAP8[$p$21$i$45 >> 0] | 0) {
$n9$1 = $n9$0;
$p$2$lcssa$i$48 = $p$21$i$45;
break;
}
$182 = $p$21$i$45 + 1 | 0;
$n9$0 = $n9$0 + -1 | 0;
if (!$n9$0) {
$n9$1 = 0;
$p$2$lcssa$i$48 = $182;
break;
} else $p$21$i$45 = $182;
}
if (($p$2$lcssa$i$48 | 0) == ($160 | 0)) $n9$2 = $n9$1; else {
_memmove($160 | 0, $p$2$lcssa$i$48 | 0, $n9$1 | 0) | 0;
$n9$2 = $n9$1;
}
}
if (!$negative$0) if (!$n9$2) {
$extra8$0 = 0;
$n9$3 = 0;
} else {
$194 = (HEAPU8[$160 >> 0] | 0) >>> 7 & 255;
$extra8$0 = $194;
$n9$3 = $194 + $n9$2 | 0;
} else {
_twocompl($160, $n9$2);
$188 = HEAP8[$160 >> 0] | 0;
$extra8$0 = $188 << 24 >> 24 < 0 ? 0 : 2;
$n9$3 = (($188 & 255) >>> 7 & 255 ^ 1) + $n9$2 | 0;
}
$$pre = $n9$3 + 4 | 0;
if ($buffer) {
if ($$pre >>> 0 > $buflen >>> 0) {
__gcry_free($160);
$$7 = 66;
STACKTOP = sp;
return $$7 | 0;
}
HEAP8[$buffer >> 0] = $n9$3 >>> 24;
HEAP8[$buffer + 1 >> 0] = $n9$3 >>> 16;
HEAP8[$buffer + 2 >> 0] = $n9$3 >>> 8;
$207 = $buffer + 4 | 0;
HEAP8[$buffer + 3 >> 0] = $n9$3;
switch ($extra8$0 | 0) {
case 1:
{
HEAP8[$207 >> 0] = 0;
$s10$0 = $buffer + 5 | 0;
break;
}
case 0:
{
$s10$0 = $207;
break;
}
default:
{
HEAP8[$207 >> 0] = -1;
$s10$0 = $buffer + 5 | 0;
}
}
_memcpy($s10$0 | 0, $160 | 0, $n9$3 - (($extra8$0 | 0) != 0 & 1) | 0) | 0;
}
__gcry_free($160);
HEAP32[$dummy_nwritten$nwritten >> 2] = $$pre;
$$7 = 0;
STACKTOP = sp;
return $$7 | 0;
}
case 4:
{
$213 = $a + 4 | 0;
$214 = HEAP32[$213 >> 2] | 0;
$215 = $214 << 2;
$216 = ($214 | 0) == 0;
$$$i$52 = $216 ? 1 : $215;
if (!(HEAP32[$a + 12 >> 2] & 1)) $223 = __gcry_malloc($$$i$52) | 0; else $223 = __gcry_malloc_secure($$$i$52) | 0;
if (!$223) {
$$7 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$7 | 0;
}
$225 = HEAP32[$213 >> 2] | 0;
if (($225 | 0) > 0) {
$227 = $a + 16 | 0;
$i$012$in$i$54 = $225;
$p$011$i$55 = $223;
while (1) {
$i$012$in$i$54$looptemp = $i$012$in$i$54;
$i$012$in$i$54 = $i$012$in$i$54 + -1 | 0;
$230 = HEAP32[(HEAP32[$227 >> 2] | 0) + ($i$012$in$i$54 << 2) >> 2] | 0;
HEAP8[$p$011$i$55 >> 0] = $230 >>> 24;
HEAP8[$p$011$i$55 + 1 >> 0] = $230 >>> 16;
HEAP8[$p$011$i$55 + 2 >> 0] = $230 >>> 8;
HEAP8[$p$011$i$55 + 3 >> 0] = $230;
if (($i$012$in$i$54$looptemp | 0) <= 1) break; else $p$011$i$55 = $p$011$i$55 + 4 | 0;
}
}
if ($216) {
$286 = 1;
$n13$293 = 0;
label = 106;
} else {
$n13$0 = $215;
$p$21$i$59 = $223;
while (1) {
if (HEAP8[$p$21$i$59 >> 0] | 0) {
$n13$1 = $n13$0;
$p$2$lcssa$i$62 = $p$21$i$59;
break;
}
$245 = $p$21$i$59 + 1 | 0;
$n13$0 = $n13$0 + -1 | 0;
if (!$n13$0) {
$n13$1 = 0;
$p$2$lcssa$i$62 = $245;
break;
} else $p$21$i$59 = $245;
}
if (($p$2$lcssa$i$62 | 0) != ($223 | 0)) _memmove($223 | 0, $p$2$lcssa$i$62 | 0, $n13$1 | 0) | 0;
if (!$n13$1) {
$286 = 1;
$n13$293 = 0;
label = 106;
} else if ((HEAP8[$223 >> 0] | 0) < 0) {
$286 = 0;
$n13$293 = $n13$1;
label = 106;
} else {
$287 = 0;
$extra12$0 = 0;
$n13$292 = $n13$1;
}
}
if ((label | 0) == 106) {
$287 = $286;
$extra12$0 = 2;
$n13$292 = $n13$293;
}
$254 = $n13$292 << 1;
$257 = ($extra12$0 + $254 | $negative$0) + 1 | 0;
if (!$buffer) $storemerge = $257; else {
if ($257 >>> 0 > $buflen >>> 0) {
__gcry_free($223);
$$7 = 66;
STACKTOP = sp;
return $$7 | 0;
}
if (!$negative$0) $s14$0 = $buffer; else {
HEAP8[$buffer >> 0] = 45;
$s14$0 = $buffer + 1 | 0;
}
if (!$extra12$0) $s14$2$ph = $s14$0; else {
HEAP8[$s14$0 >> 0] = 48;
HEAP8[$s14$0 + 1 >> 0] = 48;
$s14$2$ph = $s14$0 + 2 | 0;
}
if ($287) $s14$2$lcssa = $s14$2$ph; else {
$i$079 = 0;
$s14$280 = $s14$2$ph;
while (1) {
$265 = HEAP8[$223 + $i$079 >> 0] | 0;
$266 = $265 & 255;
$267 = $266 >>> 4;
HEAP8[$s14$280 >> 0] = ($265 & 255) < 160 ? $267 | 48 : $267 + 55 | 0;
$274 = $266 & 15;
HEAP8[$s14$280 + 1 >> 0] = $274 >>> 0 < 10 ? $274 | 48 : $274 + 55 | 0;
$i$079 = $i$079 + 1 | 0;
if (($i$079 | 0) == ($n13$292 | 0)) break; else $s14$280 = $s14$280 + 2 | 0;
}
$s14$2$lcssa = $s14$2$ph + $254 | 0;
}
HEAP8[$s14$2$lcssa >> 0] = 0;
$storemerge = $s14$2$lcssa + 1 - $buffer | 0;
}
HEAP32[$dummy_nwritten$nwritten >> 2] = $storemerge;
__gcry_free($223);
$$7 = 0;
STACKTOP = sp;
return $$7 | 0;
}
default:
{
$$7 = 45;
STACKTOP = sp;
return $$7 | 0;
}
}
return 0;
}
function __gcry_cipher_ocb_set_nonce($c, $nonce, $noncelen) {
$c = $c | 0;
$nonce = $nonce | 0;
$noncelen = $noncelen | 0;
var $$0 = 0, $$0$lcssa$i = 0, $$06$i = 0, $$1$ph$i = 0, $$13$i = 0, $$lcssa = 0, $$lcssa97 = 0, $$lcssa98 = 0, $$lcssa99 = 0, $0 = 0, $143 = 0, $144 = 0, $145 = 0, $18 = 0, $19 = 0, $20 = 0, $208 = 0, $209 = 0, $21 = 0, $216 = 0, $217 = 0, $218 = 0, $236 = 0, $241 = 0, $243 = 0, $249 = 0, $251 = 0, $252 = 0, $253 = 0, $255 = 0, $264 = 0, $265 = 0, $271 = 0, $275 = 0, $279 = 0, $283 = 0, $287 = 0, $291 = 0, $295 = 0, $309 = 0, $312 = 0, $313 = 0, $361 = 0, $365 = 0, $374 = 0, $383 = 0, $392 = 0, $4 = 0, $401 = 0, $410 = 0, $419 = 0, $428 = 0, $437 = 0, $446 = 0, $455 = 0, $464 = 0, $473 = 0, $482 = 0, $491 = 0, $5 = 0, $507 = 0, $509 = 0, $510 = 0, $511 = 0, $516 = 0, $517 = 0, $524 = 0, $525 = 0, $527 = 0, $541 = 0, $542 = 0, $549 = 0, $550 = 0, $552 = 0, $8 = 0, $82 = 0, $9 = 0, $_vlen$0$lcssa83 = 0, $_vlen$064 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$361 = 0, $_vlen2$0$lcssa85 = 0, $_vlen2$056 = 0, $_vlen2$1 = 0, $_vlen2$3$ph = 0, $_vlen2$354 = 0, $_vptr$0$lcssa84 = 0, $_vptr$063 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$360 = 0, $_vptr1$0$lcssa86 = 0, $_vptr1$055 = 0, $_vptr1$1 = 0, $_vptr1$3$ph = 0, $_vptr1$353 = 0, $dst$0$ph$i = 0, $dst$01$i = 0, $i$069 = 0, $ktop = 0, $ldst$0$lcssa$i = 0, $ldst$04$i = 0, $lsrc$0$lcssa$i = 0, $lsrc$05$i = 0, $scevgep = 0, $scevgep$i = 0, $scevgep79 = 0, $src$0$ph$i = 0, $src$02$i = 0, $stretch = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$ktop = sp + 24 | 0;
$stretch = sp;
$0 = $c + 56 | 0;
if (!(HEAP8[$0 >> 0] & 1)) {
$$0 = 156;
STACKTOP = sp;
return $$0 | 0;
}
$4 = $c + 128 | 0;
$5 = $c + 480 | 0;
switch (HEAPU8[$5 >> 0] | 0 | 0) {
case 16:
case 12:
case 8:
break;
default:
{
$$0 = 59;
STACKTOP = sp;
return $$0 | 0;
}
}
$8 = $c + 12 | 0;
$9 = HEAP32[$8 >> 2] | 0;
if ((HEAP32[$9 + 20 >> 2] | 0) != 16) {
$$0 = 12;
STACKTOP = sp;
return $$0 | 0;
}
if (!$nonce) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
if (($noncelen & -8 | 0) != 8) {
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
};
HEAP32[$ktop >> 2] = 0;
HEAP32[$ktop + 4 >> 2] = 0;
HEAP32[$ktop + 8 >> 2] = 0;
HEAP32[$ktop + 12 >> 2] = 0;
$18 = $c + 496 | 0;
$19 = FUNCTION_TABLE_iiii[HEAP32[$9 + 36 >> 2] & 63]($18, $4, $ktop) | 0;
$20 = $c + 144 | 0;
$21 = $20;
if (!(($4 | $21) & 3)) {
HEAP32[$20 >> 2] = HEAP32[$4 >> 2];
HEAP32[$c + 148 >> 2] = HEAP32[$4 + 4 >> 2];
HEAP32[$c + 152 >> 2] = HEAP32[$c + 136 >> 2];
HEAP32[$c + 156 >> 2] = HEAP32[$c + 140 >> 2];
} else {
HEAP8[$20 >> 0] = HEAP8[$4 >> 0] | 0;
HEAP8[$c + 145 >> 0] = HEAP8[$4 + 1 >> 0] | 0;
HEAP8[$c + 146 >> 0] = HEAP8[$4 + 2 >> 0] | 0;
HEAP8[$c + 147 >> 0] = HEAP8[$4 + 3 >> 0] | 0;
HEAP8[$c + 148 >> 0] = HEAP8[$4 + 4 >> 0] | 0;
HEAP8[$c + 149 >> 0] = HEAP8[$4 + 5 >> 0] | 0;
HEAP8[$c + 150 >> 0] = HEAP8[$4 + 6 >> 0] | 0;
HEAP8[$c + 151 >> 0] = HEAP8[$4 + 7 >> 0] | 0;
HEAP8[$c + 152 >> 0] = HEAP8[$c + 136 >> 0] | 0;
HEAP8[$c + 153 >> 0] = HEAP8[$c + 137 >> 0] | 0;
HEAP8[$c + 154 >> 0] = HEAP8[$c + 138 >> 0] | 0;
HEAP8[$c + 155 >> 0] = HEAP8[$c + 139 >> 0] | 0;
HEAP8[$c + 156 >> 0] = HEAP8[$c + 140 >> 0] | 0;
HEAP8[$c + 157 >> 0] = HEAP8[$c + 141 >> 0] | 0;
HEAP8[$c + 158 >> 0] = HEAP8[$c + 142 >> 0] | 0;
HEAP8[$c + 159 >> 0] = HEAP8[$c + 143 >> 0] | 0;
}
_double_block($20);
$82 = $c + 160 | 0;
if (!(($21 | $82) & 3)) {
HEAP32[$82 >> 2] = HEAP32[$20 >> 2];
HEAP32[$82 + 4 >> 2] = HEAP32[$c + 148 >> 2];
HEAP32[$82 + 8 >> 2] = HEAP32[$c + 152 >> 2];
HEAP32[$82 + 12 >> 2] = HEAP32[$c + 156 >> 2];
} else {
HEAP8[$82 >> 0] = HEAP8[$20 >> 0] | 0;
HEAP8[$82 + 1 >> 0] = HEAP8[$c + 145 >> 0] | 0;
HEAP8[$82 + 2 >> 0] = HEAP8[$c + 146 >> 0] | 0;
HEAP8[$82 + 3 >> 0] = HEAP8[$c + 147 >> 0] | 0;
HEAP8[$82 + 4 >> 0] = HEAP8[$c + 148 >> 0] | 0;
HEAP8[$82 + 5 >> 0] = HEAP8[$c + 149 >> 0] | 0;
HEAP8[$82 + 6 >> 0] = HEAP8[$c + 150 >> 0] | 0;
HEAP8[$82 + 7 >> 0] = HEAP8[$c + 151 >> 0] | 0;
HEAP8[$82 + 8 >> 0] = HEAP8[$c + 152 >> 0] | 0;
HEAP8[$82 + 9 >> 0] = HEAP8[$c + 153 >> 0] | 0;
HEAP8[$82 + 10 >> 0] = HEAP8[$c + 154 >> 0] | 0;
HEAP8[$82 + 11 >> 0] = HEAP8[$c + 155 >> 0] | 0;
HEAP8[$82 + 12 >> 0] = HEAP8[$c + 156 >> 0] | 0;
HEAP8[$82 + 13 >> 0] = HEAP8[$c + 157 >> 0] | 0;
HEAP8[$82 + 14 >> 0] = HEAP8[$c + 158 >> 0] | 0;
HEAP8[$82 + 15 >> 0] = HEAP8[$c + 159 >> 0] | 0;
}
_double_block($82);
$i$069 = 1;
do {
$143 = $82 + ($i$069 << 4) | 0;
$144 = $i$069 + -1 | 0;
$145 = $82 + ($144 << 4) | 0;
if (!(($145 | $143) & 3)) {
HEAP32[$143 >> 2] = HEAP32[$145 >> 2];
HEAP32[$82 + ($i$069 << 4) + 4 >> 2] = HEAP32[$82 + ($144 << 4) + 4 >> 2];
HEAP32[$82 + ($i$069 << 4) + 8 >> 2] = HEAP32[$82 + ($144 << 4) + 8 >> 2];
HEAP32[$82 + ($i$069 << 4) + 12 >> 2] = HEAP32[$82 + ($144 << 4) + 12 >> 2];
} else {
HEAP8[$143 >> 0] = HEAP8[$145 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 1 >> 0] = HEAP8[$82 + ($144 << 4) + 1 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 2 >> 0] = HEAP8[$82 + ($144 << 4) + 2 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 3 >> 0] = HEAP8[$82 + ($144 << 4) + 3 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 4 >> 0] = HEAP8[$82 + ($144 << 4) + 4 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 5 >> 0] = HEAP8[$82 + ($144 << 4) + 5 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 6 >> 0] = HEAP8[$82 + ($144 << 4) + 6 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 7 >> 0] = HEAP8[$82 + ($144 << 4) + 7 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 8 >> 0] = HEAP8[$82 + ($144 << 4) + 8 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 9 >> 0] = HEAP8[$82 + ($144 << 4) + 9 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 10 >> 0] = HEAP8[$82 + ($144 << 4) + 10 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 11 >> 0] = HEAP8[$82 + ($144 << 4) + 11 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 12 >> 0] = HEAP8[$82 + ($144 << 4) + 12 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 13 >> 0] = HEAP8[$82 + ($144 << 4) + 13 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 14 >> 0] = HEAP8[$82 + ($144 << 4) + 14 >> 0] | 0;
HEAP8[$82 + ($i$069 << 4) + 15 >> 0] = HEAP8[$82 + ($144 << 4) + 15 >> 0] | 0;
}
_double_block($143);
$i$069 = $i$069 + 1 | 0;
} while (($i$069 | 0) != 16);
$208 = 16 - $noncelen | 0;
_memset($ktop | 0, 0, $208 | 0) | 0;
$209 = $ktop + $208 | 0;
if (!(($209 | $nonce) & 3)) {
if ($noncelen >>> 0 > 3) {
$216 = $noncelen + -4 | 0;
$217 = $216 & -4;
$218 = $217 + 4 | 0;
$scevgep$i = $209 + $218 | 0;
$$06$i = $noncelen;
$ldst$04$i = $209;
$lsrc$05$i = $nonce;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i = $216 - $217 | 0;
$ldst$0$lcssa$i = $scevgep$i;
$lsrc$0$lcssa$i = $nonce + $218 | 0;
} else {
$$0$lcssa$i = $noncelen;
$ldst$0$lcssa$i = $209;
$lsrc$0$lcssa$i = $nonce;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i = $noncelen;
$dst$0$ph$i = $209;
$src$0$ph$i = $nonce;
}
if ($$1$ph$i) {
$$13$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src$02$i = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
HEAP8[$ktop >> 0] = (HEAPU8[$5 >> 0] | 0) << 4;
$236 = $ktop + ($208 + -1) | 0;
HEAP8[$236 >> 0] = HEAPU8[$236 >> 0] | 0 | 1;
$241 = $ktop + 15 | 0;
$243 = HEAPU8[$241 >> 0] | 0;
HEAP8[$241 >> 0] = $243 & 192;
$249 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 36 >> 2] & 63]($18, $ktop, $ktop) | 0;
$251 = $249 >>> 0 > $19 >>> 0 ? $249 : $19;
$252 = $stretch;
$253 = $ktop;
$255 = HEAP32[$ktop >> 2] | 0;
HEAP32[$stretch >> 2] = $255;
HEAP32[$stretch + 4 >> 2] = HEAP32[$ktop + 4 >> 2];
HEAP32[$stretch + 8 >> 2] = HEAP32[$ktop + 8 >> 2];
HEAP32[$stretch + 12 >> 2] = HEAP32[$ktop + 12 >> 2];
$264 = $stretch + 16 | 0;
$265 = $ktop + 1 | 0;
if (!($265 & 3)) {
HEAP32[$264 >> 2] = HEAP32[$265 >> 2] ^ HEAP32[$ktop >> 2];
HEAP32[$stretch + 20 >> 2] = HEAP32[$ktop + 5 >> 2] ^ HEAP32[$ktop + 4 >> 2];
} else {
$271 = HEAP8[$265 >> 0] | 0;
HEAP8[$264 >> 0] = $271 ^ $255 & 255;
$275 = HEAP8[$ktop + 2 >> 0] | 0;
HEAP8[$stretch + 17 >> 0] = $275 ^ $271;
$279 = HEAP8[$ktop + 3 >> 0] | 0;
HEAP8[$stretch + 18 >> 0] = $279 ^ $275;
$283 = HEAP8[$ktop + 4 >> 0] | 0;
HEAP8[$stretch + 19 >> 0] = $283 ^ $279;
$287 = HEAP8[$ktop + 5 >> 0] | 0;
HEAP8[$stretch + 20 >> 0] = $287 ^ $283;
$291 = HEAP8[$ktop + 6 >> 0] | 0;
HEAP8[$stretch + 21 >> 0] = $291 ^ $287;
$295 = HEAP8[$ktop + 7 >> 0] | 0;
HEAP8[$stretch + 22 >> 0] = $295 ^ $291;
HEAP8[$stretch + 23 >> 0] = HEAP8[$ktop + 8 >> 0] ^ $295;
}
$309 = $c + 64 | 0;
$312 = $stretch + ($243 >>> 3 & 7) | 0;
$313 = $243 & 7;
if (!$313) {
HEAP8[$309 >> 0] = HEAP8[$312 >> 0] | 0;
HEAP8[$309 + 1 >> 0] = HEAP8[$312 + 1 >> 0] | 0;
HEAP8[$309 + 2 >> 0] = HEAP8[$312 + 2 >> 0] | 0;
HEAP8[$309 + 3 >> 0] = HEAP8[$312 + 3 >> 0] | 0;
HEAP8[$309 + 4 >> 0] = HEAP8[$312 + 4 >> 0] | 0;
HEAP8[$309 + 5 >> 0] = HEAP8[$312 + 5 >> 0] | 0;
HEAP8[$309 + 6 >> 0] = HEAP8[$312 + 6 >> 0] | 0;
HEAP8[$309 + 7 >> 0] = HEAP8[$312 + 7 >> 0] | 0;
HEAP8[$c + 72 >> 0] = HEAP8[$312 + 8 >> 0] | 0;
HEAP8[$c + 73 >> 0] = HEAP8[$312 + 9 >> 0] | 0;
HEAP8[$c + 74 >> 0] = HEAP8[$312 + 10 >> 0] | 0;
HEAP8[$c + 75 >> 0] = HEAP8[$312 + 11 >> 0] | 0;
HEAP8[$c + 76 >> 0] = HEAP8[$312 + 12 >> 0] | 0;
HEAP8[$c + 77 >> 0] = HEAP8[$312 + 13 >> 0] | 0;
HEAP8[$c + 78 >> 0] = HEAP8[$312 + 14 >> 0] | 0;
HEAP8[$c + 79 >> 0] = HEAP8[$312 + 15 >> 0] | 0;
} else {
$361 = 8 - $313 | 0;
$365 = HEAP8[$312 + 1 >> 0] | 0;
HEAP8[$309 >> 0] = ($365 & 255) >>> $361 | (HEAPU8[$312 >> 0] | 0) << $313;
$374 = HEAP8[$312 + 2 >> 0] | 0;
HEAP8[$309 + 1 >> 0] = ($374 & 255) >>> $361 | ($365 & 255) << $313;
$383 = HEAP8[$312 + 3 >> 0] | 0;
HEAP8[$309 + 2 >> 0] = ($383 & 255) >>> $361 | ($374 & 255) << $313;
$392 = HEAP8[$312 + 4 >> 0] | 0;
HEAP8[$309 + 3 >> 0] = ($392 & 255) >>> $361 | ($383 & 255) << $313;
$401 = HEAP8[$312 + 5 >> 0] | 0;
HEAP8[$309 + 4 >> 0] = ($401 & 255) >>> $361 | ($392 & 255) << $313;
$410 = HEAP8[$312 + 6 >> 0] | 0;
HEAP8[$309 + 5 >> 0] = ($410 & 255) >>> $361 | ($401 & 255) << $313;
$419 = HEAP8[$312 + 7 >> 0] | 0;
HEAP8[$309 + 6 >> 0] = ($419 & 255) >>> $361 | ($410 & 255) << $313;
$428 = HEAP8[$312 + 8 >> 0] | 0;
HEAP8[$309 + 7 >> 0] = ($428 & 255) >>> $361 | ($419 & 255) << $313;
$437 = HEAP8[$312 + 9 >> 0] | 0;
HEAP8[$c + 72 >> 0] = ($437 & 255) >>> $361 | ($428 & 255) << $313;
$446 = HEAP8[$312 + 10 >> 0] | 0;
HEAP8[$c + 73 >> 0] = ($446 & 255) >>> $361 | ($437 & 255) << $313;
$455 = HEAP8[$312 + 11 >> 0] | 0;
HEAP8[$c + 74 >> 0] = ($455 & 255) >>> $361 | ($446 & 255) << $313;
$464 = HEAP8[$312 + 12 >> 0] | 0;
HEAP8[$c + 75 >> 0] = ($464 & 255) >>> $361 | ($455 & 255) << $313;
$473 = HEAP8[$312 + 13 >> 0] | 0;
HEAP8[$c + 76 >> 0] = ($473 & 255) >>> $361 | ($464 & 255) << $313;
$482 = HEAP8[$312 + 14 >> 0] | 0;
HEAP8[$c + 77 >> 0] = ($482 & 255) >>> $361 | ($473 & 255) << $313;
$491 = HEAP8[$312 + 15 >> 0] | 0;
HEAP8[$c + 78 >> 0] = ($491 & 255) >>> $361 | ($482 & 255) << $313;
HEAP8[$c + 79 >> 0] = (HEAPU8[$312 + 16 >> 0] | 0) >>> $361 | ($491 & 255) << $313;
}
$507 = $c + 432 | 0;
$509 = HEAP8[$0 >> 0] & -15 | 2;
dest = $c + 80 | 0;
stop = dest + 36 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$507 >> 2] = 0;
HEAP32[$507 + 4 >> 2] = 0;
HEAP32[$507 + 8 >> 2] = 0;
HEAP32[$507 + 12 >> 2] = 0;
HEAP32[$507 + 16 >> 2] = 0;
HEAP32[$507 + 20 >> 2] = 0;
HEAP32[$507 + 24 >> 2] = 0;
HEAP32[$507 + 28 >> 2] = 0;
HEAP8[$0 >> 0] = $509;
$510 = $c + 464 | 0;
$511 = $4 + 353 | 0;
HEAP32[$510 >> 2] = 0;
HEAP32[$510 + 4 >> 2] = 0;
HEAP32[$510 + 8 >> 2] = 0;
HEAP32[$510 + 12 >> 2] = 0;
HEAP8[$511 >> 0] = HEAP8[$511 >> 0] & -4;
if (!($253 & 4)) {
$_vlen$0$lcssa83 = 16;
$_vptr$0$lcssa84 = $ktop;
label = 34;
} else {
$_vlen$064 = 16;
$_vptr$063 = $ktop;
while (1) {
HEAP8[$_vptr$063 >> 0] = 0;
$516 = $_vptr$063 + 1 | 0;
$517 = $_vlen$064 + -1 | 0;
if (($517 | 0) != 0 & ($516 & 7 | 0) != 0) {
$_vlen$064 = $517;
$_vptr$063 = $516;
} else {
$$lcssa98 = $516;
$$lcssa99 = $517;
break;
}
}
if ($$lcssa99 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa99;
$_vptr$3$ph = $$lcssa98;
} else {
$_vlen$0$lcssa83 = $$lcssa99;
$_vptr$0$lcssa84 = $$lcssa98;
label = 34;
}
}
if ((label | 0) == 34) {
$524 = $_vlen$0$lcssa83 + -8 | 0;
$525 = $524 & -8;
$scevgep79 = $_vptr$0$lcssa84 + ($525 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa83;
$_vptr$1 = $_vptr$0$lcssa84;
while (1) {
$527 = $_vptr$1;
HEAP32[$527 >> 2] = 0;
HEAP32[$527 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $524 - $525 | 0;
$_vptr$3$ph = $scevgep79;
}
if ($_vlen$3$ph) {
$_vlen$361 = $_vlen$3$ph;
$_vptr$360 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$360 >> 0] = 0;
$_vlen$361 = $_vlen$361 + -1 | 0;
if (!$_vlen$361) break; else $_vptr$360 = $_vptr$360 + 1 | 0;
}
}
if (!($252 & 4)) {
$_vlen2$0$lcssa85 = 24;
$_vptr1$0$lcssa86 = $stretch;
label = 42;
} else {
$_vlen2$056 = 24;
$_vptr1$055 = $stretch;
while (1) {
HEAP8[$_vptr1$055 >> 0] = 0;
$541 = $_vptr1$055 + 1 | 0;
$542 = $_vlen2$056 + -1 | 0;
if (($542 | 0) != 0 & ($541 & 7 | 0) != 0) {
$_vlen2$056 = $542;
$_vptr1$055 = $541;
} else {
$$lcssa = $541;
$$lcssa97 = $542;
break;
}
}
if ($$lcssa97 >>> 0 < 8) {
$_vlen2$3$ph = $$lcssa97;
$_vptr1$3$ph = $$lcssa;
} else {
$_vlen2$0$lcssa85 = $$lcssa97;
$_vptr1$0$lcssa86 = $$lcssa;
label = 42;
}
}
if ((label | 0) == 42) {
$549 = $_vlen2$0$lcssa85 + -8 | 0;
$550 = $549 & -8;
$scevgep = $_vptr1$0$lcssa86 + ($550 + 8) | 0;
$_vlen2$1 = $_vlen2$0$lcssa85;
$_vptr1$1 = $_vptr1$0$lcssa86;
while (1) {
$552 = $_vptr1$1;
HEAP32[$552 >> 2] = 0;
HEAP32[$552 + 4 >> 2] = 0;
$_vlen2$1 = $_vlen2$1 + -8 | 0;
if ($_vlen2$1 >>> 0 <= 7) break; else $_vptr1$1 = $_vptr1$1 + 8 | 0;
}
$_vlen2$3$ph = $549 - $550 | 0;
$_vptr1$3$ph = $scevgep;
}
if ($_vlen2$3$ph) {
$_vlen2$354 = $_vlen2$3$ph;
$_vptr1$353 = $_vptr1$3$ph;
while (1) {
HEAP8[$_vptr1$353 >> 0] = 0;
$_vlen2$354 = $_vlen2$354 + -1 | 0;
if (!$_vlen2$354) break; else $_vptr1$353 = $_vptr1$353 + 1 | 0;
}
}
if (!$251) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
___gcry_burn_stack($251 + 16 | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 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$lcssa = 0, $$042 = 0, $$1 = 0, $$223 = 0, $$3 = 0, $$4 = 0, $$lcssa = 0, $$lcssa61 = 0, $0 = 0, $10 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $109 = 0, $11 = 0, $111 = 0, $112 = 0, $119 = 0, $120 = 0, $123 = 0, $126 = 0, $13 = 0, $131 = 0, $133 = 0, $134 = 0, $137 = 0, $14 = 0, $140 = 0, $147 = 0, $148 = 0, $149 = 0, $150 = 0, $152 = 0, $153 = 0, $156 = 0, $164 = 0, $168 = 0, $169 = 0, $17 = 0, $172 = 0, $173 = 0, $176 = 0, $184 = 0, $185 = 0, $187 = 0, $188 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $197 = 0, $199 = 0, $204 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $210 = 0, $212 = 0, $215 = 0, $22 = 0, $221 = 0, $224 = 0, $225 = 0, $228 = 0, $230 = 0, $233 = 0, $238 = 0, $240 = 0, $241 = 0, $244 = 0, $247 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $271 = 0, $276 = 0, $277 = 0, $281 = 0, $29 = 0, $3 = 0, $30 = 0, $33 = 0, $36 = 0, $4 = 0, $41 = 0, $48 = 0, $50 = 0, $51 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $70 = 0, $75 = 0, $8 = 0, $81 = 0, $83 = 0, $84 = 0, $85 = 0, $87 = 0, $88 = 0, $92 = 0, $97 = 0, $__q0$0 = 0, $__q014$0 = 0, $__q030$0 = 0, $__q04$0 = 0, $__q1$0 = 0, $__q113$0 = 0, $__q129$0 = 0, $__q13$0 = 0, $__r0$0 = 0, $__r016$0 = 0, $__r032$0 = 0, $__r06$0 = 0, $__r1$0 = 0, $__r115$0 = 0, $__r131$0 = 0, $__r15$0 = 0, $_i$019 = 0, $i$0$in$i = 0, $i$033 = 0, $i$128$in = 0, $i20$024$in = 0, $i8$040 = 0, $most_significant_q_limb$1 = 0, $most_significant_q_limb$2 = 0, $most_significant_q_limb$3 = 0, $n0$0 = 0, $n0$1$lcssa = 0, $n0$138 = 0, $n0$2 = 0, $n0$3 = 0, $n0$4 = 0, $n0$5 = 0, $n022$0 = 0, $n022$2 = 0, $n1$1$lcssa = 0, $n1$132 = 0, $n1$2$lcssa = 0, $n1$227 = 0, $n124$0 = 0, $n19$0 = 0, $n19$1$lcssa = 0, $n19$139 = 0, $n19$2 = 0, $n19$3 = 0, $n19$4 = 0, $n19$5 = 0, $n225$0 = 0, $q$0 = 0, $q$1 = 0, $q$2 = 0, $q23$0 = 0, $q23$2 = 0, $q23$3 = 0, $r$0 = 0, $r$1 = 0, $r$2 = 0, $r26$0 = 0, label = 0, $i$128$in$looptemp = 0, $i20$024$in$looptemp = 0;
switch ($dsize | 0) {
case 0:
{
__gcry_divide_by_zero();
break;
}
case 1:
{
$0 = HEAP32[$dp >> 2] | 0;
$3 = HEAP32[$np + ($nsize + -1 << 2) >> 2] | 0;
$4 = $3 >>> 0 < $0 >>> 0;
$$ = $3 - ($4 ? 0 : $0) | 0;
$$4 = $4 & 1 ^ 1;
$7 = $qp + ($qextra_limbs << 2) | 0;
$8 = $nsize + -2 | 0;
if (($8 | 0) > -1) {
$10 = $0 >>> 16;
$11 = $0 & 65535;
$i$033 = $8;
$n1$132 = $$;
while (1) {
$13 = ($n1$132 >>> 0) / ($10 >>> 0) | 0;
$14 = Math_imul($13, $11) | 0;
$17 = HEAP32[$np + ($i$033 << 2) >> 2] | 0;
$19 = $17 >>> 16 | (($n1$132 >>> 0) % ($10 >>> 0) | 0) << 16;
if ($19 >>> 0 < $14 >>> 0) {
$22 = $19 + $0 | 0;
if ($22 >>> 0 >= $0 >>> 0 & $22 >>> 0 < $14 >>> 0) {
$__q1$0 = $13 + -2 | 0;
$__r1$0 = $22 + $0 | 0;
} else {
$__q1$0 = $13 + -1 | 0;
$__r1$0 = $22;
}
} else {
$__q1$0 = $13;
$__r1$0 = $19;
}
$27 = $__r1$0 - $14 | 0;
$29 = ($27 >>> 0) / ($10 >>> 0) | 0;
$30 = Math_imul($29, $11) | 0;
$33 = $17 & 65535 | (($27 >>> 0) % ($10 >>> 0) | 0) << 16;
if ($33 >>> 0 < $30 >>> 0) {
$36 = $33 + $0 | 0;
if ($36 >>> 0 >= $0 >>> 0 & $36 >>> 0 < $30 >>> 0) {
$__q0$0 = $29 + -2 | 0;
$__r0$0 = $36 + $0 | 0;
} else {
$__q0$0 = $29 + -1 | 0;
$__r0$0 = $36;
}
} else {
$__q0$0 = $29;
$__r0$0 = $33;
}
$41 = $__r0$0 - $30 | 0;
HEAP32[$7 + ($i$033 << 2) >> 2] = $__q0$0 | $__q1$0 << 16;
if (($i$033 | 0) > 0) {
$i$033 = $i$033 + -1 | 0;
$n1$132 = $41;
} else {
$n1$1$lcssa = $41;
break;
}
}
} else $n1$1$lcssa = $$;
$48 = $7 + (0 - $qextra_limbs << 2) | 0;
if (($qextra_limbs | 0) > 0) {
$50 = $0 >>> 16;
$51 = $0 & 65535;
$i$128$in = $qextra_limbs;
$n1$227 = $n1$1$lcssa;
while (1) {
$i$128$in$looptemp = $i$128$in;
$i$128$in = $i$128$in + -1 | 0;
$53 = ($n1$227 >>> 0) / ($50 >>> 0) | 0;
$54 = Math_imul($53, $51) | 0;
$55 = (($n1$227 >>> 0) % ($50 >>> 0) | 0) << 16;
if ($55 >>> 0 < $54 >>> 0) {
$58 = $55 + $0 | 0;
if ($58 >>> 0 >= $0 >>> 0 & $58 >>> 0 < $54 >>> 0) {
$__q13$0 = $53 + -2 | 0;
$__r15$0 = $58 + $0 | 0;
} else {
$__q13$0 = $53 + -1 | 0;
$__r15$0 = $58;
}
} else {
$__q13$0 = $53;
$__r15$0 = $55;
}
$63 = $__r15$0 - $54 | 0;
$65 = ($63 >>> 0) / ($50 >>> 0) | 0;
$66 = Math_imul($65, $51) | 0;
$67 = (($63 >>> 0) % ($50 >>> 0) | 0) << 16;
if ($67 >>> 0 < $66 >>> 0) {
$70 = $67 + $0 | 0;
if ($70 >>> 0 >= $0 >>> 0 & $70 >>> 0 < $66 >>> 0) {
$__q04$0 = $65 + -2 | 0;
$__r06$0 = $70 + $0 | 0;
} else {
$__q04$0 = $65 + -1 | 0;
$__r06$0 = $70;
}
} else {
$__q04$0 = $65;
$__r06$0 = $67;
}
$75 = $__r06$0 - $66 | 0;
HEAP32[$48 + ($i$128$in << 2) >> 2] = $__q04$0 | $__q13$0 << 16;
if (($i$128$in$looptemp | 0) <= 1) {
$n1$2$lcssa = $75;
break;
} else $n1$227 = $75;
}
} else $n1$2$lcssa = $n1$1$lcssa;
HEAP32[$np >> 2] = $n1$2$lcssa;
$most_significant_q_limb$3 = $$4;
return $most_significant_q_limb$3 | 0;
}
case 2:
{
$81 = $np + ($nsize + -2 << 2) | 0;
$83 = HEAP32[$dp + 4 >> 2] | 0;
$84 = HEAP32[$dp >> 2] | 0;
$85 = 0 - $84 | 0;
$87 = HEAP32[$81 + 4 >> 2] | 0;
$88 = HEAP32[$81 >> 2] | 0;
if ($87 >>> 0 < $83 >>> 0) {
$most_significant_q_limb$1 = 0;
$n0$0 = $88;
$n19$0 = $87;
} else if ($87 >>> 0 <= $83 >>> 0 & $88 >>> 0 < $84 >>> 0) {
$most_significant_q_limb$1 = 0;
$n0$0 = $88;
$n19$0 = $87;
} else {
$92 = $88 - $84 | 0;
$most_significant_q_limb$1 = 1;
$n0$0 = $92;
$n19$0 = $87 - $83 + (($92 >>> 0 > $88 >>> 0) << 31 >> 31) | 0;
}
$97 = $qextra_limbs + -3 + $nsize | 0;
if (($97 | 0) > -1) {
$101 = $84 - (($84 | 0) != 0 & 1) | 0;
$102 = $83 >>> 16;
$103 = $83 & 65535;
$104 = $84 & 65535;
$105 = $84 >>> 16;
$$042 = $81;
$i8$040 = $97;
$n0$138 = $n0$0;
$n19$139 = $n19$0;
while (1) {
if (($i8$040 | 0) < ($qextra_limbs | 0)) {
HEAP32[$$042 >> 2] = 0;
$$1 = $$042;
} else $$1 = $$042 + -4 | 0;
if (($n19$139 | 0) == ($83 | 0)) {
$109 = $n0$138 + $83 | 0;
if ($109 >>> 0 < $83 >>> 0) {
$111 = HEAP32[$$1 >> 2] | 0;
$112 = $111 + $84 | 0;
HEAP32[$qp + ($i8$040 << 2) >> 2] = -1;
$n0$5 = $112;
$n19$5 = $109 - $84 + ($112 >>> 0 < $111 >>> 0 & 1) | 0;
} else {
$n0$2 = $85;
$n19$2 = $101;
$q$0 = -1;
$r$0 = $109;
label = 40;
}
} else {
$119 = ($n19$139 >>> 0) / ($102 >>> 0) | 0;
$120 = Math_imul($119, $103) | 0;
$123 = (($n19$139 >>> 0) % ($102 >>> 0) | 0) << 16 | $n0$138 >>> 16;
if ($123 >>> 0 < $120 >>> 0) {
$126 = $123 + $83 | 0;
if ($126 >>> 0 >= $83 >>> 0 & $126 >>> 0 < $120 >>> 0) {
$__q113$0 = $119 + -2 | 0;
$__r115$0 = $126 + $83 | 0;
} else {
$__q113$0 = $119 + -1 | 0;
$__r115$0 = $126;
}
} else {
$__q113$0 = $119;
$__r115$0 = $123;
}
$131 = $__r115$0 - $120 | 0;
$133 = ($131 >>> 0) / ($102 >>> 0) | 0;
$134 = Math_imul($133, $103) | 0;
$137 = (($131 >>> 0) % ($102 >>> 0) | 0) << 16 | $n0$138 & 65535;
if ($137 >>> 0 < $134 >>> 0) {
$140 = $137 + $83 | 0;
if ($140 >>> 0 >= $83 >>> 0 & $140 >>> 0 < $134 >>> 0) {
$__q014$0 = $133 + -2 | 0;
$__r016$0 = $140 + $83 | 0;
} else {
$__q014$0 = $133 + -1 | 0;
$__r016$0 = $140;
}
} else {
$__q014$0 = $133;
$__r016$0 = $137;
}
$147 = $__q014$0 | $__q113$0 << 16;
$148 = $__q014$0 & 65535;
$149 = $147 >>> 16;
$150 = Math_imul($148, $104) | 0;
$152 = Math_imul($148, $105) | 0;
$153 = Math_imul($149, $105) | 0;
$156 = ($150 >>> 16) + $152 + (Math_imul($149, $104) | 0) | 0;
$n0$2 = $156 << 16 | $150 & 65535;
$n19$2 = ($156 >>> 0 < $152 >>> 0 ? $153 + 65536 | 0 : $153) + ($156 >>> 16) | 0;
$q$0 = $147;
$r$0 = $__r016$0 - $134 | 0;
label = 40;
}
if ((label | 0) == 40) {
label = 0;
$164 = HEAP32[$$1 >> 2] | 0;
$n0$3 = $n0$2;
$n19$3 = $n19$2;
$q$1 = $q$0;
$r$1 = $r$0;
while (1) {
if ($n19$3 >>> 0 <= $r$1 >>> 0) if (!($n0$3 >>> 0 > $164 >>> 0 & ($n19$3 | 0) == ($r$1 | 0))) {
$n0$4 = $n0$3;
$n19$4 = $n19$3;
$q$2 = $q$1;
$r$2 = $r$1;
break;
}
$168 = $q$1 + -1 | 0;
$169 = $n0$3 - $84 | 0;
$172 = $n19$3 - ($169 >>> 0 > $n0$3 >>> 0 & 1) | 0;
$173 = $r$1 + $83 | 0;
if ($173 >>> 0 < $83 >>> 0) {
$n0$4 = $169;
$n19$4 = $172;
$q$2 = $168;
$r$2 = $173;
break;
} else {
$n0$3 = $169;
$n19$3 = $172;
$q$1 = $168;
$r$1 = $173;
}
}
HEAP32[$qp + ($i8$040 << 2) >> 2] = $q$2;
$176 = $164 - $n0$4 | 0;
$n0$5 = $176;
$n19$5 = $r$2 - $n19$4 + (($176 >>> 0 > $164 >>> 0) << 31 >> 31) | 0;
}
if (($i8$040 | 0) > 0) {
$$042 = $$1;
$i8$040 = $i8$040 + -1 | 0;
$n0$138 = $n0$5;
$n19$139 = $n19$5;
} else {
$$0$lcssa = $$1;
$n0$1$lcssa = $n0$5;
$n19$1$lcssa = $n19$5;
break;
}
}
} else {
$$0$lcssa = $81;
$n0$1$lcssa = $n0$0;
$n19$1$lcssa = $n19$0;
}
HEAP32[$$0$lcssa + 4 >> 2] = $n19$1$lcssa;
HEAP32[$$0$lcssa >> 2] = $n0$1$lcssa;
$most_significant_q_limb$3 = $most_significant_q_limb$1;
return $most_significant_q_limb$3 | 0;
}
default:
{
$184 = $np + ($nsize - $dsize << 2) | 0;
$185 = $dsize + -1 | 0;
$187 = HEAP32[$dp + ($185 << 2) >> 2] | 0;
$188 = $dsize + -2 | 0;
$190 = HEAP32[$dp + ($188 << 2) >> 2] | 0;
$191 = $184 + ($185 << 2) | 0;
$192 = HEAP32[$191 >> 2] | 0;
L3 : do if ($192 >>> 0 < $187 >>> 0) {
$most_significant_q_limb$2 = 0;
$n022$0 = $192;
} else {
L5 : do if ($192 >>> 0 <= $187 >>> 0) {
$i$0$in$i = $185;
while (1) {
if (($i$0$in$i | 0) <= 0) break L5;
$i$0$in$i = $i$0$in$i + -1 | 0;
$197 = HEAP32[$184 + ($i$0$in$i << 2) >> 2] | 0;
$199 = HEAP32[$dp + ($i$0$in$i << 2) >> 2] | 0;
if (($197 | 0) != ($199 | 0)) {
$$lcssa = $197;
$$lcssa61 = $199;
break;
}
}
if ($$lcssa >>> 0 <= $$lcssa61 >>> 0) {
$most_significant_q_limb$2 = 0;
$n022$0 = $192;
break L3;
}
} while (0);
__gcry_mpih_sub_n($184, $184, $dp, $dsize) | 0;
$most_significant_q_limb$2 = 1;
$n022$0 = HEAP32[$191 >> 2] | 0;
} while (0);
$204 = $nsize + $qextra_limbs - $dsize | 0;
if (($204 | 0) <= 0) {
$most_significant_q_limb$3 = $most_significant_q_limb$2;
return $most_significant_q_limb$3 | 0;
}
$206 = $187 >>> 16;
$207 = $187 & 65535;
$208 = $190 & 65535;
$209 = $190 >>> 16;
$210 = ($188 | 0) > -1;
$$223 = $184;
$221 = $n022$0;
$i20$024$in = $204;
while (1) {
$i20$024$in$looptemp = $i20$024$in;
$i20$024$in = $i20$024$in + -1 | 0;
if (($i20$024$in$looptemp | 0) > ($qextra_limbs | 0)) {
$212 = $$223 + -4 | 0;
$$3 = $212;
$n225$0 = HEAP32[$212 + ($dsize << 2) >> 2] | 0;
} else {
if ($210) {
$215 = $$223 + 4 | 0;
$_i$019 = $188;
while (1) {
HEAP32[$215 + ($_i$019 << 2) >> 2] = HEAP32[$$223 + ($_i$019 << 2) >> 2];
if (($_i$019 | 0) > 0) $_i$019 = $_i$019 + -1 | 0; else break;
}
}
HEAP32[$$223 >> 2] = 0;
$$3 = $$223;
$n225$0 = $221;
}
L26 : do if (($221 | 0) == ($187 | 0)) $q23$2 = -1; else {
$224 = ($221 >>> 0) / ($206 >>> 0) | 0;
$225 = Math_imul($224, $207) | 0;
$228 = HEAP32[$$3 + ($185 << 2) >> 2] | 0;
$230 = $228 >>> 16 | (($221 >>> 0) % ($206 >>> 0) | 0) << 16;
if ($230 >>> 0 < $225 >>> 0) {
$233 = $230 + $187 | 0;
if ($233 >>> 0 >= $187 >>> 0 & $233 >>> 0 < $225 >>> 0) {
$__q129$0 = $224 + -2 | 0;
$__r131$0 = $233 + $187 | 0;
} else {
$__q129$0 = $224 + -1 | 0;
$__r131$0 = $233;
}
} else {
$__q129$0 = $224;
$__r131$0 = $230;
}
$238 = $__r131$0 - $225 | 0;
$240 = ($238 >>> 0) / ($206 >>> 0) | 0;
$241 = Math_imul($240, $207) | 0;
$244 = $228 & 65535 | (($238 >>> 0) % ($206 >>> 0) | 0) << 16;
if ($244 >>> 0 < $241 >>> 0) {
$247 = $244 + $187 | 0;
if ($247 >>> 0 >= $187 >>> 0 & $247 >>> 0 < $241 >>> 0) {
$__q030$0 = $240 + -2 | 0;
$__r032$0 = $247 + $187 | 0;
} else {
$__q030$0 = $240 + -1 | 0;
$__r032$0 = $247;
}
} else {
$__q030$0 = $240;
$__r032$0 = $244;
}
$254 = $__q030$0 | $__q129$0 << 16;
$255 = $__q030$0 & 65535;
$256 = $254 >>> 16;
$257 = Math_imul($255, $208) | 0;
$259 = Math_imul($255, $209) | 0;
$260 = Math_imul($256, $209) | 0;
$263 = ($257 >>> 16) + $259 + (Math_imul($256, $208) | 0) | 0;
$271 = $$3 + ($188 << 2) | 0;
$n022$2 = $263 << 16 | $257 & 65535;
$n124$0 = ($263 >>> 0 < $259 >>> 0 ? $260 + 65536 | 0 : $260) + ($263 >>> 16) | 0;
$q23$0 = $254;
$r26$0 = $__r032$0 - $241 | 0;
while (1) {
if ($n124$0 >>> 0 <= $r26$0 >>> 0) {
if (($n124$0 | 0) != ($r26$0 | 0)) {
$q23$2 = $q23$0;
break L26;
}
if ($n022$2 >>> 0 <= (HEAP32[$271 >> 2] | 0) >>> 0) {
$q23$2 = $q23$0;
break L26;
}
}
$276 = $q23$0 + -1 | 0;
$277 = $r26$0 + $187 | 0;
if ($277 >>> 0 < $187 >>> 0) {
$q23$2 = $276;
break L26;
}
$281 = $n124$0 - ($n022$2 >>> 0 < $190 >>> 0 & 1) | 0;
$n022$2 = $n022$2 - $190 | 0;
$n124$0 = $281;
$q23$0 = $276;
$r26$0 = $277;
}
} while (0);
if (($n225$0 | 0) == (__gcry_mpih_submul_1($$3, $dp, $dsize, $q23$2) | 0)) $q23$3 = $q23$2; else {
__gcry_mpih_add_n($$3, $$3, $dp, $dsize) | 0;
$q23$3 = $q23$2 + -1 | 0;
}
HEAP32[$qp + ($i20$024$in << 2) >> 2] = $q23$3;
if (($i20$024$in$looptemp | 0) <= 1) {
$most_significant_q_limb$3 = $most_significant_q_limb$2;
break;
} else {
$$223 = $$3;
$221 = HEAP32[$$3 + ($185 << 2) >> 2] | 0;
}
}
return $most_significant_q_limb$3 | 0;
}
}
return 0;
}
function __gcry_poly1305_init($ctx, $key, $keylen) {
$ctx = $ctx | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $$0 = 0, $$0$i = 0, $$lcssa = 0, $$lcssa119 = 0, $$lcssa120 = 0, $$lcssa121 = 0, $$lcssa122 = 0, $$lcssa123 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $120 = 0, $127 = 0, $131 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $18 = 0, $185 = 0, $19 = 0, $190 = 0, $2 = 0, $26 = 0, $27 = 0, $29 = 0, $311 = 0, $318 = 0, $322 = 0, $323 = 0, $330 = 0, $331 = 0, $333 = 0, $43 = 0, $58 = 0, $74 = 0, $75 = 0, $82 = 0, $83 = 0, $85 = 0, $99 = 0, $_vlen$0$i$2$i$lcssa101 = 0, $_vlen$0$i$2$i45 = 0, $_vlen$0$i$lcssa99 = 0, $_vlen$0$i55 = 0, $_vlen$0$lcssa102 = 0, $_vlen$023 = 0, $_vlen$1 = 0, $_vlen$1$i = 0, $_vlen$1$i$4$i = 0, $_vlen$3$i$6$i$ph = 0, $_vlen$3$i$6$i42 = 0, $_vlen$3$i$ph = 0, $_vlen$3$i52 = 0, $_vlen$3$ph = 0, $_vlen$321 = 0, $_vptr$0$i$3$i$lcssa100 = 0, $_vptr$0$i$3$i46 = 0, $_vptr$0$i$lcssa98 = 0, $_vptr$0$i56 = 0, $_vptr$0$lcssa103 = 0, $_vptr$022 = 0, $_vptr$1 = 0, $_vptr$1$i = 0, $_vptr$1$i$5$i = 0, $_vptr$3$i$7$i$ph = 0, $_vptr$3$i$7$i43 = 0, $_vptr$3$i$ph = 0, $_vptr$3$i53 = 0, $_vptr$3$ph = 0, $_vptr$320 = 0, $all_key$i = 0, $all_msg$i = 0, $ctx$i = 0, $ctx$i$2 = 0, $indvars$iv = 0, $keytmp = 0, $mac$i = 0, $scevgep = 0, $scevgep92 = 0, $scevgep93 = 0, $total_ctx$i = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 624 | 0;
$vararg_buffer = sp + 96 | 0;
$ctx$i$2 = sp;
$ctx$i = sp + 228 | 0;
$total_ctx$i = sp + 136 | 0;
$all_key$i = sp + 592 | 0;
$all_msg$i = sp + 336 | 0;
$mac$i = sp + 320 | 0;
$keytmp = sp + 104 | 0;
if (!(HEAP32[17539] | 0)) {
HEAP32[17539] = 1;
dest = $ctx$i;
stop = dest + 92 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
dest = $total_ctx$i;
stop = dest + 92 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
dest = $mac$i;
stop = dest + 16 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
dest = $ctx$i$2;
stop = dest + 92 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_poly1305_init($ctx$i$2, 49415, 32) | 0;
__gcry_poly1305_update($ctx$i$2, 49447, 131);
$2 = $ctx$i$2 + 3 | 0;
___gcry_burn_stack(FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$ctx$i$2 + 84 >> 2] | 0) + 12 >> 2] & 3]($2 + (0 - ($2 & 3)) | 0, $ctx$i$2 + 68 | 0, HEAP32[$ctx$i$2 + 88 >> 2] | 0, $mac$i) | 0);
if (!($ctx$i$2 & 4)) {
$_vlen$0$i$lcssa99 = 92;
$_vptr$0$i$lcssa98 = $ctx$i$2;
label = 5;
} else {
$_vlen$0$i55 = 92;
$_vptr$0$i56 = $ctx$i$2;
while (1) {
HEAP8[$_vptr$0$i56 >> 0] = 0;
$18 = $_vptr$0$i56 + 1 | 0;
$19 = $_vlen$0$i55 + -1 | 0;
if (($19 | 0) != 0 & ($18 & 7 | 0) != 0) {
$_vlen$0$i55 = $19;
$_vptr$0$i56 = $18;
} else {
$$lcssa122 = $18;
$$lcssa123 = $19;
break;
}
}
if ($$lcssa123 >>> 0 < 8) {
$_vlen$3$i$ph = $$lcssa123;
$_vptr$3$i$ph = $$lcssa122;
} else {
$_vlen$0$i$lcssa99 = $$lcssa123;
$_vptr$0$i$lcssa98 = $$lcssa122;
label = 5;
}
}
if ((label | 0) == 5) {
$26 = $_vlen$0$i$lcssa99 + -8 | 0;
$27 = $26 & -8;
$scevgep93 = $_vptr$0$i$lcssa98 + ($27 + 8) | 0;
$_vlen$1$i = $_vlen$0$i$lcssa99;
$_vptr$1$i = $_vptr$0$i$lcssa98;
while (1) {
$29 = $_vptr$1$i;
HEAP32[$29 >> 2] = 0;
HEAP32[$29 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$i$ph = $26 - $27 | 0;
$_vptr$3$i$ph = $scevgep93;
}
if ($_vlen$3$i$ph) {
$_vlen$3$i52 = $_vlen$3$i$ph;
$_vptr$3$i53 = $_vptr$3$i$ph;
while (1) {
HEAP8[$_vptr$3$i53 >> 0] = 0;
$_vlen$3$i52 = $_vlen$3$i52 + -1 | 0;
if (!$_vlen$3$i52) break; else $_vptr$3$i53 = $_vptr$3$i53 + 1 | 0;
}
}
if (!(_memcmp(49578, $mac$i, 16) | 0)) {
dest = $mac$i;
stop = dest + 16 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_poly1305_init($ctx$i, 49415, 32) | 0;
__gcry_poly1305_update($ctx$i, 49447, 32);
__gcry_poly1305_update($ctx$i, 49479, 64);
__gcry_poly1305_update($ctx$i, 49543, 16);
__gcry_poly1305_update($ctx$i, 49559, 8);
__gcry_poly1305_update($ctx$i, 49567, 4);
__gcry_poly1305_update($ctx$i, 49571, 2);
__gcry_poly1305_update($ctx$i, 49573, 1);
__gcry_poly1305_update($ctx$i, 49574, 1);
__gcry_poly1305_update($ctx$i, 49575, 1);
__gcry_poly1305_update($ctx$i, 49576, 1);
__gcry_poly1305_update($ctx$i, 49577, 1);
$43 = $ctx$i + 3 | 0;
___gcry_burn_stack(FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$ctx$i + 84 >> 2] | 0) + 12 >> 2] & 3]($43 + (0 - ($43 & 3)) | 0, $ctx$i + 68 | 0, HEAP32[$ctx$i + 88 >> 2] | 0, $mac$i) | 0);
if (!(_memcmp(49578, $mac$i, 16) | 0)) {
dest = $mac$i;
stop = dest + 16 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
dest = $ctx$i$2;
stop = dest + 92 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_poly1305_init($ctx$i$2, 49594, 32) | 0;
__gcry_poly1305_update($ctx$i$2, 49626, 16);
$58 = $ctx$i$2 + 3 | 0;
___gcry_burn_stack(FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$ctx$i$2 + 84 >> 2] | 0) + 12 >> 2] & 3]($58 + (0 - ($58 & 3)) | 0, $ctx$i$2 + 68 | 0, HEAP32[$ctx$i$2 + 88 >> 2] | 0, $mac$i) | 0);
if (!($ctx$i$2 & 4)) {
$_vlen$0$i$2$i$lcssa101 = 92;
$_vptr$0$i$3$i$lcssa100 = $ctx$i$2;
label = 15;
} else {
$_vlen$0$i$2$i45 = 92;
$_vptr$0$i$3$i46 = $ctx$i$2;
while (1) {
HEAP8[$_vptr$0$i$3$i46 >> 0] = 0;
$74 = $_vptr$0$i$3$i46 + 1 | 0;
$75 = $_vlen$0$i$2$i45 + -1 | 0;
if (($75 | 0) != 0 & ($74 & 7 | 0) != 0) {
$_vlen$0$i$2$i45 = $75;
$_vptr$0$i$3$i46 = $74;
} else {
$$lcssa120 = $74;
$$lcssa121 = $75;
break;
}
}
if ($$lcssa121 >>> 0 < 8) {
$_vlen$3$i$6$i$ph = $$lcssa121;
$_vptr$3$i$7$i$ph = $$lcssa120;
} else {
$_vlen$0$i$2$i$lcssa101 = $$lcssa121;
$_vptr$0$i$3$i$lcssa100 = $$lcssa120;
label = 15;
}
}
if ((label | 0) == 15) {
$82 = $_vlen$0$i$2$i$lcssa101 + -8 | 0;
$83 = $82 & -8;
$scevgep92 = $_vptr$0$i$3$i$lcssa100 + ($83 + 8) | 0;
$_vlen$1$i$4$i = $_vlen$0$i$2$i$lcssa101;
$_vptr$1$i$5$i = $_vptr$0$i$3$i$lcssa100;
while (1) {
$85 = $_vptr$1$i$5$i;
HEAP32[$85 >> 2] = 0;
HEAP32[$85 + 4 >> 2] = 0;
$_vlen$1$i$4$i = $_vlen$1$i$4$i + -8 | 0;
if ($_vlen$1$i$4$i >>> 0 <= 7) break; else $_vptr$1$i$5$i = $_vptr$1$i$5$i + 8 | 0;
}
$_vlen$3$i$6$i$ph = $82 - $83 | 0;
$_vptr$3$i$7$i$ph = $scevgep92;
}
if ($_vlen$3$i$6$i$ph) {
$_vlen$3$i$6$i42 = $_vlen$3$i$6$i$ph;
$_vptr$3$i$7$i43 = $_vptr$3$i$7$i$ph;
while (1) {
HEAP8[$_vptr$3$i$7$i43 >> 0] = 0;
$_vlen$3$i$6$i42 = $_vlen$3$i$6$i42 + -1 | 0;
if (!$_vlen$3$i$6$i42) break; else $_vptr$3$i$7$i43 = $_vptr$3$i$7$i43 + 1 | 0;
}
}
if (!(_memcmp(49642, $mac$i, 16) | 0)) {
__gcry_poly1305_init($total_ctx$i, 49658, 32) | 0;
$99 = $ctx$i$2 + 3 | 0;
$103 = $99 + (0 - ($99 & 3)) | 0;
$104 = $ctx$i$2 + 84 | 0;
$105 = $ctx$i$2 + 68 | 0;
$106 = $ctx$i$2 + 88 | 0;
$107 = $ctx$i$2 + 8 | 0;
$108 = $ctx$i$2 + 16 | 0;
$109 = $ctx$i$2 + 24 | 0;
$110 = $ctx$i$2 + 32 | 0;
$111 = $ctx$i$2 + 40 | 0;
$112 = $ctx$i$2 + 48 | 0;
$113 = $ctx$i$2 + 56 | 0;
$114 = $ctx$i$2 + 64 | 0;
$115 = $ctx$i$2 + 72 | 0;
$116 = $ctx$i$2 + 80 | 0;
$117 = $106 + 1 | 0;
$118 = $106 + 2 | 0;
$119 = $106 + 3 | 0;
$indvars$iv = 0;
do {
$120 = $indvars$iv & 255;
_memset($all_key$i | 0, $120 | 0, 32) | 0;
if ($indvars$iv) _memset($all_msg$i | 0, $120 | 0, $indvars$iv | 0) | 0;
dest = $ctx$i$2;
stop = dest + 92 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_poly1305_init($ctx$i$2, $all_key$i, 32) | 0;
__gcry_poly1305_update($ctx$i$2, $all_msg$i, $indvars$iv);
___gcry_burn_stack(FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$104 >> 2] | 0) + 12 >> 2] & 3]($103, $105, HEAP32[$106 >> 2] | 0, $mac$i) | 0);
$127 = $ctx$i$2;
HEAP32[$127 >> 2] = 0;
HEAP32[$127 + 4 >> 2] = 0;
$131 = $107;
HEAP32[$131 >> 2] = 0;
HEAP32[$131 + 4 >> 2] = 0;
$135 = $108;
HEAP32[$135 >> 2] = 0;
HEAP32[$135 + 4 >> 2] = 0;
$139 = $109;
HEAP32[$139 >> 2] = 0;
HEAP32[$139 + 4 >> 2] = 0;
$143 = $110;
HEAP32[$143 >> 2] = 0;
HEAP32[$143 + 4 >> 2] = 0;
$147 = $111;
HEAP32[$147 >> 2] = 0;
HEAP32[$147 + 4 >> 2] = 0;
$151 = $112;
HEAP32[$151 >> 2] = 0;
HEAP32[$151 + 4 >> 2] = 0;
$155 = $113;
HEAP32[$155 >> 2] = 0;
HEAP32[$155 + 4 >> 2] = 0;
$159 = $114;
HEAP32[$159 >> 2] = 0;
HEAP32[$159 + 4 >> 2] = 0;
$163 = $115;
HEAP32[$163 >> 2] = 0;
HEAP32[$163 + 4 >> 2] = 0;
$167 = $116;
HEAP32[$167 >> 2] = 0;
HEAP32[$167 + 4 >> 2] = 0;
HEAP8[$106 >> 0] = 0;
HEAP8[$117 >> 0] = 0;
HEAP8[$118 >> 0] = 0;
HEAP8[$119 >> 0] = 0;
__gcry_poly1305_update($total_ctx$i, $mac$i, 16);
$indvars$iv = $indvars$iv + 1 | 0;
} while (($indvars$iv | 0) != 256);
$171 = $total_ctx$i + 3 | 0;
___gcry_burn_stack(FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$total_ctx$i + 84 >> 2] | 0) + 12 >> 2] & 3]($171 + (0 - ($171 & 3)) | 0, $total_ctx$i + 68 | 0, HEAP32[$total_ctx$i + 88 >> 2] | 0, $mac$i) | 0);
$185 = (_memcmp(49690, $mac$i, 16) | 0) == 0;
$$0$i = $185 ? 0 : 49706;
} else $$0$i = 49778;
} else $$0$i = 49754;
} else $$0$i = 49730;
HEAP32[17540] = $$0$i;
if ($$0$i) {
HEAP32[$vararg_buffer >> 2] = $$0$i;
__gcry_log_error(49802, $vararg_buffer);
}
}
if (($keylen | 0) != 32) {
$$0 = 44;
STACKTOP = sp;
return $$0 | 0;
}
if (HEAP32[17540] | 0) {
$$0 = 50;
STACKTOP = sp;
return $$0 | 0;
}
$190 = $ctx + 84 | 0;
HEAP32[$190 >> 2] = 12504;
if (!($key & 3)) {
HEAP32[$keytmp >> 2] = HEAP32[$key >> 2];
HEAP32[$keytmp + 4 >> 2] = HEAP32[$key + 4 >> 2];
HEAP32[$keytmp + 8 >> 2] = HEAP32[$key + 8 >> 2];
HEAP32[$keytmp + 12 >> 2] = HEAP32[$key + 12 >> 2];
HEAP32[$keytmp + 16 >> 2] = HEAP32[$key + 16 >> 2];
HEAP32[$keytmp + 20 >> 2] = HEAP32[$key + 20 >> 2];
HEAP32[$keytmp + 24 >> 2] = HEAP32[$key + 24 >> 2];
HEAP32[$keytmp + 28 >> 2] = HEAP32[$key + 28 >> 2];
$318 = 12504;
} else {
HEAP8[$keytmp >> 0] = HEAP8[$key >> 0] | 0;
HEAP8[$keytmp + 1 >> 0] = HEAP8[$key + 1 >> 0] | 0;
HEAP8[$keytmp + 2 >> 0] = HEAP8[$key + 2 >> 0] | 0;
HEAP8[$keytmp + 3 >> 0] = HEAP8[$key + 3 >> 0] | 0;
HEAP8[$keytmp + 4 >> 0] = HEAP8[$key + 4 >> 0] | 0;
HEAP8[$keytmp + 5 >> 0] = HEAP8[$key + 5 >> 0] | 0;
HEAP8[$keytmp + 6 >> 0] = HEAP8[$key + 6 >> 0] | 0;
HEAP8[$keytmp + 7 >> 0] = HEAP8[$key + 7 >> 0] | 0;
HEAP8[$keytmp + 8 >> 0] = HEAP8[$key + 8 >> 0] | 0;
HEAP8[$keytmp + 9 >> 0] = HEAP8[$key + 9 >> 0] | 0;
HEAP8[$keytmp + 10 >> 0] = HEAP8[$key + 10 >> 0] | 0;
HEAP8[$keytmp + 11 >> 0] = HEAP8[$key + 11 >> 0] | 0;
HEAP8[$keytmp + 12 >> 0] = HEAP8[$key + 12 >> 0] | 0;
HEAP8[$keytmp + 13 >> 0] = HEAP8[$key + 13 >> 0] | 0;
HEAP8[$keytmp + 14 >> 0] = HEAP8[$key + 14 >> 0] | 0;
HEAP8[$keytmp + 15 >> 0] = HEAP8[$key + 15 >> 0] | 0;
HEAP8[$keytmp + 16 >> 0] = HEAP8[$key + 16 >> 0] | 0;
HEAP8[$keytmp + 17 >> 0] = HEAP8[$key + 17 >> 0] | 0;
HEAP8[$keytmp + 18 >> 0] = HEAP8[$key + 18 >> 0] | 0;
HEAP8[$keytmp + 19 >> 0] = HEAP8[$key + 19 >> 0] | 0;
HEAP8[$keytmp + 20 >> 0] = HEAP8[$key + 20 >> 0] | 0;
HEAP8[$keytmp + 21 >> 0] = HEAP8[$key + 21 >> 0] | 0;
HEAP8[$keytmp + 22 >> 0] = HEAP8[$key + 22 >> 0] | 0;
HEAP8[$keytmp + 23 >> 0] = HEAP8[$key + 23 >> 0] | 0;
HEAP8[$keytmp + 24 >> 0] = HEAP8[$key + 24 >> 0] | 0;
HEAP8[$keytmp + 25 >> 0] = HEAP8[$key + 25 >> 0] | 0;
HEAP8[$keytmp + 26 >> 0] = HEAP8[$key + 26 >> 0] | 0;
HEAP8[$keytmp + 27 >> 0] = HEAP8[$key + 27 >> 0] | 0;
HEAP8[$keytmp + 28 >> 0] = HEAP8[$key + 28 >> 0] | 0;
HEAP8[$keytmp + 29 >> 0] = HEAP8[$key + 29 >> 0] | 0;
HEAP8[$keytmp + 30 >> 0] = HEAP8[$key + 30 >> 0] | 0;
HEAP8[$keytmp + 31 >> 0] = HEAP8[$key + 31 >> 0] | 0;
$318 = HEAP32[$190 >> 2] | 0;
}
$311 = $ctx + 3 | 0;
HEAP32[$ctx + 88 >> 2] = 0;
FUNCTION_TABLE_vii[HEAP32[$318 + 4 >> 2] & 7]($311 + (0 - ($311 & 3)) | 0, $keytmp);
if (!($keytmp & 4)) {
$_vlen$0$lcssa102 = 32;
$_vptr$0$lcssa103 = $keytmp;
label = 36;
} else {
$_vlen$023 = 32;
$_vptr$022 = $keytmp;
while (1) {
HEAP8[$_vptr$022 >> 0] = 0;
$322 = $_vptr$022 + 1 | 0;
$323 = $_vlen$023 + -1 | 0;
if (($323 | 0) != 0 & ($322 & 7 | 0) != 0) {
$_vlen$023 = $323;
$_vptr$022 = $322;
} else {
$$lcssa = $322;
$$lcssa119 = $323;
break;
}
}
if ($$lcssa119 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa119;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa102 = $$lcssa119;
$_vptr$0$lcssa103 = $$lcssa;
label = 36;
}
}
if ((label | 0) == 36) {
$330 = $_vlen$0$lcssa102 + -8 | 0;
$331 = $330 & -8;
$scevgep = $_vptr$0$lcssa103 + ($331 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa102;
$_vptr$1 = $_vptr$0$lcssa103;
while (1) {
$333 = $_vptr$1;
HEAP32[$333 >> 2] = 0;
HEAP32[$333 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $330 - $331 | 0;
$_vptr$3$ph = $scevgep;
}
if (!$_vlen$3$ph) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
$_vlen$321 = $_vlen$3$ph;
$_vptr$320 = $_vptr$3$ph;
}
while (1) {
HEAP8[$_vptr$320 >> 0] = 0;
$_vlen$321 = $_vlen$321 + -1 | 0;
if (!$_vlen$321) {
$$0 = 0;
break;
} else $_vptr$320 = $_vptr$320 + 1 | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_vcontrol($cmd, $arg_ptr) {
$cmd = $cmd | 0;
$arg_ptr = $arg_ptr | 0;
var $$7 = 0, $100 = 0, $103 = 0, $105 = 0, $109 = 0, $117 = 0, $124 = 0, $125 = 0, $131 = 0, $132 = 0, $138 = 0, $139 = 0, $145 = 0, $146 = 0, $152 = 0, $153 = 0, $159 = 0, $160 = 0, $166 = 0, $167 = 0, $173 = 0, $174 = 0, $185 = 0, $186 = 0, $192 = 0, $193 = 0, $199 = 0, $200 = 0, $21 = 0, $211 = 0, $212 = 0, $218 = 0, $219 = 0, $22 = 0, $229 = 0, $230 = 0, $239 = 0, $240 = 0, $247 = 0, $248 = 0, $32 = 0, $33 = 0, $39 = 0, $40 = 0, $48 = 0, $49 = 0, $6 = 0, $68 = 0, $69 = 0, $7 = 0, $75 = 0, $76 = 0, $84 = 0, $85 = 0, $87 = 0, $89 = 0, $90 = 0, $95 = 0, $afeature$i = 0, $i$01$i = 0, $not$ = 0, $rc$2 = 0, $s$0$i = 0, $vararg_buffer = 0, $vararg_buffer22 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0, $vararg_buffer40 = 0, $vararg_buffer47 = 0, $vararg_buffer51 = 0, $vararg_buffer54 = 0, $vararg_buffer59 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$vararg_buffer59 = sp + 88 | 0;
$vararg_buffer54 = sp + 80 | 0;
$vararg_buffer51 = sp + 72 | 0;
$vararg_buffer47 = sp + 64 | 0;
$vararg_buffer40 = sp + 48 | 0;
$vararg_buffer30 = sp + 24 | 0;
$vararg_buffer26 = sp + 16 | 0;
$vararg_buffer22 = sp + 8 | 0;
$vararg_buffer = sp;
$afeature$i = sp + 96 | 0;
do switch ($cmd | 0) {
case 31:
{
__gcry_private_enable_m_guard();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 44:
{
__gcry_set_preferred_rng_type(0);
__gcry_enable_quick_random_gen();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 51:
{
$rc$2 = (__gcry_random_is_faked() | 0) != 0 & 1;
STACKTOP = sp;
return $rc$2 | 0;
}
case 13:
{
__gcry_random_dump_stats();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 14:
{
__gcry_secmem_dump_stats();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 30:
{
_global_init();
__gcry_secmem_init(0);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 37:
{
_global_init();
HEAP32[17479] = 1;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 24:
{
_global_init();
$6 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$7 = HEAP32[$6 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $6 + 4;
__gcry_secmem_init($7);
$rc$2 = (__gcry_secmem_get_flags() | 0) >>> 2 & 1;
STACKTOP = sp;
return $rc$2 | 0;
}
case 25:
{
_global_init();
__gcry_secmem_term();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 27:
{
__gcry_set_preferred_rng_type(0);
__gcry_secmem_set_flags(__gcry_secmem_get_flags() | 0 | 1);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 28:
{
__gcry_set_preferred_rng_type(0);
__gcry_secmem_set_flags(__gcry_secmem_get_flags() | 0 | 2);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 29:
{
__gcry_set_preferred_rng_type(0);
__gcry_secmem_set_flags((__gcry_secmem_get_flags() | 0) & -3);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 22:
{
_global_init();
__gcry_secure_random_alloc();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 45:
{
__gcry_set_preferred_rng_type(0);
$21 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$22 = HEAP32[$21 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $21 + 4;
__gcry_set_random_seed_file($22);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 46:
{
__gcry_set_preferred_rng_type(0);
if (!(HEAP32[17478] | 0)) _global_init();
if (!(__gcry_fips_is_operational() | 0)) {
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
__gcry_update_random_seed_file();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 19:
{
__gcry_set_preferred_rng_type(0);
$32 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$33 = HEAP32[$32 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $32 + 4;
__gcry_set_log_verbosity($33);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 20:
{
$39 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$40 = HEAP32[$39 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $39 + 4;
HEAP32[17480] = HEAP32[17480] | $40;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 21:
{
$48 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$49 = HEAP32[$48 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $48 + 4;
HEAP32[17480] = HEAP32[17480] & ~$49;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 36:
{
_global_init();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 40:
{
$rc$2 = HEAP32[17478] | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 39:
{
$rc$2 = HEAP32[17481] | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 38:
{
if (HEAP32[17481] | 0) {
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
_global_init();
__gcry_random_initialize(0);
HEAP32[17481] = 1;
if (!(HEAP32[17478] | 0)) _global_init();
__gcry_fips_is_operational() | 0;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 47:
{
__gcry_set_preferred_rng_type(0);
_global_init();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 48:
{
__gcry_set_preferred_rng_type(0);
__gcry_random_initialize(1);
if (!(HEAP32[17478] | 0)) _global_init();
if (!(__gcry_fips_is_operational() | 0)) {
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
__gcry_fast_random_poll();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 52:
{
$rc$2 = 16777276;
STACKTOP = sp;
return $rc$2 | 0;
}
case 49:
{
__gcry_set_preferred_rng_type(0);
$68 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$69 = HEAP32[$68 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $68 + 4;
__gcry_set_random_daemon_socket($69);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 50:
{
__gcry_set_preferred_rng_type(0);
__gcry_random_initialize(1);
$75 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$76 = HEAP32[$75 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $75 + 4;
__gcry_use_random_daemon(($76 | 0) != 0 & 1) | 0;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 70:
{
__gcry_random_close_fds();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 53:
{
$84 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$85 = HEAP32[$84 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $84 + 4;
__gcry_set_preferred_rng_type(0);
$87 = ($85 | 0) != 0 ? 28 : 27;
HEAP32[$vararg_buffer >> 2] = 21865;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21879, $vararg_buffer) | 0;
HEAP32[$vararg_buffer22 >> 2] = 21905;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21892, $vararg_buffer22) | 0;
HEAP32[$vararg_buffer26 >> 2] = 21930;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21917, $vararg_buffer26) | 0;
HEAP32[$vararg_buffer30 >> 2] = 21951;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21938, $vararg_buffer30) | 0;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21965, sp + 32 | 0) | 0;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21981, sp + 40 | 0) | 0;
HEAP32[$vararg_buffer40 >> 2] = __gcry_mpi_get_hw_config() | 0;
FUNCTION_TABLE_iiii[$87 & 63]($85, 21993, $vararg_buffer40) | 0;
$89 = __gcry_get_hw_features() | 0;
FUNCTION_TABLE_iiii[$87 & 63]($85, 22006, sp + 56 | 0) | 0;
$90 = __gcry_enum_hw_features(0, $afeature$i) | 0;
if ($90) {
$95 = $90;
$i$01$i = 0;
do {
if (HEAP32[$afeature$i >> 2] & $89) {
HEAP32[$vararg_buffer47 >> 2] = $95;
FUNCTION_TABLE_iiii[$87 & 63]($85, 22015, $vararg_buffer47) | 0;
}
$i$01$i = $i$01$i + 1 | 0;
$95 = __gcry_enum_hw_features($i$01$i, $afeature$i) | 0;
} while (($95 | 0) != 0);
}
FUNCTION_TABLE_iiii[$87 & 63]($85, 22019, $vararg_buffer51) | 0;
$100 = (__gcry_fips_mode() | 0) != 0;
$103 = (__gcry_enforced_fips_mode() | 0) != 0;
HEAP32[$vararg_buffer54 >> 2] = $100 ? 121 : 110;
HEAP32[$vararg_buffer54 + 4 >> 2] = $103 ? 121 : 110;
FUNCTION_TABLE_iiii[$87 & 63]($85, 22021, $vararg_buffer54) | 0;
$105 = __gcry_get_rng_type(0) | 0;
switch ($105 | 0) {
case 1:
{
$s$0$i = 22073;
break;
}
case 2:
{
$s$0$i = 22068;
break;
}
case 3:
{
$s$0$i = 22061;
break;
}
default:
__gcry_bug(22039, 321, 22048);
}
HEAP32[$vararg_buffer59 >> 2] = $s$0$i;
HEAP32[$vararg_buffer59 + 4 >> 2] = $105;
FUNCTION_TABLE_iiii[$87 & 63]($85, 22082, $vararg_buffer59) | 0;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 54:
{
__gcry_set_preferred_rng_type(0);
$rc$2 = (__gcry_fips_test_operational() | 0) != 0 & 1;
STACKTOP = sp;
return $rc$2 | 0;
}
case 55:
{
if (!(__gcry_fips_mode() | 0)) {
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
$109 = __gcry_is_fips_mode_inactive() | 0;
$rc$2 = (HEAP32[17479] | $109 | 0) == 0 & 1;
STACKTOP = sp;
return $rc$2 | 0;
}
case 56:
{
__gcry_set_preferred_rng_type(0);
if (!(HEAP32[17478] | 0)) {
HEAP32[17482] = 1;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
if (!(__gcry_fips_test_error_or_operational() | 0)) {
$117 = __gcry_fips_is_operational() | 0;
$not$ = ($117 | 0) != 0;
$$7 = $not$ & 1;
STACKTOP = sp;
return $$7 | 0;
}
__gcry_fips_run_selftests(1) | 0;
$117 = __gcry_fips_is_operational() | 0;
$not$ = ($117 | 0) != 0;
$$7 = $not$ & 1;
STACKTOP = sp;
return $$7 | 0;
}
case 57:
{
_global_init();
$rc$2 = __gcry_fips_run_selftests(1) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 58:
{
$124 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$125 = HEAP32[$124 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $124 + 4;
$131 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$132 = HEAP32[$131 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $131 + 4;
$138 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$139 = HEAP32[$138 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $138 + 4;
$145 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$146 = HEAP32[$145 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $145 + 4;
$152 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$153 = HEAP32[$152 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $152 + 4;
$159 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$160 = HEAP32[$159 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $159 + 4;
$166 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$167 = HEAP32[$166 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $166 + 4;
$173 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$174 = HEAP32[$173 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $173 + 4;
if (!(HEAP32[17478] | 0)) _global_init();
if (!(__gcry_fips_is_operational() | 0)) {
$rc$2 = 176;
STACKTOP = sp;
return $rc$2 | 0;
}
$rc$2 = __gcry_random_init_external_test($125, $132, $139, $146, $153, $160, $167, $174) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 59:
{
$185 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$186 = HEAP32[$185 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $185 + 4;
$192 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$193 = HEAP32[$192 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $192 + 4;
$199 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$200 = HEAP32[$199 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $199 + 4;
if (!(HEAP32[17478] | 0)) _global_init();
if (!(__gcry_fips_is_operational() | 0)) {
$rc$2 = 176;
STACKTOP = sp;
return $rc$2 | 0;
}
$rc$2 = __gcry_random_run_external_test($186, $193, $200) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 60:
{
$211 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$212 = HEAP32[$211 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $211 + 4;
__gcry_random_deinit_external_test($212);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 61:
{
$218 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$219 = HEAP32[$218 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $218 + 4;
switch ($219 | 0) {
case 30111:
{
$rc$2 = _gpgrt_lock_init(1044) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 30112:
{
$rc$2 = _gpgrt_lock_lock(1044) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 30113:
{
$rc$2 = _gpgrt_lock_unlock(1044) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 30114:
{
$rc$2 = _gpgrt_lock_destroy(1044) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
default:
{
$rc$2 = 61;
STACKTOP = sp;
return $rc$2 | 0;
}
}
break;
}
case 63:
{
$229 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$230 = HEAP32[$229 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $229 + 4;
$rc$2 = __gcry_disable_hw_feature($230) | 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 64:
{
if (HEAP32[17478] | 0) {
$rc$2 = 1;
STACKTOP = sp;
return $rc$2 | 0;
}
__gcry_set_preferred_rng_type(0);
__gcry_set_enforced_fips_mode();
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 65:
{
$239 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$240 = HEAP32[$239 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $239 + 4;
if (($240 | 0) <= 0) {
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
__gcry_set_preferred_rng_type($240);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 66:
{
$247 = (HEAP32[$arg_ptr >> 2] | 0) + (4 - 1) & ~(4 - 1);
$248 = HEAP32[$247 >> 2] | 0;
HEAP32[$arg_ptr >> 2] = $247 + 4;
if (!$248) {
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
HEAP32[$248 >> 2] = __gcry_get_rng_type(HEAP32[17478] ^ 1) | 0;
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 67:
{
__gcry_set_preferred_rng_type(0);
__gcry_secmem_set_flags(__gcry_secmem_get_flags() | 0 | 8);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 68:
{
__gcry_set_preferred_rng_type(0);
__gcry_secmem_set_flags(__gcry_secmem_get_flags() | 0 | 16);
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
case 72:
case 71:
{
$rc$2 = 69;
STACKTOP = sp;
return $rc$2 | 0;
}
case 62:
case 23:
{
$rc$2 = 0;
STACKTOP = sp;
return $rc$2 | 0;
}
default:
{
__gcry_set_preferred_rng_type(0);
$rc$2 = 61;
STACKTOP = sp;
return $rc$2 | 0;
}
} while (0);
return 0;
}
function __gcry_sexp_sprint($list, $mode, $buffer, $maxlength) {
$list = $list | 0;
$mode = $mode | 0;
$buffer = $buffer | 0;
$maxlength = $maxlength | 0;
var $$0$lcssa$i = 0, $$01$i$5 = 0, $$0113$i = 0, $$018$i = 0, $$0212$i = 0, $$110$i = 0, $$139$i = 0, $$3 = 0, $$not = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $11 = 0, $113 = 0, $118 = 0, $120 = 0, $126 = 0, $133 = 0, $14 = 0, $17 = 0, $2 = 0, $21 = 0, $22 = 0, $25 = 0, $28 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $40 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $6 = 0, $62 = 0, $63 = 0, $67 = 0, $69 = 0, $7 = 0, $71 = 0, $72 = 0, $73 = 0, $8 = 0, $count$011$i = 0, $count$1$i = 0, $d$0$lcssa = 0, $d$0$ph$be = 0, $d$0$ph62 = 0, $d$044 = 0, $d$044$lcssa139 = 0, $d$044$lcssa140 = 0, $d$10 = 0, $d$1126 = 0, $d$3 = 0, $d$4 = 0, $d$5 = 0, $d$6$52 = 0, $d$7 = 0, $i$02$i = 0, $indent$0$ph$be = 0, $indent$0$ph65 = 0, $len$0$lcssa = 0, $len$0$ph$be = 0, $len$0$ph64 = 0, $len$048 = 0, $len$048$lcssa131 = 0, $len$048$lcssa132 = 0, $len$2 = 0, $len$5 = 0, $len$624 = 0, $len$627 = 0, $maybe_token$020$i = 0, $maybe_token$1$i = 0, $maybe_token$1$i$lcssa = 0, $nn$0 = 0, $numbuf = 0, $p$0$lcssa$i = 0, $p$014$i = 0, $p$1$i = 0, $s$0$ph$be = 0, $s$0$ph63 = 0, $s$019$i = 0, $s$047 = 0, $s$047$lcssa135 = 0, $s$047$lcssa136 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$numbuf = sp + 20 | 0;
$1 = ($list | 0) != 0 ? $list : 22191;
$2 = HEAP8[$1 >> 0] | 0;
L1 : do if (!($2 << 24 >> 24)) {
$d$0$lcssa = $buffer;
$len$0$lcssa = 0;
} else {
$4 = ($mode | 0) == 3;
$5 = ($buffer | 0) != 0;
$6 = ($buffer | 0) == 0;
$7 = ($mode | 0) != 1;
$8 = ($mode | 0) == 1;
$$not = $7 ^ 1;
$133 = $2;
$d$0$ph62 = $buffer;
$indent$0$ph65 = 0;
$len$0$ph64 = 0;
$s$0$ph63 = $1;
L3 : while (1) {
$10 = $133;
$d$044 = $d$0$ph62;
$len$048 = $len$0$ph64;
$s$047 = $s$0$ph63;
L5 : while (1) {
switch ($10 & 255 | 0) {
case 3:
{
$d$044$lcssa139 = $d$044;
$len$048$lcssa131 = $len$048;
$s$047$lcssa135 = $s$047;
label = 5;
break L5;
break;
}
case 4:
{
$d$044$lcssa140 = $d$044;
$len$048$lcssa132 = $len$048;
$s$047$lcssa136 = $s$047;
label = 14;
break L5;
break;
}
case 1:
break;
default:
{
label = 80;
break L3;
}
}
$33 = $s$047 + 1 | 0;
$34 = HEAPU8[$33 >> 0] | HEAPU8[$33 + 1 >> 0] << 8;
$35 = $s$047 + 3 | 0;
$36 = $34 & 65535;
if ($4) {
$37 = $34 << 16 >> 16 == 0;
L10 : do if ($37) {
$69 = 1;
$nn$0 = 2;
} else {
$38 = HEAP8[$35 >> 0] | 0;
L12 : do if ($38 << 24 >> 24 >= 1) {
$$018$i = $36;
$40 = $38;
$maybe_token$020$i = 1;
$s$019$i = $35;
while (1) {
if (($40 & 255) < 32 | ($40 + -127 & 255) < 34) if (!(_memchr(22194, $40 & 255, 10) | 0)) break L12;
if (!$maybe_token$020$i) $maybe_token$1$i = 0; else if (($40 + -48 & 255) < 10 | (($40 & -33) + -65 & 255) < 26) $maybe_token$1$i = $maybe_token$020$i; else {
$51 = (_memchr(22204, $40 & 255, 9) | 0) == 0;
$maybe_token$1$i = $51 ? 0 : $maybe_token$020$i;
}
$52 = $s$019$i + 1 | 0;
$53 = $$018$i + -1 | 0;
if (!$53) {
$maybe_token$1$i$lcssa = $maybe_token$1$i;
break;
}
$$018$i = $53;
$40 = HEAP8[$52 >> 0] | 0;
$maybe_token$020$i = $maybe_token$1$i;
$s$019$i = $52;
}
if (($38 + -48 & 255) > 9 & ($maybe_token$1$i$lcssa | 0) != 0) {
$69 = 2;
$nn$0 = $36;
break L10;
} else {
$$110$i = $36;
$$139$i = $35;
$56 = $38;
$count$011$i = 2;
}
while (1) {
L26 : do switch ($56 & 255 | 0) {
case 92:
case 39:
case 34:
case 13:
case 12:
case 10:
case 11:
case 9:
case 8:
{
$count$1$i = $count$011$i + 2 | 0;
break;
}
default:
if (($56 & 255) < 32 | ($56 + -127 & 255) < 34) {
$count$1$i = $count$011$i + 4 | 0;
break L26;
} else {
$count$1$i = $count$011$i + 1 | 0;
break L26;
}
} while (0);
$62 = $$110$i + -1 | 0;
$63 = $$139$i + 1 | 0;
if (!$62) {
$69 = 1;
$nn$0 = $count$1$i;
break L10;
}
$$110$i = $62;
$$139$i = $63;
$56 = HEAP8[$63 >> 0] | 0;
$count$011$i = $count$1$i;
}
} while (0);
$69 = 0;
$nn$0 = ($36 << 1) + 2 | 0;
} while (0);
$67 = $nn$0 + $len$048 | 0;
if ($5) {
if ($67 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
label = 89;
break L3;
}
switch ($69 | 0) {
case 1:
{
if ($d$044) {
$71 = $d$044 + 1 | 0;
HEAP8[$d$044 >> 0] = 34;
L50 : do if ($37) $p$0$lcssa$i = $71; else {
$$0113$i = $36;
$$0212$i = $35;
$p$014$i = $71;
while (1) {
$72 = HEAP8[$$0212$i >> 0] | 0;
$73 = $72 & 255;
L53 : do switch ($73 | 0) {
case 8:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 98;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 9:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 116;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 11:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 118;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 10:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 110;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 12:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 102;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 13:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 114;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 34:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 34;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 39:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 39;
$p$1$i = $p$014$i + 2 | 0;
break;
}
case 92:
{
HEAP8[$p$014$i >> 0] = 92;
HEAP8[$p$014$i + 1 >> 0] = 92;
$p$1$i = $p$014$i + 2 | 0;
break;
}
default:
if (($72 & 255) < 32 | ($72 + -127 & 255) < 34) {
HEAP32[$vararg_buffer >> 2] = $73;
_sprintf($p$014$i, 22140, $vararg_buffer) | 0;
$p$1$i = $p$014$i + 4 | 0;
break L53;
} else {
HEAP8[$p$014$i >> 0] = $72;
$p$1$i = $p$014$i + 1 | 0;
break L53;
}
} while (0);
$$0113$i = $$0113$i + -1 | 0;
if (!$$0113$i) {
$p$0$lcssa$i = $p$1$i;
break L50;
} else {
$$0212$i = $$0212$i + 1 | 0;
$p$014$i = $p$1$i;
}
}
} while (0);
HEAP8[$p$0$lcssa$i >> 0] = 34;
}
break;
}
case 2:
{
if ($d$044) _memcpy($d$044 | 0, $35 | 0, $36 | 0) | 0;
break;
}
default:
if ($d$044) {
$101 = $d$044 + 1 | 0;
HEAP8[$d$044 >> 0] = 35;
if ($37) $$0$lcssa$i = $101; else {
$102 = $36 << 1;
$$01$i$5 = $101;
$i$02$i = 0;
while (1) {
HEAP32[$vararg_buffer1 >> 2] = HEAPU8[$35 + $i$02$i >> 0];
_sprintf($$01$i$5, 22213, $vararg_buffer1) | 0;
$i$02$i = $i$02$i + 1 | 0;
if (($i$02$i | 0) == ($36 | 0)) break; else $$01$i$5 = $$01$i$5 + 2 | 0;
}
$$0$lcssa$i = $d$044 + ($102 | 1) | 0;
}
HEAP8[$$0$lcssa$i >> 0] = 35;
}
}
$d$7 = $d$044 + $nn$0 | 0;
} else $d$7 = $d$044;
if ((HEAP8[$35 + $36 >> 0] | 0) == 4) {
$d$10 = $d$7;
$len$5 = $67;
} else {
$113 = $67 + 1 | 0;
if ($5) {
if ($113 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
label = 89;
break L3;
}
HEAP8[$d$7 >> 0] = 32;
$d$10 = $d$7 + 1 | 0;
$len$5 = $113;
} else {
$d$10 = $d$7;
$len$5 = $113;
}
}
} else {
HEAP32[$vararg_buffer4 >> 2] = $36;
_sprintf($numbuf, 22218, $vararg_buffer4) | 0;
$118 = $36 + $len$048 + (_strlen($numbuf) | 0) | 0;
if ($6) {
$d$10 = $d$044;
$len$5 = $118;
} else {
if ($118 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
label = 89;
break L3;
}
$120 = ___stpcpy($d$044, $numbuf) | 0;
_memcpy($120 | 0, $35 | 0, $36 | 0) | 0;
$d$10 = $120 + $36 | 0;
$len$5 = $118;
}
}
$s$047 = $35 + $36 | 0;
$10 = HEAP8[$s$047 >> 0] | 0;
if (!($10 << 24 >> 24)) {
$d$0$lcssa = $d$10;
$len$0$lcssa = $len$5;
break L1;
} else {
$d$044 = $d$10;
$len$048 = $len$5;
}
}
L80 : do if ((label | 0) == 5) {
label = 0;
$11 = $s$047$lcssa135 + 1 | 0;
if ($7) $len$2 = $indent$0$ph65 + $len$048$lcssa131 + (($indent$0$ph65 | 0) != 0 & 1) | 0; else $len$2 = $len$048$lcssa131;
$14 = $len$2 + 1 | 0;
if ($6) $d$4 = $d$044$lcssa139; else {
if ($14 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
label = 89;
break L3;
}
if (($indent$0$ph65 | 0) == 0 | $$not) $d$3 = $d$044$lcssa139; else {
$17 = $d$044$lcssa139 + 1 | 0;
HEAP8[$d$044$lcssa139 >> 0] = 10;
if (($indent$0$ph65 | 0) > 0) {
_memset($17 | 0, 32, $indent$0$ph65 | 0) | 0;
$d$3 = $17 + $indent$0$ph65 | 0;
} else $d$3 = $17;
}
HEAP8[$d$3 >> 0] = 40;
$d$4 = $d$3 + 1 | 0;
}
$d$0$ph$be = $d$4;
$indent$0$ph$be = $indent$0$ph65 + 1 | 0;
$len$0$ph$be = $14;
$s$0$ph$be = $11;
} else if ((label | 0) == 14) {
label = 0;
$21 = $s$047$lcssa136 + 1 | 0;
$22 = $len$048$lcssa132 + 1 | 0;
if ($5) {
if ($22 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
label = 89;
break L3;
}
HEAP8[$d$044$lcssa140 >> 0] = 41;
$d$5 = $d$044$lcssa140 + 1 | 0;
} else $d$5 = $d$044$lcssa140;
$25 = $indent$0$ph65 + -1 | 0;
if ($8) {
$d$0$ph$be = $d$5;
$indent$0$ph$be = $25;
$len$0$ph$be = $22;
$s$0$ph$be = $21;
} else {
switch (HEAP8[$21 >> 0] | 0) {
case 0:
case 3:
{
$d$0$ph$be = $d$5;
$indent$0$ph$be = $25;
$len$0$ph$be = $22;
$s$0$ph$be = $21;
break L80;
break;
}
default:
{}
}
$28 = $len$048$lcssa132 + 2 + $25 | 0;
if ($5) {
if ($28 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
label = 89;
break L3;
}
HEAP8[$d$5 >> 0] = 10;
$d$6$52 = $d$5 + 1 | 0;
if (($indent$0$ph65 | 0) > 1) {
_memset($d$6$52 | 0, 32, $25 | 0) | 0;
$d$0$ph$be = $d$5 + $indent$0$ph65 | 0;
$indent$0$ph$be = $25;
$len$0$ph$be = $28;
$s$0$ph$be = $21;
} else {
$d$0$ph$be = $d$6$52;
$indent$0$ph$be = $25;
$len$0$ph$be = $28;
$s$0$ph$be = $21;
}
} else {
$d$0$ph$be = $d$5;
$indent$0$ph$be = $25;
$len$0$ph$be = $28;
$s$0$ph$be = $21;
}
}
} while (0);
$133 = HEAP8[$s$0$ph$be >> 0] | 0;
if (!($133 << 24 >> 24)) {
$d$0$lcssa = $d$0$ph$be;
$len$0$lcssa = $len$0$ph$be;
break L1;
} else {
$d$0$ph62 = $d$0$ph$be;
$indent$0$ph65 = $indent$0$ph$be;
$len$0$ph64 = $len$0$ph$be;
$s$0$ph63 = $s$0$ph$be;
}
}
if ((label | 0) == 80) __gcry_bug(22147, 2008, 22222); else if ((label | 0) == 89) {
STACKTOP = sp;
return $$3 | 0;
}
} while (0);
do if (($mode | 0) == 1) if (!$buffer) {
$len$624 = $len$0$lcssa;
label = 88;
} else {
$d$1126 = $d$0$lcssa;
$len$627 = $len$0$lcssa;
} else {
$126 = $len$0$lcssa + 1 | 0;
if (!$buffer) {
$len$624 = $126;
label = 88;
} else if ($126 >>> 0 < $maxlength >>> 0) {
HEAP8[$d$0$lcssa >> 0] = 10;
$d$1126 = $d$0$lcssa + 1 | 0;
$len$627 = $126;
break;
} else {
$$3 = 0;
STACKTOP = sp;
return $$3 | 0;
}
} while (0);
if ((label | 0) == 88) {
$$3 = $len$624 + 1 | 0;
STACKTOP = sp;
return $$3 | 0;
}
if ($len$627 >>> 0 >= $maxlength >>> 0) {
$$3 = 0;
STACKTOP = sp;
return $$3 | 0;
}
HEAP8[$d$1126 >> 0] = 0;
$$3 = $len$627;
STACKTOP = sp;
return $$3 | 0;
}
function _twofish_encrypt($context, $out, $in) {
$context = $context | 0;
$out = $out | 0;
$in = $in | 0;
var $116 = 0, $117 = 0, $125 = 0, $126 = 0, $128 = 0, $132 = 0, $166 = 0, $167 = 0, $175 = 0, $176 = 0, $178 = 0, $182 = 0, $19 = 0, $216 = 0, $217 = 0, $225 = 0, $226 = 0, $228 = 0, $232 = 0, $266 = 0, $267 = 0, $275 = 0, $276 = 0, $278 = 0, $282 = 0, $316 = 0, $317 = 0, $325 = 0, $326 = 0, $328 = 0, $332 = 0, $366 = 0, $367 = 0, $375 = 0, $376 = 0, $378 = 0, $382 = 0, $40 = 0, $416 = 0, $417 = 0, $425 = 0, $426 = 0, $428 = 0, $432 = 0, $466 = 0, $467 = 0, $475 = 0, $476 = 0, $478 = 0, $482 = 0, $516 = 0, $517 = 0, $525 = 0, $526 = 0, $528 = 0, $532 = 0, $566 = 0, $567 = 0, $575 = 0, $576 = 0, $578 = 0, $582 = 0, $616 = 0, $617 = 0, $625 = 0, $626 = 0, $628 = 0, $632 = 0, $666 = 0, $667 = 0, $675 = 0, $676 = 0, $678 = 0, $682 = 0, $716 = 0, $717 = 0, $725 = 0, $726 = 0, $728 = 0, $732 = 0, $766 = 0, $767 = 0, $775 = 0, $776 = 0, $778 = 0, $782 = 0, $816 = 0, $817 = 0, $82 = 0, $825 = 0, $826 = 0, $828 = 0, $832 = 0, $866 = 0, $867 = 0, $875 = 0, $882 = 0, $885 = 0, $898 = 0, $912 = 0, $926 = 0;
$19 = ((HEAPU8[$in + 2 >> 0] | 0) << 16 | (HEAPU8[$in + 3 >> 0] | 0) << 24 | (HEAPU8[$in + 1 >> 0] | 0) << 8 | (HEAPU8[$in >> 0] | 0)) ^ HEAP32[$context + 4096 >> 2];
$40 = ((HEAPU8[$in + 6 >> 0] | 0) << 16 | (HEAPU8[$in + 7 >> 0] | 0) << 24 | (HEAPU8[$in + 5 >> 0] | 0) << 8 | (HEAPU8[$in + 4 >> 0] | 0)) ^ HEAP32[$context + 4100 >> 2];
$82 = ((HEAPU8[$in + 14 >> 0] | 0) << 16 | (HEAPU8[$in + 15 >> 0] | 0) << 24 | (HEAPU8[$in + 13 >> 0] | 0) << 8 | (HEAPU8[$in + 12 >> 0] | 0)) ^ HEAP32[$context + 4108 >> 2];
$116 = HEAP32[$context + 2048 + (($40 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($40 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($40 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($40 >>> 24 << 2) >> 2];
$117 = $116 + (HEAP32[$context + 1024 + (($19 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($19 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($19 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($19 >>> 24 << 2) >> 2]) | 0;
$125 = ((HEAPU8[$in + 10 >> 0] | 0) << 16 | (HEAPU8[$in + 11 >> 0] | 0) << 24 | (HEAPU8[$in + 9 >> 0] | 0) << 8 | (HEAPU8[$in + 8 >> 0] | 0)) ^ HEAP32[$context + 4104 >> 2] ^ $117 + (HEAP32[$context + 4128 >> 2] | 0);
$126 = $125 >>> 1;
$128 = $126 | $125 << 31;
$132 = $116 + (HEAP32[$context + 4132 >> 2] | 0) + $117 ^ ($82 << 1 | $82 >>> 31);
$166 = HEAP32[$context + 2048 + (($132 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($132 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($132 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($132 >>> 24 << 2) >> 2];
$167 = $166 + (HEAP32[$context + 1024 + (($125 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($126 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($125 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($128 >>> 24 << 2) >> 2]) | 0;
$175 = $167 + (HEAP32[$context + 4136 >> 2] | 0) ^ $19;
$176 = $175 >>> 1;
$178 = $176 | $175 << 31;
$182 = $166 + (HEAP32[$context + 4140 >> 2] | 0) + $167 ^ ($40 << 1 | $40 >>> 31);
$216 = HEAP32[$context + 2048 + (($182 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($182 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($182 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($182 >>> 24 << 2) >> 2];
$217 = $216 + (HEAP32[$context + 1024 + (($175 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($176 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($175 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($178 >>> 24 << 2) >> 2]) | 0;
$225 = $217 + (HEAP32[$context + 4144 >> 2] | 0) ^ $128;
$226 = $225 >>> 1;
$228 = $226 | $225 << 31;
$232 = $216 + (HEAP32[$context + 4148 >> 2] | 0) + $217 ^ ($132 << 1 | $132 >>> 31);
$266 = HEAP32[$context + 2048 + (($232 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($232 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($232 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($232 >>> 24 << 2) >> 2];
$267 = $266 + (HEAP32[$context + 1024 + (($225 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($226 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($225 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($228 >>> 24 << 2) >> 2]) | 0;
$275 = $267 + (HEAP32[$context + 4152 >> 2] | 0) ^ $178;
$276 = $275 >>> 1;
$278 = $276 | $275 << 31;
$282 = $266 + (HEAP32[$context + 4156 >> 2] | 0) + $267 ^ ($182 << 1 | $182 >>> 31);
$316 = HEAP32[$context + 2048 + (($282 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($282 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($282 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($282 >>> 24 << 2) >> 2];
$317 = $316 + (HEAP32[$context + 1024 + (($275 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($276 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($275 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($278 >>> 24 << 2) >> 2]) | 0;
$325 = $317 + (HEAP32[$context + 4160 >> 2] | 0) ^ $228;
$326 = $325 >>> 1;
$328 = $326 | $325 << 31;
$332 = $316 + (HEAP32[$context + 4164 >> 2] | 0) + $317 ^ ($232 << 1 | $232 >>> 31);
$366 = HEAP32[$context + 2048 + (($332 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($332 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($332 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($332 >>> 24 << 2) >> 2];
$367 = $366 + (HEAP32[$context + 1024 + (($325 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($326 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($325 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($328 >>> 24 << 2) >> 2]) | 0;
$375 = $367 + (HEAP32[$context + 4168 >> 2] | 0) ^ $278;
$376 = $375 >>> 1;
$378 = $376 | $375 << 31;
$382 = $366 + (HEAP32[$context + 4172 >> 2] | 0) + $367 ^ ($282 << 1 | $282 >>> 31);
$416 = HEAP32[$context + 2048 + (($382 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($382 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($382 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($382 >>> 24 << 2) >> 2];
$417 = $416 + (HEAP32[$context + 1024 + (($375 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($376 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($375 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($378 >>> 24 << 2) >> 2]) | 0;
$425 = $417 + (HEAP32[$context + 4176 >> 2] | 0) ^ $328;
$426 = $425 >>> 1;
$428 = $426 | $425 << 31;
$432 = $416 + (HEAP32[$context + 4180 >> 2] | 0) + $417 ^ ($332 << 1 | $332 >>> 31);
$466 = HEAP32[$context + 2048 + (($432 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($432 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($432 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($432 >>> 24 << 2) >> 2];
$467 = $466 + (HEAP32[$context + 1024 + (($425 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($426 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($425 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($428 >>> 24 << 2) >> 2]) | 0;
$475 = $467 + (HEAP32[$context + 4184 >> 2] | 0) ^ $378;
$476 = $475 >>> 1;
$478 = $476 | $475 << 31;
$482 = $466 + (HEAP32[$context + 4188 >> 2] | 0) + $467 ^ ($382 << 1 | $382 >>> 31);
$516 = HEAP32[$context + 2048 + (($482 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($482 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($482 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($482 >>> 24 << 2) >> 2];
$517 = $516 + (HEAP32[$context + 1024 + (($475 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($476 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($475 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($478 >>> 24 << 2) >> 2]) | 0;
$525 = $517 + (HEAP32[$context + 4192 >> 2] | 0) ^ $428;
$526 = $525 >>> 1;
$528 = $526 | $525 << 31;
$532 = $516 + (HEAP32[$context + 4196 >> 2] | 0) + $517 ^ ($432 << 1 | $432 >>> 31);
$566 = HEAP32[$context + 2048 + (($532 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($532 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($532 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($532 >>> 24 << 2) >> 2];
$567 = $566 + (HEAP32[$context + 1024 + (($525 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($526 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($525 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($528 >>> 24 << 2) >> 2]) | 0;
$575 = $567 + (HEAP32[$context + 4200 >> 2] | 0) ^ $478;
$576 = $575 >>> 1;
$578 = $576 | $575 << 31;
$582 = $566 + (HEAP32[$context + 4204 >> 2] | 0) + $567 ^ ($482 << 1 | $482 >>> 31);
$616 = HEAP32[$context + 2048 + (($582 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($582 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($582 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($582 >>> 24 << 2) >> 2];
$617 = $616 + (HEAP32[$context + 1024 + (($575 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($576 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($575 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($578 >>> 24 << 2) >> 2]) | 0;
$625 = $617 + (HEAP32[$context + 4208 >> 2] | 0) ^ $528;
$626 = $625 >>> 1;
$628 = $626 | $625 << 31;
$632 = $616 + (HEAP32[$context + 4212 >> 2] | 0) + $617 ^ ($532 << 1 | $532 >>> 31);
$666 = HEAP32[$context + 2048 + (($632 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($632 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($632 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($632 >>> 24 << 2) >> 2];
$667 = $666 + (HEAP32[$context + 1024 + (($625 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($626 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($625 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($628 >>> 24 << 2) >> 2]) | 0;
$675 = $667 + (HEAP32[$context + 4216 >> 2] | 0) ^ $578;
$676 = $675 >>> 1;
$678 = $676 | $675 << 31;
$682 = $666 + (HEAP32[$context + 4220 >> 2] | 0) + $667 ^ ($582 << 1 | $582 >>> 31);
$716 = HEAP32[$context + 2048 + (($682 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($682 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($682 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($682 >>> 24 << 2) >> 2];
$717 = $716 + (HEAP32[$context + 1024 + (($675 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($676 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($675 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($678 >>> 24 << 2) >> 2]) | 0;
$725 = $717 + (HEAP32[$context + 4224 >> 2] | 0) ^ $628;
$726 = $725 >>> 1;
$728 = $726 | $725 << 31;
$732 = $716 + (HEAP32[$context + 4228 >> 2] | 0) + $717 ^ ($632 << 1 | $632 >>> 31);
$766 = HEAP32[$context + 2048 + (($732 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($732 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($732 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($732 >>> 24 << 2) >> 2];
$767 = $766 + (HEAP32[$context + 1024 + (($725 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($726 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($725 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($728 >>> 24 << 2) >> 2]) | 0;
$775 = $767 + (HEAP32[$context + 4232 >> 2] | 0) ^ $678;
$776 = $775 >>> 1;
$778 = $776 | $775 << 31;
$782 = $766 + (HEAP32[$context + 4236 >> 2] | 0) + $767 ^ ($682 << 1 | $682 >>> 31);
$816 = HEAP32[$context + 2048 + (($782 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($782 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($782 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($782 >>> 24 << 2) >> 2];
$817 = $816 + (HEAP32[$context + 1024 + (($775 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($776 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($775 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($778 >>> 24 << 2) >> 2]) | 0;
$825 = $817 + (HEAP32[$context + 4240 >> 2] | 0) ^ $728;
$826 = $825 >>> 1;
$828 = $826 | $825 << 31;
$832 = $816 + (HEAP32[$context + 4244 >> 2] | 0) + $817 ^ ($732 << 1 | $732 >>> 31);
$866 = HEAP32[$context + 2048 + (($832 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($832 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($832 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($832 >>> 24 << 2) >> 2];
$867 = $866 + (HEAP32[$context + 1024 + (($825 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + (($826 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($825 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($828 >>> 24 << 2) >> 2]) | 0;
$875 = $867 + (HEAP32[$context + 4248 >> 2] | 0) ^ $778;
$882 = $866 + (HEAP32[$context + 4252 >> 2] | 0) + $867 ^ ($782 << 1 | $782 >>> 31);
$885 = HEAP32[$context + 4112 >> 2] ^ $828;
HEAP8[$out + 3 >> 0] = $885 >>> 24;
HEAP8[$out + 2 >> 0] = $885 >>> 16;
HEAP8[$out + 1 >> 0] = $885 >>> 8;
HEAP8[$out >> 0] = $885;
$898 = HEAP32[$context + 4116 >> 2] ^ $832;
HEAP8[$out + 7 >> 0] = $898 >>> 24;
HEAP8[$out + 6 >> 0] = $898 >>> 16;
HEAP8[$out + 5 >> 0] = $898 >>> 8;
HEAP8[$out + 4 >> 0] = $898;
$912 = HEAP32[$context + 4120 >> 2] ^ ($875 >>> 1 | $875 << 31);
HEAP8[$out + 11 >> 0] = $912 >>> 24;
HEAP8[$out + 10 >> 0] = $912 >>> 16;
HEAP8[$out + 9 >> 0] = $912 >>> 8;
HEAP8[$out + 8 >> 0] = $912;
$926 = $882 ^ HEAP32[$context + 4124 >> 2];
HEAP8[$out + 15 >> 0] = $926 >>> 24;
HEAP8[$out + 14 >> 0] = $926 >>> 16;
HEAP8[$out + 13 >> 0] = $926 >>> 8;
HEAP8[$out + 12 >> 0] = $926;
return 36;
}
function _twofish_decrypt($context, $out, $in) {
$context = $context | 0;
$out = $out | 0;
$in = $in | 0;
var $116 = 0, $117 = 0, $122 = 0, $123 = 0, $125 = 0, $132 = 0, $166 = 0, $167 = 0, $172 = 0, $173 = 0, $175 = 0, $182 = 0, $19 = 0, $216 = 0, $217 = 0, $222 = 0, $223 = 0, $225 = 0, $232 = 0, $266 = 0, $267 = 0, $272 = 0, $273 = 0, $275 = 0, $282 = 0, $316 = 0, $317 = 0, $322 = 0, $323 = 0, $325 = 0, $332 = 0, $366 = 0, $367 = 0, $372 = 0, $373 = 0, $375 = 0, $382 = 0, $40 = 0, $416 = 0, $417 = 0, $422 = 0, $423 = 0, $425 = 0, $432 = 0, $466 = 0, $467 = 0, $472 = 0, $473 = 0, $475 = 0, $482 = 0, $516 = 0, $517 = 0, $522 = 0, $523 = 0, $525 = 0, $532 = 0, $566 = 0, $567 = 0, $572 = 0, $573 = 0, $575 = 0, $582 = 0, $61 = 0, $616 = 0, $617 = 0, $622 = 0, $623 = 0, $625 = 0, $632 = 0, $666 = 0, $667 = 0, $672 = 0, $673 = 0, $675 = 0, $682 = 0, $716 = 0, $717 = 0, $722 = 0, $723 = 0, $725 = 0, $732 = 0, $766 = 0, $767 = 0, $772 = 0, $773 = 0, $775 = 0, $782 = 0, $816 = 0, $817 = 0, $822 = 0, $823 = 0, $825 = 0, $832 = 0, $866 = 0, $867 = 0, $872 = 0, $882 = 0, $885 = 0, $898 = 0, $912 = 0, $926 = 0;
$19 = ((HEAPU8[$in + 2 >> 0] | 0) << 16 | (HEAPU8[$in + 3 >> 0] | 0) << 24 | (HEAPU8[$in + 1 >> 0] | 0) << 8 | (HEAPU8[$in >> 0] | 0)) ^ HEAP32[$context + 4112 >> 2];
$40 = ((HEAPU8[$in + 6 >> 0] | 0) << 16 | (HEAPU8[$in + 7 >> 0] | 0) << 24 | (HEAPU8[$in + 5 >> 0] | 0) << 8 | (HEAPU8[$in + 4 >> 0] | 0)) ^ HEAP32[$context + 4116 >> 2];
$61 = ((HEAPU8[$in + 10 >> 0] | 0) << 16 | (HEAPU8[$in + 11 >> 0] | 0) << 24 | (HEAPU8[$in + 9 >> 0] | 0) << 8 | (HEAPU8[$in + 8 >> 0] | 0)) ^ HEAP32[$context + 4120 >> 2];
$116 = HEAP32[$context + 2048 + (($40 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($40 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($40 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + ($40 >>> 24 << 2) >> 2];
$117 = $116 + (HEAP32[$context + 1024 + (($19 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($19 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($19 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($19 >>> 24 << 2) >> 2]) | 0;
$122 = ((HEAPU8[$in + 14 >> 0] | 0) << 16 | (HEAPU8[$in + 15 >> 0] | 0) << 24 | (HEAPU8[$in + 13 >> 0] | 0) << 8 | (HEAPU8[$in + 12 >> 0] | 0)) ^ HEAP32[$context + 4124 >> 2] ^ (HEAP32[$context + 4252 >> 2] | 0) + $116 + $117;
$123 = $122 >>> 1;
$125 = $123 | $122 << 31;
$132 = $117 + (HEAP32[$context + 4248 >> 2] | 0) ^ ($61 << 1 | $61 >>> 31);
$166 = HEAP32[$context + 2048 + (($122 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($123 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($122 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($125 >>> 24 << 2) >> 2];
$167 = $166 + (HEAP32[$context + 1024 + (($132 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($132 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($132 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($132 >>> 24 << 2) >> 2]) | 0;
$172 = (HEAP32[$context + 4244 >> 2] | 0) + $166 + $167 ^ $40;
$173 = $172 >>> 1;
$175 = $173 | $172 << 31;
$182 = $167 + (HEAP32[$context + 4240 >> 2] | 0) ^ ($19 << 1 | $19 >>> 31);
$216 = HEAP32[$context + 2048 + (($172 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($173 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($172 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($175 >>> 24 << 2) >> 2];
$217 = $216 + (HEAP32[$context + 1024 + (($182 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($182 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($182 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($182 >>> 24 << 2) >> 2]) | 0;
$222 = (HEAP32[$context + 4236 >> 2] | 0) + $216 + $217 ^ $125;
$223 = $222 >>> 1;
$225 = $223 | $222 << 31;
$232 = $217 + (HEAP32[$context + 4232 >> 2] | 0) ^ ($132 << 1 | $132 >>> 31);
$266 = HEAP32[$context + 2048 + (($222 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($223 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($222 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($225 >>> 24 << 2) >> 2];
$267 = $266 + (HEAP32[$context + 1024 + (($232 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($232 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($232 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($232 >>> 24 << 2) >> 2]) | 0;
$272 = (HEAP32[$context + 4228 >> 2] | 0) + $266 + $267 ^ $175;
$273 = $272 >>> 1;
$275 = $273 | $272 << 31;
$282 = $267 + (HEAP32[$context + 4224 >> 2] | 0) ^ ($182 << 1 | $182 >>> 31);
$316 = HEAP32[$context + 2048 + (($272 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($273 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($272 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($275 >>> 24 << 2) >> 2];
$317 = $316 + (HEAP32[$context + 1024 + (($282 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($282 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($282 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($282 >>> 24 << 2) >> 2]) | 0;
$322 = (HEAP32[$context + 4220 >> 2] | 0) + $316 + $317 ^ $225;
$323 = $322 >>> 1;
$325 = $323 | $322 << 31;
$332 = $317 + (HEAP32[$context + 4216 >> 2] | 0) ^ ($232 << 1 | $232 >>> 31);
$366 = HEAP32[$context + 2048 + (($322 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($323 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($322 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($325 >>> 24 << 2) >> 2];
$367 = $366 + (HEAP32[$context + 1024 + (($332 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($332 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($332 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($332 >>> 24 << 2) >> 2]) | 0;
$372 = (HEAP32[$context + 4212 >> 2] | 0) + $366 + $367 ^ $275;
$373 = $372 >>> 1;
$375 = $373 | $372 << 31;
$382 = $367 + (HEAP32[$context + 4208 >> 2] | 0) ^ ($282 << 1 | $282 >>> 31);
$416 = HEAP32[$context + 2048 + (($372 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($373 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($372 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($375 >>> 24 << 2) >> 2];
$417 = $416 + (HEAP32[$context + 1024 + (($382 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($382 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($382 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($382 >>> 24 << 2) >> 2]) | 0;
$422 = (HEAP32[$context + 4204 >> 2] | 0) + $416 + $417 ^ $325;
$423 = $422 >>> 1;
$425 = $423 | $422 << 31;
$432 = $417 + (HEAP32[$context + 4200 >> 2] | 0) ^ ($332 << 1 | $332 >>> 31);
$466 = HEAP32[$context + 2048 + (($422 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($423 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($422 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($425 >>> 24 << 2) >> 2];
$467 = $466 + (HEAP32[$context + 1024 + (($432 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($432 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($432 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($432 >>> 24 << 2) >> 2]) | 0;
$472 = (HEAP32[$context + 4196 >> 2] | 0) + $466 + $467 ^ $375;
$473 = $472 >>> 1;
$475 = $473 | $472 << 31;
$482 = $467 + (HEAP32[$context + 4192 >> 2] | 0) ^ ($382 << 1 | $382 >>> 31);
$516 = HEAP32[$context + 2048 + (($472 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($473 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($472 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($475 >>> 24 << 2) >> 2];
$517 = $516 + (HEAP32[$context + 1024 + (($482 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($482 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($482 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($482 >>> 24 << 2) >> 2]) | 0;
$522 = (HEAP32[$context + 4188 >> 2] | 0) + $516 + $517 ^ $425;
$523 = $522 >>> 1;
$525 = $523 | $522 << 31;
$532 = $517 + (HEAP32[$context + 4184 >> 2] | 0) ^ ($432 << 1 | $432 >>> 31);
$566 = HEAP32[$context + 2048 + (($522 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($523 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($522 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($525 >>> 24 << 2) >> 2];
$567 = $566 + (HEAP32[$context + 1024 + (($532 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($532 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($532 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($532 >>> 24 << 2) >> 2]) | 0;
$572 = (HEAP32[$context + 4180 >> 2] | 0) + $566 + $567 ^ $475;
$573 = $572 >>> 1;
$575 = $573 | $572 << 31;
$582 = $567 + (HEAP32[$context + 4176 >> 2] | 0) ^ ($482 << 1 | $482 >>> 31);
$616 = HEAP32[$context + 2048 + (($572 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($573 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($572 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($575 >>> 24 << 2) >> 2];
$617 = $616 + (HEAP32[$context + 1024 + (($582 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($582 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($582 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($582 >>> 24 << 2) >> 2]) | 0;
$622 = (HEAP32[$context + 4172 >> 2] | 0) + $616 + $617 ^ $525;
$623 = $622 >>> 1;
$625 = $623 | $622 << 31;
$632 = $617 + (HEAP32[$context + 4168 >> 2] | 0) ^ ($532 << 1 | $532 >>> 31);
$666 = HEAP32[$context + 2048 + (($622 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($623 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($622 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($625 >>> 24 << 2) >> 2];
$667 = $666 + (HEAP32[$context + 1024 + (($632 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($632 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($632 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($632 >>> 24 << 2) >> 2]) | 0;
$672 = (HEAP32[$context + 4164 >> 2] | 0) + $666 + $667 ^ $575;
$673 = $672 >>> 1;
$675 = $673 | $672 << 31;
$682 = $667 + (HEAP32[$context + 4160 >> 2] | 0) ^ ($582 << 1 | $582 >>> 31);
$716 = HEAP32[$context + 2048 + (($672 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($673 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($672 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($675 >>> 24 << 2) >> 2];
$717 = $716 + (HEAP32[$context + 1024 + (($682 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($682 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($682 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($682 >>> 24 << 2) >> 2]) | 0;
$722 = (HEAP32[$context + 4156 >> 2] | 0) + $716 + $717 ^ $625;
$723 = $722 >>> 1;
$725 = $723 | $722 << 31;
$732 = $717 + (HEAP32[$context + 4152 >> 2] | 0) ^ ($632 << 1 | $632 >>> 31);
$766 = HEAP32[$context + 2048 + (($722 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($723 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($722 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($725 >>> 24 << 2) >> 2];
$767 = $766 + (HEAP32[$context + 1024 + (($732 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($732 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($732 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($732 >>> 24 << 2) >> 2]) | 0;
$772 = (HEAP32[$context + 4148 >> 2] | 0) + $766 + $767 ^ $675;
$773 = $772 >>> 1;
$775 = $773 | $772 << 31;
$782 = $767 + (HEAP32[$context + 4144 >> 2] | 0) ^ ($682 << 1 | $682 >>> 31);
$816 = HEAP32[$context + 2048 + (($772 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($773 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($772 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($775 >>> 24 << 2) >> 2];
$817 = $816 + (HEAP32[$context + 1024 + (($782 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($782 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($782 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($782 >>> 24 << 2) >> 2]) | 0;
$822 = (HEAP32[$context + 4140 >> 2] | 0) + $816 + $817 ^ $725;
$823 = $822 >>> 1;
$825 = $823 | $822 << 31;
$832 = $817 + (HEAP32[$context + 4136 >> 2] | 0) ^ ($732 << 1 | $732 >>> 31);
$866 = HEAP32[$context + 2048 + (($822 >>> 9 & 255) << 2) >> 2] ^ HEAP32[$context + 1024 + (($823 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + (($822 >>> 17 & 255) << 2) >> 2] ^ HEAP32[$context + ($825 >>> 24 << 2) >> 2];
$867 = $866 + (HEAP32[$context + 1024 + (($832 >>> 8 & 255) << 2) >> 2] ^ HEAP32[$context + (($832 & 255) << 2) >> 2] ^ HEAP32[$context + 2048 + (($832 >>> 16 & 255) << 2) >> 2] ^ HEAP32[$context + 3072 + ($832 >>> 24 << 2) >> 2]) | 0;
$872 = (HEAP32[$context + 4132 >> 2] | 0) + $866 + $867 ^ $775;
$882 = $867 + (HEAP32[$context + 4128 >> 2] | 0) ^ ($782 << 1 | $782 >>> 31);
$885 = HEAP32[$context + 4096 >> 2] ^ $832;
HEAP8[$out + 3 >> 0] = $885 >>> 24;
HEAP8[$out + 2 >> 0] = $885 >>> 16;
HEAP8[$out + 1 >> 0] = $885 >>> 8;
HEAP8[$out >> 0] = $885;
$898 = HEAP32[$context + 4100 >> 2] ^ $825;
HEAP8[$out + 7 >> 0] = $898 >>> 24;
HEAP8[$out + 6 >> 0] = $898 >>> 16;
HEAP8[$out + 5 >> 0] = $898 >>> 8;
HEAP8[$out + 4 >> 0] = $898;
$912 = $882 ^ HEAP32[$context + 4104 >> 2];
HEAP8[$out + 11 >> 0] = $912 >>> 24;
HEAP8[$out + 10 >> 0] = $912 >>> 16;
HEAP8[$out + 9 >> 0] = $912 >>> 8;
HEAP8[$out + 8 >> 0] = $912;
$926 = HEAP32[$context + 4108 >> 2] ^ ($872 >>> 1 | $872 << 31);
HEAP8[$out + 15 >> 0] = $926 >>> 24;
HEAP8[$out + 14 >> 0] = $926 >>> 16;
HEAP8[$out + 13 >> 0] = $926 >>> 8;
HEAP8[$out + 12 >> 0] = $926;
return 36;
}
function _ecc_check_secret_key($keyparms) {
$keyparms = $keyparms | 0;
var $$0 = 0, $$pre$phiZ2D = 0, $0 = 0, $100 = 0, $101 = 0, $105 = 0, $125 = 0, $155 = 0, $156 = 0, $16 = 0, $18 = 0, $2 = 0, $26 = 0, $30 = 0, $32 = 0, $35 = 0, $43 = 0, $46 = 0, $48 = 0, $50 = 0, $66 = 0, $69 = 0, $72 = 0, $77 = 0, $83 = 0, $87 = 0, $89 = 0, $92 = 0, $96 = 0, $Q$i = 0, $curvename$0 = 0, $curvename$1 = 0, $ec$0 = 0, $flags = 0, $l1$0 = 0, $mpi_g = 0, $mpi_q = 0, $rc$0 = 0, $rc$0$i = 0, $rc$1 = 0, $rc$2 = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer14 = 0, $vararg_buffer18 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer33 = 0, $vararg_buffer35 = 0, $vararg_buffer37 = 0, $vararg_buffer39 = 0, $vararg_buffer9 = 0, $x2$1$i = 0, $y1$0$i = 0, $y2$1$i = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240 | 0;
$vararg_buffer39 = sp + 144 | 0;
$vararg_buffer37 = sp + 136 | 0;
$vararg_buffer35 = sp + 128 | 0;
$vararg_buffer33 = sp + 120 | 0;
$vararg_buffer31 = sp + 112 | 0;
$vararg_buffer29 = sp + 104 | 0;
$vararg_buffer27 = sp + 96 | 0;
$vararg_buffer25 = sp + 88 | 0;
$vararg_buffer23 = sp + 80 | 0;
$vararg_buffer21 = sp + 72 | 0;
$vararg_buffer18 = sp + 64 | 0;
$vararg_buffer14 = sp + 56 | 0;
$vararg_buffer9 = sp + 40 | 0;
$vararg_buffer = sp;
$Q$i = sp + 220 | 0;
$flags = sp + 216 | 0;
$mpi_g = sp + 212 | 0;
$mpi_q = sp + 208 | 0;
$sk = sp + 148 | 0;
HEAP32[$flags >> 2] = 0;
HEAP32[$mpi_g >> 2] = 0;
HEAP32[$mpi_q >> 2] = 0;
dest = $sk;
stop = dest + 60 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
$0 = __gcry_sexp_find_token($keyparms, 46546, 0) | 0;
if (!$0) label = 5; else {
$2 = __gcry_pk_util_parse_flaglist($0, $flags, 0) | 0;
if (!$2) if (!(HEAP32[$flags >> 2] & 512)) label = 5; else {
HEAP32[$vararg_buffer >> 2] = $sk + 8;
HEAP32[$vararg_buffer + 4 >> 2] = $sk + 12;
HEAP32[$vararg_buffer + 8 >> 2] = $sk + 16;
HEAP32[$vararg_buffer + 12 >> 2] = $mpi_g;
HEAP32[$vararg_buffer + 16 >> 2] = $sk + 32;
HEAP32[$vararg_buffer + 20 >> 2] = $sk + 36;
HEAP32[$vararg_buffer + 24 >> 2] = $mpi_q;
HEAP32[$vararg_buffer + 28 >> 2] = $sk + 56;
HEAP32[$vararg_buffer + 32 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46886, $vararg_buffer) | 0;
label = 6;
} else {
$curvename$1 = 0;
$ec$0 = 0;
$l1$0 = $0;
$rc$2 = $2;
}
}
if ((label | 0) == 5) {
HEAP32[$vararg_buffer9 >> 2] = $mpi_q;
HEAP32[$vararg_buffer9 + 4 >> 2] = $sk + 56;
HEAP32[$vararg_buffer9 + 8 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46905, $vararg_buffer9) | 0;
label = 6;
}
do if ((label | 0) == 6) if (!$rc$0) {
__gcry_sexp_release($0);
$16 = __gcry_sexp_find_token($keyparms, 46586, 5) | 0;
if (!$16) $curvename$0 = 0; else {
$18 = __gcry_sexp_nth_string($16, 1) | 0;
if (!$18) $curvename$0 = 0; else {
$26 = __gcry_ecc_update_curve_param($18, $sk, $sk + 4 | 0, $sk + 8 | 0, $sk + 12 | 0, $sk + 16 | 0, $mpi_g, $sk + 32 | 0, $sk + 36 | 0) | 0;
if (!$26) $curvename$0 = $18; else {
$$0 = $26;
STACKTOP = sp;
return $$0 | 0;
}
}
}
if (HEAP32[$mpi_g >> 2] | 0) {
$30 = $sk + 20 | 0;
__gcry_mpi_point_init($30);
$32 = __gcry_ecc_os2ec($30, HEAP32[$mpi_g >> 2] | 0) | 0;
if ($32) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = $32;
break;
}
}
if (!$curvename$0) {
$35 = HEAP32[$flags >> 2] | 0;
HEAP32[$sk >> 2] = $35 >>> 11 & 2;
HEAP32[$sk + 4 >> 2] = $35 >>> 12 & 1;
}
if (!(__gcry_get_debug_flag(1) | 0)) $$pre$phiZ2D = $sk + 8 | 0; else {
$43 = __gcry_ecc_model2str(HEAP32[$sk >> 2] | 0) | 0;
$46 = __gcry_ecc_dialect2str(HEAP32[$sk + 4 >> 2] | 0) | 0;
HEAP32[$vararg_buffer14 >> 2] = $43;
HEAP32[$vararg_buffer14 + 4 >> 2] = $46;
__gcry_log_debug(47814, $vararg_buffer14);
$48 = HEAP32[$sk + 40 >> 2] | 0;
if ($48) {
HEAP32[$vararg_buffer18 >> 2] = $48;
__gcry_log_debug(47838, $vararg_buffer18);
}
$50 = $sk + 8 | 0;
__gcry_log_printmpi(47859, HEAP32[$50 >> 2] | 0);
__gcry_log_printmpi(47875, HEAP32[$sk + 12 >> 2] | 0);
__gcry_log_printmpi(47891, HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_point_log(47907, $sk + 20 | 0, 0);
__gcry_log_printmpi(47921, HEAP32[$sk + 32 >> 2] | 0);
__gcry_log_printmpi(47937, HEAP32[$sk + 36 >> 2] | 0);
__gcry_log_printmpi(47953, HEAP32[$mpi_q >> 2] | 0);
if (!(__gcry_fips_mode() | 0)) {
__gcry_log_printmpi(47969, HEAP32[$sk + 56 >> 2] | 0);
$$pre$phiZ2D = $50;
} else $$pre$phiZ2D = $50;
}
$66 = HEAP32[$$pre$phiZ2D >> 2] | 0;
if (!$66) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else {
$69 = HEAP32[$sk + 12 >> 2] | 0;
if (!$69) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else {
$72 = HEAP32[$sk + 16 >> 2] | 0;
if (!$72) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else if (!(HEAP32[$sk + 20 >> 2] | 0)) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else {
$77 = $sk + 32 | 0;
if (!(HEAP32[$77 >> 2] | 0)) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else if (!(HEAP32[$sk + 36 >> 2] | 0)) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else {
$83 = $sk + 56 | 0;
if (!(HEAP32[$83 >> 2] | 0)) {
$curvename$1 = $curvename$0;
$ec$0 = 0;
$l1$0 = $16;
$rc$2 = 68;
} else {
$87 = $sk + 4 | 0;
$89 = __gcry_mpi_ec_p_internal_new(HEAP32[$sk >> 2] | 0, HEAP32[$87 >> 2] | 0, 0, $66, $69, $72) | 0;
if (!(HEAP32[$mpi_q >> 2] | 0)) {
$curvename$1 = $curvename$0;
$ec$0 = $89;
$l1$0 = $16;
$rc$2 = 68;
} else {
$92 = $sk + 44 | 0;
__gcry_mpi_point_init($92);
$96 = HEAP32[$mpi_q >> 2] | 0;
if ((HEAP32[$89 + 4 >> 2] | 0) == 1) $rc$1 = __gcry_ecc_eddsa_decodepoint($96, $89, $92, 0, 0) | 0; else $rc$1 = __gcry_ecc_os2ec($92, $96) | 0;
if (!$rc$1) {
$100 = HEAP32[$flags >> 2] | 0;
__gcry_mpi_point_init($Q$i);
$101 = __gcry_mpi_new(0) | 0;
if ((HEAP32[$89 >> 2] | 0) == 1) $y1$0$i = 0; else $y1$0$i = __gcry_mpi_new(0) | 0;
$105 = $sk + 20 | 0;
L45 : do if (!(__gcry_mpi_ec_curve_point($105, $89) | 0)) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
__gcry_log_debug(47985, $vararg_buffer21);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
} else {
if (!(__gcry_mpi_cmp_ui(HEAP32[$sk + 28 >> 2] | 0, 0) | 0)) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
__gcry_log_debug(48037, $vararg_buffer23);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
do if ((HEAP32[$87 >> 2] | 0) != 1) {
__gcry_mpi_ec_mul_point($Q$i, HEAP32[$77 >> 2] | 0, $105, $89);
if (!(__gcry_mpi_cmp_ui(HEAP32[$Q$i + 8 >> 2] | 0, 0) | 0)) break;
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break L45;
}
__gcry_log_debug(48082, $vararg_buffer25);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break L45;
} while (0);
$125 = $sk + 52 | 0;
if (!(__gcry_mpi_cmp_ui(HEAP32[$125 >> 2] | 0, 0) | 0)) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
__gcry_log_debug(48129, $vararg_buffer27);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
if (!(__gcry_ecc_compute_public($Q$i, $89, $105, HEAP32[$83 >> 2] | 0) | 0)) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
__gcry_log_debug(48175, $vararg_buffer29);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
if (__gcry_mpi_ec_get_affine($101, $y1$0$i, $Q$i, $89) | 0) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
__gcry_log_debug(48129, $vararg_buffer31);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
if ($100 & 4096) {
$rc$0$i = 0;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
if (!(__gcry_mpi_cmp_ui(HEAP32[$125 >> 2] | 0, 1) | 0)) {
if (!(__gcry_mpi_cmp($101, HEAP32[$92 >> 2] | 0) | 0)) {
if ($y1$0$i) {
$rc$0$i = 0;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
if (!(__gcry_mpi_cmp(0, HEAP32[$sk + 48 >> 2] | 0) | 0)) {
$rc$0$i = 0;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
}
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
__gcry_log_debug(48212, $vararg_buffer33);
$rc$0$i = 7;
$x2$1$i = 0;
$y2$1$i = 0;
break;
}
$155 = __gcry_mpi_new(0) | 0;
$156 = __gcry_mpi_new(0) | 0;
if (__gcry_mpi_ec_get_affine($155, $156, $92, $89) | 0) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = $155;
$y2$1$i = $156;
break;
}
__gcry_log_debug(48129, $vararg_buffer35);
$rc$0$i = 7;
$x2$1$i = $155;
$y2$1$i = $156;
break;
}
if (!(__gcry_mpi_cmp($101, $155) | 0)) if (!(__gcry_mpi_cmp($y1$0$i, $156) | 0)) {
$rc$0$i = 0;
$x2$1$i = $155;
$y2$1$i = $156;
break;
}
if (!(__gcry_get_debug_flag(1) | 0)) {
$rc$0$i = 7;
$x2$1$i = $155;
$y2$1$i = $156;
break;
}
__gcry_log_debug(48212, $vararg_buffer37);
$rc$0$i = 7;
$x2$1$i = $155;
$y2$1$i = $156;
} while (0);
__gcry_mpi_free($x2$1$i);
__gcry_mpi_free($101);
__gcry_mpi_free($y1$0$i);
__gcry_mpi_free($y2$1$i);
__gcry_mpi_point_free_parts($Q$i);
$curvename$1 = $curvename$0;
$ec$0 = $89;
$l1$0 = $16;
$rc$2 = $rc$0$i;
} else {
$curvename$1 = $curvename$0;
$ec$0 = $89;
$l1$0 = $16;
$rc$2 = $rc$1;
}
}
}
}
}
}
}
} else {
$curvename$1 = 0;
$ec$0 = 0;
$l1$0 = $0;
$rc$2 = $rc$0;
} while (0);
__gcry_mpi_ec_free($ec$0);
__gcry_mpi_release(HEAP32[$sk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_g >> 2] | 0);
__gcry_mpi_point_free_parts($sk + 20 | 0);
__gcry_mpi_release(HEAP32[$sk + 32 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 36 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_q >> 2] | 0);
__gcry_mpi_point_free_parts($sk + 44 | 0);
__gcry_mpi_release(HEAP32[$sk + 56 >> 2] | 0);
__gcry_free($curvename$1);
__gcry_sexp_release($l1$0);
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = $rc$2;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer39 >> 2] = _gpg_strerror($rc$2) | 0;
__gcry_log_debug(48272, $vararg_buffer39);
$$0 = $rc$2;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_mpi_ec_dup_point($result, $point, $ctx) {
$result = $result | 0;
$point = $point | 0;
$ctx = $ctx | 0;
var $$pre$phi$i$iZ2D = 0, $$pre$phi$iZ2D = 0, $1 = 0, $100 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $111 = 0, $112 = 0, $115 = 0, $119 = 0, $121 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $132 = 0, $134 = 0, $138 = 0, $14 = 0, $140 = 0, $141 = 0, $145 = 0, $146 = 0, $147 = 0, $149 = 0, $15 = 0, $153 = 0, $157 = 0, $159 = 0, $163 = 0, $165 = 0, $166 = 0, $168 = 0, $170 = 0, $171 = 0, $175 = 0, $176 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $197 = 0, $198 = 0, $200 = 0, $204 = 0, $208 = 0, $209 = 0, $21 = 0, $212 = 0, $216 = 0, $217 = 0, $219 = 0, $220 = 0, $224 = 0, $225 = 0, $227 = 0, $231 = 0, $236 = 0, $238 = 0, $240 = 0, $244 = 0, $248 = 0, $250 = 0, $255 = 0, $258 = 0, $28 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $39 = 0, $43 = 0, $45 = 0, $49 = 0, $5 = 0, $50 = 0, $53 = 0, $57 = 0, $59 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $71 = 0, $73 = 0, $75 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $83 = 0, $86 = 0, $88 = 0, $91 = 0, $92 = 0, $95 = 0, $99 = 0, $ctx$idx$pre$phi$iZZ2D = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
switch (HEAP32[$ctx >> 2] | 0) {
case 0:
{
$1 = $point + 4 | 0;
if (__gcry_mpi_cmp_ui(HEAP32[$1 >> 2] | 0, 0) | 0) {
$5 = $point + 8 | 0;
if (__gcry_mpi_cmp_ui(HEAP32[$5 >> 2] | 0, 0) | 0) {
$14 = $ctx + 48 | 0;
$15 = HEAP8[$14 >> 0] | 0;
if (!($15 & 1)) {
HEAP8[$14 >> 0] = $15 | 1;
$19 = $ctx + 16 | 0;
$21 = __gcry_mpi_alloc_like(HEAP32[$19 >> 2] | 0) | 0;
__gcry_mpi_sub_ui($21, HEAP32[$19 >> 2] | 0, 3);
$28 = $ctx + 52 | 0;
HEAP32[$28 >> 2] = (__gcry_mpi_cmp(HEAP32[$ctx + 20 >> 2] | 0, $21) | 0) == 0 & 1;
__gcry_mpi_free($21);
$$pre$phi$i$iZ2D = $28;
} else $$pre$phi$i$iZ2D = $ctx + 52 | 0;
$31 = $ctx + 64 | 0;
do if (!(HEAP32[$$pre$phi$i$iZ2D >> 2] | 0)) {
$63 = $ctx + 76 | 0;
$64 = HEAP32[$63 >> 2] | 0;
$65 = HEAP32[$point >> 2] | 0;
__gcry_mpi_mul($64, $65, $65);
$66 = $ctx + 60 | 0;
$67 = HEAP32[$66 >> 2] | 0;
if (!$67) __gcry_mpi_mod($64, $64, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($64, $64, $67);
$71 = HEAP32[$63 >> 2] | 0;
__gcry_mpi_mul($71, $71, __gcry_mpi_const(3) | 0);
$73 = HEAP32[$66 >> 2] | 0;
if (!$73) {
$75 = $ctx + 16 | 0;
__gcry_mpi_mod($71, $71, HEAP32[$75 >> 2] | 0);
$ctx$idx$pre$phi$iZZ2D = $75;
} else {
__gcry_mpi_mod_barrett($71, $71, $73);
$ctx$idx$pre$phi$iZZ2D = $ctx + 16 | 0;
}
$77 = HEAP32[$31 >> 2] | 0;
$78 = HEAP32[$5 >> 2] | 0;
$79 = __gcry_mpi_const(4) | 0;
__gcry_mpi_powm($77, $78, $79, HEAP32[$ctx$idx$pre$phi$iZZ2D >> 2] | 0);
$80 = HEAP32[$31 >> 2] | 0;
__gcry_mpi_mul($80, $80, HEAP32[$ctx + 20 >> 2] | 0);
$83 = HEAP32[$66 >> 2] | 0;
if (!$83) __gcry_mpi_mod($80, $80, HEAP32[$ctx$idx$pre$phi$iZZ2D >> 2] | 0); else __gcry_mpi_mod_barrett($80, $80, $83);
$86 = HEAP32[$63 >> 2] | 0;
__gcry_mpi_add($86, $86, HEAP32[$31 >> 2] | 0);
$88 = HEAP32[$66 >> 2] | 0;
if (!$88) {
__gcry_mpi_mod($86, $86, HEAP32[$ctx$idx$pre$phi$iZZ2D >> 2] | 0);
$$pre$phi$iZ2D = $66;
break;
} else {
__gcry_mpi_mod_barrett($86, $86, $88);
$$pre$phi$iZ2D = $66;
break;
}
} else {
$32 = HEAP32[$31 >> 2] | 0;
$33 = HEAP32[$5 >> 2] | 0;
__gcry_mpi_mul($32, $33, $33);
$34 = $ctx + 60 | 0;
$35 = HEAP32[$34 >> 2] | 0;
if (!$35) __gcry_mpi_mod($32, $32, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($32, $32, $35);
$39 = $ctx + 76 | 0;
__gcry_mpi_sub(HEAP32[$39 >> 2] | 0, HEAP32[$point >> 2] | 0, HEAP32[$31 >> 2] | 0);
$43 = HEAP32[$39 >> 2] | 0;
__gcry_mpi_mul($43, $43, __gcry_mpi_const(3) | 0);
$45 = HEAP32[$34 >> 2] | 0;
if (!$45) __gcry_mpi_mod($43, $43, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($43, $43, $45);
$49 = $ctx + 68 | 0;
$50 = HEAP32[$49 >> 2] | 0;
__gcry_mpi_add($50, HEAP32[$point >> 2] | 0, HEAP32[$31 >> 2] | 0);
$53 = HEAP32[$34 >> 2] | 0;
if (!$53) __gcry_mpi_mod($50, $50, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($50, $50, $53);
$57 = HEAP32[$39 >> 2] | 0;
__gcry_mpi_mul($57, $57, HEAP32[$49 >> 2] | 0);
$59 = HEAP32[$34 >> 2] | 0;
if (!$59) {
__gcry_mpi_mod($57, $57, HEAP32[$ctx + 16 >> 2] | 0);
$$pre$phi$iZ2D = $34;
break;
} else {
__gcry_mpi_mod_barrett($57, $57, $59);
$$pre$phi$iZ2D = $34;
break;
}
} while (0);
$91 = $result + 8 | 0;
$92 = HEAP32[$91 >> 2] | 0;
__gcry_mpi_mul($92, HEAP32[$1 >> 2] | 0, HEAP32[$5 >> 2] | 0);
$95 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$95) __gcry_mpi_mod($92, $92, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($92, $92, $95);
$99 = HEAP32[$91 >> 2] | 0;
__gcry_mpi_lshift($99, $99, 1);
$100 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$100) __gcry_mpi_mod($99, $99, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($99, $99, $100);
$104 = $ctx + 68 | 0;
$105 = HEAP32[$104 >> 2] | 0;
$106 = HEAP32[$1 >> 2] | 0;
__gcry_mpi_mul($105, $106, $106);
$107 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$107) __gcry_mpi_mod($105, $105, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($105, $105, $107);
$111 = $ctx + 80 | 0;
$112 = HEAP32[$111 >> 2] | 0;
__gcry_mpi_mul($112, HEAP32[$104 >> 2] | 0, HEAP32[$point >> 2] | 0);
$115 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$115) __gcry_mpi_mod($112, $112, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($112, $112, $115);
$119 = HEAP32[$111 >> 2] | 0;
__gcry_mpi_mul($119, $119, __gcry_mpi_const(4) | 0);
$121 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$121) __gcry_mpi_mod($119, $119, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($119, $119, $121);
$125 = HEAP32[$result >> 2] | 0;
$126 = $ctx + 76 | 0;
$127 = HEAP32[$126 >> 2] | 0;
__gcry_mpi_mul($125, $127, $127);
$128 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$128) __gcry_mpi_mod($125, $125, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($125, $125, $128);
$132 = HEAP32[$31 >> 2] | 0;
__gcry_mpi_lshift($132, HEAP32[$111 >> 2] | 0, 1);
$134 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$134) __gcry_mpi_mod($132, $132, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($132, $132, $134);
$138 = HEAP32[$result >> 2] | 0;
__gcry_mpi_sub($138, $138, HEAP32[$31 >> 2] | 0);
$140 = HEAP32[$104 >> 2] | 0;
__gcry_mpi_mul($140, $140, $140);
$141 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$141) __gcry_mpi_mod($140, $140, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($140, $140, $141);
$145 = $ctx + 84 | 0;
$146 = HEAP32[$145 >> 2] | 0;
$147 = HEAP32[$104 >> 2] | 0;
__gcry_mpi_mul($146, $147, __gcry_mpi_const(5) | 0);
$149 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$149) __gcry_mpi_mod($146, $146, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($146, $146, $149);
$153 = $result + 4 | 0;
__gcry_mpi_sub(HEAP32[$153 >> 2] | 0, HEAP32[$111 >> 2] | 0, HEAP32[$result >> 2] | 0);
$157 = HEAP32[$153 >> 2] | 0;
__gcry_mpi_mul($157, $157, HEAP32[$126 >> 2] | 0);
$159 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$159) __gcry_mpi_mod($157, $157, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($157, $157, $159);
$163 = HEAP32[$153 >> 2] | 0;
__gcry_mpi_sub($163, $163, HEAP32[$145 >> 2] | 0);
STACKTOP = sp;
return;
}
}
__gcry_mpi_set_ui(HEAP32[$result >> 2] | 0, 1) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 4 >> 2] | 0, 1) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 0) | 0;
STACKTOP = sp;
return;
}
case 1:
{
HEAP32[$vararg_buffer >> 2] = 45155;
HEAP32[$vararg_buffer + 4 >> 2] = 45118;
__gcry_log_fatal(45129, $vararg_buffer);
break;
}
case 2:
{
$165 = $ctx + 64 | 0;
$166 = HEAP32[$165 >> 2] | 0;
$168 = $point + 4 | 0;
__gcry_mpi_add($166, HEAP32[$point >> 2] | 0, HEAP32[$168 >> 2] | 0);
$170 = $ctx + 60 | 0;
$171 = HEAP32[$170 >> 2] | 0;
if (!$171) __gcry_mpi_mod($166, $166, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($166, $166, $171);
$175 = HEAP32[$165 >> 2] | 0;
__gcry_mpi_mul($175, $175, $175);
$176 = HEAP32[$170 >> 2] | 0;
if (!$176) __gcry_mpi_mod($175, $175, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($175, $175, $176);
$180 = $ctx + 68 | 0;
$181 = HEAP32[$180 >> 2] | 0;
$182 = HEAP32[$point >> 2] | 0;
__gcry_mpi_mul($181, $182, $182);
$183 = HEAP32[$170 >> 2] | 0;
if (!$183) __gcry_mpi_mod($181, $181, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($181, $181, $183);
$187 = $ctx + 72 | 0;
$188 = HEAP32[$187 >> 2] | 0;
$189 = HEAP32[$168 >> 2] | 0;
__gcry_mpi_mul($188, $189, $189);
$190 = HEAP32[$170 >> 2] | 0;
if (!$190) __gcry_mpi_mod($188, $188, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($188, $188, $190);
$197 = $ctx + 76 | 0;
$198 = HEAP32[$197 >> 2] | 0;
do if ((HEAP32[$ctx + 4 >> 2] | 0) == 1) {
__gcry_mpi_set($198, HEAP32[$180 >> 2] | 0) | 0;
$200 = HEAP32[$197 >> 2] | 0;
__gcry_mpi_neg($200, $200);
} else {
__gcry_mpi_mul($198, HEAP32[$ctx + 20 >> 2] | 0, HEAP32[$180 >> 2] | 0);
$204 = HEAP32[$170 >> 2] | 0;
if (!$204) {
__gcry_mpi_mod($198, $198, HEAP32[$ctx + 16 >> 2] | 0);
break;
} else {
__gcry_mpi_mod_barrett($198, $198, $204);
break;
}
} while (0);
$208 = $ctx + 80 | 0;
$209 = HEAP32[$208 >> 2] | 0;
__gcry_mpi_add($209, HEAP32[$197 >> 2] | 0, HEAP32[$187 >> 2] | 0);
$212 = HEAP32[$170 >> 2] | 0;
if (!$212) __gcry_mpi_mod($209, $209, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($209, $209, $212);
$216 = $ctx + 84 | 0;
$217 = HEAP32[$216 >> 2] | 0;
$219 = HEAP32[$point + 8 >> 2] | 0;
__gcry_mpi_mul($217, $219, $219);
$220 = HEAP32[$170 >> 2] | 0;
if (!$220) __gcry_mpi_mod($217, $217, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($217, $217, $220);
$224 = $ctx + 88 | 0;
$225 = HEAP32[$224 >> 2] | 0;
__gcry_mpi_lshift($225, HEAP32[$216 >> 2] | 0, 1);
$227 = HEAP32[$170 >> 2] | 0;
if (!$227) __gcry_mpi_mod($225, $225, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($225, $225, $227);
$231 = HEAP32[$224 >> 2] | 0;
__gcry_mpi_sub($231, HEAP32[$208 >> 2] | 0, $231);
__gcry_mpi_sub(HEAP32[$result >> 2] | 0, HEAP32[$165 >> 2] | 0, HEAP32[$180 >> 2] | 0);
$236 = HEAP32[$result >> 2] | 0;
__gcry_mpi_sub($236, $236, HEAP32[$187 >> 2] | 0);
$238 = HEAP32[$result >> 2] | 0;
__gcry_mpi_mul($238, $238, HEAP32[$224 >> 2] | 0);
$240 = HEAP32[$170 >> 2] | 0;
if (!$240) __gcry_mpi_mod($238, $238, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($238, $238, $240);
$244 = $result + 4 | 0;
__gcry_mpi_sub(HEAP32[$244 >> 2] | 0, HEAP32[$197 >> 2] | 0, HEAP32[$187 >> 2] | 0);
$248 = HEAP32[$244 >> 2] | 0;
__gcry_mpi_mul($248, $248, HEAP32[$208 >> 2] | 0);
$250 = HEAP32[$170 >> 2] | 0;
if (!$250) __gcry_mpi_mod($248, $248, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($248, $248, $250);
$255 = HEAP32[$result + 8 >> 2] | 0;
__gcry_mpi_mul($255, HEAP32[$208 >> 2] | 0, HEAP32[$224 >> 2] | 0);
$258 = HEAP32[$170 >> 2] | 0;
if (!$258) {
__gcry_mpi_mod($255, $255, HEAP32[$ctx + 16 >> 2] | 0);
STACKTOP = sp;
return;
} else {
__gcry_mpi_mod_barrett($255, $255, $258);
STACKTOP = sp;
return;
}
break;
}
default:
{
STACKTOP = sp;
return;
}
}
}
function _free($mem) {
$mem = $mem | 0;
var $$lcssa = 0, $$pre$phi41Z2D = 0, $$pre$phi43Z2D = 0, $$pre$phiZ2D = 0, $1 = 0, $104 = 0, $105 = 0, $113 = 0, $114 = 0, $12 = 0, $122 = 0, $130 = 0, $135 = 0, $136 = 0, $139 = 0, $141 = 0, $143 = 0, $15 = 0, $158 = 0, $16 = 0, $163 = 0, $165 = 0, $168 = 0, $171 = 0, $174 = 0, $177 = 0, $178 = 0, $179 = 0, $181 = 0, $183 = 0, $184 = 0, $186 = 0, $187 = 0, $193 = 0, $194 = 0, $2 = 0, $20 = 0, $203 = 0, $208 = 0, $211 = 0, $212 = 0, $218 = 0, $23 = 0, $233 = 0, $236 = 0, $237 = 0, $238 = 0, $242 = 0, $243 = 0, $249 = 0, $25 = 0, $254 = 0, $255 = 0, $258 = 0, $260 = 0, $263 = 0, $268 = 0, $27 = 0, $274 = 0, $278 = 0, $279 = 0, $297 = 0, $299 = 0, $306 = 0, $307 = 0, $308 = 0, $316 = 0, $40 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $52 = 0, $55 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $62 = 0, $64 = 0, $65 = 0, $67 = 0, $68 = 0, $73 = 0, $74 = 0, $8 = 0, $83 = 0, $88 = 0, $9 = 0, $91 = 0, $92 = 0, $98 = 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, $T$0 = 0, $T$0$lcssa = 0, $T$0$lcssa48 = 0, $p$1 = 0, $psize$1 = 0, $psize$2 = 0, $sp$0$i = 0, $sp$0$in$i = 0, label = 0;
if (!$mem) return;
$1 = $mem + -8 | 0;
$2 = HEAP32[17610] | 0;
if ($1 >>> 0 < $2 >>> 0) _abort();
$5 = HEAP32[$mem + -4 >> 2] | 0;
$6 = $5 & 3;
if (($6 | 0) == 1) _abort();
$8 = $5 & -8;
$9 = $1 + $8 | 0;
do if (!($5 & 1)) {
$12 = HEAP32[$1 >> 2] | 0;
if (!$6) return;
$15 = $1 + (0 - $12) | 0;
$16 = $12 + $8 | 0;
if ($15 >>> 0 < $2 >>> 0) _abort();
if (($15 | 0) == (HEAP32[17611] | 0)) {
$104 = $9 + 4 | 0;
$105 = HEAP32[$104 >> 2] | 0;
if (($105 & 3 | 0) != 3) {
$p$1 = $15;
$psize$1 = $16;
break;
}
HEAP32[17608] = $16;
HEAP32[$104 >> 2] = $105 & -2;
HEAP32[$15 + 4 >> 2] = $16 | 1;
HEAP32[$15 + $16 >> 2] = $16;
return;
}
$20 = $12 >>> 3;
if ($12 >>> 0 < 256) {
$23 = HEAP32[$15 + 8 >> 2] | 0;
$25 = HEAP32[$15 + 12 >> 2] | 0;
$27 = 70464 + ($20 << 1 << 2) | 0;
if (($23 | 0) != ($27 | 0)) {
if ($23 >>> 0 < $2 >>> 0) _abort();
if ((HEAP32[$23 + 12 >> 2] | 0) != ($15 | 0)) _abort();
}
if (($25 | 0) == ($23 | 0)) {
HEAP32[17606] = HEAP32[17606] & ~(1 << $20);
$p$1 = $15;
$psize$1 = $16;
break;
}
if (($25 | 0) == ($27 | 0)) $$pre$phi43Z2D = $25 + 8 | 0; else {
if ($25 >>> 0 < $2 >>> 0) _abort();
$40 = $25 + 8 | 0;
if ((HEAP32[$40 >> 2] | 0) == ($15 | 0)) $$pre$phi43Z2D = $40; else _abort();
}
HEAP32[$23 + 12 >> 2] = $25;
HEAP32[$$pre$phi43Z2D >> 2] = $23;
$p$1 = $15;
$psize$1 = $16;
break;
}
$45 = HEAP32[$15 + 24 >> 2] | 0;
$47 = HEAP32[$15 + 12 >> 2] | 0;
do if (($47 | 0) == ($15 | 0)) {
$58 = $15 + 16 | 0;
$59 = $58 + 4 | 0;
$60 = HEAP32[$59 >> 2] | 0;
if (!$60) {
$62 = HEAP32[$58 >> 2] | 0;
if (!$62) {
$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;
if ($65) {
$R$1 = $65;
$RP$1 = $64;
continue;
}
$67 = $R$1 + 16 | 0;
$68 = HEAP32[$67 >> 2] | 0;
if (!$68) {
$R$1$lcssa = $R$1;
$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $68;
$RP$1 = $67;
}
}
if ($RP$1$lcssa >>> 0 < $2 >>> 0) _abort(); else {
HEAP32[$RP$1$lcssa >> 2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$50 = HEAP32[$15 + 8 >> 2] | 0;
if ($50 >>> 0 < $2 >>> 0) _abort();
$52 = $50 + 12 | 0;
if ((HEAP32[$52 >> 2] | 0) != ($15 | 0)) _abort();
$55 = $47 + 8 | 0;
if ((HEAP32[$55 >> 2] | 0) == ($15 | 0)) {
HEAP32[$52 >> 2] = $47;
HEAP32[$55 >> 2] = $50;
$R$3 = $47;
break;
} else _abort();
} while (0);
if (!$45) {
$p$1 = $15;
$psize$1 = $16;
} else {
$73 = HEAP32[$15 + 28 >> 2] | 0;
$74 = 70728 + ($73 << 2) | 0;
if (($15 | 0) == (HEAP32[$74 >> 2] | 0)) {
HEAP32[$74 >> 2] = $R$3;
if (!$R$3) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $73);
$p$1 = $15;
$psize$1 = $16;
break;
}
} else {
if ($45 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$83 = $45 + 16 | 0;
if ((HEAP32[$83 >> 2] | 0) == ($15 | 0)) HEAP32[$83 >> 2] = $R$3; else HEAP32[$45 + 20 >> 2] = $R$3;
if (!$R$3) {
$p$1 = $15;
$psize$1 = $16;
break;
}
}
$88 = HEAP32[17610] | 0;
if ($R$3 >>> 0 < $88 >>> 0) _abort();
HEAP32[$R$3 + 24 >> 2] = $45;
$91 = $15 + 16 | 0;
$92 = HEAP32[$91 >> 2] | 0;
do if ($92) if ($92 >>> 0 < $88 >>> 0) _abort(); else {
HEAP32[$R$3 + 16 >> 2] = $92;
HEAP32[$92 + 24 >> 2] = $R$3;
break;
} while (0);
$98 = HEAP32[$91 + 4 >> 2] | 0;
if (!$98) {
$p$1 = $15;
$psize$1 = $16;
} else if ($98 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R$3 + 20 >> 2] = $98;
HEAP32[$98 + 24 >> 2] = $R$3;
$p$1 = $15;
$psize$1 = $16;
break;
}
}
} else {
$p$1 = $1;
$psize$1 = $8;
} while (0);
if ($p$1 >>> 0 >= $9 >>> 0) _abort();
$113 = $9 + 4 | 0;
$114 = HEAP32[$113 >> 2] | 0;
if (!($114 & 1)) _abort();
if (!($114 & 2)) {
if (($9 | 0) == (HEAP32[17612] | 0)) {
$122 = (HEAP32[17609] | 0) + $psize$1 | 0;
HEAP32[17609] = $122;
HEAP32[17612] = $p$1;
HEAP32[$p$1 + 4 >> 2] = $122 | 1;
if (($p$1 | 0) != (HEAP32[17611] | 0)) return;
HEAP32[17611] = 0;
HEAP32[17608] = 0;
return;
}
if (($9 | 0) == (HEAP32[17611] | 0)) {
$130 = (HEAP32[17608] | 0) + $psize$1 | 0;
HEAP32[17608] = $130;
HEAP32[17611] = $p$1;
HEAP32[$p$1 + 4 >> 2] = $130 | 1;
HEAP32[$p$1 + $130 >> 2] = $130;
return;
}
$135 = ($114 & -8) + $psize$1 | 0;
$136 = $114 >>> 3;
do if ($114 >>> 0 < 256) {
$139 = HEAP32[$9 + 8 >> 2] | 0;
$141 = HEAP32[$9 + 12 >> 2] | 0;
$143 = 70464 + ($136 << 1 << 2) | 0;
if (($139 | 0) != ($143 | 0)) {
if ($139 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
if ((HEAP32[$139 + 12 >> 2] | 0) != ($9 | 0)) _abort();
}
if (($141 | 0) == ($139 | 0)) {
HEAP32[17606] = HEAP32[17606] & ~(1 << $136);
break;
}
if (($141 | 0) == ($143 | 0)) $$pre$phi41Z2D = $141 + 8 | 0; else {
if ($141 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$158 = $141 + 8 | 0;
if ((HEAP32[$158 >> 2] | 0) == ($9 | 0)) $$pre$phi41Z2D = $158; else _abort();
}
HEAP32[$139 + 12 >> 2] = $141;
HEAP32[$$pre$phi41Z2D >> 2] = $139;
} else {
$163 = HEAP32[$9 + 24 >> 2] | 0;
$165 = HEAP32[$9 + 12 >> 2] | 0;
do if (($165 | 0) == ($9 | 0)) {
$177 = $9 + 16 | 0;
$178 = $177 + 4 | 0;
$179 = HEAP32[$178 >> 2] | 0;
if (!$179) {
$181 = HEAP32[$177 >> 2] | 0;
if (!$181) {
$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;
if ($184) {
$R8$1 = $184;
$RP10$1 = $183;
continue;
}
$186 = $R8$1 + 16 | 0;
$187 = HEAP32[$186 >> 2] | 0;
if (!$187) {
$R8$1$lcssa = $R8$1;
$RP10$1$lcssa = $RP10$1;
break;
} else {
$R8$1 = $187;
$RP10$1 = $186;
}
}
if ($RP10$1$lcssa >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$RP10$1$lcssa >> 2] = 0;
$R8$3 = $R8$1$lcssa;
break;
}
} else {
$168 = HEAP32[$9 + 8 >> 2] | 0;
if ($168 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$171 = $168 + 12 | 0;
if ((HEAP32[$171 >> 2] | 0) != ($9 | 0)) _abort();
$174 = $165 + 8 | 0;
if ((HEAP32[$174 >> 2] | 0) == ($9 | 0)) {
HEAP32[$171 >> 2] = $165;
HEAP32[$174 >> 2] = $168;
$R8$3 = $165;
break;
} else _abort();
} while (0);
if ($163) {
$193 = HEAP32[$9 + 28 >> 2] | 0;
$194 = 70728 + ($193 << 2) | 0;
if (($9 | 0) == (HEAP32[$194 >> 2] | 0)) {
HEAP32[$194 >> 2] = $R8$3;
if (!$R8$3) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $193);
break;
}
} else {
if ($163 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$203 = $163 + 16 | 0;
if ((HEAP32[$203 >> 2] | 0) == ($9 | 0)) HEAP32[$203 >> 2] = $R8$3; else HEAP32[$163 + 20 >> 2] = $R8$3;
if (!$R8$3) break;
}
$208 = HEAP32[17610] | 0;
if ($R8$3 >>> 0 < $208 >>> 0) _abort();
HEAP32[$R8$3 + 24 >> 2] = $163;
$211 = $9 + 16 | 0;
$212 = HEAP32[$211 >> 2] | 0;
do if ($212) if ($212 >>> 0 < $208 >>> 0) _abort(); else {
HEAP32[$R8$3 + 16 >> 2] = $212;
HEAP32[$212 + 24 >> 2] = $R8$3;
break;
} while (0);
$218 = HEAP32[$211 + 4 >> 2] | 0;
if ($218) if ($218 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R8$3 + 20 >> 2] = $218;
HEAP32[$218 + 24 >> 2] = $R8$3;
break;
}
}
} while (0);
HEAP32[$p$1 + 4 >> 2] = $135 | 1;
HEAP32[$p$1 + $135 >> 2] = $135;
if (($p$1 | 0) == (HEAP32[17611] | 0)) {
HEAP32[17608] = $135;
return;
} else $psize$2 = $135;
} else {
HEAP32[$113 >> 2] = $114 & -2;
HEAP32[$p$1 + 4 >> 2] = $psize$1 | 1;
HEAP32[$p$1 + $psize$1 >> 2] = $psize$1;
$psize$2 = $psize$1;
}
$233 = $psize$2 >>> 3;
if ($psize$2 >>> 0 < 256) {
$236 = 70464 + ($233 << 1 << 2) | 0;
$237 = HEAP32[17606] | 0;
$238 = 1 << $233;
if (!($237 & $238)) {
HEAP32[17606] = $237 | $238;
$$pre$phiZ2D = $236 + 8 | 0;
$F18$0 = $236;
} else {
$242 = $236 + 8 | 0;
$243 = HEAP32[$242 >> 2] | 0;
if ($243 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
$$pre$phiZ2D = $242;
$F18$0 = $243;
}
}
HEAP32[$$pre$phiZ2D >> 2] = $p$1;
HEAP32[$F18$0 + 12 >> 2] = $p$1;
HEAP32[$p$1 + 8 >> 2] = $F18$0;
HEAP32[$p$1 + 12 >> 2] = $236;
return;
}
$249 = $psize$2 >>> 8;
if (!$249) $I20$0 = 0; else if ($psize$2 >>> 0 > 16777215) $I20$0 = 31; else {
$254 = ($249 + 1048320 | 0) >>> 16 & 8;
$255 = $249 << $254;
$258 = ($255 + 520192 | 0) >>> 16 & 4;
$260 = $255 << $258;
$263 = ($260 + 245760 | 0) >>> 16 & 2;
$268 = 14 - ($258 | $254 | $263) + ($260 << $263 >>> 15) | 0;
$I20$0 = $psize$2 >>> ($268 + 7 | 0) & 1 | $268 << 1;
}
$274 = 70728 + ($I20$0 << 2) | 0;
HEAP32[$p$1 + 28 >> 2] = $I20$0;
HEAP32[$p$1 + 20 >> 2] = 0;
HEAP32[$p$1 + 16 >> 2] = 0;
$278 = HEAP32[17607] | 0;
$279 = 1 << $I20$0;
do if (!($278 & $279)) {
HEAP32[17607] = $278 | $279;
HEAP32[$274 >> 2] = $p$1;
HEAP32[$p$1 + 24 >> 2] = $274;
HEAP32[$p$1 + 12 >> 2] = $p$1;
HEAP32[$p$1 + 8 >> 2] = $p$1;
} else {
$K21$0 = $psize$2 << (($I20$0 | 0) == 31 ? 0 : 25 - ($I20$0 >>> 1) | 0);
$T$0 = HEAP32[$274 >> 2] | 0;
while (1) {
if ((HEAP32[$T$0 + 4 >> 2] & -8 | 0) == ($psize$2 | 0)) {
$T$0$lcssa = $T$0;
label = 130;
break;
}
$297 = $T$0 + 16 + ($K21$0 >>> 31 << 2) | 0;
$299 = HEAP32[$297 >> 2] | 0;
if (!$299) {
$$lcssa = $297;
$T$0$lcssa48 = $T$0;
label = 127;
break;
} else {
$K21$0 = $K21$0 << 1;
$T$0 = $299;
}
}
if ((label | 0) == 127) if ($$lcssa >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa >> 2] = $p$1;
HEAP32[$p$1 + 24 >> 2] = $T$0$lcssa48;
HEAP32[$p$1 + 12 >> 2] = $p$1;
HEAP32[$p$1 + 8 >> 2] = $p$1;
break;
} else if ((label | 0) == 130) {
$306 = $T$0$lcssa + 8 | 0;
$307 = HEAP32[$306 >> 2] | 0;
$308 = HEAP32[17610] | 0;
if ($307 >>> 0 >= $308 >>> 0 & $T$0$lcssa >>> 0 >= $308 >>> 0) {
HEAP32[$307 + 12 >> 2] = $p$1;
HEAP32[$306 >> 2] = $p$1;
HEAP32[$p$1 + 8 >> 2] = $307;
HEAP32[$p$1 + 12 >> 2] = $T$0$lcssa;
HEAP32[$p$1 + 24 >> 2] = 0;
break;
} else _abort();
}
} while (0);
$316 = (HEAP32[17614] | 0) + -1 | 0;
HEAP32[17614] = $316;
if (!$316) $sp$0$in$i = 70880; else return;
while (1) {
$sp$0$i = HEAP32[$sp$0$in$i >> 2] | 0;
if (!$sp$0$i) break; else $sp$0$in$i = $sp$0$i + 8 | 0;
}
HEAP32[17614] = -1;
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, $100 = 0, $101 = 0, $108 = 0, $120 = 0, $121 = 0, $128 = 0, $13 = 0, $130 = 0, $131 = 0, $134 = 0, $135 = 0, $136 = 0, $144 = 0, $149 = 0, $150 = 0, $152 = 0, $154 = 0, $156 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $166 = 0, $167 = 0, $168 = 0, $17 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $195 = 0, $201 = 0, $203 = 0, $204 = 0, $205 = 0, $207 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $223 = 0, $224 = 0, $239 = 0, $25 = 0, $259 = 0, $261 = 0, $272 = 0, $281 = 0, $284 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $3 = 0, $37 = 0, $39 = 0, $4 = 0, $47 = 0, $51 = 0, $6 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $91 = 0, $93 = 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, $c$6$lcssa = 0, $c$7$be = 0, $c$742 = 0, $c$8 = 0, $c$9$be = 0, $neg$0 = 0, $neg$1 = 0, $x$070 = 0, $x$136 = 0, $x$254 = 0, label = 0;
L1 : do if ($base >>> 0 > 36) {
HEAP32[(___errno_location() | 0) >> 2] = 22;
$286 = 0;
$287 = 0;
} else {
$3 = $f + 4 | 0;
$4 = $f + 100 | 0;
do {
$6 = HEAP32[$3 >> 2] | 0;
if ($6 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $6 + 1;
$13 = HEAPU8[$6 >> 0] | 0;
} else $13 = ___shgetc($f) | 0;
} while ((_isspace($13) | 0) != 0);
$$lcssa113 = $13;
L11 : do switch ($$lcssa113 | 0) {
case 43:
case 45:
{
$17 = (($$lcssa113 | 0) == 45) << 31 >> 31;
$18 = HEAP32[$3 >> 2] | 0;
if ($18 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $18 + 1;
$c$0 = HEAPU8[$18 >> 0] | 0;
$neg$0 = $17;
break L11;
} else {
$c$0 = ___shgetc($f) | 0;
$neg$0 = $17;
break L11;
}
break;
}
default:
{
$c$0 = $$lcssa113;
$neg$0 = 0;
}
} while (0);
$25 = ($base | 0) == 0;
do if (($base & -17 | 0) == 0 & ($c$0 | 0) == 48) {
$29 = HEAP32[$3 >> 2] | 0;
if ($29 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $29 + 1;
$37 = HEAPU8[$29 >> 0] | 0;
} else $37 = ___shgetc($f) | 0;
if (($37 | 32 | 0) != 120) if ($25) {
$$116 = 8;
$c$117 = $37;
label = 46;
break;
} else {
$$1 = $base;
$c$1 = $37;
label = 32;
break;
}
$39 = HEAP32[$3 >> 2] | 0;
if ($39 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $39 + 1;
$47 = HEAPU8[$39 >> 0] | 0;
} else $47 = ___shgetc($f) | 0;
if ((HEAPU8[62840 + $47 >> 0] | 0) > 15) {
$51 = (HEAP32[$4 >> 2] | 0) == 0;
if (!$51) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
if (!$pok) {
___shlim($f, 0);
$286 = 0;
$287 = 0;
break L1;
}
if ($51) {
$286 = 0;
$287 = 0;
break L1;
}
HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
$286 = 0;
$287 = 0;
break L1;
} else {
$$116 = 16;
$c$117 = $47;
label = 46;
}
} else {
$$base14 = $25 ? 10 : $base;
if ((HEAPU8[62840 + $c$0 >> 0] | 0) >>> 0 < $$base14 >>> 0) {
$$1 = $$base14;
$c$1 = $c$0;
label = 32;
} else {
if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
___shlim($f, 0);
HEAP32[(___errno_location() | 0) >> 2] = 22;
$286 = 0;
$287 = 0;
break L1;
}
} while (0);
if ((label | 0) == 32) if (($$1 | 0) == 10) {
$67 = $c$1 + -48 | 0;
if ($67 >>> 0 < 10) {
$71 = $67;
$x$070 = 0;
while (1) {
$70 = ($x$070 * 10 | 0) + $71 | 0;
$72 = HEAP32[$3 >> 2] | 0;
if ($72 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $72 + 1;
$c$2$be = HEAPU8[$72 >> 0] | 0;
} else $c$2$be = ___shgetc($f) | 0;
$71 = $c$2$be + -48 | 0;
if (!($71 >>> 0 < 10 & $70 >>> 0 < 429496729)) {
$$lcssa112 = $70;
$c$2$be$lcssa = $c$2$be;
break;
} else $x$070 = $70;
}
$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;
if ($83 >>> 0 < 10) {
$85 = $288;
$86 = $289;
$89 = $83;
$c$359 = $c$2$lcssa;
while (1) {
$87 = ___muldi3($85 | 0, $86 | 0, 10, 0) | 0;
$88 = tempRet0;
$91 = (($89 | 0) < 0) << 31 >> 31;
$93 = ~$91;
if ($88 >>> 0 > $93 >>> 0 | ($88 | 0) == ($93 | 0) & $87 >>> 0 > ~$89 >>> 0) {
$$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;
if ($101 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $101 + 1;
$c$3$be = HEAPU8[$101 >> 0] | 0;
} else $c$3$be = ___shgetc($f) | 0;
$108 = $c$3$be + -48 | 0;
if ($108 >>> 0 < 10 & ($100 >>> 0 < 429496729 | ($100 | 0) == 429496729 & $99 >>> 0 < 2576980378)) {
$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;
}
}
if ($$lcssa >>> 0 > 9) {
$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) {
if (!($$116 + -1 & $$116)) {
$128 = HEAP8[63096 + (($$116 * 23 | 0) >>> 5 & 7) >> 0] | 0;
$130 = HEAP8[62840 + $c$117 >> 0] | 0;
$131 = $130 & 255;
if ($131 >>> 0 < $$116 >>> 0) {
$135 = $131;
$x$136 = 0;
while (1) {
$134 = $135 | $x$136 << $128;
$136 = HEAP32[$3 >> 2] | 0;
if ($136 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $136 + 1;
$c$4$be = HEAPU8[$136 >> 0] | 0;
} else $c$4$be = ___shgetc($f) | 0;
$144 = HEAP8[62840 + $c$4$be >> 0] | 0;
$135 = $144 & 255;
if (!($134 >>> 0 < 134217728 & $135 >>> 0 < $$116 >>> 0)) {
$$lcssa108 = $134;
$$lcssa109 = $144;
$c$4$be$lcssa = $c$4$be;
break;
} else $x$136 = $134;
}
$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;
if (($152 & 255) >>> 0 >= $$116 >>> 0 | ($154 >>> 0 > $150 >>> 0 | ($154 | 0) == ($150 | 0) & $156 >>> 0 > $149 >>> 0)) {
$$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;
$167 = $166 & 255 | $163;
$168 = HEAP32[$3 >> 2] | 0;
if ($168 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $168 + 1;
$c$5$be = HEAPU8[$168 >> 0] | 0;
} else $c$5$be = ___shgetc($f) | 0;
$166 = HEAP8[62840 + $c$5$be >> 0] | 0;
if (($166 & 255) >>> 0 >= $$116 >>> 0 | ($164 >>> 0 > $150 >>> 0 | ($164 | 0) == ($150 | 0) & $167 >>> 0 > $149 >>> 0)) {
$$115 = $$116;
$292 = $167;
$293 = $164;
$c$8 = $c$5$be;
label = 72;
break L63;
} else {
$161 = $167;
$162 = $164;
}
}
}
$120 = HEAP8[62840 + $c$117 >> 0] | 0;
$121 = $120 & 255;
if ($121 >>> 0 < $$116 >>> 0) {
$186 = $121;
$x$254 = 0;
while (1) {
$185 = $186 + (Math_imul($x$254, $$116) | 0) | 0;
$187 = HEAP32[$3 >> 2] | 0;
if ($187 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $187 + 1;
$c$6$be = HEAPU8[$187 >> 0] | 0;
} else $c$6$be = ___shgetc($f) | 0;
$195 = HEAP8[62840 + $c$6$be >> 0] | 0;
$186 = $195 & 255;
if (!($185 >>> 0 < 119304647 & $186 >>> 0 < $$116 >>> 0)) {
$$lcssa110 = $185;
$$lcssa111 = $195;
$c$6$be$lcssa = $c$6$be;
break;
} else $x$254 = $185;
}
$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;
}
if (($201 & 255) >>> 0 < $$116 >>> 0) {
$203 = ___udivdi3(-1, -1, $$116 | 0, 0) | 0;
$204 = tempRet0;
$205 = $295;
$207 = $294;
$215 = $201;
$c$742 = $c$6$lcssa;
while (1) {
if ($205 >>> 0 > $204 >>> 0 | ($205 | 0) == ($204 | 0) & $207 >>> 0 > $203 >>> 0) {
$$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;
if ($213 >>> 0 > 4294967295 | ($213 | 0) == -1 & $212 >>> 0 > ~$214 >>> 0) {
$$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;
if ($224 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $224 + 1;
$c$7$be = HEAPU8[$224 >> 0] | 0;
} else $c$7$be = ___shgetc($f) | 0;
$215 = HEAP8[62840 + $c$7$be >> 0] | 0;
if (($215 & 255) >>> 0 >= $$116 >>> 0) {
$$115 = $$116;
$292 = $222;
$293 = $223;
$c$8 = $c$7$be;
label = 72;
break;
} else {
$205 = $223;
$207 = $222;
$c$742 = $c$7$be;
}
}
} else {
$$115 = $$116;
$292 = $294;
$293 = $295;
$c$8 = $c$6$lcssa;
label = 72;
}
} while (0);
if ((label | 0) == 72) if ((HEAPU8[62840 + $c$8 >> 0] | 0) >>> 0 < $$115 >>> 0) {
do {
$239 = HEAP32[$3 >> 2] | 0;
if ($239 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $239 + 1;
$c$9$be = HEAPU8[$239 >> 0] | 0;
} else $c$9$be = ___shgetc($f) | 0;
} while ((HEAPU8[62840 + $c$9$be >> 0] | 0) >>> 0 < $$115 >>> 0);
HEAP32[(___errno_location() | 0) >> 2] = 34;
$259 = $1;
$261 = $0;
$neg$1 = ($0 & 1 | 0) == 0 & 0 == 0 ? $neg$0 : 0;
} else {
$259 = $293;
$261 = $292;
$neg$1 = $neg$0;
}
if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
if (!($259 >>> 0 < $1 >>> 0 | ($259 | 0) == ($1 | 0) & $261 >>> 0 < $0 >>> 0)) {
if (!(($0 & 1 | 0) != 0 | 0 != 0 | ($neg$1 | 0) != 0)) {
HEAP32[(___errno_location() | 0) >> 2] = 34;
$272 = _i64Add($0 | 0, $1 | 0, -1, -1) | 0;
$286 = tempRet0;
$287 = $272;
break;
}
if ($259 >>> 0 > $1 >>> 0 | ($259 | 0) == ($1 | 0) & $261 >>> 0 > $0 >>> 0) {
HEAP32[(___errno_location() | 0) >> 2] = 34;
$286 = $1;
$287 = $0;
break;
}
}
$281 = (($neg$1 | 0) < 0) << 31 >> 31;
$284 = _i64Subtract($261 ^ $neg$1 | 0, $259 ^ $281 | 0, $neg$1 | 0, $281 | 0) | 0;
$286 = tempRet0;
$287 = $284;
} while (0);
tempRet0 = $286;
return $287 | 0;
}
function _dispose_chunk($p, $psize) {
$p = $p | 0;
$psize = $psize | 0;
var $$1 = 0, $$14 = 0, $$2 = 0, $$lcssa = 0, $$pre$phi22Z2D = 0, $$pre$phi24Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $10 = 0, $100 = 0, $107 = 0, $109 = 0, $11 = 0, $110 = 0, $116 = 0, $124 = 0, $129 = 0, $130 = 0, $133 = 0, $135 = 0, $137 = 0, $15 = 0, $150 = 0, $155 = 0, $157 = 0, $160 = 0, $162 = 0, $165 = 0, $168 = 0, $169 = 0, $170 = 0, $172 = 0, $174 = 0, $175 = 0, $177 = 0, $178 = 0, $18 = 0, $183 = 0, $184 = 0, $193 = 0, $198 = 0, $2 = 0, $20 = 0, $201 = 0, $202 = 0, $208 = 0, $22 = 0, $223 = 0, $226 = 0, $227 = 0, $228 = 0, $232 = 0, $233 = 0, $239 = 0, $244 = 0, $245 = 0, $248 = 0, $250 = 0, $253 = 0, $258 = 0, $264 = 0, $268 = 0, $269 = 0, $287 = 0, $289 = 0, $296 = 0, $297 = 0, $298 = 0, $35 = 0, $40 = 0, $42 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $57 = 0, $59 = 0, $60 = 0, $62 = 0, $63 = 0, $68 = 0, $69 = 0, $78 = 0, $83 = 0, $86 = 0, $87 = 0, $9 = 0, $93 = 0, $99 = 0, $F17$0 = 0, $I20$0 = 0, $K21$0 = 0, $R$1 = 0, $R$1$lcssa = 0, $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, label = 0;
$0 = $p + $psize | 0;
$2 = HEAP32[$p + 4 >> 2] | 0;
do if (!($2 & 1)) {
$5 = HEAP32[$p >> 2] | 0;
if (!($2 & 3)) return;
$9 = $p + (0 - $5) | 0;
$10 = $5 + $psize | 0;
$11 = HEAP32[17610] | 0;
if ($9 >>> 0 < $11 >>> 0) _abort();
if (($9 | 0) == (HEAP32[17611] | 0)) {
$99 = $0 + 4 | 0;
$100 = HEAP32[$99 >> 2] | 0;
if (($100 & 3 | 0) != 3) {
$$1 = $9;
$$14 = $10;
break;
}
HEAP32[17608] = $10;
HEAP32[$99 >> 2] = $100 & -2;
HEAP32[$9 + 4 >> 2] = $10 | 1;
HEAP32[$9 + $10 >> 2] = $10;
return;
}
$15 = $5 >>> 3;
if ($5 >>> 0 < 256) {
$18 = HEAP32[$9 + 8 >> 2] | 0;
$20 = HEAP32[$9 + 12 >> 2] | 0;
$22 = 70464 + ($15 << 1 << 2) | 0;
if (($18 | 0) != ($22 | 0)) {
if ($18 >>> 0 < $11 >>> 0) _abort();
if ((HEAP32[$18 + 12 >> 2] | 0) != ($9 | 0)) _abort();
}
if (($20 | 0) == ($18 | 0)) {
HEAP32[17606] = HEAP32[17606] & ~(1 << $15);
$$1 = $9;
$$14 = $10;
break;
}
if (($20 | 0) == ($22 | 0)) $$pre$phi24Z2D = $20 + 8 | 0; else {
if ($20 >>> 0 < $11 >>> 0) _abort();
$35 = $20 + 8 | 0;
if ((HEAP32[$35 >> 2] | 0) == ($9 | 0)) $$pre$phi24Z2D = $35; else _abort();
}
HEAP32[$18 + 12 >> 2] = $20;
HEAP32[$$pre$phi24Z2D >> 2] = $18;
$$1 = $9;
$$14 = $10;
break;
}
$40 = HEAP32[$9 + 24 >> 2] | 0;
$42 = HEAP32[$9 + 12 >> 2] | 0;
do if (($42 | 0) == ($9 | 0)) {
$53 = $9 + 16 | 0;
$54 = $53 + 4 | 0;
$55 = HEAP32[$54 >> 2] | 0;
if (!$55) {
$57 = HEAP32[$53 >> 2] | 0;
if (!$57) {
$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;
if ($60) {
$R$1 = $60;
$RP$1 = $59;
continue;
}
$62 = $R$1 + 16 | 0;
$63 = HEAP32[$62 >> 2] | 0;
if (!$63) {
$R$1$lcssa = $R$1;
$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $63;
$RP$1 = $62;
}
}
if ($RP$1$lcssa >>> 0 < $11 >>> 0) _abort(); else {
HEAP32[$RP$1$lcssa >> 2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$45 = HEAP32[$9 + 8 >> 2] | 0;
if ($45 >>> 0 < $11 >>> 0) _abort();
$47 = $45 + 12 | 0;
if ((HEAP32[$47 >> 2] | 0) != ($9 | 0)) _abort();
$50 = $42 + 8 | 0;
if ((HEAP32[$50 >> 2] | 0) == ($9 | 0)) {
HEAP32[$47 >> 2] = $42;
HEAP32[$50 >> 2] = $45;
$R$3 = $42;
break;
} else _abort();
} while (0);
if (!$40) {
$$1 = $9;
$$14 = $10;
} else {
$68 = HEAP32[$9 + 28 >> 2] | 0;
$69 = 70728 + ($68 << 2) | 0;
if (($9 | 0) == (HEAP32[$69 >> 2] | 0)) {
HEAP32[$69 >> 2] = $R$3;
if (!$R$3) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $68);
$$1 = $9;
$$14 = $10;
break;
}
} else {
if ($40 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$78 = $40 + 16 | 0;
if ((HEAP32[$78 >> 2] | 0) == ($9 | 0)) HEAP32[$78 >> 2] = $R$3; else HEAP32[$40 + 20 >> 2] = $R$3;
if (!$R$3) {
$$1 = $9;
$$14 = $10;
break;
}
}
$83 = HEAP32[17610] | 0;
if ($R$3 >>> 0 < $83 >>> 0) _abort();
HEAP32[$R$3 + 24 >> 2] = $40;
$86 = $9 + 16 | 0;
$87 = HEAP32[$86 >> 2] | 0;
do if ($87) if ($87 >>> 0 < $83 >>> 0) _abort(); else {
HEAP32[$R$3 + 16 >> 2] = $87;
HEAP32[$87 + 24 >> 2] = $R$3;
break;
} while (0);
$93 = HEAP32[$86 + 4 >> 2] | 0;
if (!$93) {
$$1 = $9;
$$14 = $10;
} else if ($93 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R$3 + 20 >> 2] = $93;
HEAP32[$93 + 24 >> 2] = $R$3;
$$1 = $9;
$$14 = $10;
break;
}
}
} else {
$$1 = $p;
$$14 = $psize;
} while (0);
$107 = HEAP32[17610] | 0;
if ($0 >>> 0 < $107 >>> 0) _abort();
$109 = $0 + 4 | 0;
$110 = HEAP32[$109 >> 2] | 0;
if (!($110 & 2)) {
if (($0 | 0) == (HEAP32[17612] | 0)) {
$116 = (HEAP32[17609] | 0) + $$14 | 0;
HEAP32[17609] = $116;
HEAP32[17612] = $$1;
HEAP32[$$1 + 4 >> 2] = $116 | 1;
if (($$1 | 0) != (HEAP32[17611] | 0)) return;
HEAP32[17611] = 0;
HEAP32[17608] = 0;
return;
}
if (($0 | 0) == (HEAP32[17611] | 0)) {
$124 = (HEAP32[17608] | 0) + $$14 | 0;
HEAP32[17608] = $124;
HEAP32[17611] = $$1;
HEAP32[$$1 + 4 >> 2] = $124 | 1;
HEAP32[$$1 + $124 >> 2] = $124;
return;
}
$129 = ($110 & -8) + $$14 | 0;
$130 = $110 >>> 3;
do if ($110 >>> 0 < 256) {
$133 = HEAP32[$0 + 8 >> 2] | 0;
$135 = HEAP32[$0 + 12 >> 2] | 0;
$137 = 70464 + ($130 << 1 << 2) | 0;
if (($133 | 0) != ($137 | 0)) {
if ($133 >>> 0 < $107 >>> 0) _abort();
if ((HEAP32[$133 + 12 >> 2] | 0) != ($0 | 0)) _abort();
}
if (($135 | 0) == ($133 | 0)) {
HEAP32[17606] = HEAP32[17606] & ~(1 << $130);
break;
}
if (($135 | 0) == ($137 | 0)) $$pre$phi22Z2D = $135 + 8 | 0; else {
if ($135 >>> 0 < $107 >>> 0) _abort();
$150 = $135 + 8 | 0;
if ((HEAP32[$150 >> 2] | 0) == ($0 | 0)) $$pre$phi22Z2D = $150; else _abort();
}
HEAP32[$133 + 12 >> 2] = $135;
HEAP32[$$pre$phi22Z2D >> 2] = $133;
} else {
$155 = HEAP32[$0 + 24 >> 2] | 0;
$157 = HEAP32[$0 + 12 >> 2] | 0;
do if (($157 | 0) == ($0 | 0)) {
$168 = $0 + 16 | 0;
$169 = $168 + 4 | 0;
$170 = HEAP32[$169 >> 2] | 0;
if (!$170) {
$172 = HEAP32[$168 >> 2] | 0;
if (!$172) {
$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;
if ($175) {
$R7$1 = $175;
$RP9$1 = $174;
continue;
}
$177 = $R7$1 + 16 | 0;
$178 = HEAP32[$177 >> 2] | 0;
if (!$178) {
$R7$1$lcssa = $R7$1;
$RP9$1$lcssa = $RP9$1;
break;
} else {
$R7$1 = $178;
$RP9$1 = $177;
}
}
if ($RP9$1$lcssa >>> 0 < $107 >>> 0) _abort(); else {
HEAP32[$RP9$1$lcssa >> 2] = 0;
$R7$3 = $R7$1$lcssa;
break;
}
} else {
$160 = HEAP32[$0 + 8 >> 2] | 0;
if ($160 >>> 0 < $107 >>> 0) _abort();
$162 = $160 + 12 | 0;
if ((HEAP32[$162 >> 2] | 0) != ($0 | 0)) _abort();
$165 = $157 + 8 | 0;
if ((HEAP32[$165 >> 2] | 0) == ($0 | 0)) {
HEAP32[$162 >> 2] = $157;
HEAP32[$165 >> 2] = $160;
$R7$3 = $157;
break;
} else _abort();
} while (0);
if ($155) {
$183 = HEAP32[$0 + 28 >> 2] | 0;
$184 = 70728 + ($183 << 2) | 0;
if (($0 | 0) == (HEAP32[$184 >> 2] | 0)) {
HEAP32[$184 >> 2] = $R7$3;
if (!$R7$3) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $183);
break;
}
} else {
if ($155 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$193 = $155 + 16 | 0;
if ((HEAP32[$193 >> 2] | 0) == ($0 | 0)) HEAP32[$193 >> 2] = $R7$3; else HEAP32[$155 + 20 >> 2] = $R7$3;
if (!$R7$3) break;
}
$198 = HEAP32[17610] | 0;
if ($R7$3 >>> 0 < $198 >>> 0) _abort();
HEAP32[$R7$3 + 24 >> 2] = $155;
$201 = $0 + 16 | 0;
$202 = HEAP32[$201 >> 2] | 0;
do if ($202) if ($202 >>> 0 < $198 >>> 0) _abort(); else {
HEAP32[$R7$3 + 16 >> 2] = $202;
HEAP32[$202 + 24 >> 2] = $R7$3;
break;
} while (0);
$208 = HEAP32[$201 + 4 >> 2] | 0;
if ($208) if ($208 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R7$3 + 20 >> 2] = $208;
HEAP32[$208 + 24 >> 2] = $R7$3;
break;
}
}
} while (0);
HEAP32[$$1 + 4 >> 2] = $129 | 1;
HEAP32[$$1 + $129 >> 2] = $129;
if (($$1 | 0) == (HEAP32[17611] | 0)) {
HEAP32[17608] = $129;
return;
} else $$2 = $129;
} else {
HEAP32[$109 >> 2] = $110 & -2;
HEAP32[$$1 + 4 >> 2] = $$14 | 1;
HEAP32[$$1 + $$14 >> 2] = $$14;
$$2 = $$14;
}
$223 = $$2 >>> 3;
if ($$2 >>> 0 < 256) {
$226 = 70464 + ($223 << 1 << 2) | 0;
$227 = HEAP32[17606] | 0;
$228 = 1 << $223;
if (!($227 & $228)) {
HEAP32[17606] = $227 | $228;
$$pre$phiZ2D = $226 + 8 | 0;
$F17$0 = $226;
} else {
$232 = $226 + 8 | 0;
$233 = HEAP32[$232 >> 2] | 0;
if ($233 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
$$pre$phiZ2D = $232;
$F17$0 = $233;
}
}
HEAP32[$$pre$phiZ2D >> 2] = $$1;
HEAP32[$F17$0 + 12 >> 2] = $$1;
HEAP32[$$1 + 8 >> 2] = $F17$0;
HEAP32[$$1 + 12 >> 2] = $226;
return;
}
$239 = $$2 >>> 8;
if (!$239) $I20$0 = 0; else if ($$2 >>> 0 > 16777215) $I20$0 = 31; else {
$244 = ($239 + 1048320 | 0) >>> 16 & 8;
$245 = $239 << $244;
$248 = ($245 + 520192 | 0) >>> 16 & 4;
$250 = $245 << $248;
$253 = ($250 + 245760 | 0) >>> 16 & 2;
$258 = 14 - ($248 | $244 | $253) + ($250 << $253 >>> 15) | 0;
$I20$0 = $$2 >>> ($258 + 7 | 0) & 1 | $258 << 1;
}
$264 = 70728 + ($I20$0 << 2) | 0;
HEAP32[$$1 + 28 >> 2] = $I20$0;
HEAP32[$$1 + 20 >> 2] = 0;
HEAP32[$$1 + 16 >> 2] = 0;
$268 = HEAP32[17607] | 0;
$269 = 1 << $I20$0;
if (!($268 & $269)) {
HEAP32[17607] = $268 | $269;
HEAP32[$264 >> 2] = $$1;
HEAP32[$$1 + 24 >> 2] = $264;
HEAP32[$$1 + 12 >> 2] = $$1;
HEAP32[$$1 + 8 >> 2] = $$1;
return;
}
$K21$0 = $$2 << (($I20$0 | 0) == 31 ? 0 : 25 - ($I20$0 >>> 1) | 0);
$T$0 = HEAP32[$264 >> 2] | 0;
while (1) {
if ((HEAP32[$T$0 + 4 >> 2] & -8 | 0) == ($$2 | 0)) {
$T$0$lcssa = $T$0;
label = 127;
break;
}
$287 = $T$0 + 16 + ($K21$0 >>> 31 << 2) | 0;
$289 = HEAP32[$287 >> 2] | 0;
if (!$289) {
$$lcssa = $287;
$T$0$lcssa30 = $T$0;
label = 124;
break;
} else {
$K21$0 = $K21$0 << 1;
$T$0 = $289;
}
}
if ((label | 0) == 124) {
if ($$lcssa >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
HEAP32[$$lcssa >> 2] = $$1;
HEAP32[$$1 + 24 >> 2] = $T$0$lcssa30;
HEAP32[$$1 + 12 >> 2] = $$1;
HEAP32[$$1 + 8 >> 2] = $$1;
return;
} else if ((label | 0) == 127) {
$296 = $T$0$lcssa + 8 | 0;
$297 = HEAP32[$296 >> 2] | 0;
$298 = HEAP32[17610] | 0;
if (!($297 >>> 0 >= $298 >>> 0 & $T$0$lcssa >>> 0 >= $298 >>> 0)) _abort();
HEAP32[$297 + 12 >> 2] = $$1;
HEAP32[$296 >> 2] = $$1;
HEAP32[$$1 + 8 >> 2] = $297;
HEAP32[$$1 + 12 >> 2] = $T$0$lcssa;
HEAP32[$$1 + 24 >> 2] = 0;
return;
}
}
function _do_setkey($ctx, $key, $keylen) {
$ctx = $ctx | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $$0 = 0, $$0$i$10$i$ph = 0, $$0$i$5$i$ph = 0, $$0$i$i$ph = 0, $$0$i$ph = 0, $$0$i8 = 0, $$phi$trans$insert86 = 0, $$r$2 = 0, $$t$4 = 0, $0 = 0, $100 = 0, $101 = 0, $102 = 0, $115 = 0, $116 = 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, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $143 = 0, $146 = 0, $153 = 0, $156 = 0, $188 = 0, $19 = 0, $191 = 0, $194 = 0, $197 = 0, $228 = 0, $231 = 0, $240 = 0, $241 = 0, $244 = 0, $245 = 0, $249 = 0, $253 = 0, $258 = 0, $26 = 0, $263 = 0, $268 = 0, $273 = 0, $278 = 0, $283 = 0, $288 = 0, $33 = 0, $40 = 0, $46 = 0, $48 = 0, $5 = 0, $50 = 0, $54 = 0, $KC$0 = 0, $ctx$i$6$i = 0, $i$064 = 0, $j$063 = 0, $j$160 = 0, $j$2$lcssa = 0, $j$254 = 0, $j$328 = 0, $j$429 = 0, $j$5$33 = 0, $j$535 = 0, $j$645 = 0, $j$7$lcssa = 0, $j$738 = 0, $r$061 = 0, $r$150 = 0, $r$2$lcssa = 0, $r$246 = 0, $rconpointer$052 = 0, $rounds$0 = 0, $scratch$i$i = 0, $t$062 = 0, $t$1$lcssa = 0, $t$155 = 0, $t$251 = 0, $t$3$lcssa = 0, $t$347 = 0, $t$4$lcssa = 0, $t$439 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528 | 0;
$vararg_buffer = sp + 504 | 0;
$ctx$i$6$i = sp;
$scratch$i$i = sp + 512 | 0;
$0 = __gcry_fips_mode() | 0;
L1 : do if (!(HEAP32[17513] | $0)) {
HEAP32[17513] = 1;
_do_setkey($ctx$i$6$i, 37677, 16) | 0;
$5 = HEAP32[$ctx$i$6$i + 496 >> 2] | 0;
if ($5) FUNCTION_TABLE_v[$5 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$6$i + 488 >> 2] & 63]($ctx$i$6$i, $scratch$i$i, 37693) | 0;
do if (!(_memcmp($scratch$i$i, 37709, 16) | 0)) {
_check_decryption_preparation($ctx$i$6$i);
$12 = HEAP32[$ctx$i$6$i + 500 >> 2] | 0;
if ($12) FUNCTION_TABLE_v[$12 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$6$i + 492 >> 2] & 63]($ctx$i$6$i, $scratch$i$i, $scratch$i$i) | 0;
if (!(_memcmp($scratch$i$i, 37693, 16) | 0)) {
_do_setkey($ctx$i$6$i, 37814, 24) | 0;
$19 = HEAP32[$ctx$i$6$i + 496 >> 2] | 0;
if ($19) FUNCTION_TABLE_v[$19 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$6$i + 488 >> 2] & 63]($ctx$i$6$i, $scratch$i$i, 37838) | 0;
if (!(_memcmp($scratch$i$i, 37854, 16) | 0)) {
_check_decryption_preparation($ctx$i$6$i);
$26 = HEAP32[$ctx$i$6$i + 500 >> 2] | 0;
if ($26) FUNCTION_TABLE_v[$26 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$6$i + 492 >> 2] & 63]($ctx$i$6$i, $scratch$i$i, $scratch$i$i) | 0;
if (!(_memcmp($scratch$i$i, 37838, 16) | 0)) {
_do_setkey($ctx$i$6$i, 37934, 32) | 0;
$33 = HEAP32[$ctx$i$6$i + 496 >> 2] | 0;
if ($33) FUNCTION_TABLE_v[$33 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$6$i + 488 >> 2] & 63]($ctx$i$6$i, $scratch$i$i, 37966) | 0;
if (!(_memcmp($scratch$i$i, 37982, 16) | 0)) {
_check_decryption_preparation($ctx$i$6$i);
$40 = HEAP32[$ctx$i$6$i + 500 >> 2] | 0;
if ($40) FUNCTION_TABLE_v[$40 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$6$i + 492 >> 2] & 63]($ctx$i$6$i, $scratch$i$i, $scratch$i$i) | 0;
if (!(_memcmp($scratch$i$i, 37966, 16) | 0)) {
$46 = __gcry_selftest_helper_ctr(37427, 1, 2, 4, 9, 16, 504) | 0;
if ($46) {
$$0$i$ph = $46;
label = 25;
break;
}
$48 = __gcry_selftest_helper_cbc(37427, 1, 2, 3, 10, 16, 504) | 0;
if ($48) {
$$0$i$ph = $48;
label = 25;
break;
}
$50 = __gcry_selftest_helper_cfb(37427, 1, 2, 2, 10, 16, 504) | 0;
HEAP32[17514] = $50;
if (!$50) break L1; else {
$$0$i8 = $50;
break;
}
} else $$0$i$i$ph = 37998;
} else $$0$i$i$ph = 38030;
$$0$i$ph = $$0$i$i$ph;
label = 25;
break;
} else $$0$i$5$i$ph = 37870;
} else $$0$i$5$i$ph = 37902;
$$0$i$ph = $$0$i$5$i$ph;
label = 25;
} else {
$$0$i$10$i$ph = 37725;
label = 8;
}
} else {
$$0$i$10$i$ph = 37757;
label = 8;
} while (0);
if ((label | 0) == 8) {
$$0$i$ph = $$0$i$10$i$ph;
label = 25;
}
if ((label | 0) == 25) {
HEAP32[17514] = $$0$i$ph;
$$0$i8 = $$0$i$ph;
}
HEAP32[$vararg_buffer >> 2] = $$0$i8;
__gcry_log_error(43128, $vararg_buffer);
label = 28;
} else label = 28; while (0);
if ((label | 0) == 28) if (HEAP32[17514] | 0) {
$$0 = 50;
STACKTOP = sp;
return $$0 | 0;
}
switch ($keylen | 0) {
case 16:
{
$KC$0 = 4;
$rounds$0 = 10;
break;
}
case 24:
{
$KC$0 = 6;
$rounds$0 = 12;
break;
}
case 32:
{
$KC$0 = 8;
$rounds$0 = 14;
break;
}
default:
{
$$0 = 44;
STACKTOP = sp;
return $$0 | 0;
}
}
HEAP32[$ctx + 480 >> 2] = $rounds$0;
$54 = $ctx + 484 | 0;
HEAP8[$54 >> 0] = HEAP8[$54 >> 0] & -2;
HEAP32[$ctx + 488 >> 2] = 29;
HEAP32[$ctx + 492 >> 2] = 30;
HEAP32[$ctx + 496 >> 2] = 1;
HEAP32[$ctx + 500 >> 2] = 2;
$i$064 = 0;
do {
HEAP8[($i$064 & 3) + ($ctx$i$6$i + ($i$064 >> 2 << 2)) >> 0] = HEAP8[$key + $i$064 >> 0] | 0;
$i$064 = $i$064 + 1 | 0;
} while (($i$064 | 0) != ($keylen | 0));
$100 = $KC$0 + -1 | 0;
$101 = $ctx$i$6$i + 32 | 0;
$j$063 = $100;
while (1) {
HEAP32[$101 + ($j$063 << 2) >> 2] = HEAP32[$ctx$i$6$i + ($j$063 << 2) >> 2];
if (($j$063 | 0) > 0) $j$063 = $j$063 + -1 | 0; else break;
}
$102 = $rounds$0 | 1;
$j$160 = 0;
$r$061 = 0;
$t$062 = 0;
while (1) {
if (($j$160 | 0) < ($KC$0 | 0) & ($t$062 | 0) < 4) {
$115 = $j$160 - $KC$0 | 0;
$116 = $t$062 + -4 | 0;
_memcpy($ctx + (($r$061 << 4) + ($t$062 << 2)) | 0, $101 + ($j$160 << 2) | 0, Math_imul($115 >>> 0 > $116 >>> 0 ? $115 : $116, -4) | 0) | 0;
$j$254 = $j$160;
$t$155 = $t$062;
while (1) {
$138 = $j$254 + 1 | 0;
$139 = $t$155 + 1 | 0;
if (($138 | 0) < ($KC$0 | 0) & ($139 | 0) < 4) {
$j$254 = $138;
$t$155 = $139;
} else {
$j$2$lcssa = $138;
$t$1$lcssa = $139;
break;
}
}
} else {
$j$2$lcssa = $j$160;
$t$1$lcssa = $t$062;
}
$143 = ($t$1$lcssa | 0) == 4;
$r$061 = ($143 & 1) + $r$061 | 0;
$t$062 = $143 ? 0 : $t$1$lcssa;
$146 = ($r$061 | 0) < ($102 | 0);
if (!(($j$2$lcssa | 0) < ($KC$0 | 0) & $146)) break; else $j$160 = $j$2$lcssa;
}
if ($146) {
$119 = $101 + ($100 << 2) + 1 | 0;
$120 = $101 + ($100 << 2) + 2 | 0;
$121 = $101 + 1 | 0;
$122 = $101 + ($100 << 2) + 3 | 0;
$123 = $101 + 2 | 0;
$124 = $101 + ($100 << 2) | 0;
$125 = $101 + 3 | 0;
$126 = ($KC$0 | 0) == 8;
$127 = $KC$0 >>> 1;
$128 = $127 + -1 | 0;
$129 = $101 + ($128 << 2) | 0;
$130 = $101 + ($127 << 2) | 0;
$131 = $101 + ($128 << 2) + 1 | 0;
$132 = $101 + ($127 << 2) + 1 | 0;
$133 = $101 + ($128 << 2) + 2 | 0;
$134 = $101 + ($127 << 2) + 2 | 0;
$135 = $101 + ($128 << 2) + 3 | 0;
$136 = $101 + ($127 << 2) + 3 | 0;
$j$5$33 = $127 + 1 | 0;
$137 = $j$5$33 >>> 0 < 8;
$$phi$trans$insert86 = $101 + ($127 << 2) | 0;
$r$150 = $r$061;
$rconpointer$052 = 0;
$t$251 = $t$062;
while (1) {
$153 = HEAP32[$101 >> 2] | 0;
$156 = $153 & 255 ^ HEAP8[4957 + ((HEAPU8[$119 >> 0] | 0) << 2) >> 0];
HEAP8[$101 >> 0] = $156;
HEAP8[$121 >> 0] = ($153 & 65535) >>> 8 & 255 ^ HEAP8[4957 + ((HEAPU8[$120 >> 0] | 0) << 2) >> 0];
HEAP8[$123 >> 0] = $153 >>> 16 & 255 ^ HEAP8[4957 + ((HEAPU8[$122 >> 0] | 0) << 2) >> 0];
HEAP8[$125 >> 0] = $153 >>> 24 & 255 ^ HEAP8[4957 + ((HEAPU8[$124 >> 0] | 0) << 2) >> 0];
HEAP8[$101 >> 0] = $156 & 255 ^ HEAP32[5980 + ($rconpointer$052 << 2) >> 2];
$rconpointer$052 = $rconpointer$052 + 1 | 0;
if ($126) {
$197 = HEAP32[$101 >> 2] | 0;
$j$429 = 1;
do {
$194 = $101 + ($j$429 << 2) | 0;
$197 = HEAP32[$194 >> 2] ^ $197;
HEAP32[$194 >> 2] = $197;
$j$429 = $j$429 + 1 | 0;
} while (($j$429 | 0) < ($127 | 0));
HEAP8[$130 >> 0] = HEAP8[$130 >> 0] ^ HEAP8[4957 + ((HEAPU8[$129 >> 0] | 0) << 2) >> 0];
HEAP8[$132 >> 0] = HEAP8[$132 >> 0] ^ HEAP8[4957 + ((HEAPU8[$131 >> 0] | 0) << 2) >> 0];
HEAP8[$134 >> 0] = HEAP8[$134 >> 0] ^ HEAP8[4957 + ((HEAPU8[$133 >> 0] | 0) << 2) >> 0];
HEAP8[$136 >> 0] = HEAP8[$136 >> 0] ^ HEAP8[4957 + ((HEAPU8[$135 >> 0] | 0) << 2) >> 0];
if ($137) {
$231 = HEAP32[$$phi$trans$insert86 >> 2] | 0;
$j$535 = $j$5$33;
do {
$228 = $101 + ($j$535 << 2) | 0;
$231 = HEAP32[$228 >> 2] ^ $231;
HEAP32[$228 >> 2] = $231;
$j$535 = $j$535 + 1 | 0;
} while (($j$535 | 0) < 8);
}
} else {
$191 = HEAP32[$101 >> 2] | 0;
$j$328 = 1;
do {
$188 = $101 + ($j$328 << 2) | 0;
$191 = HEAP32[$188 >> 2] ^ $191;
HEAP32[$188 >> 2] = $191;
$j$328 = $j$328 + 1 | 0;
} while (($j$328 | 0) < ($KC$0 | 0));
}
if (($r$150 | 0) < ($102 | 0)) {
$j$645 = 0;
$r$246 = $r$150;
$t$347 = $t$251;
while (1) {
if (($j$645 | 0) < ($KC$0 | 0) & ($t$347 | 0) < 4) {
$240 = $j$645 - $KC$0 | 0;
$241 = $t$347 + -4 | 0;
_memcpy($ctx + (($r$246 << 4) + ($t$347 << 2)) | 0, $101 + ($j$645 << 2) | 0, Math_imul($240 >>> 0 > $241 >>> 0 ? $240 : $241, -4) | 0) | 0;
$j$738 = $j$645;
$t$439 = $t$347;
while (1) {
$244 = $j$738 + 1 | 0;
$245 = $t$439 + 1 | 0;
if (($244 | 0) < ($KC$0 | 0) & ($245 | 0) < 4) {
$j$738 = $244;
$t$439 = $245;
} else {
$j$7$lcssa = $244;
$t$4$lcssa = $245;
break;
}
}
} else {
$j$7$lcssa = $j$645;
$t$4$lcssa = $t$347;
}
$249 = ($t$4$lcssa | 0) == 4;
$$r$2 = ($249 & 1) + $r$246 | 0;
$$t$4 = $249 ? 0 : $t$4$lcssa;
if (($j$7$lcssa | 0) < ($KC$0 | 0) & ($$r$2 | 0) < ($102 | 0)) {
$j$645 = $j$7$lcssa;
$r$246 = $$r$2;
$t$347 = $$t$4;
} else {
$r$2$lcssa = $$r$2;
$t$3$lcssa = $$t$4;
break;
}
}
} else {
$r$2$lcssa = $r$150;
$t$3$lcssa = $t$251;
}
if (($r$2$lcssa | 0) >= ($102 | 0)) break; else {
$r$150 = $r$2$lcssa;
$t$251 = $t$3$lcssa;
}
}
}
$253 = $ctx$i$6$i;
HEAP32[$253 >> 2] = 0;
HEAP32[$253 + 4 >> 2] = 0;
$258 = $ctx$i$6$i + 8 | 0;
HEAP32[$258 >> 2] = 0;
HEAP32[$258 + 4 >> 2] = 0;
$263 = $ctx$i$6$i + 16 | 0;
HEAP32[$263 >> 2] = 0;
HEAP32[$263 + 4 >> 2] = 0;
$268 = $ctx$i$6$i + 24 | 0;
HEAP32[$268 >> 2] = 0;
HEAP32[$268 + 4 >> 2] = 0;
$273 = $ctx$i$6$i + 32 | 0;
HEAP32[$273 >> 2] = 0;
HEAP32[$273 + 4 >> 2] = 0;
$278 = $ctx$i$6$i + 40 | 0;
HEAP32[$278 >> 2] = 0;
HEAP32[$278 + 4 >> 2] = 0;
$283 = $ctx$i$6$i + 48 | 0;
HEAP32[$283 >> 2] = 0;
HEAP32[$283 + 4 >> 2] = 0;
$288 = $ctx$i$6$i + 56 | 0;
HEAP32[$288 >> 2] = 0;
HEAP32[$288 + 4 >> 2] = 0;
$$0 = 0;
STACKTOP = sp;
return $$0 | 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, $$$01 = 0, $$$01$us = 0, $$0 = 0, $$0$lcssa$i$26 = 0, $$0$lcssa$i$9 = 0, $$01$lcssa = 0, $$0149 = 0, $$0149$us = 0, $$02$lcssa = 0, $$0248 = 0, $$0248$us = 0, $$06$i = 0, $$06$i$19 = 0, $$08$i$us = 0, $$1$ph$i$12 = 0, $$1$ph$i$32 = 0, $$1$ph$i$us = 0, $$13 = 0, $$13$i = 0, $$13$i$34 = 0, $$14$i = 0, $$14$i$us = 0, $$2 = 0, $$pre$phiZ2D = 0, $1 = 0, $100 = 0, $101 = 0, $102 = 0, $116 = 0, $119 = 0, $120 = 0, $122 = 0, $125 = 0, $126 = 0, $13 = 0, $139 = 0, $14 = 0, $141 = 0, $148 = 0, $149 = 0, $150 = 0, $16 = 0, $165 = 0, $19 = 0, $22 = 0, $26 = 0, $28 = 0, $3 = 0, $32 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $5 = 0, $6 = 0, $65 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $burn$0$lcssa = 0, $burn$050 = 0, $burn$050$us = 0, $burn$1 = 0, $burn$2 = 0, $dst$0$ph$i$11 = 0, $dst$0$ph$i$30 = 0, $dst$0$ph$i$us = 0, $dst$01$i = 0, $dst$01$i$14 = 0, $dst$01$i$36 = 0, $dst$01$i$us = 0, $i$0$lcssa = 0, $i$042 = 0, $i$140 = 0, $ivp$0$lcssa = 0, $ivp$047 = 0, $ivp$047$phi = 0, $ivp$047$us = 0, $ivp$047$us$phi = 0, $ivp$1$lcssa = 0, $ivp$141 = 0, $ivp$239 = 0, $ldst$0$lcssa$i$10 = 0, $ldst$0$lcssa$i$28 = 0, $ldst$04$i = 0, $ldst$04$i$21 = 0, $ldst$05$i$us = 0, $lsrc$0$lcssa$i = 0, $lsrc$0$lcssa$i$27 = 0, $lsrc$05$i = 0, $lsrc$05$i$20 = 0, $lsrc1$06$i$us = 0, $lsrc2$07$i$us = 0, $n$046 = 0, $n$046$us = 0, $nblocks$0 = 0, $scevgep$i$16 = 0, $scevgep$i$8 = 0, $scevgep19$i$us = 0, $src$0$ph$i = 0, $src$0$ph$i$31 = 0, $src$02$i = 0, $src$02$i$35 = 0, $src1$0$ph$i$us = 0, $src1$02$i = 0, $src1$02$i$us = 0, $src2$0$ph$i$us = 0, $src2$03$i = 0, $src2$03$i$us = 0;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 20 >> 2] | 0;
$5 = HEAP32[$1 + 36 >> 2] | 0;
$6 = ($inbuflen >>> 0) / ($3 >>> 0) | 0;
$7 = $c + 52 | 0;
$8 = HEAP32[$7 >> 2] | 0;
$9 = $8 & 8;
if ((($9 | 0) != 0 ? $3 : $inbuflen) >>> 0 > $outbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$13 = ($inbuflen >>> 0) % ($3 >>> 0) | 0;
$14 = ($13 | 0) == 0;
if ($14) $$pre$phiZ2D = $8 & 4; else {
$16 = $8 & 4;
if ($3 >>> 0 >= $inbuflen >>> 0 | ($16 | 0) == 0) {
$$0 = 139;
return $$0 | 0;
} else $$pre$phiZ2D = $16;
}
$19 = $3 >>> 0 < $inbuflen >>> 0;
$nblocks$0 = (($14 & ($19 & ($$pre$phiZ2D | 0) != 0)) << 31 >> 31) + $6 | 0;
$22 = HEAP32[$c + 28 >> 2] | 0;
if (!$22) {
$32 = $c + 64 | 0;
if (!$nblocks$0) {
$$13 = $inbuf;
$$2 = $outbuf;
$116 = $8;
$burn$1 = 0;
} else {
$35 = $3 + -4 | 0;
$36 = $35 & -4;
$37 = $36 + 4 | 0;
$38 = $35 - $36 | 0;
$39 = $c + 496 | 0;
if ($3 >>> 0 > 3) {
$$0149$us = $outbuf;
$$0248$us = $inbuf;
$burn$050$us = 0;
$ivp$047$us = $32;
$n$046$us = 0;
while (1) {
if (!(($$0248$us | $ivp$047$us | $$0149$us) & 3)) {
$scevgep19$i$us = $ivp$047$us + $37 | 0;
$$08$i$us = $3;
$ldst$05$i$us = $$0149$us;
$lsrc1$06$i$us = $$0248$us;
$lsrc2$07$i$us = $ivp$047$us;
while (1) {
HEAP32[$ldst$05$i$us >> 2] = HEAP32[$lsrc2$07$i$us >> 2] ^ HEAP32[$lsrc1$06$i$us >> 2];
$$08$i$us = $$08$i$us + -4 | 0;
if ($$08$i$us >>> 0 <= 3) break; else {
$ldst$05$i$us = $ldst$05$i$us + 4 | 0;
$lsrc1$06$i$us = $lsrc1$06$i$us + 4 | 0;
$lsrc2$07$i$us = $lsrc2$07$i$us + 4 | 0;
}
}
$$1$ph$i$us = $38;
$dst$0$ph$i$us = $$0149$us + $37 | 0;
$src1$0$ph$i$us = $$0248$us + $37 | 0;
$src2$0$ph$i$us = $scevgep19$i$us;
} else {
$$1$ph$i$us = $3;
$dst$0$ph$i$us = $$0149$us;
$src1$0$ph$i$us = $$0248$us;
$src2$0$ph$i$us = $ivp$047$us;
}
if ($$1$ph$i$us) {
$$14$i$us = $$1$ph$i$us;
$dst$01$i$us = $dst$0$ph$i$us;
$src1$02$i$us = $src1$0$ph$i$us;
$src2$03$i$us = $src2$0$ph$i$us;
while (1) {
HEAP8[$dst$01$i$us >> 0] = HEAP8[$src2$03$i$us >> 0] ^ HEAP8[$src1$02$i$us >> 0];
$$14$i$us = $$14$i$us + -1 | 0;
if (!$$14$i$us) break; else {
$dst$01$i$us = $dst$01$i$us + 1 | 0;
$src1$02$i$us = $src1$02$i$us + 1 | 0;
$src2$03$i$us = $src2$03$i$us + 1 | 0;
}
}
}
$65 = FUNCTION_TABLE_iiii[$5 & 63]($39, $$0149$us, $$0149$us) | 0;
$67 = $65 >>> 0 > $burn$050$us >>> 0 ? $65 : $burn$050$us;
$68 = $$0248$us + $3 | 0;
$69 = HEAP32[$7 >> 2] | 0;
$$$01$us = ($69 & 8 | 0) == 0 ? $$0149$us + $3 | 0 : $$0149$us;
$n$046$us = $n$046$us + 1 | 0;
if ($n$046$us >>> 0 >= $nblocks$0 >>> 0) {
$$01$lcssa = $$$01$us;
$$02$lcssa = $68;
$165 = $69;
$burn$0$lcssa = $67;
$ivp$0$lcssa = $$0149$us;
break;
} else {
$ivp$047$us$phi = $$0149$us;
$$0149$us = $$$01$us;
$$0248$us = $68;
$burn$050$us = $67;
$ivp$047$us = $ivp$047$us$phi;
}
}
} else {
$40 = ($3 | 0) == 0;
$$0149 = $outbuf;
$$0248 = $inbuf;
$burn$050 = 0;
$ivp$047 = $32;
$n$046 = 0;
while (1) {
if (!$40) {
$$14$i = $3;
$dst$01$i = $$0149;
$src1$02$i = $$0248;
$src2$03$i = $ivp$047;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src2$03$i >> 0] ^ HEAP8[$src1$02$i >> 0];
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src1$02$i = $src1$02$i + 1 | 0;
$src2$03$i = $src2$03$i + 1 | 0;
}
}
}
$83 = FUNCTION_TABLE_iiii[$5 & 63]($39, $$0149, $$0149) | 0;
$85 = $83 >>> 0 > $burn$050 >>> 0 ? $83 : $burn$050;
$86 = $$0248 + $3 | 0;
$87 = HEAP32[$7 >> 2] | 0;
$$$01 = ($87 & 8 | 0) == 0 ? $$0149 + $3 | 0 : $$0149;
$n$046 = $n$046 + 1 | 0;
if ($n$046 >>> 0 >= $nblocks$0 >>> 0) {
$$01$lcssa = $$$01;
$$02$lcssa = $86;
$165 = $87;
$burn$0$lcssa = $85;
$ivp$0$lcssa = $$0149;
break;
} else {
$ivp$047$phi = $$0149;
$$0149 = $$$01;
$$0248 = $86;
$burn$050 = $85;
$ivp$047 = $ivp$047$phi;
}
}
}
if (($ivp$0$lcssa | 0) == ($32 | 0)) {
$$13 = $$02$lcssa;
$$2 = $$01$lcssa;
$116 = $165;
$burn$1 = $burn$0$lcssa;
} else {
if (!(($ivp$0$lcssa | $32) & 3)) {
if ($3 >>> 0 > 3) {
$100 = $3 + -4 | 0;
$101 = $100 & -4;
$102 = $101 + 4 | 0;
$scevgep$i$16 = $32 + $102 | 0;
$$06$i$19 = $3;
$ldst$04$i$21 = $32;
$lsrc$05$i$20 = $ivp$0$lcssa;
while (1) {
HEAP32[$ldst$04$i$21 >> 2] = HEAP32[$lsrc$05$i$20 >> 2];
$$06$i$19 = $$06$i$19 + -4 | 0;
if ($$06$i$19 >>> 0 <= 3) break; else {
$ldst$04$i$21 = $ldst$04$i$21 + 4 | 0;
$lsrc$05$i$20 = $lsrc$05$i$20 + 4 | 0;
}
}
$$0$lcssa$i$26 = $100 - $101 | 0;
$ldst$0$lcssa$i$28 = $scevgep$i$16;
$lsrc$0$lcssa$i$27 = $ivp$0$lcssa + $102 | 0;
} else {
$$0$lcssa$i$26 = $3;
$ldst$0$lcssa$i$28 = $32;
$lsrc$0$lcssa$i$27 = $ivp$0$lcssa;
}
$$1$ph$i$32 = $$0$lcssa$i$26;
$dst$0$ph$i$30 = $ldst$0$lcssa$i$28;
$src$0$ph$i$31 = $lsrc$0$lcssa$i$27;
} else {
$$1$ph$i$32 = $3;
$dst$0$ph$i$30 = $32;
$src$0$ph$i$31 = $ivp$0$lcssa;
}
if (!$$1$ph$i$32) {
$$13 = $$02$lcssa;
$$2 = $$01$lcssa;
$116 = $165;
$burn$1 = $burn$0$lcssa;
} else {
$$13$i$34 = $$1$ph$i$32;
$dst$01$i$36 = $dst$0$ph$i$30;
$src$02$i$35 = $src$0$ph$i$31;
while (1) {
HEAP8[$dst$01$i$36 >> 0] = HEAP8[$src$02$i$35 >> 0] | 0;
$$13$i$34 = $$13$i$34 + -1 | 0;
if (!$$13$i$34) break; else {
$dst$01$i$36 = $dst$01$i$36 + 1 | 0;
$src$02$i$35 = $src$02$i$35 + 1 | 0;
}
}
$$13 = $$02$lcssa;
$$2 = $$01$lcssa;
$116 = HEAP32[$7 >> 2] | 0;
$burn$1 = $burn$0$lcssa;
}
}
}
} else {
FUNCTION_TABLE_viiiiii[$22 & 1]($c + 496 | 0, $c + 64 | 0, $outbuf, $inbuf, $nblocks$0, $9);
$26 = Math_imul($nblocks$0, $3) | 0;
$28 = HEAP32[$7 >> 2] | 0;
$$13 = $inbuf + $26 | 0;
$$2 = ($28 & 8 | 0) == 0 ? $outbuf + $26 | 0 : $outbuf;
$116 = $28;
$burn$1 = 0;
}
if ($19 & ($116 & 4 | 0) != 0) {
$$ = $14 ? $3 : $13;
$119 = $$2 + (0 - $3) | 0;
$120 = $c + 64 | 0;
if (!$$) {
$i$0$lcssa = 0;
$ivp$1$lcssa = $120;
} else {
$122 = $$ + 64 | 0;
$i$042 = 0;
$ivp$141 = $120;
while (1) {
$125 = HEAP8[$$13 + $i$042 >> 0] | 0;
$126 = $119 + $i$042 | 0;
HEAP8[$119 + ($i$042 + $3) >> 0] = HEAP8[$126 >> 0] | 0;
HEAP8[$126 >> 0] = HEAP8[$ivp$141 >> 0] ^ $125;
$i$042 = $i$042 + 1 | 0;
if (($i$042 | 0) == ($$ | 0)) break; else $ivp$141 = $ivp$141 + 1 | 0;
}
$i$0$lcssa = $$;
$ivp$1$lcssa = $c + $122 | 0;
}
if ($i$0$lcssa >>> 0 < $3 >>> 0) {
$i$140 = $i$0$lcssa;
$ivp$239 = $ivp$1$lcssa;
while (1) {
HEAP8[$119 + $i$140 >> 0] = HEAP8[$ivp$239 >> 0] | 0;
$i$140 = $i$140 + 1 | 0;
if (($i$140 | 0) == ($3 | 0)) break; else $ivp$239 = $ivp$239 + 1 | 0;
}
}
$139 = FUNCTION_TABLE_iiii[$5 & 63]($c + 496 | 0, $119, $119) | 0;
$141 = $139 >>> 0 > $burn$1 >>> 0 ? $139 : $burn$1;
if (!(($119 | $120) & 3)) {
if ($3 >>> 0 > 3) {
$148 = $3 + -4 | 0;
$149 = $148 & -4;
$150 = $149 + 4 | 0;
$scevgep$i$8 = $120 + $150 | 0;
$$06$i = $3;
$ldst$04$i = $120;
$lsrc$05$i = $119;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i$9 = $148 - $149 | 0;
$ldst$0$lcssa$i$10 = $scevgep$i$8;
$lsrc$0$lcssa$i = $119 + $150 | 0;
} else {
$$0$lcssa$i$9 = $3;
$ldst$0$lcssa$i$10 = $120;
$lsrc$0$lcssa$i = $119;
}
$$1$ph$i$12 = $$0$lcssa$i$9;
$dst$0$ph$i$11 = $ldst$0$lcssa$i$10;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i$12 = $3;
$dst$0$ph$i$11 = $120;
$src$0$ph$i = $119;
}
if (!$$1$ph$i$12) $burn$2 = $141; else {
$$13$i = $$1$ph$i$12;
$dst$01$i$14 = $dst$0$ph$i$11;
$src$02$i = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i$14 >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) {
$burn$2 = $141;
break;
} else {
$dst$01$i$14 = $dst$01$i$14 + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
} else $burn$2 = $burn$1;
if (!$burn$2) {
$$0 = 0;
return $$0 | 0;
}
___gcry_burn_stack($burn$2 + 16 | 0);
$$0 = 0;
return $$0 | 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, $101 = 0, $12 = 0, $13 = 0, $15 = 0, $17 = 0, $18 = 0, $20 = 0, $22 = 0, $23 = 0, $25 = 0, $27 = 0, $29 = 0, $3 = 0, $30 = 0, $32 = 0, $34 = 0, $35 = 0, $37 = 0, $39 = 0, $41 = 0, $43 = 0, $46 = 0, $48 = 0, $5 = 0, $50 = 0, $52 = 0, $53 = 0, $55 = 0, $56 = 0, $58 = 0, $59 = 0, $62 = 0, $64 = 0, $66 = 0, $70 = 0, $71 = 0, $73 = 0, $74 = 0, $79 = 0, $82 = 0, $84 = 0, $86 = 0, $95 = 0, $97 = 0, $99 = 0, $G = 0, $Q = 0, $a$sroa$0$0$ph = 0, $a$sroa$0$1 = 0, $a$sroa$0$12032 = 0, $a$sroa$0$12033 = 0, $a$sroa$0$2 = 0, $a$sroa$0$4 = 0, $a$sroa$0$5 = 0, $b$sroa$0$0$ph = 0, $b$sroa$0$1 = 0, $b$sroa$0$12130 = 0, $b$sroa$0$12131 = 0, $b$sroa$0$2 = 0, $b$sroa$0$4 = 0, $b$sroa$0$6 = 0, $ctx = 0, $d$1 = 0, $dialect$1 = 0, $errc$3 = 0, $flags = 0, $h$sroa$0$1 = 0, $h$sroa$0$12326 = 0, $h$sroa$0$12327 = 0, $h$sroa$0$2 = 0, $h$sroa$0$4 = 0, $h$sroa$0$6 = 0, $l1$0 = 0, $l1$02425 = 0, $model$1 = 0, $n$sroa$0$0$ph = 0, $n$sroa$0$1 = 0, $n$sroa$0$12228 = 0, $n$sroa$0$12229 = 0, $n$sroa$0$2 = 0, $n$sroa$0$4 = 0, $n$sroa$0$6 = 0, $name$0 = 0, $p$sroa$0$0$ph = 0, $p$sroa$0$1 = 0, $p$sroa$0$11934 = 0, $p$sroa$0$11935 = 0, $p$sroa$0$2 = 0, $p$sroa$0$4 = 0, $p$sroa$0$5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$ctx = sp + 12 | 0;
$G = sp + 8 | 0;
$Q = sp + 4 | 0;
$flags = sp;
HEAP32[$ctx >> 2] = 0;
HEAP32[$G >> 2] = 0;
HEAP32[$Q >> 2] = 0;
HEAP32[$flags >> 2] = 0;
HEAP32[$r_ctx >> 2] = 0;
$0 = ($keyparam | 0) != 0;
do if ($0) {
$1 = __gcry_sexp_find_token($keyparam, 46546, 0) | 0;
if ($1) {
$3 = __gcry_pk_util_parse_flaglist($1, $flags, 0) | 0;
__gcry_sexp_release($1);
if ($3) {
$a$sroa$0$5 = 0;
$b$sroa$0$6 = 0;
$errc$3 = $3;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = 0;
break;
}
}
$5 = __gcry_sexp_find_token($keyparam, 46586, 5) | 0;
if ($5) if (!(HEAP32[$flags >> 2] & 512)) {
$a$sroa$0$12032 = 0;
$b$sroa$0$12130 = 0;
$h$sroa$0$12326 = 0;
$l1$02425 = $5;
$n$sroa$0$12228 = 0;
$p$sroa$0$11934 = 0;
label = 19;
break;
}
$10 = __gcry_sexp_find_token($keyparam, 46610, 0) | 0;
if (!$10) $p$sroa$0$0$ph = 0; else {
$12 = __gcry_sexp_nth_mpi($10, 1, 5) | 0;
$13 = $12;
__gcry_sexp_release($10);
if (!$12) {
$a$sroa$0$5 = 0;
$b$sroa$0$6 = 0;
$errc$3 = 65;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $13;
break;
} else $p$sroa$0$0$ph = $13;
}
$15 = __gcry_sexp_find_token($keyparam, 38733, 0) | 0;
if (!$15) $a$sroa$0$0$ph = 0; else {
$17 = __gcry_sexp_nth_mpi($15, 1, 5) | 0;
$18 = $17;
__gcry_sexp_release($15);
if (!$17) {
$a$sroa$0$5 = $18;
$b$sroa$0$6 = 0;
$errc$3 = 65;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $p$sroa$0$0$ph;
break;
} else $a$sroa$0$0$ph = $18;
}
$20 = __gcry_sexp_find_token($keyparam, 24119, 0) | 0;
if (!$20) $b$sroa$0$0$ph = 0; else {
$22 = __gcry_sexp_nth_mpi($20, 1, 5) | 0;
$23 = $22;
__gcry_sexp_release($20);
if (!$22) {
$a$sroa$0$5 = $a$sroa$0$0$ph;
$b$sroa$0$6 = $23;
$errc$3 = 65;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $p$sroa$0$0$ph;
break;
} else $b$sroa$0$0$ph = $23;
}
$25 = _point_from_keyparam($G, $keyparam, 24121, 0) | 0;
if (!$25) {
$27 = __gcry_sexp_find_token($keyparam, 38737, 0) | 0;
if (!$27) $n$sroa$0$0$ph = 0; else {
$29 = __gcry_sexp_nth_mpi($27, 1, 5) | 0;
$30 = $29;
__gcry_sexp_release($27);
if (!$29) {
$a$sroa$0$5 = $a$sroa$0$0$ph;
$b$sroa$0$6 = $b$sroa$0$0$ph;
$errc$3 = 65;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = $30;
$p$sroa$0$5 = $p$sroa$0$0$ph;
break;
} else $n$sroa$0$0$ph = $30;
}
$32 = __gcry_sexp_find_token($keyparam, 24123, 0) | 0;
if (!$32) {
$a$sroa$0$1 = $a$sroa$0$0$ph;
$b$sroa$0$1 = $b$sroa$0$0$ph;
$h$sroa$0$1 = 0;
$l1$0 = $5;
$n$sroa$0$1 = $n$sroa$0$0$ph;
$p$sroa$0$1 = $p$sroa$0$0$ph;
label = 17;
} else {
$34 = __gcry_sexp_nth_mpi($32, 1, 5) | 0;
$35 = $34;
__gcry_sexp_release($32);
if (!$34) {
$a$sroa$0$5 = $a$sroa$0$0$ph;
$b$sroa$0$6 = $b$sroa$0$0$ph;
$errc$3 = 65;
$h$sroa$0$6 = $35;
$n$sroa$0$6 = $n$sroa$0$0$ph;
$p$sroa$0$5 = $p$sroa$0$0$ph;
} else {
$a$sroa$0$1 = $a$sroa$0$0$ph;
$b$sroa$0$1 = $b$sroa$0$0$ph;
$h$sroa$0$1 = $35;
$l1$0 = $5;
$n$sroa$0$1 = $n$sroa$0$0$ph;
$p$sroa$0$1 = $p$sroa$0$0$ph;
label = 17;
}
}
} else {
$a$sroa$0$5 = $a$sroa$0$0$ph;
$b$sroa$0$6 = $b$sroa$0$0$ph;
$errc$3 = $25;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $p$sroa$0$0$ph;
}
} else {
$a$sroa$0$1 = 0;
$b$sroa$0$1 = 0;
$h$sroa$0$1 = 0;
$l1$0 = 0;
$n$sroa$0$1 = 0;
$p$sroa$0$1 = 0;
label = 17;
} while (0);
if ((label | 0) == 17) {
$37 = ($l1$0 | 0) != 0;
if (($curvename | 0) != 0 | $37) if ($37) {
$a$sroa$0$12032 = $a$sroa$0$1;
$b$sroa$0$12130 = $b$sroa$0$1;
$h$sroa$0$12326 = $h$sroa$0$1;
$l1$02425 = $l1$0;
$n$sroa$0$12228 = $n$sroa$0$1;
$p$sroa$0$11934 = $p$sroa$0$1;
label = 19;
} else {
$a$sroa$0$12033 = $a$sroa$0$1;
$b$sroa$0$12131 = $b$sroa$0$1;
$h$sroa$0$12327 = $h$sroa$0$1;
$n$sroa$0$12229 = $n$sroa$0$1;
$name$0 = 0;
$p$sroa$0$11935 = $p$sroa$0$1;
label = 20;
} else {
$a$sroa$0$4 = $a$sroa$0$1;
$b$sroa$0$4 = $b$sroa$0$1;
$dialect$1 = 0;
$h$sroa$0$4 = $h$sroa$0$1;
$model$1 = 0;
$n$sroa$0$4 = $n$sroa$0$1;
$p$sroa$0$4 = $p$sroa$0$1;
label = 37;
}
}
if ((label | 0) == 19) {
$39 = __gcry_sexp_nth_string($l1$02425, 1) | 0;
__gcry_sexp_release($l1$02425);
if (!$39) {
$a$sroa$0$5 = $a$sroa$0$12032;
$b$sroa$0$6 = $b$sroa$0$12130;
$errc$3 = 65;
$h$sroa$0$6 = $h$sroa$0$12326;
$n$sroa$0$6 = $n$sroa$0$12228;
$p$sroa$0$5 = $p$sroa$0$11934;
} else {
$a$sroa$0$12033 = $a$sroa$0$12032;
$b$sroa$0$12131 = $b$sroa$0$12130;
$h$sroa$0$12327 = $h$sroa$0$12326;
$n$sroa$0$12229 = $n$sroa$0$12228;
$name$0 = $39;
$p$sroa$0$11935 = $p$sroa$0$11934;
label = 20;
}
}
do if ((label | 0) == 20) {
$41 = __gcry_calloc(1, 44) | 0;
if (!$41) {
$43 = _gpg_err_code_from_syserror() | 0;
__gcry_free($name$0);
$a$sroa$0$5 = $a$sroa$0$12033;
$b$sroa$0$6 = $b$sroa$0$12131;
$errc$3 = $43;
$h$sroa$0$6 = $h$sroa$0$12327;
$n$sroa$0$6 = $n$sroa$0$12229;
$p$sroa$0$5 = $p$sroa$0$11935;
break;
}
$46 = __gcry_ecc_fill_in_curve(0, ($name$0 | 0) != 0 ? $name$0 : $curvename, $41, 0) | 0;
__gcry_free($name$0);
if ($46) {
__gcry_free($41);
$a$sroa$0$5 = $a$sroa$0$12033;
$b$sroa$0$6 = $b$sroa$0$12131;
$errc$3 = $46;
$h$sroa$0$6 = $h$sroa$0$12327;
$n$sroa$0$6 = $n$sroa$0$12229;
$p$sroa$0$5 = $p$sroa$0$11935;
break;
}
$48 = HEAP32[$41 >> 2] | 0;
$50 = HEAP32[$41 + 4 >> 2] | 0;
if (!$p$sroa$0$11935) {
$52 = $41 + 8 | 0;
$53 = HEAP32[$52 >> 2] | 0;
HEAP32[$52 >> 2] = 0;
$p$sroa$0$2 = $53;
} else $p$sroa$0$2 = $p$sroa$0$11935;
if (!$a$sroa$0$12033) {
$55 = $41 + 12 | 0;
$56 = HEAP32[$55 >> 2] | 0;
HEAP32[$55 >> 2] = 0;
$a$sroa$0$2 = $56;
} else $a$sroa$0$2 = $a$sroa$0$12033;
if (!$b$sroa$0$12131) {
$58 = $41 + 16 | 0;
$59 = HEAP32[$58 >> 2] | 0;
HEAP32[$58 >> 2] = 0;
$b$sroa$0$2 = $59;
} else $b$sroa$0$2 = $b$sroa$0$12131;
if (!(HEAP32[$G >> 2] | 0)) {
$62 = $41 + 20 | 0;
$64 = $41 + 24 | 0;
$66 = $41 + 28 | 0;
HEAP32[$G >> 2] = __gcry_mpi_point_snatch_set(0, HEAP32[$62 >> 2] | 0, HEAP32[$64 >> 2] | 0, HEAP32[$66 >> 2] | 0) | 0;
HEAP32[$62 >> 2] = 0;
HEAP32[$64 >> 2] = 0;
HEAP32[$66 >> 2] = 0;
}
if (!$n$sroa$0$12229) {
$70 = $41 + 32 | 0;
$71 = HEAP32[$70 >> 2] | 0;
HEAP32[$70 >> 2] = 0;
$n$sroa$0$2 = $71;
} else $n$sroa$0$2 = $n$sroa$0$12229;
if (!$h$sroa$0$12327) {
$73 = $41 + 36 | 0;
$74 = HEAP32[$73 >> 2] | 0;
HEAP32[$73 >> 2] = 0;
$h$sroa$0$2 = $74;
} else $h$sroa$0$2 = $h$sroa$0$12327;
__gcry_ecc_curve_free($41);
__gcry_free($41);
$a$sroa$0$4 = $a$sroa$0$2;
$b$sroa$0$4 = $b$sroa$0$2;
$dialect$1 = $50;
$h$sroa$0$4 = $h$sroa$0$2;
$model$1 = $48;
$n$sroa$0$4 = $n$sroa$0$2;
$p$sroa$0$4 = $p$sroa$0$2;
label = 37;
} while (0);
do if ((label | 0) == 37) {
$79 = __gcry_mpi_ec_p_new($ctx, $model$1, $dialect$1, HEAP32[$flags >> 2] | 0, $p$sroa$0$4, $a$sroa$0$4, $b$sroa$0$4) | 0;
if (!$79) {
$82 = __gcry_ctx_get_pointer(HEAP32[$ctx >> 2] | 0, 1) | 0;
if ($b$sroa$0$4) {
$84 = $82 + 24 | 0;
__gcry_mpi_free(HEAP32[$84 >> 2] | 0);
HEAP32[$84 >> 2] = $b$sroa$0$4;
}
$86 = HEAP32[$G >> 2] | 0;
if ($86) {
HEAP32[$82 + 28 >> 2] = $86;
HEAP32[$G >> 2] = 0;
}
if ($n$sroa$0$4) HEAP32[$82 + 32 >> 2] = $n$sroa$0$4;
if ($h$sroa$0$4) HEAP32[$82 + 36 >> 2] = $h$sroa$0$4;
if ($0) {
$95 = _point_from_keyparam($Q, $keyparam, 46584, $82) | 0;
if ($95) {
$a$sroa$0$5 = $a$sroa$0$4;
$b$sroa$0$6 = 0;
$errc$3 = $95;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $p$sroa$0$4;
break;
}
$97 = __gcry_sexp_find_token($keyparam, 24125, 0) | 0;
if (!$97) $d$1 = 0; else {
$99 = __gcry_sexp_nth_mpi($97, 1, 5) | 0;
__gcry_sexp_release($97);
if (!$99) {
$a$sroa$0$5 = $a$sroa$0$4;
$b$sroa$0$6 = 0;
$errc$3 = 65;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $p$sroa$0$4;
break;
} else $d$1 = $99;
}
} else $d$1 = 0;
$101 = HEAP32[$Q >> 2] | 0;
if ($101) {
HEAP32[$82 + 40 >> 2] = $101;
HEAP32[$Q >> 2] = 0;
}
if ($d$1) HEAP32[$82 + 44 >> 2] = $d$1;
HEAP32[$r_ctx >> 2] = HEAP32[$ctx >> 2];
HEAP32[$ctx >> 2] = 0;
$a$sroa$0$5 = $a$sroa$0$4;
$b$sroa$0$6 = 0;
$errc$3 = 0;
$h$sroa$0$6 = 0;
$n$sroa$0$6 = 0;
$p$sroa$0$5 = $p$sroa$0$4;
} else {
$a$sroa$0$5 = $a$sroa$0$4;
$b$sroa$0$6 = $b$sroa$0$4;
$errc$3 = $79;
$h$sroa$0$6 = $h$sroa$0$4;
$n$sroa$0$6 = $n$sroa$0$4;
$p$sroa$0$5 = $p$sroa$0$4;
}
} while (0);
__gcry_ctx_release(HEAP32[$ctx >> 2] | 0);
__gcry_mpi_free($p$sroa$0$5);
__gcry_mpi_free($a$sroa$0$5);
__gcry_mpi_free($b$sroa$0$6);
__gcry_mpi_point_release(HEAP32[$G >> 2] | 0);
__gcry_mpi_free($n$sroa$0$6);
__gcry_mpi_free($h$sroa$0$6);
__gcry_mpi_point_release(HEAP32[$Q >> 2] | 0);
__gcry_mpi_free(0);
STACKTOP = sp;
return $errc$3 | 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, $$0$lcssa$i = 0, $$01$lcssa = 0, $$01$ph = 0, $$0195 = 0, $$0195$us = 0, $$02$lcssa = 0, $$02$ph = 0, $$0294 = 0, $$0294$us = 0, $$03$lcssa = 0, $$03$ph = 0, $$0393 = 0, $$0393$us = 0, $$08$i = 0, $$08$i$37 = 0, $$08$i$66$us = 0, $$08$i$8 = 0, $$1$ph$i = 0, $$1$ph$i$83$us = 0, $$14$i = 0, $$14$i$27 = 0, $$14$i$56 = 0, $$14$i$85 = 0, $$14$i$85$us = 0, $1 = 0, $119 = 0, $120 = 0, $121 = 0, $123 = 0, $125 = 0, $13 = 0, $134 = 0, $135 = 0, $136 = 0, $140 = 0, $141 = 0, $143 = 0, $153 = 0, $154 = 0, $155 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $44 = 0, $46 = 0, $5 = 0, $50 = 0, $59 = 0, $60 = 0, $61 = 0, $7 = 0, $8 = 0, $81 = 0, $84 = 0, $85 = 0, $86 = 0, $88 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $95 = 0, $burn$0$lcssa = 0, $burn$096 = 0, $burn$096$us = 0, $burn$1 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$80$us = 0, $dst$01$i = 0, $dst$01$i$30 = 0, $dst$01$i$59 = 0, $dst$01$i$88 = 0, $dst$01$i$88$us = 0, $ldst$0$lcssa$i = 0, $ldst$05$i = 0, $ldst$05$i$11 = 0, $ldst$05$i$40 = 0, $ldst$05$i$69$us = 0, $lsrc1$0$lcssa$i = 0, $lsrc1$06$i = 0, $lsrc1$06$i$10 = 0, $lsrc1$06$i$39 = 0, $lsrc1$06$i$68$us = 0, $lsrc2$0$lcssa$i = 0, $lsrc2$07$i = 0, $lsrc2$07$i$38 = 0, $lsrc2$07$i$67$us = 0, $lsrc2$07$i$9 = 0, $scevgep$i$62$us = 0, $scevgep19$i = 0, $scevgep19$i$34 = 0, $scevgep19$i$5 = 0, $scevgep21$i$64 = 0, $src1$0$ph$i = 0, $src1$0$ph$i$81$us = 0, $src1$02$i = 0, $src1$02$i$29 = 0, $src1$02$i$58 = 0, $src1$02$i$87 = 0, $src1$02$i$87$us = 0, $src2$0$ph$i = 0, $src2$0$ph$i$82$us = 0, $src2$03$i = 0, $src2$03$i$28 = 0, $src2$03$i$57 = 0, $src2$03$i$86 = 0, $src2$03$i$86$us = 0, label = 0;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 36 >> 2] | 0;
$5 = HEAP32[$1 + 20 >> 2] | 0;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$7 = $c + 112 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if ($8 >>> 0 >= $inbuflen >>> 0) {
$13 = $c + 64 + $5 + (0 - $8) | 0;
if (!(($inbuf | $outbuf | $13) & 3)) {
if ($inbuflen >>> 0 > 3) {
$22 = $inbuflen + -4 | 0;
$23 = $22 & -4;
$24 = $23 + 4 | 0;
$scevgep19$i = $inbuf + $24 | 0;
$$08$i = $inbuflen;
$ldst$05$i = $outbuf;
$lsrc1$06$i = $13;
$lsrc2$07$i = $inbuf;
while (1) {
HEAP32[$ldst$05$i >> 2] = HEAP32[$lsrc2$07$i >> 2] ^ HEAP32[$lsrc1$06$i >> 2];
$$08$i = $$08$i + -4 | 0;
if ($$08$i >>> 0 <= 3) break; else {
$ldst$05$i = $ldst$05$i + 4 | 0;
$lsrc1$06$i = $lsrc1$06$i + 4 | 0;
$lsrc2$07$i = $lsrc2$07$i + 4 | 0;
}
}
$$0$lcssa$i = $22 - $23 | 0;
$ldst$0$lcssa$i = $outbuf + $24 | 0;
$lsrc1$0$lcssa$i = $13 + $24 | 0;
$lsrc2$0$lcssa$i = $scevgep19$i;
} else {
$$0$lcssa$i = $inbuflen;
$ldst$0$lcssa$i = $outbuf;
$lsrc1$0$lcssa$i = $13;
$lsrc2$0$lcssa$i = $inbuf;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src1$0$ph$i = $lsrc1$0$lcssa$i;
$src2$0$ph$i = $lsrc2$0$lcssa$i;
} else {
$$1$ph$i = $inbuflen;
$dst$0$ph$i = $outbuf;
$src1$0$ph$i = $13;
$src2$0$ph$i = $inbuf;
}
if (!$$1$ph$i) $44 = $8; else {
$$14$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src1$02$i = $src1$0$ph$i;
$src2$03$i = $src2$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src2$03$i >> 0] ^ HEAP8[$src1$02$i >> 0];
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src1$02$i = $src1$02$i + 1 | 0;
$src2$03$i = $src2$03$i + 1 | 0;
}
}
$44 = HEAP32[$7 >> 2] | 0;
}
HEAP32[$7 >> 2] = $44 - $inbuflen;
$$0 = 0;
return $$0 | 0;
}
if (!$8) {
$$01$ph = $outbuf;
$$02$ph = $inbuflen;
$$03$ph = $inbuf;
} else {
$46 = $inbuflen - $8 | 0;
$50 = $c + 64 + $5 + (0 - $8) | 0;
if ($8 >>> 0 > 3 & (($inbuf | $outbuf | $50) & 3 | 0) == 0) {
$59 = $8 + -4 | 0;
$60 = $59 & -4;
$61 = $60 + 4 | 0;
$scevgep19$i$34 = $inbuf + $61 | 0;
$$08$i$37 = $8;
$ldst$05$i$40 = $outbuf;
$lsrc1$06$i$39 = $50;
$lsrc2$07$i$38 = $inbuf;
while (1) {
HEAP32[$ldst$05$i$40 >> 2] = HEAP32[$lsrc2$07$i$38 >> 2] ^ HEAP32[$lsrc1$06$i$39 >> 2];
$$08$i$37 = $$08$i$37 + -4 | 0;
if ($$08$i$37 >>> 0 <= 3) break; else {
$ldst$05$i$40 = $ldst$05$i$40 + 4 | 0;
$lsrc1$06$i$39 = $lsrc1$06$i$39 + 4 | 0;
$lsrc2$07$i$38 = $lsrc2$07$i$38 + 4 | 0;
}
}
if (($59 | 0) == ($60 | 0)) $81 = $8; else {
$$14$i$56 = $59 - $60 | 0;
$dst$01$i$59 = $outbuf + $61 | 0;
$src1$02$i$58 = $50 + $61 | 0;
$src2$03$i$57 = $scevgep19$i$34;
label = 18;
}
} else {
$$14$i$56 = $8;
$dst$01$i$59 = $outbuf;
$src1$02$i$58 = $50;
$src2$03$i$57 = $inbuf;
label = 18;
}
if ((label | 0) == 18) {
while (1) {
label = 0;
HEAP8[$dst$01$i$59 >> 0] = HEAP8[$src2$03$i$57 >> 0] ^ HEAP8[$src1$02$i$58 >> 0];
$$14$i$56 = $$14$i$56 + -1 | 0;
if (!$$14$i$56) break; else {
$dst$01$i$59 = $dst$01$i$59 + 1 | 0;
$src1$02$i$58 = $src1$02$i$58 + 1 | 0;
$src2$03$i$57 = $src2$03$i$57 + 1 | 0;
label = 18;
}
}
$81 = HEAP32[$7 >> 2] | 0;
}
HEAP32[$7 >> 2] = 0;
$$01$ph = $outbuf + $81 | 0;
$$02$ph = $46;
$$03$ph = $inbuf + $81 | 0;
}
L35 : do if ($$02$ph >>> 0 < $5 >>> 0) {
$$01$lcssa = $$01$ph;
$$02$lcssa = $$02$ph;
$$03$lcssa = $$03$ph;
$burn$0$lcssa = 0;
} else {
$84 = $c + 496 | 0;
$85 = $c + 64 | 0;
$86 = $85;
$88 = $5 + -4 | 0;
$89 = $88 & -4;
$90 = $89 + 4 | 0;
$scevgep21$i$64 = $85 + $90 | 0;
$91 = $88 - $89 | 0;
if ($5 >>> 0 > 3) {
$$0195$us = $$01$ph;
$$0294$us = $$02$ph;
$$0393$us = $$03$ph;
$burn$096$us = 0;
} else {
$92 = ($5 | 0) == 0;
$$0195 = $$01$ph;
$$0294 = $$02$ph;
$$0393 = $$03$ph;
$burn$096 = 0;
while (1) {
$123 = FUNCTION_TABLE_iiii[$3 & 63]($84, $85, $85) | 0;
$125 = $123 >>> 0 > $burn$096 >>> 0 ? $123 : $burn$096;
if (!$92) {
$$14$i$85 = $5;
$dst$01$i$88 = $$0195;
$src1$02$i$87 = $85;
$src2$03$i$86 = $$0393;
while (1) {
HEAP8[$dst$01$i$88 >> 0] = HEAP8[$src2$03$i$86 >> 0] ^ HEAP8[$src1$02$i$87 >> 0];
$$14$i$85 = $$14$i$85 + -1 | 0;
if (!$$14$i$85) break; else {
$dst$01$i$88 = $dst$01$i$88 + 1 | 0;
$src1$02$i$87 = $src1$02$i$87 + 1 | 0;
$src2$03$i$86 = $src2$03$i$86 + 1 | 0;
}
}
}
$134 = $$0195 + $5 | 0;
$135 = $$0393 + $5 | 0;
$136 = $$0294 - $5 | 0;
if ($136 >>> 0 < $5 >>> 0) {
$$01$lcssa = $134;
$$02$lcssa = $136;
$$03$lcssa = $135;
$burn$0$lcssa = $125;
break L35;
} else {
$$0195 = $134;
$$0294 = $136;
$$0393 = $135;
$burn$096 = $125;
}
}
}
while (1) {
$93 = FUNCTION_TABLE_iiii[$3 & 63]($84, $85, $85) | 0;
$95 = $93 >>> 0 > $burn$096$us >>> 0 ? $93 : $burn$096$us;
if (!(($$0393$us | $86 | $$0195$us) & 3)) {
$scevgep$i$62$us = $$0195$us + $90 | 0;
$$08$i$66$us = $5;
$ldst$05$i$69$us = $$0195$us;
$lsrc1$06$i$68$us = $85;
$lsrc2$07$i$67$us = $$0393$us;
while (1) {
HEAP32[$ldst$05$i$69$us >> 2] = HEAP32[$lsrc2$07$i$67$us >> 2] ^ HEAP32[$lsrc1$06$i$68$us >> 2];
$$08$i$66$us = $$08$i$66$us + -4 | 0;
if ($$08$i$66$us >>> 0 <= 3) break; else {
$ldst$05$i$69$us = $ldst$05$i$69$us + 4 | 0;
$lsrc1$06$i$68$us = $lsrc1$06$i$68$us + 4 | 0;
$lsrc2$07$i$67$us = $lsrc2$07$i$67$us + 4 | 0;
}
}
$$1$ph$i$83$us = $91;
$dst$0$ph$i$80$us = $scevgep$i$62$us;
$src1$0$ph$i$81$us = $scevgep21$i$64;
$src2$0$ph$i$82$us = $$0393$us + $90 | 0;
} else {
$$1$ph$i$83$us = $5;
$dst$0$ph$i$80$us = $$0195$us;
$src1$0$ph$i$81$us = $85;
$src2$0$ph$i$82$us = $$0393$us;
}
if ($$1$ph$i$83$us) {
$$14$i$85$us = $$1$ph$i$83$us;
$dst$01$i$88$us = $dst$0$ph$i$80$us;
$src1$02$i$87$us = $src1$0$ph$i$81$us;
$src2$03$i$86$us = $src2$0$ph$i$82$us;
while (1) {
HEAP8[$dst$01$i$88$us >> 0] = HEAP8[$src2$03$i$86$us >> 0] ^ HEAP8[$src1$02$i$87$us >> 0];
$$14$i$85$us = $$14$i$85$us + -1 | 0;
if (!$$14$i$85$us) break; else {
$dst$01$i$88$us = $dst$01$i$88$us + 1 | 0;
$src1$02$i$87$us = $src1$02$i$87$us + 1 | 0;
$src2$03$i$86$us = $src2$03$i$86$us + 1 | 0;
}
}
}
$119 = $$0195$us + $5 | 0;
$120 = $$0393$us + $5 | 0;
$121 = $$0294$us - $5 | 0;
if ($121 >>> 0 < $5 >>> 0) {
$$01$lcssa = $119;
$$02$lcssa = $121;
$$03$lcssa = $120;
$burn$0$lcssa = $95;
break;
} else {
$$0195$us = $119;
$$0294$us = $121;
$$0393$us = $120;
$burn$096$us = $95;
}
}
} while (0);
do if (!$$02$lcssa) $burn$1 = $burn$0$lcssa; else {
$140 = $c + 64 | 0;
$141 = FUNCTION_TABLE_iiii[$3 & 63]($c + 496 | 0, $140, $140) | 0;
$143 = $141 >>> 0 > $burn$0$lcssa >>> 0 ? $141 : $burn$0$lcssa;
HEAP32[$7 >> 2] = $5 - $$02$lcssa;
if ((($$03$lcssa | $140 | $$01$lcssa) & 3 | 0) == 0 & $$02$lcssa >>> 0 > 3) {
$153 = $$02$lcssa + -4 | 0;
$154 = $153 & -4;
$155 = $154 + 4 | 0;
$scevgep19$i$5 = $$03$lcssa + $155 | 0;
$$08$i$8 = $$02$lcssa;
$ldst$05$i$11 = $$01$lcssa;
$lsrc1$06$i$10 = $140;
$lsrc2$07$i$9 = $$03$lcssa;
while (1) {
HEAP32[$ldst$05$i$11 >> 2] = HEAP32[$lsrc2$07$i$9 >> 2] ^ HEAP32[$lsrc1$06$i$10 >> 2];
$$08$i$8 = $$08$i$8 + -4 | 0;
if ($$08$i$8 >>> 0 <= 3) break; else {
$ldst$05$i$11 = $ldst$05$i$11 + 4 | 0;
$lsrc1$06$i$10 = $lsrc1$06$i$10 + 4 | 0;
$lsrc2$07$i$9 = $lsrc2$07$i$9 + 4 | 0;
}
}
if (($153 | 0) == ($154 | 0)) {
$burn$1 = $143;
break;
} else {
$$14$i$27 = $153 - $154 | 0;
$dst$01$i$30 = $$01$lcssa + $155 | 0;
$src1$02$i$29 = $140 + $155 | 0;
$src2$03$i$28 = $scevgep19$i$5;
}
} else {
$$14$i$27 = $$02$lcssa;
$dst$01$i$30 = $$01$lcssa;
$src1$02$i$29 = $140;
$src2$03$i$28 = $$03$lcssa;
}
while (1) {
HEAP8[$dst$01$i$30 >> 0] = HEAP8[$src2$03$i$28 >> 0] ^ HEAP8[$src1$02$i$29 >> 0];
$$14$i$27 = $$14$i$27 + -1 | 0;
if (!$$14$i$27) {
$burn$1 = $143;
break;
} else {
$dst$01$i$30 = $dst$01$i$30 + 1 | 0;
$src1$02$i$29 = $src1$02$i$29 + 1 | 0;
$src2$03$i$28 = $src2$03$i$28 + 1 | 0;
}
}
} while (0);
if (!$burn$1) {
$$0 = 0;
return $$0 | 0;
}
___gcry_burn_stack($burn$1 + 16 | 0);
$$0 = 0;
return $$0 | 0;
}
function __gcry_hmac_selftest($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $$0$i$i = 0, $$lcssa$i$10$i = 0, $$lcssa$i$18$i = 0, $$lcssa$i$i = 0, $$lcssa1$i$11$i = 0, $$lcssa1$i$19$i = 0, $$lcssa1$i$i = 0, $$lcssa6$i$i = 0, $$lcssa7$i$i = 0, $$lcssa8$i$i = 0, $$lcssa9$i$i = 0, $101 = 0, $112 = 0, $113 = 0, $116 = 0, $117 = 0, $118 = 0, $120 = 0, $123 = 0, $124 = 0, $126 = 0, $129 = 0, $136 = 0, $139 = 0, $140 = 0, $141 = 0, $143 = 0, $146 = 0, $147 = 0, $149 = 0, $152 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $27 = 0, $33 = 0, $39 = 0, $42 = 0, $45 = 0, $46 = 0, $47 = 0, $49 = 0, $5 = 0, $52 = 0, $53 = 0, $55 = 0, $58 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $72 = 0, $74 = 0, $76 = 0, $78 = 0, $80 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $90 = 0, $92 = 0, $93 = 0, $95 = 0, $97 = 0, $99 = 0, $dlen$i$i = 0, $ec$0 = 0, $errtxt$0$i$i = 0, $errtxt$0$ph$i$i = 0, $i$09$i$i = 0, $i$25$i$i = 0, $i$33$i$i = 0, $j$16$i$i = 0, $j$24$i$i = 0, $tvidx$010$i$i = 0, $tvidx$02$i$16$i = 0, $tvidx$02$i$8$i = 0, $tvidx$02$i$i = 0, $what$0$i$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
$dlen$i$i = sp;
L1 : do if (!(__gcry_md_algo_info($algo, 8, 0, 0) | 0)) switch ($algo | 0) {
case 2:
{
$i$09$i$i = 0;
do {
HEAP8[$dlen$i$i + $i$09$i$i >> 0] = $i$09$i$i;
$i$09$i$i = $i$09$i$i + 1 | 0;
} while (($i$09$i$i | 0) != 64);
$5 = _check_one(2, 35529, 9, $dlen$i$i, 64, 35539, 20) | 0;
if (!$5) if (!$extended) $$0$i$i = 0; else {
HEAP8[$dlen$i$i >> 0] = 48;
HEAP8[$dlen$i$i + 1 >> 0] = 49;
HEAP8[$dlen$i$i + 2 >> 0] = 50;
HEAP8[$dlen$i$i + 3 >> 0] = 51;
HEAP8[$dlen$i$i + 4 >> 0] = 52;
HEAP8[$dlen$i$i + 5 >> 0] = 53;
HEAP8[$dlen$i$i + 6 >> 0] = 54;
HEAP8[$dlen$i$i + 7 >> 0] = 55;
HEAP8[$dlen$i$i + 8 >> 0] = 56;
HEAP8[$dlen$i$i + 9 >> 0] = 57;
HEAP8[$dlen$i$i + 10 >> 0] = 58;
HEAP8[$dlen$i$i + 11 >> 0] = 59;
HEAP8[$dlen$i$i + 12 >> 0] = 60;
HEAP8[$dlen$i$i + 13 >> 0] = 61;
HEAP8[$dlen$i$i + 14 >> 0] = 62;
HEAP8[$dlen$i$i + 15 >> 0] = 63;
HEAP8[$dlen$i$i + 16 >> 0] = 64;
HEAP8[$dlen$i$i + 17 >> 0] = 65;
HEAP8[$dlen$i$i + 18 >> 0] = 66;
HEAP8[$dlen$i$i + 19 >> 0] = 67;
$27 = _check_one(2, 35560, 9, $dlen$i$i, 20, 35570, 20) | 0;
if (!$27) {
$i$25$i$i = 0;
$j$16$i$i = 80;
while (1) {
HEAP8[$dlen$i$i + $i$25$i$i >> 0] = $j$16$i$i;
$i$25$i$i = $i$25$i$i + 1 | 0;
if (($i$25$i$i | 0) == 100) break; else $j$16$i$i = $j$16$i$i + 1 | 0;
}
$33 = _check_one(2, 35591, 9, $dlen$i$i, 100, 35601, 20) | 0;
if (!$33) {
$i$33$i$i = 0;
$j$24$i$i = 112;
while (1) {
HEAP8[$dlen$i$i + $i$33$i$i >> 0] = $j$24$i$i;
$i$33$i$i = $i$33$i$i + 1 | 0;
if (($i$33$i$i | 0) == 49) break; else $j$24$i$i = $j$24$i$i + 1 | 0;
}
$39 = _check_one(2, 35622, 9, $dlen$i$i, 49, 35632, 20) | 0;
if (!$39) $$0$i$i = 0; else {
$errtxt$0$i$i = $39;
$what$0$i$i = 35698;
label = 12;
}
} else {
$errtxt$0$i$i = $33;
$what$0$i$i = 35683;
label = 12;
}
} else {
$errtxt$0$i$i = $27;
$what$0$i$i = 35668;
label = 12;
}
} else {
$errtxt$0$i$i = $5;
$what$0$i$i = 35653;
label = 12;
}
if ((label | 0) == 12) if (!$report) $$0$i$i = 50; else {
FUNCTION_TABLE_viiii[$report & 1](35713, 2, $what$0$i$i, $errtxt$0$i$i);
$$0$i$i = 50;
}
$ec$0 = $$0$i$i;
break L1;
break;
}
case 11:
{
$42 = HEAP32[658] | 0;
if (!$42) {
$ec$0 = 0;
break L1;
}
L23 : do if (!$extended) {
$45 = HEAP32[659] | 0;
$46 = _strlen($45) | 0;
$47 = HEAP32[660] | 0;
$49 = _check_one(11, $45, $46, $47, _strlen($47) | 0, 2644, 28) | 0;
if (!$49) {
$ec$0 = 0;
break L1;
} else {
$$lcssa$i$i = $49;
$$lcssa1$i$i = $42;
}
} else {
$164 = $42;
$tvidx$02$i$i = 0;
while (1) {
$52 = HEAP32[2632 + ($tvidx$02$i$i * 40 | 0) + 4 >> 2] | 0;
$53 = _strlen($52) | 0;
$55 = HEAP32[2632 + ($tvidx$02$i$i * 40 | 0) + 8 >> 2] | 0;
$58 = _check_one(11, $52, $53, $55, _strlen($55) | 0, 2632 + ($tvidx$02$i$i * 40 | 0) + 12 | 0, 28) | 0;
if ($58) {
$$lcssa$i$i = $58;
$$lcssa1$i$i = $164;
break L23;
}
$tvidx$02$i$i = $tvidx$02$i$i + 1 | 0;
$164 = HEAP32[2632 + ($tvidx$02$i$i * 40 | 0) >> 2] | 0;
if (!$164) {
$ec$0 = 0;
break L1;
}
}
} while (0);
if (!$report) {
$ec$0 = 50;
break L1;
}
FUNCTION_TABLE_viiii[$report & 1](35713, 11, $$lcssa1$i$i, $$lcssa$i$i);
$ec$0 = 50;
break L1;
break;
}
case 8:
{
$65 = HEAP32[728] | 0;
if (!$65) {
$ec$0 = 0;
break L1;
}
L32 : do if (!$extended) {
$68 = HEAP32[729] | 0;
$69 = _strlen($68) | 0;
$70 = HEAP32[730] | 0;
$72 = _check_one(8, $68, $69, $70, _strlen($70) | 0, 2924, 32) | 0;
if (!$72) {
$74 = HEAP32[730] | 0;
$76 = __gcry_hmac256_new($74, _strlen($74) | 0) | 0;
if (!$76) {
$112 = $65;
$errtxt$0$ph$i$i = 35718;
} else {
$78 = HEAP32[729] | 0;
__gcry_hmac256_update($76, $78, _strlen($78) | 0);
$80 = __gcry_hmac256_finalize($76, $dlen$i$i) | 0;
if (!$80) {
$$lcssa6$i$i = $65;
$$lcssa8$i$i = $76;
label = 33;
} else if ((HEAP32[$dlen$i$i >> 2] | 0) == 32) if (!(_memcmp($80, 2924, 32) | 0)) {
__gcry_hmac256_release($76);
$ec$0 = 0;
break L1;
} else {
$$lcssa7$i$i = $65;
$$lcssa9$i$i = $76;
label = 36;
} else {
$$lcssa7$i$i = $65;
$$lcssa9$i$i = $76;
label = 36;
}
}
} else {
$112 = $65;
$errtxt$0$ph$i$i = $72;
}
} else {
$165 = $65;
$tvidx$010$i$i = 0;
while (1) {
$86 = 2912 + ($tvidx$010$i$i * 44 | 0) + 4 | 0;
$87 = HEAP32[$86 >> 2] | 0;
$88 = _strlen($87) | 0;
$89 = 2912 + ($tvidx$010$i$i * 44 | 0) + 8 | 0;
$90 = HEAP32[$89 >> 2] | 0;
$92 = 2912 + ($tvidx$010$i$i * 44 | 0) + 12 | 0;
$93 = _check_one(8, $87, $88, $90, _strlen($90) | 0, $92, 32) | 0;
if ($93) {
$112 = $165;
$errtxt$0$ph$i$i = $93;
break L32;
}
$95 = HEAP32[$89 >> 2] | 0;
$97 = __gcry_hmac256_new($95, _strlen($95) | 0) | 0;
if (!$97) {
$112 = $165;
$errtxt$0$ph$i$i = 35718;
break L32;
}
$99 = HEAP32[$86 >> 2] | 0;
__gcry_hmac256_update($97, $99, _strlen($99) | 0);
$101 = __gcry_hmac256_finalize($97, $dlen$i$i) | 0;
if (!$101) {
$$lcssa6$i$i = $165;
$$lcssa8$i$i = $97;
label = 33;
break L32;
}
if ((HEAP32[$dlen$i$i >> 2] | 0) != 32) {
$$lcssa7$i$i = $165;
$$lcssa9$i$i = $97;
label = 36;
break L32;
}
if (_memcmp($101, $92, 32) | 0) {
$$lcssa7$i$i = $165;
$$lcssa9$i$i = $97;
label = 36;
break L32;
}
__gcry_hmac256_release($97);
$tvidx$010$i$i = $tvidx$010$i$i + 1 | 0;
$165 = HEAP32[2912 + ($tvidx$010$i$i * 44 | 0) >> 2] | 0;
if (!$165) {
$ec$0 = 0;
break L1;
}
}
} while (0);
if ((label | 0) == 33) {
__gcry_hmac256_release($$lcssa8$i$i);
$112 = $$lcssa6$i$i;
$errtxt$0$ph$i$i = 35743;
} else if ((label | 0) == 36) {
__gcry_hmac256_release($$lcssa9$i$i);
$112 = $$lcssa7$i$i;
$errtxt$0$ph$i$i = 35773;
}
if (!$report) {
$ec$0 = 50;
break L1;
}
FUNCTION_TABLE_viiii[$report & 1](35713, 8, $112, $errtxt$0$ph$i$i);
$ec$0 = 50;
break L1;
break;
}
case 9:
{
$113 = HEAP32[805] | 0;
if (!$113) {
$ec$0 = 0;
break L1;
}
L53 : do if (!$extended) {
$116 = HEAP32[806] | 0;
$117 = _strlen($116) | 0;
$118 = HEAP32[807] | 0;
$120 = _check_one(9, $116, $117, $118, _strlen($118) | 0, 3232, 48) | 0;
if (!$120) {
$ec$0 = 0;
break L1;
} else {
$$lcssa$i$10$i = $120;
$$lcssa1$i$11$i = $113;
}
} else {
$166 = $113;
$tvidx$02$i$8$i = 0;
while (1) {
$123 = HEAP32[3220 + ($tvidx$02$i$8$i * 60 | 0) + 4 >> 2] | 0;
$124 = _strlen($123) | 0;
$126 = HEAP32[3220 + ($tvidx$02$i$8$i * 60 | 0) + 8 >> 2] | 0;
$129 = _check_one(9, $123, $124, $126, _strlen($126) | 0, 3220 + ($tvidx$02$i$8$i * 60 | 0) + 12 | 0, 48) | 0;
if ($129) {
$$lcssa$i$10$i = $129;
$$lcssa1$i$11$i = $166;
break L53;
}
$tvidx$02$i$8$i = $tvidx$02$i$8$i + 1 | 0;
$166 = HEAP32[3220 + ($tvidx$02$i$8$i * 60 | 0) >> 2] | 0;
if (!$166) {
$ec$0 = 0;
break L1;
}
}
} while (0);
if (!$report) {
$ec$0 = 50;
break L1;
}
FUNCTION_TABLE_viiii[$report & 1](35713, 9, $$lcssa1$i$11$i, $$lcssa$i$10$i);
$ec$0 = 50;
break L1;
break;
}
case 10:
{
$136 = HEAP32[910] | 0;
if (!$136) {
$ec$0 = 0;
break L1;
}
L62 : do if (!$extended) {
$139 = HEAP32[911] | 0;
$140 = _strlen($139) | 0;
$141 = HEAP32[912] | 0;
$143 = _check_one(10, $139, $140, $141, _strlen($141) | 0, 3652, 64) | 0;
if (!$143) {
$ec$0 = 0;
break L1;
} else {
$$lcssa$i$18$i = $143;
$$lcssa1$i$19$i = $136;
}
} else {
$167 = $136;
$tvidx$02$i$16$i = 0;
while (1) {
$146 = HEAP32[3640 + ($tvidx$02$i$16$i * 76 | 0) + 4 >> 2] | 0;
$147 = _strlen($146) | 0;
$149 = HEAP32[3640 + ($tvidx$02$i$16$i * 76 | 0) + 8 >> 2] | 0;
$152 = _check_one(10, $146, $147, $149, _strlen($149) | 0, 3640 + ($tvidx$02$i$16$i * 76 | 0) + 12 | 0, 64) | 0;
if ($152) {
$$lcssa$i$18$i = $152;
$$lcssa1$i$19$i = $167;
break L62;
}
$tvidx$02$i$16$i = $tvidx$02$i$16$i + 1 | 0;
$167 = HEAP32[3640 + ($tvidx$02$i$16$i * 76 | 0) >> 2] | 0;
if (!$167) {
$ec$0 = 0;
break L1;
}
}
} while (0);
if (!$report) {
$ec$0 = 50;
break L1;
}
FUNCTION_TABLE_viiii[$report & 1](35713, 10, $$lcssa1$i$19$i, $$lcssa$i$18$i);
$ec$0 = 50;
break L1;
break;
}
default:
{
$ec$0 = 5;
break L1;
}
} else if (!$report) $ec$0 = 5; else {
FUNCTION_TABLE_viiii[$report & 1](35713, $algo, 37420, 35813);
$ec$0 = 5;
} while (0);
STACKTOP = sp;
return (($ec$0 | 0) == 0 ? 0 : $ec$0 & 65535 | 16777216) | 0;
}
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 $$011$i = 0, $$1 = 0, $$1$i = 0, $$16$i = 0, $$240$i = 0, $$335$i = 0, $$420$i = 0, $$buflen = 0, $$lcssa = 0, $$lcssa52 = 0, $$lcssa53 = 0, $$lcssa54 = 0, $$lcssa55 = 0, $$lcssa56 = 0, $$pn$i = 0, $$str$i = 0, $10 = 0, $100 = 0, $103 = 0, $105 = 0, $109 = 0, $110 = 0, $113 = 0, $114 = 0, $120 = 0, $122 = 0, $124 = 0, $13 = 0, $136 = 0, $14 = 0, $144 = 0, $147 = 0, $149 = 0, $151 = 0, $158 = 0, $161 = 0, $164 = 0, $165 = 0, $166 = 0, $173 = 0, $181 = 0, $184 = 0, $191 = 0, $20 = 0, $22 = 0, $24 = 0, $3 = 0, $32 = 0, $36 = 0, $46 = 0, $5 = 0, $50 = 0, $52 = 0, $56 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $71 = 0, $77 = 0, $9 = 0, $98 = 0, $99 = 0, $a$0 = 0, $a$036$i = 0, $a$08$i = 0, $c$0$i = 0, $c1$0$off$i = 0, $c1$018$i = 0, $i$01$i = 0, $i$01$i$7 = 0, $i$010$i = 0, $i$037$i = 0, $i$133$i = 0, $i$15$i = 0, $j$038$i = 0, $j$09$i = 0, $nread$012$i = 0, $nread$17$i = 0, $nread$2$i = 0, $prepend_zero$139$i = 0, $prepend_zero$234$i = 0, $val$0$i = 0, label = 0;
if (!$buffer_arg) $191 = 0; else $191 = (__gcry_is_secure($buffer_arg) | 0) != 0;
$3 = ($format | 0) == 3;
$$buflen = $3 ? 0 : $buflen;
switch ($format | 0) {
case 1:
{
$5 = ($$buflen + 3 | 0) >>> 2;
if ($191) $9 = __gcry_mpi_alloc_secure($5) | 0; else $9 = __gcry_mpi_alloc($5) | 0;
if ($$buflen) {
__gcry_mpi_set_buffer($9, $buffer_arg, $$buflen, 0);
$10 = HEAP8[$buffer_arg >> 0] | 0;
$13 = $9 + 8 | 0;
HEAP32[$13 >> 2] = ($10 & 255) >>> 7 & 255;
if ($10 << 24 >> 24 < 0) {
$14 = __gcry_mpi_get_nbits($9) | 0;
if (!(HEAP32[$9 + 12 >> 2] & 16)) {
__gcry_mpi_normalize($9);
$20 = HEAP32[$9 + 16 >> 2] | 0;
$22 = HEAP32[$9 + 4 >> 2] | 0;
if ($22) {
$i$01$i = 0;
do {
$24 = $20 + ($i$01$i << 2) | 0;
HEAP32[$24 >> 2] = ~HEAP32[$24 >> 2];
$i$01$i = $i$01$i + 1 | 0;
} while (($i$01$i | 0) != ($22 | 0));
}
HEAP32[$13 >> 2] = 0;
__gcry_mpi_clear_highbit($9, $14 + -1 | 0);
} else __gcry_mpi_immutable_failed();
__gcry_mpi_add_ui($9, $9, 1);
HEAP32[$13 >> 2] = 1;
}
}
if (!$ret_mpi) __gcry_mpi_free($9); else {
__gcry_mpi_normalize($9);
HEAP32[$ret_mpi >> 2] = $9;
}
if (!$nscanned) {
$$1 = 0;
return $$1 | 0;
}
HEAP32[$nscanned >> 2] = $$buflen;
$$1 = 0;
return $$1 | 0;
}
case 5:
{
$32 = ($$buflen + 3 | 0) >>> 2;
if ($191) $36 = __gcry_mpi_alloc_secure($32) | 0; else $36 = __gcry_mpi_alloc($32) | 0;
if ($$buflen) __gcry_mpi_set_buffer($36, $buffer_arg, $$buflen, 0);
if (!$ret_mpi) __gcry_mpi_free($36); else {
__gcry_mpi_normalize($36);
HEAP32[$ret_mpi >> 2] = $36;
}
if (!$nscanned) {
$$1 = 0;
return $$1 | 0;
}
HEAP32[$nscanned >> 2] = $$buflen;
$$1 = 0;
return $$1 | 0;
}
case 2:
{
L137 : do if ($$buflen >>> 0 < 2) {
$nread$2$i = 0;
$val$0$i = 0;
} else {
$46 = HEAPU8[$buffer_arg >> 0] << 8 | HEAPU8[$buffer_arg + 1 >> 0];
if ($46 >>> 0 > 16384) {
$nread$2$i = 0;
$val$0$i = 0;
} else {
$50 = ($46 + 7 | 0) >>> 3;
$52 = ($50 + 3 | 0) >>> 2;
if ($191) $56 = __gcry_mpi_alloc_secure($52) | 0; else $56 = __gcry_mpi_alloc($52) | 0;
HEAP32[$56 + 4 >> 2] = $52;
HEAP32[$56 + 8 >> 2] = 0;
if (!$52) {
$nread$2$i = 2;
$val$0$i = $56;
} else {
$61 = $56 + 16 | 0;
$$011$i = $buffer_arg + 2 | 0;
$i$010$i = 0 - $50 & 3;
$j$09$i = $52;
$nread$012$i = 2;
L145 : while (1) {
$$16$i = $$011$i;
$a$08$i = 0;
$i$15$i = $i$010$i;
$nread$17$i = $nread$012$i;
while (1) {
$62 = $nread$17$i + 1 | 0;
if ($62 >>> 0 > $$buflen >>> 0) {
$$lcssa53 = $62;
break L145;
}
$65 = $$16$i + 1 | 0;
$68 = HEAPU8[$$16$i >> 0] | $a$08$i << 8;
$i$15$i = $i$15$i + 1 | 0;
if (($i$15$i | 0) >= 4) {
$$lcssa54 = $62;
$$lcssa55 = $65;
$$lcssa56 = $68;
break;
} else {
$$16$i = $65;
$a$08$i = $68;
$nread$17$i = $62;
}
}
$71 = $j$09$i + -1 | 0;
HEAP32[(HEAP32[$61 >> 2] | 0) + ($71 << 2) >> 2] = $$lcssa56;
if (($j$09$i | 0) > 1) {
$$011$i = $$lcssa55;
$i$010$i = 0;
$j$09$i = $71;
$nread$012$i = $$lcssa54;
} else {
$nread$2$i = $$lcssa54;
$val$0$i = $56;
break L137;
}
}
__gcry_mpi_free($56);
$nread$2$i = $$lcssa53;
$val$0$i = 0;
}
}
} while (0);
if ($nscanned) HEAP32[$nscanned >> 2] = $nread$2$i;
$77 = ($val$0$i | 0) != 0;
if (($ret_mpi | 0) != 0 & $77) {
__gcry_mpi_normalize($val$0$i);
HEAP32[$ret_mpi >> 2] = $val$0$i;
$a$0 = $val$0$i;
} else if ($77) {
__gcry_mpi_free($val$0$i);
$a$0 = 0;
} else $a$0 = 0;
$$1 = ($a$0 | 0) != 0 ? 0 : 65;
return $$1 | 0;
}
default:
{
if ($3) {
if (($$buflen + -1 | 0) >>> 0 < 3) {
$$1 = 66;
return $$1 | 0;
}
$98 = HEAPU8[$buffer_arg + 1 >> 0] << 16 | HEAPU8[$buffer_arg >> 0] << 24 | HEAPU8[$buffer_arg + 2 >> 0] << 8 | HEAPU8[$buffer_arg + 3 >> 0];
$99 = $buffer_arg + 4 | 0;
if ($$buflen) {
$100 = $$buflen + -4 | 0;
if (($100 | 0) != 0 & $98 >>> 0 > $100 >>> 0) {
$$1 = 67;
return $$1 | 0;
}
}
$103 = $98 + 4 | 0;
$105 = ($98 + 3 | 0) >>> 2;
if ($191) $109 = __gcry_mpi_alloc_secure($105) | 0; else $109 = __gcry_mpi_alloc($105) | 0;
if ($98) {
__gcry_mpi_set_buffer($109, $99, $98, 0);
$110 = HEAP8[$99 >> 0] | 0;
$113 = $109 + 8 | 0;
HEAP32[$113 >> 2] = ($110 & 255) >>> 7 & 255;
if ($110 << 24 >> 24 < 0) {
$114 = __gcry_mpi_get_nbits($109) | 0;
if (!(HEAP32[$109 + 12 >> 2] & 16)) {
__gcry_mpi_normalize($109);
$120 = HEAP32[$109 + 16 >> 2] | 0;
$122 = HEAP32[$109 + 4 >> 2] | 0;
if ($122) {
$i$01$i$7 = 0;
do {
$124 = $120 + ($i$01$i$7 << 2) | 0;
HEAP32[$124 >> 2] = ~HEAP32[$124 >> 2];
$i$01$i$7 = $i$01$i$7 + 1 | 0;
} while (($i$01$i$7 | 0) != ($122 | 0));
}
HEAP32[$113 >> 2] = 0;
__gcry_mpi_clear_highbit($109, $114 + -1 | 0);
} else __gcry_mpi_immutable_failed();
__gcry_mpi_add_ui($109, $109, 1);
HEAP32[$113 >> 2] = 1;
}
}
if ($nscanned) HEAP32[$nscanned >> 2] = $103;
if (!$ret_mpi) {
__gcry_mpi_free($109);
$$1 = 0;
return $$1 | 0;
} else {
__gcry_mpi_normalize($109);
HEAP32[$ret_mpi >> 2] = $109;
$$1 = 0;
return $$1 | 0;
}
}
if (!(($format | 0) == 4 & ($buflen | 0) == 0)) {
$$1 = 45;
return $$1 | 0;
}
if ($191) $151 = __gcry_mpi_alloc_secure(0) | 0; else $151 = __gcry_mpi_alloc(0) | 0;
$136 = (HEAP8[$buffer_arg >> 0] | 0) == 45;
$$str$i = $136 ? $buffer_arg + 1 | 0 : $buffer_arg;
if ((HEAP8[$$str$i >> 0] | 0) == 48) $$1$i = (HEAP8[$$str$i + 1 >> 0] | 0) == 120 ? $$str$i + 2 | 0 : $$str$i; else $$1$i = $$str$i;
$144 = _strlen($$1$i) | 0;
$147 = (($144 << 2) + 7 | 0) >>> 3;
$149 = ($147 + 3 | 0) >>> 2;
if ((HEAP32[$151 >> 2] | 0) >>> 0 < $149 >>> 0) __gcry_mpi_resize($151, $149);
HEAP32[$151 + 4 >> 2] = $149;
HEAP32[$151 + 8 >> 2] = $136 & 1;
L53 : do if ($149) {
$158 = $151 + 16 | 0;
$$240$i = $$1$i;
$i$037$i = 0 - $147 & 3;
$j$038$i = $149;
$prepend_zero$139$i = $144 & 1;
L55 : while (1) {
$$335$i = $$240$i;
$a$036$i = 0;
$i$133$i = $i$037$i;
$prepend_zero$234$i = $prepend_zero$139$i;
while (1) {
if (!$prepend_zero$234$i) {
$161 = HEAP8[$$335$i >> 0] | 0;
if (!($161 << 24 >> 24)) {
label = 82;
break L55;
} else {
$$420$i = $$335$i + 1 | 0;
$c1$018$i = $161 << 24 >> 24;
}
} else {
$$420$i = $$335$i;
$c1$018$i = 48;
}
$164 = $$420$i + 1 | 0;
$165 = HEAP8[$$420$i >> 0] | 0;
$166 = $165 << 24 >> 24;
if (!($165 << 24 >> 24)) {
label = 84;
break L55;
}
$c1$0$off$i = $c1$018$i + -48 | 0;
do if ($c1$0$off$i >>> 0 < 10) $c$0$i = $c1$0$off$i; else {
if (($c1$018$i + -97 | 0) >>> 0 < 6) {
$c$0$i = $c1$018$i + -87 | 0;
break;
}
if (($c1$018$i + -65 | 0) >>> 0 >= 6) {
label = 90;
break L55;
}
$c$0$i = $c1$018$i + -55 | 0;
} while (0);
$173 = $c$0$i << 4;
do if (($165 + -48 & 255) < 10) $$pn$i = $166 + -48 | 0; else {
if (($165 + -97 & 255) < 6) {
$$pn$i = $166 + -87 | 0;
break;
}
if (($165 + -65 & 255) >= 6) {
label = 97;
break L55;
}
$$pn$i = $166 + -55 | 0;
} while (0);
$181 = $173 | $a$036$i << 8 | $$pn$i;
$i$133$i = $i$133$i + 1 | 0;
if (($i$133$i | 0) >= 4) {
$$lcssa = $181;
$$lcssa52 = $164;
break;
} else {
$$335$i = $164;
$a$036$i = $181;
$prepend_zero$234$i = 0;
}
}
$184 = $j$038$i + -1 | 0;
HEAP32[(HEAP32[$158 >> 2] | 0) + ($184 << 2) >> 2] = $$lcssa;
if (($j$038$i | 0) > 1) {
$$240$i = $$lcssa52;
$i$037$i = 0;
$j$038$i = $184;
$prepend_zero$139$i = 0;
} else break L53;
}
if ((label | 0) == 82) __gcry_mpi_clear($151); else if ((label | 0) == 84) __gcry_mpi_clear($151); else if ((label | 0) == 90) __gcry_mpi_clear($151); else if ((label | 0) == 97) __gcry_mpi_clear($151);
__gcry_mpi_free($151);
$$1 = 65;
return $$1 | 0;
} while (0);
if (!$ret_mpi) __gcry_mpi_free($151); else {
__gcry_mpi_normalize($151);
HEAP32[$ret_mpi >> 2] = $151;
}
if (!$nscanned) {
$$1 = 0;
return $$1 | 0;
}
HEAP32[$nscanned >> 2] = _strlen($buffer_arg) | 0;
$$1 = 0;
return $$1 | 0;
}
}
return 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, $$pre$phiZ2D = 0, $1 = 0, $108 = 0, $110 = 0, $12 = 0, $123 = 0, $125 = 0, $129 = 0, $13 = 0, $136 = 0, $138 = 0, $142 = 0, $144 = 0, $146 = 0, $151 = 0, $178 = 0, $20 = 0, $30 = 0, $36 = 0, $38 = 0, $41 = 0, $43 = 0, $45 = 0, $47 = 0, $55 = 0, $58 = 0, $6 = 0, $62 = 0, $64 = 0, $66 = 0, $8 = 0, $80 = 0, $83 = 0, $89 = 0, $95 = 0, $97 = 0, $a = 0, $ctx = 0, $curvename$02 = 0, $curvename$1 = 0, $data = 0, $l1 = 0, $mpi_g = 0, $mpi_q = 0, $pk = 0, $rc$0 = 0, $rc$1 = 0, $rc$2 = 0, $rc$3 = 0, $sig_r = 0, $sig_s = 0, $sigflags = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer17 = 0, $vararg_buffer22 = 0, $vararg_buffer25 = 0, $vararg_buffer3 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224 | 0;
$vararg_buffer25 = sp + 80 | 0;
$vararg_buffer22 = sp + 72 | 0;
$vararg_buffer17 = sp + 56 | 0;
$vararg_buffer13 = sp + 48 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$ctx = sp + 176 | 0;
$l1 = sp + 172 | 0;
$mpi_g = sp + 168 | 0;
$mpi_q = sp + 164 | 0;
$sig_r = sp + 160 | 0;
$sig_s = sp + 156 | 0;
$data = sp + 152 | 0;
$pk = sp + 96 | 0;
$sigflags = sp + 88 | 0;
$a = sp + 84 | 0;
HEAP32[$l1 >> 2] = 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;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_pk_util_init_encoding_ctx($ctx, 3, _ecc_get_nbits($s_keyparms) | 0);
$1 = __gcry_pk_util_data_to_mpi($s_data, $data, $ctx) | 0;
L1 : do if (!$1) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(46612, HEAP32[$data >> 2] | 0);
$6 = __gcry_pk_util_preparse_sigval($s_sig, 12480, $l1, $sigflags) | 0;
if (!$6) {
$8 = HEAP32[$l1 >> 2] | 0;
$12 = (HEAP32[$sigflags >> 2] & 4096 | 0) != 0 ? 46628 : 46543;
HEAP32[$vararg_buffer >> 2] = $sig_r;
HEAP32[$vararg_buffer + 4 >> 2] = $sig_s;
HEAP32[$vararg_buffer + 8 >> 2] = 0;
$13 = __gcry_sexp_extract_param($8, 0, $12, $vararg_buffer) | 0;
if (!$13) {
if (__gcry_get_debug_flag(1) | 0) {
__gcry_log_printmpi(46632, HEAP32[$sig_r >> 2] | 0);
__gcry_log_printmpi(46648, HEAP32[$sig_s >> 2] | 0);
}
$20 = HEAP32[$ctx + 12 >> 2] | 0;
if (!((HEAP32[$sigflags >> 2] ^ $20) & 4096)) {
if (!($20 & 512)) {
HEAP32[$vararg_buffer13 >> 2] = $mpi_q;
HEAP32[$vararg_buffer13 + 4 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($s_keyparms, 0, 46581, $vararg_buffer13) | 0;
} else {
$30 = $pk + 32 | 0;
HEAP32[$vararg_buffer3 >> 2] = $pk + 8;
HEAP32[$vararg_buffer3 + 4 >> 2] = $pk + 12;
HEAP32[$vararg_buffer3 + 8 >> 2] = $pk + 16;
HEAP32[$vararg_buffer3 + 12 >> 2] = $mpi_g;
HEAP32[$vararg_buffer3 + 16 >> 2] = $30;
HEAP32[$vararg_buffer3 + 20 >> 2] = $30;
HEAP32[$vararg_buffer3 + 24 >> 2] = $mpi_q;
HEAP32[$vararg_buffer3 + 28 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($s_keyparms, 0, 46664, $vararg_buffer3) | 0;
}
if (!$rc$0) {
if (HEAP32[$mpi_g >> 2] | 0) {
$36 = $pk + 20 | 0;
__gcry_mpi_point_init($36);
$38 = __gcry_ecc_os2ec($36, HEAP32[$mpi_g >> 2] | 0) | 0;
if ($38) {
$curvename$1 = 0;
$rc$3 = $38;
break;
}
}
__gcry_sexp_release(HEAP32[$l1 >> 2] | 0);
$41 = __gcry_sexp_find_token($s_keyparms, 46586, 5) | 0;
HEAP32[$l1 >> 2] = $41;
if (!$41) label = 18; else {
$43 = __gcry_sexp_nth_string($41, 1) | 0;
if (!$43) label = 18; else {
$45 = __gcry_ecc_fill_in_curve(0, $43, $pk, 0) | 0;
if (!$45) $curvename$02 = $43; else {
$$0 = $45;
STACKTOP = sp;
return $$0 | 0;
}
}
}
if ((label | 0) == 18) {
$47 = HEAP32[$sigflags >> 2] | 0;
HEAP32[$pk >> 2] = $47 >>> 11 & 2;
HEAP32[$pk + 4 >> 2] = $47 >>> 12 & 1;
$curvename$02 = 0;
}
if (!(__gcry_get_debug_flag(1) | 0)) $$pre$phiZ2D = $pk + 8 | 0; else {
$55 = __gcry_ecc_model2str(HEAP32[$pk >> 2] | 0) | 0;
$58 = __gcry_ecc_dialect2str(HEAP32[$pk + 4 >> 2] | 0) | 0;
$62 = (HEAP32[$sigflags >> 2] & 4096 | 0) != 0 ? 46680 : 75759;
HEAP32[$vararg_buffer17 >> 2] = $55;
HEAP32[$vararg_buffer17 + 4 >> 2] = $58;
HEAP32[$vararg_buffer17 + 8 >> 2] = $62;
__gcry_log_debug(46687, $vararg_buffer17);
$64 = HEAP32[$pk + 40 >> 2] | 0;
if ($64) {
HEAP32[$vararg_buffer22 >> 2] = $64;
__gcry_log_debug(46713, $vararg_buffer22);
}
$66 = $pk + 8 | 0;
__gcry_log_printmpi(46734, HEAP32[$66 >> 2] | 0);
__gcry_log_printmpi(46750, HEAP32[$pk + 12 >> 2] | 0);
__gcry_log_printmpi(46766, HEAP32[$pk + 16 >> 2] | 0);
__gcry_mpi_point_log(46782, $pk + 20 | 0, 0);
__gcry_log_printmpi(46796, HEAP32[$pk + 32 >> 2] | 0);
__gcry_log_printmpi(46812, HEAP32[$pk + 36 >> 2] | 0);
__gcry_log_printmpi(46828, HEAP32[$mpi_q >> 2] | 0);
$$pre$phiZ2D = $66;
}
if (!(HEAP32[$$pre$phiZ2D >> 2] | 0)) {
$curvename$1 = $curvename$02;
$rc$3 = 68;
} else {
$80 = $pk + 12 | 0;
if (!(HEAP32[$80 >> 2] | 0)) {
$curvename$1 = $curvename$02;
$rc$3 = 68;
} else {
$83 = $pk + 16 | 0;
if (!(HEAP32[$83 >> 2] | 0)) {
$curvename$1 = $curvename$02;
$rc$3 = 68;
} else if (!(HEAP32[$pk + 20 >> 2] | 0)) {
$curvename$1 = $curvename$02;
$rc$3 = 68;
} else {
$89 = $pk + 32 | 0;
if (!(HEAP32[$89 >> 2] | 0)) {
$curvename$1 = $curvename$02;
$rc$3 = 68;
} else {
$95 = HEAP32[$mpi_q >> 2] | 0;
if ((HEAP32[$pk + 36 >> 2] | 0) != 0 & ($95 | 0) != 0) {
$97 = HEAP32[$sigflags >> 2] | 0;
if ($97 & 4096) {
$curvename$1 = $curvename$02;
$rc$3 = __gcry_ecc_eddsa_verify(HEAP32[$data >> 2] | 0, $pk, HEAP32[$sig_r >> 2] | 0, HEAP32[$sig_s >> 2] | 0, HEAP32[$ctx + 16 >> 2] | 0, $95) | 0;
break;
}
$108 = $pk + 44 | 0;
__gcry_mpi_point_init($108);
if ($97 & 8192) {
$110 = __gcry_ecc_os2ec($108, HEAP32[$mpi_q >> 2] | 0) | 0;
if ($110) {
$curvename$1 = $curvename$02;
$rc$3 = $110;
break;
}
$curvename$1 = $curvename$02;
$rc$3 = __gcry_ecc_gost_verify(HEAP32[$data >> 2] | 0, $pk, HEAP32[$sig_r >> 2] | 0, HEAP32[$sig_s >> 2] | 0) | 0;
break;
}
if ((HEAP32[$pk + 4 >> 2] | 0) == 1) {
$123 = __gcry_mpi_ec_p_internal_new(HEAP32[$pk >> 2] | 0, 1, 0, HEAP32[$$pre$phiZ2D >> 2] | 0, HEAP32[$80 >> 2] | 0, HEAP32[$83 >> 2] | 0) | 0;
$125 = __gcry_ecc_eddsa_decodepoint(HEAP32[$mpi_q >> 2] | 0, $123, $108, 0, 0) | 0;
__gcry_mpi_ec_free($123);
$rc$1 = $125;
} else $rc$1 = __gcry_ecc_os2ec($108, HEAP32[$mpi_q >> 2] | 0) | 0;
if ($rc$1) {
$curvename$1 = $curvename$02;
$rc$3 = $rc$1;
break;
}
$129 = HEAP32[$data >> 2] | 0;
do if ($129) {
if (!(HEAP32[$129 + 12 >> 2] & 4)) break;
$136 = __gcry_mpi_get_nbits(HEAP32[$89 >> 2] | 0) | 0;
$138 = __gcry_mpi_get_opaque(HEAP32[$data >> 2] | 0, $vararg_buffer) | 0;
$142 = __gcry_mpi_scan($a, 5, $138, ((HEAP32[$vararg_buffer >> 2] | 0) + 7 | 0) >>> 3, 0) | 0;
if (!$142) {
$144 = HEAP32[$vararg_buffer >> 2] | 0;
if ($144 >>> 0 > $136 >>> 0) {
$146 = HEAP32[$a >> 2] | 0;
__gcry_mpi_rshift($146, $146, $144 - $136 | 0);
}
$151 = __gcry_ecc_ecdsa_verify(HEAP32[$a >> 2] | 0, $pk, HEAP32[$sig_r >> 2] | 0, HEAP32[$sig_s >> 2] | 0) | 0;
__gcry_mpi_release(HEAP32[$a >> 2] | 0);
$rc$2 = $151;
} else $rc$2 = $142;
$curvename$1 = $curvename$02;
$rc$3 = $rc$2;
break L1;
} while (0);
$curvename$1 = $curvename$02;
$rc$3 = __gcry_ecc_ecdsa_verify($129, $pk, HEAP32[$sig_r >> 2] | 0, HEAP32[$sig_s >> 2] | 0) | 0;
} else {
$curvename$1 = $curvename$02;
$rc$3 = 68;
}
}
}
}
}
} else {
$curvename$1 = 0;
$rc$3 = $rc$0;
}
} else {
$curvename$1 = 0;
$rc$3 = 70;
}
} else {
$curvename$1 = 0;
$rc$3 = $13;
}
} else {
$curvename$1 = 0;
$rc$3 = $6;
}
} else {
$curvename$1 = 0;
$rc$3 = $1;
} while (0);
__gcry_mpi_release(HEAP32[$pk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_g >> 2] | 0);
__gcry_mpi_point_free_parts($pk + 20 | 0);
__gcry_mpi_release(HEAP32[$pk + 32 >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 36 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_q >> 2] | 0);
__gcry_mpi_point_free_parts($pk + 44 | 0);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_mpi_release(HEAP32[$sig_r >> 2] | 0);
__gcry_mpi_release(HEAP32[$sig_s >> 2] | 0);
__gcry_free($curvename$1);
__gcry_sexp_release(HEAP32[$l1 >> 2] | 0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = $rc$3;
STACKTOP = sp;
return $$0 | 0;
}
if (!$rc$3) $178 = 46844; else $178 = _gpg_strerror($rc$3) | 0;
HEAP32[$vararg_buffer25 >> 2] = $178;
__gcry_log_debug(46849, $vararg_buffer25);
$$0 = $rc$3;
STACKTOP = sp;
return $$0 | 0;
}
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, $$0$lcssa$i = 0, $$0$lcssa$i$10 = 0, $$0$lcssa$i$30 = 0, $$01 = 0, $$03 = 0, $$06 = 0, $$06$i = 0, $$08$i = 0, $$08$i$21 = 0, $$1 = 0, $$1$ph$i = 0, $$1$ph$i$13 = 0, $$1$ph$i$38 = 0, $$13$i = 0, $$14 = 0, $$14$i = 0, $$14$i$40 = 0, $$17 = 0, $$2 = 0, $$25 = 0, $$28 = 0, $$lcssa = 0, $$lcssa77 = 0, $$lcssa78 = 0, $$lcssa79 = 0, $1 = 0, $105 = 0, $107 = 0, $108 = 0, $115 = 0, $116 = 0, $117 = 0, $13 = 0, $132 = 0, $133 = 0, $140 = 0, $141 = 0, $143 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $44 = 0, $48 = 0, $5 = 0, $51 = 0, $55 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $65 = 0, $68 = 0, $7 = 0, $70 = 0, $72 = 0, $73 = 0, $8 = 0, $81 = 0, $82 = 0, $83 = 0, $_vlen$0$lcssa63 = 0, $_vlen$053 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$351 = 0, $_vptr$0$lcssa64 = 0, $_vptr$052 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$350 = 0, $burn$0 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$12 = 0, $dst$0$ph$i$35 = 0, $dst$01$i = 0, $dst$01$i$15 = 0, $dst$01$i$43 = 0, $i$0 = 0, $inbuflen$ = 0, $ldst$0$lcssa$i = 0, $ldst$0$lcssa$i$11 = 0, $ldst$0$lcssa$i$33 = 0, $ldst$04$i = 0, $ldst$05$i = 0, $ldst$05$i$24 = 0, $lsrc$0$lcssa$i = 0, $lsrc$05$i = 0, $lsrc1$0$lcssa$i = 0, $lsrc1$0$lcssa$i$32 = 0, $lsrc1$06$i = 0, $lsrc1$06$i$23 = 0, $lsrc2$0$lcssa$i = 0, $lsrc2$0$lcssa$i$31 = 0, $lsrc2$07$i = 0, $lsrc2$07$i$22 = 0, $scevgep = 0, $scevgep$i$9 = 0, $scevgep19$i = 0, $scevgep19$i$18 = 0, $src$0$ph$i = 0, $src$02$i = 0, $src1$0$ph$i = 0, $src1$0$ph$i$36 = 0, $src1$02$i = 0, $src1$02$i$42 = 0, $src2$0$ph$i = 0, $src2$0$ph$i$37 = 0, $src2$03$i = 0, $src2$03$i$41 = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tmp = sp;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 36 >> 2] | 0;
$5 = HEAP32[$1 + 20 >> 2] | 0;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
STACKTOP = sp;
return $$0 | 0;
}
$7 = $c + 112 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if (!$8) {
$$01 = $outbuf;
$$03 = $inbuf;
$$06 = $inbuflen;
} else {
if ($5 >>> 0 <= $8 >>> 0) __gcry_assert_failed(46226, 46248, 53, 46261);
$inbuflen$ = $8 >>> 0 > $inbuflen >>> 0 ? $inbuflen : $8;
$13 = $5 - $8 + ($c + 96) | 0;
if (!(($inbuf | $outbuf | $13) & 3)) {
if ($inbuflen$ >>> 0 > 3) {
$22 = $inbuflen$ + -4 | 0;
$23 = $22 & -4;
$24 = $23 + 4 | 0;
$scevgep19$i = $13 + $24 | 0;
$$08$i = $inbuflen$;
$ldst$05$i = $outbuf;
$lsrc1$06$i = $inbuf;
$lsrc2$07$i = $13;
while (1) {
HEAP32[$ldst$05$i >> 2] = HEAP32[$lsrc2$07$i >> 2] ^ HEAP32[$lsrc1$06$i >> 2];
$$08$i = $$08$i + -4 | 0;
if ($$08$i >>> 0 <= 3) break; else {
$ldst$05$i = $ldst$05$i + 4 | 0;
$lsrc1$06$i = $lsrc1$06$i + 4 | 0;
$lsrc2$07$i = $lsrc2$07$i + 4 | 0;
}
}
$$0$lcssa$i = $22 - $23 | 0;
$ldst$0$lcssa$i = $outbuf + $24 | 0;
$lsrc1$0$lcssa$i = $inbuf + $24 | 0;
$lsrc2$0$lcssa$i = $scevgep19$i;
} else {
$$0$lcssa$i = $inbuflen$;
$ldst$0$lcssa$i = $outbuf;
$lsrc1$0$lcssa$i = $inbuf;
$lsrc2$0$lcssa$i = $13;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src1$0$ph$i = $lsrc1$0$lcssa$i;
$src2$0$ph$i = $lsrc2$0$lcssa$i;
} else {
$$1$ph$i = $inbuflen$;
$dst$0$ph$i = $outbuf;
$src1$0$ph$i = $inbuf;
$src2$0$ph$i = $13;
}
if (!$$1$ph$i) $44 = $8; else {
$$14$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src1$02$i = $src1$0$ph$i;
$src2$03$i = $src2$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src2$03$i >> 0] ^ HEAP8[$src1$02$i >> 0];
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src1$02$i = $src1$02$i + 1 | 0;
$src2$03$i = $src2$03$i + 1 | 0;
}
}
$44 = HEAP32[$7 >> 2] | 0;
}
HEAP32[$7 >> 2] = $44 - $inbuflen$;
$$01 = $outbuf + $inbuflen$ | 0;
$$03 = $inbuf + $inbuflen$ | 0;
$$06 = $inbuflen - $inbuflen$ | 0;
}
$48 = ($$06 >>> 0) / ($5 >>> 0) | 0;
if (!$48) {
$$1 = $$01;
$$14 = $$03;
$$17 = $$06;
} else {
$51 = HEAP32[$c + 36 >> 2] | 0;
if (!$51) {
$$1 = $$01;
$$14 = $$03;
$$17 = $$06;
} else {
FUNCTION_TABLE_viiiii[$51 & 15]($c + 496 | 0, $c + 80 | 0, $$01, $$03, $48);
$55 = Math_imul($48, $5) | 0;
$$1 = $$01 + $55 | 0;
$$14 = $$03 + $55 | 0;
$$17 = $$06 - $55 | 0;
}
}
if (!$$17) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$60 = $c + 496 | 0;
$61 = $c + 80 | 0;
$62 = $tmp;
$$2 = $$1;
$$25 = $$14;
$$28 = $$17;
$burn$0 = 0;
while (1) {
$63 = FUNCTION_TABLE_iiii[$3 & 63]($60, $tmp, $61) | 0;
$65 = $63 >>> 0 > $burn$0 >>> 0 ? $63 : $burn$0;
$i$0 = $5;
do {
if (($i$0 | 0) <= 0) break;
$i$0 = $i$0 + -1 | 0;
$68 = $61 + $i$0 | 0;
$70 = (HEAP8[$68 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$68 >> 0] = $70;
} while ($70 << 24 >> 24 == 0);
$72 = $5 >>> 0 < $$28 >>> 0;
$73 = $72 ? $5 : $$28;
if (!(($$25 | $62 | $$2) & 3)) {
if ($73 >>> 0 > 3) {
$81 = $73 + -4 | 0;
$82 = $81 & -4;
$83 = $82 + 4 | 0;
$scevgep19$i$18 = $tmp + $83 | 0;
$$08$i$21 = $73;
$ldst$05$i$24 = $$2;
$lsrc1$06$i$23 = $$25;
$lsrc2$07$i$22 = $tmp;
while (1) {
HEAP32[$ldst$05$i$24 >> 2] = HEAP32[$lsrc2$07$i$22 >> 2] ^ HEAP32[$lsrc1$06$i$23 >> 2];
$$08$i$21 = $$08$i$21 + -4 | 0;
if ($$08$i$21 >>> 0 <= 3) break; else {
$ldst$05$i$24 = $ldst$05$i$24 + 4 | 0;
$lsrc1$06$i$23 = $lsrc1$06$i$23 + 4 | 0;
$lsrc2$07$i$22 = $lsrc2$07$i$22 + 4 | 0;
}
}
$$0$lcssa$i$30 = $81 - $82 | 0;
$ldst$0$lcssa$i$33 = $$2 + $83 | 0;
$lsrc1$0$lcssa$i$32 = $$25 + $83 | 0;
$lsrc2$0$lcssa$i$31 = $scevgep19$i$18;
} else {
$$0$lcssa$i$30 = $73;
$ldst$0$lcssa$i$33 = $$2;
$lsrc1$0$lcssa$i$32 = $$25;
$lsrc2$0$lcssa$i$31 = $tmp;
}
$$1$ph$i$38 = $$0$lcssa$i$30;
$dst$0$ph$i$35 = $ldst$0$lcssa$i$33;
$src1$0$ph$i$36 = $lsrc1$0$lcssa$i$32;
$src2$0$ph$i$37 = $lsrc2$0$lcssa$i$31;
} else {
$$1$ph$i$38 = $73;
$dst$0$ph$i$35 = $$2;
$src1$0$ph$i$36 = $$25;
$src2$0$ph$i$37 = $tmp;
}
if ($$1$ph$i$38) {
$$14$i$40 = $$1$ph$i$38;
$dst$01$i$43 = $dst$0$ph$i$35;
$src1$02$i$42 = $src1$0$ph$i$36;
$src2$03$i$41 = $src2$0$ph$i$37;
while (1) {
HEAP8[$dst$01$i$43 >> 0] = HEAP8[$src2$03$i$41 >> 0] ^ HEAP8[$src1$02$i$42 >> 0];
$$14$i$40 = $$14$i$40 + -1 | 0;
if (!$$14$i$40) break; else {
$dst$01$i$43 = $dst$01$i$43 + 1 | 0;
$src1$02$i$42 = $src1$02$i$42 + 1 | 0;
$src2$03$i$41 = $src2$03$i$41 + 1 | 0;
}
}
}
if ($72) {
$$2 = $$2 + $73 | 0;
$$25 = $$25 + $73 | 0;
$$28 = $$28 - $73 | 0;
$burn$0 = $65;
} else {
$$lcssa78 = $65;
$$lcssa79 = $73;
break;
}
}
$105 = $5 - $$lcssa79 | 0;
HEAP32[$7 >> 2] = $105;
if (($5 | 0) != ($$lcssa79 | 0)) {
$107 = $c + 96 + $$lcssa79 | 0;
$108 = $tmp + $$lcssa79 | 0;
if (!(($108 | $107) & 3)) {
if ($105 >>> 0 > 3) {
$115 = $105 + -4 | 0;
$116 = $115 & -4;
$117 = $116 + 4 | 0;
$scevgep$i$9 = $107 + $117 | 0;
$$06$i = $105;
$ldst$04$i = $107;
$lsrc$05$i = $108;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i$10 = $115 - $116 | 0;
$ldst$0$lcssa$i$11 = $scevgep$i$9;
$lsrc$0$lcssa$i = $108 + $117 | 0;
} else {
$$0$lcssa$i$10 = $105;
$ldst$0$lcssa$i$11 = $107;
$lsrc$0$lcssa$i = $108;
}
$$1$ph$i$13 = $$0$lcssa$i$10;
$dst$0$ph$i$12 = $ldst$0$lcssa$i$11;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i$13 = $105;
$dst$0$ph$i$12 = $107;
$src$0$ph$i = $108;
}
if ($$1$ph$i$13) {
$$13$i = $$1$ph$i$13;
$dst$01$i$15 = $dst$0$ph$i$12;
$src$02$i = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i$15 >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) break; else {
$dst$01$i$15 = $dst$01$i$15 + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
}
if (!($62 & 7)) {
$_vlen$0$lcssa63 = 16;
$_vptr$0$lcssa64 = $tmp;
label = 44;
} else {
$_vlen$053 = 16;
$_vptr$052 = $tmp;
while (1) {
HEAP8[$_vptr$052 >> 0] = 0;
$132 = $_vptr$052 + 1 | 0;
$133 = $_vlen$053 + -1 | 0;
if (($133 | 0) != 0 & ($132 & 7 | 0) != 0) {
$_vlen$053 = $133;
$_vptr$052 = $132;
} else {
$$lcssa = $132;
$$lcssa77 = $133;
break;
}
}
if ($$lcssa77 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa77;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa63 = $$lcssa77;
$_vptr$0$lcssa64 = $$lcssa;
label = 44;
}
}
if ((label | 0) == 44) {
$140 = $_vlen$0$lcssa63 + -8 | 0;
$141 = $140 & -8;
$scevgep = $_vptr$0$lcssa64 + ($141 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa63;
$_vptr$1 = $_vptr$0$lcssa64;
while (1) {
$143 = $_vptr$1;
HEAP32[$143 >> 2] = 0;
HEAP32[$143 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $140 - $141 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$351 = $_vlen$3$ph;
$_vptr$350 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$350 >> 0] = 0;
$_vlen$351 = $_vlen$351 + -1 | 0;
if (!$_vlen$351) break; else $_vptr$350 = $_vptr$350 + 1 | 0;
}
}
if (!$$lcssa78) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
___gcry_burn_stack($$lcssa78 + 16 | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_mpi_ec_add_points($result, $p1, $p2, $ctx) {
$result = $result | 0;
$p1 = $p1 | 0;
$p2 = $p2 | 0;
$ctx = $ctx | 0;
var $$pre$phi$i$iZ2D = 0, $$pre$phi$iZ2D = 0, $101 = 0, $104 = 0, $119 = 0, $120 = 0, $123 = 0, $126 = 0, $127 = 0, $130 = 0, $133 = 0, $134 = 0, $137 = 0, $140 = 0, $142 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $157 = 0, $159 = 0, $165 = 0, $167 = 0, $17 = 0, $170 = 0, $174 = 0, $176 = 0, $179 = 0, $180 = 0, $182 = 0, $184 = 0, $187 = 0, $191 = 0, $192 = 0, $193 = 0, $197 = 0, $198 = 0, $200 = 0, $201 = 0, $203 = 0, $208 = 0, $31 = 0, $46 = 0, $49 = 0, $50 = 0, $51 = 0, $53 = 0, $54 = 0, $55 = 0, $59 = 0, $61 = 0, $65 = 0, $66 = 0, $68 = 0, $69 = 0, $70 = 0, $74 = 0, $76 = 0, $80 = 0, $84 = 0, $85 = 0, $86 = 0, $88 = 0, $91 = 0, $94 = 0, $95 = 0, $96 = 0, $98 = 0, $ctx$idx2$i = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
switch (HEAP32[$ctx >> 2] | 0) {
case 0:
{
if (!(__gcry_mpi_cmp(HEAP32[$p1 >> 2] | 0, HEAP32[$p2 >> 2] | 0) | 0)) if (!(__gcry_mpi_cmp(HEAP32[$p1 + 4 >> 2] | 0, HEAP32[$p2 + 4 >> 2] | 0) | 0)) if (!(__gcry_mpi_cmp(HEAP32[$p1 + 8 >> 2] | 0, HEAP32[$p2 + 8 >> 2] | 0) | 0)) {
__gcry_mpi_ec_dup_point($result, $p1, $ctx);
STACKTOP = sp;
return;
}
$17 = $p1 + 8 | 0;
if (!(__gcry_mpi_cmp_ui(HEAP32[$17 >> 2] | 0, 0) | 0)) {
__gcry_mpi_set(HEAP32[$result >> 2] | 0, HEAP32[$p2 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$result + 4 >> 2] | 0, HEAP32[$p2 + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$result + 8 >> 2] | 0, HEAP32[$p2 + 8 >> 2] | 0) | 0;
STACKTOP = sp;
return;
}
$31 = $p2 + 8 | 0;
if (!(__gcry_mpi_cmp_ui(HEAP32[$31 >> 2] | 0, 0) | 0)) {
__gcry_mpi_set(HEAP32[$result >> 2] | 0, HEAP32[$p1 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$result + 4 >> 2] | 0, HEAP32[$p1 + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$result + 8 >> 2] | 0, HEAP32[$17 >> 2] | 0) | 0;
STACKTOP = sp;
return;
}
$46 = (__gcry_mpi_cmp_ui(HEAP32[$17 >> 2] | 0, 1) | 0) == 0;
$49 = (__gcry_mpi_cmp_ui(HEAP32[$31 >> 2] | 0, 1) | 0) == 0;
$50 = $ctx + 64 | 0;
$51 = HEAP32[$50 >> 2] | 0;
do if ($49) __gcry_mpi_set($51, HEAP32[$p1 >> 2] | 0) | 0; else {
$53 = HEAP32[$31 >> 2] | 0;
__gcry_mpi_mul($51, $53, $53);
$54 = $ctx + 60 | 0;
$55 = HEAP32[$54 >> 2] | 0;
if (!$55) __gcry_mpi_mod($51, $51, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($51, $51, $55);
$59 = HEAP32[$50 >> 2] | 0;
__gcry_mpi_mul($59, $59, HEAP32[$p1 >> 2] | 0);
$61 = HEAP32[$54 >> 2] | 0;
if (!$61) {
__gcry_mpi_mod($59, $59, HEAP32[$ctx + 16 >> 2] | 0);
break;
} else {
__gcry_mpi_mod_barrett($59, $59, $61);
break;
}
} while (0);
$65 = $ctx + 68 | 0;
$66 = HEAP32[$65 >> 2] | 0;
do if ($46) {
__gcry_mpi_set($66, HEAP32[$p2 >> 2] | 0) | 0;
$$pre$phi$iZ2D = $ctx + 60 | 0;
} else {
$68 = HEAP32[$17 >> 2] | 0;
__gcry_mpi_mul($66, $68, $68);
$69 = $ctx + 60 | 0;
$70 = HEAP32[$69 >> 2] | 0;
if (!$70) __gcry_mpi_mod($66, $66, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($66, $66, $70);
$74 = HEAP32[$65 >> 2] | 0;
__gcry_mpi_mul($74, $74, HEAP32[$p2 >> 2] | 0);
$76 = HEAP32[$69 >> 2] | 0;
if (!$76) {
__gcry_mpi_mod($74, $74, HEAP32[$ctx + 16 >> 2] | 0);
$$pre$phi$iZ2D = $69;
break;
} else {
__gcry_mpi_mod_barrett($74, $74, $76);
$$pre$phi$iZ2D = $69;
break;
}
} while (0);
$80 = $ctx + 72 | 0;
__gcry_mpi_sub(HEAP32[$80 >> 2] | 0, HEAP32[$50 >> 2] | 0, HEAP32[$65 >> 2] | 0);
$84 = $ctx + 76 | 0;
$85 = HEAP32[$84 >> 2] | 0;
$86 = HEAP32[$31 >> 2] | 0;
$ctx$idx2$i = $ctx + 16 | 0;
__gcry_mpi_powm($85, $86, __gcry_mpi_const(3) | 0, HEAP32[$ctx$idx2$i >> 2] | 0);
$88 = HEAP32[$84 >> 2] | 0;
__gcry_mpi_mul($88, $88, HEAP32[$p1 + 4 >> 2] | 0);
$91 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$91) __gcry_mpi_mod($88, $88, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($88, $88, $91);
$94 = $ctx + 80 | 0;
$95 = HEAP32[$94 >> 2] | 0;
$96 = HEAP32[$17 >> 2] | 0;
__gcry_mpi_powm($95, $96, __gcry_mpi_const(3) | 0, HEAP32[$ctx$idx2$i >> 2] | 0);
$98 = HEAP32[$94 >> 2] | 0;
__gcry_mpi_mul($98, $98, HEAP32[$p2 + 4 >> 2] | 0);
$101 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$101) __gcry_mpi_mod($98, $98, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($98, $98, $101);
$104 = $ctx + 84 | 0;
__gcry_mpi_sub(HEAP32[$104 >> 2] | 0, HEAP32[$84 >> 2] | 0, HEAP32[$94 >> 2] | 0);
if (!(__gcry_mpi_cmp_ui(HEAP32[$80 >> 2] | 0, 0) | 0)) if (!(__gcry_mpi_cmp_ui(HEAP32[$104 >> 2] | 0, 0) | 0)) {
__gcry_mpi_ec_dup_point($result, $p1, $ctx);
STACKTOP = sp;
return;
} else {
__gcry_mpi_set_ui(HEAP32[$result >> 2] | 0, 1) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 4 >> 2] | 0, 1) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 0) | 0;
STACKTOP = sp;
return;
}
$119 = $ctx + 88 | 0;
$120 = HEAP32[$119 >> 2] | 0;
__gcry_mpi_add($120, HEAP32[$50 >> 2] | 0, HEAP32[$65 >> 2] | 0);
$123 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$123) __gcry_mpi_mod($120, $120, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($120, $120, $123);
$126 = $ctx + 92 | 0;
$127 = HEAP32[$126 >> 2] | 0;
__gcry_mpi_add($127, HEAP32[$84 >> 2] | 0, HEAP32[$94 >> 2] | 0);
$130 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$130) __gcry_mpi_mod($127, $127, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($127, $127, $130);
$133 = $result + 8 | 0;
$134 = HEAP32[$133 >> 2] | 0;
__gcry_mpi_mul($134, HEAP32[$17 >> 2] | 0, HEAP32[$31 >> 2] | 0);
$137 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$137) __gcry_mpi_mod($134, $134, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($134, $134, $137);
$140 = HEAP32[$133 >> 2] | 0;
__gcry_mpi_mul($140, $140, HEAP32[$80 >> 2] | 0);
$142 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$142) __gcry_mpi_mod($140, $140, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($140, $140, $142);
$145 = $ctx + 100 | 0;
$146 = HEAP32[$145 >> 2] | 0;
$147 = HEAP32[$104 >> 2] | 0;
__gcry_mpi_mul($146, $147, $147);
$148 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$148) __gcry_mpi_mod($146, $146, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($146, $146, $148);
$151 = $ctx + 104 | 0;
$152 = HEAP32[$151 >> 2] | 0;
$153 = HEAP32[$80 >> 2] | 0;
__gcry_mpi_mul($152, $153, $153);
$154 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$154) __gcry_mpi_mod($152, $152, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($152, $152, $154);
$157 = HEAP32[$151 >> 2] | 0;
__gcry_mpi_mul($157, $157, HEAP32[$119 >> 2] | 0);
$159 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$159) __gcry_mpi_mod($157, $157, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($157, $157, $159);
__gcry_mpi_sub(HEAP32[$result >> 2] | 0, HEAP32[$145 >> 2] | 0, HEAP32[$151 >> 2] | 0);
$165 = HEAP32[$145 >> 2] | 0;
__gcry_mpi_lshift($165, HEAP32[$result >> 2] | 0, 1);
$167 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$167) __gcry_mpi_mod($165, $165, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($165, $165, $167);
$170 = $ctx + 96 | 0;
__gcry_mpi_sub(HEAP32[$170 >> 2] | 0, HEAP32[$151 >> 2] | 0, HEAP32[$145 >> 2] | 0);
$174 = HEAP32[$170 >> 2] | 0;
__gcry_mpi_mul($174, $174, HEAP32[$104 >> 2] | 0);
$176 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$176) __gcry_mpi_mod($174, $174, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($174, $174, $176);
$179 = HEAP32[$145 >> 2] | 0;
$180 = HEAP32[$80 >> 2] | 0;
__gcry_mpi_powm($179, $180, __gcry_mpi_const(3) | 0, HEAP32[$ctx$idx2$i >> 2] | 0);
$182 = HEAP32[$145 >> 2] | 0;
__gcry_mpi_mul($182, $182, HEAP32[$126 >> 2] | 0);
$184 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$184) __gcry_mpi_mod($182, $182, HEAP32[$ctx$idx2$i >> 2] | 0); else __gcry_mpi_mod_barrett($182, $182, $184);
$187 = $result + 4 | 0;
__gcry_mpi_sub(HEAP32[$187 >> 2] | 0, HEAP32[$170 >> 2] | 0, HEAP32[$145 >> 2] | 0);
$191 = HEAP32[$187 >> 2] | 0;
$192 = $ctx + 48 | 0;
$193 = HEAP8[$192 >> 0] | 0;
do if (!($193 & 2)) {
HEAP8[$192 >> 0] = $193 | 2;
$197 = $ctx + 56 | 0;
$198 = HEAP32[$197 >> 2] | 0;
if (!$198) {
$200 = __gcry_mpi_alloc(0) | 0;
HEAP32[$197 >> 2] = $200;
$203 = $200;
} else $203 = $198;
$201 = __gcry_mpi_const(2) | 0;
if (__gcry_mpi_invm($203, $201, HEAP32[$ctx$idx2$i >> 2] | 0) | 0) {
$$pre$phi$i$iZ2D = $197;
break;
}
__gcry_log_error(45003, $vararg_buffer);
__gcry_log_printmpi(45037, $201);
__gcry_log_printmpi(45041, HEAP32[$ctx$idx2$i >> 2] | 0);
$$pre$phi$i$iZ2D = $197;
} else $$pre$phi$i$iZ2D = $ctx + 56 | 0; while (0);
__gcry_mpi_mul($191, $191, HEAP32[$$pre$phi$i$iZ2D >> 2] | 0);
$208 = HEAP32[$$pre$phi$iZ2D >> 2] | 0;
if (!$208) {
__gcry_mpi_mod($191, $191, HEAP32[$ctx$idx2$i >> 2] | 0);
STACKTOP = sp;
return;
} else {
__gcry_mpi_mod_barrett($191, $191, $208);
STACKTOP = sp;
return;
}
break;
}
case 1:
{
HEAP32[$vararg_buffer1 >> 2] = 45178;
HEAP32[$vararg_buffer1 + 4 >> 2] = 45118;
__gcry_log_fatal(45129, $vararg_buffer1);
break;
}
case 2:
{
_add_points_edwards($result, $p1, $p2, $ctx);
STACKTOP = sp;
return;
}
default:
{
STACKTOP = sp;
return;
}
}
}
function _sha512_final($context) {
$context = $context | 0;
var $1 = 0, $10 = 0, $101 = 0, $105 = 0, $109 = 0, $113 = 0, $120 = 0, $122 = 0, $125 = 0, $126 = 0, $129 = 0, $13 = 0, $133 = 0, $139 = 0, $14 = 0, $143 = 0, $147 = 0, $15 = 0, $155 = 0, $157 = 0, $16 = 0, $160 = 0, $161 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $190 = 0, $192 = 0, $195 = 0, $196 = 0, $199 = 0, $203 = 0, $209 = 0, $21 = 0, $213 = 0, $217 = 0, $22 = 0, $225 = 0, $227 = 0, $23 = 0, $230 = 0, $231 = 0, $234 = 0, $238 = 0, $244 = 0, $248 = 0, $252 = 0, $26 = 0, $260 = 0, $262 = 0, $265 = 0, $266 = 0, $269 = 0, $27 = 0, $273 = 0, $279 = 0, $283 = 0, $287 = 0, $295 = 0, $297 = 0, $3 = 0, $300 = 0, $301 = 0, $304 = 0, $308 = 0, $314 = 0, $318 = 0, $322 = 0, $330 = 0, $332 = 0, $335 = 0, $336 = 0, $339 = 0, $34 = 0, $343 = 0, $349 = 0, $35 = 0, $353 = 0, $357 = 0, $36 = 0, $365 = 0, $367 = 0, $370 = 0, $371 = 0, $374 = 0, $378 = 0, $38 = 0, $384 = 0, $388 = 0, $39 = 0, $392 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $55 = 0, $6 = 0, $60 = 0, $63 = 0, $67 = 0, $71 = 0, $75 = 0, $79 = 0, $8 = 0, $83 = 0, $90 = 0, $93 = 0, $97 = 0, dest = 0, stop = 0;
__gcry_md_block_write($context, 0, 0);
$1 = $context + 128 | 0;
$3 = HEAP32[$1 >> 2] | 0;
$6 = HEAP32[$1 + 4 >> 2] | 0;
$8 = $context + 136 | 0;
$10 = HEAP32[$8 >> 2] | 0;
$13 = HEAP32[$8 + 4 >> 2] | 0;
$14 = _bitshift64Shl($3 | 0, $6 | 0, 7) | 0;
$15 = tempRet0;
$16 = _bitshift64Shl($10 | 0, $13 | 0, 7) | 0;
$17 = tempRet0;
$18 = _bitshift64Lshr($3 | 0, $6 | 0, 57) | 0;
$21 = $17 | tempRet0;
$22 = $context + 144 | 0;
$23 = HEAP32[$22 >> 2] | 0;
$26 = _i64Add($23 | 0, (($23 | 0) < 0) << 31 >> 31 | 0, $14 | 0, $15 | 0) | 0;
$27 = tempRet0;
$34 = _i64Add(($27 >>> 0 < $15 >>> 0 | ($27 | 0) == ($15 | 0) & $26 >>> 0 < $14 >>> 0) & 1 | 0, 0, $16 | $18 | 0, $21 | 0) | 0;
$35 = tempRet0;
$36 = _bitshift64Shl($26 | 0, $27 | 0, 3) | 0;
$38 = _bitshift64Shl($34 | 0, $35 | 0, 3) | 0;
$39 = tempRet0;
$40 = _bitshift64Lshr($26 | 0, $27 | 0, 61) | 0;
$42 = $38 | $40;
$39 | tempRet0;
HEAP32[$22 >> 2] = $23 + 1;
HEAP8[$context + $23 >> 0] = -128;
$46 = HEAP32[$22 >> 2] | 0;
if (($23 | 0) < 112) {
if (($46 | 0) < 112) {
$50 = $46;
do {
HEAP32[$22 >> 2] = $50 + 1;
HEAP8[$context + $50 >> 0] = 0;
$50 = HEAP32[$22 >> 2] | 0;
} while (($50 | 0) < 112);
}
} else {
if (($46 | 0) < 128) {
$55 = $46;
do {
HEAP32[$22 >> 2] = $55 + 1;
HEAP8[$context + $55 >> 0] = 0;
$55 = HEAP32[$22 >> 2] | 0;
} while (($55 | 0) < 128);
}
__gcry_md_block_write($context, 0, 0);
dest = $context;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
}
$60 = _bitshift64Lshr($34 | 0, $35 | 0, 53) | 0;
HEAP8[$context + 112 >> 0] = $60;
$63 = _bitshift64Lshr($34 | 0, $35 | 0, 45) | 0;
HEAP8[$context + 113 >> 0] = $63;
$67 = _bitshift64Lshr($34 | 0, $35 | 0, 37) | 0;
HEAP8[$context + 114 >> 0] = $67;
$71 = _bitshift64Lshr($34 | 0, $35 | 0, 29) | 0;
HEAP8[$context + 115 >> 0] = $71;
$75 = _bitshift64Lshr($34 | 0, $35 | 0, 21) | 0;
HEAP8[$context + 116 >> 0] = $75;
$79 = _bitshift64Lshr($34 | 0, $35 | 0, 13) | 0;
HEAP8[$context + 117 >> 0] = $79;
$83 = _bitshift64Lshr($34 | 0, $35 | 0, 5) | 0;
HEAP8[$context + 118 >> 0] = $83;
HEAP8[$context + 119 >> 0] = $42;
$90 = _bitshift64Lshr($26 | 0, $27 | 0, 53) | 0;
HEAP8[$context + 120 >> 0] = $90;
$93 = _bitshift64Lshr($26 | 0, $27 | 0, 45) | 0;
HEAP8[$context + 121 >> 0] = $93;
$97 = _bitshift64Lshr($26 | 0, $27 | 0, 37) | 0;
HEAP8[$context + 122 >> 0] = $97;
$101 = _bitshift64Lshr($26 | 0, $27 | 0, 29) | 0;
HEAP8[$context + 123 >> 0] = $101;
$105 = _bitshift64Lshr($26 | 0, $27 | 0, 21) | 0;
HEAP8[$context + 124 >> 0] = $105;
$109 = _bitshift64Lshr($26 | 0, $27 | 0, 13) | 0;
HEAP8[$context + 125 >> 0] = $109;
$113 = _bitshift64Lshr($26 | 0, $27 | 0, 5) | 0;
HEAP8[$context + 126 >> 0] = $113;
HEAP8[$context + 127 >> 0] = $36;
_transform_1360($context, $context, 1) | 0;
___gcry_burn_stack(220);
$120 = $context + 160 | 0;
$122 = HEAP32[$120 >> 2] | 0;
$125 = HEAP32[$120 + 4 >> 2] | 0;
$126 = _bitshift64Lshr($122 | 0, $125 | 0, 56) | 0;
HEAP8[$context >> 0] = $126;
$129 = _bitshift64Lshr($122 | 0, $125 | 0, 48) | 0;
HEAP8[$context + 1 >> 0] = $129;
$133 = _bitshift64Lshr($122 | 0, $125 | 0, 40) | 0;
HEAP8[$context + 2 >> 0] = $133;
HEAP8[$context + 3 >> 0] = $125;
$139 = _bitshift64Lshr($122 | 0, $125 | 0, 24) | 0;
HEAP8[$context + 4 >> 0] = $139;
$143 = _bitshift64Lshr($122 | 0, $125 | 0, 16) | 0;
HEAP8[$context + 5 >> 0] = $143;
$147 = _bitshift64Lshr($122 | 0, $125 | 0, 8) | 0;
HEAP8[$context + 6 >> 0] = $147;
HEAP8[$context + 7 >> 0] = $122;
$155 = $context + 168 | 0;
$157 = HEAP32[$155 >> 2] | 0;
$160 = HEAP32[$155 + 4 >> 2] | 0;
$161 = _bitshift64Lshr($157 | 0, $160 | 0, 56) | 0;
HEAP8[$context + 8 >> 0] = $161;
$164 = _bitshift64Lshr($157 | 0, $160 | 0, 48) | 0;
HEAP8[$context + 9 >> 0] = $164;
$168 = _bitshift64Lshr($157 | 0, $160 | 0, 40) | 0;
HEAP8[$context + 10 >> 0] = $168;
HEAP8[$context + 11 >> 0] = $160;
$174 = _bitshift64Lshr($157 | 0, $160 | 0, 24) | 0;
HEAP8[$context + 12 >> 0] = $174;
$178 = _bitshift64Lshr($157 | 0, $160 | 0, 16) | 0;
HEAP8[$context + 13 >> 0] = $178;
$182 = _bitshift64Lshr($157 | 0, $160 | 0, 8) | 0;
HEAP8[$context + 14 >> 0] = $182;
HEAP8[$context + 15 >> 0] = $157;
$190 = $context + 176 | 0;
$192 = HEAP32[$190 >> 2] | 0;
$195 = HEAP32[$190 + 4 >> 2] | 0;
$196 = _bitshift64Lshr($192 | 0, $195 | 0, 56) | 0;
HEAP8[$context + 16 >> 0] = $196;
$199 = _bitshift64Lshr($192 | 0, $195 | 0, 48) | 0;
HEAP8[$context + 17 >> 0] = $199;
$203 = _bitshift64Lshr($192 | 0, $195 | 0, 40) | 0;
HEAP8[$context + 18 >> 0] = $203;
HEAP8[$context + 19 >> 0] = $195;
$209 = _bitshift64Lshr($192 | 0, $195 | 0, 24) | 0;
HEAP8[$context + 20 >> 0] = $209;
$213 = _bitshift64Lshr($192 | 0, $195 | 0, 16) | 0;
HEAP8[$context + 21 >> 0] = $213;
$217 = _bitshift64Lshr($192 | 0, $195 | 0, 8) | 0;
HEAP8[$context + 22 >> 0] = $217;
HEAP8[$context + 23 >> 0] = $192;
$225 = $context + 184 | 0;
$227 = HEAP32[$225 >> 2] | 0;
$230 = HEAP32[$225 + 4 >> 2] | 0;
$231 = _bitshift64Lshr($227 | 0, $230 | 0, 56) | 0;
HEAP8[$context + 24 >> 0] = $231;
$234 = _bitshift64Lshr($227 | 0, $230 | 0, 48) | 0;
HEAP8[$context + 25 >> 0] = $234;
$238 = _bitshift64Lshr($227 | 0, $230 | 0, 40) | 0;
HEAP8[$context + 26 >> 0] = $238;
HEAP8[$context + 27 >> 0] = $230;
$244 = _bitshift64Lshr($227 | 0, $230 | 0, 24) | 0;
HEAP8[$context + 28 >> 0] = $244;
$248 = _bitshift64Lshr($227 | 0, $230 | 0, 16) | 0;
HEAP8[$context + 29 >> 0] = $248;
$252 = _bitshift64Lshr($227 | 0, $230 | 0, 8) | 0;
HEAP8[$context + 30 >> 0] = $252;
HEAP8[$context + 31 >> 0] = $227;
$260 = $context + 192 | 0;
$262 = HEAP32[$260 >> 2] | 0;
$265 = HEAP32[$260 + 4 >> 2] | 0;
$266 = _bitshift64Lshr($262 | 0, $265 | 0, 56) | 0;
HEAP8[$context + 32 >> 0] = $266;
$269 = _bitshift64Lshr($262 | 0, $265 | 0, 48) | 0;
HEAP8[$context + 33 >> 0] = $269;
$273 = _bitshift64Lshr($262 | 0, $265 | 0, 40) | 0;
HEAP8[$context + 34 >> 0] = $273;
HEAP8[$context + 35 >> 0] = $265;
$279 = _bitshift64Lshr($262 | 0, $265 | 0, 24) | 0;
HEAP8[$context + 36 >> 0] = $279;
$283 = _bitshift64Lshr($262 | 0, $265 | 0, 16) | 0;
HEAP8[$context + 37 >> 0] = $283;
$287 = _bitshift64Lshr($262 | 0, $265 | 0, 8) | 0;
HEAP8[$context + 38 >> 0] = $287;
HEAP8[$context + 39 >> 0] = $262;
$295 = $context + 200 | 0;
$297 = HEAP32[$295 >> 2] | 0;
$300 = HEAP32[$295 + 4 >> 2] | 0;
$301 = _bitshift64Lshr($297 | 0, $300 | 0, 56) | 0;
HEAP8[$context + 40 >> 0] = $301;
$304 = _bitshift64Lshr($297 | 0, $300 | 0, 48) | 0;
HEAP8[$context + 41 >> 0] = $304;
$308 = _bitshift64Lshr($297 | 0, $300 | 0, 40) | 0;
HEAP8[$context + 42 >> 0] = $308;
HEAP8[$context + 43 >> 0] = $300;
$314 = _bitshift64Lshr($297 | 0, $300 | 0, 24) | 0;
HEAP8[$context + 44 >> 0] = $314;
$318 = _bitshift64Lshr($297 | 0, $300 | 0, 16) | 0;
HEAP8[$context + 45 >> 0] = $318;
$322 = _bitshift64Lshr($297 | 0, $300 | 0, 8) | 0;
HEAP8[$context + 46 >> 0] = $322;
HEAP8[$context + 47 >> 0] = $297;
$330 = $context + 208 | 0;
$332 = HEAP32[$330 >> 2] | 0;
$335 = HEAP32[$330 + 4 >> 2] | 0;
$336 = _bitshift64Lshr($332 | 0, $335 | 0, 56) | 0;
HEAP8[$context + 48 >> 0] = $336;
$339 = _bitshift64Lshr($332 | 0, $335 | 0, 48) | 0;
HEAP8[$context + 49 >> 0] = $339;
$343 = _bitshift64Lshr($332 | 0, $335 | 0, 40) | 0;
HEAP8[$context + 50 >> 0] = $343;
HEAP8[$context + 51 >> 0] = $335;
$349 = _bitshift64Lshr($332 | 0, $335 | 0, 24) | 0;
HEAP8[$context + 52 >> 0] = $349;
$353 = _bitshift64Lshr($332 | 0, $335 | 0, 16) | 0;
HEAP8[$context + 53 >> 0] = $353;
$357 = _bitshift64Lshr($332 | 0, $335 | 0, 8) | 0;
HEAP8[$context + 54 >> 0] = $357;
HEAP8[$context + 55 >> 0] = $332;
$365 = $context + 216 | 0;
$367 = HEAP32[$365 >> 2] | 0;
$370 = HEAP32[$365 + 4 >> 2] | 0;
$371 = _bitshift64Lshr($367 | 0, $370 | 0, 56) | 0;
HEAP8[$context + 56 >> 0] = $371;
$374 = _bitshift64Lshr($367 | 0, $370 | 0, 48) | 0;
HEAP8[$context + 57 >> 0] = $374;
$378 = _bitshift64Lshr($367 | 0, $370 | 0, 40) | 0;
HEAP8[$context + 58 >> 0] = $378;
HEAP8[$context + 59 >> 0] = $370;
$384 = _bitshift64Lshr($367 | 0, $370 | 0, 24) | 0;
HEAP8[$context + 60 >> 0] = $384;
$388 = _bitshift64Lshr($367 | 0, $370 | 0, 16) | 0;
HEAP8[$context + 61 >> 0] = $388;
$392 = _bitshift64Lshr($367 | 0, $370 | 0, 8) | 0;
HEAP8[$context + 62 >> 0] = $392;
HEAP8[$context + 63 >> 0] = $367;
return;
}
function __gcry_ecc_get_curve($keyparms, $iterator, $r_nbits) {
$keyparms = $keyparms | 0;
$iterator = $iterator | 0;
$r_nbits = $r_nbits | 0;
var $$0$i = 0, $$1 = 0, $$lcssa335 = 0, $$lcssa347 = 0, $$lcssa357 = 0, $$lcssa366 = 0, $$lcssa373 = 0, $$lcssa379 = 0, $$lcssa384 = 0, $$lcssa388 = 0, $$lcssa391 = 0, $$lcssa393 = 0, $$not = 0, $0 = 0, $10 = 0, $105 = 0, $108 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $125 = 0, $126 = 0, $15 = 0, $17 = 0, $20 = 0, $26 = 0, $31 = 0, $33 = 0, $38 = 0, $43 = 0, $47 = 0, $48 = 0, $5 = 0, $51 = 0, $54 = 0, $60 = 0, $63 = 0, $69 = 0, $72 = 0, $78 = 0, $8 = 0, $81 = 0, $87 = 0, $9 = 0, $90 = 0, $96 = 0, $99 = 0, $E = 0, $aliasno$07$i = 0, $idx$08$i = 0, $idx$083 = 0, $idx$083$lcssa355 = 0, $idx$16$i = 0, $mpi_g = 0, $result$3 = 0, $tmp$082 = 0, $tmp$1 = 0, $tmp$2 = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer25 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144 | 0;
$vararg_buffer25 = sp + 80 | 0;
$vararg_buffer22 = sp + 72 | 0;
$vararg_buffer19 = sp + 64 | 0;
$vararg_buffer16 = sp + 56 | 0;
$vararg_buffer13 = sp + 48 | 0;
$vararg_buffer10 = sp + 40 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer = sp;
$E = sp + 88 | 0;
$mpi_g = sp + 84 | 0;
HEAP32[$mpi_g >> 2] = 0;
dest = $E;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
$0 = ($r_nbits | 0) != 0;
if ($0) HEAP32[$r_nbits >> 2] = 0;
if (!$keyparms) {
if (!(($iterator | 0) > -1 & $iterator >>> 0 < 22)) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$5 = HEAP32[1280 + ($iterator * 48 | 0) >> 2] | 0;
if (!$0) {
$$1 = $5;
STACKTOP = sp;
return $$1 | 0;
}
HEAP32[$r_nbits >> 2] = HEAP32[1280 + ($iterator * 48 | 0) + 4 >> 2];
$$1 = $5;
STACKTOP = sp;
return $$1 | 0;
}
$8 = $E + 8 | 0;
$9 = $E + 12 | 0;
$10 = $E + 16 | 0;
$11 = $E + 32 | 0;
$12 = $E + 36 | 0;
HEAP32[$vararg_buffer >> 2] = $8;
HEAP32[$vararg_buffer + 4 >> 2] = $9;
HEAP32[$vararg_buffer + 8 >> 2] = $10;
HEAP32[$vararg_buffer + 12 >> 2] = $mpi_g;
HEAP32[$vararg_buffer + 16 >> 2] = $11;
HEAP32[$vararg_buffer + 20 >> 2] = $12;
HEAP32[$vararg_buffer + 24 >> 2] = 0;
L14 : do switch ((__gcry_sexp_extract_param($keyparms, 0, 24111, $vararg_buffer) | 0) & 65535 | 0) {
case 68:
{
$15 = __gcry_sexp_find_token($keyparms, 46586, 5) | 0;
if (!$15) {
$result$3 = 0;
$tmp$2 = 0;
} else {
$17 = __gcry_sexp_nth_string($15, 1) | 0;
__gcry_sexp_release($15);
if (!$17) {
$result$3 = 0;
$tmp$2 = 0;
} else {
$idx$08$i = 0;
while (1) {
$20 = HEAP32[1280 + ($idx$08$i * 48 | 0) >> 2] | 0;
if (!(_strcmp($17, $20) | 0)) {
$$0$i = $idx$08$i;
$38 = $20;
break;
}
$idx$08$i = $idx$08$i + 1 | 0;
if (($idx$08$i | 0) == 21) {
$125 = 2336;
$aliasno$07$i = 0;
label = 13;
break;
}
}
L20 : do if ((label | 0) == 13) {
while (1) {
label = 0;
$26 = $aliasno$07$i + 1 | 0;
if (!(_strcmp($17, HEAP32[2336 + ($aliasno$07$i << 3) + 4 >> 2] | 0) | 0)) {
$$lcssa335 = $125;
label = 14;
break;
}
if (($26 | 0) == 36) break; else {
$125 = 2336 + ($26 << 3) | 0;
$aliasno$07$i = $26;
label = 13;
}
}
if ((label | 0) == 14) {
$31 = HEAP32[$$lcssa335 >> 2] | 0;
$idx$16$i = 0;
do {
$33 = HEAP32[1280 + ($idx$16$i * 48 | 0) >> 2] | 0;
if (!(_strcmp($31, $33) | 0)) {
$$0$i = $idx$16$i;
$38 = $33;
break L20;
}
$idx$16$i = $idx$16$i + 1 | 0;
} while (($idx$16$i | 0) != 21);
}
__gcry_free($17);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
} while (0);
__gcry_free($17);
$$not = ($$0$i | 0) < 0;
if ($$not | $0 ^ 1) {
$$1 = $$not ? 0 : $38;
STACKTOP = sp;
return $$1 | 0;
}
HEAP32[$r_nbits >> 2] = HEAP32[1280 + ($$0$i * 48 | 0) + 4 >> 2];
$$1 = $38;
STACKTOP = sp;
return $$1 | 0;
}
}
break;
}
case 0:
{
if (HEAP32[$mpi_g >> 2] | 0) {
$43 = $E + 20 | 0;
__gcry_mpi_point_init($43);
if (__gcry_ecc_os2ec($43, HEAP32[$mpi_g >> 2] | 0) | 0) {
$result$3 = 0;
$tmp$2 = 0;
break L14;
}
}
$47 = $E + 20 | 0;
$48 = $E + 24 | 0;
$126 = 1280;
$idx$083 = 0;
$tmp$082 = 0;
while (1) {
__gcry_mpi_free($tmp$082);
$51 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 20 >> 2] | 0, 0, 0) | 0;
if ($51) {
$$lcssa357 = $51;
label = 24;
break;
}
$54 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($54, HEAP32[$8 >> 2] | 0) | 0)) {
__gcry_mpi_free($54);
$60 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 24 >> 2] | 0, 0, 0) | 0;
if ($60) {
$$lcssa366 = $60;
label = 27;
break;
}
$63 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($63, HEAP32[$9 >> 2] | 0) | 0)) {
__gcry_mpi_free($63);
$69 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 28 >> 2] | 0, 0, 0) | 0;
if ($69) {
$$lcssa373 = $69;
label = 30;
break;
}
$72 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($72, HEAP32[$10 >> 2] | 0) | 0)) {
__gcry_mpi_free($72);
$78 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 32 >> 2] | 0, 0, 0) | 0;
if ($78) {
$$lcssa379 = $78;
label = 33;
break;
}
$81 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($81, HEAP32[$11 >> 2] | 0) | 0)) {
__gcry_mpi_free($81);
$87 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 44 >> 2] | 0, 0, 0) | 0;
if ($87) {
$$lcssa384 = $87;
label = 36;
break;
}
$90 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($90, HEAP32[$12 >> 2] | 0) | 0)) {
__gcry_mpi_free($90);
$96 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 36 >> 2] | 0, 0, 0) | 0;
if ($96) {
$$lcssa388 = $96;
label = 39;
break;
}
$99 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($99, HEAP32[$47 >> 2] | 0) | 0)) {
__gcry_mpi_free($99);
$105 = __gcry_mpi_scan($vararg_buffer, 4, HEAP32[1280 + ($idx$083 * 48 | 0) + 40 >> 2] | 0, 0, 0) | 0;
if ($105) {
$$lcssa391 = $105;
label = 42;
break;
}
$108 = HEAP32[$vararg_buffer >> 2] | 0;
if (!(__gcry_mpi_cmp($108, HEAP32[$48 >> 2] | 0) | 0)) {
$$lcssa347 = $126;
$$lcssa393 = $108;
$idx$083$lcssa355 = $idx$083;
label = 44;
break;
} else $tmp$1 = $108;
} else $tmp$1 = $99;
} else $tmp$1 = $90;
} else $tmp$1 = $81;
} else $tmp$1 = $72;
} else $tmp$1 = $63;
} else $tmp$1 = $54;
$115 = $idx$083 + 1 | 0;
if (($115 | 0) == 21) {
$result$3 = 0;
$tmp$2 = $tmp$1;
break L14;
} else {
$126 = 1280 + ($115 * 48 | 0) | 0;
$idx$083 = $115;
$tmp$082 = $tmp$1;
}
}
if ((label | 0) == 24) {
HEAP32[$vararg_buffer7 >> 2] = _gpg_strerror($$lcssa357) | 0;
__gcry_log_fatal(35288, $vararg_buffer7);
} else if ((label | 0) == 27) {
HEAP32[$vararg_buffer10 >> 2] = _gpg_strerror($$lcssa366) | 0;
__gcry_log_fatal(35288, $vararg_buffer10);
} else if ((label | 0) == 30) {
HEAP32[$vararg_buffer13 >> 2] = _gpg_strerror($$lcssa373) | 0;
__gcry_log_fatal(35288, $vararg_buffer13);
} else if ((label | 0) == 33) {
HEAP32[$vararg_buffer16 >> 2] = _gpg_strerror($$lcssa379) | 0;
__gcry_log_fatal(35288, $vararg_buffer16);
} else if ((label | 0) == 36) {
HEAP32[$vararg_buffer19 >> 2] = _gpg_strerror($$lcssa384) | 0;
__gcry_log_fatal(35288, $vararg_buffer19);
} else if ((label | 0) == 39) {
HEAP32[$vararg_buffer22 >> 2] = _gpg_strerror($$lcssa388) | 0;
__gcry_log_fatal(35288, $vararg_buffer22);
} else if ((label | 0) == 42) {
HEAP32[$vararg_buffer25 >> 2] = _gpg_strerror($$lcssa391) | 0;
__gcry_log_fatal(35288, $vararg_buffer25);
} else if ((label | 0) == 44) {
$112 = HEAP32[$$lcssa347 >> 2] | 0;
if (!$0) {
$result$3 = $112;
$tmp$2 = $$lcssa393;
break L14;
}
HEAP32[$r_nbits >> 2] = HEAP32[1280 + ($idx$083$lcssa355 * 48 | 0) + 4 >> 2];
$result$3 = $112;
$tmp$2 = $$lcssa393;
break L14;
}
break;
}
default:
{
$result$3 = 0;
$tmp$2 = 0;
}
} while (0);
__gcry_mpi_release($tmp$2);
__gcry_mpi_release(HEAP32[$8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$9 >> 2] | 0);
__gcry_mpi_release(HEAP32[$10 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_g >> 2] | 0);
__gcry_mpi_point_free_parts($E + 20 | 0);
__gcry_mpi_release(HEAP32[$11 >> 2] | 0);
__gcry_mpi_release(HEAP32[$12 >> 2] | 0);
$$1 = $result$3;
STACKTOP = sp;
return $$1 | 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, $$04 = 0, $$05 = 0, $$05$ph = 0, $$128 = 0, $$1627 = 0, $$2 = 0, $$27 = 0, $$343 = 0, $$3842 = 0, $$4 = 0, $$49 = 0, $$lcssa90 = 0, $$lcssa91 = 0, $$lcssa92 = 0, $10 = 0, $11 = 0, $12 = 0, $151 = 0, $154 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $17 = 0, $171 = 0, $172 = 0, $173 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $267 = 0, $269 = 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, $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, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $71 = 0, $72 = 0, $79 = 0, $81 = 0, $83 = 0, $9 = 0, $_vlen$0$lcssa68 = 0, $_vlen$034 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$339 = 0, $_vptr$0$lcssa69 = 0, $_vptr$033 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$338 = 0, $burn$0 = 0, $burn$1 = 0, $burn$241 = 0, $burn$3 = 0, $burn$4 = 0, $scevgep58 = 0, $scevgep60 = 0, $tmp = 0, $unused$0 = 0, $unused$126 = 0, $unused$2 = 0, $unused$6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tmp = sp;
$3 = HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 36 >> 2] | 0;
$4 = $c + 164 | 0;
$5 = HEAP32[$4 >> 2] | 0;
if (!$inlen) if (($do_padding | 0) != 0 & ($5 | 0) != 0) $$05$ph = 0; else {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else $$05$ph = $inlen;
$9 = ($do_padding | 0) == 0;
$10 = $c + 64 | 0;
$11 = $c + 148 | 0;
$12 = $10;
$16 = (($12 | $11) & 3 | 0) == 0;
$17 = $10 + 4 | 0;
$18 = $c + 152 | 0;
$19 = $c + 72 | 0;
$20 = $c + 156 | 0;
$21 = $c + 76 | 0;
$22 = $c + 160 | 0;
$23 = $c + 496 | 0;
$24 = $c + 28 | 0;
$27 = ($tmp & 7 | 0) == 0;
$28 = $10 + 1 | 0;
$29 = $c + 149 | 0;
$30 = $10 + 2 | 0;
$31 = $c + 150 | 0;
$32 = $10 + 3 | 0;
$33 = $c + 151 | 0;
$34 = $10 + 4 | 0;
$35 = $c + 152 | 0;
$36 = $10 + 5 | 0;
$37 = $c + 153 | 0;
$38 = $10 + 6 | 0;
$39 = $c + 154 | 0;
$40 = $10 + 7 | 0;
$41 = $c + 155 | 0;
$42 = $c + 72 | 0;
$43 = $c + 156 | 0;
$44 = $c + 73 | 0;
$45 = $c + 157 | 0;
$46 = $c + 74 | 0;
$47 = $c + 158 | 0;
$48 = $c + 75 | 0;
$49 = $c + 159 | 0;
$50 = $c + 76 | 0;
$51 = $c + 160 | 0;
$52 = $c + 77 | 0;
$53 = $c + 161 | 0;
$54 = $c + 78 | 0;
$55 = $c + 162 | 0;
$56 = $c + 79 | 0;
$57 = $c + 163 | 0;
$58 = $10 + 1 | 0;
$59 = $10 + 2 | 0;
$60 = $10 + 3 | 0;
$61 = $10 + 4 | 0;
$62 = $10 + 5 | 0;
$63 = $10 + 6 | 0;
$64 = $10 + 7 | 0;
$65 = $c + 72 | 0;
$66 = $c + 73 | 0;
$67 = $c + 74 | 0;
$68 = $c + 75 | 0;
$69 = $c + 76 | 0;
$70 = $c + 77 | 0;
$71 = $c + 78 | 0;
$72 = $c + 79 | 0;
$$04 = $inbuf;
$$05 = $$05$ph;
$burn$0 = 0;
$unused$0 = $5;
while (1) {
if (($unused$0 | 0) != 0 | ($$05 + $unused$0 | 0) >>> 0 < 16) if ($unused$0 >>> 0 < 16 & ($$05 | 0) != 0) {
$$128 = $$04;
$$1627 = $$05;
$unused$126 = $unused$0;
while (1) {
$79 = $$128 + 1 | 0;
$81 = $unused$126 + 1 | 0;
HEAP8[$11 + $unused$126 >> 0] = HEAP8[$$128 >> 0] | 0;
$83 = $$1627 + -1 | 0;
if ($81 >>> 0 < 16 & ($83 | 0) != 0) {
$$128 = $79;
$$1627 = $83;
$unused$126 = $81;
} else {
$$2 = $79;
$$27 = $83;
$unused$2 = $81;
break;
}
}
} else {
$$2 = $$04;
$$27 = $$05;
$unused$2 = $unused$0;
} else {
$$2 = $$04;
$$27 = $$05;
$unused$2 = 0;
}
if (!$$27) {
if ($9) {
$burn$4 = $burn$0;
$unused$6 = $unused$2;
break;
}
if ($unused$2 >>> 0 < 16) {
_memset($11 + $unused$2 | 0, 0, 16 - $unused$2 | 0) | 0;
label = 12;
} else label = 12;
} else if (!$unused$2) $burn$1 = $burn$0; else label = 12;
if ((label | 0) == 12) {
label = 0;
if ($16) {
HEAP32[$10 >> 2] = HEAP32[$11 >> 2] ^ HEAP32[$10 >> 2];
HEAP32[$17 >> 2] = HEAP32[$18 >> 2] ^ HEAP32[$17 >> 2];
HEAP32[$19 >> 2] = HEAP32[$20 >> 2] ^ HEAP32[$19 >> 2];
HEAP32[$21 >> 2] = HEAP32[$22 >> 2] ^ HEAP32[$21 >> 2];
} else {
HEAP8[$10 >> 0] = HEAP8[$11 >> 0] ^ HEAP8[$10 >> 0];
HEAP8[$28 >> 0] = HEAP8[$29 >> 0] ^ HEAP8[$28 >> 0];
HEAP8[$30 >> 0] = HEAP8[$31 >> 0] ^ HEAP8[$30 >> 0];
HEAP8[$32 >> 0] = HEAP8[$33 >> 0] ^ HEAP8[$32 >> 0];
HEAP8[$34 >> 0] = HEAP8[$35 >> 0] ^ HEAP8[$34 >> 0];
HEAP8[$36 >> 0] = HEAP8[$37 >> 0] ^ HEAP8[$36 >> 0];
HEAP8[$38 >> 0] = HEAP8[$39 >> 0] ^ HEAP8[$38 >> 0];
HEAP8[$40 >> 0] = HEAP8[$41 >> 0] ^ HEAP8[$40 >> 0];
HEAP8[$42 >> 0] = HEAP8[$43 >> 0] ^ HEAP8[$42 >> 0];
HEAP8[$44 >> 0] = HEAP8[$45 >> 0] ^ HEAP8[$44 >> 0];
HEAP8[$46 >> 0] = HEAP8[$47 >> 0] ^ HEAP8[$46 >> 0];
HEAP8[$48 >> 0] = HEAP8[$49 >> 0] ^ HEAP8[$48 >> 0];
HEAP8[$50 >> 0] = HEAP8[$51 >> 0] ^ HEAP8[$50 >> 0];
HEAP8[$52 >> 0] = HEAP8[$53 >> 0] ^ HEAP8[$52 >> 0];
HEAP8[$54 >> 0] = HEAP8[$55 >> 0] ^ HEAP8[$54 >> 0];
HEAP8[$56 >> 0] = HEAP8[$57 >> 0] ^ HEAP8[$56 >> 0];
}
$151 = FUNCTION_TABLE_iiii[$3 & 63]($23, $10, $10) | 0;
$burn$1 = $burn$0 >>> 0 > $151 >>> 0 ? $burn$0 : $151;
}
$154 = HEAP32[$24 >> 2] | 0;
if (!$154) if ($$27 >>> 0 > 15) {
$157 = $$27 + -16 | 0;
$158 = $157 & -16;
$scevgep60 = $$2 + 16 + $158 | 0;
$$343 = $$2;
$$3842 = $$27;
$burn$241 = $burn$1;
while (1) {
if (!(($$343 | $12) & 3)) {
HEAP32[$10 >> 2] = HEAP32[$$343 >> 2] ^ HEAP32[$10 >> 2];
HEAP32[$17 >> 2] = HEAP32[$$343 + 4 >> 2] ^ HEAP32[$17 >> 2];
HEAP32[$19 >> 2] = HEAP32[$$343 + 8 >> 2] ^ HEAP32[$19 >> 2];
HEAP32[$21 >> 2] = HEAP32[$$343 + 12 >> 2] ^ HEAP32[$21 >> 2];
} else {
HEAP8[$10 >> 0] = HEAP8[$$343 >> 0] ^ HEAP8[$10 >> 0];
HEAP8[$58 >> 0] = HEAP8[$$343 + 1 >> 0] ^ HEAP8[$58 >> 0];
HEAP8[$59 >> 0] = HEAP8[$$343 + 2 >> 0] ^ HEAP8[$59 >> 0];
HEAP8[$60 >> 0] = HEAP8[$$343 + 3 >> 0] ^ HEAP8[$60 >> 0];
HEAP8[$61 >> 0] = HEAP8[$$343 + 4 >> 0] ^ HEAP8[$61 >> 0];
HEAP8[$62 >> 0] = HEAP8[$$343 + 5 >> 0] ^ HEAP8[$62 >> 0];
HEAP8[$63 >> 0] = HEAP8[$$343 + 6 >> 0] ^ HEAP8[$63 >> 0];
HEAP8[$64 >> 0] = HEAP8[$$343 + 7 >> 0] ^ HEAP8[$64 >> 0];
HEAP8[$65 >> 0] = HEAP8[$$343 + 8 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$66 >> 0] = HEAP8[$$343 + 9 >> 0] ^ HEAP8[$66 >> 0];
HEAP8[$67 >> 0] = HEAP8[$$343 + 10 >> 0] ^ HEAP8[$67 >> 0];
HEAP8[$68 >> 0] = HEAP8[$$343 + 11 >> 0] ^ HEAP8[$68 >> 0];
HEAP8[$69 >> 0] = HEAP8[$$343 + 12 >> 0] ^ HEAP8[$69 >> 0];
HEAP8[$70 >> 0] = HEAP8[$$343 + 13 >> 0] ^ HEAP8[$70 >> 0];
HEAP8[$71 >> 0] = HEAP8[$$343 + 14 >> 0] ^ HEAP8[$71 >> 0];
HEAP8[$72 >> 0] = HEAP8[$$343 + 15 >> 0] ^ HEAP8[$72 >> 0];
}
$267 = FUNCTION_TABLE_iiii[$3 & 63]($23, $10, $10) | 0;
$269 = $burn$241 >>> 0 > $267 >>> 0 ? $burn$241 : $267;
$$3842 = $$3842 + -16 | 0;
if ($$3842 >>> 0 <= 15) {
$$lcssa92 = $269;
break;
} else {
$$343 = $$343 + 16 | 0;
$burn$241 = $269;
}
}
$$4 = $scevgep60;
$$49 = $157 - $158 | 0;
$burn$3 = $$lcssa92;
} else {
$$4 = $$2;
$$49 = $$27;
$burn$3 = $burn$1;
} else {
$159 = $$27 >>> 4;
FUNCTION_TABLE_viiiiii[$154 & 1]($23, $10, $tmp, $$2, $159, 1);
$160 = $159 << 4;
$161 = $$2 + $160 | 0;
$162 = $$27 - $160 | 0;
if ($27) {
$_vlen$0$lcssa68 = 16;
$_vptr$0$lcssa69 = $tmp;
label = 22;
} else {
$_vlen$034 = 16;
$_vptr$033 = $tmp;
while (1) {
HEAP8[$_vptr$033 >> 0] = 0;
$163 = $_vptr$033 + 1 | 0;
$164 = $_vlen$034 + -1 | 0;
if (($164 | 0) != 0 & ($163 & 7 | 0) != 0) {
$_vlen$034 = $164;
$_vptr$033 = $163;
} else {
$$lcssa90 = $163;
$$lcssa91 = $164;
break;
}
}
if ($$lcssa91 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa91;
$_vptr$3$ph = $$lcssa90;
} else {
$_vlen$0$lcssa68 = $$lcssa91;
$_vptr$0$lcssa69 = $$lcssa90;
label = 22;
}
}
if ((label | 0) == 22) {
label = 0;
$171 = $_vlen$0$lcssa68 + -8 | 0;
$172 = $171 & -8;
$scevgep58 = $_vptr$0$lcssa69 + 8 + $172 | 0;
$_vlen$1 = $_vlen$0$lcssa68;
$_vptr$1 = $_vptr$0$lcssa69;
while (1) {
$173 = $_vptr$1;
HEAP32[$173 >> 2] = 0;
HEAP32[$173 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $171 - $172 | 0;
$_vptr$3$ph = $scevgep58;
}
if (!$_vlen$3$ph) {
$$4 = $161;
$$49 = $162;
$burn$3 = $burn$1;
} else {
$_vlen$339 = $_vlen$3$ph;
$_vptr$338 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$338 >> 0] = 0;
$_vlen$339 = $_vlen$339 + -1 | 0;
if (!$_vlen$339) {
$$4 = $161;
$$49 = $162;
$burn$3 = $burn$1;
break;
} else $_vptr$338 = $_vptr$338 + 1 | 0;
}
}
}
if (!$$49) {
$burn$4 = $burn$3;
$unused$6 = 0;
break;
} else {
$$04 = $$4;
$$05 = $$49;
$burn$0 = $burn$3;
$unused$0 = 0;
}
}
HEAP32[$4 >> 2] = $unused$6;
$$0 = ($burn$4 | 0) == 0 ? 0 : $burn$4 + 16 | 0;
STACKTOP = sp;
return $$0 | 0;
}
function _do_encrypt($ctx, $bx, $ax) {
$ctx = $ctx | 0;
$bx = $bx | 0;
$ax = $ax | 0;
var $$lcssa = 0, $$lcssa$i = 0, $$lcssa21 = 0, $$lcssa22 = 0, $$lcssa23 = 0, $$lcssa24 = 0, $1 = 0, $103 = 0, $117 = 0, $125 = 0, $132 = 0, $147 = 0, $155 = 0, $162 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $196 = 0, $199 = 0, $201 = 0, $203 = 0, $208 = 0, $215 = 0, $221 = 0, $235 = 0, $243 = 0, $250 = 0, $265 = 0, $273 = 0, $280 = 0, $295 = 0, $299 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $325 = 0, $332 = 0, $338 = 0, $352 = 0, $360 = 0, $367 = 0, $382 = 0, $390 = 0, $397 = 0, $412 = 0, $416 = 0, $420 = 0, $424 = 0, $427 = 0, $431 = 0, $434 = 0, $437 = 0, $463 = 0, $464 = 0, $477 = 0, $493 = 0, $494 = 0, $507 = 0, $514 = 0, $524 = 0, $537 = 0, $544 = 0, $554 = 0, $74 = 0, $77 = 0, $80 = 0, $83 = 0, $90 = 0, $97 = 0, $r$0$lcssa$i = 0, $r$01$i = 0, $sa$sroa$0$0$lcssa$i = 0, $sa$sroa$0$05$i = 0, $sa$sroa$115$0$lcssa$i = 0, $sa$sroa$115$02$i = 0, $sa$sroa$47$0$lcssa$i = 0, $sa$sroa$47$04$i = 0, $sa$sroa$85$0$lcssa$i = 0, $sa$sroa$85$03$i = 0;
$1 = HEAP32[$ctx + 480 >> 2] | 0;
$74 = HEAP32[$ctx >> 2] ^ ((HEAPU8[$ax + 2 >> 0] | 0) << 16 | (HEAPU8[$ax + 3 >> 0] | 0) << 24 | (HEAPU8[$ax + 1 >> 0] | 0) << 8 | (HEAPU8[$ax >> 0] | 0));
$77 = HEAP32[$ctx + 4 >> 2] ^ ((HEAPU8[$ax + 6 >> 0] | 0) << 16 | (HEAPU8[$ax + 7 >> 0] | 0) << 24 | (HEAPU8[$ax + 5 >> 0] | 0) << 8 | (HEAPU8[$ax + 4 >> 0] | 0));
$80 = HEAP32[$ctx + 8 >> 2] ^ ((HEAPU8[$ax + 10 >> 0] | 0) << 16 | (HEAPU8[$ax + 11 >> 0] | 0) << 24 | (HEAPU8[$ax + 9 >> 0] | 0) << 8 | (HEAPU8[$ax + 8 >> 0] | 0));
$83 = HEAP32[$ctx + 12 >> 2] ^ ((HEAPU8[$ax + 14 >> 0] | 0) << 16 | (HEAPU8[$ax + 15 >> 0] | 0) << 24 | (HEAPU8[$ax + 13 >> 0] | 0) << 8 | (HEAPU8[$ax + 12 >> 0] | 0));
$90 = HEAP32[4956 + (($74 >>> 8 & 255) << 2) >> 2] | 0;
$97 = HEAP32[4956 + (($74 >>> 16 & 255) << 2) >> 2] | 0;
$103 = HEAP32[4956 + ($74 >>> 24 << 2) >> 2] | 0;
$117 = HEAP32[4956 + (($77 >>> 8 & 255) << 2) >> 2] | 0;
$125 = HEAP32[4956 + (($77 >>> 16 & 255) << 2) >> 2] | 0;
$132 = HEAP32[4956 + ($77 >>> 24 << 2) >> 2] | 0;
$147 = HEAP32[4956 + (($80 >>> 8 & 255) << 2) >> 2] | 0;
$155 = HEAP32[4956 + (($80 >>> 16 & 255) << 2) >> 2] | 0;
$162 = HEAP32[4956 + ($80 >>> 24 << 2) >> 2] | 0;
$177 = HEAP32[4956 + (($83 >>> 8 & 255) << 2) >> 2] | 0;
$181 = ($132 << 24 | $132 >>> 8) ^ ($97 << 16 | $97 >>> 16) ^ HEAP32[4956 + (($80 & 255) << 2) >> 2] ^ HEAP32[$ctx + 24 >> 2] ^ ($177 << 8 | $177 >>> 24);
$185 = HEAP32[4956 + (($83 >>> 16 & 255) << 2) >> 2] | 0;
$189 = ($103 << 24 | $103 >>> 8) ^ HEAP32[4956 + (($77 & 255) << 2) >> 2] ^ HEAP32[$ctx + 20 >> 2] ^ ($147 << 8 | $147 >>> 24) ^ ($185 << 16 | $185 >>> 16);
$192 = HEAP32[4956 + ($83 >>> 24 << 2) >> 2] | 0;
$196 = HEAP32[$ctx + 16 >> 2] ^ HEAP32[4956 + (($74 & 255) << 2) >> 2] ^ ($117 << 8 | $117 >>> 24) ^ ($155 << 16 | $155 >>> 16) ^ ($192 << 24 | $192 >>> 8);
$199 = ($125 << 16 | $125 >>> 16) ^ ($90 << 8 | $90 >>> 24) ^ ($162 << 24 | $162 >>> 8) ^ HEAP32[4956 + (($83 & 255) << 2) >> 2] ^ HEAP32[$ctx + 28 >> 2];
$201 = $196 & 255;
if (($1 | 0) > 2) {
$203 = $201;
$r$01$i = 2;
$sa$sroa$0$05$i = $196;
$sa$sroa$115$02$i = $199;
$sa$sroa$47$04$i = $189;
$sa$sroa$85$03$i = $181;
while (1) {
$208 = HEAP32[4956 + (($sa$sroa$0$05$i >>> 8 & 255) << 2) >> 2] | 0;
$215 = HEAP32[4956 + (($sa$sroa$0$05$i >>> 16 & 255) << 2) >> 2] | 0;
$221 = HEAP32[4956 + ($sa$sroa$0$05$i >>> 24 << 2) >> 2] | 0;
$235 = HEAP32[4956 + (($sa$sroa$47$04$i >>> 8 & 255) << 2) >> 2] | 0;
$243 = HEAP32[4956 + (($sa$sroa$47$04$i >>> 16 & 255) << 2) >> 2] | 0;
$250 = HEAP32[4956 + ($sa$sroa$47$04$i >>> 24 << 2) >> 2] | 0;
$265 = HEAP32[4956 + (($sa$sroa$85$03$i >>> 8 & 255) << 2) >> 2] | 0;
$273 = HEAP32[4956 + (($sa$sroa$85$03$i >>> 16 & 255) << 2) >> 2] | 0;
$280 = HEAP32[4956 + ($sa$sroa$85$03$i >>> 24 << 2) >> 2] | 0;
$295 = HEAP32[4956 + (($sa$sroa$115$02$i >>> 8 & 255) << 2) >> 2] | 0;
$299 = ($250 << 24 | $250 >>> 8) ^ ($215 << 16 | $215 >>> 16) ^ HEAP32[4956 + (($sa$sroa$85$03$i & 255) << 2) >> 2] ^ HEAP32[$ctx + ($r$01$i << 4) + 8 >> 2] ^ ($295 << 8 | $295 >>> 24);
$303 = HEAP32[4956 + (($sa$sroa$115$02$i >>> 16 & 255) << 2) >> 2] | 0;
$307 = ($221 << 24 | $221 >>> 8) ^ HEAP32[4956 + (($sa$sroa$47$04$i & 255) << 2) >> 2] ^ HEAP32[$ctx + ($r$01$i << 4) + 4 >> 2] ^ ($265 << 8 | $265 >>> 24) ^ ($303 << 16 | $303 >>> 16);
$310 = HEAP32[4956 + ($sa$sroa$115$02$i >>> 24 << 2) >> 2] | 0;
$314 = HEAP32[$ctx + ($r$01$i << 4) >> 2] ^ HEAP32[4956 + ($203 << 2) >> 2] ^ ($235 << 8 | $235 >>> 24) ^ ($273 << 16 | $273 >>> 16) ^ ($310 << 24 | $310 >>> 8);
$317 = ($243 << 16 | $243 >>> 16) ^ ($208 << 8 | $208 >>> 24) ^ ($280 << 24 | $280 >>> 8) ^ HEAP32[4956 + (($sa$sroa$115$02$i & 255) << 2) >> 2] ^ HEAP32[$ctx + ($r$01$i << 4) + 12 >> 2];
$318 = $r$01$i | 1;
$325 = HEAP32[4956 + (($314 >>> 8 & 255) << 2) >> 2] | 0;
$332 = HEAP32[4956 + (($314 >>> 16 & 255) << 2) >> 2] | 0;
$338 = HEAP32[4956 + ($314 >>> 24 << 2) >> 2] | 0;
$352 = HEAP32[4956 + (($307 >>> 8 & 255) << 2) >> 2] | 0;
$360 = HEAP32[4956 + (($307 >>> 16 & 255) << 2) >> 2] | 0;
$367 = HEAP32[4956 + ($307 >>> 24 << 2) >> 2] | 0;
$382 = HEAP32[4956 + (($299 >>> 8 & 255) << 2) >> 2] | 0;
$390 = HEAP32[4956 + (($299 >>> 16 & 255) << 2) >> 2] | 0;
$397 = HEAP32[4956 + ($299 >>> 24 << 2) >> 2] | 0;
$412 = HEAP32[4956 + (($317 >>> 8 & 255) << 2) >> 2] | 0;
$416 = ($367 << 24 | $367 >>> 8) ^ ($332 << 16 | $332 >>> 16) ^ HEAP32[4956 + (($299 & 255) << 2) >> 2] ^ HEAP32[$ctx + ($318 << 4) + 8 >> 2] ^ ($412 << 8 | $412 >>> 24);
$420 = HEAP32[4956 + (($317 >>> 16 & 255) << 2) >> 2] | 0;
$424 = ($338 << 24 | $338 >>> 8) ^ HEAP32[4956 + (($307 & 255) << 2) >> 2] ^ HEAP32[$ctx + ($318 << 4) + 4 >> 2] ^ ($382 << 8 | $382 >>> 24) ^ ($420 << 16 | $420 >>> 16);
$427 = HEAP32[4956 + ($317 >>> 24 << 2) >> 2] | 0;
$431 = HEAP32[$ctx + ($318 << 4) >> 2] ^ HEAP32[4956 + (($314 & 255) << 2) >> 2] ^ ($352 << 8 | $352 >>> 24) ^ ($390 << 16 | $390 >>> 16) ^ ($427 << 24 | $427 >>> 8);
$434 = ($360 << 16 | $360 >>> 16) ^ ($325 << 8 | $325 >>> 24) ^ ($397 << 24 | $397 >>> 8) ^ HEAP32[4956 + (($317 & 255) << 2) >> 2] ^ HEAP32[$ctx + ($318 << 4) + 12 >> 2];
$r$01$i = $r$01$i + 2 | 0;
$437 = $431 & 255;
if (($r$01$i | 0) >= ($1 | 0)) {
$$lcssa = $416;
$$lcssa21 = $424;
$$lcssa22 = $431;
$$lcssa23 = $434;
$$lcssa24 = $437;
break;
} else {
$203 = $437;
$sa$sroa$0$05$i = $431;
$sa$sroa$115$02$i = $434;
$sa$sroa$47$04$i = $424;
$sa$sroa$85$03$i = $416;
}
}
$$lcssa$i = $$lcssa24;
$r$0$lcssa$i = $1 + 1 & -2;
$sa$sroa$0$0$lcssa$i = $$lcssa22;
$sa$sroa$115$0$lcssa$i = $$lcssa23;
$sa$sroa$47$0$lcssa$i = $$lcssa21;
$sa$sroa$85$0$lcssa$i = $$lcssa;
} else {
$$lcssa$i = $201;
$r$0$lcssa$i = 2;
$sa$sroa$0$0$lcssa$i = $196;
$sa$sroa$115$0$lcssa$i = $199;
$sa$sroa$47$0$lcssa$i = $189;
$sa$sroa$85$0$lcssa$i = $181;
}
$463 = HEAP32[$ctx + ($r$0$lcssa$i << 4) >> 2] | 0;
$464 = $463 ^ (HEAPU8[4957 + ($$lcssa$i << 2) >> 0] | 0);
$477 = (HEAPU8[4957 + ($sa$sroa$47$0$lcssa$i >>> 6 & 1020) >> 0] | 0) << 8 ^ $463;
$493 = HEAP32[$ctx + ($r$0$lcssa$i << 4) + 4 >> 2] | 0;
$494 = $493 ^ (HEAPU8[4957 + ($sa$sroa$47$0$lcssa$i << 2 & 1020) >> 0] | 0 | (HEAPU8[4957 + ($sa$sroa$0$0$lcssa$i >>> 24 << 2) >> 0] | 0) << 24);
$507 = (HEAPU8[4957 + ($sa$sroa$85$0$lcssa$i >>> 6 & 1020) >> 0] | 0) << 8 ^ $493;
$514 = (HEAPU8[4957 + ($sa$sroa$85$0$lcssa$i >>> 14 & 1020) >> 0] | 0) << 16 ^ $463;
$524 = HEAP32[$ctx + ($r$0$lcssa$i << 4) + 8 >> 2] ^ ((HEAPU8[4957 + ($sa$sroa$47$0$lcssa$i >>> 24 << 2) >> 0] | 0) << 24 | (HEAPU8[4957 + ($sa$sroa$0$0$lcssa$i >>> 14 & 1020) >> 0] | 0) << 16 | (HEAPU8[4957 + ($sa$sroa$85$0$lcssa$i << 2 & 1020) >> 0] | 0));
$537 = (HEAPU8[4957 + ($sa$sroa$115$0$lcssa$i >>> 6 & 1020) >> 0] | 0) << 8 ^ $524;
$544 = (HEAPU8[4957 + ($sa$sroa$115$0$lcssa$i >>> 14 & 1020) >> 0] | 0) << 16 ^ $493;
$554 = HEAP32[$ctx + ($r$0$lcssa$i << 4) + 12 >> 2] ^ ((HEAPU8[4957 + ($sa$sroa$47$0$lcssa$i >>> 14 & 1020) >> 0] | 0) << 16 | (HEAPU8[4957 + ($sa$sroa$0$0$lcssa$i >>> 6 & 1020) >> 0] | 0) << 8 | (HEAPU8[4957 + ($sa$sroa$85$0$lcssa$i >>> 24 << 2) >> 0] | 0) << 24 | (HEAPU8[4957 + ($sa$sroa$115$0$lcssa$i << 2 & 1020) >> 0] | 0));
HEAP8[$bx + 3 >> 0] = ((HEAPU8[4957 + ($sa$sroa$115$0$lcssa$i >>> 24 << 2) >> 0] | 0) << 24 ^ $463) >>> 24;
HEAP8[$bx + 2 >> 0] = $514 >>> 16;
HEAP8[$bx + 1 >> 0] = $477 >>> 8;
HEAP8[$bx >> 0] = $464;
HEAP8[$bx + 7 >> 0] = $494 >>> 24;
HEAP8[$bx + 6 >> 0] = $544 >>> 16;
HEAP8[$bx + 5 >> 0] = $507 >>> 8;
HEAP8[$bx + 4 >> 0] = $494;
HEAP8[$bx + 11 >> 0] = $524 >>> 24;
HEAP8[$bx + 10 >> 0] = $524 >>> 16;
HEAP8[$bx + 9 >> 0] = $537 >>> 8;
HEAP8[$bx + 8 >> 0] = $524;
HEAP8[$bx + 15 >> 0] = $554 >>> 24;
HEAP8[$bx + 14 >> 0] = $554 >>> 16;
HEAP8[$bx + 13 >> 0] = $554 >>> 8;
HEAP8[$bx + 12 >> 0] = $554;
return 64;
}
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, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 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, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 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, $_0$0 = 0, $_0$1 = 0, $q_sroa_1_1198$looptemp = 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) {
$4 = ($rem | 0) != 0;
if (!$d_sroa_1_4_extract_trunc) {
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 | 0;
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) {
if ($17) {
if ($rem) {
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) {
if ($rem) {
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)) {
if ($rem) {
HEAP32[$rem >> 2] = $a$0 | 0;
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;
}
$51 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (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$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 | 0;
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) {
$119 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (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$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 | 0;
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) {
$88 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 - (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) {
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 = $a$0 | 0 | 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
$78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0;
$_0$1 = $n_sroa_1_4_extract_trunc >>> ($78 >>> 0) | 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) {
$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 = $b$0 | 0 | 0;
$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;
do {
$q_sroa_1_1198$looptemp = $q_sroa_1_1198;
$q_sroa_1_1198 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1;
$q_sroa_0_1199 = $carry_0203 | $q_sroa_0_1199 << 1;
$r_sroa_0_0_insert_insert42$0 = $r_sroa_0_1201 << 1 | $q_sroa_1_1198$looptemp >>> 31 | 0;
$r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0;
_i64Subtract($137$0, $137$1, $r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1) | 0;
$150$1 = tempRet0;
$151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1;
$carry_0203 = $151$0 & 1;
$r_sroa_0_1201 = _i64Subtract($r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1, $151$0 & $d_sroa_0_0_insert_insert99$0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1) | 0;
$r_sroa_1_1200 = tempRet0;
$sr_1202 = $sr_1202 - 1 | 0;
} while (($sr_1202 | 0) != 0);
$q_sroa_1_1_lcssa = $q_sroa_1_1198;
$q_sroa_0_1_lcssa = $q_sroa_0_1199;
$r_sroa_1_1_lcssa = $r_sroa_1_1200;
$r_sroa_0_1_lcssa = $r_sroa_0_1201;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = $carry_0203;
}
$q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa;
$q_sroa_0_0_insert_ext75$1 = 0;
if ($rem) {
HEAP32[$rem >> 2] = $r_sroa_0_1_lcssa;
HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa;
}
$_0$1 = ($q_sroa_0_0_insert_ext75$0 | 0) >>> 31 | ($q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$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 _ecc_sign($r_sig, $s_data, $keyparms) {
$r_sig = $r_sig | 0;
$s_data = $s_data | 0;
$keyparms = $keyparms | 0;
var $$0 = 0, $$pre$phiZ2D = 0, $0 = 0, $100 = 0, $101 = 0, $106 = 0, $21 = 0, $23 = 0, $25 = 0, $27 = 0, $29 = 0, $31 = 0, $39 = 0, $42 = 0, $46 = 0, $48 = 0, $5 = 0, $50 = 0, $86 = 0, $87 = 0, $88 = 0, $95 = 0, $ctx = 0, $curvename$01 = 0, $curvename$1 = 0, $data = 0, $l1$0 = 0, $mpi_g = 0, $mpi_q = 0, $rc$0 = 0, $rc$1 = 0, $sig_r$0 = 0, $sig_s$0 = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer14 = 0, $vararg_buffer19 = 0, $vararg_buffer22 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0, $vararg_buffer34 = 0, $vararg_buffer9 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224 | 0;
$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 + 184 | 0;
$data = sp + 176 | 0;
$mpi_g = sp + 172 | 0;
$mpi_q = sp + 168 | 0;
$sk = sp + 108 | 0;
HEAP32[$data >> 2] = 0;
HEAP32[$mpi_g >> 2] = 0;
HEAP32[$mpi_q >> 2] = 0;
dest = $sk;
stop = dest + 60 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_pk_util_init_encoding_ctx($ctx, 2, 0);
$0 = __gcry_pk_util_data_to_mpi($s_data, $data, $ctx) | 0;
do if (!$0) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(46870, HEAP32[$data >> 2] | 0);
$5 = $ctx + 12 | 0;
if (!(HEAP32[$5 >> 2] & 512)) {
HEAP32[$vararg_buffer9 >> 2] = $mpi_q;
HEAP32[$vararg_buffer9 + 4 >> 2] = $sk + 56;
HEAP32[$vararg_buffer9 + 8 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46905, $vararg_buffer9) | 0;
} else {
HEAP32[$vararg_buffer >> 2] = $sk + 8;
HEAP32[$vararg_buffer + 4 >> 2] = $sk + 12;
HEAP32[$vararg_buffer + 8 >> 2] = $sk + 16;
HEAP32[$vararg_buffer + 12 >> 2] = $mpi_g;
HEAP32[$vararg_buffer + 16 >> 2] = $sk + 32;
HEAP32[$vararg_buffer + 20 >> 2] = $sk + 36;
HEAP32[$vararg_buffer + 24 >> 2] = $mpi_q;
HEAP32[$vararg_buffer + 28 >> 2] = $sk + 56;
HEAP32[$vararg_buffer + 32 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46886, $vararg_buffer) | 0;
}
if (!$rc$0) {
if (HEAP32[$mpi_g >> 2] | 0) {
$21 = $sk + 20 | 0;
__gcry_mpi_point_init($21);
$23 = __gcry_ecc_os2ec($21, HEAP32[$mpi_g >> 2] | 0) | 0;
if ($23) {
$curvename$1 = 0;
$l1$0 = 0;
$rc$1 = $23;
$sig_r$0 = 0;
$sig_s$0 = 0;
break;
}
}
__gcry_sexp_release(0);
$25 = __gcry_sexp_find_token($keyparms, 46586, 5) | 0;
if (!$25) label = 13; else {
$27 = __gcry_sexp_nth_string($25, 1) | 0;
if (!$27) label = 13; else {
$29 = __gcry_ecc_fill_in_curve(0, $27, $sk, 0) | 0;
if (!$29) $curvename$01 = $27; else {
$$0 = $29;
STACKTOP = sp;
return $$0 | 0;
}
}
}
if ((label | 0) == 13) {
$31 = HEAP32[$5 >> 2] | 0;
HEAP32[$sk >> 2] = $31 >>> 11 & 2;
HEAP32[$sk + 4 >> 2] = $31 >>> 12 & 1;
$curvename$01 = 0;
}
if (!(__gcry_get_debug_flag(1) | 0)) $$pre$phiZ2D = $sk + 8 | 0; else {
$39 = __gcry_ecc_model2str(HEAP32[$sk >> 2] | 0) | 0;
$42 = __gcry_ecc_dialect2str(HEAP32[$sk + 4 >> 2] | 0) | 0;
$46 = (HEAP32[$5 >> 2] & 4096 | 0) != 0 ? 46680 : 75759;
HEAP32[$vararg_buffer14 >> 2] = $39;
HEAP32[$vararg_buffer14 + 4 >> 2] = $42;
HEAP32[$vararg_buffer14 + 8 >> 2] = $46;
__gcry_log_debug(46911, $vararg_buffer14);
$48 = HEAP32[$sk + 40 >> 2] | 0;
if ($48) {
HEAP32[$vararg_buffer19 >> 2] = $48;
__gcry_log_debug(46937, $vararg_buffer19);
}
$50 = $sk + 8 | 0;
__gcry_log_printmpi(46958, HEAP32[$50 >> 2] | 0);
__gcry_log_printmpi(46974, HEAP32[$sk + 12 >> 2] | 0);
__gcry_log_printmpi(46990, HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_point_log(47006, $sk + 20 | 0, 0);
__gcry_log_printmpi(47020, HEAP32[$sk + 32 >> 2] | 0);
__gcry_log_printmpi(47036, HEAP32[$sk + 36 >> 2] | 0);
__gcry_log_printmpi(47052, HEAP32[$mpi_q >> 2] | 0);
if (!(__gcry_fips_mode() | 0)) {
__gcry_log_printmpi(47068, HEAP32[$sk + 56 >> 2] | 0);
$$pre$phiZ2D = $50;
} else $$pre$phiZ2D = $50;
}
if (!(HEAP32[$$pre$phiZ2D >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else if (!(HEAP32[$sk + 12 >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else if (!(HEAP32[$sk + 16 >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else if (!(HEAP32[$sk + 20 >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else if (!(HEAP32[$sk + 32 >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else if (!(HEAP32[$sk + 36 >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else if (!(HEAP32[$sk + 56 >> 2] | 0)) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = 68;
$sig_r$0 = 0;
$sig_s$0 = 0;
} else {
$86 = __gcry_mpi_new(0) | 0;
$87 = __gcry_mpi_new(0) | 0;
$88 = HEAP32[$5 >> 2] | 0;
if ($88 & 4096) {
$95 = __gcry_ecc_eddsa_sign(HEAP32[$data >> 2] | 0, $sk, $86, $87, HEAP32[$ctx + 16 >> 2] | 0, HEAP32[$mpi_q >> 2] | 0) | 0;
if ($95) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = $95;
$sig_r$0 = $86;
$sig_s$0 = $87;
break;
}
HEAP32[$vararg_buffer22 >> 2] = $86;
HEAP32[$vararg_buffer22 + 4 >> 2] = $87;
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = __gcry_sexp_build($r_sig, 0, 47084, $vararg_buffer22) | 0;
$sig_r$0 = $86;
$sig_s$0 = $87;
break;
}
$100 = HEAP32[$data >> 2] | 0;
if (!($88 & 8192)) {
$106 = __gcry_ecc_ecdsa_sign($100, $sk, $86, $87, $88, HEAP32[$ctx + 16 >> 2] | 0) | 0;
if ($106) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = $106;
$sig_r$0 = $86;
$sig_s$0 = $87;
break;
}
HEAP32[$vararg_buffer30 >> 2] = $86;
HEAP32[$vararg_buffer30 + 4 >> 2] = $87;
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = __gcry_sexp_build($r_sig, 0, 47137, $vararg_buffer30) | 0;
$sig_r$0 = $86;
$sig_s$0 = $87;
break;
} else {
$101 = __gcry_ecc_gost_sign($100, $sk, $86, $87) | 0;
if ($101) {
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = $101;
$sig_r$0 = $86;
$sig_s$0 = $87;
break;
}
HEAP32[$vararg_buffer26 >> 2] = $86;
HEAP32[$vararg_buffer26 + 4 >> 2] = $87;
$curvename$1 = $curvename$01;
$l1$0 = $25;
$rc$1 = __gcry_sexp_build($r_sig, 0, 47111, $vararg_buffer26) | 0;
$sig_r$0 = $86;
$sig_s$0 = $87;
break;
}
}
} else {
$curvename$1 = 0;
$l1$0 = 0;
$rc$1 = $rc$0;
$sig_r$0 = 0;
$sig_s$0 = 0;
}
} else {
$curvename$1 = 0;
$l1$0 = 0;
$rc$1 = $0;
$sig_r$0 = 0;
$sig_s$0 = 0;
} while (0);
__gcry_mpi_release(HEAP32[$sk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_g >> 2] | 0);
__gcry_mpi_point_free_parts($sk + 20 | 0);
__gcry_mpi_release(HEAP32[$sk + 32 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 36 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_q >> 2] | 0);
__gcry_mpi_point_free_parts($sk + 44 | 0);
__gcry_mpi_release(HEAP32[$sk + 56 >> 2] | 0);
__gcry_mpi_release($sig_r$0);
__gcry_mpi_release($sig_s$0);
__gcry_free($curvename$1);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_sexp_release($l1$0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer34 >> 2] = _gpg_strerror($rc$1) | 0;
__gcry_log_debug(47164, $vararg_buffer34);
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_aes_ocb_auth($c, $abuf_arg, $nblocks) {
$c = $c | 0;
$abuf_arg = $abuf_arg | 0;
$nblocks = $nblocks | 0;
var $$022 = 0, $$lcssa = 0, $0 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $114 = 0, $115 = 0, $116 = 0, $12 = 0, $124 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $28 = 0, $29 = 0, $292 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $356 = 0, $36 = 0, $361 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $abuf$021 = 0, $l$0 = 0, $l_tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$l_tmp = sp;
$0 = $c + 496 | 0;
$2 = HEAP32[$0 + 496 >> 2] | 0;
if ($2) FUNCTION_TABLE_v[$2 & 3]();
$5 = HEAP32[$0 + 488 >> 2] | 0;
if (!$nblocks) {
$7 = $l_tmp;
HEAP32[$7 >> 2] = 0;
HEAP32[$7 + 4 >> 2] = 0;
$12 = $l_tmp + 8 | 0;
HEAP32[$12 >> 2] = 0;
HEAP32[$12 + 4 >> 2] = 0;
STACKTOP = sp;
return;
}
$16 = $c + 472 | 0;
$17 = $c + 432 | 0;
$18 = $17;
$19 = $c + 436 | 0;
$20 = $c + 440 | 0;
$21 = $c + 444 | 0;
$22 = $l_tmp + 4 | 0;
$23 = $l_tmp + 8 | 0;
$24 = $l_tmp + 12 | 0;
$25 = $c + 448 | 0;
$28 = ($25 & 3 | 0) == 0;
$29 = $c + 452 | 0;
$30 = $c + 456 | 0;
$31 = $c + 460 | 0;
$32 = $c + 160 | 0;
$33 = $l_tmp + 1 | 0;
$34 = $25 + 1 | 0;
$35 = $l_tmp + 2 | 0;
$36 = $25 + 2 | 0;
$37 = $l_tmp + 3 | 0;
$38 = $25 + 3 | 0;
$39 = $l_tmp + 4 | 0;
$40 = $c + 452 | 0;
$41 = $39 + 1 | 0;
$42 = $40 + 1 | 0;
$43 = $39 + 2 | 0;
$44 = $40 + 2 | 0;
$45 = $39 + 3 | 0;
$46 = $40 + 3 | 0;
$47 = $l_tmp + 8 | 0;
$48 = $c + 456 | 0;
$49 = $47 + 1 | 0;
$50 = $48 + 1 | 0;
$51 = $47 + 2 | 0;
$52 = $48 + 2 | 0;
$53 = $47 + 3 | 0;
$54 = $48 + 3 | 0;
$55 = $l_tmp + 12 | 0;
$56 = $c + 460 | 0;
$57 = $55 + 1 | 0;
$58 = $56 + 1 | 0;
$59 = $55 + 2 | 0;
$60 = $56 + 2 | 0;
$61 = $55 + 3 | 0;
$62 = $56 + 3 | 0;
$63 = $17 + 1 | 0;
$64 = $l_tmp + 1 | 0;
$65 = $17 + 2 | 0;
$66 = $l_tmp + 2 | 0;
$67 = $17 + 3 | 0;
$68 = $l_tmp + 3 | 0;
$69 = $c + 436 | 0;
$70 = $l_tmp + 4 | 0;
$71 = $69 + 1 | 0;
$72 = $70 + 1 | 0;
$73 = $69 + 2 | 0;
$74 = $70 + 2 | 0;
$75 = $69 + 3 | 0;
$76 = $70 + 3 | 0;
$77 = $c + 440 | 0;
$78 = $l_tmp + 8 | 0;
$79 = $77 + 1 | 0;
$80 = $78 + 1 | 0;
$81 = $77 + 2 | 0;
$82 = $78 + 2 | 0;
$83 = $77 + 3 | 0;
$84 = $78 + 3 | 0;
$85 = $c + 444 | 0;
$86 = $l_tmp + 12 | 0;
$87 = $85 + 1 | 0;
$88 = $86 + 1 | 0;
$89 = $85 + 2 | 0;
$90 = $86 + 2 | 0;
$91 = $85 + 3 | 0;
$92 = $86 + 3 | 0;
$93 = $17 + 1 | 0;
$94 = $17 + 2 | 0;
$95 = $17 + 3 | 0;
$96 = $c + 436 | 0;
$97 = $96 + 1 | 0;
$98 = $96 + 2 | 0;
$99 = $96 + 3 | 0;
$100 = $c + 440 | 0;
$101 = $100 + 1 | 0;
$102 = $100 + 2 | 0;
$103 = $100 + 3 | 0;
$104 = $c + 444 | 0;
$105 = $104 + 1 | 0;
$106 = $104 + 2 | 0;
$107 = $104 + 3 | 0;
$$022 = $nblocks;
$abuf$021 = $abuf_arg;
while (1) {
$108 = $16;
$114 = _i64Add(HEAP32[$108 >> 2] | 0, HEAP32[$108 + 4 >> 2] | 0, 1, 0) | 0;
$115 = tempRet0;
$116 = $16;
HEAP32[$116 >> 2] = $114;
HEAP32[$116 + 4 >> 2] = $115;
if (($114 | 0) == 0 & 0 == 0) label = 10; else if (!$114) label = 10; else {
$124 = _llvm_cttz_i32($114 | 0) | 0;
if ($124 >>> 0 < 16) $l$0 = $32 + ($124 << 4) | 0; else label = 10;
}
if ((label | 0) == 10) {
label = 0;
$l$0 = __gcry_cipher_ocb_get_l($c, $l_tmp, $114, $115) | 0;
}
if (!(($l$0 | $18) & 3)) {
HEAP32[$17 >> 2] = HEAP32[$17 >> 2] ^ HEAP32[$l$0 >> 2];
HEAP32[$19 >> 2] = HEAP32[$19 >> 2] ^ HEAP32[$l$0 + 4 >> 2];
HEAP32[$20 >> 2] = HEAP32[$20 >> 2] ^ HEAP32[$l$0 + 8 >> 2];
HEAP32[$21 >> 2] = HEAP32[$21 >> 2] ^ HEAP32[$l$0 + 12 >> 2];
} else {
HEAP8[$17 >> 0] = HEAP8[$17 >> 0] ^ HEAP8[$l$0 >> 0];
HEAP8[$93 >> 0] = HEAP8[$93 >> 0] ^ HEAP8[$l$0 + 1 >> 0];
HEAP8[$94 >> 0] = HEAP8[$94 >> 0] ^ HEAP8[$l$0 + 2 >> 0];
HEAP8[$95 >> 0] = HEAP8[$95 >> 0] ^ HEAP8[$l$0 + 3 >> 0];
HEAP8[$96 >> 0] = HEAP8[$96 >> 0] ^ HEAP8[$l$0 + 4 >> 0];
HEAP8[$97 >> 0] = HEAP8[$97 >> 0] ^ HEAP8[$l$0 + 5 >> 0];
HEAP8[$98 >> 0] = HEAP8[$98 >> 0] ^ HEAP8[$l$0 + 6 >> 0];
HEAP8[$99 >> 0] = HEAP8[$99 >> 0] ^ HEAP8[$l$0 + 7 >> 0];
HEAP8[$100 >> 0] = HEAP8[$100 >> 0] ^ HEAP8[$l$0 + 8 >> 0];
HEAP8[$101 >> 0] = HEAP8[$101 >> 0] ^ HEAP8[$l$0 + 9 >> 0];
HEAP8[$102 >> 0] = HEAP8[$102 >> 0] ^ HEAP8[$l$0 + 10 >> 0];
HEAP8[$103 >> 0] = HEAP8[$103 >> 0] ^ HEAP8[$l$0 + 11 >> 0];
HEAP8[$104 >> 0] = HEAP8[$104 >> 0] ^ HEAP8[$l$0 + 12 >> 0];
HEAP8[$105 >> 0] = HEAP8[$105 >> 0] ^ HEAP8[$l$0 + 13 >> 0];
HEAP8[$106 >> 0] = HEAP8[$106 >> 0] ^ HEAP8[$l$0 + 14 >> 0];
HEAP8[$107 >> 0] = HEAP8[$107 >> 0] ^ HEAP8[$l$0 + 15 >> 0];
}
if (!(($abuf$021 | $18) & 3)) {
HEAP32[$l_tmp >> 2] = HEAP32[$abuf$021 >> 2] ^ HEAP32[$17 >> 2];
HEAP32[$22 >> 2] = HEAP32[$abuf$021 + 4 >> 2] ^ HEAP32[$19 >> 2];
HEAP32[$23 >> 2] = HEAP32[$abuf$021 + 8 >> 2] ^ HEAP32[$20 >> 2];
HEAP32[$24 >> 2] = HEAP32[$abuf$021 + 12 >> 2] ^ HEAP32[$21 >> 2];
} else {
HEAP8[$l_tmp >> 0] = HEAP8[$abuf$021 >> 0] ^ HEAP8[$17 >> 0];
HEAP8[$64 >> 0] = HEAP8[$abuf$021 + 1 >> 0] ^ HEAP8[$63 >> 0];
HEAP8[$66 >> 0] = HEAP8[$abuf$021 + 2 >> 0] ^ HEAP8[$65 >> 0];
HEAP8[$68 >> 0] = HEAP8[$abuf$021 + 3 >> 0] ^ HEAP8[$67 >> 0];
HEAP8[$70 >> 0] = HEAP8[$abuf$021 + 4 >> 0] ^ HEAP8[$69 >> 0];
HEAP8[$72 >> 0] = HEAP8[$abuf$021 + 5 >> 0] ^ HEAP8[$71 >> 0];
HEAP8[$74 >> 0] = HEAP8[$abuf$021 + 6 >> 0] ^ HEAP8[$73 >> 0];
HEAP8[$76 >> 0] = HEAP8[$abuf$021 + 7 >> 0] ^ HEAP8[$75 >> 0];
HEAP8[$78 >> 0] = HEAP8[$abuf$021 + 8 >> 0] ^ HEAP8[$77 >> 0];
HEAP8[$80 >> 0] = HEAP8[$abuf$021 + 9 >> 0] ^ HEAP8[$79 >> 0];
HEAP8[$82 >> 0] = HEAP8[$abuf$021 + 10 >> 0] ^ HEAP8[$81 >> 0];
HEAP8[$84 >> 0] = HEAP8[$abuf$021 + 11 >> 0] ^ HEAP8[$83 >> 0];
HEAP8[$86 >> 0] = HEAP8[$abuf$021 + 12 >> 0] ^ HEAP8[$85 >> 0];
HEAP8[$88 >> 0] = HEAP8[$abuf$021 + 13 >> 0] ^ HEAP8[$87 >> 0];
HEAP8[$90 >> 0] = HEAP8[$abuf$021 + 14 >> 0] ^ HEAP8[$89 >> 0];
HEAP8[$92 >> 0] = HEAP8[$abuf$021 + 15 >> 0] ^ HEAP8[$91 >> 0];
}
$292 = FUNCTION_TABLE_iiii[$5 & 63]($0, $l_tmp, $l_tmp) | 0;
if ($28) {
HEAP32[$25 >> 2] = HEAP32[$25 >> 2] ^ HEAP32[$l_tmp >> 2];
HEAP32[$29 >> 2] = HEAP32[$29 >> 2] ^ HEAP32[$22 >> 2];
HEAP32[$30 >> 2] = HEAP32[$30 >> 2] ^ HEAP32[$23 >> 2];
HEAP32[$31 >> 2] = HEAP32[$31 >> 2] ^ HEAP32[$24 >> 2];
} else {
HEAP8[$25 >> 0] = HEAP8[$25 >> 0] ^ HEAP8[$l_tmp >> 0];
HEAP8[$34 >> 0] = HEAP8[$34 >> 0] ^ HEAP8[$33 >> 0];
HEAP8[$36 >> 0] = HEAP8[$36 >> 0] ^ HEAP8[$35 >> 0];
HEAP8[$38 >> 0] = HEAP8[$38 >> 0] ^ HEAP8[$37 >> 0];
HEAP8[$40 >> 0] = HEAP8[$40 >> 0] ^ HEAP8[$39 >> 0];
HEAP8[$42 >> 0] = HEAP8[$42 >> 0] ^ HEAP8[$41 >> 0];
HEAP8[$44 >> 0] = HEAP8[$44 >> 0] ^ HEAP8[$43 >> 0];
HEAP8[$46 >> 0] = HEAP8[$46 >> 0] ^ HEAP8[$45 >> 0];
HEAP8[$48 >> 0] = HEAP8[$48 >> 0] ^ HEAP8[$47 >> 0];
HEAP8[$50 >> 0] = HEAP8[$50 >> 0] ^ HEAP8[$49 >> 0];
HEAP8[$52 >> 0] = HEAP8[$52 >> 0] ^ HEAP8[$51 >> 0];
HEAP8[$54 >> 0] = HEAP8[$54 >> 0] ^ HEAP8[$53 >> 0];
HEAP8[$56 >> 0] = HEAP8[$56 >> 0] ^ HEAP8[$55 >> 0];
HEAP8[$58 >> 0] = HEAP8[$58 >> 0] ^ HEAP8[$57 >> 0];
HEAP8[$60 >> 0] = HEAP8[$60 >> 0] ^ HEAP8[$59 >> 0];
HEAP8[$62 >> 0] = HEAP8[$62 >> 0] ^ HEAP8[$61 >> 0];
}
$$022 = $$022 + -1 | 0;
if (!$$022) {
$$lcssa = $292;
break;
} else $abuf$021 = $abuf$021 + 16 | 0;
}
$356 = $l_tmp;
HEAP32[$356 >> 2] = 0;
HEAP32[$356 + 4 >> 2] = 0;
$361 = $l_tmp + 8 | 0;
HEAP32[$361 >> 2] = 0;
HEAP32[$361 + 4 >> 2] = 0;
if (!$$lcssa) {
STACKTOP = sp;
return;
}
___gcry_burn_stack($$lcssa + 16 | 0);
STACKTOP = sp;
return;
}
function _compute_keygrip_1822($md, $keyparms) {
$md = $md | 0;
$keyparms = $keyparms | 0;
var $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $10 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $17 = 0, $19 = 0, $22 = 0, $24 = 0, $3 = 0, $31 = 0, $33 = 0, $37 = 0, $40 = 0, $45 = 0, $46 = 0, $50 = 0, $56 = 0, $59 = 0, $65 = 0, $70 = 0, $8 = 0, $9 = 0, $90 = 0, $93 = 0, $96 = 0, $99 = 0, $buf = 0, $curvename$02$ph = 0, $curvename$1 = 0, $dialect = 0, $flags = 0, $idx$215 = 0, $l1$0 = 0, $model = 0, $n = 0, $rc$0 = 0, $rc$8 = 0, $values = 0, $vararg_buffer = 0, $vararg_buffer18 = 0, $vararg_buffer22 = 0, $vararg_buffer26 = 0, $vararg_buffer30 = 0, $vararg_buffer8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176 | 0;
$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 + 112 | 0;
$flags = sp + 108 | 0;
$model = sp + 104 | 0;
$dialect = sp + 100 | 0;
$buf = sp + 140 | 0;
$n = sp + 96 | 0;
HEAP32[$flags >> 2] = 0;
HEAP32[$model >> 2] = 0;
HEAP32[$dialect >> 2] = 0;
HEAP32[$values >> 2] = 0;
HEAP32[$values + 4 >> 2] = 0;
HEAP32[$values + 8 >> 2] = 0;
HEAP32[$values + 12 >> 2] = 0;
HEAP32[$values + 16 >> 2] = 0;
HEAP32[$values + 20 >> 2] = 0;
HEAP32[$values + 24 >> 2] = 0;
$0 = __gcry_sexp_find_token($keyparms, 46546, 0) | 0;
do if (!$0) {
$19 = $values + 24 | 0;
label = 10;
} else {
$3 = __gcry_pk_util_parse_flaglist($0, $flags, 0) | 0;
if (!$3) {
$$pre = HEAP32[$flags >> 2] | 0;
$8 = ($$pre & 4096 | 0) != 0;
if (!($$pre & 512)) {
$17 = $values + 24 | 0;
if (!$8) {
$19 = $17;
label = 10;
break;
}
HEAP32[$vararg_buffer18 >> 2] = $17;
HEAP32[$vararg_buffer18 + 4 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46581, $vararg_buffer18) | 0;
label = 11;
break;
}
$9 = $values + 4 | 0;
$10 = $values + 8 | 0;
$11 = $values + 12 | 0;
$12 = $values + 16 | 0;
$13 = $values + 20 | 0;
$14 = $values + 24 | 0;
if ($8) {
HEAP32[$vararg_buffer >> 2] = $values;
HEAP32[$vararg_buffer + 4 >> 2] = $9;
HEAP32[$vararg_buffer + 8 >> 2] = $10;
HEAP32[$vararg_buffer + 12 >> 2] = $11;
HEAP32[$vararg_buffer + 16 >> 2] = $12;
HEAP32[$vararg_buffer + 20 >> 2] = $13;
HEAP32[$vararg_buffer + 24 >> 2] = $14;
HEAP32[$vararg_buffer + 28 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46552, $vararg_buffer) | 0;
label = 11;
break;
} else {
HEAP32[$vararg_buffer8 >> 2] = $values;
HEAP32[$vararg_buffer8 + 4 >> 2] = $9;
HEAP32[$vararg_buffer8 + 8 >> 2] = $10;
HEAP32[$vararg_buffer8 + 12 >> 2] = $11;
HEAP32[$vararg_buffer8 + 16 >> 2] = $12;
HEAP32[$vararg_buffer8 + 20 >> 2] = $13;
HEAP32[$vararg_buffer8 + 24 >> 2] = $14;
HEAP32[$vararg_buffer8 + 28 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46567, $vararg_buffer8) | 0;
label = 11;
break;
}
} else {
$curvename$1 = 0;
$l1$0 = $0;
$rc$8 = $3;
}
} while (0);
if ((label | 0) == 10) {
HEAP32[$vararg_buffer22 >> 2] = $19;
HEAP32[$vararg_buffer22 + 4 >> 2] = 0;
$rc$0 = __gcry_sexp_extract_param($keyparms, 0, 46584, $vararg_buffer22) | 0;
label = 11;
}
L14 : do if ((label | 0) == 11) if (!$rc$0) {
__gcry_sexp_release($0);
$22 = __gcry_sexp_find_token($keyparms, 46586, 5) | 0;
if (!$22) label = 15; else {
$24 = __gcry_sexp_nth_string($22, 1) | 0;
if (!$24) label = 15; else {
$31 = __gcry_ecc_update_curve_param($24, $model, $dialect, $values, $values + 4 | 0, $values + 8 | 0, $values + 12 | 0, $values + 16 | 0, $values + 20 | 0) | 0;
if (!$31) {
$$pre$phiZ2D = $values;
$curvename$02$ph = $24;
} else {
$curvename$1 = $24;
$l1$0 = $22;
$rc$8 = $31;
break;
}
}
}
if ((label | 0) == 15) {
$33 = HEAP32[$flags >> 2] | 0;
HEAP32[$model >> 2] = $33 >>> 11 & 2;
HEAP32[$dialect >> 2] = $33 >>> 12 & 1;
$$pre$phiZ2D = $values;
$curvename$02$ph = 0;
}
$37 = HEAP32[$$pre$phiZ2D >> 2] | 0;
if (!$37) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($37);
$40 = HEAP32[$values + 4 >> 2] | 0;
if (!$40) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($40);
$90 = HEAP32[$values + 8 >> 2] | 0;
if (!$90) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($90);
$93 = HEAP32[$values + 12 >> 2] | 0;
if (!$93) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($93);
$96 = HEAP32[$values + 16 >> 2] | 0;
if (!$96) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($96);
$99 = HEAP32[$values + 20 >> 2] | 0;
if (!$99) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($99);
$45 = $values + 24 | 0;
$101 = HEAP32[$45 >> 2] | 0;
if (!$101) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 68;
} else {
__gcry_mpi_normalize($101);
if (HEAP32[$flags >> 2] & 4096) {
if ((HEAP32[$dialect >> 2] | 0) != 1) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 69;
break;
}
$46 = __gcry_ecc_eddsa_ensure_compact(HEAP32[$45 >> 2] | 0, 256) | 0;
if ($46) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = $46;
break;
}
}
$idx$215 = 0;
while (1) {
if (($idx$215 | 0) == 5) {
$idx$215 = 6;
continue;
}
$50 = HEAP32[$values + ($idx$215 << 2) >> 2] | 0;
if (!$50) label = 26; else if (!(HEAP32[$50 + 12 >> 2] & 4)) label = 26; else {
$56 = __gcry_mpi_get_opaque($50, $n) | 0;
$59 = ((HEAP32[$n >> 2] | 0) + 7 | 0) >>> 3;
HEAP32[$n >> 2] = $59;
HEAP32[$vararg_buffer26 >> 2] = HEAP8[46592 + $idx$215 >> 0];
HEAP32[$vararg_buffer26 + 4 >> 2] = $59;
_snprintf($buf, 30, 46599, $vararg_buffer26) | 0;
__gcry_md_write($md, $buf, _strlen($buf) | 0);
__gcry_md_write($md, $56, HEAP32[$n >> 2] | 0);
__gcry_md_write($md, 46608, 1);
}
if ((label | 0) == 26) {
label = 0;
$65 = __gcry_mpi_get_buffer($50, 0, $n, 0) | 0;
if (!$65) break;
$70 = HEAP32[$n >> 2] | 0;
HEAP32[$vararg_buffer30 >> 2] = HEAP8[46592 + $idx$215 >> 0];
HEAP32[$vararg_buffer30 + 4 >> 2] = $70;
_snprintf($buf, 30, 46599, $vararg_buffer30) | 0;
__gcry_md_write($md, $buf, _strlen($buf) | 0);
__gcry_md_write($md, $65, HEAP32[$n >> 2] | 0);
__gcry_md_write($md, 46608, 1);
__gcry_free($65);
}
$idx$215 = $idx$215 + 1 | 0;
if (($idx$215 | 0) >= 7) {
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = 0;
break L14;
}
}
$curvename$1 = $curvename$02$ph;
$l1$0 = $22;
$rc$8 = _gpg_err_code_from_syserror() | 0;
}
}
}
}
}
}
}
} else {
$curvename$1 = 0;
$l1$0 = $0;
$rc$8 = $rc$0;
} while (0);
__gcry_free($curvename$1);
__gcry_sexp_release($l1$0);
__gcry_mpi_release(HEAP32[$values >> 2] | 0);
__gcry_mpi_release(HEAP32[$values + 4 >> 2] | 0);
__gcry_mpi_release(HEAP32[$values + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$values + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$values + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$values + 20 >> 2] | 0);
__gcry_mpi_release(HEAP32[$values + 24 >> 2] | 0);
STACKTOP = sp;
return $rc$8 | 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, $$04$ph29 = 0, $0 = 0, $101 = 0, $108 = 0, $120 = 0, $124 = 0, $13 = 0, $130 = 0, $14 = 0, $16 = 0, $18 = 0, $21 = 0, $26 = 0, $28 = 0, $31 = 0, $34 = 0, $39 = 0, $41 = 0, $45 = 0, $51 = 0, $6 = 0, $60 = 0, $66 = 0, $69 = 0, $75 = 0, $82 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $K$0 = 0, $h1_buf = 0, $hd = 0, $k = 0, $rc$0 = 0, $t$0 = 0, $tbits$010$us$be = 0, $tbits$010$us23 = 0, $x_buf = 0, $z1$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$z1$i = sp + 16 | 0;
$x_buf = sp + 12 | 0;
$h1_buf = sp + 8 | 0;
$hd = sp + 4 | 0;
$k = sp;
HEAP32[$x_buf >> 2] = 0;
HEAP32[$h1_buf >> 2] = 0;
HEAP32[$hd >> 2] = 0;
HEAP32[$k >> 2] = 0;
$0 = __gcry_mpi_get_nbits($dsa_q) | 0;
if (!(($hlen | 0) != 0 & (($h1 | 0) != 0 & ($0 | 0) != 0))) {
$$0 = 32816;
STACKTOP = sp;
return $$0 | 0;
}
if ((__gcry_md_get_algo_dlen($halgo) | 0) != ($hlen | 0)) {
$$0 = 5;
STACKTOP = sp;
return $$0 | 0;
}
$6 = __gcry_malloc($hlen) | 0;
L7 : do if (!$6) {
$K$0 = 0;
$rc$0 = _gpg_err_code_from_syserror() | 0;
$t$0 = 0;
} else {
_memset($6 | 0, 1, $hlen | 0) | 0;
$9 = __gcry_calloc(1, $hlen) | 0;
if (!$9) {
$K$0 = 0;
$rc$0 = _gpg_err_code_from_syserror() | 0;
$t$0 = 0;
break;
}
$13 = ($0 + 7 | 0) >>> 3;
$14 = _int2octets($x_buf, $dsa_x, $13) | 0;
if (!$14) {
$16 = $hlen << 3;
$18 = __gcry_mpi_scan($z1$i, 5, $h1, $hlen & 536870911, 0) | 0;
if ($18) {
$K$0 = $9;
$rc$0 = $18;
$t$0 = 0;
break;
}
if ($16 >>> 0 > $0 >>> 0) {
$21 = HEAP32[$z1$i >> 2] | 0;
__gcry_mpi_rshift($21, $21, $16 - $0 | 0);
}
if ((__gcry_mpi_cmp(HEAP32[$z1$i >> 2] | 0, $dsa_q) | 0) > -1) {
$26 = HEAP32[$z1$i >> 2] | 0;
__gcry_mpi_sub($26, $26, $dsa_q);
}
$28 = _int2octets($h1_buf, HEAP32[$z1$i >> 2] | 0, $13) | 0;
__gcry_mpi_free(HEAP32[$z1$i >> 2] | 0);
if (!$28) {
$31 = __gcry_md_open($hd, $halgo, 3) | 0;
if (!$31) {
$34 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$34) {
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
__gcry_md_write(HEAP32[$hd >> 2] | 0, 75759, 1);
$39 = HEAP32[$x_buf >> 2] | 0;
__gcry_md_write(HEAP32[$hd >> 2] | 0, $39, $13);
$41 = HEAP32[$h1_buf >> 2] | 0;
__gcry_md_write(HEAP32[$hd >> 2] | 0, $41, $13);
_memcpy($9 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$45 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$45) {
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
_memcpy($6 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$51 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$51) {
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
__gcry_md_write(HEAP32[$hd >> 2] | 0, 52413, 1);
__gcry_md_write(HEAP32[$hd >> 2] | 0, $39, $13);
__gcry_md_write(HEAP32[$hd >> 2] | 0, $41, $13);
_memcpy($9 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$60 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$60) {
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
_memcpy($6 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$66 = __gcry_malloc($13 + $hlen | 0) | 0;
if (!$66) {
$K$0 = $9;
$rc$0 = _gpg_err_code_from_syserror() | 0;
$t$0 = 0;
break;
}
$69 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$69) {
$$04$ph29 = $extraloops;
while (1) {
$tbits$010$us23 = 0;
while (1) {
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
_memcpy($6 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
_memcpy($66 + ($tbits$010$us23 >>> 3) | 0, $6 | 0, $hlen | 0) | 0;
$90 = $tbits$010$us23 + $16 | 0;
if ($90 >>> 0 < $0 >>> 0) $tbits$010$us$be = $90; else {
__gcry_mpi_free(HEAP32[$k >> 2] | 0);
HEAP32[$k >> 2] = 0;
$124 = __gcry_mpi_scan($k, 5, $66, $90 >>> 3, 0) | 0;
if ($124) {
$K$0 = $9;
$rc$0 = $124;
$t$0 = $66;
break L7;
}
if ($90 >>> 0 > $0 >>> 0) {
$92 = HEAP32[$k >> 2] | 0;
__gcry_mpi_rshift($92, $92, $90 - $0 | 0);
}
if ((__gcry_mpi_cmp(HEAP32[$k >> 2] | 0, $dsa_q) | 0) < 0) if ((__gcry_mpi_cmp_ui(HEAP32[$k >> 2] | 0, 0) | 0) > 0) break;
$101 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if ($101) {
$K$0 = $9;
$rc$0 = $101;
$t$0 = $66;
break L7;
}
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
__gcry_md_write(HEAP32[$hd >> 2] | 0, 75759, 1);
_memcpy($9 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$108 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if ($108) {
$K$0 = $9;
$rc$0 = $108;
$t$0 = $66;
break L7;
}
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
_memcpy($6 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$tbits$010$us$be = 0;
}
$120 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$120) $tbits$010$us23 = $tbits$010$us$be; else {
$K$0 = $9;
$rc$0 = $120;
$t$0 = $66;
break L7;
}
}
if (!$$04$ph29) {
$K$0 = $9;
$rc$0 = 0;
$t$0 = $66;
break L7;
}
$75 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if ($75) {
$K$0 = $9;
$rc$0 = $75;
$t$0 = $66;
break L7;
}
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
__gcry_md_write(HEAP32[$hd >> 2] | 0, 75759, 1);
_memcpy($9 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$82 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if ($82) {
$K$0 = $9;
$rc$0 = $82;
$t$0 = $66;
break L7;
}
__gcry_md_write(HEAP32[$hd >> 2] | 0, $6, $hlen);
_memcpy($6 | 0, __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0, $hlen | 0) | 0;
$88 = __gcry_md_setkey(HEAP32[$hd >> 2] | 0, $9, $hlen) | 0;
if (!$88) $$04$ph29 = $$04$ph29 + -1 | 0; else {
$K$0 = $9;
$rc$0 = $88;
$t$0 = $66;
break;
}
}
} else {
$K$0 = $9;
$rc$0 = $69;
$t$0 = $66;
}
} else {
$K$0 = $9;
$rc$0 = $60;
$t$0 = 0;
}
} else {
$K$0 = $9;
$rc$0 = $51;
$t$0 = 0;
}
} else {
$K$0 = $9;
$rc$0 = $45;
$t$0 = 0;
}
} else {
$K$0 = $9;
$rc$0 = $34;
$t$0 = 0;
}
} else {
$K$0 = $9;
$rc$0 = $31;
$t$0 = 0;
}
} else {
$K$0 = $9;
$rc$0 = $28;
$t$0 = 0;
}
} else {
$K$0 = $9;
$rc$0 = $14;
$t$0 = 0;
}
} while (0);
__gcry_free($t$0);
__gcry_md_close(HEAP32[$hd >> 2] | 0);
__gcry_free(HEAP32[$h1_buf >> 2] | 0);
__gcry_free(HEAP32[$x_buf >> 2] | 0);
__gcry_free($K$0);
__gcry_free($6);
$130 = HEAP32[$k >> 2] | 0;
if (!$rc$0) {
HEAP32[$r_k >> 2] = $130;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
__gcry_mpi_free($130);
$$0 = $rc$0;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
function _do_fast_random_poll() {
var $100 = 0, $101 = 0, $106 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $13 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $15 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $16 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $17 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $32 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $72 = 0, $77 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $98 = 0, $99 = 0, $p$02$us$i$5 = 0, $tv = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144 | 0;
$tv = sp;
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1180, 50545);
HEAP32[17546] = (HEAP32[17546] | 0) + 1;
if (_gettimeofday($tv | 0, 0) | 0) __gcry_bug(50062, 1198, 50545);
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1074, 50088);
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$13 = HEAP8[$tv >> 0] | 0;
$14 = HEAP32[17557] | 0;
$15 = $14 + 1 | 0;
HEAP32[17557] = $15;
$16 = HEAP32[17556] | 0;
$17 = $16 + $14 | 0;
HEAP8[$17 >> 0] = HEAP8[$17 >> 0] ^ $13;
if ($15 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($16);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$26 = HEAP32[17557] | 0;
$28 = HEAP32[17556] | 0;
} else {
$26 = $15;
$28 = $16;
}
$24 = HEAP8[$tv + 1 >> 0] | 0;
$25 = $26 + 1 | 0;
HEAP32[17557] = $25;
$27 = $28 + $26 | 0;
HEAP8[$27 >> 0] = HEAP8[$27 >> 0] ^ $24;
if ($25 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($28);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$207 = HEAP32[17557] | 0;
$209 = HEAP32[17556] | 0;
} else {
$207 = $25;
$209 = $28;
}
$205 = HEAP8[$tv + 2 >> 0] | 0;
$206 = $207 + 1 | 0;
HEAP32[17557] = $206;
$208 = $209 + $207 | 0;
HEAP8[$208 >> 0] = HEAP8[$208 >> 0] ^ $205;
if ($206 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($209);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$215 = HEAP8[$tv + 3 >> 0] | 0;
$216 = HEAP32[17557] | 0;
$217 = $216 + 1 | 0;
HEAP32[17557] = $217;
$218 = HEAP32[17556] | 0;
$219 = $218 + $216 | 0;
HEAP8[$219 >> 0] = HEAP8[$219 >> 0] ^ $215;
if ($217 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($218);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1074, 50088);
$32 = $tv + 4 | 0;
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$38 = HEAP8[$32 >> 0] | 0;
$39 = HEAP32[17557] | 0;
$40 = $39 + 1 | 0;
HEAP32[17557] = $40;
$41 = HEAP32[17556] | 0;
$42 = $41 + $39 | 0;
HEAP8[$42 >> 0] = HEAP8[$42 >> 0] ^ $38;
if ($40 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($41);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$51 = HEAP32[17557] | 0;
$53 = HEAP32[17556] | 0;
} else {
$51 = $40;
$53 = $41;
}
$49 = HEAP8[$32 + 1 >> 0] | 0;
$50 = $51 + 1 | 0;
HEAP32[17557] = $50;
$52 = $53 + $51 | 0;
HEAP8[$52 >> 0] = HEAP8[$52 >> 0] ^ $49;
if ($50 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($53);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$182 = HEAP32[17557] | 0;
$184 = HEAP32[17556] | 0;
} else {
$182 = $50;
$184 = $53;
}
$180 = HEAP8[$32 + 2 >> 0] | 0;
$181 = $182 + 1 | 0;
HEAP32[17557] = $181;
$183 = $184 + $182 | 0;
HEAP8[$183 >> 0] = HEAP8[$183 >> 0] ^ $180;
if ($181 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($184);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$190 = HEAP8[$32 + 3 >> 0] | 0;
$191 = HEAP32[17557] | 0;
$192 = $191 + 1 | 0;
HEAP32[17557] = $192;
$193 = HEAP32[17556] | 0;
$194 = $193 + $191 | 0;
HEAP8[$194 >> 0] = HEAP8[$194 >> 0] ^ $190;
if ($192 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($193);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
_getrusage(0, $tv) | 0;
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1074, 50088);
HEAP32[17548] = (HEAP32[17548] | 0) + 136;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$72 = 135;
$p$02$us$i$5 = $tv;
while (1) {
$62 = HEAP8[$p$02$us$i$5 >> 0] | 0;
$63 = HEAP32[17557] | 0;
$64 = $63 + 1 | 0;
HEAP32[17557] = $64;
$65 = HEAP32[17556] | 0;
$66 = $65 + $63 | 0;
HEAP8[$66 >> 0] = HEAP8[$66 >> 0] ^ $62;
if ($64 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($65);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = ($72 | 0) == 0 & 1;
}
if (!$72) break; else {
$72 = $72 + -1 | 0;
$p$02$us$i$5 = $p$02$us$i$5 + 1 | 0;
}
}
$77 = _time(0) | 0;
HEAP32[$tv >> 2] = $77;
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1074, 50088);
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$89 = HEAP32[17557] | 0;
$90 = $89 + 1 | 0;
HEAP32[17557] = $90;
$91 = HEAP32[17556] | 0;
$92 = $91 + $89 | 0;
HEAP8[$92 >> 0] = HEAP8[$92 >> 0] ^ $77 & 255;
if ($90 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($91);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$101 = HEAP32[17556] | 0;
$99 = HEAP32[17557] | 0;
} else {
$101 = $91;
$99 = $90;
}
$98 = $99 + 1 | 0;
HEAP32[17557] = $98;
$100 = $101 + $99 | 0;
HEAP8[$100 >> 0] = HEAP8[$100 >> 0] ^ $77 >>> 8 & 255;
if ($98 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($101);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$155 = HEAP32[17557] | 0;
$157 = HEAP32[17556] | 0;
} else {
$155 = $98;
$157 = $101;
}
$154 = $155 + 1 | 0;
HEAP32[17557] = $154;
$156 = $157 + $155 | 0;
HEAP8[$156 >> 0] = HEAP8[$156 >> 0] ^ $77 >>> 16 & 255;
if ($154 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($157);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$163 = HEAP8[$tv + 3 >> 0] | 0;
$164 = HEAP32[17557] | 0;
$165 = $164 + 1 | 0;
HEAP32[17557] = $165;
$166 = HEAP32[17556] | 0;
$167 = $166 + $164 | 0;
HEAP8[$167 >> 0] = HEAP8[$167 >> 0] ^ $163;
if ($165 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($166);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
}
$106 = _clock() | 0;
HEAP32[$tv >> 2] = $106;
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1074, 50088);
HEAP32[17548] = (HEAP32[17548] | 0) + 4;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$111 = HEAP32[17557] | 0;
$112 = $111 + 1 | 0;
HEAP32[17557] = $112;
$113 = HEAP32[17556] | 0;
$114 = $113 + $111 | 0;
HEAP8[$114 >> 0] = HEAP8[$114 >> 0] ^ $106 & 255;
if ($112 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($113);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$121 = HEAP32[17557] | 0;
$123 = HEAP32[17556] | 0;
} else {
$121 = $112;
$123 = $113;
}
$120 = $121 + 1 | 0;
HEAP32[17557] = $120;
$122 = $123 + $121 | 0;
HEAP8[$122 >> 0] = HEAP8[$122 >> 0] ^ $106 >>> 8 & 255;
if ($120 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($123);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
$132 = HEAP32[17557] | 0;
$134 = HEAP32[17556] | 0;
} else {
$132 = $120;
$134 = $123;
}
$131 = $132 + 1 | 0;
HEAP32[17557] = $131;
$133 = $134 + $132 | 0;
HEAP8[$133 >> 0] = HEAP8[$133 >> 0] ^ $106 >>> 16 & 255;
if ($131 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($134);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 0;
}
$141 = HEAP8[$tv + 3 >> 0] | 0;
$142 = HEAP32[17557] | 0;
$143 = $142 + 1 | 0;
HEAP32[17557] = $143;
$144 = HEAP32[17556] | 0;
$145 = $144 + $142 | 0;
HEAP8[$145 >> 0] = HEAP8[$145 >> 0] ^ $141;
if ($143 >>> 0 <= 599) {
STACKTOP = sp;
return;
}
HEAP32[17557] = 0;
_mix_pool($144);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = 1;
STACKTOP = sp;
return;
}
function _do_decrypt($ctx, $bx, $ax) {
$ctx = $ctx | 0;
$bx = $bx | 0;
$ax = $ax | 0;
var $$lcssa = 0, $$lcssa16 = 0, $$lcssa17 = 0, $$lcssa18 = 0, $1 = 0, $100 = 0, $103 = 0, $106 = 0, $109 = 0, $120 = 0, $128 = 0, $135 = 0, $150 = 0, $158 = 0, $165 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $199 = 0, $202 = 0, $203 = 0, $210 = 0, $217 = 0, $223 = 0, $237 = 0, $245 = 0, $252 = 0, $267 = 0, $275 = 0, $282 = 0, $297 = 0, $305 = 0, $312 = 0, $330 = 0, $338 = 0, $345 = 0, $360 = 0, $368 = 0, $375 = 0, $390 = 0, $394 = 0, $398 = 0, $402 = 0, $405 = 0, $409 = 0, $412 = 0, $434 = 0, $435 = 0, $462 = 0, $463 = 0, $482 = 0, $488 = 0, $491 = 0, $503 = 0, $510 = 0, $516 = 0, $519 = 0, $73 = 0, $89 = 0, $93 = 0, $96 = 0, $r$0$i = 0, $r$0$in$i = 0, $sa$sroa$0$0$i = 0, $sa$sroa$112$0$i = 0, $sa$sroa$112$0$i$lcssa = 0, $sa$sroa$44$0$i = 0, $sa$sroa$44$0$i$lcssa = 0, $sa$sroa$82$0$i = 0, $sa$sroa$82$0$i$lcssa = 0;
$1 = HEAP32[$ctx + 480 >> 2] | 0;
$73 = $ctx + 240 | 0;
$r$0$in$i = $1;
$sa$sroa$0$0$i = HEAP32[$73 + ($1 << 4) >> 2] ^ ((HEAPU8[$ax + 2 >> 0] | 0) << 16 | (HEAPU8[$ax + 3 >> 0] | 0) << 24 | (HEAPU8[$ax + 1 >> 0] | 0) << 8 | (HEAPU8[$ax >> 0] | 0));
$sa$sroa$112$0$i = HEAP32[$73 + ($1 << 4) + 12 >> 2] ^ ((HEAPU8[$ax + 14 >> 0] | 0) << 16 | (HEAPU8[$ax + 15 >> 0] | 0) << 24 | (HEAPU8[$ax + 13 >> 0] | 0) << 8 | (HEAPU8[$ax + 12 >> 0] | 0));
$sa$sroa$44$0$i = HEAP32[$73 + ($1 << 4) + 4 >> 2] ^ ((HEAPU8[$ax + 6 >> 0] | 0) << 16 | (HEAPU8[$ax + 7 >> 0] | 0) << 24 | (HEAPU8[$ax + 5 >> 0] | 0) << 8 | (HEAPU8[$ax + 4 >> 0] | 0));
$sa$sroa$82$0$i = HEAP32[$73 + ($1 << 4) + 8 >> 2] ^ ((HEAPU8[$ax + 10 >> 0] | 0) << 16 | (HEAPU8[$ax + 11 >> 0] | 0) << 24 | (HEAPU8[$ax + 9 >> 0] | 0) << 8 | (HEAPU8[$ax + 8 >> 0] | 0));
while (1) {
$r$0$i = $r$0$in$i + -1 | 0;
$89 = HEAP32[6100 + (($sa$sroa$0$0$i & 255) << 2) >> 2] | 0;
$93 = HEAP32[6100 + (($sa$sroa$0$0$i >>> 8 & 255) << 2) >> 2] | 0;
$96 = $93 << 8 | $93 >>> 24;
$100 = HEAP32[6100 + (($sa$sroa$0$0$i >>> 16 & 255) << 2) >> 2] | 0;
$103 = $100 << 16 | $100 >>> 16;
$106 = HEAP32[6100 + ($sa$sroa$0$0$i >>> 24 << 2) >> 2] | 0;
$109 = $106 << 24 | $106 >>> 8;
if (($r$0$i | 0) <= 1) {
$$lcssa = $89;
$$lcssa16 = $96;
$$lcssa17 = $103;
$$lcssa18 = $109;
$sa$sroa$112$0$i$lcssa = $sa$sroa$112$0$i;
$sa$sroa$44$0$i$lcssa = $sa$sroa$44$0$i;
$sa$sroa$82$0$i$lcssa = $sa$sroa$82$0$i;
break;
}
$120 = HEAP32[6100 + (($sa$sroa$44$0$i >>> 8 & 255) << 2) >> 2] | 0;
$128 = HEAP32[6100 + (($sa$sroa$44$0$i >>> 16 & 255) << 2) >> 2] | 0;
$135 = HEAP32[6100 + ($sa$sroa$44$0$i >>> 24 << 2) >> 2] | 0;
$150 = HEAP32[6100 + (($sa$sroa$82$0$i >>> 8 & 255) << 2) >> 2] | 0;
$158 = HEAP32[6100 + (($sa$sroa$82$0$i >>> 16 & 255) << 2) >> 2] | 0;
$165 = HEAP32[6100 + ($sa$sroa$82$0$i >>> 24 << 2) >> 2] | 0;
$180 = HEAP32[6100 + (($sa$sroa$112$0$i >>> 8 & 255) << 2) >> 2] | 0;
$184 = HEAP32[$73 + ($r$0$i << 4) >> 2] ^ $89 ^ ($135 << 24 | $135 >>> 8) ^ ($158 << 16 | $158 >>> 16) ^ ($180 << 8 | $180 >>> 24);
$188 = HEAP32[6100 + (($sa$sroa$112$0$i >>> 16 & 255) << 2) >> 2] | 0;
$192 = HEAP32[6100 + (($sa$sroa$44$0$i & 255) << 2) >> 2] ^ $96 ^ HEAP32[$73 + ($r$0$i << 4) + 4 >> 2] ^ ($165 << 24 | $165 >>> 8) ^ ($188 << 16 | $188 >>> 16);
$195 = HEAP32[6100 + ($sa$sroa$112$0$i >>> 24 << 2) >> 2] | 0;
$199 = ($120 << 8 | $120 >>> 24) ^ $103 ^ HEAP32[6100 + (($sa$sroa$82$0$i & 255) << 2) >> 2] ^ HEAP32[$73 + ($r$0$i << 4) + 8 >> 2] ^ ($195 << 24 | $195 >>> 8);
$202 = ($128 << 16 | $128 >>> 16) ^ $109 ^ ($150 << 8 | $150 >>> 24) ^ HEAP32[6100 + (($sa$sroa$112$0$i & 255) << 2) >> 2] ^ HEAP32[$73 + ($r$0$i << 4) + 12 >> 2];
$203 = $r$0$in$i + -2 | 0;
$210 = HEAP32[6100 + (($184 >>> 8 & 255) << 2) >> 2] | 0;
$217 = HEAP32[6100 + (($184 >>> 16 & 255) << 2) >> 2] | 0;
$223 = HEAP32[6100 + ($184 >>> 24 << 2) >> 2] | 0;
$237 = HEAP32[6100 + (($192 >>> 8 & 255) << 2) >> 2] | 0;
$245 = HEAP32[6100 + (($192 >>> 16 & 255) << 2) >> 2] | 0;
$252 = HEAP32[6100 + ($192 >>> 24 << 2) >> 2] | 0;
$267 = HEAP32[6100 + (($199 >>> 8 & 255) << 2) >> 2] | 0;
$275 = HEAP32[6100 + (($199 >>> 16 & 255) << 2) >> 2] | 0;
$282 = HEAP32[6100 + ($199 >>> 24 << 2) >> 2] | 0;
$297 = HEAP32[6100 + (($202 >>> 8 & 255) << 2) >> 2] | 0;
$305 = HEAP32[6100 + (($202 >>> 16 & 255) << 2) >> 2] | 0;
$312 = HEAP32[6100 + ($202 >>> 24 << 2) >> 2] | 0;
$r$0$in$i = $203;
$sa$sroa$0$0$i = HEAP32[$73 + ($203 << 4) >> 2] ^ HEAP32[6100 + (($184 & 255) << 2) >> 2] ^ ($252 << 24 | $252 >>> 8) ^ ($275 << 16 | $275 >>> 16) ^ ($297 << 8 | $297 >>> 24);
$sa$sroa$112$0$i = ($245 << 16 | $245 >>> 16) ^ ($223 << 24 | $223 >>> 8) ^ ($267 << 8 | $267 >>> 24) ^ HEAP32[6100 + (($202 & 255) << 2) >> 2] ^ HEAP32[$73 + ($203 << 4) + 12 >> 2];
$sa$sroa$44$0$i = HEAP32[6100 + (($192 & 255) << 2) >> 2] ^ ($210 << 8 | $210 >>> 24) ^ HEAP32[$73 + ($203 << 4) + 4 >> 2] ^ ($282 << 24 | $282 >>> 8) ^ ($305 << 16 | $305 >>> 16);
$sa$sroa$82$0$i = ($237 << 8 | $237 >>> 24) ^ ($217 << 16 | $217 >>> 16) ^ HEAP32[6100 + (($199 & 255) << 2) >> 2] ^ HEAP32[$73 + ($203 << 4) + 8 >> 2] ^ ($312 << 24 | $312 >>> 8);
}
$330 = HEAP32[6100 + (($sa$sroa$44$0$i$lcssa >>> 8 & 255) << 2) >> 2] | 0;
$338 = HEAP32[6100 + (($sa$sroa$44$0$i$lcssa >>> 16 & 255) << 2) >> 2] | 0;
$345 = HEAP32[6100 + ($sa$sroa$44$0$i$lcssa >>> 24 << 2) >> 2] | 0;
$360 = HEAP32[6100 + (($sa$sroa$82$0$i$lcssa >>> 8 & 255) << 2) >> 2] | 0;
$368 = HEAP32[6100 + (($sa$sroa$82$0$i$lcssa >>> 16 & 255) << 2) >> 2] | 0;
$375 = HEAP32[6100 + ($sa$sroa$82$0$i$lcssa >>> 24 << 2) >> 2] | 0;
$390 = HEAP32[6100 + (($sa$sroa$112$0$i$lcssa >>> 8 & 255) << 2) >> 2] | 0;
$394 = HEAP32[$ctx + 256 >> 2] ^ $$lcssa ^ ($345 << 24 | $345 >>> 8) ^ ($368 << 16 | $368 >>> 16) ^ ($390 << 8 | $390 >>> 24);
$398 = HEAP32[6100 + (($sa$sroa$112$0$i$lcssa >>> 16 & 255) << 2) >> 2] | 0;
$402 = HEAP32[6100 + (($sa$sroa$44$0$i$lcssa & 255) << 2) >> 2] ^ $$lcssa16 ^ HEAP32[$ctx + 260 >> 2] ^ ($375 << 24 | $375 >>> 8) ^ ($398 << 16 | $398 >>> 16);
$405 = HEAP32[6100 + ($sa$sroa$112$0$i$lcssa >>> 24 << 2) >> 2] | 0;
$409 = ($330 << 8 | $330 >>> 24) ^ $$lcssa17 ^ HEAP32[6100 + (($sa$sroa$82$0$i$lcssa & 255) << 2) >> 2] ^ HEAP32[$ctx + 264 >> 2] ^ ($405 << 24 | $405 >>> 8);
$412 = ($338 << 16 | $338 >>> 16) ^ $$lcssa18 ^ ($360 << 8 | $360 >>> 24) ^ HEAP32[6100 + (($sa$sroa$112$0$i$lcssa & 255) << 2) >> 2] ^ HEAP32[$ctx + 268 >> 2];
$434 = HEAP32[$73 >> 2] | 0;
$435 = $434 ^ (HEAPU8[7124 + ($394 & 255) >> 0] | 0);
$462 = HEAP32[$73 + 4 >> 2] | 0;
$463 = $462 ^ (HEAPU8[7124 + ($402 & 255) >> 0] | 0 | (HEAPU8[7124 + ($394 >>> 8 & 255) >> 0] | 0) << 8);
$482 = (HEAPU8[7124 + ($409 >>> 16 & 255) >> 0] | 0) << 16 ^ $434;
$488 = (HEAPU8[7124 + ($409 >>> 24) >> 0] | 0) << 24 ^ $462;
$491 = HEAP32[$ctx + 248 >> 2] ^ ((HEAPU8[7124 + ($402 >>> 8 & 255) >> 0] | 0) << 8 | (HEAPU8[7124 + ($394 >>> 16 & 255) >> 0] | 0) << 16 | (HEAPU8[7124 + ($409 & 255) >> 0] | 0));
$503 = (HEAPU8[7124 + ($412 >>> 8 & 255) >> 0] | 0) << 8 ^ $434;
$510 = (HEAPU8[7124 + ($412 >>> 16 & 255) >> 0] | 0) << 16 ^ $462;
$516 = (HEAPU8[7124 + ($412 >>> 24) >> 0] | 0) << 24 ^ $491;
$519 = HEAP32[$ctx + 252 >> 2] ^ ((HEAPU8[7124 + ($402 >>> 16 & 255) >> 0] | 0) << 16 | (HEAPU8[7124 + ($394 >>> 24) >> 0] | 0) << 24 | (HEAPU8[7124 + ($409 >>> 8 & 255) >> 0] | 0) << 8 | (HEAPU8[7124 + ($412 & 255) >> 0] | 0));
HEAP8[$bx + 3 >> 0] = ((HEAPU8[7124 + ($402 >>> 24) >> 0] | 0) << 24 ^ $434) >>> 24;
HEAP8[$bx + 2 >> 0] = $482 >>> 16;
HEAP8[$bx + 1 >> 0] = $503 >>> 8;
HEAP8[$bx >> 0] = $435;
HEAP8[$bx + 7 >> 0] = $488 >>> 24;
HEAP8[$bx + 6 >> 0] = $510 >>> 16;
HEAP8[$bx + 5 >> 0] = $463 >>> 8;
HEAP8[$bx + 4 >> 0] = $463;
HEAP8[$bx + 11 >> 0] = $516 >>> 24;
HEAP8[$bx + 10 >> 0] = $491 >>> 16;
HEAP8[$bx + 9 >> 0] = $491 >>> 8;
HEAP8[$bx + 8 >> 0] = $491;
HEAP8[$bx + 15 >> 0] = $519 >>> 24;
HEAP8[$bx + 14 >> 0] = $519 >>> 16;
HEAP8[$bx + 13 >> 0] = $519 >>> 8;
HEAP8[$bx + 12 >> 0] = $519;
return 64;
}
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 $1 = 0, $3 = 0, $8 = 0, $encoding$0$lcssa = 0, $encoding$023 = 0, $encoding$1 = 0, $flags$0$lcssa = 0, $flags$024 = 0, $flags$1 = 0, $i$022$in = 0, $igninvflag$025 = 0, $igninvflag$1 = 0, $n = 0, $or$cond11 = 0, $rc$0$lcssa = 0, $rc$021 = 0, $rc$1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$n = sp;
if (!$list) {
$encoding$0$lcssa = 5;
$flags$0$lcssa = 0;
$rc$0$lcssa = 0;
} else {
$1 = __gcry_sexp_length($list) | 0;
if (($1 | 0) > 1) {
$encoding$023 = 5;
$flags$024 = 0;
$i$022$in = $1;
$igninvflag$025 = 0;
$rc$021 = 0;
while (1) {
$i$022$in = $i$022$in + -1 | 0;
$3 = __gcry_sexp_nth_data($list, $i$022$in, $n) | 0;
L5 : do if (!$3) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
} else do switch (HEAP32[$n >> 2] | 0) {
case 3:
{
$8 = ($encoding$023 | 0) == 5;
if ($8 & (_memcmp($3, 37052, 3) | 0) == 0) {
$encoding$1 = 4;
$flags$1 = $flags$024 | 4;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if ($8 & (_memcmp($3, 37056, 3) | 0) == 0) {
$encoding$1 = 0;
$flags$1 = $flags$024 | 16;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 4:
{
if (!(_memcmp($3, 37060, 4) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 1024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if (($encoding$023 | 0) == 5 & (_memcmp($3, 37065, 4) | 0) == 0) {
$encoding$1 = 3;
$flags$1 = $flags$024 | 4;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if (!(_memcmp($3, 49281, 4) | 0)) {
$encoding$1 = 0;
$flags$1 = $flags$024 | 8192;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 5:
{
if (!(_memcmp($3, 49275, 5) | 0)) {
$encoding$1 = 0;
$flags$1 = $flags$024 | 4096;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if (($encoding$023 | 0) == 5 & (_memcmp($3, 37070, 5) | 0) == 0) {
$encoding$1 = 1;
$flags$1 = $flags$024 | 4;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if (!(_memcmp($3, 37076, 5) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 512;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 6:
{
if (!(_memcmp($3, 37082, 6) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 2048;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 7:
{
if (!(_memcmp($3, 37089, 7) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 2;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$or$cond11 = ($igninvflag$025 | 0) != 0 | (_memcmp($3, 37097, 7) | 0) == 0;
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $or$cond11 ? $rc$021 : 72;
break L5;
}
break;
}
case 8:
{
if (!(_memcmp($3, 41177, 8) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 64;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 9:
{
if (($encoding$023 | 0) == 5 & (_memcmp($3, 37105, 9) | 0) == 0) {
$encoding$1 = 2;
$flags$1 = $flags$024 | 4;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 10:
{
if (!(_memcmp($3, 37115, 10) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = 1;
$rc$1 = $rc$021;
break L5;
}
if (!(_memcmp($3, 37126, 10) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 16384;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 11:
{
if (!(_memcmp($3, 37137, 11) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 1;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if (!(_memcmp($3, 37149, 11) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 128;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
case 13:
{
if (!(_memcmp($3, 37161, 13) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 256;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
}
if (!(_memcmp($3, 48293, 13) | 0)) {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024 | 32;
$igninvflag$1 = $igninvflag$025;
$rc$1 = $rc$021;
break L5;
} else {
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
break;
}
default:
{
$encoding$1 = $encoding$023;
$flags$1 = $flags$024;
$igninvflag$1 = $igninvflag$025;
$rc$1 = ($igninvflag$025 | 0) == 0 ? 72 : $rc$021;
break L5;
}
} while (0); while (0);
if (($i$022$in | 0) <= 1) {
$encoding$0$lcssa = $encoding$1;
$flags$0$lcssa = $flags$1;
$rc$0$lcssa = $rc$1;
break;
} else {
$encoding$023 = $encoding$1;
$flags$024 = $flags$1;
$igninvflag$025 = $igninvflag$1;
$rc$021 = $rc$1;
}
}
} else {
$encoding$0$lcssa = 5;
$flags$0$lcssa = 0;
$rc$0$lcssa = 0;
}
}
if ($r_flags) HEAP32[$r_flags >> 2] = $flags$0$lcssa;
if (!$r_encoding) {
STACKTOP = sp;
return $rc$0$lcssa | 0;
}
HEAP32[$r_encoding >> 2] = $encoding$0$lcssa;
STACKTOP = sp;
return $rc$0$lcssa | 0;
}
function __gcry_rndlinux_gather_random($add, $origin, $length, $level) {
$add = $add | 0;
$origin = $origin | 0;
$length = $length | 0;
$level = $level | 0;
var $$02 = 0, $$127 = 0, $$127$us = 0, $$2$us = 0, $$lcssa = 0, $$lcssa12 = 0, $$lcssa69 = 0, $1 = 0, $11 = 0, $16 = 0, $21 = 0, $26 = 0, $3 = 0, $34 = 0, $36 = 0, $37 = 0, $38 = 0, $40 = 0, $44 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $65 = 0, $68 = 0, $69 = 0, $74 = 0, $76 = 0, $79 = 0, $80 = 0, $87 = 0, $88 = 0, $9 = 0, $90 = 0, $_vlen$0$lcssa43 = 0, $_vlen$017 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$315 = 0, $_vptr$0$lcssa44 = 0, $_vptr$016 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$314 = 0, $any_need_entropy$0$lcssa = 0, $any_need_entropy$024 = 0, $any_need_entropy$024$us = 0, $any_need_entropy$1 = 0, $any_need_entropy$1$us = 0, $any_need_entropy$2$us = 0, $buffer = 0, $delay$025$us = 0, $delay$2$us = 0, $fd$0 = 0, $last_so_far$023 = 0, $last_so_far$023$us = 0, $last_so_far$1 = 0, $last_so_far$1$us = 0, $n$0 = 0, $n$0$lcssa = 0, $n$0$us = 0, $n$0$us$lcssa = 0, $rfds = 0, $scevgep = 0, $tv = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 944 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$buffer = sp + 168 | 0;
$rfds = sp + 40 | 0;
$tv = sp + 32 | 0;
if (!$add) {
$1 = HEAP32[3164] | 0;
if (($1 | 0) != -1) {
_close($1) | 0;
HEAP32[3164] = -1;
}
$3 = HEAP32[3165] | 0;
if (($3 | 0) == -1) {
STACKTOP = sp;
return 0;
}
_close($3) | 0;
HEAP32[3165] = -1;
STACKTOP = sp;
return 0;
}
$5 = __gcry_rndhw_poll_slow($add, $origin) | 0;
$6 = $length >>> 1;
$9 = $length >>> 0 > 1 ? ($5 >>> 0 > $6 >>> 0 ? $6 : $5) : 0;
$$02 = $length - $9 | 0;
if (($level | 0) > 1) {
$11 = HEAP32[3164] | 0;
if (($11 | 0) == -1) {
$16 = _open_device(52105, (HEAPU8[75758] | 0) & 1) | 0;
HEAP32[3164] = $16;
HEAP8[75758] = HEAPU8[75758] | 0 | 1;
$fd$0 = $16;
} else $fd$0 = $11;
} else {
$21 = HEAP32[3165] | 0;
if (($21 | 0) == -1) {
$26 = _open_device(52117, (HEAPU8[75758] | 0) & 2) | 0;
HEAP32[3165] = $26;
HEAP8[75758] = HEAPU8[75758] | 0 | 2;
$fd$0 = $26;
} else $fd$0 = $21;
}
L17 : do if (($9 | 0) == ($length | 0)) $any_need_entropy$0$lcssa = 0; else {
$34 = 1 << ($fd$0 & 31);
$36 = $rfds + ($fd$0 >>> 5 << 2) | 0;
$37 = $tv + 4 | 0;
$38 = $fd$0 + 1 | 0;
if (($fd$0 | 0) < 1024) {
$$127$us = $$02;
$any_need_entropy$024$us = 0;
$delay$025$us = 0;
$last_so_far$023$us = 0;
} else {
$$127 = $$02;
$any_need_entropy$024 = 0;
$last_so_far$023 = 0;
L20 : while (1) {
$65 = $length - $$127 | 0;
if (($any_need_entropy$024 | 0) == 0 & ($last_so_far$023 | 0) == ($65 | 0)) {
$any_need_entropy$1 = 0;
$last_so_far$1 = $last_so_far$023;
} else {
__gcry_random_progress(52130, 88, $65, $length);
$any_need_entropy$1 = 1;
$last_so_far$1 = $65;
}
$68 = $$127 >>> 0 < 768 ? $$127 : 768;
while (1) {
$69 = _read($fd$0, $buffer, $68) | 0;
if (($69 | 0) > -1 & $69 >>> 0 > $68 >>> 0) {
HEAP32[$vararg_buffer4 >> 2] = $69;
__gcry_log_error(52163, $vararg_buffer4);
$n$0 = $68;
} else $n$0 = $69;
if (($n$0 | 0) != -1) {
$n$0$lcssa = $n$0;
break;
}
$74 = HEAP32[(___errno_location() | 0) >> 2] | 0;
if (($74 | 0) != 4) {
$$lcssa12 = $74;
break L20;
}
}
FUNCTION_TABLE_viii[$add & 7]($buffer, $n$0$lcssa, $origin);
if (($$127 | 0) == ($n$0$lcssa | 0)) {
$any_need_entropy$0$lcssa = $any_need_entropy$1;
break L17;
} else {
$$127 = $$127 - $n$0$lcssa | 0;
$any_need_entropy$024 = $any_need_entropy$1;
$last_so_far$023 = $last_so_far$1;
}
}
$76 = _strerror($$lcssa12) | 0;
HEAP32[$vararg_buffer7 >> 2] = $76;
__gcry_log_fatal(52201, $vararg_buffer7);
}
L33 : while (1) {
$40 = $length - $$127$us | 0;
if (($any_need_entropy$024$us | 0) == 0 & ($last_so_far$023$us | 0) == ($40 | 0)) {
$any_need_entropy$1$us = 0;
$last_so_far$1$us = $last_so_far$023$us;
} else {
__gcry_random_progress(52130, 88, $40, $length);
$any_need_entropy$1$us = 1;
$last_so_far$1$us = $40;
}
dest = $rfds;
stop = dest + 128 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$36 >> 2] = HEAP32[$36 >> 2] | $34;
HEAP32[$tv >> 2] = $delay$025$us;
$44 = ($delay$025$us | 0) != 0;
HEAP32[$37 >> 2] = $44 ? 0 : 1e5;
switch (_select($38, $rfds, 0, 0, $tv) | 0) {
case 0:
{
$$2$us = $$127$us;
$any_need_entropy$2$us = 1;
$delay$2$us = 3;
break;
}
case -1:
{
HEAP32[$vararg_buffer >> 2] = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
__gcry_log_error(52143, $vararg_buffer);
$$2$us = $$127$us;
$any_need_entropy$2$us = $any_need_entropy$1$us;
$delay$2$us = $44 ? $delay$025$us : 1;
break;
}
default:
{
$50 = $$127$us >>> 0 < 768 ? $$127$us : 768;
while (1) {
$51 = _read($fd$0, $buffer, $50) | 0;
if (($51 | 0) > -1 & $51 >>> 0 > $50 >>> 0) {
HEAP32[$vararg_buffer1 >> 2] = $51;
__gcry_log_error(52163, $vararg_buffer1);
$n$0$us = $50;
} else $n$0$us = $51;
if (($n$0$us | 0) != -1) {
$n$0$us$lcssa = $n$0$us;
break;
}
$58 = HEAP32[(___errno_location() | 0) >> 2] | 0;
if (($58 | 0) != 4) {
$$lcssa12 = $58;
break L33;
}
}
FUNCTION_TABLE_viii[$add & 7]($buffer, $n$0$us$lcssa, $origin);
$$2$us = $$127$us - $n$0$us$lcssa | 0;
$any_need_entropy$2$us = $any_need_entropy$1$us;
$delay$2$us = $delay$025$us;
}
}
if (!$$2$us) {
$any_need_entropy$0$lcssa = $any_need_entropy$2$us;
break L17;
} else {
$$127$us = $$2$us;
$any_need_entropy$024$us = $any_need_entropy$2$us;
$delay$025$us = $delay$2$us;
$last_so_far$023$us = $last_so_far$1$us;
}
}
$76 = _strerror($$lcssa12) | 0;
HEAP32[$vararg_buffer7 >> 2] = $76;
__gcry_log_fatal(52201, $vararg_buffer7);
} while (0);
if (!($buffer & 7)) {
$_vlen$0$lcssa43 = 768;
$_vptr$0$lcssa44 = $buffer;
label = 36;
} else {
$_vlen$017 = 768;
$_vptr$016 = $buffer;
while (1) {
HEAP8[$_vptr$016 >> 0] = 0;
$79 = $_vptr$016 + 1 | 0;
$80 = $_vlen$017 + -1 | 0;
if (($80 | 0) != 0 & ($79 & 7 | 0) != 0) {
$_vlen$017 = $80;
$_vptr$016 = $79;
} else {
$$lcssa = $79;
$$lcssa69 = $80;
break;
}
}
if ($$lcssa69 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa69;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa43 = $$lcssa69;
$_vptr$0$lcssa44 = $$lcssa;
label = 36;
}
}
if ((label | 0) == 36) {
$87 = $_vlen$0$lcssa43 + -8 | 0;
$88 = $87 & -8;
$scevgep = $_vptr$0$lcssa44 + ($88 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa43;
$_vptr$1 = $_vptr$0$lcssa44;
while (1) {
$90 = $_vptr$1;
HEAP32[$90 >> 2] = 0;
HEAP32[$90 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $87 - $88 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$315 = $_vlen$3$ph;
$_vptr$314 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$314 >> 0] = 0;
$_vlen$315 = $_vlen$315 + -1 | 0;
if (!$_vlen$315) break; else $_vptr$314 = $_vptr$314 + 1 | 0;
}
}
if (!$any_need_entropy$0$lcssa) {
STACKTOP = sp;
return 0;
}
__gcry_random_progress(52130, 88, $length, $length);
STACKTOP = sp;
return 0;
}
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, $$0$us = 0, $$01 = 0, $$01$i = 0, $$01$i$7 = 0, $$01$i$7$us = 0, $$01$us = 0, $$02$i = 0, $$02$i$6 = 0, $$02$i$6$us = 0, $$03 = 0, $$03$us = 0, $$04$i = 0, $$04$i$5 = 0, $$04$i$5$us = 0, $$1 = 0, $$1$i = 0, $$1$i$11 = 0, $$1$i$11$us = 0, $$12 = 0, $$13$i = 0, $$13$i$10 = 0, $$13$i$10$us = 0, $$14 = 0, $$15$i = 0, $$15$i$9 = 0, $$15$i$9$us = 0, $0 = 0, $1 = 0, $102 = 0, $104 = 0, $106 = 0, $108 = 0, $109 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $117 = 0, $119 = 0, $121 = 0, $122 = 0, $126 = 0, $131 = 0, $15 = 0, $16 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $24 = 0, $25 = 0, $32 = 0, $39 = 0, $40 = 0, $42 = 0, $44 = 0, $45 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $53 = 0, $55 = 0, $57 = 0, $58 = 0, $62 = 0, $67 = 0, $68 = 0, $71 = 0, $73 = 0, $74 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $82 = 0, $84 = 0, $86 = 0, $87 = 0, $91 = 0, $96 = 0, $97 = 0, $i$011$i = 0, $i$011$i$15 = 0, $i$011$i$15$us = 0, label = 0;
$0 = $ctx + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!$1) label = 4; else if ((HEAP32[$ctx + 12 >> 2] | 0) < ($vsize | 0)) {
__gcry_mpi_free_limb_space($1, HEAP32[$ctx + 8 >> 2] | 0);
label = 4;
} else $19 = $1;
if ((label | 0) == 4) {
$8 = $vsize << 1;
HEAP32[$ctx + 8 >> 2] = $8;
if (!(__gcry_is_secure($up) | 0)) $15 = (__gcry_is_secure($vp) | 0) != 0; else $15 = 1;
$16 = __gcry_mpi_alloc_limb_space($8, $15 & 1) | 0;
HEAP32[$0 >> 2] = $16;
HEAP32[$ctx + 12 >> 2] = $vsize;
$19 = $16;
}
$18 = ($vsize | 0) < 16;
if ($18) _mul_n_basecase($prodp, $up, $vp, $vsize); else _mul_n($prodp, $up, $vp, $vsize, $19);
$20 = $prodp + ($vsize << 2) | 0;
$21 = $up + ($vsize << 2) | 0;
$22 = $usize - $vsize | 0;
if (($22 | 0) < ($vsize | 0)) {
$$1 = $20;
$$12 = $21;
$$14 = $22;
} else {
$24 = $ctx + 16 | 0;
$25 = HEAP32[$24 >> 2] | 0;
if (!$25) label = 14; else if ((HEAP32[$ctx + 24 >> 2] | 0) < ($vsize | 0)) {
__gcry_mpi_free_limb_space($25, HEAP32[$ctx + 20 >> 2] | 0);
label = 14;
} else $131 = $25;
if ((label | 0) == 14) {
$32 = $vsize << 1;
HEAP32[$ctx + 20 >> 2] = $32;
if (!(__gcry_is_secure($21) | 0)) $39 = (__gcry_is_secure($vp) | 0) != 0; else $39 = 1;
$40 = __gcry_mpi_alloc_limb_space($32, $39 & 1) | 0;
HEAP32[$24 >> 2] = $40;
HEAP32[$ctx + 24 >> 2] = $vsize;
$131 = $40;
}
if ($18) {
$$0$us = $20;
$$01$us = $21;
$$03$us = $22;
$42 = $131;
while (1) {
_mul_n_basecase($42, $$01$us, $vp, $vsize);
$44 = __gcry_mpih_add_n($$0$us, $$0$us, HEAP32[$24 >> 2] | 0, $vsize) | 0;
$45 = $$0$us + ($vsize << 2) | 0;
$42 = HEAP32[$24 >> 2] | 0;
$47 = $42 + ($vsize << 2) | 0;
$48 = $47 + 4 | 0;
$49 = HEAP32[$47 >> 2] | 0;
$50 = $49 + $44 | 0;
$51 = $45 + 4 | 0;
HEAP32[$45 >> 2] = $50;
L28 : do if ($50 >>> 0 < $49 >>> 0) {
$$01$i$7$us = $vsize;
$$02$i$6$us = $48;
$$04$i$5$us = $51;
while (1) {
$53 = $$01$i$7$us + -1 | 0;
if (!$53) break L28;
$55 = $$02$i$6$us + 4 | 0;
$57 = (HEAP32[$$02$i$6$us >> 2] | 0) + 1 | 0;
$58 = $$04$i$5$us + 4 | 0;
HEAP32[$$04$i$5$us >> 2] = $57;
if (!$57) {
$$01$i$7$us = $53;
$$02$i$6$us = $55;
$$04$i$5$us = $58;
} else {
$$1$i$11$us = $53;
$$13$i$10$us = $55;
$$15$i$9$us = $58;
label = 21;
break;
}
}
} else {
$$1$i$11$us = $vsize;
$$13$i$10$us = $48;
$$15$i$9$us = $51;
label = 21;
} while (0);
if ((label | 0) == 21) {
label = 0;
if (($$15$i$9$us | 0) != ($$13$i$10$us | 0) & ($$1$i$11$us | 0) > 1) {
$62 = $$1$i$11$us + -1 | 0;
$i$011$i$15$us = 0;
do {
HEAP32[$$15$i$9$us + ($i$011$i$15$us << 2) >> 2] = HEAP32[$$13$i$10$us + ($i$011$i$15$us << 2) >> 2];
$i$011$i$15$us = $i$011$i$15$us + 1 | 0;
} while (($i$011$i$15$us | 0) != ($62 | 0));
}
}
$67 = $$01$us + ($vsize << 2) | 0;
$68 = $$03$us - $vsize | 0;
if (($68 | 0) < ($vsize | 0)) {
$$1 = $45;
$$12 = $67;
$$14 = $68;
break;
} else {
$$0$us = $45;
$$01$us = $67;
$$03$us = $68;
}
}
} else {
$$0 = $20;
$$01 = $21;
$$03 = $22;
$71 = $131;
while (1) {
_mul_n($71, $$01, $vp, $vsize, HEAP32[$0 >> 2] | 0);
$73 = __gcry_mpih_add_n($$0, $$0, HEAP32[$24 >> 2] | 0, $vsize) | 0;
$74 = $$0 + ($vsize << 2) | 0;
$71 = HEAP32[$24 >> 2] | 0;
$76 = $71 + ($vsize << 2) | 0;
$77 = $76 + 4 | 0;
$78 = HEAP32[$76 >> 2] | 0;
$79 = $78 + $73 | 0;
$80 = $74 + 4 | 0;
HEAP32[$74 >> 2] = $79;
L40 : do if ($79 >>> 0 < $78 >>> 0) {
$$01$i$7 = $vsize;
$$02$i$6 = $77;
$$04$i$5 = $80;
while (1) {
$82 = $$01$i$7 + -1 | 0;
if (!$82) break L40;
$84 = $$02$i$6 + 4 | 0;
$86 = (HEAP32[$$02$i$6 >> 2] | 0) + 1 | 0;
$87 = $$04$i$5 + 4 | 0;
HEAP32[$$04$i$5 >> 2] = $86;
if (!$86) {
$$01$i$7 = $82;
$$02$i$6 = $84;
$$04$i$5 = $87;
} else {
$$1$i$11 = $82;
$$13$i$10 = $84;
$$15$i$9 = $87;
label = 28;
break;
}
}
} else {
$$1$i$11 = $vsize;
$$13$i$10 = $77;
$$15$i$9 = $80;
label = 28;
} while (0);
if ((label | 0) == 28) {
label = 0;
if (($$15$i$9 | 0) != ($$13$i$10 | 0) & ($$1$i$11 | 0) > 1) {
$91 = $$1$i$11 + -1 | 0;
$i$011$i$15 = 0;
do {
HEAP32[$$15$i$9 + ($i$011$i$15 << 2) >> 2] = HEAP32[$$13$i$10 + ($i$011$i$15 << 2) >> 2];
$i$011$i$15 = $i$011$i$15 + 1 | 0;
} while (($i$011$i$15 | 0) != ($91 | 0));
}
}
$96 = $$01 + ($vsize << 2) | 0;
$97 = $$03 - $vsize | 0;
if (($97 | 0) < ($vsize | 0)) {
$$1 = $74;
$$12 = $96;
$$14 = $97;
break;
} else {
$$0 = $74;
$$01 = $96;
$$03 = $97;
}
}
}
}
if (!$$14) return;
if (($$14 | 0) < 16) __gcry_mpih_mul(HEAP32[$0 >> 2] | 0, $vp, $vsize, $$12, $$14) | 0; else {
$102 = HEAP32[$ctx >> 2] | 0;
if (!$102) {
$104 = __gcry_xcalloc(1, 28) | 0;
HEAP32[$ctx >> 2] = $104;
$106 = $104;
} else $106 = $102;
__gcry_mpih_mul_karatsuba_case(HEAP32[$0 >> 2] | 0, $vp, $vsize, $$12, $$14, $106);
}
$108 = __gcry_mpih_add_n($$1, $$1, HEAP32[$0 >> 2] | 0, $vsize) | 0;
$109 = $$1 + ($vsize << 2) | 0;
$111 = (HEAP32[$0 >> 2] | 0) + ($vsize << 2) | 0;
$112 = $111 + 4 | 0;
$113 = HEAP32[$111 >> 2] | 0;
$114 = $113 + $108 | 0;
$115 = $109 + 4 | 0;
HEAP32[$109 >> 2] = $114;
L61 : do if ($114 >>> 0 < $113 >>> 0) {
$$01$i = $$14;
$$02$i = $112;
$$04$i = $115;
while (1) {
$117 = $$01$i + -1 | 0;
if (!$117) break;
$119 = $$02$i + 4 | 0;
$121 = (HEAP32[$$02$i >> 2] | 0) + 1 | 0;
$122 = $$04$i + 4 | 0;
HEAP32[$$04$i >> 2] = $121;
if (!$121) {
$$01$i = $117;
$$02$i = $119;
$$04$i = $122;
} else {
$$1$i = $117;
$$13$i = $119;
$$15$i = $122;
break L61;
}
}
return;
} else {
$$1$i = $$14;
$$13$i = $112;
$$15$i = $115;
} while (0);
if (!(($$15$i | 0) != ($$13$i | 0) & ($$1$i | 0) > 1)) return;
$126 = $$1$i + -1 | 0;
$i$011$i = 0;
do {
HEAP32[$$15$i + ($i$011$i << 2) >> 2] = HEAP32[$$13$i + ($i$011$i << 2) >> 2];
$i$011$i = $i$011$i + 1 | 0;
} while (($i$011$i | 0) != ($126 | 0));
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 $$07 = 0, $$07$us = 0, $$lcssa = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $149 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $256 = 0, $27 = 0, $4 = 0, $7 = 0, $8 = 0, $9 = 0, $burn_depth$0$lcssa = 0, $inbuf$05 = 0, $inbuf$05$us = 0, $last_iv$0$lcssa = 0, $last_iv$06 = 0, $last_iv$06$us = 0, $last_iv$06$us$phi = 0, $outbuf$04$us = 0;
$1 = HEAP32[$context + 496 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
$4 = HEAP32[$context + 488 >> 2] | 0;
if (!$nblocks) return;
if (!$cbc_mac) {
$27 = ($nblocks << 4) + -16 | 0;
$$07$us = $nblocks;
$inbuf$05$us = $inbuf_arg;
$last_iv$06$us = $iv;
$outbuf$04$us = $outbuf_arg;
while (1) {
if (!(($inbuf$05$us | $outbuf$04$us | $last_iv$06$us) & 3)) {
HEAP32[$outbuf$04$us >> 2] = HEAP32[$last_iv$06$us >> 2] ^ HEAP32[$inbuf$05$us >> 2];
HEAP32[$outbuf$04$us + 4 >> 2] = HEAP32[$last_iv$06$us + 4 >> 2] ^ HEAP32[$inbuf$05$us + 4 >> 2];
HEAP32[$outbuf$04$us + 8 >> 2] = HEAP32[$last_iv$06$us + 8 >> 2] ^ HEAP32[$inbuf$05$us + 8 >> 2];
HEAP32[$outbuf$04$us + 12 >> 2] = HEAP32[$last_iv$06$us + 12 >> 2] ^ HEAP32[$inbuf$05$us + 12 >> 2];
} else {
HEAP8[$outbuf$04$us >> 0] = HEAP8[$last_iv$06$us >> 0] ^ HEAP8[$inbuf$05$us >> 0];
HEAP8[$outbuf$04$us + 1 >> 0] = HEAP8[$last_iv$06$us + 1 >> 0] ^ HEAP8[$inbuf$05$us + 1 >> 0];
HEAP8[$outbuf$04$us + 2 >> 0] = HEAP8[$last_iv$06$us + 2 >> 0] ^ HEAP8[$inbuf$05$us + 2 >> 0];
HEAP8[$outbuf$04$us + 3 >> 0] = HEAP8[$last_iv$06$us + 3 >> 0] ^ HEAP8[$inbuf$05$us + 3 >> 0];
HEAP8[$outbuf$04$us + 4 >> 0] = HEAP8[$last_iv$06$us + 4 >> 0] ^ HEAP8[$inbuf$05$us + 4 >> 0];
HEAP8[$outbuf$04$us + 5 >> 0] = HEAP8[$last_iv$06$us + 5 >> 0] ^ HEAP8[$inbuf$05$us + 5 >> 0];
HEAP8[$outbuf$04$us + 6 >> 0] = HEAP8[$last_iv$06$us + 6 >> 0] ^ HEAP8[$inbuf$05$us + 6 >> 0];
HEAP8[$outbuf$04$us + 7 >> 0] = HEAP8[$last_iv$06$us + 7 >> 0] ^ HEAP8[$inbuf$05$us + 7 >> 0];
HEAP8[$outbuf$04$us + 8 >> 0] = HEAP8[$last_iv$06$us + 8 >> 0] ^ HEAP8[$inbuf$05$us + 8 >> 0];
HEAP8[$outbuf$04$us + 9 >> 0] = HEAP8[$last_iv$06$us + 9 >> 0] ^ HEAP8[$inbuf$05$us + 9 >> 0];
HEAP8[$outbuf$04$us + 10 >> 0] = HEAP8[$last_iv$06$us + 10 >> 0] ^ HEAP8[$inbuf$05$us + 10 >> 0];
HEAP8[$outbuf$04$us + 11 >> 0] = HEAP8[$last_iv$06$us + 11 >> 0] ^ HEAP8[$inbuf$05$us + 11 >> 0];
HEAP8[$outbuf$04$us + 12 >> 0] = HEAP8[$last_iv$06$us + 12 >> 0] ^ HEAP8[$inbuf$05$us + 12 >> 0];
HEAP8[$outbuf$04$us + 13 >> 0] = HEAP8[$last_iv$06$us + 13 >> 0] ^ HEAP8[$inbuf$05$us + 13 >> 0];
HEAP8[$outbuf$04$us + 14 >> 0] = HEAP8[$last_iv$06$us + 14 >> 0] ^ HEAP8[$inbuf$05$us + 14 >> 0];
HEAP8[$outbuf$04$us + 15 >> 0] = HEAP8[$last_iv$06$us + 15 >> 0] ^ HEAP8[$inbuf$05$us + 15 >> 0];
}
$149 = FUNCTION_TABLE_iiii[$4 & 63]($context, $outbuf$04$us, $outbuf$04$us) | 0;
$$07$us = $$07$us + -1 | 0;
if (!$$07$us) {
$$lcssa = $149;
break;
} else {
$last_iv$06$us$phi = $outbuf$04$us;
$inbuf$05$us = $inbuf$05$us + 16 | 0;
$outbuf$04$us = $outbuf$04$us + 16 | 0;
$last_iv$06$us = $last_iv$06$us$phi;
}
}
$burn_depth$0$lcssa = $$lcssa;
$last_iv$0$lcssa = $outbuf_arg + $27 | 0;
} else {
$7 = $outbuf_arg;
$8 = $outbuf_arg + 4 | 0;
$9 = $outbuf_arg + 8 | 0;
$10 = $outbuf_arg + 12 | 0;
$11 = $outbuf_arg + 1 | 0;
$12 = $outbuf_arg + 2 | 0;
$13 = $outbuf_arg + 3 | 0;
$14 = $outbuf_arg + 4 | 0;
$15 = $outbuf_arg + 5 | 0;
$16 = $outbuf_arg + 6 | 0;
$17 = $outbuf_arg + 7 | 0;
$18 = $outbuf_arg + 8 | 0;
$19 = $outbuf_arg + 9 | 0;
$20 = $outbuf_arg + 10 | 0;
$21 = $outbuf_arg + 11 | 0;
$22 = $outbuf_arg + 12 | 0;
$23 = $outbuf_arg + 13 | 0;
$24 = $outbuf_arg + 14 | 0;
$25 = $outbuf_arg + 15 | 0;
$$07 = $nblocks;
$inbuf$05 = $inbuf_arg;
$last_iv$06 = $iv;
while (1) {
if (!(($inbuf$05 | $7 | $last_iv$06) & 3)) {
HEAP32[$outbuf_arg >> 2] = HEAP32[$last_iv$06 >> 2] ^ HEAP32[$inbuf$05 >> 2];
HEAP32[$8 >> 2] = HEAP32[$last_iv$06 + 4 >> 2] ^ HEAP32[$inbuf$05 + 4 >> 2];
HEAP32[$9 >> 2] = HEAP32[$last_iv$06 + 8 >> 2] ^ HEAP32[$inbuf$05 + 8 >> 2];
HEAP32[$10 >> 2] = HEAP32[$last_iv$06 + 12 >> 2] ^ HEAP32[$inbuf$05 + 12 >> 2];
} else {
HEAP8[$outbuf_arg >> 0] = HEAP8[$last_iv$06 >> 0] ^ HEAP8[$inbuf$05 >> 0];
HEAP8[$11 >> 0] = HEAP8[$last_iv$06 + 1 >> 0] ^ HEAP8[$inbuf$05 + 1 >> 0];
HEAP8[$12 >> 0] = HEAP8[$last_iv$06 + 2 >> 0] ^ HEAP8[$inbuf$05 + 2 >> 0];
HEAP8[$13 >> 0] = HEAP8[$last_iv$06 + 3 >> 0] ^ HEAP8[$inbuf$05 + 3 >> 0];
HEAP8[$14 >> 0] = HEAP8[$last_iv$06 + 4 >> 0] ^ HEAP8[$inbuf$05 + 4 >> 0];
HEAP8[$15 >> 0] = HEAP8[$last_iv$06 + 5 >> 0] ^ HEAP8[$inbuf$05 + 5 >> 0];
HEAP8[$16 >> 0] = HEAP8[$last_iv$06 + 6 >> 0] ^ HEAP8[$inbuf$05 + 6 >> 0];
HEAP8[$17 >> 0] = HEAP8[$last_iv$06 + 7 >> 0] ^ HEAP8[$inbuf$05 + 7 >> 0];
HEAP8[$18 >> 0] = HEAP8[$last_iv$06 + 8 >> 0] ^ HEAP8[$inbuf$05 + 8 >> 0];
HEAP8[$19 >> 0] = HEAP8[$last_iv$06 + 9 >> 0] ^ HEAP8[$inbuf$05 + 9 >> 0];
HEAP8[$20 >> 0] = HEAP8[$last_iv$06 + 10 >> 0] ^ HEAP8[$inbuf$05 + 10 >> 0];
HEAP8[$21 >> 0] = HEAP8[$last_iv$06 + 11 >> 0] ^ HEAP8[$inbuf$05 + 11 >> 0];
HEAP8[$22 >> 0] = HEAP8[$last_iv$06 + 12 >> 0] ^ HEAP8[$inbuf$05 + 12 >> 0];
HEAP8[$23 >> 0] = HEAP8[$last_iv$06 + 13 >> 0] ^ HEAP8[$inbuf$05 + 13 >> 0];
HEAP8[$24 >> 0] = HEAP8[$last_iv$06 + 14 >> 0] ^ HEAP8[$inbuf$05 + 14 >> 0];
HEAP8[$25 >> 0] = HEAP8[$last_iv$06 + 15 >> 0] ^ HEAP8[$inbuf$05 + 15 >> 0];
}
$256 = FUNCTION_TABLE_iiii[$4 & 63]($context, $outbuf_arg, $outbuf_arg) | 0;
$$07 = $$07 + -1 | 0;
if (!$$07) {
$burn_depth$0$lcssa = $256;
$last_iv$0$lcssa = $outbuf_arg;
break;
} else {
$inbuf$05 = $inbuf$05 + 16 | 0;
$last_iv$06 = $outbuf_arg;
}
}
}
do if (($last_iv$0$lcssa | 0) != ($iv | 0)) if (!(($last_iv$0$lcssa | $iv) & 3)) {
HEAP32[$iv >> 2] = HEAP32[$last_iv$0$lcssa >> 2];
HEAP32[$iv + 4 >> 2] = HEAP32[$last_iv$0$lcssa + 4 >> 2];
HEAP32[$iv + 8 >> 2] = HEAP32[$last_iv$0$lcssa + 8 >> 2];
HEAP32[$iv + 12 >> 2] = HEAP32[$last_iv$0$lcssa + 12 >> 2];
break;
} else {
HEAP8[$iv >> 0] = HEAP8[$last_iv$0$lcssa >> 0] | 0;
HEAP8[$iv + 1 >> 0] = HEAP8[$last_iv$0$lcssa + 1 >> 0] | 0;
HEAP8[$iv + 2 >> 0] = HEAP8[$last_iv$0$lcssa + 2 >> 0] | 0;
HEAP8[$iv + 3 >> 0] = HEAP8[$last_iv$0$lcssa + 3 >> 0] | 0;
HEAP8[$iv + 4 >> 0] = HEAP8[$last_iv$0$lcssa + 4 >> 0] | 0;
HEAP8[$iv + 5 >> 0] = HEAP8[$last_iv$0$lcssa + 5 >> 0] | 0;
HEAP8[$iv + 6 >> 0] = HEAP8[$last_iv$0$lcssa + 6 >> 0] | 0;
HEAP8[$iv + 7 >> 0] = HEAP8[$last_iv$0$lcssa + 7 >> 0] | 0;
HEAP8[$iv + 8 >> 0] = HEAP8[$last_iv$0$lcssa + 8 >> 0] | 0;
HEAP8[$iv + 9 >> 0] = HEAP8[$last_iv$0$lcssa + 9 >> 0] | 0;
HEAP8[$iv + 10 >> 0] = HEAP8[$last_iv$0$lcssa + 10 >> 0] | 0;
HEAP8[$iv + 11 >> 0] = HEAP8[$last_iv$0$lcssa + 11 >> 0] | 0;
HEAP8[$iv + 12 >> 0] = HEAP8[$last_iv$0$lcssa + 12 >> 0] | 0;
HEAP8[$iv + 13 >> 0] = HEAP8[$last_iv$0$lcssa + 13 >> 0] | 0;
HEAP8[$iv + 14 >> 0] = HEAP8[$last_iv$0$lcssa + 14 >> 0] | 0;
HEAP8[$iv + 15 >> 0] = HEAP8[$last_iv$0$lcssa + 15 >> 0] | 0;
break;
} while (0);
if (!$burn_depth$0$lcssa) return;
___gcry_burn_stack($burn_depth$0$lcssa + 16 | 0);
return;
}
function _poly1305_blocks_ref32($state, $m, $bytes) {
$state = $state | 0;
$m = $m | 0;
$bytes = $bytes | 0;
var $$010 = 0, $$019 = 0, $11 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $116 = 0, $117 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $124 = 0, $125 = 0, $126 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $134 = 0, $135 = 0, $136 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $142 = 0, $143 = 0, $144 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $152 = 0, $153 = 0, $154 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $174 = 0, $175 = 0, $176 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $192 = 0, $193 = 0, $194 = 0, $196 = 0, $197 = 0, $198 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $212 = 0, $214 = 0, $215 = 0, $217 = 0, $219 = 0, $220 = 0, $222 = 0, $224 = 0, $225 = 0, $228 = 0, $229 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $30 = 0, $43 = 0, $46 = 0, $5 = 0, $61 = 0, $64 = 0, $7 = 0, $79 = 0, $9 = 0, $96 = 0, $h0$0$lcssa = 0, $h0$08 = 0, $h1$0$lcssa = 0, $h1$07 = 0, $h2$0$lcssa = 0, $h2$06 = 0, $h3$0$lcssa = 0, $h3$05 = 0, $h4$0$lcssa = 0, $h4$04 = 0;
$3 = (HEAP8[$state + 56 >> 0] | 0) != 0 ? 0 : 16777216;
$5 = HEAP32[$state + 4 >> 2] | 0;
$7 = HEAP32[$state + 8 >> 2] | 0;
$9 = HEAP32[$state + 12 >> 2] | 0;
$11 = HEAP32[$state + 16 >> 2] | 0;
$12 = $state + 20 | 0;
$13 = HEAP32[$12 >> 2] | 0;
$14 = $state + 24 | 0;
$15 = HEAP32[$14 >> 2] | 0;
$16 = $state + 28 | 0;
$17 = HEAP32[$16 >> 2] | 0;
$18 = $state + 32 | 0;
$19 = HEAP32[$18 >> 2] | 0;
$20 = $state + 36 | 0;
$21 = HEAP32[$20 >> 2] | 0;
if ($bytes >>> 0 <= 15) {
$h0$0$lcssa = $13;
$h1$0$lcssa = $15;
$h2$0$lcssa = $17;
$h3$0$lcssa = $19;
$h4$0$lcssa = $21;
HEAP32[$12 >> 2] = $h0$0$lcssa;
HEAP32[$14 >> 2] = $h1$0$lcssa;
HEAP32[$16 >> 2] = $h2$0$lcssa;
HEAP32[$18 >> 2] = $h3$0$lcssa;
HEAP32[$20 >> 2] = $h4$0$lcssa;
return 124;
}
$23 = $11 * 5 | 0;
$24 = $9 * 5 | 0;
$25 = $7 * 5 | 0;
$26 = $5 * 5 | 0;
$27 = HEAP32[$state >> 2] | 0;
$$010 = $m;
$$019 = $bytes;
$h0$08 = $13;
$h1$07 = $15;
$h2$06 = $17;
$h3$05 = $19;
$h4$04 = $21;
while (1) {
$30 = HEAPU8[$$010 + 3 >> 0] | 0;
$43 = (HEAPU8[$$010 + 2 >> 0] << 16 | $30 << 24 & 50331648 | HEAPU8[$$010 + 1 >> 0] << 8 | HEAPU8[$$010 >> 0]) + $h0$08 | 0;
$46 = HEAPU8[$$010 + 6 >> 0] | 0;
$61 = (($46 << 24 | $30 | HEAPU8[$$010 + 5 >> 0] << 16 | HEAPU8[$$010 + 4 >> 0] << 8) >>> 2 & 67108863) + $h1$07 | 0;
$64 = HEAPU8[$$010 + 9 >> 0] | 0;
$79 = ((HEAPU8[$$010 + 8 >> 0] << 16 | $64 << 24 | HEAPU8[$$010 + 7 >> 0] << 8 | $46) >>> 4 & 67108863) + $h2$06 | 0;
$96 = ((HEAPU8[$$010 + 11 >> 0] << 16 | HEAPU8[$$010 + 12 >> 0] << 24 | HEAPU8[$$010 + 10 >> 0] << 8 | $64) >>> 6) + $h3$05 | 0;
$111 = (HEAPU8[$$010 + 15 >> 0] << 16 | $3 | HEAPU8[$$010 + 14 >> 0] << 8 | HEAPU8[$$010 + 13 >> 0]) + $h4$04 | 0;
$112 = ___muldi3($43 | 0, 0, $27 | 0, 0) | 0;
$113 = tempRet0;
$114 = ___muldi3($61 | 0, 0, $23 | 0, 0) | 0;
$116 = _i64Add($114 | 0, tempRet0 | 0, $112 | 0, $113 | 0) | 0;
$117 = tempRet0;
$118 = ___muldi3($79 | 0, 0, $24 | 0, 0) | 0;
$120 = _i64Add($116 | 0, $117 | 0, $118 | 0, tempRet0 | 0) | 0;
$121 = tempRet0;
$122 = ___muldi3($96 | 0, 0, $25 | 0, 0) | 0;
$124 = _i64Add($120 | 0, $121 | 0, $122 | 0, tempRet0 | 0) | 0;
$125 = tempRet0;
$126 = ___muldi3($111 | 0, 0, $26 | 0, 0) | 0;
$128 = _i64Add($124 | 0, $125 | 0, $126 | 0, tempRet0 | 0) | 0;
$129 = tempRet0;
$130 = ___muldi3($43 | 0, 0, $5 | 0, 0) | 0;
$131 = tempRet0;
$132 = ___muldi3($61 | 0, 0, $27 | 0, 0) | 0;
$134 = _i64Add($132 | 0, tempRet0 | 0, $130 | 0, $131 | 0) | 0;
$135 = tempRet0;
$136 = ___muldi3($79 | 0, 0, $23 | 0, 0) | 0;
$138 = _i64Add($134 | 0, $135 | 0, $136 | 0, tempRet0 | 0) | 0;
$139 = tempRet0;
$140 = ___muldi3($96 | 0, 0, $24 | 0, 0) | 0;
$142 = _i64Add($138 | 0, $139 | 0, $140 | 0, tempRet0 | 0) | 0;
$143 = tempRet0;
$144 = ___muldi3($111 | 0, 0, $25 | 0, 0) | 0;
$146 = _i64Add($142 | 0, $143 | 0, $144 | 0, tempRet0 | 0) | 0;
$147 = tempRet0;
$148 = ___muldi3($43 | 0, 0, $7 | 0, 0) | 0;
$149 = tempRet0;
$150 = ___muldi3($61 | 0, 0, $5 | 0, 0) | 0;
$152 = _i64Add($150 | 0, tempRet0 | 0, $148 | 0, $149 | 0) | 0;
$153 = tempRet0;
$154 = ___muldi3($79 | 0, 0, $27 | 0, 0) | 0;
$156 = _i64Add($152 | 0, $153 | 0, $154 | 0, tempRet0 | 0) | 0;
$157 = tempRet0;
$158 = ___muldi3($96 | 0, 0, $23 | 0, 0) | 0;
$160 = _i64Add($156 | 0, $157 | 0, $158 | 0, tempRet0 | 0) | 0;
$161 = tempRet0;
$162 = ___muldi3($111 | 0, 0, $24 | 0, 0) | 0;
$164 = _i64Add($160 | 0, $161 | 0, $162 | 0, tempRet0 | 0) | 0;
$165 = tempRet0;
$166 = ___muldi3($43 | 0, 0, $9 | 0, 0) | 0;
$167 = tempRet0;
$168 = ___muldi3($61 | 0, 0, $7 | 0, 0) | 0;
$170 = _i64Add($168 | 0, tempRet0 | 0, $166 | 0, $167 | 0) | 0;
$171 = tempRet0;
$172 = ___muldi3($79 | 0, 0, $5 | 0, 0) | 0;
$174 = _i64Add($170 | 0, $171 | 0, $172 | 0, tempRet0 | 0) | 0;
$175 = tempRet0;
$176 = ___muldi3($96 | 0, 0, $27 | 0, 0) | 0;
$178 = _i64Add($174 | 0, $175 | 0, $176 | 0, tempRet0 | 0) | 0;
$179 = tempRet0;
$180 = ___muldi3($111 | 0, 0, $23 | 0, 0) | 0;
$182 = _i64Add($178 | 0, $179 | 0, $180 | 0, tempRet0 | 0) | 0;
$183 = tempRet0;
$184 = ___muldi3($43 | 0, 0, $11 | 0, 0) | 0;
$185 = tempRet0;
$186 = ___muldi3($61 | 0, 0, $9 | 0, 0) | 0;
$188 = _i64Add($186 | 0, tempRet0 | 0, $184 | 0, $185 | 0) | 0;
$189 = tempRet0;
$190 = ___muldi3($79 | 0, 0, $7 | 0, 0) | 0;
$192 = _i64Add($188 | 0, $189 | 0, $190 | 0, tempRet0 | 0) | 0;
$193 = tempRet0;
$194 = ___muldi3($96 | 0, 0, $5 | 0, 0) | 0;
$196 = _i64Add($192 | 0, $193 | 0, $194 | 0, tempRet0 | 0) | 0;
$197 = tempRet0;
$198 = ___muldi3($111 | 0, 0, $27 | 0, 0) | 0;
$200 = _i64Add($196 | 0, $197 | 0, $198 | 0, tempRet0 | 0) | 0;
$201 = tempRet0;
$202 = _bitshift64Lshr($128 | 0, $129 | 0, 26) | 0;
$205 = _i64Add($146 | 0, $147 | 0, $202 | 0, 0) | 0;
$207 = _bitshift64Lshr($205 | 0, tempRet0 | 0, 26) | 0;
$210 = _i64Add($164 | 0, $165 | 0, $207 | 0, 0) | 0;
$212 = _bitshift64Lshr($210 | 0, tempRet0 | 0, 26) | 0;
$214 = $210 & 67108863;
$215 = _i64Add($182 | 0, $183 | 0, $212 | 0, 0) | 0;
$217 = _bitshift64Lshr($215 | 0, tempRet0 | 0, 26) | 0;
$219 = $215 & 67108863;
$220 = _i64Add($200 | 0, $201 | 0, $217 | 0, 0) | 0;
$222 = _bitshift64Lshr($220 | 0, tempRet0 | 0, 26) | 0;
$224 = $220 & 67108863;
$225 = $222 * 5 | 0;
$228 = $225 + $128 & 67108863;
$229 = (($225 + ($128 & 67108863) | 0) >>> 26) + ($205 & 67108863) | 0;
$$019 = $$019 + -16 | 0;
if ($$019 >>> 0 <= 15) {
$h0$0$lcssa = $228;
$h1$0$lcssa = $229;
$h2$0$lcssa = $214;
$h3$0$lcssa = $219;
$h4$0$lcssa = $224;
break;
} else {
$$010 = $$010 + 16 | 0;
$h0$08 = $228;
$h1$07 = $229;
$h2$06 = $214;
$h3$05 = $219;
$h4$04 = $224;
}
}
HEAP32[$12 >> 2] = $h0$0$lcssa;
HEAP32[$14 >> 2] = $h1$0$lcssa;
HEAP32[$16 >> 2] = $h2$0$lcssa;
HEAP32[$18 >> 2] = $h3$0$lcssa;
HEAP32[$20 >> 2] = $h4$0$lcssa;
return 124;
}
function __gcry_secmem_free_internal($a) {
$a = $a | 0;
var $$0$i = 0, $$pre$phiZ2D = 0, $1 = 0, $105 = 0, $108 = 0, $110 = 0, $112 = 0, $115 = 0, $119 = 0, $121 = 0, $122 = 0, $135 = 0, $136 = 0, $144 = 0, $16 = 0, $17 = 0, $19 = 0, $2 = 0, $31 = 0, $32 = 0, $39 = 0, $40 = 0, $42 = 0, $54 = 0, $55 = 0, $62 = 0, $63 = 0, $65 = 0, $7 = 0, $77 = 0, $78 = 0, $8 = 0, $85 = 0, $86 = 0, $88 = 0, $9 = 0, $_vlen$0$lcssa = 0, $_vlen$049 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$346 = 0, $_vlen14$0$lcssa = 0, $_vlen14$024 = 0, $_vlen14$1 = 0, $_vlen14$3$ph = 0, $_vlen14$322 = 0, $_vlen2$0$lcssa = 0, $_vlen2$040 = 0, $_vlen2$1 = 0, $_vlen2$3$ph = 0, $_vlen2$337 = 0, $_vlen8$0$lcssa = 0, $_vlen8$032 = 0, $_vlen8$1 = 0, $_vlen8$3$ph = 0, $_vlen8$329 = 0, $_vptr$0$lcssa = 0, $_vptr$050 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$347 = 0, $_vptr1$0$lcssa = 0, $_vptr1$041 = 0, $_vptr1$1 = 0, $_vptr1$3$ph = 0, $_vptr1$338 = 0, $_vptr13$0$lcssa = 0, $_vptr13$023 = 0, $_vptr13$1 = 0, $_vptr13$3$ph = 0, $_vptr13$321 = 0, $_vptr7$0$lcssa = 0, $_vptr7$031 = 0, $_vptr7$1 = 0, $_vptr7$3$ph = 0, $_vptr7$328 = 0, $mb_prev$0$i$i = 0, $mb_prev$1$i$i = 0, $scevgep = 0, $scevgep71 = 0, $scevgep72 = 0, $scevgep73 = 0;
if (!$a) return;
$1 = $a + -8 | 0;
$2 = HEAP32[$1 >> 2] | 0;
$7 = ($2 | 0) != 0 & ($a & 7 | 0) != 0;
if ($7) {
$_vlen$049 = $2;
$_vptr$050 = $a;
while (1) {
HEAP8[$_vptr$050 >> 0] = -1;
$8 = $_vptr$050 + 1 | 0;
$9 = $_vlen$049 + -1 | 0;
if (($9 | 0) != 0 & ($8 & 7 | 0) != 0) {
$_vlen$049 = $9;
$_vptr$050 = $8;
} else {
$_vlen$0$lcssa = $9;
$_vptr$0$lcssa = $8;
break;
}
}
} else {
$_vlen$0$lcssa = $2;
$_vptr$0$lcssa = $a;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$16 = $_vlen$0$lcssa + -8 | 0;
$17 = $16 & -8;
$scevgep73 = $_vptr$0$lcssa + ($17 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$19 = $_vptr$1;
HEAP32[$19 >> 2] = -1;
HEAP32[$19 + 4 >> 2] = -1;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $16 - $17 | 0;
$_vptr$3$ph = $scevgep73;
}
if ($_vlen$3$ph) {
$_vlen$346 = $_vlen$3$ph;
$_vptr$347 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$347 >> 0] = -1;
$_vlen$346 = $_vlen$346 + -1 | 0;
if (!$_vlen$346) break; else $_vptr$347 = $_vptr$347 + 1 | 0;
}
}
if ($7) {
$_vlen2$040 = $2;
$_vptr1$041 = $a;
while (1) {
HEAP8[$_vptr1$041 >> 0] = -86;
$31 = $_vptr1$041 + 1 | 0;
$32 = $_vlen2$040 + -1 | 0;
if (($32 | 0) != 0 & ($31 & 7 | 0) != 0) {
$_vlen2$040 = $32;
$_vptr1$041 = $31;
} else {
$_vlen2$0$lcssa = $32;
$_vptr1$0$lcssa = $31;
break;
}
}
} else {
$_vlen2$0$lcssa = $2;
$_vptr1$0$lcssa = $a;
}
if ($_vlen2$0$lcssa >>> 0 < 8) {
$_vlen2$3$ph = $_vlen2$0$lcssa;
$_vptr1$3$ph = $_vptr1$0$lcssa;
} else {
$39 = $_vlen2$0$lcssa + -8 | 0;
$40 = $39 & -8;
$scevgep72 = $_vptr1$0$lcssa + ($40 + 8) | 0;
$_vlen2$1 = $_vlen2$0$lcssa;
$_vptr1$1 = $_vptr1$0$lcssa;
while (1) {
$42 = $_vptr1$1;
HEAP32[$42 >> 2] = -1431655766;
HEAP32[$42 + 4 >> 2] = -1431655766;
$_vlen2$1 = $_vlen2$1 + -8 | 0;
if ($_vlen2$1 >>> 0 <= 7) break; else $_vptr1$1 = $_vptr1$1 + 8 | 0;
}
$_vlen2$3$ph = $39 - $40 | 0;
$_vptr1$3$ph = $scevgep72;
}
if ($_vlen2$3$ph) {
$_vlen2$337 = $_vlen2$3$ph;
$_vptr1$338 = $_vptr1$3$ph;
while (1) {
HEAP8[$_vptr1$338 >> 0] = -86;
$_vlen2$337 = $_vlen2$337 + -1 | 0;
if (!$_vlen2$337) break; else $_vptr1$338 = $_vptr1$338 + 1 | 0;
}
}
if ($7) {
$_vlen8$032 = $2;
$_vptr7$031 = $a;
while (1) {
HEAP8[$_vptr7$031 >> 0] = 85;
$54 = $_vptr7$031 + 1 | 0;
$55 = $_vlen8$032 + -1 | 0;
if (($55 | 0) != 0 & ($54 & 7 | 0) != 0) {
$_vlen8$032 = $55;
$_vptr7$031 = $54;
} else {
$_vlen8$0$lcssa = $55;
$_vptr7$0$lcssa = $54;
break;
}
}
} else {
$_vlen8$0$lcssa = $2;
$_vptr7$0$lcssa = $a;
}
if ($_vlen8$0$lcssa >>> 0 < 8) {
$_vlen8$3$ph = $_vlen8$0$lcssa;
$_vptr7$3$ph = $_vptr7$0$lcssa;
} else {
$62 = $_vlen8$0$lcssa + -8 | 0;
$63 = $62 & -8;
$scevgep71 = $_vptr7$0$lcssa + ($63 + 8) | 0;
$_vlen8$1 = $_vlen8$0$lcssa;
$_vptr7$1 = $_vptr7$0$lcssa;
while (1) {
$65 = $_vptr7$1;
HEAP32[$65 >> 2] = 1431655765;
HEAP32[$65 + 4 >> 2] = 1431655765;
$_vlen8$1 = $_vlen8$1 + -8 | 0;
if ($_vlen8$1 >>> 0 <= 7) break; else $_vptr7$1 = $_vptr7$1 + 8 | 0;
}
$_vlen8$3$ph = $62 - $63 | 0;
$_vptr7$3$ph = $scevgep71;
}
if ($_vlen8$3$ph) {
$_vlen8$329 = $_vlen8$3$ph;
$_vptr7$328 = $_vptr7$3$ph;
while (1) {
HEAP8[$_vptr7$328 >> 0] = 85;
$_vlen8$329 = $_vlen8$329 + -1 | 0;
if (!$_vlen8$329) break; else $_vptr7$328 = $_vptr7$328 + 1 | 0;
}
}
if ($7) {
$_vlen14$024 = $2;
$_vptr13$023 = $a;
while (1) {
HEAP8[$_vptr13$023 >> 0] = 0;
$77 = $_vptr13$023 + 1 | 0;
$78 = $_vlen14$024 + -1 | 0;
if (($78 | 0) != 0 & ($77 & 7 | 0) != 0) {
$_vlen14$024 = $78;
$_vptr13$023 = $77;
} else {
$_vlen14$0$lcssa = $78;
$_vptr13$0$lcssa = $77;
break;
}
}
} else {
$_vlen14$0$lcssa = $2;
$_vptr13$0$lcssa = $a;
}
if ($_vlen14$0$lcssa >>> 0 < 8) {
$_vlen14$3$ph = $_vlen14$0$lcssa;
$_vptr13$3$ph = $_vptr13$0$lcssa;
} else {
$85 = $_vlen14$0$lcssa + -8 | 0;
$86 = $85 & -8;
$scevgep = $_vptr13$0$lcssa + ($86 + 8) | 0;
$_vlen14$1 = $_vlen14$0$lcssa;
$_vptr13$1 = $_vptr13$0$lcssa;
while (1) {
$88 = $_vptr13$1;
HEAP32[$88 >> 2] = 0;
HEAP32[$88 + 4 >> 2] = 0;
$_vlen14$1 = $_vlen14$1 + -8 | 0;
if ($_vlen14$1 >>> 0 <= 7) break; else $_vptr13$1 = $_vptr13$1 + 8 | 0;
}
$_vlen14$3$ph = $85 - $86 | 0;
$_vptr13$3$ph = $scevgep;
}
if ($_vlen14$3$ph) {
$_vlen14$322 = $_vlen14$3$ph;
$_vptr13$321 = $_vptr13$3$ph;
while (1) {
HEAP8[$_vptr13$321 >> 0] = 0;
$_vlen14$322 = $_vlen14$322 + -1 | 0;
if (!$_vlen14$322) break; else $_vptr13$321 = $_vptr13$321 + 1 | 0;
}
}
if ($2) {
HEAP32[17500] = (HEAP32[17500] | 0) - $2;
HEAP32[17501] = (HEAP32[17501] | 0) + -1;
}
$105 = $a + -4 | 0;
HEAP32[$105 >> 2] = HEAP32[$105 >> 2] & -2;
$108 = HEAP32[17497] | 0;
$110 = $108;
if (($108 | 0) == ($1 | 0)) {
$$pre$phiZ2D = $108;
$mb_prev$1$i$i = 0;
} else {
$112 = (HEAP32[17498] | 0) + $110 | 0;
$mb_prev$0$i$i = $108;
while (1) {
$115 = $mb_prev$0$i$i + 8 + (HEAP32[$mb_prev$0$i$i >> 2] | 0) | 0;
$119 = $115 >>> 0 < $108 >>> 0 ? 0 : $115 >>> 0 < $112 >>> 0 ? $115 : 0;
if (($119 | 0) == ($1 | 0)) {
$$pre$phiZ2D = $108;
$mb_prev$1$i$i = $mb_prev$0$i$i;
break;
} else $mb_prev$0$i$i = $119;
}
}
$121 = HEAP32[$1 >> 2] | 0;
$122 = $a + $121 | 0;
if ($122 >>> 0 < $$pre$phiZ2D >>> 0) $136 = 0; else $136 = $122 >>> 0 < ((HEAP32[17498] | 0) + $110 | 0) >>> 0 ? $122 : 0;
if (!$mb_prev$1$i$i) {
$$0$i = $1;
$144 = $121;
} else if (!(HEAP32[$mb_prev$1$i$i + 4 >> 2] & 1)) {
$135 = $121 + 8 + (HEAP32[$mb_prev$1$i$i >> 2] | 0) | 0;
HEAP32[$mb_prev$1$i$i >> 2] = $135;
$$0$i = $mb_prev$1$i$i;
$144 = $135;
} else {
$$0$i = $1;
$144 = $121;
}
if (!$136) return;
if (HEAP32[$136 + 4 >> 2] & 1) return;
HEAP32[$$0$i >> 2] = $144 + 8 + (HEAP32[$136 >> 2] | 0);
return;
}
function __gcry_mpi_add($w, $u, $v) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
var $$01$i$i = 0, $$01$i$i$6 = 0, $$02$i$i = 0, $$02$i$i$5 = 0, $$04$i$i = 0, $$04$i$i$4 = 0, $$1$i$i = 0, $$1$i$i$10 = 0, $$13$i$i = 0, $$13$i$i$9 = 0, $$15$i$i = 0, $$15$i$i$8 = 0, $$lcssa80 = 0, $$lcssa81 = 0, $1 = 0, $101 = 0, $102 = 0, $13 = 0, $15 = 0, $20 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $38 = 0, $40 = 0, $41 = 0, $43 = 0, $47 = 0, $53 = 0, $59 = 0, $6 = 0, $61 = 0, $65 = 0, $71 = 0, $75 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $85 = 0, $87 = 0, $89 = 0, $90 = 0, $94 = 0, $_i$031 = 0, $cy$1$i$17 = 0, $i$0$in$i = 0, $i$011$i$i = 0, $i$011$i$i$14 = 0, $u$pn = 0, $up$0 = 0, $usign$0 = 0, $usize$0 = 0, $v$pn = 0, $vp$0 = 0, $vsign$0 = 0, $vsize$0 = 0, $wsign$1 = 0, $wsize$0 = 0, $wsize$1 = 0, $wsize$1$lcssa = 0, $wsize$2 = 0, $wsize$2$lcssa = 0, $wsize$3 = 0, label = 0;
$1 = HEAP32[$u + 4 >> 2] | 0;
$3 = HEAP32[$v + 4 >> 2] | 0;
if (($1 | 0) < ($3 | 0)) {
$6 = HEAP32[$v + 8 >> 2] | 0;
$8 = HEAP32[$u + 8 >> 2] | 0;
if ((HEAP32[$w >> 2] | 0) > ($3 | 0)) {
$u$pn = $u;
$usign$0 = $6;
$usize$0 = $3;
$v$pn = $v;
$vsign$0 = $8;
$vsize$0 = $1;
} else {
__gcry_mpi_resize($w, $3 + 1 | 0);
$u$pn = $u;
$usign$0 = $6;
$usize$0 = $3;
$v$pn = $v;
$vsign$0 = $8;
$vsize$0 = $1;
}
} else {
$13 = HEAP32[$u + 8 >> 2] | 0;
$15 = HEAP32[$v + 8 >> 2] | 0;
if ((HEAP32[$w >> 2] | 0) > ($1 | 0)) {
$u$pn = $v;
$usign$0 = $13;
$usize$0 = $1;
$v$pn = $u;
$vsign$0 = $15;
$vsize$0 = $3;
} else {
__gcry_mpi_resize($w, $1 + 1 | 0);
$u$pn = $v;
$usign$0 = $13;
$usize$0 = $1;
$v$pn = $u;
$vsign$0 = $15;
$vsize$0 = $3;
}
}
$up$0 = HEAP32[$v$pn + 16 >> 2] | 0;
$vp$0 = HEAP32[$u$pn + 16 >> 2] | 0;
$20 = HEAP32[$w + 16 >> 2] | 0;
if (!$vsize$0) {
if (($usize$0 | 0) > 0) $_i$031 = 0; else {
$wsign$1 = $usign$0;
$wsize$3 = $usize$0;
$101 = $w + 4 | 0;
HEAP32[$101 >> 2] = $wsize$3;
$102 = $w + 8 | 0;
HEAP32[$102 >> 2] = $wsign$1;
return;
}
do {
HEAP32[$20 + ($_i$031 << 2) >> 2] = HEAP32[$up$0 + ($_i$031 << 2) >> 2];
$_i$031 = $_i$031 + 1 | 0;
} while (($_i$031 | 0) != ($usize$0 | 0));
$wsign$1 = $usign$0;
$wsize$3 = $usize$0;
$101 = $w + 4 | 0;
HEAP32[$101 >> 2] = $wsize$3;
$102 = $w + 8 | 0;
HEAP32[$102 >> 2] = $wsign$1;
return;
}
if (($usign$0 | 0) == ($vsign$0 | 0)) {
$75 = __gcry_mpih_add_n($20, $up$0, $vp$0, $vsize$0) | 0;
L17 : do if (($usize$0 | 0) == ($vsize$0 | 0)) $cy$1$i$17 = $75; else {
$77 = $usize$0 - $vsize$0 | 0;
$78 = $20 + ($vsize$0 << 2) | 0;
$79 = $up$0 + ($vsize$0 << 2) | 0;
$80 = $79 + 4 | 0;
$81 = HEAP32[$79 >> 2] | 0;
$82 = $81 + $75 | 0;
$83 = $78 + 4 | 0;
HEAP32[$78 >> 2] = $82;
if ($82 >>> 0 < $81 >>> 0) {
$$01$i$i$6 = $77;
$$02$i$i$5 = $80;
$$04$i$i$4 = $83;
while (1) {
$85 = $$01$i$i$6 + -1 | 0;
if (!$85) {
$cy$1$i$17 = 1;
break L17;
}
$87 = $$02$i$i$5 + 4 | 0;
$89 = (HEAP32[$$02$i$i$5 >> 2] | 0) + 1 | 0;
$90 = $$04$i$i$4 + 4 | 0;
HEAP32[$$04$i$i$4 >> 2] = $89;
if (!$89) {
$$01$i$i$6 = $85;
$$02$i$i$5 = $87;
$$04$i$i$4 = $90;
} else {
$$1$i$i$10 = $85;
$$13$i$i$9 = $87;
$$15$i$i$8 = $90;
break;
}
}
} else {
$$1$i$i$10 = $77;
$$13$i$i$9 = $80;
$$15$i$i$8 = $83;
}
if (($$15$i$i$8 | 0) != ($$13$i$i$9 | 0) & ($$1$i$i$10 | 0) > 1) {
$94 = $$1$i$i$10 + -1 | 0;
$i$011$i$i$14 = 0;
do {
HEAP32[$$15$i$i$8 + ($i$011$i$i$14 << 2) >> 2] = HEAP32[$$13$i$i$9 + ($i$011$i$i$14 << 2) >> 2];
$i$011$i$i$14 = $i$011$i$i$14 + 1 | 0;
} while (($i$011$i$i$14 | 0) != ($94 | 0));
$cy$1$i$17 = 0;
} else $cy$1$i$17 = 0;
} while (0);
HEAP32[$20 + ($usize$0 << 2) >> 2] = $cy$1$i$17;
$wsign$1 = ($usign$0 | 0) != 0 & 1;
$wsize$3 = $cy$1$i$17 + $usize$0 | 0;
$101 = $w + 4 | 0;
HEAP32[$101 >> 2] = $wsize$3;
$102 = $w + 8 | 0;
HEAP32[$102 >> 2] = $wsign$1;
return;
}
if (($usize$0 | 0) == ($vsize$0 | 0)) $i$0$in$i = $usize$0; else {
$29 = __gcry_mpih_sub_n($20, $up$0, $vp$0, $vsize$0) | 0;
$30 = $usize$0 - $vsize$0 | 0;
$31 = $20 + ($vsize$0 << 2) | 0;
$32 = $up$0 + ($vsize$0 << 2) | 0;
$33 = $32 + 4 | 0;
$34 = HEAP32[$32 >> 2] | 0;
$35 = $34 - $29 | 0;
$36 = $31 + 4 | 0;
HEAP32[$31 >> 2] = $35;
L32 : do if ($35 >>> 0 > $34 >>> 0) {
$$01$i$i = $30;
$$02$i$i = $33;
$$04$i$i = $36;
while (1) {
$38 = $$01$i$i + -1 | 0;
if (!$38) {
$wsize$0 = $usize$0;
break L32;
}
$40 = $$02$i$i + 4 | 0;
$41 = HEAP32[$$02$i$i >> 2] | 0;
$43 = $$04$i$i + 4 | 0;
HEAP32[$$04$i$i >> 2] = $41 + -1;
if (!$41) {
$$01$i$i = $38;
$$02$i$i = $40;
$$04$i$i = $43;
} else {
$$1$i$i = $38;
$$13$i$i = $40;
$$15$i$i = $43;
label = 14;
break;
}
}
} else {
$$1$i$i = $30;
$$13$i$i = $33;
$$15$i$i = $36;
label = 14;
} while (0);
if ((label | 0) == 14) if (($$15$i$i | 0) != ($$13$i$i | 0) & ($$1$i$i | 0) > 1) {
$47 = $$1$i$i + -1 | 0;
$i$011$i$i = 0;
do {
HEAP32[$$15$i$i + ($i$011$i$i << 2) >> 2] = HEAP32[$$13$i$i + ($i$011$i$i << 2) >> 2];
$i$011$i$i = $i$011$i$i + 1 | 0;
} while (($i$011$i$i | 0) != ($47 | 0));
$wsize$0 = $usize$0;
} else $wsize$0 = $usize$0;
while (1) {
if (($wsize$0 | 0) <= 0) {
$wsign$1 = $usign$0;
$wsize$3 = $wsize$0;
label = 38;
break;
}
$53 = $wsize$0 + -1 | 0;
if (!(HEAP32[$20 + ($53 << 2) >> 2] | 0)) $wsize$0 = $53; else {
$wsign$1 = $usign$0;
$wsize$3 = $wsize$0;
label = 38;
break;
}
}
if ((label | 0) == 38) {
$101 = $w + 4 | 0;
HEAP32[$101 >> 2] = $wsize$3;
$102 = $w + 8 | 0;
HEAP32[$102 >> 2] = $wsign$1;
return;
}
}
while (1) {
if (($i$0$in$i | 0) <= 0) break;
$i$0$in$i = $i$0$in$i + -1 | 0;
$59 = HEAP32[$up$0 + ($i$0$in$i << 2) >> 2] | 0;
$61 = HEAP32[$vp$0 + ($i$0$in$i << 2) >> 2] | 0;
if (($59 | 0) != ($61 | 0)) {
$$lcssa80 = $59;
$$lcssa81 = $61;
label = 21;
break;
}
}
if ((label | 0) == 21) if ($$lcssa80 >>> 0 <= $$lcssa81 >>> 0) {
__gcry_mpih_sub_n($20, $vp$0, $up$0, $usize$0) | 0;
$wsize$1 = $usize$0;
while (1) {
if (($wsize$1 | 0) <= 0) {
$wsize$1$lcssa = $wsize$1;
break;
}
$65 = $wsize$1 + -1 | 0;
if (!(HEAP32[$20 + ($65 << 2) >> 2] | 0)) $wsize$1 = $65; else {
$wsize$1$lcssa = $wsize$1;
break;
}
}
$wsign$1 = ($usign$0 | 0) == 0 & 1;
$wsize$3 = $wsize$1$lcssa;
$101 = $w + 4 | 0;
HEAP32[$101 >> 2] = $wsize$3;
$102 = $w + 8 | 0;
HEAP32[$102 >> 2] = $wsign$1;
return;
}
__gcry_mpih_sub_n($20, $up$0, $vp$0, $usize$0) | 0;
$wsize$2 = $usize$0;
while (1) {
if (($wsize$2 | 0) <= 0) {
$wsize$2$lcssa = $wsize$2;
break;
}
$71 = $wsize$2 + -1 | 0;
if (!(HEAP32[$20 + ($71 << 2) >> 2] | 0)) $wsize$2 = $71; else {
$wsize$2$lcssa = $wsize$2;
break;
}
}
$wsign$1 = ($usign$0 | 0) != 0 & 1;
$wsize$3 = $wsize$2$lcssa;
$101 = $w + 4 | 0;
HEAP32[$101 >> 2] = $wsize$3;
$102 = $w + 8 | 0;
HEAP32[$102 >> 2] = $wsign$1;
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, $$0$lcssa$i = 0, $$08$i = 0, $$08$i$5$us = 0, $$1$ph$i = 0, $$1$ph$i$22$us = 0, $$14$i = 0, $$14$i$24 = 0, $$14$i$24$us = 0, $1 = 0, $101 = 0, $110 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0, $34 = 0, $35 = 0, $40 = 0, $50 = 0, $58 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $77 = 0, $8 = 0, $86 = 0, $95 = 0, $dst1$0$ph$i = 0, $dst1$0$ph$i$19$us = 0, $dst1$01$i = 0, $dst1$01$i$27 = 0, $dst1$01$i$27$us = 0, $dst2$0$ph$i = 0, $dst2$0$ph$i$20$us = 0, $dst2$02$i = 0, $dst2$02$i$26 = 0, $dst2$02$i$26$us = 0, $i$034 = 0, $i$131 = 0, $i$230 = 0, $i$230$us = 0, $ldst1$0$lcssa$i = 0, $ldst1$05$i = 0, $ldst1$05$i$8$us = 0, $ldst2$0$lcssa$i = 0, $ldst2$06$i = 0, $ldst2$06$i$7$us = 0, $lsrc$0$lcssa$i = 0, $lsrc$07$i = 0, $lsrc$07$i$6$us = 0, $scevgep$i$1 = 0, $scevgep19$i = 0, $scevgep19$i$2$us = 0, $src$0$ph$i = 0, $src$0$ph$i$21$us = 0, $src$03$i = 0, $src$03$i$25 = 0, $src$03$i$25$us = 0;
$1 = $context_size + 15 & -16;
$3 = Math_imul($blocksize, $nblocks) | 0;
$8 = __gcry_calloc(1, ($blocksize << 1) + 16 + ($3 * 3 | 0) + $1 | 0) | 0;
if (!$8) {
$$0 = 46395;
return $$0 | 0;
}
$13 = $8 + (0 - $8 & 15) | 0;
$14 = $13 + $1 | 0;
$15 = $14 + $blocksize | 0;
$16 = $15 + $blocksize | 0;
$17 = $16 + $3 | 0;
$18 = $17 + $3 | 0;
if (FUNCTION_TABLE_iiii[$setkey_func & 63]($13, 32, 16) | 0) {
__gcry_free($8);
$$0 = 46381;
return $$0 | 0;
}
_memset($14 | 0, -45, $blocksize | 0) | 0;
_memset($15 | 0, -45, $blocksize | 0) | 0;
if (($blocksize | 0) > 0) {
$i$034 = 0;
do {
HEAP8[$16 + $i$034 >> 0] = $i$034;
$i$034 = $i$034 + 1 | 0;
} while (($i$034 | 0) != ($blocksize | 0));
}
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18, $14) | 0;
$26 = $14;
if (!(($16 | $26 | $18) & 3)) {
if ($blocksize >>> 0 > 3) {
$33 = $blocksize + -4 | 0;
$34 = $33 & -4;
$35 = $34 + 4 | 0;
$scevgep19$i = $18 + $35 | 0;
$$08$i = $blocksize;
$ldst1$05$i = $14;
$ldst2$06$i = $18;
$lsrc$07$i = $16;
while (1) {
$40 = HEAP32[$ldst2$06$i >> 2] ^ HEAP32[$lsrc$07$i >> 2];
HEAP32[$ldst2$06$i >> 2] = $40;
HEAP32[$ldst1$05$i >> 2] = $40;
$$08$i = $$08$i + -4 | 0;
if ($$08$i >>> 0 <= 3) break; else {
$ldst1$05$i = $ldst1$05$i + 4 | 0;
$ldst2$06$i = $ldst2$06$i + 4 | 0;
$lsrc$07$i = $lsrc$07$i + 4 | 0;
}
}
$$0$lcssa$i = $33 - $34 | 0;
$ldst1$0$lcssa$i = $14 + $35 | 0;
$ldst2$0$lcssa$i = $scevgep19$i;
$lsrc$0$lcssa$i = $16 + $35 | 0;
} else {
$$0$lcssa$i = $blocksize;
$ldst1$0$lcssa$i = $14;
$ldst2$0$lcssa$i = $18;
$lsrc$0$lcssa$i = $16;
}
$$1$ph$i = $$0$lcssa$i;
$dst1$0$ph$i = $ldst1$0$lcssa$i;
$dst2$0$ph$i = $ldst2$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i = $blocksize;
$dst1$0$ph$i = $14;
$dst2$0$ph$i = $18;
$src$0$ph$i = $16;
}
if ($$1$ph$i) {
$$14$i = $$1$ph$i;
$dst1$01$i = $dst1$0$ph$i;
$dst2$02$i = $dst2$0$ph$i;
$src$03$i = $src$0$ph$i;
while (1) {
$50 = HEAP8[$dst2$02$i >> 0] ^ HEAP8[$src$03$i >> 0];
HEAP8[$dst2$02$i >> 0] = $50;
HEAP8[$dst1$01$i >> 0] = $50;
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) break; else {
$dst1$01$i = $dst1$01$i + 1 | 0;
$dst2$02$i = $dst2$02$i + 1 | 0;
$src$03$i = $src$03$i + 1 | 0;
}
}
}
FUNCTION_TABLE_viiiii[$bulk_cfb_dec & 15]($13, $15, $17, $18, 1);
if (_memcmp($17, $16, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46421;
return $$0 | 0;
}
if (_memcmp($15, $14, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46421;
return $$0 | 0;
}
_memset($14 | 0, -26, $blocksize | 0) | 0;
_memset($15 | 0, -26, $blocksize | 0) | 0;
$58 = ($3 | 0) > 0;
L33 : do if ($58) {
$i$131 = 0;
do {
HEAP8[$16 + $i$131 >> 0] = $i$131;
$i$131 = $i$131 + 1 | 0;
} while (($i$131 | 0) != ($3 | 0));
if ($58) {
$60 = $blocksize + -4 | 0;
$61 = $60 & -4;
$62 = $61 + 4 | 0;
$scevgep$i$1 = $14 + $62 | 0;
$63 = $60 - $61 | 0;
if ($blocksize >>> 0 > 3) $i$230$us = 0; else {
$64 = ($blocksize | 0) == 0;
$i$230 = 0;
while (1) {
$95 = $18 + $i$230 | 0;
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $95, $14) | 0;
if (!$64) {
$$14$i$24 = $blocksize;
$dst1$01$i$27 = $14;
$dst2$02$i$26 = $95;
$src$03$i$25 = $16 + $i$230 | 0;
while (1) {
$101 = HEAP8[$dst2$02$i$26 >> 0] ^ HEAP8[$src$03$i$25 >> 0];
HEAP8[$dst2$02$i$26 >> 0] = $101;
HEAP8[$dst1$01$i$27 >> 0] = $101;
$$14$i$24 = $$14$i$24 + -1 | 0;
if (!$$14$i$24) break; else {
$dst1$01$i$27 = $dst1$01$i$27 + 1 | 0;
$dst2$02$i$26 = $dst2$02$i$26 + 1 | 0;
$src$03$i$25 = $src$03$i$25 + 1 | 0;
}
}
}
$i$230 = $i$230 + $blocksize | 0;
if (($i$230 | 0) >= ($3 | 0)) break L33;
}
}
do {
$65 = $18 + $i$230$us | 0;
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $65, $14) | 0;
$66 = $16 + $i$230$us | 0;
if (!(($65 | $26 | $66) & 3)) {
$scevgep19$i$2$us = $65 + $62 | 0;
$$08$i$5$us = $blocksize;
$ldst1$05$i$8$us = $14;
$ldst2$06$i$7$us = $65;
$lsrc$07$i$6$us = $66;
while (1) {
$77 = HEAP32[$ldst2$06$i$7$us >> 2] ^ HEAP32[$lsrc$07$i$6$us >> 2];
HEAP32[$ldst2$06$i$7$us >> 2] = $77;
HEAP32[$ldst1$05$i$8$us >> 2] = $77;
$$08$i$5$us = $$08$i$5$us + -4 | 0;
if ($$08$i$5$us >>> 0 <= 3) break; else {
$ldst1$05$i$8$us = $ldst1$05$i$8$us + 4 | 0;
$ldst2$06$i$7$us = $ldst2$06$i$7$us + 4 | 0;
$lsrc$07$i$6$us = $lsrc$07$i$6$us + 4 | 0;
}
}
$$1$ph$i$22$us = $63;
$dst1$0$ph$i$19$us = $scevgep$i$1;
$dst2$0$ph$i$20$us = $scevgep19$i$2$us;
$src$0$ph$i$21$us = $66 + $62 | 0;
} else {
$$1$ph$i$22$us = $blocksize;
$dst1$0$ph$i$19$us = $14;
$dst2$0$ph$i$20$us = $65;
$src$0$ph$i$21$us = $66;
}
if ($$1$ph$i$22$us) {
$$14$i$24$us = $$1$ph$i$22$us;
$dst1$01$i$27$us = $dst1$0$ph$i$19$us;
$dst2$02$i$26$us = $dst2$0$ph$i$20$us;
$src$03$i$25$us = $src$0$ph$i$21$us;
while (1) {
$86 = HEAP8[$dst2$02$i$26$us >> 0] ^ HEAP8[$src$03$i$25$us >> 0];
HEAP8[$dst2$02$i$26$us >> 0] = $86;
HEAP8[$dst1$01$i$27$us >> 0] = $86;
$$14$i$24$us = $$14$i$24$us + -1 | 0;
if (!$$14$i$24$us) break; else {
$dst1$01$i$27$us = $dst1$01$i$27$us + 1 | 0;
$dst2$02$i$26$us = $dst2$02$i$26$us + 1 | 0;
$src$03$i$25$us = $src$03$i$25$us + 1 | 0;
}
}
}
$i$230$us = $i$230$us + $blocksize | 0;
} while (($i$230$us | 0) < ($3 | 0));
}
} while (0);
FUNCTION_TABLE_viiiii[$bulk_cfb_dec & 15]($13, $15, $17, $18, $nblocks);
if (!(_memcmp($17, $16, $3) | 0)) {
$110 = (_memcmp($15, $14, $blocksize) | 0) == 0;
__gcry_free($8);
$$0 = $110 ? 0 : 46421;
return $$0 | 0;
} else {
__gcry_free($8);
$$0 = 46421;
return $$0 | 0;
}
return 0;
}
function __gcry_sexp_nth_mpi($list, $number, $mpifmt) {
$list = $list | 0;
$number = $number | 0;
$mpifmt = $mpifmt | 0;
var $$015$ph$i = 0, $$015$ph$i$i = 0, $$04 = 0, $$2 = 0, $$lcssa$i = 0, $$lcssa$i$i = 0, $$ph$i = 0, $$ph$i$i = 0, $$ph12$i = 0, $$ph12$i$i = 0, $1 = 0, $15 = 0, $18 = 0, $23 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $32 = 0, $38 = 0, $42 = 0, $46 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $56 = 0, $59 = 0, $64 = 0, $67 = 0, $69 = 0, $7 = 0, $73 = 0, $8 = 0, $9 = 0, $a = 0, $level$07$i$lcssa = 0, $level$07$i$lcssa$i = 0, $level$07$i21 = 0, $level$07$i21$lcssa = 0, $level$07$i9$i = 0, $level$07$i9$i$lcssa = 0, $level$07$ph$i = 0, $level$07$ph$i$i = 0, $level$1$i = 0, $level$1$i$i = 0, $level$1$ph$i = 0, $level$1$ph$i$i = 0, $p$0$lcssa$i = 0, $p$0$lcssa$i$i = 0, $p$0$lcssa11$i = 0, $p$0$lcssa11$i$i = 0, $p$06$i$lcssa = 0, $p$06$i$lcssa$i = 0, $p$06$i10$i = 0, $p$06$i10$i$lcssa = 0, $p$06$i22 = 0, $p$06$i22$lcssa = 0, $p$06$ph$i = 0, $p$06$ph$i$i = 0, $p$1$i = 0, $p$1$i$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$a = sp;
switch ($mpifmt | 0) {
case 8:
{
if (!$list) {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
$1 = HEAP8[$list >> 0] | 0;
if ($1 << 24 >> 24 == 3) {
$5 = $list + 1 | 0;
$7 = HEAP8[$5 >> 0] | 0;
$8 = $7 << 24 >> 24 == 1;
L8 : do if (($number | 0) > 0) {
$$015$ph$i$i = $number;
$$ph$i$i = $8;
$$ph12$i$i = $7;
$level$07$ph$i$i = 0;
$p$06$ph$i$i = $5;
L9 : while (1) {
L11 : do if ($$ph$i$i) {
$level$07$i$lcssa$i = $level$07$ph$i$i;
$p$06$i$lcssa$i = $p$06$ph$i$i;
label = 7;
} else {
$15 = $$ph12$i$i;
$level$07$i9$i = $level$07$ph$i$i;
$p$06$i10$i = $p$06$ph$i$i;
L12 : while (1) {
switch ($15 << 24 >> 24) {
case 0:
{
$$2 = 0;
break L9;
break;
}
case 4:
{
$level$07$i9$i$lcssa = $level$07$i9$i;
$p$06$i10$i$lcssa = $p$06$i10$i;
break L12;
break;
}
case 3:
{
$level$1$ph$i$i = $level$07$i9$i + 1 | 0;
break;
}
default:
$level$1$ph$i$i = $level$07$i9$i;
}
$18 = $p$06$i10$i + 1 | 0;
$15 = HEAP8[$18 >> 0] | 0;
if ($15 << 24 >> 24 == 1) {
$level$07$i$lcssa$i = $level$1$ph$i$i;
$p$06$i$lcssa$i = $18;
label = 7;
break L11;
} else {
$level$07$i9$i = $level$1$ph$i$i;
$p$06$i10$i = $18;
}
}
$level$1$i$i = $level$07$i9$i$lcssa + -1 | 0;
$p$1$i$i = $p$06$i10$i$lcssa;
} while (0);
if ((label | 0) == 7) {
label = 0;
$9 = $p$06$i$lcssa$i + 1 | 0;
$level$1$i$i = $level$07$i$lcssa$i;
$p$1$i$i = $9 + (((HEAPU8[$9 >> 0] | HEAPU8[$9 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i$i = ((($level$1$i$i | 0) == 0) << 31 >> 31) + $$015$ph$i$i | 0;
$23 = $p$1$i$i + 1 | 0;
$$ph12$i$i = HEAP8[$23 >> 0] | 0;
$26 = $$ph12$i$i << 24 >> 24 == 1;
if (($$015$ph$i$i | 0) <= 0) {
$$lcssa$i$i = $26;
$p$0$lcssa$i$i = $23;
break L8;
} else {
$$ph$i$i = $26;
$level$07$ph$i$i = $level$1$i$i;
$p$06$ph$i$i = $23;
}
}
STACKTOP = sp;
return $$2 | 0;
} else {
$$lcssa$i$i = $8;
$p$0$lcssa$i$i = $5;
} while (0);
if ($$lcssa$i$i) $p$0$lcssa11$i$i = $p$0$lcssa$i$i; else {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
} else if (($number | 0) == 0 & $1 << 24 >> 24 == 1) $p$0$lcssa11$i$i = $list; else {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
$27 = $p$0$lcssa11$i$i + 1 | 0;
$28 = HEAPU8[$27 >> 0] | HEAPU8[$27 + 1 >> 0] << 8;
$29 = $28 & 65535;
if (!($28 << 16 >> 16)) {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
$32 = __gcry_malloc($29) | 0;
if (!$32) {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
_memcpy($32 | 0, $p$0$lcssa11$i$i + 3 | 0, $29 | 0) | 0;
if (!(__gcry_is_secure($list) | 0)) $38 = __gcry_mpi_new(0) | 0; else $38 = __gcry_mpi_snew(0) | 0;
HEAP32[$a >> 2] = $38;
if (!$38) {
__gcry_free($32);
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
} else {
__gcry_mpi_set_opaque($38, $32, $29 << 3) | 0;
$$2 = $38;
STACKTOP = sp;
return $$2 | 0;
}
break;
}
case 0:
{
$$04 = 1;
break;
}
default:
$$04 = $mpifmt;
}
if (!$list) {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
$42 = HEAP8[$list >> 0] | 0;
if ($42 << 24 >> 24 == 3) {
$46 = $list + 1 | 0;
$48 = HEAP8[$46 >> 0] | 0;
$49 = $48 << 24 >> 24 == 1;
L49 : do if (($number | 0) > 0) {
$$015$ph$i = $number;
$$ph$i = $49;
$$ph12$i = $48;
$level$07$ph$i = 0;
$p$06$ph$i = $46;
L50 : while (1) {
L52 : do if ($$ph$i) {
$level$07$i$lcssa = $level$07$ph$i;
$p$06$i$lcssa = $p$06$ph$i;
label = 28;
} else {
$56 = $$ph12$i;
$level$07$i21 = $level$07$ph$i;
$p$06$i22 = $p$06$ph$i;
L53 : while (1) {
switch ($56 << 24 >> 24) {
case 0:
{
$$2 = 0;
break L50;
break;
}
case 4:
{
$level$07$i21$lcssa = $level$07$i21;
$p$06$i22$lcssa = $p$06$i22;
break L53;
break;
}
case 3:
{
$level$1$ph$i = $level$07$i21 + 1 | 0;
break;
}
default:
$level$1$ph$i = $level$07$i21;
}
$59 = $p$06$i22 + 1 | 0;
$56 = HEAP8[$59 >> 0] | 0;
if ($56 << 24 >> 24 == 1) {
$level$07$i$lcssa = $level$1$ph$i;
$p$06$i$lcssa = $59;
label = 28;
break L52;
} else {
$level$07$i21 = $level$1$ph$i;
$p$06$i22 = $59;
}
}
$level$1$i = $level$07$i21$lcssa + -1 | 0;
$p$1$i = $p$06$i22$lcssa;
} while (0);
if ((label | 0) == 28) {
label = 0;
$50 = $p$06$i$lcssa + 1 | 0;
$level$1$i = $level$07$i$lcssa;
$p$1$i = $50 + (((HEAPU8[$50 >> 0] | HEAPU8[$50 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i = ((($level$1$i | 0) == 0) << 31 >> 31) + $$015$ph$i | 0;
$64 = $p$1$i + 1 | 0;
$$ph12$i = HEAP8[$64 >> 0] | 0;
$67 = $$ph12$i << 24 >> 24 == 1;
if (($$015$ph$i | 0) <= 0) {
$$lcssa$i = $67;
$p$0$lcssa$i = $64;
break L49;
} else {
$$ph$i = $67;
$level$07$ph$i = $level$1$i;
$p$06$ph$i = $64;
}
}
STACKTOP = sp;
return $$2 | 0;
} else {
$$lcssa$i = $49;
$p$0$lcssa$i = $46;
} while (0);
if ($$lcssa$i) $p$0$lcssa11$i = $p$0$lcssa$i; else {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
} else if (($number | 0) == 0 & $42 << 24 >> 24 == 1) $p$0$lcssa11$i = $list; else {
$$2 = 0;
STACKTOP = sp;
return $$2 | 0;
}
$69 = $p$0$lcssa11$i + 1 | 0;
$73 = (__gcry_mpi_scan($a, $$04, $p$0$lcssa11$i + 3 | 0, (HEAPU8[$69 >> 0] | HEAPU8[$69 + 1 >> 0] << 8) & 65535, 0) | 0) == 0;
$$2 = $73 ? HEAP32[$a >> 2] | 0 : 0;
STACKTOP = sp;
return $$2 | 0;
}
function _transform_1710($hd, $data_arg) {
$hd = $hd | 0;
$data_arg = $data_arg | 0;
var $$lcssa = 0, $$lcssa26 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $110 = 0, $12 = 0, $122 = 0, $13 = 0, $134 = 0, $14 = 0, $146 = 0, $158 = 0, $170 = 0, $182 = 0, $194 = 0, $2 = 0, $207 = 0, $233 = 0, $259 = 0, $26 = 0, $276 = 0, $277 = 0, $3 = 0, $38 = 0, $4 = 0, $5 = 0, $50 = 0, $6 = 0, $62 = 0, $7 = 0, $74 = 0, $8 = 0, $86 = 0, $9 = 0, $98 = 0, $a$010 = 0, $a$010$lcssa = 0, $b$03 = 0, $b$03$lcssa = 0, $b$03$phi = 0, $c$04 = 0, $c$04$lcssa = 0, $d$05 = 0, $e$06 = 0, $e$06$lcssa = 0, $f$07 = 0, $f$07$lcssa = 0, $f$07$phi = 0, $g$08 = 0, $g$08$lcssa = 0, $h$09 = 0, $i$212 = 0, $i$311 = 0, $w = 0, $x = 0, dest = 0, sp = 0, src = 0, stop = 0, $233$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 320 | 0;
$x = sp + 256 | 0;
$w = sp;
$0 = HEAP32[$hd >> 2] | 0;
$1 = $hd + 4 | 0;
$2 = HEAP32[$1 >> 2] | 0;
$3 = $hd + 8 | 0;
$4 = HEAP32[$3 >> 2] | 0;
$5 = $hd + 12 | 0;
$6 = HEAP32[$5 >> 2] | 0;
$7 = $hd + 16 | 0;
$8 = HEAP32[$7 >> 2] | 0;
$9 = $hd + 20 | 0;
$10 = HEAP32[$9 >> 2] | 0;
$11 = $hd + 24 | 0;
$12 = HEAP32[$11 >> 2] | 0;
$13 = $hd + 28 | 0;
$14 = HEAP32[$13 >> 2] | 0;
HEAP8[$x + 3 >> 0] = HEAP8[$data_arg >> 0] | 0;
HEAP8[$x + 2 >> 0] = HEAP8[$data_arg + 1 >> 0] | 0;
HEAP8[$x + 1 >> 0] = HEAP8[$data_arg + 2 >> 0] | 0;
HEAP8[$x >> 0] = HEAP8[$data_arg + 3 >> 0] | 0;
$26 = $x + 4 | 0;
HEAP8[$26 + 3 >> 0] = HEAP8[$data_arg + 4 >> 0] | 0;
HEAP8[$26 + 2 >> 0] = HEAP8[$data_arg + 5 >> 0] | 0;
HEAP8[$26 + 1 >> 0] = HEAP8[$data_arg + 6 >> 0] | 0;
HEAP8[$26 >> 0] = HEAP8[$data_arg + 7 >> 0] | 0;
$38 = $x + 8 | 0;
HEAP8[$38 + 3 >> 0] = HEAP8[$data_arg + 8 >> 0] | 0;
HEAP8[$38 + 2 >> 0] = HEAP8[$data_arg + 9 >> 0] | 0;
HEAP8[$38 + 1 >> 0] = HEAP8[$data_arg + 10 >> 0] | 0;
HEAP8[$38 >> 0] = HEAP8[$data_arg + 11 >> 0] | 0;
$50 = $x + 12 | 0;
HEAP8[$50 + 3 >> 0] = HEAP8[$data_arg + 12 >> 0] | 0;
HEAP8[$50 + 2 >> 0] = HEAP8[$data_arg + 13 >> 0] | 0;
HEAP8[$50 + 1 >> 0] = HEAP8[$data_arg + 14 >> 0] | 0;
HEAP8[$50 >> 0] = HEAP8[$data_arg + 15 >> 0] | 0;
$62 = $x + 16 | 0;
HEAP8[$62 + 3 >> 0] = HEAP8[$data_arg + 16 >> 0] | 0;
HEAP8[$62 + 2 >> 0] = HEAP8[$data_arg + 17 >> 0] | 0;
HEAP8[$62 + 1 >> 0] = HEAP8[$data_arg + 18 >> 0] | 0;
HEAP8[$62 >> 0] = HEAP8[$data_arg + 19 >> 0] | 0;
$74 = $x + 20 | 0;
HEAP8[$74 + 3 >> 0] = HEAP8[$data_arg + 20 >> 0] | 0;
HEAP8[$74 + 2 >> 0] = HEAP8[$data_arg + 21 >> 0] | 0;
HEAP8[$74 + 1 >> 0] = HEAP8[$data_arg + 22 >> 0] | 0;
HEAP8[$74 >> 0] = HEAP8[$data_arg + 23 >> 0] | 0;
$86 = $x + 24 | 0;
HEAP8[$86 + 3 >> 0] = HEAP8[$data_arg + 24 >> 0] | 0;
HEAP8[$86 + 2 >> 0] = HEAP8[$data_arg + 25 >> 0] | 0;
HEAP8[$86 + 1 >> 0] = HEAP8[$data_arg + 26 >> 0] | 0;
HEAP8[$86 >> 0] = HEAP8[$data_arg + 27 >> 0] | 0;
$98 = $x + 28 | 0;
HEAP8[$98 + 3 >> 0] = HEAP8[$data_arg + 28 >> 0] | 0;
HEAP8[$98 + 2 >> 0] = HEAP8[$data_arg + 29 >> 0] | 0;
HEAP8[$98 + 1 >> 0] = HEAP8[$data_arg + 30 >> 0] | 0;
HEAP8[$98 >> 0] = HEAP8[$data_arg + 31 >> 0] | 0;
$110 = $x + 32 | 0;
HEAP8[$110 + 3 >> 0] = HEAP8[$data_arg + 32 >> 0] | 0;
HEAP8[$110 + 2 >> 0] = HEAP8[$data_arg + 33 >> 0] | 0;
HEAP8[$110 + 1 >> 0] = HEAP8[$data_arg + 34 >> 0] | 0;
HEAP8[$110 >> 0] = HEAP8[$data_arg + 35 >> 0] | 0;
$122 = $x + 36 | 0;
HEAP8[$122 + 3 >> 0] = HEAP8[$data_arg + 36 >> 0] | 0;
HEAP8[$122 + 2 >> 0] = HEAP8[$data_arg + 37 >> 0] | 0;
HEAP8[$122 + 1 >> 0] = HEAP8[$data_arg + 38 >> 0] | 0;
HEAP8[$122 >> 0] = HEAP8[$data_arg + 39 >> 0] | 0;
$134 = $x + 40 | 0;
HEAP8[$134 + 3 >> 0] = HEAP8[$data_arg + 40 >> 0] | 0;
HEAP8[$134 + 2 >> 0] = HEAP8[$data_arg + 41 >> 0] | 0;
HEAP8[$134 + 1 >> 0] = HEAP8[$data_arg + 42 >> 0] | 0;
HEAP8[$134 >> 0] = HEAP8[$data_arg + 43 >> 0] | 0;
$146 = $x + 44 | 0;
HEAP8[$146 + 3 >> 0] = HEAP8[$data_arg + 44 >> 0] | 0;
HEAP8[$146 + 2 >> 0] = HEAP8[$data_arg + 45 >> 0] | 0;
HEAP8[$146 + 1 >> 0] = HEAP8[$data_arg + 46 >> 0] | 0;
HEAP8[$146 >> 0] = HEAP8[$data_arg + 47 >> 0] | 0;
$158 = $x + 48 | 0;
HEAP8[$158 + 3 >> 0] = HEAP8[$data_arg + 48 >> 0] | 0;
HEAP8[$158 + 2 >> 0] = HEAP8[$data_arg + 49 >> 0] | 0;
HEAP8[$158 + 1 >> 0] = HEAP8[$data_arg + 50 >> 0] | 0;
HEAP8[$158 >> 0] = HEAP8[$data_arg + 51 >> 0] | 0;
$170 = $x + 52 | 0;
HEAP8[$170 + 3 >> 0] = HEAP8[$data_arg + 52 >> 0] | 0;
HEAP8[$170 + 2 >> 0] = HEAP8[$data_arg + 53 >> 0] | 0;
HEAP8[$170 + 1 >> 0] = HEAP8[$data_arg + 54 >> 0] | 0;
HEAP8[$170 >> 0] = HEAP8[$data_arg + 55 >> 0] | 0;
$182 = $x + 56 | 0;
HEAP8[$182 + 3 >> 0] = HEAP8[$data_arg + 56 >> 0] | 0;
HEAP8[$182 + 2 >> 0] = HEAP8[$data_arg + 57 >> 0] | 0;
HEAP8[$182 + 1 >> 0] = HEAP8[$data_arg + 58 >> 0] | 0;
HEAP8[$182 >> 0] = HEAP8[$data_arg + 59 >> 0] | 0;
$194 = $x + 60 | 0;
HEAP8[$194 + 3 >> 0] = HEAP8[$data_arg + 60 >> 0] | 0;
HEAP8[$194 + 2 >> 0] = HEAP8[$data_arg + 61 >> 0] | 0;
HEAP8[$194 + 1 >> 0] = HEAP8[$data_arg + 62 >> 0] | 0;
HEAP8[$194 >> 0] = HEAP8[$data_arg + 63 >> 0] | 0;
dest = $w;
src = $x;
stop = dest + 64 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
$233 = HEAP32[$w >> 2] | 0;
$i$212 = 16;
do {
$207 = HEAP32[$w + ($i$212 + -2 << 2) >> 2] | 0;
$233$looptemp = $233;
$233 = HEAP32[$w + ($i$212 + -15 << 2) >> 2] | 0;
HEAP32[$w + ($i$212 << 2) >> 2] = $233$looptemp + (HEAP32[$w + ($i$212 + -7 << 2) >> 2] | 0) + (($207 << 13 | $207 >>> 19) ^ $207 >>> 10 ^ ($207 << 15 | $207 >>> 17)) + (($233 << 14 | $233 >>> 18) ^ $233 >>> 3 ^ ($233 << 25 | $233 >>> 7));
$i$212 = $i$212 + 1 | 0;
} while (($i$212 | 0) != 64);
$a$010 = $0;
$b$03 = $2;
$c$04 = $4;
$d$05 = $6;
$e$06 = $8;
$f$07 = $10;
$g$08 = $12;
$h$09 = $14;
$i$311 = 0;
while (1) {
$259 = (($e$06 << 26 | $e$06 >>> 6) ^ ($e$06 << 21 | $e$06 >>> 11) ^ ($e$06 << 7 | $e$06 >>> 25)) + $h$09 + (($g$08 ^ $f$07) & $e$06 ^ $g$08) + (HEAP32[12140 + ($i$311 << 2) >> 2] | 0) + (HEAP32[$w + ($i$311 << 2) >> 2] | 0) | 0;
$276 = $259 + $d$05 | 0;
$277 = (($a$010 << 30 | $a$010 >>> 2) ^ ($a$010 << 19 | $a$010 >>> 13) ^ ($a$010 << 10 | $a$010 >>> 22)) + (($a$010 | $b$03) & $c$04 | $a$010 & $b$03) + $259 | 0;
$i$311 = $i$311 + 1 | 0;
if (($i$311 | 0) == 64) {
$$lcssa = $276;
$$lcssa26 = $277;
$a$010$lcssa = $a$010;
$b$03$lcssa = $b$03;
$c$04$lcssa = $c$04;
$e$06$lcssa = $e$06;
$f$07$lcssa = $f$07;
$g$08$lcssa = $g$08;
break;
} else {
$f$07$phi = $e$06;
$b$03$phi = $a$010;
$a$010 = $277;
$e$06 = $276;
$h$09 = $g$08;
$g$08 = $f$07;
$f$07 = $f$07$phi;
$d$05 = $c$04;
$c$04 = $b$03;
$b$03 = $b$03$phi;
}
}
HEAP32[$hd >> 2] = (HEAP32[$hd >> 2] | 0) + $$lcssa26;
HEAP32[$1 >> 2] = (HEAP32[$1 >> 2] | 0) + $a$010$lcssa;
HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + $b$03$lcssa;
HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + $c$04$lcssa;
HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + $$lcssa;
HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + $e$06$lcssa;
HEAP32[$11 >> 2] = (HEAP32[$11 >> 2] | 0) + $f$07$lcssa;
HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + $g$08$lcssa;
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, $$0$lcssa$i = 0, $$08$i = 0, $$08$i$5$us = 0, $$1$ph$i = 0, $$1$ph$i$22$us = 0, $$14$i = 0, $$14$i$24 = 0, $$14$i$24$us = 0, $1 = 0, $110 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0, $34 = 0, $35 = 0, $58 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $8 = 0, $95 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$19$us = 0, $dst$01$i = 0, $dst$01$i$27 = 0, $dst$01$i$27$us = 0, $i$034 = 0, $i$131 = 0, $i$230 = 0, $i$230$us = 0, $ldst$0$lcssa$i = 0, $ldst$05$i = 0, $ldst$05$i$8$us = 0, $lsrc1$0$lcssa$i = 0, $lsrc1$06$i = 0, $lsrc1$06$i$7$us = 0, $lsrc2$0$lcssa$i = 0, $lsrc2$07$i = 0, $lsrc2$07$i$6$us = 0, $scevgep$i$1$us = 0, $scevgep19$i = 0, $scevgep21$i$3 = 0, $src1$0$ph$i = 0, $src1$0$ph$i$20$us = 0, $src1$02$i = 0, $src1$02$i$26 = 0, $src1$02$i$26$us = 0, $src2$0$ph$i = 0, $src2$0$ph$i$21$us = 0, $src2$03$i = 0, $src2$03$i$25 = 0, $src2$03$i$25$us = 0;
$1 = $context_size + 15 & -16;
$3 = Math_imul($blocksize, $nblocks) | 0;
$8 = __gcry_calloc(1, ($blocksize << 1) + 16 + ($3 * 3 | 0) + $1 | 0) | 0;
if (!$8) {
$$0 = 46395;
return $$0 | 0;
}
$13 = $8 + (0 - $8 & 15) | 0;
$14 = $13 + $1 | 0;
$15 = $14 + $blocksize | 0;
$16 = $15 + $blocksize | 0;
$17 = $16 + $3 | 0;
$18 = $17 + $3 | 0;
if (FUNCTION_TABLE_iiii[$setkey_func & 63]($13, 16, 16) | 0) {
__gcry_free($8);
$$0 = 46381;
return $$0 | 0;
}
_memset($14 | 0, 78, $blocksize | 0) | 0;
_memset($15 | 0, 78, $blocksize | 0) | 0;
if (($blocksize | 0) > 0) {
$i$034 = 0;
do {
HEAP8[$16 + $i$034 >> 0] = $i$034;
$i$034 = $i$034 + 1 | 0;
} while (($i$034 | 0) != ($blocksize | 0));
}
$26 = $14;
if (!(($16 | $26 | $18) & 3)) {
if ($blocksize >>> 0 > 3) {
$33 = $blocksize + -4 | 0;
$34 = $33 & -4;
$35 = $34 + 4 | 0;
$scevgep19$i = $16 + $35 | 0;
$$08$i = $blocksize;
$ldst$05$i = $18;
$lsrc1$06$i = $14;
$lsrc2$07$i = $16;
while (1) {
HEAP32[$ldst$05$i >> 2] = HEAP32[$lsrc2$07$i >> 2] ^ HEAP32[$lsrc1$06$i >> 2];
$$08$i = $$08$i + -4 | 0;
if ($$08$i >>> 0 <= 3) break; else {
$ldst$05$i = $ldst$05$i + 4 | 0;
$lsrc1$06$i = $lsrc1$06$i + 4 | 0;
$lsrc2$07$i = $lsrc2$07$i + 4 | 0;
}
}
$$0$lcssa$i = $33 - $34 | 0;
$ldst$0$lcssa$i = $18 + $35 | 0;
$lsrc1$0$lcssa$i = $14 + $35 | 0;
$lsrc2$0$lcssa$i = $scevgep19$i;
} else {
$$0$lcssa$i = $blocksize;
$ldst$0$lcssa$i = $18;
$lsrc1$0$lcssa$i = $14;
$lsrc2$0$lcssa$i = $16;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src1$0$ph$i = $lsrc1$0$lcssa$i;
$src2$0$ph$i = $lsrc2$0$lcssa$i;
} else {
$$1$ph$i = $blocksize;
$dst$0$ph$i = $18;
$src1$0$ph$i = $14;
$src2$0$ph$i = $16;
}
if ($$1$ph$i) {
$$14$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src1$02$i = $src1$0$ph$i;
$src2$03$i = $src2$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src2$03$i >> 0] ^ HEAP8[$src1$02$i >> 0];
$$14$i = $$14$i + -1 | 0;
if (!$$14$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src1$02$i = $src1$02$i + 1 | 0;
$src2$03$i = $src2$03$i + 1 | 0;
}
}
}
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18, $18) | 0;
_memcpy($14 | 0, $18 | 0, $blocksize | 0) | 0;
FUNCTION_TABLE_viiiii[$bulk_cbc_dec & 15]($13, $15, $17, $18, 1);
if (_memcmp($17, $16, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46332;
return $$0 | 0;
}
if (_memcmp($15, $14, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46332;
return $$0 | 0;
}
_memset($14 | 0, 95, $blocksize | 0) | 0;
_memset($15 | 0, 95, $blocksize | 0) | 0;
$58 = ($3 | 0) > 0;
L33 : do if ($58) {
$i$131 = 0;
do {
HEAP8[$16 + $i$131 >> 0] = $i$131;
$i$131 = $i$131 + 1 | 0;
} while (($i$131 | 0) != ($3 | 0));
if ($58) {
$60 = $blocksize + -4 | 0;
$61 = $60 & -4;
$62 = $61 + 4 | 0;
$scevgep21$i$3 = $14 + $62 | 0;
$63 = $60 - $61 | 0;
if ($blocksize >>> 0 > 3) $i$230$us = 0; else {
$64 = ($blocksize | 0) == 0;
$i$230 = 0;
while (1) {
$95 = $18 + $i$230 | 0;
if (!$64) {
$$14$i$24 = $blocksize;
$dst$01$i$27 = $95;
$src1$02$i$26 = $14;
$src2$03$i$25 = $16 + $i$230 | 0;
while (1) {
HEAP8[$dst$01$i$27 >> 0] = HEAP8[$src2$03$i$25 >> 0] ^ HEAP8[$src1$02$i$26 >> 0];
$$14$i$24 = $$14$i$24 + -1 | 0;
if (!$$14$i$24) break; else {
$dst$01$i$27 = $dst$01$i$27 + 1 | 0;
$src1$02$i$26 = $src1$02$i$26 + 1 | 0;
$src2$03$i$25 = $src2$03$i$25 + 1 | 0;
}
}
}
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $95, $95) | 0;
_memcpy($14 | 0, $95 | 0, $blocksize | 0) | 0;
$i$230 = $i$230 + $blocksize | 0;
if (($i$230 | 0) >= ($3 | 0)) break L33;
}
}
do {
$65 = $18 + $i$230$us | 0;
$66 = $16 + $i$230$us | 0;
if (!(($65 | $26 | $66) & 3)) {
$scevgep$i$1$us = $65 + $62 | 0;
$$08$i$5$us = $blocksize;
$ldst$05$i$8$us = $65;
$lsrc1$06$i$7$us = $14;
$lsrc2$07$i$6$us = $66;
while (1) {
HEAP32[$ldst$05$i$8$us >> 2] = HEAP32[$lsrc2$07$i$6$us >> 2] ^ HEAP32[$lsrc1$06$i$7$us >> 2];
$$08$i$5$us = $$08$i$5$us + -4 | 0;
if ($$08$i$5$us >>> 0 <= 3) break; else {
$ldst$05$i$8$us = $ldst$05$i$8$us + 4 | 0;
$lsrc1$06$i$7$us = $lsrc1$06$i$7$us + 4 | 0;
$lsrc2$07$i$6$us = $lsrc2$07$i$6$us + 4 | 0;
}
}
$$1$ph$i$22$us = $63;
$dst$0$ph$i$19$us = $scevgep$i$1$us;
$src1$0$ph$i$20$us = $scevgep21$i$3;
$src2$0$ph$i$21$us = $66 + $62 | 0;
} else {
$$1$ph$i$22$us = $blocksize;
$dst$0$ph$i$19$us = $65;
$src1$0$ph$i$20$us = $14;
$src2$0$ph$i$21$us = $66;
}
if ($$1$ph$i$22$us) {
$$14$i$24$us = $$1$ph$i$22$us;
$dst$01$i$27$us = $dst$0$ph$i$19$us;
$src1$02$i$26$us = $src1$0$ph$i$20$us;
$src2$03$i$25$us = $src2$0$ph$i$21$us;
while (1) {
HEAP8[$dst$01$i$27$us >> 0] = HEAP8[$src2$03$i$25$us >> 0] ^ HEAP8[$src1$02$i$26$us >> 0];
$$14$i$24$us = $$14$i$24$us + -1 | 0;
if (!$$14$i$24$us) break; else {
$dst$01$i$27$us = $dst$01$i$27$us + 1 | 0;
$src1$02$i$26$us = $src1$02$i$26$us + 1 | 0;
$src2$03$i$25$us = $src2$03$i$25$us + 1 | 0;
}
}
}
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $65, $65) | 0;
_memcpy($14 | 0, $65 | 0, $blocksize | 0) | 0;
$i$230$us = $i$230$us + $blocksize | 0;
} while (($i$230$us | 0) < ($3 | 0));
}
} while (0);
FUNCTION_TABLE_viiiii[$bulk_cbc_dec & 15]($13, $15, $17, $18, $nblocks);
if (!(_memcmp($17, $16, $3) | 0)) {
$110 = (_memcmp($15, $14, $blocksize) | 0) == 0;
__gcry_free($8);
$$0 = $110 ? 0 : 46332;
return $$0 | 0;
} else {
__gcry_free($8);
$$0 = 46332;
return $$0 | 0;
}
return 0;
}
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, $102 = 0, $104 = 0, $108 = 0, $111 = 0, $121 = 0, $123 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $22 = 0, $28 = 0, $3 = 0, $34 = 0, $36 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $47 = 0, $50 = 0, $54 = 0, $58 = 0, $60 = 0, $64 = 0, $67 = 0, $71 = 0, $78 = 0, $8 = 0, $80 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $diff$011 = 0, $i$026 = 0, $i$123 = 0, $i$2 = 0, $i$320 = 0, $i$417 = 0, $i$417$us = 0, $i$56 = 0, $i$69 = 0, $i$69$us = 0, $j$014$us = 0, $j$1 = 0, $j$1$us = 0, $j$27$us = 0, $j$3 = 0, $j$3$us = 0, label = 0;
$1 = $context_size + 15 & -16;
$3 = Math_imul($blocksize, $nblocks) | 0;
$8 = __gcry_calloc(1, ($blocksize << 1) + 16 + ($3 << 2) + $1 | 0) | 0;
if (!$8) {
$$0 = 46395;
return $$0 | 0;
}
$13 = $8 + (0 - $8 & 15) | 0;
$14 = $13 + $1 | 0;
$15 = $14 + $blocksize | 0;
$16 = $15 + $blocksize | 0;
$17 = $16 + $3 | 0;
$18 = $17 + $3 | 0;
$19 = $18 + $3 | 0;
if (FUNCTION_TABLE_iiii[$setkey_func & 63]($13, 48, 16) | 0) {
__gcry_free($8);
$$0 = 46381;
return $$0 | 0;
}
_memset($14 | 0, -1, $blocksize | 0) | 0;
$22 = ($blocksize | 0) > 0;
if ($22) {
$i$026 = 0;
do {
HEAP8[$16 + $i$026 >> 0] = $i$026;
$i$026 = $i$026 + 1 | 0;
} while (($i$026 | 0) != ($blocksize | 0));
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18, $14) | 0;
if ($22) {
$i$123 = 0;
do {
$28 = $18 + $i$123 | 0;
HEAP8[$28 >> 0] = HEAP8[$28 >> 0] ^ HEAP8[$16 + $i$123 >> 0];
$i$123 = $i$123 + 1 | 0;
} while (($i$123 | 0) != ($blocksize | 0));
$i$2 = $blocksize;
} else $i$2 = $blocksize;
} else {
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18, $14) | 0;
$i$2 = $blocksize;
}
do {
if (($i$2 | 0) <= 0) break;
$i$2 = $i$2 + -1 | 0;
$34 = $14 + $i$2 | 0;
$36 = (HEAP8[$34 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$34 >> 0] = $36;
} while ($36 << 24 >> 24 == 0);
_memset($15 | 0, -1, $blocksize | 0) | 0;
FUNCTION_TABLE_viiiii[$bulk_ctr_enc & 15]($13, $15, $17, $18, 1);
if (_memcmp($17, $16, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46470;
return $$0 | 0;
}
if (_memcmp($15, $14, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46470;
return $$0 | 0;
}
$42 = $blocksize + -4 | 0;
_memset($14 | 0, 87, $42 | 0) | 0;
$43 = $blocksize + -1 | 0;
$44 = $14 + $43 | 0;
HEAP8[$44 >> 0] = 1;
$45 = $blocksize + -2 | 0;
HEAP8[$14 + $45 >> 0] = 0;
$47 = $blocksize + -3 | 0;
HEAP8[$14 + $47 >> 0] = 0;
HEAP8[$14 + $42 >> 0] = 0;
_memset($15 | 0, 87, $42 | 0) | 0;
$50 = $15 + $43 | 0;
HEAP8[$50 >> 0] = 1;
HEAP8[$15 + $45 >> 0] = 0;
HEAP8[$15 + $47 >> 0] = 0;
HEAP8[$15 + $42 >> 0] = 0;
$54 = ($3 | 0) > 0;
L27 : do if ($54) {
$i$320 = 0;
do {
$71 = $i$320 & 255;
HEAP8[$16 + $i$320 >> 0] = $71;
HEAP8[$17 + $i$320 >> 0] = $71;
$i$320 = $i$320 + 1 | 0;
} while (($i$320 | 0) != ($3 | 0));
if ($54) {
if ($22) $i$417$us = 0; else {
$i$417 = 0;
while (1) {
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18 + $i$417 | 0, $14) | 0;
$j$1 = $blocksize;
do {
if (($j$1 | 0) <= 0) break;
$j$1 = $j$1 + -1 | 0;
$78 = $14 + $j$1 | 0;
$80 = (HEAP8[$78 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$78 >> 0] = $80;
} while ($80 << 24 >> 24 == 0);
$i$417 = $i$417 + $blocksize | 0;
if (($i$417 | 0) >= ($3 | 0)) break L27;
}
}
do {
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18 + $i$417$us | 0, $14) | 0;
$j$014$us = 0;
do {
$64 = $j$014$us + $i$417$us | 0;
$67 = $18 + $64 | 0;
HEAP8[$67 >> 0] = HEAP8[$67 >> 0] ^ HEAP8[$16 + $64 >> 0];
$j$014$us = $j$014$us + 1 | 0;
} while (($j$014$us | 0) != ($blocksize | 0));
$j$1$us = $blocksize;
do {
if (($j$1$us | 0) <= 0) break;
$j$1$us = $j$1$us + -1 | 0;
$58 = $14 + $j$1$us | 0;
$60 = (HEAP8[$58 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$58 >> 0] = $60;
} while ($60 << 24 >> 24 == 0);
$i$417$us = $i$417$us + $blocksize | 0;
} while (($i$417$us | 0) < ($3 | 0));
}
} while (0);
FUNCTION_TABLE_viiiii[$bulk_ctr_enc & 15]($13, $15, $19, $17, $nblocks);
if (_memcmp($19, $18, $3) | 0) {
__gcry_free($8);
$$0 = 46470;
return $$0 | 0;
}
if (_memcmp($15, $14, $blocksize) | 0) {
__gcry_free($8);
$$0 = 46470;
return $$0 | 0;
}
L56 : do if (($nblocks | 0) > 0) {
$89 = $14 + 1 | 0;
$90 = $14 + 2 | 0;
$91 = $15 + 1 | 0;
$92 = $15 + 2 | 0;
$diff$011 = 0;
while (1) {
_memset($14 | 0, -1, $blocksize | 0) | 0;
HEAP8[$44 >> 0] = (HEAPU8[$44 >> 0] | 0) - $diff$011;
HEAP8[$89 >> 0] = 0;
HEAP8[$14 >> 0] = 0;
HEAP8[$90 >> 0] = 7;
L60 : do if ($54) {
$i$56 = 0;
do {
HEAP8[$16 + $i$56 >> 0] = $i$56;
$i$56 = $i$56 + 1 | 0;
} while (($i$56 | 0) != ($3 | 0));
if ($54) {
if ($22) $i$69$us = 0; else {
$i$69 = 0;
while (1) {
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18 + $i$69 | 0, $14) | 0;
$j$3 = $blocksize;
do {
if (($j$3 | 0) <= 0) break;
$j$3 = $j$3 + -1 | 0;
$121 = $14 + $j$3 | 0;
$123 = (HEAP8[$121 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$121 >> 0] = $123;
} while ($123 << 24 >> 24 == 0);
$i$69 = $i$69 + $blocksize | 0;
if (($i$69 | 0) >= ($3 | 0)) break L60;
}
}
do {
FUNCTION_TABLE_iiii[$encrypt_one & 63]($13, $18 + $i$69$us | 0, $14) | 0;
$j$27$us = 0;
do {
$108 = $j$27$us + $i$69$us | 0;
$111 = $18 + $108 | 0;
HEAP8[$111 >> 0] = HEAP8[$111 >> 0] ^ HEAP8[$16 + $108 >> 0];
$j$27$us = $j$27$us + 1 | 0;
} while (($j$27$us | 0) != ($blocksize | 0));
$j$3$us = $blocksize;
do {
if (($j$3$us | 0) <= 0) break;
$j$3$us = $j$3$us + -1 | 0;
$102 = $14 + $j$3$us | 0;
$104 = (HEAP8[$102 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$102 >> 0] = $104;
} while ($104 << 24 >> 24 == 0);
$i$69$us = $i$69$us + $blocksize | 0;
} while (($i$69$us | 0) < ($3 | 0));
}
} while (0);
_memset($15 | 0, -1, $blocksize | 0) | 0;
HEAP8[$50 >> 0] = (HEAPU8[$50 >> 0] | 0) - $diff$011;
HEAP8[$91 >> 0] = 0;
HEAP8[$15 >> 0] = 0;
HEAP8[$92 >> 0] = 7;
FUNCTION_TABLE_viiiii[$bulk_ctr_enc & 15]($13, $15, $17, $18, $nblocks);
if (_memcmp($17, $16, $3) | 0) {
label = 49;
break;
}
$diff$011 = $diff$011 + 1 | 0;
if (_memcmp($15, $14, $blocksize) | 0) {
label = 51;
break;
}
if (($diff$011 | 0) >= ($nblocks | 0)) break L56;
}
if ((label | 0) == 49) {
__gcry_free($8);
$$0 = 46470;
return $$0 | 0;
} else if ((label | 0) == 51) {
__gcry_free($8);
$$0 = 46470;
return $$0 | 0;
}
} while (0);
__gcry_free($8);
$$0 = 0;
return $$0 | 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, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $25 = 0, $27 = 0, $3 = 0, $30 = 0, $32 = 0, $34 = 0, $4 = 0, $40 = 0, $43 = 0, $45 = 0, $72 = 0, $80 = 0, $82 = 0, $83 = 0, $87 = 0, $9 = 0, $R = 0, $ctx = 0, $curvename$010 = 0, $curvename$1 = 0, $data_e = 0, $ec$0 = 0, $kG = 0, $l1 = 0, $mpi_g = 0, $r$0 = 0, $rc$0 = 0, $rc$1 = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer21 = 0, $vararg_buffer24 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224 | 0;
$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 + 176 | 0;
$l1 = sp + 168 | 0;
$data_e = sp + 164 | 0;
$sk = sp + 104 | 0;
$mpi_g = sp + 100 | 0;
$kG = sp + 88 | 0;
$R = sp + 76 | 0;
HEAP32[$l1 >> 2] = 0;
HEAP32[$data_e >> 2] = 0;
HEAP32[$mpi_g >> 2] = 0;
dest = $sk;
stop = dest + 60 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_mpi_point_init($kG);
__gcry_mpi_point_init($R);
__gcry_pk_util_init_encoding_ctx($ctx, 1, _ecc_get_nbits($keyparms) | 0);
$1 = __gcry_pk_util_preparse_encval($s_data, 12480, $l1, $ctx) | 0;
do if (!$1) {
$3 = HEAP32[$l1 >> 2] | 0;
HEAP32[$vararg_buffer >> 2] = $data_e;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
$4 = __gcry_sexp_extract_param($3, 0, 47185, $vararg_buffer) | 0;
if (!$4) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(47187, HEAP32[$data_e >> 2] | 0);
$9 = HEAP32[$data_e >> 2] | 0;
if ($9) if (HEAP32[$9 + 12 >> 2] & 4) {
$curvename$1 = 0;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = 79;
break;
}
$15 = $sk + 8 | 0;
$16 = $sk + 12 | 0;
$17 = $sk + 16 | 0;
$18 = $sk + 32 | 0;
$19 = $sk + 36 | 0;
$20 = $sk + 56 | 0;
HEAP32[$vararg_buffer2 >> 2] = $15;
HEAP32[$vararg_buffer2 + 4 >> 2] = $16;
HEAP32[$vararg_buffer2 + 8 >> 2] = $17;
HEAP32[$vararg_buffer2 + 12 >> 2] = $mpi_g;
HEAP32[$vararg_buffer2 + 16 >> 2] = $18;
HEAP32[$vararg_buffer2 + 20 >> 2] = $19;
HEAP32[$vararg_buffer2 + 24 >> 2] = $20;
HEAP32[$vararg_buffer2 + 28 >> 2] = 0;
$21 = __gcry_sexp_extract_param($keyparms, 0, 47204, $vararg_buffer2) | 0;
if (!$21) {
if (HEAP32[$mpi_g >> 2] | 0) {
$25 = $sk + 20 | 0;
__gcry_mpi_point_init($25);
$27 = __gcry_ecc_os2ec($25, HEAP32[$mpi_g >> 2] | 0) | 0;
if ($27) {
$curvename$1 = 0;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = $27;
break;
}
}
__gcry_sexp_release(HEAP32[$l1 >> 2] | 0);
$30 = __gcry_sexp_find_token($keyparms, 46586, 5) | 0;
HEAP32[$l1 >> 2] = $30;
if (!$30) label = 13; else {
$32 = __gcry_sexp_nth_string($30, 1) | 0;
if (!$32) label = 13; else {
$34 = __gcry_ecc_fill_in_curve(0, $32, $sk, 0) | 0;
if (!$34) $curvename$010 = $32; else {
$$0 = $34;
STACKTOP = sp;
return $$0 | 0;
}
}
}
if ((label | 0) == 13) {
HEAP32[$sk >> 2] = 0;
HEAP32[$sk + 4 >> 2] = 0;
$curvename$010 = 0;
}
if (__gcry_get_debug_flag(1) | 0) {
$40 = __gcry_ecc_model2str(HEAP32[$sk >> 2] | 0) | 0;
$43 = __gcry_ecc_dialect2str(HEAP32[$sk + 4 >> 2] | 0) | 0;
HEAP32[$vararg_buffer12 >> 2] = $40;
HEAP32[$vararg_buffer12 + 4 >> 2] = $43;
__gcry_log_debug(47220, $vararg_buffer12);
$45 = HEAP32[$sk + 40 >> 2] | 0;
if ($45) {
HEAP32[$vararg_buffer16 >> 2] = $45;
__gcry_log_debug(47245, $vararg_buffer16);
}
__gcry_log_printmpi(47267, HEAP32[$15 >> 2] | 0);
__gcry_log_printmpi(47284, HEAP32[$16 >> 2] | 0);
__gcry_log_printmpi(47301, HEAP32[$17 >> 2] | 0);
__gcry_mpi_point_log(47318, $sk + 20 | 0, 0);
__gcry_log_printmpi(47333, HEAP32[$18 >> 2] | 0);
__gcry_log_printmpi(47350, HEAP32[$19 >> 2] | 0);
if (!(__gcry_fips_mode() | 0)) __gcry_log_printmpi(47367, HEAP32[$20 >> 2] | 0);
}
if ((HEAP32[$15 >> 2] | 0) == 0 | (HEAP32[$16 >> 2] | 0) == 0 | (HEAP32[$17 >> 2] | 0) == 0) {
$curvename$1 = $curvename$010;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = 68;
} else if ((HEAP32[$sk + 20 >> 2] | 0) == 0 | (HEAP32[$18 >> 2] | 0) == 0 | (HEAP32[$19 >> 2] | 0) == 0 | (HEAP32[$20 >> 2] | 0) == 0) {
$curvename$1 = $curvename$010;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = 68;
} else {
$72 = __gcry_ecc_os2ec($kG, HEAP32[$data_e >> 2] | 0) | 0;
if ($72) {
__gcry_mpi_point_free_parts($kG);
$$0 = $72;
STACKTOP = sp;
return $$0 | 0;
}
$80 = __gcry_mpi_ec_p_internal_new(HEAP32[$sk >> 2] | 0, HEAP32[$sk + 4 >> 2] | 0, 0, HEAP32[$15 >> 2] | 0, HEAP32[$16 >> 2] | 0, HEAP32[$17 >> 2] | 0) | 0;
__gcry_mpi_ec_mul_point($R, HEAP32[$20 >> 2] | 0, $kG, $80);
$82 = __gcry_mpi_new(0) | 0;
$83 = __gcry_mpi_new(0) | 0;
if (__gcry_mpi_ec_get_affine($82, $83, $R, $80) | 0) __gcry_log_fatal(47384, $vararg_buffer19);
$87 = __gcry_ecc_ec2os($82, $83, HEAP32[$15 >> 2] | 0) | 0;
if (!$87) $rc$0 = _gpg_err_code_from_syserror() | 0; else $rc$0 = 0;
__gcry_mpi_free($82);
__gcry_mpi_free($83);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(47424, $87);
if (!$rc$0) {
HEAP32[$vararg_buffer21 >> 2] = $87;
$curvename$1 = $curvename$010;
$ec$0 = $80;
$r$0 = $87;
$rc$1 = __gcry_sexp_build($r_plain, 0, 47441, $vararg_buffer21) | 0;
} else {
$curvename$1 = $curvename$010;
$ec$0 = $80;
$r$0 = $87;
$rc$1 = $rc$0;
}
}
} else {
$curvename$1 = 0;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = $21;
}
} else {
$curvename$1 = 0;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = $4;
}
} else {
$curvename$1 = 0;
$ec$0 = 0;
$r$0 = 0;
$rc$1 = $1;
} while (0);
__gcry_mpi_point_free_parts($R);
__gcry_mpi_point_free_parts($kG);
__gcry_mpi_release($r$0);
__gcry_mpi_release(HEAP32[$sk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_g >> 2] | 0);
__gcry_mpi_point_free_parts($sk + 20 | 0);
__gcry_mpi_release(HEAP32[$sk + 32 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 36 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 56 >> 2] | 0);
__gcry_mpi_release(HEAP32[$data_e >> 2] | 0);
__gcry_free($curvename$1);
__gcry_sexp_release(HEAP32[$l1 >> 2] | 0);
__gcry_mpi_ec_free($ec$0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer24 >> 2] = _gpg_strerror($rc$1) | 0;
__gcry_log_debug(47452, $vararg_buffer24);
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 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, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $21 = 0, $23 = 0, $25 = 0, $27 = 0, $29 = 0, $35 = 0, $38 = 0, $40 = 0, $55 = 0, $6 = 0, $64 = 0, $66 = 0, $71 = 0, $72 = 0, $73 = 0, $78 = 0, $83 = 0, $ctx = 0, $curvename$08 = 0, $curvename$1 = 0, $data = 0, $ec$0 = 0, $mpi_e$0 = 0, $mpi_g = 0, $mpi_q = 0, $mpi_s$0 = 0, $pk = 0, $rc$0 = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0, $vararg_buffer23 = 0, $vararg_buffer8 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$vararg_buffer23 = sp + 72 | 0;
$vararg_buffer19 = sp + 64 | 0;
$vararg_buffer17 = sp + 56 | 0;
$vararg_buffer15 = sp + 48 | 0;
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer8 = sp + 32 | 0;
$vararg_buffer = sp;
$ctx = sp + 152 | 0;
$mpi_g = sp + 144 | 0;
$mpi_q = sp + 140 | 0;
$data = sp + 136 | 0;
$pk = sp + 80 | 0;
HEAP32[$mpi_g >> 2] = 0;
HEAP32[$mpi_q >> 2] = 0;
HEAP32[$data >> 2] = 0;
dest = $pk;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
__gcry_pk_util_init_encoding_ctx($ctx, 0, _ecc_get_nbits($keyparms) | 0);
$1 = __gcry_pk_util_data_to_mpi($s_data, $data, $ctx) | 0;
do if (!$1) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(47474, HEAP32[$data >> 2] | 0);
$6 = HEAP32[$data >> 2] | 0;
if ($6) if (HEAP32[$6 + 12 >> 2] & 4) {
$curvename$1 = 0;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = 79;
break;
}
$12 = $pk + 8 | 0;
$13 = $pk + 12 | 0;
$14 = $pk + 16 | 0;
$15 = $pk + 32 | 0;
$16 = $pk + 36 | 0;
HEAP32[$vararg_buffer >> 2] = $12;
HEAP32[$vararg_buffer + 4 >> 2] = $13;
HEAP32[$vararg_buffer + 8 >> 2] = $14;
HEAP32[$vararg_buffer + 12 >> 2] = $mpi_g;
HEAP32[$vararg_buffer + 16 >> 2] = $15;
HEAP32[$vararg_buffer + 20 >> 2] = $16;
HEAP32[$vararg_buffer + 24 >> 2] = $mpi_q;
HEAP32[$vararg_buffer + 28 >> 2] = 0;
$17 = __gcry_sexp_extract_param($keyparms, 0, 47491, $vararg_buffer) | 0;
if (!$17) {
if (HEAP32[$mpi_g >> 2] | 0) {
$21 = $pk + 20 | 0;
__gcry_mpi_point_init($21);
$23 = __gcry_ecc_os2ec($21, HEAP32[$mpi_g >> 2] | 0) | 0;
if ($23) {
$curvename$1 = 0;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = $23;
break;
}
}
__gcry_sexp_release(0);
$25 = __gcry_sexp_find_token($keyparms, 46586, 5) | 0;
if (!$25) label = 12; else {
$27 = __gcry_sexp_nth_string($25, 1) | 0;
if (!$27) label = 12; else {
$29 = __gcry_ecc_fill_in_curve(0, $27, $pk, 0) | 0;
if (!$29) $curvename$08 = $27; else {
$$0 = $29;
STACKTOP = sp;
return $$0 | 0;
}
}
}
if ((label | 0) == 12) {
HEAP32[$pk >> 2] = 0;
HEAP32[$pk + 4 >> 2] = 0;
$curvename$08 = 0;
}
if (__gcry_get_debug_flag(1) | 0) {
$35 = __gcry_ecc_model2str(HEAP32[$pk >> 2] | 0) | 0;
$38 = __gcry_ecc_dialect2str(HEAP32[$pk + 4 >> 2] | 0) | 0;
HEAP32[$vararg_buffer8 >> 2] = $35;
HEAP32[$vararg_buffer8 + 4 >> 2] = $38;
__gcry_log_debug(47507, $vararg_buffer8);
$40 = HEAP32[$pk + 40 >> 2] | 0;
if ($40) {
HEAP32[$vararg_buffer12 >> 2] = $40;
__gcry_log_debug(47532, $vararg_buffer12);
}
__gcry_log_printmpi(47554, HEAP32[$12 >> 2] | 0);
__gcry_log_printmpi(47571, HEAP32[$13 >> 2] | 0);
__gcry_log_printmpi(47588, HEAP32[$14 >> 2] | 0);
__gcry_mpi_point_log(47605, $pk + 20 | 0, 0);
__gcry_log_printmpi(47620, HEAP32[$15 >> 2] | 0);
__gcry_log_printmpi(47637, HEAP32[$16 >> 2] | 0);
__gcry_log_printmpi(47654, HEAP32[$mpi_q >> 2] | 0);
}
if ((HEAP32[$12 >> 2] | 0) == 0 | (HEAP32[$13 >> 2] | 0) == 0 | (HEAP32[$14 >> 2] | 0) == 0) {
$curvename$1 = $curvename$08;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = 68;
} else {
$55 = $pk + 20 | 0;
if ((HEAP32[$55 >> 2] | 0) == 0 | (HEAP32[$15 >> 2] | 0) == 0) {
$curvename$1 = $curvename$08;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = 68;
} else if ((HEAP32[$16 >> 2] | 0) != 0 & (HEAP32[$mpi_q >> 2] | 0) != 0) {
$64 = $pk + 44 | 0;
__gcry_mpi_point_init($64);
$66 = __gcry_ecc_os2ec($64, HEAP32[$mpi_q >> 2] | 0) | 0;
if (!$66) {
$71 = __gcry_mpi_ec_p_internal_new(HEAP32[$pk >> 2] | 0, HEAP32[$pk + 4 >> 2] | 0, 0, HEAP32[$12 >> 2] | 0, HEAP32[$13 >> 2] | 0, HEAP32[$14 >> 2] | 0) | 0;
$72 = __gcry_mpi_new(0) | 0;
$73 = __gcry_mpi_new(0) | 0;
__gcry_mpi_point_init($vararg_buffer);
__gcry_mpi_ec_mul_point($vararg_buffer, HEAP32[$data >> 2] | 0, $64, $71);
if (__gcry_mpi_ec_get_affine($72, $73, $vararg_buffer, $71) | 0) __gcry_log_fatal(47671, $vararg_buffer15);
$78 = __gcry_ecc_ec2os($72, $73, HEAP32[$12 >> 2] | 0) | 0;
__gcry_mpi_ec_mul_point($vararg_buffer, HEAP32[$data >> 2] | 0, $55, $71);
if (!(__gcry_mpi_ec_get_affine($72, $73, $vararg_buffer, $71) | 0)) {
$83 = __gcry_ecc_ec2os($72, $73, HEAP32[$12 >> 2] | 0) | 0;
__gcry_mpi_free($72);
__gcry_mpi_free($73);
__gcry_mpi_point_free_parts($vararg_buffer);
HEAP32[$vararg_buffer19 >> 2] = $78;
HEAP32[$vararg_buffer19 + 4 >> 2] = $83;
$curvename$1 = $curvename$08;
$ec$0 = $71;
$mpi_e$0 = $83;
$mpi_s$0 = $78;
$rc$0 = __gcry_sexp_build($r_ciph, 0, 47766, $vararg_buffer19) | 0;
break;
} else __gcry_log_fatal(47719, $vararg_buffer17);
} else {
$curvename$1 = $curvename$08;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = $66;
}
} else {
$curvename$1 = $curvename$08;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = 68;
}
}
} else {
$curvename$1 = 0;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = $17;
}
} else {
$curvename$1 = 0;
$ec$0 = 0;
$mpi_e$0 = 0;
$mpi_s$0 = 0;
$rc$0 = $1;
} while (0);
__gcry_mpi_release(HEAP32[$pk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_g >> 2] | 0);
__gcry_mpi_point_free_parts($pk + 20 | 0);
__gcry_mpi_release(HEAP32[$pk + 32 >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 36 >> 2] | 0);
__gcry_mpi_release(HEAP32[$mpi_q >> 2] | 0);
__gcry_mpi_point_free_parts($pk + 44 | 0);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_mpi_release($mpi_s$0);
__gcry_mpi_release($mpi_e$0);
__gcry_free($curvename$1);
__gcry_mpi_ec_free($ec$0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = $rc$0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer23 >> 2] = _gpg_strerror($rc$0) | 0;
__gcry_log_debug(47792, $vararg_buffer23);
$$0 = $rc$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 $$015 = 0, $$burn_stack_depth$0 = 0, $$lcssa = 0, $$lcssa27 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $11 = 0, $115 = 0, $12 = 0, $121 = 0, $127 = 0, $13 = 0, $133 = 0, $138 = 0, $14 = 0, $143 = 0, $149 = 0, $15 = 0, $155 = 0, $16 = 0, $160 = 0, $168 = 0, $169 = 0, $17 = 0, $176 = 0, $177 = 0, $179 = 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, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $49 = 0, $5 = 0, $55 = 0, $6 = 0, $61 = 0, $67 = 0, $7 = 0, $73 = 0, $79 = 0, $8 = 0, $85 = 0, $9 = 0, $91 = 0, $97 = 0, $_vlen$0$lcssa22 = 0, $_vlen$08 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$36 = 0, $_vptr$0$lcssa23 = 0, $_vptr$07 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$35 = 0, $burn_stack_depth$0$lcssa = 0, $burn_stack_depth$013 = 0, $inbuf$012 = 0, $outbuf$014 = 0, $savebuf = 0, $scevgep = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$savebuf = sp;
if (!$nblocks) $burn_stack_depth$0$lcssa = 0; else {
$1 = $iv;
$2 = $savebuf + 4 | 0;
$3 = $iv + 4 | 0;
$4 = $savebuf + 8 | 0;
$5 = $iv + 8 | 0;
$6 = $savebuf + 12 | 0;
$7 = $iv + 12 | 0;
$8 = $savebuf + 1 | 0;
$9 = $iv + 1 | 0;
$10 = $savebuf + 2 | 0;
$11 = $iv + 2 | 0;
$12 = $savebuf + 3 | 0;
$13 = $iv + 3 | 0;
$14 = $savebuf + 4 | 0;
$15 = $iv + 4 | 0;
$16 = $savebuf + 5 | 0;
$17 = $iv + 5 | 0;
$18 = $savebuf + 6 | 0;
$19 = $iv + 6 | 0;
$20 = $savebuf + 7 | 0;
$21 = $iv + 7 | 0;
$22 = $savebuf + 8 | 0;
$23 = $iv + 8 | 0;
$24 = $savebuf + 9 | 0;
$25 = $iv + 9 | 0;
$26 = $savebuf + 10 | 0;
$27 = $iv + 10 | 0;
$28 = $savebuf + 11 | 0;
$29 = $iv + 11 | 0;
$30 = $savebuf + 12 | 0;
$31 = $iv + 12 | 0;
$32 = $savebuf + 13 | 0;
$33 = $iv + 13 | 0;
$34 = $savebuf + 14 | 0;
$35 = $iv + 14 | 0;
$36 = $savebuf + 15 | 0;
$37 = $iv + 15 | 0;
$$015 = $nblocks;
$burn_stack_depth$013 = 0;
$inbuf$012 = $inbuf_arg;
$outbuf$014 = $outbuf_arg;
while (1) {
_twofish_decrypt($context, $savebuf, $inbuf$012) | 0;
$$burn_stack_depth$0 = $burn_stack_depth$013 >>> 0 < 36 ? 36 : $burn_stack_depth$013;
if (!(($inbuf$012 | $1 | $outbuf$014) & 3)) {
$143 = HEAP32[$inbuf$012 >> 2] | 0;
HEAP32[$outbuf$014 >> 2] = HEAP32[$savebuf >> 2] ^ HEAP32[$iv >> 2];
HEAP32[$iv >> 2] = $143;
$149 = HEAP32[$inbuf$012 + 4 >> 2] | 0;
HEAP32[$outbuf$014 + 4 >> 2] = HEAP32[$2 >> 2] ^ HEAP32[$3 >> 2];
HEAP32[$3 >> 2] = $149;
$155 = HEAP32[$inbuf$012 + 8 >> 2] | 0;
HEAP32[$outbuf$014 + 8 >> 2] = HEAP32[$4 >> 2] ^ HEAP32[$5 >> 2];
HEAP32[$5 >> 2] = $155;
$160 = HEAP32[$inbuf$012 + 12 >> 2] | 0;
HEAP32[$outbuf$014 + 12 >> 2] = HEAP32[$6 >> 2] ^ HEAP32[$7 >> 2];
HEAP32[$7 >> 2] = $160;
} else {
$49 = HEAP8[$inbuf$012 >> 0] | 0;
HEAP8[$outbuf$014 >> 0] = HEAP8[$savebuf >> 0] ^ HEAP8[$iv >> 0];
HEAP8[$iv >> 0] = $49;
$55 = HEAP8[$inbuf$012 + 1 >> 0] | 0;
HEAP8[$outbuf$014 + 1 >> 0] = HEAP8[$8 >> 0] ^ HEAP8[$9 >> 0];
HEAP8[$9 >> 0] = $55;
$61 = HEAP8[$inbuf$012 + 2 >> 0] | 0;
HEAP8[$outbuf$014 + 2 >> 0] = HEAP8[$10 >> 0] ^ HEAP8[$11 >> 0];
HEAP8[$11 >> 0] = $61;
$67 = HEAP8[$inbuf$012 + 3 >> 0] | 0;
HEAP8[$outbuf$014 + 3 >> 0] = HEAP8[$12 >> 0] ^ HEAP8[$13 >> 0];
HEAP8[$13 >> 0] = $67;
$73 = HEAP8[$inbuf$012 + 4 >> 0] | 0;
HEAP8[$outbuf$014 + 4 >> 0] = HEAP8[$14 >> 0] ^ HEAP8[$15 >> 0];
HEAP8[$15 >> 0] = $73;
$79 = HEAP8[$inbuf$012 + 5 >> 0] | 0;
HEAP8[$outbuf$014 + 5 >> 0] = HEAP8[$16 >> 0] ^ HEAP8[$17 >> 0];
HEAP8[$17 >> 0] = $79;
$85 = HEAP8[$inbuf$012 + 6 >> 0] | 0;
HEAP8[$outbuf$014 + 6 >> 0] = HEAP8[$18 >> 0] ^ HEAP8[$19 >> 0];
HEAP8[$19 >> 0] = $85;
$91 = HEAP8[$inbuf$012 + 7 >> 0] | 0;
HEAP8[$outbuf$014 + 7 >> 0] = HEAP8[$20 >> 0] ^ HEAP8[$21 >> 0];
HEAP8[$21 >> 0] = $91;
$97 = HEAP8[$inbuf$012 + 8 >> 0] | 0;
HEAP8[$outbuf$014 + 8 >> 0] = HEAP8[$22 >> 0] ^ HEAP8[$23 >> 0];
HEAP8[$23 >> 0] = $97;
$103 = HEAP8[$inbuf$012 + 9 >> 0] | 0;
HEAP8[$outbuf$014 + 9 >> 0] = HEAP8[$24 >> 0] ^ HEAP8[$25 >> 0];
HEAP8[$25 >> 0] = $103;
$109 = HEAP8[$inbuf$012 + 10 >> 0] | 0;
HEAP8[$outbuf$014 + 10 >> 0] = HEAP8[$26 >> 0] ^ HEAP8[$27 >> 0];
HEAP8[$27 >> 0] = $109;
$115 = HEAP8[$inbuf$012 + 11 >> 0] | 0;
HEAP8[$outbuf$014 + 11 >> 0] = HEAP8[$28 >> 0] ^ HEAP8[$29 >> 0];
HEAP8[$29 >> 0] = $115;
$121 = HEAP8[$inbuf$012 + 12 >> 0] | 0;
HEAP8[$outbuf$014 + 12 >> 0] = HEAP8[$30 >> 0] ^ HEAP8[$31 >> 0];
HEAP8[$31 >> 0] = $121;
$127 = HEAP8[$inbuf$012 + 13 >> 0] | 0;
HEAP8[$outbuf$014 + 13 >> 0] = HEAP8[$32 >> 0] ^ HEAP8[$33 >> 0];
HEAP8[$33 >> 0] = $127;
$133 = HEAP8[$inbuf$012 + 14 >> 0] | 0;
HEAP8[$outbuf$014 + 14 >> 0] = HEAP8[$34 >> 0] ^ HEAP8[$35 >> 0];
HEAP8[$35 >> 0] = $133;
$138 = HEAP8[$inbuf$012 + 15 >> 0] | 0;
HEAP8[$outbuf$014 + 15 >> 0] = HEAP8[$36 >> 0] ^ HEAP8[$37 >> 0];
HEAP8[$37 >> 0] = $138;
}
$$015 = $$015 + -1 | 0;
if (!$$015) {
$burn_stack_depth$0$lcssa = $$burn_stack_depth$0;
break;
} else {
$burn_stack_depth$013 = $$burn_stack_depth$0;
$inbuf$012 = $inbuf$012 + 16 | 0;
$outbuf$014 = $outbuf$014 + 16 | 0;
}
}
}
if (!($savebuf & 4)) {
$_vlen$0$lcssa22 = 16;
$_vptr$0$lcssa23 = $savebuf;
label = 10;
} else {
$_vlen$08 = 16;
$_vptr$07 = $savebuf;
while (1) {
HEAP8[$_vptr$07 >> 0] = 0;
$168 = $_vptr$07 + 1 | 0;
$169 = $_vlen$08 + -1 | 0;
if (($169 | 0) != 0 & ($168 & 7 | 0) != 0) {
$_vlen$08 = $169;
$_vptr$07 = $168;
} else {
$$lcssa = $168;
$$lcssa27 = $169;
break;
}
}
if ($$lcssa27 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa27;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa22 = $$lcssa27;
$_vptr$0$lcssa23 = $$lcssa;
label = 10;
}
}
if ((label | 0) == 10) {
$176 = $_vlen$0$lcssa22 + -8 | 0;
$177 = $176 & -8;
$scevgep = $_vptr$0$lcssa23 + ($177 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa22;
$_vptr$1 = $_vptr$0$lcssa23;
while (1) {
$179 = $_vptr$1;
HEAP32[$179 >> 2] = 0;
HEAP32[$179 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $176 - $177 | 0;
$_vptr$3$ph = $scevgep;
}
if (!$_vlen$3$ph) {
___gcry_burn_stack($burn_stack_depth$0$lcssa);
STACKTOP = sp;
return;
} else {
$_vlen$36 = $_vlen$3$ph;
$_vptr$35 = $_vptr$3$ph;
}
while (1) {
HEAP8[$_vptr$35 >> 0] = 0;
$_vlen$36 = $_vlen$36 + -1 | 0;
if (!$_vlen$36) break; else $_vptr$35 = $_vptr$35 + 1 | 0;
}
___gcry_burn_stack($burn_stack_depth$0$lcssa);
STACKTOP = sp;
return;
}
function _transform_1337($ctx, $data, $nblks) {
$ctx = $ctx | 0;
$data = $data | 0;
$nblks = $nblks | 0;
var $$0 = 0, $$01 = 0, $$lcssa = 0, $$lcssa44 = 0, $$lcssa45 = 0, $$lcssa46 = 0, $$lcssa47 = 0, $$lcssa48 = 0, $$lcssa49 = 0, $$lcssa50 = 0, $0 = 0, $1 = 0, $100 = 0, $101 = 0, $116 = 0, $124 = 0, $141 = 0, $142 = 0, $157 = 0, $165 = 0, $182 = 0, $183 = 0, $198 = 0, $2 = 0, $206 = 0, $223 = 0, $224 = 0, $239 = 0, $247 = 0, $264 = 0, $265 = 0, $280 = 0, $288 = 0, $3 = 0, $305 = 0, $306 = 0, $31 = 0, $321 = 0, $329 = 0, $346 = 0, $347 = 0, $362 = 0, $370 = 0, $387 = 0, $388 = 0, $4 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $5 = 0, $57 = 0, $6 = 0, $7 = 0, $83 = 0, $9 = 0, $a$09$i = 0, $b$08$i = 0, $c$02$i = 0, $d$03$i = 0, $e$04$i = 0, $f$05$i = 0, $g$06$i = 0, $h$07$i = 0, $i$012$i = 0, $i$111$i = 0, $i$210$i = 0, $w$i = 0, sp = 0, $57$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
$w$i = sp;
$0 = $ctx + 160 | 0;
$1 = $ctx + 164 | 0;
$2 = $ctx + 168 | 0;
$3 = $ctx + 172 | 0;
$4 = $ctx + 176 | 0;
$5 = $ctx + 180 | 0;
$6 = $ctx + 184 | 0;
$7 = $ctx + 188 | 0;
$$0 = $data;
$$01 = $nblks;
$410 = HEAP32[$7 >> 2] | 0;
$411 = HEAP32[$6 >> 2] | 0;
$412 = HEAP32[$5 >> 2] | 0;
$413 = HEAP32[$4 >> 2] | 0;
$414 = HEAP32[$3 >> 2] | 0;
$415 = HEAP32[$2 >> 2] | 0;
$416 = HEAP32[$1 >> 2] | 0;
$417 = HEAP32[$0 >> 2] | 0;
while (1) {
$i$012$i = 0;
do {
$9 = $$0 + ($i$012$i << 2) | 0;
HEAP32[$w$i + ($i$012$i << 2) >> 2] = (HEAPU8[$9 + 1 >> 0] | 0) << 16 | (HEAPU8[$9 >> 0] | 0) << 24 | (HEAPU8[$9 + 2 >> 0] | 0) << 8 | (HEAPU8[$9 + 3 >> 0] | 0);
$i$012$i = $i$012$i + 1 | 0;
} while (($i$012$i | 0) != 16);
$57 = HEAP32[$w$i >> 2] | 0;
$i$111$i = 16;
do {
$31 = HEAP32[$w$i + ($i$111$i + -2 << 2) >> 2] | 0;
$57$looptemp = $57;
$57 = HEAP32[$w$i + ($i$111$i + -15 << 2) >> 2] | 0;
HEAP32[$w$i + ($i$111$i << 2) >> 2] = (HEAP32[$w$i + ($i$111$i + -7 << 2) >> 2] | 0) + $57$looptemp + (($31 >>> 19 | $31 << 13) ^ $31 >>> 10 ^ ($31 >>> 17 | $31 << 15)) + (($57 >>> 18 | $57 << 14) ^ $57 >>> 3 ^ ($57 >>> 7 | $57 << 25));
$i$111$i = $i$111$i + 1 | 0;
} while (($i$111$i | 0) != 64);
$a$09$i = $417;
$b$08$i = $416;
$c$02$i = $415;
$d$03$i = $414;
$e$04$i = $413;
$f$05$i = $412;
$g$06$i = $411;
$h$07$i = $410;
$i$210$i = 0;
while (1) {
$83 = (($f$05$i ^ $g$06$i) & $e$04$i ^ $g$06$i) + $h$07$i + (HEAP32[12140 + ($i$210$i << 2) >> 2] | 0) + (($e$04$i >>> 6 | $e$04$i << 26) ^ ($e$04$i >>> 11 | $e$04$i << 21) ^ ($e$04$i >>> 25 | $e$04$i << 7)) + (HEAP32[$w$i + ($i$210$i << 2) >> 2] | 0) | 0;
$100 = $83 + $d$03$i | 0;
$101 = ($c$02$i & ($b$08$i | $a$09$i) | $b$08$i & $a$09$i) + (($a$09$i >>> 2 | $a$09$i << 30) ^ ($a$09$i >>> 13 | $a$09$i << 19) ^ ($a$09$i >>> 22 | $a$09$i << 10)) + $83 | 0;
$116 = $i$210$i | 1;
$124 = (HEAP32[12140 + ($116 << 2) >> 2] | 0) + $g$06$i + (HEAP32[$w$i + ($116 << 2) >> 2] | 0) + ($100 & ($e$04$i ^ $f$05$i) ^ $f$05$i) + (($100 >>> 6 | $100 << 26) ^ ($100 >>> 11 | $100 << 21) ^ ($100 >>> 25 | $100 << 7)) | 0;
$141 = $124 + $c$02$i | 0;
$142 = (($101 >>> 2 | $101 << 30) ^ ($101 >>> 13 | $101 << 19) ^ ($101 >>> 22 | $101 << 10)) + (($101 | $a$09$i) & $b$08$i | $101 & $a$09$i) + $124 | 0;
$157 = $i$210$i | 2;
$165 = (HEAP32[12140 + ($157 << 2) >> 2] | 0) + $f$05$i + (HEAP32[$w$i + ($157 << 2) >> 2] | 0) + ($141 & ($100 ^ $e$04$i) ^ $e$04$i) + (($141 >>> 6 | $141 << 26) ^ ($141 >>> 11 | $141 << 21) ^ ($141 >>> 25 | $141 << 7)) | 0;
$182 = $165 + $b$08$i | 0;
$183 = (($142 >>> 2 | $142 << 30) ^ ($142 >>> 13 | $142 << 19) ^ ($142 >>> 22 | $142 << 10)) + (($142 | $101) & $a$09$i | $142 & $101) + $165 | 0;
$198 = $i$210$i | 3;
$206 = (HEAP32[12140 + ($198 << 2) >> 2] | 0) + $e$04$i + (HEAP32[$w$i + ($198 << 2) >> 2] | 0) + ($182 & ($141 ^ $100) ^ $100) + (($182 >>> 6 | $182 << 26) ^ ($182 >>> 11 | $182 << 21) ^ ($182 >>> 25 | $182 << 7)) | 0;
$223 = $206 + $a$09$i | 0;
$224 = (($183 >>> 2 | $183 << 30) ^ ($183 >>> 13 | $183 << 19) ^ ($183 >>> 22 | $183 << 10)) + (($183 | $142) & $101 | $183 & $142) + $206 | 0;
$239 = $i$210$i | 4;
$247 = (HEAP32[12140 + ($239 << 2) >> 2] | 0) + $100 + (HEAP32[$w$i + ($239 << 2) >> 2] | 0) + ($223 & ($182 ^ $141) ^ $141) + (($223 >>> 6 | $223 << 26) ^ ($223 >>> 11 | $223 << 21) ^ ($223 >>> 25 | $223 << 7)) | 0;
$264 = $247 + $101 | 0;
$265 = (($224 >>> 2 | $224 << 30) ^ ($224 >>> 13 | $224 << 19) ^ ($224 >>> 22 | $224 << 10)) + (($224 | $183) & $142 | $224 & $183) + $247 | 0;
$280 = $i$210$i | 5;
$288 = (HEAP32[$w$i + ($280 << 2) >> 2] | 0) + (HEAP32[12140 + ($280 << 2) >> 2] | 0) + $141 + ($264 & ($223 ^ $182) ^ $182) + (($264 >>> 6 | $264 << 26) ^ ($264 >>> 11 | $264 << 21) ^ ($264 >>> 25 | $264 << 7)) | 0;
$305 = $288 + $142 | 0;
$306 = (($265 >>> 2 | $265 << 30) ^ ($265 >>> 13 | $265 << 19) ^ ($265 >>> 22 | $265 << 10)) + (($265 | $224) & $183 | $265 & $224) + $288 | 0;
$321 = $i$210$i | 6;
$329 = (HEAP32[$w$i + ($321 << 2) >> 2] | 0) + (HEAP32[12140 + ($321 << 2) >> 2] | 0) + $182 + ($305 & ($264 ^ $223) ^ $223) + (($305 >>> 6 | $305 << 26) ^ ($305 >>> 11 | $305 << 21) ^ ($305 >>> 25 | $305 << 7)) | 0;
$346 = $329 + $183 | 0;
$347 = (($306 >>> 2 | $306 << 30) ^ ($306 >>> 13 | $306 << 19) ^ ($306 >>> 22 | $306 << 10)) + (($306 | $265) & $224 | $306 & $265) + $329 | 0;
$362 = $i$210$i | 7;
$370 = (HEAP32[$w$i + ($362 << 2) >> 2] | 0) + (HEAP32[12140 + ($362 << 2) >> 2] | 0) + $223 + ($346 & ($305 ^ $264) ^ $264) + (($346 >>> 6 | $346 << 26) ^ ($346 >>> 11 | $346 << 21) ^ ($346 >>> 25 | $346 << 7)) | 0;
$387 = $370 + $224 | 0;
$388 = (($347 >>> 2 | $347 << 30) ^ ($347 >>> 13 | $347 << 19) ^ ($347 >>> 22 | $347 << 10)) + (($347 | $306) & $265 | $347 & $306) + $370 | 0;
$i$210$i = $i$210$i + 8 | 0;
if (($i$210$i | 0) >= 64) {
$$lcssa = $264;
$$lcssa44 = $265;
$$lcssa45 = $305;
$$lcssa46 = $306;
$$lcssa47 = $346;
$$lcssa48 = $347;
$$lcssa49 = $387;
$$lcssa50 = $388;
break;
} else {
$a$09$i = $388;
$b$08$i = $347;
$c$02$i = $306;
$d$03$i = $265;
$e$04$i = $387;
$f$05$i = $346;
$g$06$i = $305;
$h$07$i = $264;
}
}
$417 = (HEAP32[$0 >> 2] | 0) + $$lcssa50 | 0;
HEAP32[$0 >> 2] = $417;
$416 = (HEAP32[$1 >> 2] | 0) + $$lcssa48 | 0;
HEAP32[$1 >> 2] = $416;
$415 = (HEAP32[$2 >> 2] | 0) + $$lcssa46 | 0;
HEAP32[$2 >> 2] = $415;
$414 = (HEAP32[$3 >> 2] | 0) + $$lcssa44 | 0;
HEAP32[$3 >> 2] = $414;
$413 = (HEAP32[$4 >> 2] | 0) + $$lcssa49 | 0;
HEAP32[$4 >> 2] = $413;
$412 = (HEAP32[$5 >> 2] | 0) + $$lcssa47 | 0;
HEAP32[$5 >> 2] = $412;
$411 = (HEAP32[$6 >> 2] | 0) + $$lcssa45 | 0;
HEAP32[$6 >> 2] = $411;
$410 = (HEAP32[$7 >> 2] | 0) + $$lcssa | 0;
HEAP32[$7 >> 2] = $410;
$$01 = $$01 + -1 | 0;
if (!$$01) break; else $$0 = $$0 + 64 | 0;
}
STACKTOP = sp;
return 328;
}
function _md_close($a) {
$a = $a | 0;
var $$pre$i = 0, $$pre$phi10$iZ2D = 0, $1 = 0, $100 = 0, $101 = 0, $108 = 0, $109 = 0, $11 = 0, $111 = 0, $127 = 0, $128 = 0, $134 = 0, $135 = 0, $14 = 0, $142 = 0, $143 = 0, $145 = 0, $19 = 0, $25 = 0, $29 = 0, $3 = 0, $34 = 0, $40 = 0, $42 = 0, $5 = 0, $53 = 0, $54 = 0, $59 = 0, $6 = 0, $65 = 0, $66 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $89 = 0, $90 = 0, $93 = 0, $94 = 0, $_vlen$0$lcssa = 0, $_vlen$033 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$340 = 0, $_vlen2$0$lcssa = 0, $_vlen2$027 = 0, $_vlen2$1 = 0, $_vlen2$3$ph = 0, $_vlen2$323 = 0, $_vlen8$0$lcssa = 0, $_vlen8$017 = 0, $_vlen8$1 = 0, $_vlen8$3$ph = 0, $_vlen8$315 = 0, $_vptr$0$lcssa = 0, $_vptr$034 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$341 = 0, $_vptr1$0$lcssa = 0, $_vptr1$026 = 0, $_vptr1$1 = 0, $_vptr1$3$ph = 0, $_vptr1$322 = 0, $_vptr7$0$lcssa = 0, $_vptr7$016 = 0, $_vptr7$1 = 0, $_vptr7$3$ph = 0, $_vptr7$314 = 0, $a$i = 0, $b$i = 0, $c$i = 0, $r$0$1$i = 0, $r$02$i = 0, $r$044 = 0, $scevgep = 0, $scevgep59 = 0, $scevgep61 = 0, sp = 0, $r$044$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$a$i = sp + 16 | 0;
$b$i = sp + 8 | 0;
$c$i = sp;
if (!$a) {
STACKTOP = sp;
return;
}
$1 = HEAP32[$a >> 2] | 0;
$3 = HEAP32[$1 + 8 >> 2] | 0;
if (!$3) $53 = $1; else {
$5 = $a + 4 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (!$6) $25 = $3; else {
$8 = $a + 12 | 0;
if ((_fwrite($8, $6, 1, $3) | 0) != 1) __gcry_bug(36567, 630, 36572);
$11 = HEAP32[$a >> 2] | 0;
$r$0$1$i = HEAP32[$11 + 16 >> 2] | 0;
if (!$r$0$1$i) $$pre$i = $11; else {
$r$02$i = $r$0$1$i;
do {
$14 = HEAP32[$5 >> 2] | 0;
if (!$14) $$pre$phi10$iZ2D = $r$02$i + 16 | 0; else {
$19 = $r$02$i + 16 | 0;
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$r$02$i >> 2] | 0) + 32 >> 2] & 7]($19, $8, $14);
$$pre$phi10$iZ2D = $19;
}
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$r$02$i >> 2] | 0) + 32 >> 2] & 7]($$pre$phi10$iZ2D, 0, 0);
$r$02$i = HEAP32[$r$02$i + 4 >> 2] | 0;
} while (($r$02$i | 0) != 0);
$$pre$i = HEAP32[$a >> 2] | 0;
}
HEAP32[$5 >> 2] = 0;
$25 = HEAP32[$$pre$i + 8 >> 2] | 0;
}
_fclose($25) | 0;
HEAP32[(HEAP32[$a >> 2] | 0) + 8 >> 2] = 0;
HEAP32[$a$i >> 2] = $a;
$29 = $b$i;
HEAP32[$29 >> 2] = 42;
HEAP32[$29 + 4 >> 2] = 0;
$34 = $b$i;
$40 = ___muldi3(HEAP32[$a$i >> 2] | 0, 0, HEAP32[$34 >> 2] | 0, HEAP32[$34 + 4 >> 2] | 0) | 0;
$42 = $c$i;
HEAP32[$42 >> 2] = $40;
HEAP32[$42 + 4 >> 2] = tempRet0;
$53 = HEAP32[$a >> 2] | 0;
}
$54 = HEAP32[$53 + 16 >> 2] | 0;
if (!$54) $89 = $53; else {
$r$044 = $54;
do {
$r$044$looptemp = $r$044;
$r$044 = HEAP32[$r$044 + 4 >> 2] | 0;
$59 = HEAP32[$r$044$looptemp + 8 >> 2] | 0;
if (($59 | 0) != 0 & ($r$044$looptemp & 7 | 0) != 0) {
$_vlen$033 = $59;
$_vptr$034 = $r$044$looptemp;
while (1) {
HEAP8[$_vptr$034 >> 0] = 0;
$65 = $_vptr$034 + 1 | 0;
$66 = $_vlen$033 + -1 | 0;
if (($66 | 0) != 0 & ($65 & 7 | 0) != 0) {
$_vlen$033 = $66;
$_vptr$034 = $65;
} else {
$_vlen$0$lcssa = $66;
$_vptr$0$lcssa = $65;
break;
}
}
} else {
$_vlen$0$lcssa = $59;
$_vptr$0$lcssa = $r$044$looptemp;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$73 = $_vlen$0$lcssa + -8 | 0;
$74 = $73 & -8;
$scevgep61 = $_vptr$0$lcssa + 8 + $74 | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$75 = $_vptr$1;
HEAP32[$75 >> 2] = 0;
HEAP32[$75 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $73 - $74 | 0;
$_vptr$3$ph = $scevgep61;
}
if ($_vlen$3$ph) {
$_vlen$340 = $_vlen$3$ph;
$_vptr$341 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$341 >> 0] = 0;
$_vlen$340 = $_vlen$340 + -1 | 0;
if (!$_vlen$340) break; else $_vptr$341 = $_vptr$341 + 1 | 0;
}
}
__gcry_free($r$044$looptemp);
} while (($r$044 | 0) != 0);
$89 = HEAP32[$a >> 2] | 0;
}
$90 = HEAP32[$89 + 20 >> 2] | 0;
if (!$90) $127 = $89; else {
$93 = HEAP32[$89 + 24 >> 2] | 0;
$94 = $93 << 1;
if (($93 | 0) != 0 & ($90 & 7 | 0) != 0) {
$_vlen2$027 = $94;
$_vptr1$026 = $90;
while (1) {
HEAP8[$_vptr1$026 >> 0] = 0;
$100 = $_vptr1$026 + 1 | 0;
$101 = $_vlen2$027 + -1 | 0;
if (($101 | 0) != 0 & ($100 & 7 | 0) != 0) {
$_vlen2$027 = $101;
$_vptr1$026 = $100;
} else {
$_vlen2$0$lcssa = $101;
$_vptr1$0$lcssa = $100;
break;
}
}
} else {
$_vlen2$0$lcssa = $94;
$_vptr1$0$lcssa = $90;
}
if ($_vlen2$0$lcssa >>> 0 < 8) {
$_vlen2$3$ph = $_vlen2$0$lcssa;
$_vptr1$3$ph = $_vptr1$0$lcssa;
} else {
$108 = $_vlen2$0$lcssa + -8 | 0;
$109 = $108 & -8;
$scevgep59 = $_vptr1$0$lcssa + ($109 + 8) | 0;
$_vlen2$1 = $_vlen2$0$lcssa;
$_vptr1$1 = $_vptr1$0$lcssa;
while (1) {
$111 = $_vptr1$1;
HEAP32[$111 >> 2] = 0;
HEAP32[$111 + 4 >> 2] = 0;
$_vlen2$1 = $_vlen2$1 + -8 | 0;
if ($_vlen2$1 >>> 0 <= 7) break; else $_vptr1$1 = $_vptr1$1 + 8 | 0;
}
$_vlen2$3$ph = $108 - $109 | 0;
$_vptr1$3$ph = $scevgep59;
}
if ($_vlen2$3$ph) {
$_vlen2$323 = $_vlen2$3$ph;
$_vptr1$322 = $_vptr1$3$ph;
while (1) {
HEAP8[$_vptr1$322 >> 0] = 0;
$_vlen2$323 = $_vlen2$323 + -1 | 0;
if (!$_vlen2$323) break; else $_vptr1$322 = $_vptr1$322 + 1 | 0;
}
}
__gcry_free(HEAP32[(HEAP32[$a >> 2] | 0) + 20 >> 2] | 0);
$127 = HEAP32[$a >> 2] | 0;
}
$128 = HEAP32[$127 + 4 >> 2] | 0;
if (($128 | 0) != 0 & ($a & 7 | 0) != 0) {
$_vlen8$017 = $128;
$_vptr7$016 = $a;
while (1) {
HEAP8[$_vptr7$016 >> 0] = 0;
$134 = $_vptr7$016 + 1 | 0;
$135 = $_vlen8$017 + -1 | 0;
if (($135 | 0) != 0 & ($134 & 7 | 0) != 0) {
$_vlen8$017 = $135;
$_vptr7$016 = $134;
} else {
$_vlen8$0$lcssa = $135;
$_vptr7$0$lcssa = $134;
break;
}
}
} else {
$_vlen8$0$lcssa = $128;
$_vptr7$0$lcssa = $a;
}
if ($_vlen8$0$lcssa >>> 0 < 8) {
$_vlen8$3$ph = $_vlen8$0$lcssa;
$_vptr7$3$ph = $_vptr7$0$lcssa;
} else {
$142 = $_vlen8$0$lcssa + -8 | 0;
$143 = $142 & -8;
$scevgep = $_vptr7$0$lcssa + ($143 + 8) | 0;
$_vlen8$1 = $_vlen8$0$lcssa;
$_vptr7$1 = $_vptr7$0$lcssa;
while (1) {
$145 = $_vptr7$1;
HEAP32[$145 >> 2] = 0;
HEAP32[$145 + 4 >> 2] = 0;
$_vlen8$1 = $_vlen8$1 + -8 | 0;
if ($_vlen8$1 >>> 0 <= 7) break; else $_vptr7$1 = $_vptr7$1 + 8 | 0;
}
$_vlen8$3$ph = $142 - $143 | 0;
$_vptr7$3$ph = $scevgep;
}
if ($_vlen8$3$ph) {
$_vlen8$315 = $_vlen8$3$ph;
$_vptr7$314 = $_vptr7$3$ph;
while (1) {
HEAP8[$_vptr7$314 >> 0] = 0;
$_vlen8$315 = $_vlen8$315 + -1 | 0;
if (!$_vlen8$315) break; else $_vptr7$314 = $_vptr7$314 + 1 | 0;
}
}
__gcry_free($a);
STACKTOP = sp;
return;
}
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, $$0$lcssa$i = 0, $$0$lcssa$i$us = 0, $$0$us = 0, $$04 = 0, $$04$ph = 0, $$04$us = 0, $$06$i = 0, $$06$i$us = 0, $$1 = 0, $$1$ph$i = 0, $$1$ph$i$us = 0, $$1$us = 0, $$13$i = 0, $$13$i$us = 0, $$15 = 0, $$15$us = 0, $$2 = 0, $$26 = 0, $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $42 = 0, $44 = 0, $45 = 0, $52 = 0, $54 = 0, $55 = 0, $62 = 0, $63 = 0, $64 = 0, $8 = 0, $84 = 0, $87 = 0, $burn$0 = 0, $burn$0$us = 0, $burn$1 = 0, $burn$1$us = 0, $burn$2 = 0, $burn$3 = 0, $dst$0$ph$i = 0, $dst$0$ph$i$us = 0, $dst$01$i = 0, $dst$01$i$us = 0, $ldst$0$lcssa$i = 0, $ldst$0$lcssa$i$us = 0, $ldst$04$i = 0, $ldst$04$i$us = 0, $lsrc$0$lcssa$i = 0, $lsrc$0$lcssa$i$us = 0, $lsrc$05$i = 0, $lsrc$05$i$us = 0, $scevgep$i = 0, $scevgep$i$us = 0, $src$0$ph$i = 0, $src$0$ph$i$us = 0, $src$02$i = 0, $src$02$i$us = 0, $unused$0 = 0, $unused$0$us = 0, $unused$1 = 0, $unused$1$us = 0, $unused$5 = 0, label = 0;
$0 = $c + 160 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$3 = HEAP32[$c + 224 >> 2] | 0;
if (!$buflen) if (($do_padding | 0) != 0 & ($1 | 0) != 0) $$04$ph = 0; else return; else $$04$ph = $buflen;
$8 = $c + 144 | 0;
L5 : do if (!$do_padding) {
$$0$us = $buf;
$$04$us = $$04$ph;
$burn$0$us = 0;
$unused$0$us = $1;
L6 : while (1) {
if (($unused$0$us | 0) != 0 | ($$04$us + $unused$0$us | 0) >>> 0 < 16) {
$12 = 16 - $unused$0$us | 0;
$14 = $12 >>> 0 < $$04$us >>> 0 ? $12 : $$04$us;
$15 = $c + 144 + $unused$0$us | 0;
if (!(($$0$us | $15) & 3)) {
if ($14 >>> 0 > 3) {
$22 = $14 + -4 | 0;
$23 = $22 & -4;
$24 = $23 + 4 | 0;
$scevgep$i$us = $15 + $24 | 0;
$$06$i$us = $14;
$ldst$04$i$us = $15;
$lsrc$05$i$us = $$0$us;
while (1) {
HEAP32[$ldst$04$i$us >> 2] = HEAP32[$lsrc$05$i$us >> 2];
$$06$i$us = $$06$i$us + -4 | 0;
if ($$06$i$us >>> 0 <= 3) break; else {
$ldst$04$i$us = $ldst$04$i$us + 4 | 0;
$lsrc$05$i$us = $lsrc$05$i$us + 4 | 0;
}
}
$$0$lcssa$i$us = $22 - $23 | 0;
$ldst$0$lcssa$i$us = $scevgep$i$us;
$lsrc$0$lcssa$i$us = $$0$us + $24 | 0;
} else {
$$0$lcssa$i$us = $14;
$ldst$0$lcssa$i$us = $15;
$lsrc$0$lcssa$i$us = $$0$us;
}
$$1$ph$i$us = $$0$lcssa$i$us;
$dst$0$ph$i$us = $ldst$0$lcssa$i$us;
$src$0$ph$i$us = $lsrc$0$lcssa$i$us;
} else {
$$1$ph$i$us = $14;
$dst$0$ph$i$us = $15;
$src$0$ph$i$us = $$0$us;
}
if ($$1$ph$i$us) {
$$13$i$us = $$1$ph$i$us;
$dst$01$i$us = $dst$0$ph$i$us;
$src$02$i$us = $src$0$ph$i$us;
while (1) {
HEAP8[$dst$01$i$us >> 0] = HEAP8[$src$02$i$us >> 0] | 0;
$$13$i$us = $$13$i$us + -1 | 0;
if (!$$13$i$us) break; else {
$dst$01$i$us = $dst$01$i$us + 1 | 0;
$src$02$i$us = $src$02$i$us + 1 | 0;
}
}
}
$$1$us = $$0$us + $14 | 0;
$$15$us = $$04$us - $14 | 0;
$unused$1$us = $14 + $unused$0$us | 0;
} else {
$$1$us = $$0$us;
$$15$us = $$04$us;
$unused$1$us = 0;
}
if (!$$15$us) {
$burn$3 = $burn$0$us;
$unused$5 = $unused$1$us;
break L5;
}
switch ($unused$1$us | 0) {
case 0:
{
$burn$1$us = $burn$0$us;
break;
}
case 16:
{
$burn$1$us = FUNCTION_TABLE_iiiii[$3 & 3]($c, $hash, $8, 1) | 0;
break;
}
default:
break L6;
}
$42 = $$15$us >>> 4;
if (!$42) {
$$0$us = $$1$us;
$$04$us = $$15$us;
$burn$0$us = $burn$1$us;
$unused$0$us = 0;
continue;
}
$44 = FUNCTION_TABLE_iiiii[$3 & 3]($c, $hash, $$1$us, $42) | 0;
$45 = $42 << 4;
if (($$15$us | 0) == ($45 | 0)) {
$burn$3 = $44;
$unused$5 = 0;
break L5;
} else {
$$0$us = $$1$us + $45 | 0;
$$04$us = $$15$us - $45 | 0;
$burn$0$us = $44;
$unused$0$us = 0;
}
}
__gcry_assert_failed(46286, 46306, 499, 46319);
} else {
$$0 = $buf;
$$04 = $$04$ph;
$burn$0 = 0;
$unused$0 = $1;
L30 : while (1) {
if (($unused$0 | 0) != 0 | ($$04 + $unused$0 | 0) >>> 0 < 16) {
$52 = 16 - $unused$0 | 0;
$54 = $52 >>> 0 < $$04 >>> 0 ? $52 : $$04;
$55 = $c + 144 + $unused$0 | 0;
if (!(($$0 | $55) & 3)) {
if ($54 >>> 0 > 3) {
$62 = $54 + -4 | 0;
$63 = $62 & -4;
$64 = $63 + 4 | 0;
$scevgep$i = $55 + $64 | 0;
$$06$i = $54;
$ldst$04$i = $55;
$lsrc$05$i = $$0;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
$$0$lcssa$i = $62 - $63 | 0;
$ldst$0$lcssa$i = $scevgep$i;
$lsrc$0$lcssa$i = $$0 + $64 | 0;
} else {
$$0$lcssa$i = $54;
$ldst$0$lcssa$i = $55;
$lsrc$0$lcssa$i = $$0;
}
$$1$ph$i = $$0$lcssa$i;
$dst$0$ph$i = $ldst$0$lcssa$i;
$src$0$ph$i = $lsrc$0$lcssa$i;
} else {
$$1$ph$i = $54;
$dst$0$ph$i = $55;
$src$0$ph$i = $$0;
}
if ($$1$ph$i) {
$$13$i = $$1$ph$i;
$dst$01$i = $dst$0$ph$i;
$src$02$i = $src$0$ph$i;
while (1) {
HEAP8[$dst$01$i >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
}
}
}
$$1 = $$0 + $54 | 0;
$$15 = $$04 - $54 | 0;
$unused$1 = $54 + $unused$0 | 0;
} else {
$$1 = $$0;
$$15 = $$04;
$unused$1 = 0;
}
if (($$15 | 0) == 0 & $unused$1 >>> 0 < 16) {
_memset($c + 144 + $unused$1 | 0, 0, 16 - $unused$1 | 0) | 0;
label = 33;
} else switch ($unused$1 | 0) {
case 0:
{
$burn$1 = $burn$0;
break;
}
case 16:
{
label = 33;
break;
}
default:
break L30;
}
if ((label | 0) == 33) {
label = 0;
$burn$1 = FUNCTION_TABLE_iiiii[$3 & 3]($c, $hash, $8, 1) | 0;
}
$84 = $$15 >>> 4;
if (!$84) {
$$2 = $$1;
$$26 = $$15;
$burn$2 = $burn$1;
} else {
$87 = $84 << 4;
$$2 = $$1 + $87 | 0;
$$26 = $$15 - $87 | 0;
$burn$2 = FUNCTION_TABLE_iiiii[$3 & 3]($c, $hash, $$1, $84) | 0;
}
if (!$$26) {
$burn$3 = $burn$2;
$unused$5 = 0;
break L5;
} else {
$$0 = $$2;
$$04 = $$26;
$burn$0 = $burn$2;
$unused$0 = 0;
}
}
__gcry_assert_failed(46286, 46306, 499, 46319);
} while (0);
HEAP32[$0 >> 2] = $unused$5;
if (!$burn$3) return;
___gcry_burn_stack($burn$3);
return;
}
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 $1 = 0, $10 = 0, $11 = 0, $114 = 0, $115 = 0, $122 = 0, $123 = 0, $125 = 0, $14 = 0, $15 = 0, $16 = 0, $18 = 0, $2 = 0, $23 = 0, $24 = 0, $30 = 0, $35 = 0, $40 = 0, $43 = 0, $48 = 0, $5 = 0, $53 = 0, $54 = 0, $56 = 0, $6 = 0, $60 = 0, $63 = 0, $69 = 0, $7 = 0, $70 = 0, $72 = 0, $73 = 0, $76 = 0, $78 = 0, $85 = 0, $86 = 0, $9 = 0, $93 = 0, $94 = 0, $96 = 0, $_vlen$0$lcssa = 0, $_vlen$023 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$319 = 0, $_vlen2$0$lcssa = 0, $_vlen2$014 = 0, $_vlen2$1 = 0, $_vlen2$3$ph = 0, $_vlen2$312 = 0, $_vptr$0$lcssa = 0, $_vptr$022 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$318 = 0, $_vptr1$0$lcssa = 0, $_vptr1$013 = 0, $_vptr1$1 = 0, $_vptr1$3$ph = 0, $_vptr1$311 = 0, $em = 0, $n$036 = 0, $n$1$lcssa = 0, $n$128 = 0, $p$037 = 0, $rc$0 = 0, $rc$0$ph = 0, $scevgep = 0, $scevgep48 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$em = sp;
HEAP32[$em >> 2] = 0;
$1 = ($nbits + 7 | 0) >>> 3;
$2 = __gcry_md_get_algo_dlen($algo) | 0;
if (!$2) __gcry_assert_failed(38655, 38350, 926, 38698);
$5 = $saltlen + 8 + $2 | 0;
$6 = $1 - $2 | 0;
$7 = $6 + -1 | 0;
$9 = ($5 >>> 0 < $7 >>> 0 ? $7 : $5) + $2 | 0;
$10 = __gcry_malloc($9) | 0;
$11 = ($10 | 0) != 0;
if ($11) {
$14 = 0 - $2 | 0;
$15 = $10 + $9 + $14 | 0;
$16 = __gcry_mpi_to_octet_string(0, $15, $value, $2) | 0;
if (!$16) {
$18 = __gcry_mpi_to_octet_string($em, 0, $encoded, $1) | 0;
if (!$18) if ($1 >>> 0 < ($saltlen + 2 + $2 | 0) >>> 0) {
$rc$0$ph = 66;
label = 20;
} else {
$23 = $1 + -1 | 0;
$24 = HEAP32[$em >> 2] | 0;
if ((HEAP8[$24 + $23 >> 0] | 0) == -68) {
$30 = $24 + $1 + -1 + $14 | 0;
$35 = 255 >>> (($1 << 3) - $nbits | 0);
if (!(HEAPU8[$24 >> 0] & ~$35)) {
_mgf1($10, $7, $30, $2, $algo) | 0;
if ($7) {
$40 = $23 - $2 | 0;
$n$036 = 0;
$p$037 = $10;
while (1) {
$43 = (HEAP32[$em >> 2] | 0) + $n$036 | 0;
HEAP8[$43 >> 0] = HEAP8[$43 >> 0] ^ HEAP8[$p$037 >> 0];
$n$036 = $n$036 + 1 | 0;
if (($n$036 | 0) == ($40 | 0)) break; else $p$037 = $p$037 + 1 | 0;
}
}
$48 = HEAP32[$em >> 2] | 0;
HEAP8[$48 >> 0] = HEAPU8[$48 >> 0] & $35;
$53 = $6 - $saltlen | 0;
$54 = $53 + -2 | 0;
L16 : do if (!$54) $n$1$lcssa = 0; else {
$56 = HEAP32[$em >> 2] | 0;
$n$128 = 0;
while (1) {
if (HEAP8[$56 + $n$128 >> 0] | 0) {
$n$1$lcssa = $n$128;
break L16;
}
$60 = $n$128 + 1 | 0;
if ($60 >>> 0 < $54 >>> 0) $n$128 = $60; else {
$n$1$lcssa = $60;
break;
}
}
} while (0);
if (($n$1$lcssa | 0) == ($54 | 0)) {
$63 = HEAP32[$em >> 2] | 0;
if ((HEAP8[$63 + $54 >> 0] | 0) == 1) {
$69 = $10;
$70 = $69;
HEAP8[$70 >> 0] = 0;
HEAP8[$70 + 1 >> 0] = 0;
HEAP8[$70 + 2 >> 0] = 0;
HEAP8[$70 + 3 >> 0] = 0;
$72 = $69 + 4 | 0;
HEAP8[$72 >> 0] = 0;
HEAP8[$72 + 1 >> 0] = 0;
HEAP8[$72 + 2 >> 0] = 0;
HEAP8[$72 + 3 >> 0] = 0;
$73 = $10 + 8 | 0;
_memcpy($73 | 0, $15 | 0, $2 | 0) | 0;
_memcpy($73 + $2 | 0, $63 + ($53 + -1) | 0, $saltlen | 0) | 0;
__gcry_md_hash_buffer($algo, $10, $10, $5);
$76 = (_memcmp($30, $10, $2) | 0) != 0;
$rc$0$ph = $76 ? 8 : 0;
label = 20;
} else {
$78 = $63;
$rc$0 = 8;
}
} else {
$rc$0$ph = 8;
label = 20;
}
} else {
$rc$0$ph = 8;
label = 20;
}
} else {
$78 = $24;
$rc$0 = 8;
}
} else {
$rc$0$ph = $18;
label = 20;
}
} else {
$rc$0$ph = $16;
label = 20;
}
} else {
$rc$0$ph = _gpg_err_code_from_syserror() | 0;
label = 20;
}
if ((label | 0) == 20) {
$78 = HEAP32[$em >> 2] | 0;
$rc$0 = $rc$0$ph;
}
if ($78) {
if (($1 | 0) != 0 & ($78 & 7 | 0) != 0) {
$_vlen$023 = $1;
$_vptr$022 = $78;
while (1) {
HEAP8[$_vptr$022 >> 0] = 0;
$85 = $_vptr$022 + 1 | 0;
$86 = $_vlen$023 + -1 | 0;
if (($86 | 0) != 0 & ($85 & 7 | 0) != 0) {
$_vlen$023 = $86;
$_vptr$022 = $85;
} else {
$_vlen$0$lcssa = $86;
$_vptr$0$lcssa = $85;
break;
}
}
} else {
$_vlen$0$lcssa = $1;
$_vptr$0$lcssa = $78;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$93 = $_vlen$0$lcssa + -8 | 0;
$94 = $93 & -8;
$scevgep48 = $_vptr$0$lcssa + ($94 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$96 = $_vptr$1;
HEAP32[$96 >> 2] = 0;
HEAP32[$96 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $93 - $94 | 0;
$_vptr$3$ph = $scevgep48;
}
if ($_vlen$3$ph) {
$_vlen$319 = $_vlen$3$ph;
$_vptr$318 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$318 >> 0] = 0;
$_vlen$319 = $_vlen$319 + -1 | 0;
if (!$_vlen$319) break; else $_vptr$318 = $_vptr$318 + 1 | 0;
}
}
__gcry_free(HEAP32[$em >> 2] | 0);
}
if (!$11) {
STACKTOP = sp;
return $rc$0 | 0;
}
if (($9 | 0) != 0 & ($10 & 7 | 0) != 0) {
$_vlen2$014 = $9;
$_vptr1$013 = $10;
while (1) {
HEAP8[$_vptr1$013 >> 0] = 0;
$114 = $_vptr1$013 + 1 | 0;
$115 = $_vlen2$014 + -1 | 0;
if (($115 | 0) != 0 & ($114 & 7 | 0) != 0) {
$_vlen2$014 = $115;
$_vptr1$013 = $114;
} else {
$_vlen2$0$lcssa = $115;
$_vptr1$0$lcssa = $114;
break;
}
}
} else {
$_vlen2$0$lcssa = $9;
$_vptr1$0$lcssa = $10;
}
if ($_vlen2$0$lcssa >>> 0 < 8) {
$_vlen2$3$ph = $_vlen2$0$lcssa;
$_vptr1$3$ph = $_vptr1$0$lcssa;
} else {
$122 = $_vlen2$0$lcssa + -8 | 0;
$123 = $122 & -8;
$scevgep = $_vptr1$0$lcssa + ($123 + 8) | 0;
$_vlen2$1 = $_vlen2$0$lcssa;
$_vptr1$1 = $_vptr1$0$lcssa;
while (1) {
$125 = $_vptr1$1;
HEAP32[$125 >> 2] = 0;
HEAP32[$125 + 4 >> 2] = 0;
$_vlen2$1 = $_vlen2$1 + -8 | 0;
if ($_vlen2$1 >>> 0 <= 7) break; else $_vptr1$1 = $_vptr1$1 + 8 | 0;
}
$_vlen2$3$ph = $122 - $123 | 0;
$_vptr1$3$ph = $scevgep;
}
if ($_vlen2$3$ph) {
$_vlen2$312 = $_vlen2$3$ph;
$_vptr1$311 = $_vptr1$3$ph;
while (1) {
HEAP8[$_vptr1$311 >> 0] = 0;
$_vlen2$312 = $_vlen2$312 + -1 | 0;
if (!$_vlen2$312) break; else $_vptr1$311 = $_vptr1$311 + 1 | 0;
}
}
__gcry_free($10);
STACKTOP = sp;
return $rc$0 | 0;
}
function _rsa_decrypt($r_plain, $s_data, $keyparms) {
$r_plain = $r_plain | 0;
$s_data = $s_data | 0;
$keyparms = $keyparms | 0;
var $$0$i = 0, $0 = 0, $107 = 0, $13 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $37 = 0, $39 = 0, $41 = 0, $42 = 0, $47 = 0, $49 = 0, $5 = 0, $51 = 0, $68 = 0, $7 = 0, $71 = 0, $8 = 0, $80 = 0, $83 = 0, $88 = 0, $ctx = 0, $data = 0, $l1 = 0, $plain$0 = 0, $rc$0 = 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, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160 | 0;
$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 + 112 | 0;
$l1 = sp + 108 | 0;
$data = sp + 104 | 0;
$sk = sp + 80 | 0;
$unpad = sp + 72 | 0;
$unpadlen = sp + 68 | 0;
HEAP32[$l1 >> 2] = 0;
HEAP32[$data >> 2] = 0;
HEAP32[$sk >> 2] = 0;
HEAP32[$sk + 4 >> 2] = 0;
HEAP32[$sk + 8 >> 2] = 0;
HEAP32[$sk + 12 >> 2] = 0;
HEAP32[$sk + 16 >> 2] = 0;
HEAP32[$sk + 20 >> 2] = 0;
HEAP32[$unpad >> 2] = 0;
HEAP32[$unpadlen >> 2] = 0;
$0 = __gcry_sexp_find_token($keyparms, 38737, 1) | 0;
if (!$0) $$0$i = 0; else {
$2 = __gcry_sexp_nth_mpi($0, 1, 5) | 0;
__gcry_sexp_release($0);
if (!$2) $107 = 0; else $107 = __gcry_mpi_get_nbits($2) | 0;
__gcry_mpi_release($2);
$$0$i = $107;
}
__gcry_pk_util_init_encoding_ctx($ctx, 1, $$0$i);
$5 = __gcry_pk_util_preparse_encval($s_data, 7528, $l1, $ctx) | 0;
L7 : do if (!$5) {
$7 = HEAP32[$l1 >> 2] | 0;
HEAP32[$vararg_buffer >> 2] = $data;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
$8 = __gcry_sexp_extract_param($7, 0, 38733, $vararg_buffer) | 0;
if (!$8) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40840, HEAP32[$data >> 2] | 0);
$13 = HEAP32[$data >> 2] | 0;
if ($13) if (HEAP32[$13 + 12 >> 2] & 4) {
$plain$0 = 0;
$rc$0 = 79;
break;
}
$19 = $sk + 4 | 0;
$20 = $sk + 8 | 0;
$21 = $sk + 12 | 0;
$22 = $sk + 16 | 0;
$23 = $sk + 20 | 0;
HEAP32[$vararg_buffer2 >> 2] = $sk;
HEAP32[$vararg_buffer2 + 4 >> 2] = $19;
HEAP32[$vararg_buffer2 + 8 >> 2] = $20;
HEAP32[$vararg_buffer2 + 12 >> 2] = $21;
HEAP32[$vararg_buffer2 + 16 >> 2] = $22;
HEAP32[$vararg_buffer2 + 20 >> 2] = $23;
HEAP32[$vararg_buffer2 + 24 >> 2] = 0;
$24 = __gcry_sexp_extract_param($keyparms, 0, 40657, $vararg_buffer2) | 0;
if (!$24) {
if (__gcry_get_debug_flag(1) | 0) {
__gcry_log_printmpi(40857, HEAP32[$sk >> 2] | 0);
__gcry_log_printmpi(40874, HEAP32[$19 >> 2] | 0);
if (!(__gcry_fips_mode() | 0)) {
__gcry_log_printmpi(40891, HEAP32[$20 >> 2] | 0);
__gcry_log_printmpi(40908, HEAP32[$21 >> 2] | 0);
__gcry_log_printmpi(40925, HEAP32[$22 >> 2] | 0);
__gcry_log_printmpi(40942, HEAP32[$23 >> 2] | 0);
}
}
__gcry_mpi_normalize(HEAP32[$data >> 2] | 0);
$37 = HEAP32[$data >> 2] | 0;
__gcry_mpi_fdiv_r($37, $37, HEAP32[$sk >> 2] | 0);
$39 = $ctx + 4 | 0;
$41 = __gcry_mpi_snew(HEAP32[$39 >> 2] | 0) | 0;
$42 = $ctx + 12 | 0;
if (!(HEAP32[$42 >> 2] & 1)) {
$47 = __gcry_mpi_snew(HEAP32[$39 >> 2] | 0) | 0;
$49 = __gcry_mpi_snew(HEAP32[$39 >> 2] | 0) | 0;
$51 = __gcry_mpi_snew(HEAP32[$39 >> 2] | 0) | 0;
do {
__gcry_mpi_randomize($47, HEAP32[$39 >> 2] | 0, 0);
__gcry_mpi_mod($47, $47, HEAP32[$sk >> 2] | 0);
} while ((__gcry_mpi_invm($49, $47, HEAP32[$sk >> 2] | 0) | 0) == 0);
__gcry_mpi_powm($51, $47, HEAP32[$19 >> 2] | 0, HEAP32[$sk >> 2] | 0);
__gcry_mpi_mulm($51, $51, HEAP32[$data >> 2] | 0, HEAP32[$sk >> 2] | 0);
_secret($41, $51, $sk);
__gcry_mpi_release($51);
__gcry_mpi_mulm($41, $41, $49, HEAP32[$sk >> 2] | 0);
__gcry_mpi_release($47);
__gcry_mpi_release($49);
} else _secret($41, HEAP32[$data >> 2] | 0, $sk);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40959, $41);
switch (HEAP32[$ctx + 8 >> 2] | 0) {
case 1:
{
$68 = __gcry_rsa_pkcs1_decode_for_enc($unpad, $unpadlen, HEAP32[$39 >> 2] | 0, $41) | 0;
__gcry_mpi_free($41);
if ($68) {
$plain$0 = 0;
$rc$0 = $68;
break L7;
}
$71 = HEAP32[$unpad >> 2] | 0;
HEAP32[$vararg_buffer11 >> 2] = HEAP32[$unpadlen >> 2];
HEAP32[$vararg_buffer11 + 4 >> 2] = $71;
$plain$0 = 0;
$rc$0 = __gcry_sexp_build($r_plain, 0, 40976, $vararg_buffer11) | 0;
break L7;
break;
}
case 3:
{
$80 = __gcry_rsa_oaep_decode($unpad, $unpadlen, HEAP32[$39 >> 2] | 0, HEAP32[$ctx + 16 >> 2] | 0, $41, HEAP32[$ctx + 20 >> 2] | 0, HEAP32[$ctx + 24 >> 2] | 0) | 0;
__gcry_mpi_free($41);
if ($80) {
$plain$0 = 0;
$rc$0 = $80;
break L7;
}
$83 = HEAP32[$unpad >> 2] | 0;
HEAP32[$vararg_buffer15 >> 2] = HEAP32[$unpadlen >> 2];
HEAP32[$vararg_buffer15 + 4 >> 2] = $83;
$plain$0 = 0;
$rc$0 = __gcry_sexp_build($r_plain, 0, 40976, $vararg_buffer15) | 0;
break L7;
break;
}
default:
{
$88 = (HEAP32[$42 >> 2] & 8 | 0) != 0 ? 40987 : 47441;
HEAP32[$vararg_buffer19 >> 2] = $41;
$plain$0 = $41;
$rc$0 = __gcry_sexp_build($r_plain, 0, $88, $vararg_buffer19) | 0;
break L7;
}
}
} else {
$plain$0 = 0;
$rc$0 = $24;
}
} else {
$plain$0 = 0;
$rc$0 = $8;
}
} else {
$plain$0 = 0;
$rc$0 = $5;
} while (0);
__gcry_free(HEAP32[$unpad >> 2] | 0);
__gcry_mpi_release($plain$0);
__gcry_mpi_release(HEAP32[$sk >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 4 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 20 >> 2] | 0);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_mpi_release(0);
__gcry_mpi_release(0);
__gcry_mpi_release(0);
__gcry_sexp_release(HEAP32[$l1 >> 2] | 0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
STACKTOP = sp;
return $rc$0 | 0;
}
HEAP32[$vararg_buffer22 >> 2] = _gpg_strerror($rc$0) | 0;
__gcry_log_debug(40990, $vararg_buffer22);
STACKTOP = sp;
return $rc$0 | 0;
}
function __gcry_secmem_term() {
var $10 = 0, $100 = 0, $107 = 0, $108 = 0, $110 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $3 = 0, $32 = 0, $33 = 0, $39 = 0, $40 = 0, $47 = 0, $48 = 0, $50 = 0, $62 = 0, $63 = 0, $69 = 0, $70 = 0, $77 = 0, $78 = 0, $80 = 0, $9 = 0, $92 = 0, $93 = 0, $99 = 0, $_vlen$0$lcssa = 0, $_vlen$052 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$348 = 0, $_vlen14$0$lcssa = 0, $_vlen14$021 = 0, $_vlen14$1 = 0, $_vlen14$3$ph = 0, $_vlen14$319 = 0, $_vlen2$0$lcssa = 0, $_vlen2$041 = 0, $_vlen2$1 = 0, $_vlen2$3$ph = 0, $_vlen2$337 = 0, $_vlen8$0$lcssa = 0, $_vlen8$031 = 0, $_vlen8$1 = 0, $_vlen8$3$ph = 0, $_vlen8$327 = 0, $_vptr$0$lcssa = 0, $_vptr$053 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$349 = 0, $_vptr1$0$lcssa = 0, $_vptr1$042 = 0, $_vptr1$1 = 0, $_vptr1$3$ph = 0, $_vptr1$338 = 0, $_vptr13$0$lcssa = 0, $_vptr13$020 = 0, $_vptr13$1 = 0, $_vptr13$3$ph = 0, $_vptr13$318 = 0, $_vptr7$0$lcssa = 0, $_vptr7$030 = 0, $_vptr7$1 = 0, $_vptr7$3$ph = 0, $_vptr7$326 = 0, $scevgep = 0, $scevgep74 = 0, $scevgep75 = 0, $scevgep76 = 0;
if (!(HEAP32[17496] | 0)) return;
$2 = HEAP32[17497] | 0;
$3 = HEAP32[17498] | 0;
if (($3 | 0) != 0 & ($2 & 7 | 0) != 0) {
$_vlen$052 = $3;
$_vptr$053 = $2;
while (1) {
HEAP8[$_vptr$053 >> 0] = -1;
$9 = $_vptr$053 + 1 | 0;
$10 = $_vlen$052 + -1 | 0;
if (($10 | 0) != 0 & ($9 & 7 | 0) != 0) {
$_vlen$052 = $10;
$_vptr$053 = $9;
} else {
$_vlen$0$lcssa = $10;
$_vptr$0$lcssa = $9;
break;
}
}
} else {
$_vlen$0$lcssa = $3;
$_vptr$0$lcssa = $2;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$17 = $_vlen$0$lcssa + -8 | 0;
$18 = $17 & -8;
$scevgep76 = $_vptr$0$lcssa + ($18 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$20 = $_vptr$1;
HEAP32[$20 >> 2] = -1;
HEAP32[$20 + 4 >> 2] = -1;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $17 - $18 | 0;
$_vptr$3$ph = $scevgep76;
}
if ($_vlen$3$ph) {
$_vlen$348 = $_vlen$3$ph;
$_vptr$349 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$349 >> 0] = -1;
$_vlen$348 = $_vlen$348 + -1 | 0;
if (!$_vlen$348) break; else $_vptr$349 = $_vptr$349 + 1 | 0;
}
}
$32 = HEAP32[17497] | 0;
$33 = HEAP32[17498] | 0;
if (($33 | 0) != 0 & ($32 & 7 | 0) != 0) {
$_vlen2$041 = $33;
$_vptr1$042 = $32;
while (1) {
HEAP8[$_vptr1$042 >> 0] = -86;
$39 = $_vptr1$042 + 1 | 0;
$40 = $_vlen2$041 + -1 | 0;
if (($40 | 0) != 0 & ($39 & 7 | 0) != 0) {
$_vlen2$041 = $40;
$_vptr1$042 = $39;
} else {
$_vlen2$0$lcssa = $40;
$_vptr1$0$lcssa = $39;
break;
}
}
} else {
$_vlen2$0$lcssa = $33;
$_vptr1$0$lcssa = $32;
}
if ($_vlen2$0$lcssa >>> 0 < 8) {
$_vlen2$3$ph = $_vlen2$0$lcssa;
$_vptr1$3$ph = $_vptr1$0$lcssa;
} else {
$47 = $_vlen2$0$lcssa + -8 | 0;
$48 = $47 & -8;
$scevgep75 = $_vptr1$0$lcssa + ($48 + 8) | 0;
$_vlen2$1 = $_vlen2$0$lcssa;
$_vptr1$1 = $_vptr1$0$lcssa;
while (1) {
$50 = $_vptr1$1;
HEAP32[$50 >> 2] = -1431655766;
HEAP32[$50 + 4 >> 2] = -1431655766;
$_vlen2$1 = $_vlen2$1 + -8 | 0;
if ($_vlen2$1 >>> 0 <= 7) break; else $_vptr1$1 = $_vptr1$1 + 8 | 0;
}
$_vlen2$3$ph = $47 - $48 | 0;
$_vptr1$3$ph = $scevgep75;
}
if ($_vlen2$3$ph) {
$_vlen2$337 = $_vlen2$3$ph;
$_vptr1$338 = $_vptr1$3$ph;
while (1) {
HEAP8[$_vptr1$338 >> 0] = -86;
$_vlen2$337 = $_vlen2$337 + -1 | 0;
if (!$_vlen2$337) break; else $_vptr1$338 = $_vptr1$338 + 1 | 0;
}
}
$62 = HEAP32[17497] | 0;
$63 = HEAP32[17498] | 0;
if (($63 | 0) != 0 & ($62 & 7 | 0) != 0) {
$_vlen8$031 = $63;
$_vptr7$030 = $62;
while (1) {
HEAP8[$_vptr7$030 >> 0] = 85;
$69 = $_vptr7$030 + 1 | 0;
$70 = $_vlen8$031 + -1 | 0;
if (($70 | 0) != 0 & ($69 & 7 | 0) != 0) {
$_vlen8$031 = $70;
$_vptr7$030 = $69;
} else {
$_vlen8$0$lcssa = $70;
$_vptr7$0$lcssa = $69;
break;
}
}
} else {
$_vlen8$0$lcssa = $63;
$_vptr7$0$lcssa = $62;
}
if ($_vlen8$0$lcssa >>> 0 < 8) {
$_vlen8$3$ph = $_vlen8$0$lcssa;
$_vptr7$3$ph = $_vptr7$0$lcssa;
} else {
$77 = $_vlen8$0$lcssa + -8 | 0;
$78 = $77 & -8;
$scevgep74 = $_vptr7$0$lcssa + ($78 + 8) | 0;
$_vlen8$1 = $_vlen8$0$lcssa;
$_vptr7$1 = $_vptr7$0$lcssa;
while (1) {
$80 = $_vptr7$1;
HEAP32[$80 >> 2] = 1431655765;
HEAP32[$80 + 4 >> 2] = 1431655765;
$_vlen8$1 = $_vlen8$1 + -8 | 0;
if ($_vlen8$1 >>> 0 <= 7) break; else $_vptr7$1 = $_vptr7$1 + 8 | 0;
}
$_vlen8$3$ph = $77 - $78 | 0;
$_vptr7$3$ph = $scevgep74;
}
if ($_vlen8$3$ph) {
$_vlen8$327 = $_vlen8$3$ph;
$_vptr7$326 = $_vptr7$3$ph;
while (1) {
HEAP8[$_vptr7$326 >> 0] = 85;
$_vlen8$327 = $_vlen8$327 + -1 | 0;
if (!$_vlen8$327) break; else $_vptr7$326 = $_vptr7$326 + 1 | 0;
}
}
$92 = HEAP32[17497] | 0;
$93 = HEAP32[17498] | 0;
if (($93 | 0) != 0 & ($92 & 7 | 0) != 0) {
$_vlen14$021 = $93;
$_vptr13$020 = $92;
while (1) {
HEAP8[$_vptr13$020 >> 0] = 0;
$99 = $_vptr13$020 + 1 | 0;
$100 = $_vlen14$021 + -1 | 0;
if (($100 | 0) != 0 & ($99 & 7 | 0) != 0) {
$_vlen14$021 = $100;
$_vptr13$020 = $99;
} else {
$_vlen14$0$lcssa = $100;
$_vptr13$0$lcssa = $99;
break;
}
}
} else {
$_vlen14$0$lcssa = $93;
$_vptr13$0$lcssa = $92;
}
if ($_vlen14$0$lcssa >>> 0 < 8) {
$_vlen14$3$ph = $_vlen14$0$lcssa;
$_vptr13$3$ph = $_vptr13$0$lcssa;
} else {
$107 = $_vlen14$0$lcssa + -8 | 0;
$108 = $107 & -8;
$scevgep = $_vptr13$0$lcssa + ($108 + 8) | 0;
$_vlen14$1 = $_vlen14$0$lcssa;
$_vptr13$1 = $_vptr13$0$lcssa;
while (1) {
$110 = $_vptr13$1;
HEAP32[$110 >> 2] = 0;
HEAP32[$110 + 4 >> 2] = 0;
$_vlen14$1 = $_vlen14$1 + -8 | 0;
if ($_vlen14$1 >>> 0 <= 7) break; else $_vptr13$1 = $_vptr13$1 + 8 | 0;
}
$_vlen14$3$ph = $107 - $108 | 0;
$_vptr13$3$ph = $scevgep;
}
if ($_vlen14$3$ph) {
$_vlen14$319 = $_vlen14$3$ph;
$_vptr13$318 = $_vptr13$3$ph;
while (1) {
HEAP8[$_vptr13$318 >> 0] = 0;
$_vlen14$319 = $_vlen14$319 + -1 | 0;
if (!$_vlen14$319) break; else $_vptr13$318 = $_vptr13$318 + 1 | 0;
}
}
if (HEAP32[17499] | 0) ___munmap(HEAP32[17497] | 0, HEAP32[17498] | 0) | 0;
HEAP32[17497] = 0;
HEAP32[17496] = 0;
HEAP32[17498] = 0;
return;
}
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, $$01$i = 0, $$01$i$38 = 0, $$1$i = 0, $$1$i$10 = 0, $$1$i$27 = 0, $$112$i = 0, $$112$i$13 = 0, $$112$i$30 = 0, $$lcssa = 0, $$lcssa82 = 0, $0 = 0, $12 = 0, $18 = 0, $26 = 0, $28 = 0, $29 = 0, $3 = 0, $31 = 0, $32 = 0, $38 = 0, $44 = 0, $5 = 0, $57 = 0, $59 = 0, $6 = 0, $60 = 0, $63 = 0, $69 = 0, $77 = 0, $79 = 0, $8 = 0, $85 = 0, $9 = 0, $bits$0 = 0, $bits$1 = 0, $bits$1$ph72 = 0, $ret$0 = 0, $rpos$0 = 0, $rpos$1 = 0, $rpos$1$ph$lcssa = 0, $rpos$1$ph74 = 0, $shift$0 = 0, $vararg_buffer = 0, $vbit$0 = 0, $vbit$1 = 0, $vbit$1$lcssa81 = 0, $vbit$1$ph$lcssa = 0, $vbit$1$ph71 = 0, $wpos$0$ph73 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = $out_size << 3;
if (!$enclen) {
$$0 = ($out_size | 0) == 0 ? 1 : -1;
STACKTOP = sp;
return $$0 | 0;
}
$3 = ($0 >>> 0) % 5 | 0;
do if (!$3) {
$26 = $enclen + -1 | 0;
$28 = HEAP8[$enc + $26 >> 0] | 0;
$29 = $28 & 255;
switch ($29 | 0) {
case 111:
case 79:
{
$32 = 48;
label = 16;
break;
}
case 76:
case 108:
case 73:
case 105:
{
$32 = 49;
label = 16;
break;
}
case 85:
case 117:
{
$$112$i$13 = 86;
label = 20;
break;
}
default:
if (($28 + -48 & 255) < 10) {
$32 = $29;
label = 16;
} else {
if (($28 + -97 & 255) < 26) $$1$i$10 = (_toupper($29) | 0) & 255; else $$1$i$10 = $28;
if (($$1$i$10 + -65 & 255) < 26) {
$$112$i$13 = $$1$i$10;
label = 20;
} else {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
}
}
if ((label | 0) == 16) {
$31 = $32 + -48 | 0;
$bits$0 = $31;
$ret$0 = $31;
$rpos$0 = $26;
$shift$0 = 0;
$vbit$0 = 5;
break;
} else if ((label | 0) == 20) {
$38 = ($$112$i$13 & 255) > 73;
$44 = ($$112$i$13 & 255) + -55 + ((($$112$i$13 & 255) > 79) << 31 >> 31) + ((($$112$i$13 & 255) > 85) << 31 >> 31) - (($$112$i$13 & 255) > 76 ? ($38 ? 2 : 1) : $38 & 1) | 0;
$bits$0 = $44;
$ret$0 = $44;
$rpos$0 = $26;
$shift$0 = 0;
$vbit$0 = 5;
break;
}
} else {
$5 = 5 - $3 | 0;
$6 = $enclen + -1 | 0;
$8 = HEAP8[$enc + $6 >> 0] | 0;
$9 = $8 & 255;
switch ($9 | 0) {
case 111:
case 79:
{
$12 = 48;
label = 7;
break;
}
case 76:
case 108:
case 73:
case 105:
{
$12 = 49;
label = 7;
break;
}
case 85:
case 117:
{
$$112$i = 86;
label = 11;
break;
}
default:
if (($8 + -48 & 255) < 10) {
$12 = $9;
label = 7;
} else {
if (($8 + -97 & 255) < 26) $$1$i = (_toupper($9) | 0) & 255; else $$1$i = $8;
if (($$1$i + -65 & 255) < 26) {
$$112$i = $$1$i;
label = 11;
} else $$01$i = -1;
}
}
if ((label | 0) == 7) $$01$i = $12 + -48 | 0; else if ((label | 0) == 11) {
$18 = ($$112$i & 255) > 73;
$$01$i = ($$112$i & 255) + -55 + ((($$112$i & 255) > 79) << 31 >> 31) + ((($$112$i & 255) > 85) << 31 >> 31) - (($$112$i & 255) > 76 ? ($18 ? 2 : 1) : $18 & 1) | 0;
}
$bits$0 = $$01$i >> $5;
$ret$0 = $$01$i;
$rpos$0 = $6;
$shift$0 = $5;
$vbit$0 = $3;
} while (0);
if (($ret$0 | 0) == -1 ? 1 : ((($shift$0 + $0 | 0) >>> 0) / 5 | 0 | 0) != ($enclen | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
L34 : do if (!$out_size) {
$rpos$1$ph$lcssa = $rpos$0;
$vbit$1$ph$lcssa = $vbit$0;
} else {
$bits$1$ph72 = $bits$0;
$rpos$1$ph74 = $rpos$0;
$vbit$1$ph71 = $vbit$0;
$wpos$0$ph73 = $out_size;
L35 : while (1) {
$bits$1 = $bits$1$ph72;
$rpos$1 = $rpos$1$ph74;
$vbit$1 = $vbit$1$ph71;
while (1) {
if (!$rpos$1) {
label = 25;
break L35;
}
$57 = $rpos$1 + -1 | 0;
$59 = HEAP8[$enc + $57 >> 0] | 0;
$60 = $59 & 255;
switch ($60 | 0) {
case 111:
case 79:
{
$63 = 48;
label = 34;
break;
}
case 76:
case 108:
case 73:
case 105:
{
$63 = 49;
label = 34;
break;
}
case 85:
case 117:
{
$$112$i$30 = 86;
label = 38;
break;
}
default:
if (($59 + -48 & 255) < 10) {
$63 = $60;
label = 34;
} else {
if (($59 + -97 & 255) < 26) $$1$i$27 = (_toupper($60) | 0) & 255; else $$1$i$27 = $59;
if (($$1$i$27 + -65 & 255) < 26) {
$$112$i$30 = $$1$i$27;
label = 38;
} else {
$$0 = -1;
label = 43;
break L35;
}
}
}
if ((label | 0) == 34) {
label = 0;
$$01$i$38 = $63 + -48 | 0;
} else if ((label | 0) == 38) {
label = 0;
$69 = ($$112$i$30 & 255) > 73;
$$01$i$38 = ($$112$i$30 & 255) + -55 + ((($$112$i$30 & 255) > 79) << 31 >> 31) + ((($$112$i$30 & 255) > 85) << 31 >> 31) - (($$112$i$30 & 255) > 76 ? ($69 ? 2 : 1) : $69 & 1) | 0;
}
$77 = $$01$i$38 << $vbit$1 | $bits$1;
if (($$01$i$38 | 0) == -1) {
$$0 = -1;
label = 43;
break L35;
}
$79 = $vbit$1 + 5 | 0;
if ($79 >>> 0 > 7) {
$$lcssa = $77;
$$lcssa82 = $57;
$vbit$1$lcssa81 = $vbit$1;
break;
} else {
$bits$1 = $77;
$rpos$1 = $57;
$vbit$1 = $79;
}
}
$wpos$0$ph73 = $wpos$0$ph73 + -1 | 0;
HEAP8[$out + $wpos$0$ph73 >> 0] = $$lcssa;
$85 = $vbit$1$lcssa81 + -3 | 0;
if (!$wpos$0$ph73) {
$rpos$1$ph$lcssa = $$lcssa82;
$vbit$1$ph$lcssa = $85;
break L34;
} else {
$bits$1$ph72 = $$lcssa >>> 8;
$rpos$1$ph74 = $$lcssa82;
$vbit$1$ph71 = $85;
}
}
if ((label | 0) == 25) {
if ((HEAP32[260] | 0) == -1) HEAP32[260] = _GNUNET_get_log_call_status(1, 0, 21279, 21424, 993) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[260] | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer >> 2] = 21279;
HEAP32[$vararg_buffer + 4 >> 2] = 993;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
} else if ((label | 0) == 43) {
STACKTOP = sp;
return $$0 | 0;
}
} while (0);
$$0 = ($rpos$1$ph$lcssa | $vbit$1$ph$lcssa | 0) == 0 ? 1 : -1;
STACKTOP = sp;
return $$0 | 0;
}
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, $$pre = 0, $100 = 0, $102 = 0, $103 = 0, $107 = 0, $108 = 0, $111 = 0, $18 = 0, $25 = 0, $27 = 0, $29 = 0, $30 = 0, $39 = 0, $45 = 0, $48 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $58 = 0, $59 = 0, $6 = 0, $61 = 0, $69 = 0, $7 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $8 = 0, $85 = 0, $88 = 0, $89 = 0, $90 = 0, $92 = 0, $97 = 0, $I = 0, $Q = 0, $digest = 0, $encpk = 0, $encpklen = 0, $hvec = 0, $i$01$i = 0, $i$01$i$1 = 0, $rawmpi = 0, $rawmpilen = 0, $rawmpilen$i = 0, $rc$0 = 0, $tmp = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$rawmpilen$i = sp + 96 | 0;
$tmp = sp + 92 | 0;
$digest = sp + 88 | 0;
$hvec = sp + 40 | 0;
$rawmpi = sp + 36 | 0;
$rawmpilen = sp + 32 | 0;
$encpk = sp + 28 | 0;
$encpklen = sp + 24 | 0;
$I = sp + 12 | 0;
$Q = sp;
HEAP32[$rawmpi >> 2] = 0;
HEAP32[$encpk >> 2] = 0;
dest = $hvec;
stop = dest + 48 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
if (!$input) {
$$0 = 79;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[$input + 12 >> 2] & 4)) {
$$0 = 79;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_mpi_point_init($I);
__gcry_mpi_point_init($Q);
$5 = __gcry_mpi_snew(0) | 0;
$6 = __gcry_mpi_new(0) | 0;
$7 = __gcry_mpi_new(0) | 0;
$8 = __gcry_mpi_new(0) | 0;
$18 = __gcry_mpi_ec_p_internal_new(HEAP32[$skey >> 2] | 0, HEAP32[$skey + 4 >> 2] | 0, 0, HEAP32[$skey + 8 >> 2] | 0, HEAP32[$skey + 12 >> 2] | 0, HEAP32[$skey + 16 >> 2] | 0) | 0;
if (((HEAP32[$18 + 12 >> 2] | 0) + 7 & -8 | 0) != 256) {
$$0 = 63;
STACKTOP = sp;
return $$0 | 0;
}
$25 = __gcry_ecc_eddsa_compute_h_d($digest, HEAP32[$skey + 56 >> 2] | 0, $18) | 0;
$27 = HEAP32[$digest >> 2] | 0;
do if (!$25) {
__gcry_mpi_set_buffer($5, $27, 32, 0);
$29 = $27;
if (!$pk) {
__gcry_mpi_ec_mul_point($Q, $5, $skey + 20 | 0, $18);
$39 = __gcry_ecc_eddsa_encodepoint($Q, $18, $6, $7, 0, $encpk, $encpklen) | 0;
if ($39) {
$111 = 0;
$rc$0 = $39;
break;
}
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35409, HEAP32[$encpk >> 2] | 0, HEAP32[$encpklen >> 2] | 0);
} else {
$30 = __gcry_ecc_eddsa_decodepoint($pk, $18, $Q, $encpk, $encpklen) | 0;
if ($30) {
$111 = 0;
$rc$0 = $30;
break;
}
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35402, HEAP32[$encpk >> 2] | 0, HEAP32[$encpklen >> 2] | 0);
if (!(__gcry_mpi_ec_curve_point($Q, $18) | 0)) {
$111 = 0;
$rc$0 = 195;
break;
}
}
$45 = __gcry_mpi_get_opaque($input, $tmp) | 0;
$48 = ((HEAP32[$tmp >> 2] | 0) + 7 | 0) >>> 3;
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35416, $45, $48);
$51 = $hvec + 12 | 0;
HEAP32[$51 >> 2] = $29;
$52 = $hvec + 4 | 0;
HEAP32[$52 >> 2] = 32;
$53 = $hvec + 8 | 0;
HEAP32[$53 >> 2] = 32;
$54 = $hvec + 28 | 0;
HEAP32[$54 >> 2] = $45;
$55 = $hvec + 24 | 0;
HEAP32[$55 >> 2] = $48;
$56 = __gcry_md_hash_buffers($hashalgo, 0, $27, $hvec, 2) | 0;
if (!$56) {
$i$01$i = 0;
do {
$58 = $27 + $i$01$i | 0;
$59 = HEAP8[$58 >> 0] | 0;
$61 = $27 + (63 - $i$01$i) | 0;
HEAP8[$58 >> 0] = HEAP8[$61 >> 0] | 0;
HEAP8[$61 >> 0] = $59;
$i$01$i = $i$01$i + 1 | 0;
} while (($i$01$i | 0) != 32);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(52651, $27, 64);
__gcry_mpi_set_buffer($8, $27, 64, 0);
__gcry_mpi_ec_mul_point($I, $8, $skey + 20 | 0, $18);
if (__gcry_get_debug_flag(1) | 0) __gcry_mpi_point_log(35423, $I, $18);
$69 = __gcry_ecc_eddsa_encodepoint($I, $18, $6, $7, 0, $rawmpi, $rawmpilen) | 0;
if ($69) {
$111 = HEAP32[$rawmpi >> 2] | 0;
$rc$0 = $69;
break;
}
if (!(__gcry_get_debug_flag(1) | 0)) {
$$pre = HEAP32[$rawmpi >> 2] | 0;
$77 = $$pre;
$78 = HEAP32[$rawmpilen >> 2] | 0;
$88 = $$pre;
} else {
$74 = HEAP32[$rawmpi >> 2] | 0;
$75 = HEAP32[$rawmpilen >> 2] | 0;
__gcry_log_printhex(35428, $74, $75);
$77 = $74;
$78 = $75;
$88 = $74;
}
HEAP32[$51 >> 2] = $77;
HEAP32[$52 >> 2] = 0;
HEAP32[$53 >> 2] = $78;
HEAP32[$54 >> 2] = HEAP32[$encpk >> 2];
HEAP32[$hvec + 20 >> 2] = 0;
HEAP32[$55 >> 2] = HEAP32[$encpklen >> 2];
HEAP32[$hvec + 44 >> 2] = $45;
HEAP32[$hvec + 36 >> 2] = 0;
HEAP32[$hvec + 40 >> 2] = $48;
$85 = __gcry_md_hash_buffers($hashalgo, 0, $27, $hvec, 3) | 0;
if (!$85) {
__gcry_mpi_set_opaque($r_r, $88, $78 << 3) | 0;
HEAP32[$rawmpi >> 2] = 0;
$i$01$i$1 = 0;
do {
$89 = $27 + $i$01$i$1 | 0;
$90 = HEAP8[$89 >> 0] | 0;
$92 = $27 + (63 - $i$01$i$1) | 0;
HEAP8[$89 >> 0] = HEAP8[$92 >> 0] | 0;
HEAP8[$92 >> 0] = $90;
$i$01$i$1 = $i$01$i$1 + 1 | 0;
} while (($i$01$i$1 | 0) != 32);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35435, $27, 64);
__gcry_mpi_set_buffer($s, $27, 64, 0);
$97 = $skey + 32 | 0;
__gcry_mpi_mulm($s, $s, $5, HEAP32[$97 >> 2] | 0);
__gcry_mpi_addm($s, $s, $8, HEAP32[$97 >> 2] | 0);
$100 = __gcry_mpi_get_buffer($s, 32, $rawmpilen$i, 0) | 0;
if (!$100) {
$103 = _gpg_err_code_from_syserror() | 0;
if (!$103) {
$107 = 0;
$108 = $78;
} else {
$111 = 0;
$rc$0 = $103;
break;
}
} else {
HEAP32[$rawmpi >> 2] = $100;
$102 = HEAP32[$rawmpilen$i >> 2] | 0;
HEAP32[$rawmpilen >> 2] = $102;
$107 = $100;
$108 = $102;
}
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35442, $107, $108);
__gcry_mpi_set_opaque($s, $107, $108 << 3) | 0;
HEAP32[$rawmpi >> 2] = 0;
$111 = 0;
$rc$0 = 0;
} else {
$111 = $88;
$rc$0 = $85;
}
} else {
$111 = 0;
$rc$0 = $56;
}
} else {
$111 = 0;
$rc$0 = $25;
} while (0);
__gcry_mpi_release($5);
__gcry_mpi_release($6);
__gcry_mpi_release($7);
__gcry_mpi_release($8);
__gcry_free($27);
__gcry_mpi_ec_free($18);
__gcry_mpi_point_free_parts($I);
__gcry_mpi_point_free_parts($Q);
__gcry_free(HEAP32[$encpk >> 2] | 0);
__gcry_free($111);
$$0 = $rc$0;
STACKTOP = sp;
return $$0 | 0;
}
function _TALER_amount_subtract($diff, $a1, $a2) {
$diff = $diff | 0;
$a1 = $a1 | 0;
$a2 = $a2 | 0;
var $$0 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $19 = 0, $23 = 0, $24 = 0, $26 = 0, $27 = 0, $28 = 0, $31 = 0, $38 = 0, $4 = 0, $44 = 0, $45 = 0, $46 = 0, $53 = 0, $55 = 0, $57 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $67 = 0, $69 = 0, $70 = 0, $72 = 0, $76 = 0, $85 = 0, $9 = 0, $95 = 0, $97 = 0, $a1$idx$i = 0, $a2$idx$i = 0, $amount$idx$i = 0, $n1 = 0, $n2$sroa$8$0 = 0, $n2$sroa$8$1 = 0, $n2$sroa$8$2 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer2 = sp + 32 | 0;
$vararg_buffer = sp + 24 | 0;
$n1 = sp;
$a1$idx$i = $a1 + 12 | 0;
if (HEAP8[$a1$idx$i >> 0] | 0) {
$a2$idx$i = $a2 + 12 | 0;
if (HEAP8[$a2$idx$i >> 0] | 0) if (!(_strcasecmp($a1$idx$i, $a2$idx$i) | 0)) {
HEAP32[$n1 >> 2] = HEAP32[$a1 >> 2];
HEAP32[$n1 + 4 >> 2] = HEAP32[$a1 + 4 >> 2];
HEAP32[$n1 + 8 >> 2] = HEAP32[$a1 + 8 >> 2];
HEAP32[$n1 + 12 >> 2] = HEAP32[$a1 + 12 >> 2];
HEAP32[$n1 + 16 >> 2] = HEAP32[$a1 + 16 >> 2];
HEAP32[$n1 + 20 >> 2] = HEAP32[$a1 + 20 >> 2];
$4 = $a2;
$6 = HEAP32[$4 >> 2] | 0;
$9 = HEAP32[$4 + 4 >> 2] | 0;
$11 = HEAP32[$a2 + 8 >> 2] | 0;
$amount$idx$i = $n1 + 12 | 0;
do if (HEAP8[$amount$idx$i >> 0] | 0) {
$13 = $n1 + 8 | 0;
$14 = $n1;
$16 = HEAP32[$14 >> 2] | 0;
$19 = HEAP32[$14 + 4 >> 2] | 0;
$23 = HEAP32[$13 >> 2] | 0;
L7 : do if (($16 | 0) == -1 & ($19 | 0) == -1) {
$38 = $23;
label = 9;
} else {
$24 = $23;
$27 = $16;
$28 = $19;
while (1) {
if ($24 >>> 0 <= 999999) {
$53 = $24;
$55 = $27;
$57 = $28;
break L7;
}
$26 = $24 + -1e6 | 0;
HEAP32[$13 >> 2] = $26;
$27 = _i64Add($27 | 0, $28 | 0, 1, 0) | 0;
$28 = tempRet0;
$31 = $n1;
HEAP32[$31 >> 2] = $27;
HEAP32[$31 + 4 >> 2] = $28;
if (($27 | 0) == -1 & ($28 | 0) == -1) {
$38 = $26;
label = 9;
break;
} else $24 = $26;
}
} while (0);
if ((label | 0) == 9) if ($38 >>> 0 > 999999) {
HEAP32[$n1 >> 2] = 0;
HEAP32[$n1 + 4 >> 2] = 0;
HEAP32[$n1 + 8 >> 2] = 0;
HEAP32[$n1 + 12 >> 2] = 0;
HEAP32[$n1 + 16 >> 2] = 0;
HEAP32[$n1 + 20 >> 2] = 0;
break;
} else {
$53 = $38;
$55 = -1;
$57 = -1;
}
L15 : do if (($6 | 0) == -1 & ($9 | 0) == -1) {
$n2$sroa$8$1 = $11;
label = 14;
} else {
$45 = $6;
$46 = $9;
$n2$sroa$8$0 = $11;
while (1) {
if ($n2$sroa$8$0 >>> 0 <= 999999) {
$69 = $46;
$72 = $45;
$n2$sroa$8$2 = $n2$sroa$8$0;
break L15;
}
$44 = $n2$sroa$8$0 + -1e6 | 0;
$45 = _i64Add($45 | 0, $46 | 0, 1, 0) | 0;
$46 = tempRet0;
if (($45 | 0) == -1 & ($46 | 0) == -1) {
$n2$sroa$8$1 = $44;
label = 14;
break;
} else $n2$sroa$8$0 = $44;
}
} while (0);
if ((label | 0) == 14) if ($n2$sroa$8$1 >>> 0 > 999999) break; else {
$69 = -1;
$72 = -1;
$n2$sroa$8$2 = $n2$sroa$8$1;
}
do if ($53 >>> 0 < $n2$sroa$8$2 >>> 0) {
if (!(($55 | 0) == 0 & ($57 | 0) == 0)) {
$60 = $53 + 1e6 | 0;
HEAP32[$13 >> 2] = $60;
$61 = _i64Add($55 | 0, $57 | 0, -1, -1) | 0;
$62 = tempRet0;
$63 = $n1;
HEAP32[$63 >> 2] = $61;
HEAP32[$63 + 4 >> 2] = $62;
$67 = $62;
$70 = $61;
$85 = $60;
break;
};
HEAP32[$diff >> 2] = 0;
HEAP32[$diff + 4 >> 2] = 0;
HEAP32[$diff + 8 >> 2] = 0;
HEAP32[$diff + 12 >> 2] = 0;
HEAP32[$diff + 16 >> 2] = 0;
HEAP32[$diff + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
} else {
$67 = $57;
$70 = $55;
$85 = $53;
} while (0);
if ($67 >>> 0 < $69 >>> 0 | ($67 | 0) == ($69 | 0) & $70 >>> 0 < $72 >>> 0) {
HEAP32[$diff >> 2] = 0;
HEAP32[$diff + 4 >> 2] = 0;
HEAP32[$diff + 8 >> 2] = 0;
HEAP32[$diff + 12 >> 2] = 0;
HEAP32[$diff + 16 >> 2] = 0;
HEAP32[$diff + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$76 = _strlen($amount$idx$i) | 0;
if ($76 >>> 0 > 11) {
if ((HEAP32[3819] | 0) == -1) HEAP32[3819] = _GNUNET_get_log_call_status(1, 0, 60850, 60904, 397) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[3819] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 60850;
HEAP32[$vararg_buffer + 4 >> 2] = 397;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
};
HEAP32[$diff >> 2] = 0;
HEAP32[$diff + 4 >> 2] = 0;
HEAP32[$diff + 8 >> 2] = 0;
HEAP32[$diff + 12 >> 2] = 0;
HEAP32[$diff + 16 >> 2] = 0;
HEAP32[$diff + 20 >> 2] = 0;
_memcpy($diff + 12 | 0, $amount$idx$i | 0, $76 | 0) | 0;
if ($85 >>> 0 >= $n2$sroa$8$2 >>> 0) {
HEAP32[$diff + 8 >> 2] = $85 - $n2$sroa$8$2;
$95 = _i64Subtract($70 | 0, $67 | 0, $72 | 0, $69 | 0) | 0;
$97 = $diff;
HEAP32[$97 >> 2] = $95;
HEAP32[$97 + 4 >> 2] = tempRet0;
$$0 = ($70 | 0) == ($72 | 0) & ($67 | 0) == ($69 | 0) & ($85 | 0) == ($n2$sroa$8$2 | 0) & 1 ^ 1;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[3820] | 0) == -1) HEAP32[3820] = _GNUNET_get_log_call_status(1, 0, 60850, 60904, 398) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[3820] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 60850;
HEAP32[$vararg_buffer2 + 4 >> 2] = 398;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
} while (0);
HEAP32[$diff >> 2] = 0;
HEAP32[$diff + 4 >> 2] = 0;
HEAP32[$diff + 8 >> 2] = 0;
HEAP32[$diff + 12 >> 2] = 0;
HEAP32[$diff + 16 >> 2] = 0;
HEAP32[$diff + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
};
HEAP32[$diff >> 2] = 0;
HEAP32[$diff + 4 >> 2] = 0;
HEAP32[$diff + 8 >> 2] = 0;
HEAP32[$diff + 12 >> 2] = 0;
HEAP32[$diff + 16 >> 2] = 0;
HEAP32[$diff + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 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 $$pre = 0, $$pre$phi47Z2D = 0, $1 = 0, $101 = 0, $102 = 0, $104 = 0, $12 = 0, $13 = 0, $14 = 0, $19 = 0, $2 = 0, $25 = 0, $29 = 0, $30 = 0, $32 = 0, $35 = 0, $37 = 0, $41 = 0, $43 = 0, $5 = 0, $56 = 0, $65 = 0, $66 = 0, $7 = 0, $73 = 0, $74 = 0, $76 = 0, $8 = 0, $9 = 0, $93 = 0, $94 = 0, $_vlen$0$lcssa = 0, $_vlen$027 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$323 = 0, $_vlen2$0$lcssa = 0, $_vlen2$019 = 0, $_vlen2$1 = 0, $_vlen2$3$ph = 0, $_vlen2$317 = 0, $_vptr$0$lcssa = 0, $_vptr$026 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$322 = 0, $_vptr1$0$lcssa = 0, $_vptr1$018 = 0, $_vptr1$1 = 0, $_vptr1$3$ph = 0, $_vptr1$316 = 0, $n$031 = 0, $p$032 = 0, $rc$027 = 0, $rc$028$ph = 0, $rc$06$ph = 0, $scevgep = 0, $scevgep45 = 0, label = 0;
$1 = ($nbits + 7 | 0) >>> 3;
$2 = __gcry_md_get_algo_dlen($algo) | 0;
if (!$2) __gcry_assert_failed(38655, 38350, 800, 38660);
$5 = $saltlen + 8 + $2 | 0;
$7 = $1 - $2 + -1 | 0;
$8 = $5 + $7 | 0;
$9 = __gcry_malloc($8) | 0;
if (!$9) {
$rc$027 = _gpg_err_code_from_syserror() | 0;
return $rc$027 | 0;
}
$12 = $9 + 8 | 0;
$13 = $12 + $2 | 0;
$14 = $13 + $saltlen | 0;
do if (($2 | 0) == ($valuelen | 0)) {
_memcpy($12 | 0, $value | 0, $valuelen | 0) | 0;
if ($1 >>> 0 < ($saltlen + 2 + $valuelen | 0) >>> 0) $rc$028$ph = 66; else {
$19 = __gcry_malloc($1) | 0;
if (!$19) {
$rc$028$ph = _gpg_err_code_from_syserror() | 0;
break;
}
$25 = $19 + $1 + -1 + (0 - $valuelen) | 0;
do if (!$saltlen) label = 14; else {
if (!$random_override) {
__gcry_randomize($13, $saltlen, 1);
label = 14;
break;
}
if (($random_override_len | 0) == ($saltlen | 0)) {
_memcpy($13 | 0, $random_override | 0, $saltlen | 0) | 0;
label = 14;
break;
} else {
$$pre$phi47Z2D = $19;
$rc$06$ph = 45;
break;
}
} while (0);
if ((label | 0) == 14) {
$29 = $9;
$30 = $29;
HEAP8[$30 >> 0] = 0;
HEAP8[$30 + 1 >> 0] = 0;
HEAP8[$30 + 2 >> 0] = 0;
HEAP8[$30 + 3 >> 0] = 0;
$32 = $29 + 4 | 0;
HEAP8[$32 >> 0] = 0;
HEAP8[$32 + 1 >> 0] = 0;
HEAP8[$32 + 2 >> 0] = 0;
HEAP8[$32 + 3 >> 0] = 0;
__gcry_md_hash_buffer($algo, $25, $9, $5);
$35 = $25 + (0 - $saltlen) + -1 | 0;
$37 = $19;
_memset($19 | 0, 0, $35 - $37 | 0) | 0;
HEAP8[$35 >> 0] = 1;
_memcpy($35 + 1 | 0, $13 | 0, $saltlen | 0) | 0;
_mgf1($14, $7, $25, $valuelen, $algo) | 0;
$$pre = $1 + -1 | 0;
if ($7) {
$41 = $$pre - $valuelen | 0;
$n$031 = 0;
$p$032 = $14;
while (1) {
$43 = $19 + $n$031 | 0;
HEAP8[$43 >> 0] = HEAP8[$43 >> 0] ^ HEAP8[$p$032 >> 0];
$n$031 = $n$031 + 1 | 0;
if (($n$031 | 0) == ($41 | 0)) break; else $p$032 = $p$032 + 1 | 0;
}
}
HEAP8[$19 >> 0] = (HEAPU8[$19 >> 0] | 0) & 255 >>> (($1 << 3) - $nbits | 0);
HEAP8[$19 + $$pre >> 0] = -68;
$56 = __gcry_mpi_scan($r_result, 5, $19, $1, 0) | 0;
if (!$56) if (!(__gcry_get_debug_flag(1) | 0)) {
$$pre$phi47Z2D = $37;
$rc$06$ph = 0;
} else {
__gcry_log_printmpi(38681, HEAP32[$r_result >> 2] | 0);
$$pre$phi47Z2D = $37;
$rc$06$ph = 0;
} else {
$$pre$phi47Z2D = $37;
$rc$06$ph = $56;
}
}
if (($1 | 0) != 0 & ($$pre$phi47Z2D & 7 | 0) != 0) {
$_vlen$027 = $1;
$_vptr$026 = $19;
while (1) {
HEAP8[$_vptr$026 >> 0] = 0;
$65 = $_vptr$026 + 1 | 0;
$66 = $_vlen$027 + -1 | 0;
if (($66 | 0) != 0 & ($65 & 7 | 0) != 0) {
$_vlen$027 = $66;
$_vptr$026 = $65;
} else {
$_vlen$0$lcssa = $66;
$_vptr$0$lcssa = $65;
break;
}
}
} else {
$_vlen$0$lcssa = $1;
$_vptr$0$lcssa = $19;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$73 = $_vlen$0$lcssa + -8 | 0;
$74 = $73 & -8;
$scevgep45 = $_vptr$0$lcssa + ($74 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$76 = $_vptr$1;
HEAP32[$76 >> 2] = 0;
HEAP32[$76 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $73 - $74 | 0;
$_vptr$3$ph = $scevgep45;
}
if ($_vlen$3$ph) {
$_vlen$323 = $_vlen$3$ph;
$_vptr$322 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$322 >> 0] = 0;
$_vlen$323 = $_vlen$323 + -1 | 0;
if (!$_vlen$323) break; else $_vptr$322 = $_vptr$322 + 1 | 0;
}
}
__gcry_free($19);
$rc$028$ph = $rc$06$ph;
}
} else $rc$028$ph = 139; while (0);
if (($8 | 0) != 0 & ($9 & 7 | 0) != 0) {
$_vlen2$019 = $8;
$_vptr1$018 = $9;
while (1) {
HEAP8[$_vptr1$018 >> 0] = 0;
$93 = $_vptr1$018 + 1 | 0;
$94 = $_vlen2$019 + -1 | 0;
if (($94 | 0) != 0 & ($93 & 7 | 0) != 0) {
$_vlen2$019 = $94;
$_vptr1$018 = $93;
} else {
$_vlen2$0$lcssa = $94;
$_vptr1$0$lcssa = $93;
break;
}
}
} else {
$_vlen2$0$lcssa = $8;
$_vptr1$0$lcssa = $9;
}
if ($_vlen2$0$lcssa >>> 0 < 8) {
$_vlen2$3$ph = $_vlen2$0$lcssa;
$_vptr1$3$ph = $_vptr1$0$lcssa;
} else {
$101 = $_vlen2$0$lcssa + -8 | 0;
$102 = $101 & -8;
$scevgep = $_vptr1$0$lcssa + ($102 + 8) | 0;
$_vlen2$1 = $_vlen2$0$lcssa;
$_vptr1$1 = $_vptr1$0$lcssa;
while (1) {
$104 = $_vptr1$1;
HEAP32[$104 >> 2] = 0;
HEAP32[$104 + 4 >> 2] = 0;
$_vlen2$1 = $_vlen2$1 + -8 | 0;
if ($_vlen2$1 >>> 0 <= 7) break; else $_vptr1$1 = $_vptr1$1 + 8 | 0;
}
$_vlen2$3$ph = $101 - $102 | 0;
$_vptr1$3$ph = $scevgep;
}
if ($_vlen2$3$ph) {
$_vlen2$317 = $_vlen2$3$ph;
$_vptr1$316 = $_vptr1$3$ph;
while (1) {
HEAP8[$_vptr1$316 >> 0] = 0;
$_vlen2$317 = $_vlen2$317 + -1 | 0;
if (!$_vlen2$317) break; else $_vptr1$316 = $_vptr1$316 + 1 | 0;
}
}
__gcry_free($9);
$rc$027 = $rc$028$ph;
return $rc$027 | 0;
}
function _try_realloc_chunk($p, $nb) {
$p = $p | 0;
$nb = $nb | 0;
var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $106 = 0, $109 = 0, $112 = 0, $113 = 0, $114 = 0, $116 = 0, $118 = 0, $119 = 0, $121 = 0, $122 = 0, $127 = 0, $128 = 0, $137 = 0, $142 = 0, $145 = 0, $146 = 0, $152 = 0, $163 = 0, $166 = 0, $173 = 0, $2 = 0, $20 = 0, $22 = 0, $29 = 0, $3 = 0, $35 = 0, $37 = 0, $38 = 0, $4 = 0, $47 = 0, $49 = 0, $5 = 0, $51 = 0, $52 = 0, $58 = 0, $65 = 0, $71 = 0, $73 = 0, $74 = 0, $77 = 0, $79 = 0, $8 = 0, $81 = 0, $94 = 0, $99 = 0, $R$1 = 0, $R$1$lcssa = 0, $R$3 = 0, $RP$1 = 0, $RP$1$lcssa = 0, $newp$2 = 0, $storemerge = 0, $storemerge$1 = 0;
$0 = $p + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = $1 & -8;
$3 = $p + $2 | 0;
$4 = HEAP32[17610] | 0;
$5 = $1 & 3;
if (!(($5 | 0) != 1 & $p >>> 0 >= $4 >>> 0 & $p >>> 0 < $3 >>> 0)) _abort();
$8 = HEAP32[$3 + 4 >> 2] | 0;
if (!($8 & 1)) _abort();
if (!$5) {
if ($nb >>> 0 < 256) {
$newp$2 = 0;
return $newp$2 | 0;
}
if ($2 >>> 0 >= ($nb + 4 | 0) >>> 0) if (($2 - $nb | 0) >>> 0 <= HEAP32[17726] << 1 >>> 0) {
$newp$2 = $p;
return $newp$2 | 0;
}
$newp$2 = 0;
return $newp$2 | 0;
}
if ($2 >>> 0 >= $nb >>> 0) {
$20 = $2 - $nb | 0;
if ($20 >>> 0 <= 15) {
$newp$2 = $p;
return $newp$2 | 0;
}
$22 = $p + $nb | 0;
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$22 + 4 >> 2] = $20 | 3;
$29 = $22 + $20 + 4 | 0;
HEAP32[$29 >> 2] = HEAP32[$29 >> 2] | 1;
_dispose_chunk($22, $20);
$newp$2 = $p;
return $newp$2 | 0;
}
if (($3 | 0) == (HEAP32[17612] | 0)) {
$35 = (HEAP32[17609] | 0) + $2 | 0;
if ($35 >>> 0 <= $nb >>> 0) {
$newp$2 = 0;
return $newp$2 | 0;
}
$37 = $35 - $nb | 0;
$38 = $p + $nb | 0;
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$38 + 4 >> 2] = $37 | 1;
HEAP32[17612] = $38;
HEAP32[17609] = $37;
$newp$2 = $p;
return $newp$2 | 0;
}
if (($3 | 0) == (HEAP32[17611] | 0)) {
$47 = (HEAP32[17608] | 0) + $2 | 0;
if ($47 >>> 0 < $nb >>> 0) {
$newp$2 = 0;
return $newp$2 | 0;
}
$49 = $47 - $nb | 0;
if ($49 >>> 0 > 15) {
$51 = $p + $nb | 0;
$52 = $51 + $49 | 0;
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$51 + 4 >> 2] = $49 | 1;
HEAP32[$52 >> 2] = $49;
$58 = $52 + 4 | 0;
HEAP32[$58 >> 2] = HEAP32[$58 >> 2] & -2;
$storemerge = $51;
$storemerge$1 = $49;
} else {
HEAP32[$0 >> 2] = $1 & 1 | $47 | 2;
$65 = $p + $47 + 4 | 0;
HEAP32[$65 >> 2] = HEAP32[$65 >> 2] | 1;
$storemerge = 0;
$storemerge$1 = 0;
}
HEAP32[17608] = $storemerge$1;
HEAP32[17611] = $storemerge;
$newp$2 = $p;
return $newp$2 | 0;
}
if ($8 & 2) {
$newp$2 = 0;
return $newp$2 | 0;
}
$71 = ($8 & -8) + $2 | 0;
if ($71 >>> 0 < $nb >>> 0) {
$newp$2 = 0;
return $newp$2 | 0;
}
$73 = $71 - $nb | 0;
$74 = $8 >>> 3;
do if ($8 >>> 0 < 256) {
$77 = HEAP32[$3 + 8 >> 2] | 0;
$79 = HEAP32[$3 + 12 >> 2] | 0;
$81 = 70464 + ($74 << 1 << 2) | 0;
if (($77 | 0) != ($81 | 0)) {
if ($77 >>> 0 < $4 >>> 0) _abort();
if ((HEAP32[$77 + 12 >> 2] | 0) != ($3 | 0)) _abort();
}
if (($79 | 0) == ($77 | 0)) {
HEAP32[17606] = HEAP32[17606] & ~(1 << $74);
break;
}
if (($79 | 0) == ($81 | 0)) $$pre$phiZ2D = $79 + 8 | 0; else {
if ($79 >>> 0 < $4 >>> 0) _abort();
$94 = $79 + 8 | 0;
if ((HEAP32[$94 >> 2] | 0) == ($3 | 0)) $$pre$phiZ2D = $94; else _abort();
}
HEAP32[$77 + 12 >> 2] = $79;
HEAP32[$$pre$phiZ2D >> 2] = $77;
} else {
$99 = HEAP32[$3 + 24 >> 2] | 0;
$101 = HEAP32[$3 + 12 >> 2] | 0;
do if (($101 | 0) == ($3 | 0)) {
$112 = $3 + 16 | 0;
$113 = $112 + 4 | 0;
$114 = HEAP32[$113 >> 2] | 0;
if (!$114) {
$116 = HEAP32[$112 >> 2] | 0;
if (!$116) {
$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;
if ($119) {
$R$1 = $119;
$RP$1 = $118;
continue;
}
$121 = $R$1 + 16 | 0;
$122 = HEAP32[$121 >> 2] | 0;
if (!$122) {
$R$1$lcssa = $R$1;
$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $122;
$RP$1 = $121;
}
}
if ($RP$1$lcssa >>> 0 < $4 >>> 0) _abort(); else {
HEAP32[$RP$1$lcssa >> 2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$104 = HEAP32[$3 + 8 >> 2] | 0;
if ($104 >>> 0 < $4 >>> 0) _abort();
$106 = $104 + 12 | 0;
if ((HEAP32[$106 >> 2] | 0) != ($3 | 0)) _abort();
$109 = $101 + 8 | 0;
if ((HEAP32[$109 >> 2] | 0) == ($3 | 0)) {
HEAP32[$106 >> 2] = $101;
HEAP32[$109 >> 2] = $104;
$R$3 = $101;
break;
} else _abort();
} while (0);
if ($99) {
$127 = HEAP32[$3 + 28 >> 2] | 0;
$128 = 70728 + ($127 << 2) | 0;
if (($3 | 0) == (HEAP32[$128 >> 2] | 0)) {
HEAP32[$128 >> 2] = $R$3;
if (!$R$3) {
HEAP32[17607] = HEAP32[17607] & ~(1 << $127);
break;
}
} else {
if ($99 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort();
$137 = $99 + 16 | 0;
if ((HEAP32[$137 >> 2] | 0) == ($3 | 0)) HEAP32[$137 >> 2] = $R$3; else HEAP32[$99 + 20 >> 2] = $R$3;
if (!$R$3) break;
}
$142 = HEAP32[17610] | 0;
if ($R$3 >>> 0 < $142 >>> 0) _abort();
HEAP32[$R$3 + 24 >> 2] = $99;
$145 = $3 + 16 | 0;
$146 = HEAP32[$145 >> 2] | 0;
do if ($146) if ($146 >>> 0 < $142 >>> 0) _abort(); else {
HEAP32[$R$3 + 16 >> 2] = $146;
HEAP32[$146 + 24 >> 2] = $R$3;
break;
} while (0);
$152 = HEAP32[$145 + 4 >> 2] | 0;
if ($152) if ($152 >>> 0 < (HEAP32[17610] | 0) >>> 0) _abort(); else {
HEAP32[$R$3 + 20 >> 2] = $152;
HEAP32[$152 + 24 >> 2] = $R$3;
break;
}
}
} while (0);
if ($73 >>> 0 < 16) {
HEAP32[$0 >> 2] = $71 | $1 & 1 | 2;
$163 = $p + $71 + 4 | 0;
HEAP32[$163 >> 2] = HEAP32[$163 >> 2] | 1;
$newp$2 = $p;
return $newp$2 | 0;
} else {
$166 = $p + $nb | 0;
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$166 + 4 >> 2] = $73 | 3;
$173 = $166 + $73 + 4 | 0;
HEAP32[$173 >> 2] = HEAP32[$173 >> 2] | 1;
_dispose_chunk($166, $73);
$newp$2 = $p;
return $newp$2 | 0;
}
return 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 $$lcssa = 0, $$pr9 = 0, $0 = 0, $12 = 0, $14 = 0, $16 = 0, $18 = 0, $2 = 0, $27 = 0, $31 = 0, $34 = 0, $36 = 0, $38 = 0, $4 = 0, $40 = 0, $43 = 0, $45 = 0, $47 = 0, $49 = 0, $50 = 0, $61 = 0, $63 = 0, $72 = 0, $8 = 0, $9 = 0, $algo$1$i = 0, $i$016 = 0, $i$02$i = 0, $i$02$i$lcssa = 0, $i$115 = 0, $l2$1$ph = 0, $l2$3 = 0, $l2$4 = 0, $n = 0, $name$1 = 0, $name$2 = 0, $parsed_flags = 0, $rc$5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$n = sp + 4 | 0;
$parsed_flags = sp;
HEAP32[$parsed_flags >> 2] = 0;
HEAP32[$r_parms >> 2] = 0;
$0 = __gcry_sexp_find_token($sexp, 40347, 0) | 0;
L1 : do if (!$0) {
$l2$4 = 0;
$name$2 = 0;
$rc$5 = 65;
} else {
$2 = __gcry_sexp_nth($0, 1) | 0;
if (!$2) {
$l2$4 = 0;
$name$2 = 0;
$rc$5 = 68;
} else {
$4 = __gcry_sexp_nth_string($2, 0) | 0;
if (!$4) {
$l2$4 = $2;
$name$2 = 0;
$rc$5 = 65;
} else {
if (!(_strcmp($4, 46546) | 0)) {
$8 = $ctx + 8 | 0;
$9 = __gcry_pk_util_parse_flaglist($2, $parsed_flags, $8) | 0;
if ($9) {
$l2$4 = $2;
$name$2 = $4;
$rc$5 = $9;
break;
}
L8 : do switch (HEAP32[$8 >> 2] | 0) {
case 4:
{
$l2$4 = $2;
$name$2 = $4;
$rc$5 = 70;
break L1;
break;
}
case 3:
{
__gcry_sexp_release($2);
$12 = __gcry_sexp_find_token($0, 37199, 0) | 0;
if ($12) {
$14 = __gcry_sexp_nth_data($12, 1, $n) | 0;
if (!$14) {
$l2$4 = $12;
$name$2 = $4;
$rc$5 = 68;
break L1;
}
$16 = HEAP32[$n >> 2] | 0;
$i$02$i = 0;
while (1) {
$18 = HEAP32[4172 + ($i$02$i << 3) >> 2] | 0;
if ((_strlen($18) | 0) == ($16 | 0)) if (!(_memcmp($18, $14, $16) | 0)) {
$i$02$i$lcssa = $i$02$i;
label = 13;
break;
}
$i$02$i = $i$02$i + 1 | 0;
if (($i$02$i | 0) == 12) {
label = 14;
break;
}
}
do if ((label | 0) == 13) $algo$1$i = HEAP32[4172 + ($i$02$i$lcssa << 3) + 4 >> 2] | 0; else if ((label | 0) == 14) {
$27 = __gcry_malloc($16 + 1 | 0) | 0;
if (!$27) {
HEAP32[$ctx + 16 >> 2] = 0;
$l2$4 = $12;
$name$2 = $4;
$rc$5 = 5;
break L1;
} else {
_memcpy($27 | 0, $14 | 0, $16 | 0) | 0;
HEAP8[$27 + $16 >> 0] = 0;
$31 = __gcry_md_map_name($27) | 0;
__gcry_free($27);
$algo$1$i = $31;
break;
}
} while (0);
HEAP32[$ctx + 16 >> 2] = $algo$1$i;
if (!$algo$1$i) {
$l2$4 = $12;
$name$2 = $4;
$rc$5 = 5;
break L1;
}
}
__gcry_sexp_release($12);
$34 = __gcry_sexp_find_token($0, 37209, 0) | 0;
if (!$34) $l2$1$ph = 0; else {
$36 = __gcry_sexp_nth_data($34, 1, $n) | 0;
if (!$36) {
$l2$4 = $34;
$name$2 = $4;
$rc$5 = 68;
break L1;
}
$38 = HEAP32[$n >> 2] | 0;
if (!$38) $l2$1$ph = $34; else {
$40 = __gcry_malloc($38) | 0;
HEAP32[$ctx + 20 >> 2] = $40;
if (!$40) {
$45 = _gpg_err_code_from_syserror() | 0;
if (!$45) {
$l2$1$ph = $34;
break L8;
} else {
$l2$4 = $34;
$name$2 = $4;
$rc$5 = $45;
break L1;
}
} else {
$43 = HEAP32[$n >> 2] | 0;
_memcpy($40 | 0, $36 | 0, $43 | 0) | 0;
HEAP32[$ctx + 24 >> 2] = $43;
$l2$1$ph = $34;
break L8;
}
}
}
break;
}
default:
$l2$1$ph = $2;
} while (0);
__gcry_sexp_release($l2$1$ph);
$47 = __gcry_sexp_nth($0, 2) | 0;
if (!$47) {
$l2$4 = 0;
$name$2 = $4;
$rc$5 = 68;
break;
} else {
$49 = $47;
$i$016 = 2;
}
L33 : while (1) {
$50 = __gcry_sexp_nth_data($49, 0, $n) | 0;
switch (HEAP32[$n >> 2] | 0) {
case 9:
{
if (_memcmp($50, 37199, 9) | 0) {
$$lcssa = $49;
break L33;
}
break;
}
case 5:
{
if (_memcmp($50, 37209, 5) | 0) {
$$lcssa = $49;
break L33;
}
break;
}
case 15:
{
if (_memcmp($50, 37215, 15) | 0) {
$$lcssa = $49;
break L33;
}
break;
}
default:
{
$$lcssa = $49;
break L33;
}
}
$i$016 = $i$016 + 1 | 0;
__gcry_sexp_release($49);
$49 = __gcry_sexp_nth($0, $i$016) | 0;
if (!$49) {
$l2$4 = 0;
$name$2 = $4;
$rc$5 = 68;
break L1;
}
}
__gcry_free($4);
$61 = __gcry_sexp_nth_string($$lcssa, 0) | 0;
if (!$61) {
$l2$4 = $$lcssa;
$name$2 = 0;
$rc$5 = 65;
break;
} else {
$l2$3 = $$lcssa;
$name$1 = $61;
}
} else {
HEAP32[$parsed_flags >> 2] = 8;
$l2$3 = $2;
$name$1 = $4;
}
$63 = HEAP32[$algo_names >> 2] | 0;
if (!$63) {
$l2$4 = $l2$3;
$name$2 = $name$1;
$rc$5 = 70;
} else {
$$pr9 = $63;
$i$115 = 0;
while (1) {
$i$115 = $i$115 + 1 | 0;
if (!(_strcasecmp($name$1, $$pr9) | 0)) break;
$$pr9 = HEAP32[$algo_names + ($i$115 << 2) >> 2] | 0;
if (!$$pr9) {
$l2$4 = $l2$3;
$name$2 = $name$1;
$rc$5 = 70;
break L1;
}
}
HEAP32[$r_parms >> 2] = $l2$3;
$72 = $ctx + 12 | 0;
HEAP32[$72 >> 2] = HEAP32[$72 >> 2] | HEAP32[$parsed_flags >> 2];
$l2$4 = 0;
$name$2 = $name$1;
$rc$5 = 0;
}
}
}
} while (0);
__gcry_free($name$2);
__gcry_sexp_release($l2$4);
__gcry_sexp_release($0);
STACKTOP = sp;
return $rc$5 | 0;
}
function _run_selftests_1210($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $$0$i = 0, $0 = 0, $10 = 0, $2 = 0, $26 = 0, $31 = 0, $32 = 0, $33 = 0, $40 = 0, $42 = 0, $44 = 0, $46 = 0, $54 = 0, $6 = 0, $61 = 0, $9 = 0, $ciphertext$0$i$i = 0, $decr$i$i = 0, $decr_plaintext$0$i$i = 0, $decr_plaintext$1$i$i = 0, $ec$0 = 0, $encr$i$i = 0, $err$03$i = 0, $errtxt$0$i = 0, $errtxt$0$i$2$i = 0, $errtxt$0$i$i = 0, $pkey$i = 0, $plain$i$i = 0, $skey$i = 0, $tmplist$0$i$i = 0, $vararg_buffer = 0, $what$0$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$plain$i$i = sp + 20 | 0;
$encr$i$i = sp + 16 | 0;
$decr$i$i = sp + 12 | 0;
$skey$i = sp + 8 | 0;
$pkey$i = sp + 4 | 0;
if (($algo | 0) != 1) {
$ec$0 = 4;
STACKTOP = sp;
return $ec$0 | 0;
}
HEAP32[$skey$i >> 2] = 0;
HEAP32[$pkey$i >> 2] = 0;
$0 = __gcry_sexp_sscan($skey$i, 0, 38739, 1029) | 0;
do if (!$0) {
$2 = __gcry_sexp_sscan($pkey$i, 0, 39769, 316) | 0;
if (!$2) {
$6 = __gcry_pk_testkey(HEAP32[$skey$i >> 2] | 0) | 0;
if ($6) {
$errtxt$0$i = _gpg_strerror($6) | 0;
$what$0$i = 40504;
label = 28;
break;
}
$9 = HEAP32[$pkey$i >> 2] | 0;
$10 = HEAP32[$skey$i >> 2] | 0;
HEAP32[$plain$i$i >> 2] = 0;
HEAP32[$encr$i$i >> 2] = 0;
HEAP32[$decr$i$i >> 2] = 0;
if (!(__gcry_sexp_sscan($plain$i$i, 0, 40086, 75) | 0)) if (!(__gcry_sexp_sscan($encr$i$i, 0, 40162, 75) | 0)) if (!(__gcry_pk_sign($decr$i$i, HEAP32[$plain$i$i >> 2] | 0, $10) | 0)) if (!(__gcry_pk_verify(HEAP32[$decr$i$i >> 2] | 0, HEAP32[$plain$i$i >> 2] | 0, $9) | 0)) {
$26 = ((__gcry_pk_verify(HEAP32[$decr$i$i >> 2] | 0, HEAP32[$encr$i$i >> 2] | 0, $9) | 0) & 65535 | 0) == 8;
$errtxt$0$i$i = $26 ? 0 : 40238;
} else $errtxt$0$i$i = 40303; else $errtxt$0$i$i = 40288; else $errtxt$0$i$i = 40265; else $errtxt$0$i$i = 40265;
__gcry_sexp_release(HEAP32[$decr$i$i >> 2] | 0);
__gcry_sexp_release(HEAP32[$encr$i$i >> 2] | 0);
__gcry_sexp_release(HEAP32[$plain$i$i >> 2] | 0);
if (!$errtxt$0$i$i) {
$31 = HEAP32[$pkey$i >> 2] | 0;
$32 = HEAP32[$skey$i >> 2] | 0;
HEAP32[$plain$i$i >> 2] = 0;
HEAP32[$encr$i$i >> 2] = 0;
HEAP32[$decr$i$i >> 2] = 0;
$33 = __gcry_mpi_new(1e3) | 0;
__gcry_mpi_randomize($33, 1e3, 0);
HEAP32[$vararg_buffer >> 2] = $33;
if (!(__gcry_sexp_build($plain$i$i, 0, 40317, $vararg_buffer) | 0)) if (!(__gcry_pk_encrypt($encr$i$i, HEAP32[$plain$i$i >> 2] | 0, $31) | 0)) {
$40 = __gcry_sexp_find_token(HEAP32[$encr$i$i >> 2] | 0, 40347, 0) | 0;
if (!$40) {
$ciphertext$0$i$i = 0;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40389;
$tmplist$0$i$i = 0;
} else {
$42 = __gcry_sexp_find_token($40, 40355, 0) | 0;
__gcry_sexp_release($40);
if (!$42) {
$ciphertext$0$i$i = 0;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40389;
$tmplist$0$i$i = 0;
} else {
$44 = __gcry_sexp_find_token($42, 38733, 0) | 0;
__gcry_sexp_release($42);
if (!$44) {
$ciphertext$0$i$i = 0;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40389;
$tmplist$0$i$i = 0;
} else {
$46 = __gcry_sexp_nth_mpi($44, 1, 0) | 0;
__gcry_sexp_release($44);
if (!$46) {
$ciphertext$0$i$i = 0;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40389;
$tmplist$0$i$i = 0;
} else if (!(__gcry_mpi_cmp($33, $46) | 0)) {
$ciphertext$0$i$i = $46;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40422;
$tmplist$0$i$i = 0;
} else if (!(__gcry_pk_decrypt($decr$i$i, HEAP32[$encr$i$i >> 2] | 0, $32) | 0)) {
$54 = __gcry_sexp_find_token(HEAP32[$decr$i$i >> 2] | 0, 40359, 0) | 0;
if (!$54) $decr_plaintext$0$i$i = __gcry_sexp_nth_mpi(HEAP32[$decr$i$i >> 2] | 0, 0, 5) | 0; else $decr_plaintext$0$i$i = __gcry_sexp_nth_mpi($54, 1, 5) | 0;
if (!$decr_plaintext$0$i$i) {
$ciphertext$0$i$i = $46;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40466;
$tmplist$0$i$i = $54;
} else {
$61 = (__gcry_mpi_cmp($33, $decr_plaintext$0$i$i) | 0) == 0;
$ciphertext$0$i$i = $46;
$decr_plaintext$1$i$i = $decr_plaintext$0$i$i;
$errtxt$0$i$2$i = $61 ? 0 : 40365;
$tmplist$0$i$i = $54;
}
} else {
$ciphertext$0$i$i = $46;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40451;
$tmplist$0$i$i = 0;
}
}
}
}
} else {
$ciphertext$0$i$i = 0;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40374;
$tmplist$0$i$i = 0;
} else {
$ciphertext$0$i$i = 0;
$decr_plaintext$1$i$i = 0;
$errtxt$0$i$2$i = 40265;
$tmplist$0$i$i = 0;
}
__gcry_sexp_release($tmplist$0$i$i);
__gcry_mpi_release($decr_plaintext$1$i$i);
__gcry_sexp_release(HEAP32[$decr$i$i >> 2] | 0);
__gcry_mpi_release($ciphertext$0$i$i);
__gcry_sexp_release(HEAP32[$encr$i$i >> 2] | 0);
__gcry_sexp_release(HEAP32[$plain$i$i >> 2] | 0);
__gcry_mpi_release($33);
if (!$errtxt$0$i$2$i) {
__gcry_sexp_release(HEAP32[$pkey$i >> 2] | 0);
__gcry_sexp_release(HEAP32[$skey$i >> 2] | 0);
$$0$i = 0;
} else {
$errtxt$0$i = $errtxt$0$i$2$i;
$what$0$i = 40525;
label = 28;
}
} else {
$errtxt$0$i = $errtxt$0$i$i;
$what$0$i = 40520;
label = 28;
}
} else {
$err$03$i = $2;
label = 4;
}
} else {
$err$03$i = $0;
label = 4;
} while (0);
if ((label | 0) == 4) {
$errtxt$0$i = _gpg_strerror($err$03$i) | 0;
$what$0$i = 40496;
label = 28;
}
if ((label | 0) == 28) {
__gcry_sexp_release(HEAP32[$pkey$i >> 2] | 0);
__gcry_sexp_release(HEAP32[$skey$i >> 2] | 0);
if (!$report) $$0$i = 50; else {
FUNCTION_TABLE_viiii[$report & 1](40533, 1, $what$0$i, $errtxt$0$i);
$$0$i = 50;
}
}
$ec$0 = $$0$i;
STACKTOP = sp;
return $ec$0 | 0;
}
function __gcry_mpi_tdiv_qr($quot, $rem, $num, $den) {
$quot = $quot | 0;
$rem = $rem | 0;
$num = $num | 0;
$den = $den | 0;
var $$neg5 = 0, $0 = 0, $1 = 0, $10 = 0, $106 = 0, $107 = 0, $108 = 0, $121 = 0, $122 = 0, $129 = 0, $19 = 0, $21 = 0, $29 = 0, $3 = 0, $31 = 0, $33 = 0, $35 = 0, $38 = 0, $4 = 0, $40 = 0, $5 = 0, $56 = 0, $61 = 0, $70 = 0, $76 = 0, $8 = 0, $81 = 0, $82 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $94 = 0, $_i$011 = 0, $_i1$018 = 0, $_i3$016 = 0, $_i4$014 = 0, $dp$0 = 0, $dp$1 = 0, $marker = 0, $marker_nlimbs = 0, $markidx$0 = 0, $markidx$1 = 0, $markidx$2 = 0, $markidx$312 = 0, $np$0 = 0, $qp$0 = 0, $qsize$0 = 0, $rlimb$0 = 0, $rsize$1 = 0, $rsize$2 = 0, $rsize$2$lcssa = 0, $rsize$3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$marker = sp + 20 | 0;
$marker_nlimbs = sp;
$0 = $num + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$3 = HEAP32[$den + 4 >> 2] | 0;
$4 = $num + 8 | 0;
$5 = HEAP32[$4 >> 2] | 0;
$8 = HEAP32[$den + 8 >> 2] ^ $5;
$9 = $1 + 1 | 0;
__gcry_mpi_resize($rem, $9);
$10 = $9 - $3 | 0;
if (($10 | 0) < 1) {
if (($num | 0) != ($rem | 0)) {
HEAP32[$rem + 4 >> 2] = HEAP32[$0 >> 2];
HEAP32[$rem + 8 >> 2] = HEAP32[$4 >> 2];
if (($1 | 0) > 0) {
$19 = HEAP32[$num + 16 >> 2] | 0;
$21 = HEAP32[$rem + 16 >> 2] | 0;
$_i$011 = 0;
do {
HEAP32[$21 + ($_i$011 << 2) >> 2] = HEAP32[$19 + ($_i$011 << 2) >> 2];
$_i$011 = $_i$011 + 1 | 0;
} while (($_i$011 | 0) != ($1 | 0));
}
}
if (!$quot) {
STACKTOP = sp;
return;
}
HEAP32[$quot + 4 >> 2] = 0;
HEAP32[$quot + 8 >> 2] = 0;
STACKTOP = sp;
return;
}
$29 = ($quot | 0) != 0;
if ($29) __gcry_mpi_resize($quot, $10);
$31 = HEAP32[$num + 16 >> 2] | 0;
$33 = HEAP32[$den + 16 >> 2] | 0;
$35 = HEAP32[$rem + 16 >> 2] | 0;
if (($3 | 0) == 1) {
if ($29) {
$38 = HEAP32[$quot + 16 >> 2] | 0;
$40 = __gcry_mpih_divmod_1($38, $31, $1, HEAP32[$33 >> 2] | 0) | 0;
HEAP32[$quot + 4 >> 2] = $10 - ((HEAP32[$38 + ($10 + -1 << 2) >> 2] | 0) == 0 & 1);
HEAP32[$quot + 8 >> 2] = $8;
$rlimb$0 = $40;
} else $rlimb$0 = __gcry_mpih_mod_1($31, $1, HEAP32[$33 >> 2] | 0) | 0;
HEAP32[$35 >> 2] = $rlimb$0;
HEAP32[$rem + 4 >> 2] = ($rlimb$0 | 0) != 0 & 1;
HEAP32[$rem + 8 >> 2] = $5;
STACKTOP = sp;
return;
}
if ($29) {
$56 = HEAP32[$quot + 16 >> 2] | 0;
if (($56 | 0) == ($31 | 0)) {
HEAP32[$marker_nlimbs >> 2] = $1;
$61 = __gcry_mpi_alloc_limb_space($1, HEAP32[$quot + 12 >> 2] & 1) | 0;
HEAP32[$marker >> 2] = $61;
if (($1 | 0) > 0) {
$_i1$018 = 0;
do {
HEAP32[$61 + ($_i1$018 << 2) >> 2] = HEAP32[$31 + ($_i1$018 << 2) >> 2];
$_i1$018 = $_i1$018 + 1 | 0;
} while (($_i1$018 | 0) != ($1 | 0));
$markidx$0 = 1;
$np$0 = $61;
$qp$0 = $31;
} else {
$markidx$0 = 1;
$np$0 = $61;
$qp$0 = $31;
}
} else {
$markidx$0 = 0;
$np$0 = $31;
$qp$0 = $56;
}
} else {
$markidx$0 = 0;
$np$0 = $31;
$qp$0 = $35 + ($3 << 2) | 0;
}
$70 = HEAP32[$33 + ($3 + -1 << 2) >> 2] | 0;
$76 = $70 >>> 0 < 65536 ? ($70 >>> 0 < 256 ? 0 : 8) : $70 >>> 0 < 16777216 ? 16 : 24;
$$neg5 = 32 - (HEAPU8[45217 + ($70 >>> $76) >> 0] | 0) | 0;
$81 = $$neg5 - $76 | 0;
$82 = ($$neg5 | 0) != ($76 | 0);
if ($82) {
HEAP32[$marker_nlimbs + ($markidx$0 << 2) >> 2] = $3;
if (!$den) $90 = 0; else $90 = (HEAP32[$den + 12 >> 2] & 1 | 0) != 0;
$91 = __gcry_mpi_alloc_limb_space($3, $90 & 1) | 0;
$92 = $markidx$0 + 1 | 0;
HEAP32[$marker + ($markidx$0 << 2) >> 2] = $91;
__gcry_mpih_lshift($91, $33, $3, $81) | 0;
$94 = __gcry_mpih_lshift($35, $np$0, $1, $81) | 0;
if (!$94) {
$dp$1 = $91;
$markidx$2 = $92;
$rsize$1 = $1;
} else {
HEAP32[$35 + ($1 << 2) >> 2] = $94;
$dp$1 = $91;
$markidx$2 = $92;
$rsize$1 = $9;
}
} else {
if (($33 | 0) == ($35 | 0) | $29 & ($33 | 0) == ($qp$0 | 0)) {
HEAP32[$marker_nlimbs + ($markidx$0 << 2) >> 2] = $3;
if (!$den) $106 = 0; else $106 = (HEAP32[$den + 12 >> 2] & 1 | 0) != 0;
$107 = __gcry_mpi_alloc_limb_space($3, $106 & 1) | 0;
$108 = $markidx$0 + 1 | 0;
HEAP32[$marker + ($markidx$0 << 2) >> 2] = $107;
if (($3 | 0) > 0) {
$_i3$016 = 0;
do {
HEAP32[$107 + ($_i3$016 << 2) >> 2] = HEAP32[$33 + ($_i3$016 << 2) >> 2];
$_i3$016 = $_i3$016 + 1 | 0;
} while (($_i3$016 | 0) != ($3 | 0));
$dp$0 = $107;
$markidx$1 = $108;
} else {
$dp$0 = $107;
$markidx$1 = $108;
}
} else {
$dp$0 = $33;
$markidx$1 = $markidx$0;
}
if (($35 | 0) != ($np$0 | 0) & ($1 | 0) > 0) {
$_i4$014 = 0;
do {
HEAP32[$35 + ($_i4$014 << 2) >> 2] = HEAP32[$np$0 + ($_i4$014 << 2) >> 2];
$_i4$014 = $_i4$014 + 1 | 0;
} while (($_i4$014 | 0) != ($1 | 0));
$dp$1 = $dp$0;
$markidx$2 = $markidx$1;
$rsize$1 = $1;
} else {
$dp$1 = $dp$0;
$markidx$2 = $markidx$1;
$rsize$1 = $1;
}
}
$121 = __gcry_mpih_divrem($qp$0, 0, $35, $rsize$1, $dp$1, $3) | 0;
if ($29) {
$122 = $rsize$1 - $3 | 0;
if (!$121) $qsize$0 = $122; else {
HEAP32[$qp$0 + ($122 << 2) >> 2] = $121;
$qsize$0 = $122 + 1 | 0;
}
HEAP32[$quot + 4 >> 2] = $qsize$0;
HEAP32[$quot + 8 >> 2] = $8;
$rsize$2 = $3;
} else $rsize$2 = $3;
while (1) {
if (($rsize$2 | 0) <= 0) {
$rsize$2$lcssa = $rsize$2;
break;
}
$129 = $rsize$2 + -1 | 0;
if (!(HEAP32[$35 + ($129 << 2) >> 2] | 0)) $rsize$2 = $129; else {
$rsize$2$lcssa = $rsize$2;
break;
}
}
if ($82 & ($rsize$2$lcssa | 0) != 0) {
__gcry_mpih_rshift($35, $35, $rsize$2$lcssa, $81) | 0;
$rsize$3 = $rsize$2$lcssa - ((HEAP32[$35 + ($rsize$2$lcssa + -1 << 2) >> 2] | 0) == 0 & 1) | 0;
} else $rsize$3 = $rsize$2$lcssa;
HEAP32[$rem + 4 >> 2] = $rsize$3;
HEAP32[$rem + 8 >> 2] = $5;
if (!$markidx$2) {
STACKTOP = sp;
return;
} else $markidx$312 = $markidx$2;
do {
$markidx$312 = $markidx$312 + -1 | 0;
__gcry_mpi_free_limb_space(HEAP32[$marker + ($markidx$312 << 2) >> 2] | 0, HEAP32[$marker_nlimbs + ($markidx$312 << 2) >> 2] | 0);
} while (($markidx$312 | 0) != 0);
STACKTOP = sp;
return;
}
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 $$lcssa = 0, $$lcssa$us = 0, $$lcssa53 = 0, $$lcssa54 = 0, $$lcssa55 = 0, $$lcssa56 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $34 = 0, $36 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $53 = 0, $57 = 0, $58 = 0, $59 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $75 = 0, $8 = 0, $80 = 0, $83 = 0, $85 = 0, $9 = 0, $90 = 0, $count2 = 0, $dotcount$017 = 0, $dotcount$017$us = 0, $dotcount$1 = 0, $dotcount$1$us = 0, $i$012 = 0, $i$113 = 0, $i$113$us = 0, $step$014 = 0, $step$014$us = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$count2 = sp + 12 | 0;
if ($nbits >>> 0 < 16) {
HEAP32[$vararg_buffer >> 2] = 16;
__gcry_log_fatal(36975, $vararg_buffer);
}
$1 = __gcry_xmalloc(2672) | 0;
$2 = __gcry_mpi_alloc_set_ui(2) | 0;
$3 = __gcry_mpi_alloc_set_ui(3) | 0;
$4 = ($secret | 0) != 0;
if ($4) $7 = __gcry_mpi_snew($nbits) | 0; else $7 = __gcry_mpi_new($nbits) | 0;
$8 = __gcry_mpi_alloc_like($7) | 0;
$9 = __gcry_mpi_alloc_like($7) | 0;
$10 = __gcry_mpi_alloc_like($7) | 0;
HEAP32[$count2 >> 2] = 0;
$11 = $nbits + -1 | 0;
$12 = $nbits + -2 | 0;
$13 = $11 - $secret | 0;
$14 = ($extra_check | 0) == 0;
L8 : while (1) {
__gcry_mpi_randomize($7, $nbits, $randomlevel);
__gcry_mpi_set_highbit($7, $11);
if ($4) __gcry_mpi_set_bit($7, $12);
__gcry_mpi_set_bit($7, 0);
$i$012 = 0;
do {
HEAP32[$1 + ($i$012 << 2) >> 2] = __gcry_mpi_fdiv_r_ui(0, $7, HEAPU16[16068 + ($i$012 << 1) >> 1] | 0) | 0;
$i$012 = $i$012 + 1 | 0;
} while (($i$012 | 0) != 668);
L16 : do if ($14) {
$dotcount$017$us = 0;
$step$014$us = 0;
while (1) {
$21 = 3;
$i$113$us = 0;
while (1) {
$41 = $1 + ($i$113$us << 2) | 0;
$42 = HEAP32[$41 >> 2] | 0;
$43 = $42 + $step$014$us | 0;
if ($43 >>> 0 < $21 >>> 0) $$lcssa$us = $43; else {
$22 = $42;
while (1) {
$20 = $22 - $21 | 0;
$23 = $20 + $step$014$us | 0;
if ($23 >>> 0 < $21 >>> 0) {
$$lcssa55 = $20;
$$lcssa56 = $23;
break;
} else $22 = $20;
}
HEAP32[$41 >> 2] = $$lcssa55;
$$lcssa$us = $$lcssa56;
}
$16 = $i$113$us + 1 | 0;
if (!$$lcssa$us) {
$dotcount$1$us = $dotcount$017$us;
break;
}
if (($16 | 0) == 668) {
label = 15;
break;
} else {
$21 = HEAPU16[16068 + ($16 << 1) >> 1] | 0;
$i$113$us = $16;
}
}
if ((label | 0) == 15) {
label = 0;
__gcry_mpi_add_ui($10, $7, $step$014$us);
HEAP32[$count2 >> 2] = (HEAP32[$count2 >> 2] | 0) + 1;
__gcry_mpi_sub_ui($9, $10, 1);
__gcry_mpi_powm($8, $2, $9, $10);
if (!(__gcry_mpi_cmp_ui($8, 1) | 0)) if (_is_prime($10, 5, $count2) | 0) break;
$34 = $dotcount$017$us + 1 | 0;
if (($34 | 0) == 10) {
$36 = HEAP32[17511] | 0;
if (!$36) $dotcount$1$us = 0; else {
FUNCTION_TABLE_viiiii[$36 & 15](HEAP32[17512] | 0, 36874, 46, 0, 0);
$dotcount$1$us = 0;
}
} else $dotcount$1$us = $34;
}
$step$014$us = $step$014$us + 2 | 0;
if ($step$014$us >>> 0 >= 2e4) break L16; else $dotcount$017$us = $dotcount$1$us;
}
if (!(__gcry_mpi_test_bit($10, $13) | 0)) label = 34; else {
label = 46;
break L8;
}
} else {
$dotcount$017 = 0;
$step$014 = 0;
while (1) {
$61 = 3;
$i$113 = 0;
while (1) {
$57 = $1 + ($i$113 << 2) | 0;
$58 = HEAP32[$57 >> 2] | 0;
$59 = $58 + $step$014 | 0;
if ($59 >>> 0 < $61 >>> 0) $$lcssa = $59; else {
$63 = $58;
while (1) {
$62 = $63 - $61 | 0;
$64 = $62 + $step$014 | 0;
if ($64 >>> 0 < $61 >>> 0) {
$$lcssa53 = $62;
$$lcssa54 = $64;
break;
} else $63 = $62;
}
HEAP32[$57 >> 2] = $$lcssa53;
$$lcssa = $$lcssa54;
}
$53 = $i$113 + 1 | 0;
if (!$$lcssa) {
$dotcount$1 = $dotcount$017;
break;
}
if (($53 | 0) == 668) {
label = 31;
break;
} else {
$61 = HEAPU16[16068 + ($53 << 1) >> 1] | 0;
$i$113 = $53;
}
}
if ((label | 0) == 31) {
label = 0;
__gcry_mpi_add_ui($10, $7, $step$014);
HEAP32[$count2 >> 2] = (HEAP32[$count2 >> 2] | 0) + 1;
__gcry_mpi_sub_ui($9, $10, 1);
__gcry_mpi_powm($8, $2, $9, $10);
if (!(__gcry_mpi_cmp_ui($8, 1) | 0)) if (_is_prime($10, 5, $count2) | 0) {
if (!(__gcry_mpi_test_bit($10, $13) | 0)) {
label = 34;
break L16;
}
if (!(FUNCTION_TABLE_iii[$extra_check & 7]($extra_check_arg, $10) | 0)) {
label = 46;
break L8;
}
$80 = HEAP32[17511] | 0;
if ($80) FUNCTION_TABLE_viiiii[$80 & 15](HEAP32[17512] | 0, 36874, 47, 0, 0);
}
$83 = $dotcount$017 + 1 | 0;
if (($83 | 0) == 10) {
$85 = HEAP32[17511] | 0;
if (!$85) $dotcount$1 = 0; else {
FUNCTION_TABLE_viiiii[$85 & 15](HEAP32[17512] | 0, 36874, 46, 0, 0);
$dotcount$1 = 0;
}
} else $dotcount$1 = $83;
}
$step$014 = $step$014 + 2 | 0;
if ($step$014 >>> 0 >= 2e4) break; else $dotcount$017 = $dotcount$1;
}
} while (0);
if ((label | 0) == 34) {
label = 0;
$75 = HEAP32[17511] | 0;
if ($75) FUNCTION_TABLE_viiiii[$75 & 15](HEAP32[17512] | 0, 36874, 10, 0, 0);
__gcry_log_debug(37022, $vararg_buffer1);
}
$90 = HEAP32[17511] | 0;
if (!$90) continue;
FUNCTION_TABLE_viiiii[$90 & 15](HEAP32[17512] | 0, 36874, 58, 0, 0);
}
if ((label | 0) == 46) {
__gcry_mpi_free($2);
__gcry_mpi_free($3);
__gcry_mpi_free($8);
__gcry_mpi_free($9);
__gcry_mpi_free($7);
__gcry_free($1);
STACKTOP = sp;
return $10 | 0;
}
return 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, $$02 = 0, $$lcssa = 0, $$lcssa120 = 0, $10 = 0, $21 = 0, $29 = 0, $30 = 0, $5 = 0, $7 = 0, $8 = 0, $count$031 = 0, $count$031$lcssa = 0, $count$031$lcssa123 = 0, $count$031$lcssa124 = 0, $count$031$lcssa125 = 0, $count$031$lcssa126 = 0, $count$031$lcssa127 = 0, $count$031$lcssa128 = 0, $count$031$lcssa129 = 0, $count$031$lcssa130 = 0, $count$031$lcssa131 = 0, $count$1 = 0, $datalen$030 = 0, $datalen$1 = 0, $disphint$029 = 0, $disphint$1 = 0, $dummy_erroff$erroff = 0, $level$032 = 0, $level$1 = 0, $p$028 = 0, $p$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$dummy_erroff$erroff = ($erroff | 0) == 0 ? sp + 4 | 0 : $erroff;
$$0 = ($errcode | 0) == 0 ? sp : $errcode;
HEAP32[$$0 >> 2] = 0;
HEAP32[$dummy_erroff$erroff >> 2] = 0;
L1 : do if (!$buffer) $$02 = 0; else {
if ((HEAP8[$buffer >> 0] | 0) != 40) {
HEAP32[$$0 >> 2] = 204;
$$02 = 0;
break;
}
$5 = $length + -1 | 0;
$8 = 40;
$count$031 = 0;
$datalen$030 = 0;
$disphint$029 = 0;
$level$032 = 0;
$p$028 = $buffer;
L6 : while (1) {
$7 = $8 & 255;
L8 : do if (!$datalen$030) switch ($8 << 24 >> 24) {
case 40:
{
if ($disphint$029) {
$count$031$lcssa129 = $count$031;
label = 16;
break L6;
}
$count$1 = $count$031;
$datalen$1 = 0;
$disphint$1 = 0;
$level$1 = $level$032 + 1 | 0;
$p$1 = $p$028;
break L8;
break;
}
case 41:
{
if (!$level$032) {
$count$031$lcssa126 = $count$031;
label = 19;
break L6;
}
if ($disphint$029) {
$count$031$lcssa127 = $count$031;
label = 21;
break L6;
}
$21 = $level$032 + -1 | 0;
if (!$21) {
$count$031$lcssa128 = $count$031;
label = 23;
break L6;
} else {
$count$1 = $count$031;
$datalen$1 = 0;
$disphint$1 = 0;
$level$1 = $21;
$p$1 = $p$028;
break L8;
}
break;
}
case 91:
{
if (!$disphint$029) {
$count$1 = $count$031;
$datalen$1 = 0;
$disphint$1 = $p$028;
$level$1 = $level$032;
$p$1 = $p$028;
break L8;
} else {
$count$031$lcssa125 = $count$031;
label = 25;
break L6;
}
break;
}
case 93:
{
if (!$disphint$029) {
$count$031$lcssa124 = $count$031;
label = 27;
break L6;
} else {
$count$1 = $count$031;
$datalen$1 = 0;
$disphint$1 = 0;
$level$1 = $level$032;
$p$1 = $p$028;
break L8;
}
break;
}
default:
{
if (($8 + -48 & 255) >= 10) {
$$lcssa120 = $8;
$count$031$lcssa130 = $count$031;
label = 32;
break L6;
}
if ($8 << 24 >> 24 == 48) {
$count$031$lcssa131 = $count$031;
label = 30;
break L6;
}
$count$1 = $count$031;
$datalen$1 = $7 + -48 | 0;
$disphint$1 = $disphint$029;
$level$1 = $level$032;
$p$1 = $p$028;
break L8;
}
} else if ($8 << 24 >> 24 == 58) {
$10 = $count$031 + $datalen$030 | 0;
if ($5 >>> 0 < $10 >>> 0) {
$count$031$lcssa123 = $count$031;
label = 9;
break L6;
}
$count$1 = $10;
$datalen$1 = 0;
$disphint$1 = $disphint$029;
$level$1 = $level$032;
$p$1 = $p$028 + $datalen$030 | 0;
break;
} else {
if (($8 + -48 & 255) >= 10) {
$count$031$lcssa = $count$031;
label = 13;
break L6;
}
$count$1 = $count$031;
$datalen$1 = ($datalen$030 * 10 | 0) + -48 + $7 | 0;
$disphint$1 = $disphint$029;
$level$1 = $level$032;
$p$1 = $p$028;
break;
} while (0);
$29 = $p$1 + 1 | 0;
$30 = $count$1 + 1 | 0;
if ($5 >>> 0 < $30 >>> 0) {
$$lcssa = $30;
label = 5;
break;
}
$8 = HEAP8[$29 >> 0] | 0;
$count$031 = $30;
$datalen$030 = $datalen$1;
$disphint$029 = $disphint$1;
$level$032 = $level$1;
$p$028 = $29;
}
switch (label | 0) {
case 5:
{
HEAP32[$dummy_erroff$erroff >> 2] = $$lcssa;
HEAP32[$$0 >> 2] = 202;
$$02 = 0;
break L1;
break;
}
case 9:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa123;
HEAP32[$$0 >> 2] = 202;
$$02 = 0;
break L1;
break;
}
case 13:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa;
HEAP32[$$0 >> 2] = 201;
$$02 = 0;
break L1;
break;
}
case 16:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa129;
HEAP32[$$0 >> 2] = 209;
$$02 = 0;
break L1;
break;
}
case 19:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa126;
HEAP32[$$0 >> 2] = 203;
$$02 = 0;
break L1;
break;
}
case 21:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa127;
HEAP32[$$0 >> 2] = 209;
$$02 = 0;
break L1;
break;
}
case 23:
{
$$02 = $count$031$lcssa128 + 1 | 0;
break L1;
break;
}
case 25:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa125;
HEAP32[$$0 >> 2] = 208;
$$02 = 0;
break L1;
break;
}
case 27:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa124;
HEAP32[$$0 >> 2] = 209;
$$02 = 0;
break L1;
break;
}
case 30:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa131;
HEAP32[$$0 >> 2] = 207;
$$02 = 0;
break L1;
break;
}
case 32:
{
switch ($$lcssa120 << 24 >> 24) {
case 92:
case 38:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa130;
HEAP32[$$0 >> 2] = 210;
$$02 = 0;
break L1;
break;
}
default:
{
HEAP32[$dummy_erroff$erroff >> 2] = $count$031$lcssa130;
HEAP32[$$0 >> 2] = 205;
$$02 = 0;
break L1;
}
}
break;
}
}
} while (0);
STACKTOP = sp;
return $$02 | 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, $$lcssa = 0, $100 = 0, $104 = 0, $114 = 0, $13 = 0, $23 = 0, $37 = 0, $42 = 0, $46 = 0, $51 = 0, $55 = 0, $60 = 0, $64 = 0, $69 = 0, $73 = 0, $78 = 0, $8 = 0, $82 = 0, $87 = 0, $91 = 0, $96 = 0, $aliasno$07$i = 0, $idx$08$i = 0, $idx$1 = 0, $idx$155 = 0, $idx$16$i = 0, $val$i$13 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer16 = sp + 48 | 0;
$vararg_buffer13 = sp + 40 | 0;
$vararg_buffer10 = sp + 32 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$val$i$13 = sp + 52 | 0;
L1 : do if (!$name) if (($nbits | 0) == 192) $idx$155 = 1; else {
switch ($nbits | 0) {
case 224:
case 256:
{
$idx$155 = ($nbits | 0) == 224 ? 2 : 3;
break L1;
break;
}
default:
{}
}
if (($nbits | 0) == 384) $idx$155 = 4; else if (($nbits | 0) == 521) $idx$155 = 5; else if (($nbits | 0) == 160) $idx$155 = 6; else if (($nbits | 0) == 320) $idx$155 = 10; else if (($nbits | 0) == 512) $idx$155 = 12; else if (($nbits | 0) == 511) $idx$155 = 17; else {
$$0 = 188;
STACKTOP = sp;
return $$0 | 0;
}
} else {
$idx$08$i = 0;
while (1) {
if (!(_strcmp($name, HEAP32[1280 + ($idx$08$i * 48 | 0) >> 2] | 0) | 0)) {
$idx$1 = $idx$08$i;
break;
}
$idx$08$i = $idx$08$i + 1 | 0;
if (($idx$08$i | 0) == 21) {
$114 = 2336;
$aliasno$07$i = 0;
label = 5;
break;
}
}
L14 : do if ((label | 0) == 5) {
while (1) {
label = 0;
$8 = $aliasno$07$i + 1 | 0;
if (!(_strcmp($name, HEAP32[2336 + ($aliasno$07$i << 3) + 4 >> 2] | 0) | 0)) {
$$lcssa = $114;
break;
}
if (($8 | 0) == 36) {
$$0 = 188;
label = 47;
break;
} else {
$114 = 2336 + ($8 << 3) | 0;
$aliasno$07$i = $8;
label = 5;
}
}
if ((label | 0) == 47) {
STACKTOP = sp;
return $$0 | 0;
}
$13 = HEAP32[$$lcssa >> 2] | 0;
$idx$16$i = 0;
while (1) {
if (!(_strcmp($13, HEAP32[1280 + ($idx$16$i * 48 | 0) >> 2] | 0) | 0)) {
$idx$1 = $idx$16$i;
break L14;
}
$idx$16$i = $idx$16$i + 1 | 0;
if (($idx$16$i | 0) == 21) {
$$0 = 188;
break;
}
}
STACKTOP = sp;
return $$0 | 0;
} while (0);
if (($idx$1 | 0) < 0) {
$$0 = 188;
STACKTOP = sp;
return $$0 | 0;
} else $idx$155 = $idx$1;
} while (0);
$23 = HEAP32[1280 + ($idx$155 * 48 | 0) >> 2] | 0;
if (!(($idx$155 + -1 | 0) >>> 0 < 5 | (__gcry_fips_mode() | 0) == 0)) {
$$0 = 60;
STACKTOP = sp;
return $$0 | 0;
}
if ($r_nbits) HEAP32[$r_nbits >> 2] = HEAP32[1280 + ($idx$155 * 48 | 0) + 4 >> 2];
if (!$curve) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$curve >> 2] = HEAP32[1280 + ($idx$155 * 48 | 0) + 12 >> 2];
HEAP32[$curve + 4 >> 2] = HEAP32[1280 + ($idx$155 * 48 | 0) + 16 >> 2];
$37 = $curve + 8 | 0;
do if (!(HEAP32[$37 >> 2] | 0)) {
$42 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 20 >> 2] | 0, 0, 0) | 0;
if (!$42) {
HEAP32[$37 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($42) | 0;
__gcry_log_fatal(35288, $vararg_buffer);
}
} while (0);
$46 = $curve + 12 | 0;
do if (!(HEAP32[$46 >> 2] | 0)) {
$51 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 24 >> 2] | 0, 0, 0) | 0;
if (!$51) {
HEAP32[$46 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($51) | 0;
__gcry_log_fatal(35288, $vararg_buffer1);
}
} while (0);
$55 = $curve + 16 | 0;
do if (!(HEAP32[$55 >> 2] | 0)) {
$60 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 28 >> 2] | 0, 0, 0) | 0;
if (!$60) {
HEAP32[$55 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($60) | 0;
__gcry_log_fatal(35288, $vararg_buffer4);
}
} while (0);
$64 = $curve + 32 | 0;
do if (!(HEAP32[$64 >> 2] | 0)) {
$69 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 32 >> 2] | 0, 0, 0) | 0;
if (!$69) {
HEAP32[$64 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer7 >> 2] = _gpg_strerror($69) | 0;
__gcry_log_fatal(35288, $vararg_buffer7);
}
} while (0);
$73 = $curve + 36 | 0;
do if (!(HEAP32[$73 >> 2] | 0)) {
$78 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 44 >> 2] | 0, 0, 0) | 0;
if (!$78) {
HEAP32[$73 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer10 >> 2] = _gpg_strerror($78) | 0;
__gcry_log_fatal(35288, $vararg_buffer10);
}
} while (0);
$82 = $curve + 20 | 0;
do if (!(HEAP32[$82 >> 2] | 0)) {
$87 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 36 >> 2] | 0, 0, 0) | 0;
if (!$87) {
HEAP32[$82 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer13 >> 2] = _gpg_strerror($87) | 0;
__gcry_log_fatal(35288, $vararg_buffer13);
}
} while (0);
$91 = $curve + 24 | 0;
do if (!(HEAP32[$91 >> 2] | 0)) {
$96 = __gcry_mpi_scan($val$i$13, 4, HEAP32[1280 + ($idx$155 * 48 | 0) + 40 >> 2] | 0, 0, 0) | 0;
if (!$96) {
HEAP32[$91 >> 2] = HEAP32[$val$i$13 >> 2];
break;
} else {
HEAP32[$vararg_buffer16 >> 2] = _gpg_strerror($96) | 0;
__gcry_log_fatal(35288, $vararg_buffer16);
}
} while (0);
$100 = $curve + 28 | 0;
if (!(HEAP32[$100 >> 2] | 0)) HEAP32[$100 >> 2] = __gcry_mpi_alloc_set_ui(1) | 0;
$104 = $curve + 40 | 0;
if (HEAP32[$104 >> 2] | 0) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$104 >> 2] = $23;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function _ghash_internal($c, $result, $buf, $nblocks) {
$c = $c | 0;
$result = $result | 0;
$buf = $buf | 0;
$nblocks = $nblocks | 0;
var $$016 = 0, $$07 = 0, $$lcssa = 0, $$lcssa24 = 0, $$lcssa25 = 0, $$lcssa26 = 0, $$lcssa27 = 0, $1 = 0, $10 = 0, $11 = 0, $113 = 0, $118 = 0, $119 = 0, $12 = 0, $122 = 0, $125 = 0, $127 = 0, $128 = 0, $13 = 0, $131 = 0, $14 = 0, $142 = 0, $15 = 0, $150 = 0, $16 = 0, $165 = 0, $168 = 0, $17 = 0, $18 = 0, $19 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $206 = 0, $207 = 0, $209 = 0, $21 = 0, $213 = 0, $215 = 0, $219 = 0, $22 = 0, $223 = 0, $225 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $95 = 0, $98 = 0, $V$i = 0, $burn$0$lcssa = 0, $i$0$i = 0, $tmp$sroa$0$0$i = 0, $tmp$sroa$15$0$i = 0, $tmp$sroa$22$0$i = 0, $tmp$sroa$8$0$i = 0, $v$0$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$V$i = sp;
if (!$nblocks) {
$burn$0$lcssa = 0;
$260 = ($burn$0$lcssa | 0) != 0;
$261 = $260 ? 20 : 0;
$262 = $261 + $burn$0$lcssa | 0;
STACKTOP = sp;
return $262 | 0;
}
$1 = $result;
$2 = $result + 4 | 0;
$3 = $V$i + 4 | 0;
$4 = $result + 8 | 0;
$5 = $V$i + 8 | 0;
$6 = $result + 12 | 0;
$7 = $V$i + 12 | 0;
$8 = $result + 1 | 0;
$9 = $result + 2 | 0;
$10 = $result + 3 | 0;
$11 = $result + 5 | 0;
$12 = $result + 6 | 0;
$13 = $result + 7 | 0;
$14 = $result + 9 | 0;
$15 = $result + 10 | 0;
$16 = $result + 11 | 0;
$17 = $result + 13 | 0;
$18 = $result + 14 | 0;
$19 = $result + 15 | 0;
$20 = $V$i + 1 | 0;
$21 = $V$i + 2 | 0;
$22 = $V$i + 3 | 0;
$23 = $V$i + 5 | 0;
$24 = $V$i + 6 | 0;
$25 = $V$i + 7 | 0;
$26 = $V$i + 9 | 0;
$27 = $V$i + 10 | 0;
$28 = $V$i + 11 | 0;
$29 = $V$i + 13 | 0;
$30 = $V$i + 14 | 0;
$31 = $V$i + 15 | 0;
$$016 = $nblocks;
$$07 = $buf;
while (1) {
if (!(($$07 | $1) & 3)) {
HEAP32[$V$i >> 2] = HEAP32[$$07 >> 2] ^ HEAP32[$result >> 2];
HEAP32[$3 >> 2] = HEAP32[$$07 + 4 >> 2] ^ HEAP32[$2 >> 2];
HEAP32[$5 >> 2] = HEAP32[$$07 + 8 >> 2] ^ HEAP32[$4 >> 2];
$113 = HEAP32[$$07 + 12 >> 2] ^ HEAP32[$6 >> 2];
HEAP32[$7 >> 2] = $113;
$119 = $113 >>> 24 & 255;
$127 = $113 >>> 16 & 255;
} else {
HEAP8[$V$i >> 0] = HEAP8[$$07 >> 0] ^ HEAP8[$result >> 0];
HEAP8[$20 >> 0] = HEAP8[$$07 + 1 >> 0] ^ HEAP8[$8 >> 0];
HEAP8[$21 >> 0] = HEAP8[$$07 + 2 >> 0] ^ HEAP8[$9 >> 0];
HEAP8[$22 >> 0] = HEAP8[$$07 + 3 >> 0] ^ HEAP8[$10 >> 0];
HEAP8[$3 >> 0] = HEAP8[$$07 + 4 >> 0] ^ HEAP8[$2 >> 0];
HEAP8[$23 >> 0] = HEAP8[$$07 + 5 >> 0] ^ HEAP8[$11 >> 0];
HEAP8[$24 >> 0] = HEAP8[$$07 + 6 >> 0] ^ HEAP8[$12 >> 0];
HEAP8[$25 >> 0] = HEAP8[$$07 + 7 >> 0] ^ HEAP8[$13 >> 0];
HEAP8[$5 >> 0] = HEAP8[$$07 + 8 >> 0] ^ HEAP8[$4 >> 0];
HEAP8[$26 >> 0] = HEAP8[$$07 + 9 >> 0] ^ HEAP8[$14 >> 0];
HEAP8[$27 >> 0] = HEAP8[$$07 + 10 >> 0] ^ HEAP8[$15 >> 0];
HEAP8[$28 >> 0] = HEAP8[$$07 + 11 >> 0] ^ HEAP8[$16 >> 0];
HEAP8[$7 >> 0] = HEAP8[$$07 + 12 >> 0] ^ HEAP8[$6 >> 0];
HEAP8[$29 >> 0] = HEAP8[$$07 + 13 >> 0] ^ HEAP8[$17 >> 0];
$95 = HEAP8[$$07 + 14 >> 0] ^ HEAP8[$18 >> 0];
HEAP8[$30 >> 0] = $95;
$98 = HEAP8[$$07 + 15 >> 0] ^ HEAP8[$19 >> 0];
HEAP8[$31 >> 0] = $98;
$119 = $98;
$127 = $95;
}
$118 = $119 & 255;
$122 = $c + 228 + (($118 << 2 & 60) << 2) | 0;
$125 = $c + 228 + ($118 >>> 4 << 2 << 2) | 0;
$128 = HEAP32[$122 >> 2] | 0;
$131 = HEAP32[$122 + 12 >> 2] | 0;
$142 = HEAP32[$122 + 4 >> 2] | 0;
$150 = HEAP32[$122 + 8 >> 2] | 0;
$i$0$i = 14;
$tmp$sroa$0$0$i = HEAP32[$125 >> 2] ^ $128 >>> 4 ^ (HEAPU16[17406 + (($131 << 4 & 240) << 1) >> 1] | 0) << 16;
$tmp$sroa$15$0$i = ($150 >>> 4 | $142 << 28) ^ HEAP32[$125 + 8 >> 2];
$tmp$sroa$22$0$i = ($150 << 28 | $131 >>> 4) ^ HEAP32[$125 + 12 >> 2];
$tmp$sroa$8$0$i = ($142 >>> 4 | $128 << 28) ^ HEAP32[$125 + 4 >> 2];
$v$0$i = $127 & 255;
while (1) {
$165 = $c + 228 + (($v$0$i << 2 & 60) << 2) | 0;
$168 = $c + 228 + ($v$0$i >>> 4 << 2 << 2) | 0;
$194 = HEAP32[$165 >> 2] | 0;
$197 = HEAP32[$165 + 12 >> 2] | 0;
$206 = HEAP32[$168 >> 2] ^ $tmp$sroa$0$0$i >>> 8 ^ (HEAPU16[17406 + (($tmp$sroa$22$0$i & 255) << 1) >> 1] | 0) << 16 ^ $194 >>> 4;
$207 = (HEAPU16[17406 + (($197 << 4 & 240) << 1) >> 1] | 0) << 16 ^ $206;
$209 = HEAP32[$165 + 4 >> 2] | 0;
$213 = HEAP32[$168 + 4 >> 2] ^ ($tmp$sroa$8$0$i >>> 8 | $tmp$sroa$0$0$i << 24) ^ ($209 >>> 4 | $194 << 28);
$215 = HEAP32[$165 + 8 >> 2] | 0;
$219 = HEAP32[$168 + 8 >> 2] ^ ($tmp$sroa$15$0$i >>> 8 | $tmp$sroa$8$0$i << 24) ^ ($215 >>> 4 | $209 << 28);
$223 = HEAP32[$168 + 12 >> 2] ^ ($tmp$sroa$22$0$i >>> 8 | $tmp$sroa$15$0$i << 24) ^ ($215 << 28 | $197 >>> 4);
if (!$i$0$i) {
$$lcssa = $206;
$$lcssa24 = $207;
$$lcssa25 = $213;
$$lcssa26 = $219;
$$lcssa27 = $223;
break;
}
$225 = $i$0$i + -1 | 0;
$i$0$i = $225;
$tmp$sroa$0$0$i = $207;
$tmp$sroa$15$0$i = $219;
$tmp$sroa$22$0$i = $223;
$tmp$sroa$8$0$i = $213;
$v$0$i = HEAPU8[$V$i + $225 >> 0] | 0;
}
HEAP8[$result >> 0] = $$lcssa24 >>> 24;
HEAP8[$8 >> 0] = $$lcssa24 >>> 16;
HEAP8[$9 >> 0] = $$lcssa >>> 8;
HEAP8[$10 >> 0] = $$lcssa;
HEAP8[$2 >> 0] = $$lcssa25 >>> 24;
HEAP8[$11 >> 0] = $$lcssa25 >>> 16;
HEAP8[$12 >> 0] = $$lcssa25 >>> 8;
HEAP8[$13 >> 0] = $$lcssa25;
HEAP8[$4 >> 0] = $$lcssa26 >>> 24;
HEAP8[$14 >> 0] = $$lcssa26 >>> 16;
HEAP8[$15 >> 0] = $$lcssa26 >>> 8;
HEAP8[$16 >> 0] = $$lcssa26;
HEAP8[$6 >> 0] = $$lcssa27 >>> 24;
HEAP8[$17 >> 0] = $$lcssa27 >>> 16;
HEAP8[$18 >> 0] = $$lcssa27 >>> 8;
HEAP8[$19 >> 0] = $$lcssa27;
$$016 = $$016 + -1 | 0;
if (!$$016) {
$burn$0$lcssa = 76;
break;
} else $$07 = $$07 + 16 | 0;
}
$260 = ($burn$0$lcssa | 0) != 0;
$261 = $260 ? 20 : 0;
$262 = $261 + $burn$0$lcssa | 0;
STACKTOP = sp;
return $262 | 0;
}
function _TALER_amount_add($sum, $a1, $a2) {
$sum = $sum | 0;
$a1 = $a1 | 0;
$a2 = $a2 | 0;
var $$0 = 0, $11 = 0, $12 = 0, $14 = 0, $17 = 0, $19 = 0, $24 = 0, $25 = 0, $26 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $46 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $67 = 0, $74 = 0, $75 = 0, $76 = 0, $83 = 0, $85 = 0, $88 = 0, $9 = 0, $90 = 0, $a1$idx$i = 0, $a2$idx$i = 0, $n1$sroa$7$0 = 0, $n1$sroa$7$1 = 0, $n1$sroa$7$2 = 0, $n2$sroa$7$0 = 0, $n2$sroa$7$1 = 0, $n2$sroa$7$2 = 0, $res$sroa$11 = 0, $res$sroa$8$0 = 0, $res$sroa$8$1 = 0, $res$sroa$8$2 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$res$sroa$11 = sp + 8 | 0;
$a1$idx$i = $a1 + 12 | 0;
if (HEAP8[$a1$idx$i >> 0] | 0) {
$a2$idx$i = $a2 + 12 | 0;
if (HEAP8[$a2$idx$i >> 0] | 0) if (!(_strcasecmp($a1$idx$i, $a2$idx$i) | 0)) {
$4 = $a1;
$6 = HEAP32[$4 >> 2] | 0;
$9 = HEAP32[$4 + 4 >> 2] | 0;
$11 = HEAP32[$a1 + 8 >> 2] | 0;
$12 = $a2;
$14 = HEAP32[$12 >> 2] | 0;
$17 = HEAP32[$12 + 4 >> 2] | 0;
$19 = HEAP32[$a2 + 8 >> 2] | 0;
L5 : do if (($6 | 0) == -1 & ($9 | 0) == -1) {
$n1$sroa$7$1 = $11;
label = 8;
} else {
$25 = $6;
$26 = $9;
$n1$sroa$7$0 = $11;
while (1) {
if ($n1$sroa$7$0 >>> 0 <= 999999) {
$58 = $25;
$59 = $26;
$n1$sroa$7$2 = $n1$sroa$7$0;
label = 9;
break L5;
}
$24 = $n1$sroa$7$0 + -1e6 | 0;
$25 = _i64Add($25 | 0, $26 | 0, 1, 0) | 0;
$26 = tempRet0;
if (($25 | 0) == -1 & ($26 | 0) == -1) {
$n1$sroa$7$1 = $24;
label = 8;
break;
} else $n1$sroa$7$0 = $24;
}
} while (0);
if ((label | 0) == 8) if ($n1$sroa$7$1 >>> 0 <= 999999) {
$58 = -1;
$59 = -1;
$n1$sroa$7$2 = $n1$sroa$7$1;
label = 9;
}
do if ((label | 0) == 9) {
L13 : do if (($14 | 0) == -1 & ($17 | 0) == -1) {
$n2$sroa$7$1 = $19;
label = 12;
} else {
$38 = $14;
$39 = $17;
$n2$sroa$7$0 = $19;
while (1) {
if ($n2$sroa$7$0 >>> 0 <= 999999) {
$56 = $38;
$57 = $39;
$n2$sroa$7$2 = $n2$sroa$7$0;
break L13;
}
$37 = $n2$sroa$7$0 + -1e6 | 0;
$38 = _i64Add($38 | 0, $39 | 0, 1, 0) | 0;
$39 = tempRet0;
if (($38 | 0) == -1 & ($39 | 0) == -1) {
$n2$sroa$7$1 = $37;
label = 12;
break;
} else $n2$sroa$7$0 = $37;
}
} while (0);
if ((label | 0) == 12) if ($n2$sroa$7$1 >>> 0 > 999999) break; else {
$56 = -1;
$57 = -1;
$n2$sroa$7$2 = $n2$sroa$7$1;
}
$46 = _strlen($a1$idx$i) | 0;
if ($46 >>> 0 > 11) {
if ((HEAP32[3821] | 0) == -1) HEAP32[3821] = _GNUNET_get_log_call_status(1, 0, 60850, 60926, 444) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[3821] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 60850;
HEAP32[$vararg_buffer + 4 >> 2] = 444;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
_memset($res$sroa$11 + $46 | 0, 0, 12 - $46 | 0) | 0;
_memcpy($res$sroa$11 | 0, $a1$idx$i | 0, $46 | 0) | 0;
$60 = _i64Add($56 | 0, $57 | 0, $58 | 0, $59 | 0) | 0;
$61 = tempRet0;
if ($61 >>> 0 < $59 >>> 0 | ($61 | 0) == ($59 | 0) & $60 >>> 0 < $58 >>> 0) {
HEAP32[$sum >> 2] = 0;
HEAP32[$sum + 4 >> 2] = 0;
HEAP32[$sum + 8 >> 2] = 0;
HEAP32[$sum + 12 >> 2] = 0;
HEAP32[$sum + 16 >> 2] = 0;
HEAP32[$sum + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$67 = $n2$sroa$7$2 + $n1$sroa$7$2 | 0;
do if (HEAP8[$res$sroa$11 >> 0] | 0) {
L40 : do if (($60 | 0) == -1 & ($61 | 0) == -1) {
$res$sroa$8$1 = $67;
label = 28;
} else {
$75 = $60;
$76 = $61;
$res$sroa$8$0 = $67;
while (1) {
if ($res$sroa$8$0 >>> 0 <= 999999) {
$85 = $75;
$88 = $76;
$res$sroa$8$2 = $res$sroa$8$0;
break L40;
}
$74 = $res$sroa$8$0 + -1e6 | 0;
$75 = _i64Add($75 | 0, $76 | 0, 1, 0) | 0;
$76 = tempRet0;
if (($75 | 0) == -1 & ($76 | 0) == -1) {
$res$sroa$8$1 = $74;
label = 28;
break;
} else $res$sroa$8$0 = $74;
}
} while (0);
if ((label | 0) == 28) if ($res$sroa$8$1 >>> 0 > 999999) {
HEAP32[$res$sroa$11 >> 2] = 0;
HEAP32[$res$sroa$11 + 4 >> 2] = 0;
HEAP32[$res$sroa$11 + 8 >> 2] = 0;
break;
} else {
$85 = -1;
$88 = -1;
$res$sroa$8$2 = $res$sroa$8$1;
}
$83 = $sum;
HEAP32[$83 >> 2] = $85;
HEAP32[$83 + 4 >> 2] = $88;
HEAP32[$sum + 8 >> 2] = $res$sroa$8$2;
$90 = $sum + 12 | 0;
HEAP32[$90 >> 2] = HEAP32[$res$sroa$11 >> 2];
HEAP32[$90 + 4 >> 2] = HEAP32[$res$sroa$11 + 4 >> 2];
HEAP32[$90 + 8 >> 2] = HEAP32[$res$sroa$11 + 8 >> 2];
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
} while (0);
HEAP32[$sum >> 2] = 0;
HEAP32[$sum + 4 >> 2] = 0;
HEAP32[$sum + 8 >> 2] = 0;
HEAP32[$sum + 12 >> 2] = 0;
HEAP32[$sum + 16 >> 2] = 0;
HEAP32[$sum + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
} while (0);
HEAP32[$sum >> 2] = 0;
HEAP32[$sum + 4 >> 2] = 0;
HEAP32[$sum + 8 >> 2] = 0;
HEAP32[$sum + 12 >> 2] = 0;
HEAP32[$sum + 16 >> 2] = 0;
HEAP32[$sum + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
};
HEAP32[$sum >> 2] = 0;
HEAP32[$sum + 4 >> 2] = 0;
HEAP32[$sum + 8 >> 2] = 0;
HEAP32[$sum + 12 >> 2] = 0;
HEAP32[$sum + 16 >> 2] = 0;
HEAP32[$sum + 20 >> 2] = 0;
$$0 = -1;
STACKTOP = sp;
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 $$1 = 0, $101 = 0, $102 = 0, $104 = 0, $106 = 0, $107 = 0, $11 = 0, $110 = 0, $113 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $124 = 0, $127 = 0, $132 = 0, $14 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $24 = 0, $26 = 0, $27 = 0, $31 = 0, $33 = 0, $36 = 0, $41 = 0, $43 = 0, $44 = 0, $47 = 0, $50 = 0, $55 = 0, $6 = 0, $63 = 0, $64 = 0, $66 = 0, $68 = 0, $71 = 0, $76 = 0, $78 = 0, $79 = 0, $82 = 0, $85 = 0, $94 = 0, $96 = 0, $__q0$0 = 0, $__q011$0 = 0, $__q04$0 = 0, $__q1$0 = 0, $__q110$0 = 0, $__q13$0 = 0, $__r0$0 = 0, $__r013$0 = 0, $__r06$0 = 0, $__r1$0 = 0, $__r112$0 = 0, $__r15$0 = 0, $i$013 = 0, $i$1$ph = 0, $i$110 = 0, $n1$0$lcssa = 0, $n1$012 = 0, $r$0$lcssa = 0, $r$011 = 0, $r$1$ph = 0, $r$19 = 0;
if (!$dividend_size) {
$$1 = 0;
return $$1 | 0;
}
$6 = $divisor_limb >>> 0 < 65536 ? ($divisor_limb >>> 0 < 256 ? 0 : 8) : $divisor_limb >>> 0 < 16777216 ? 16 : 24;
$11 = (HEAPU8[45217 + ($divisor_limb >>> $6) >> 0] | 0) + $6 | 0;
$12 = 32 - $11 | 0;
if (!$12) {
$94 = $dividend_size + -1 | 0;
$96 = HEAP32[$dividend_ptr + ($94 << 2) >> 2] | 0;
if ($96 >>> 0 < $divisor_limb >>> 0) {
HEAP32[$quot_ptr + ($94 << 2) >> 2] = 0;
$i$1$ph = $dividend_size + -2 | 0;
$r$1$ph = $96;
} else {
$i$1$ph = $94;
$r$1$ph = 0;
}
if (($i$1$ph | 0) <= -1) {
$$1 = $r$1$ph;
return $$1 | 0;
}
$101 = $divisor_limb >>> 16;
$102 = $divisor_limb & 65535;
$i$110 = $i$1$ph;
$r$19 = $r$1$ph;
while (1) {
$104 = HEAP32[$dividend_ptr + ($i$110 << 2) >> 2] | 0;
$106 = ($r$19 >>> 0) / ($101 >>> 0) | 0;
$107 = Math_imul($106, $102) | 0;
$110 = (($r$19 >>> 0) % ($101 >>> 0) | 0) << 16 | $104 >>> 16;
if ($110 >>> 0 < $107 >>> 0) {
$113 = $110 + $divisor_limb | 0;
if ($113 >>> 0 >= $divisor_limb >>> 0 & $113 >>> 0 < $107 >>> 0) {
$__q110$0 = $106 + -2 | 0;
$__r112$0 = $113 + $divisor_limb | 0;
} else {
$__q110$0 = $106 + -1 | 0;
$__r112$0 = $113;
}
} else {
$__q110$0 = $106;
$__r112$0 = $110;
}
$118 = $__r112$0 - $107 | 0;
$120 = ($118 >>> 0) / ($101 >>> 0) | 0;
$121 = Math_imul($120, $102) | 0;
$124 = (($118 >>> 0) % ($101 >>> 0) | 0) << 16 | $104 & 65535;
if ($124 >>> 0 < $121 >>> 0) {
$127 = $124 + $divisor_limb | 0;
if ($127 >>> 0 >= $divisor_limb >>> 0 & $127 >>> 0 < $121 >>> 0) {
$__q011$0 = $120 + -2 | 0;
$__r013$0 = $127 + $divisor_limb | 0;
} else {
$__q011$0 = $120 + -1 | 0;
$__r013$0 = $127;
}
} else {
$__q011$0 = $120;
$__r013$0 = $124;
}
$132 = $__r013$0 - $121 | 0;
HEAP32[$quot_ptr + ($i$110 << 2) >> 2] = $__q011$0 | $__q110$0 << 16;
if (($i$110 | 0) > 0) {
$i$110 = $i$110 + -1 | 0;
$r$19 = $132;
} else {
$$1 = $132;
break;
}
}
return $$1 | 0;
}
$14 = $divisor_limb << $12;
$17 = HEAP32[$dividend_ptr + ($dividend_size + -1 << 2) >> 2] | 0;
$18 = $17 >>> $11;
$19 = $dividend_size + -2 | 0;
$21 = $14 >>> 16;
$22 = $14 & 65535;
if (($19 | 0) > -1) {
$i$013 = $19;
$n1$012 = $17;
$r$011 = $18;
while (1) {
$24 = HEAP32[$dividend_ptr + ($i$013 << 2) >> 2] | 0;
$26 = ($r$011 >>> 0) / ($21 >>> 0) | 0;
$27 = Math_imul($26, $22) | 0;
$31 = $24 >>> $11 | $n1$012 << $12;
$33 = $31 >>> 16 | (($r$011 >>> 0) % ($21 >>> 0) | 0) << 16;
if ($33 >>> 0 < $27 >>> 0) {
$36 = $33 + $14 | 0;
if ($36 >>> 0 >= $14 >>> 0 & $36 >>> 0 < $27 >>> 0) {
$__q1$0 = $26 + -2 | 0;
$__r1$0 = $36 + $14 | 0;
} else {
$__q1$0 = $26 + -1 | 0;
$__r1$0 = $36;
}
} else {
$__q1$0 = $26;
$__r1$0 = $33;
}
$41 = $__r1$0 - $27 | 0;
$43 = ($41 >>> 0) / ($21 >>> 0) | 0;
$44 = Math_imul($43, $22) | 0;
$47 = (($41 >>> 0) % ($21 >>> 0) | 0) << 16 | $31 & 65535;
if ($47 >>> 0 < $44 >>> 0) {
$50 = $47 + $14 | 0;
if ($50 >>> 0 >= $14 >>> 0 & $50 >>> 0 < $44 >>> 0) {
$__q0$0 = $43 + -2 | 0;
$__r0$0 = $50 + $14 | 0;
} else {
$__q0$0 = $43 + -1 | 0;
$__r0$0 = $50;
}
} else {
$__q0$0 = $43;
$__r0$0 = $47;
}
$55 = $__r0$0 - $44 | 0;
HEAP32[$quot_ptr + ($i$013 + 1 << 2) >> 2] = $__q0$0 | $__q1$0 << 16;
if (($i$013 | 0) > 0) {
$i$013 = $i$013 + -1 | 0;
$n1$012 = $24;
$r$011 = $55;
} else {
$n1$0$lcssa = $24;
$r$0$lcssa = $55;
break;
}
}
} else {
$n1$0$lcssa = $17;
$r$0$lcssa = $18;
}
$63 = ($r$0$lcssa >>> 0) / ($21 >>> 0) | 0;
$64 = Math_imul($63, $22) | 0;
$66 = $n1$0$lcssa << $12;
$68 = (($r$0$lcssa >>> 0) % ($21 >>> 0) | 0) << 16 | $66 >>> 16;
if ($68 >>> 0 < $64 >>> 0) {
$71 = $68 + $14 | 0;
if ($71 >>> 0 >= $14 >>> 0 & $71 >>> 0 < $64 >>> 0) {
$__q13$0 = $63 + -2 | 0;
$__r15$0 = $71 + $14 | 0;
} else {
$__q13$0 = $63 + -1 | 0;
$__r15$0 = $71;
}
} else {
$__q13$0 = $63;
$__r15$0 = $68;
}
$76 = $__r15$0 - $64 | 0;
$78 = ($76 >>> 0) / ($21 >>> 0) | 0;
$79 = Math_imul($78, $22) | 0;
$82 = (($76 >>> 0) % ($21 >>> 0) | 0) << 16 | $66 & 65535;
if ($82 >>> 0 < $79 >>> 0) {
$85 = $82 + $14 | 0;
if ($85 >>> 0 >= $14 >>> 0 & $85 >>> 0 < $79 >>> 0) {
$__q04$0 = $78 + -2 | 0;
$__r06$0 = $85 + $14 | 0;
} else {
$__q04$0 = $78 + -1 | 0;
$__r06$0 = $85;
}
} else {
$__q04$0 = $78;
$__r06$0 = $82;
}
HEAP32[$quot_ptr >> 2] = $__q04$0 | $__q13$0 << 16;
$$1 = ($__r06$0 - $79 | 0) >>> $12;
return $$1 | 0;
}
function _md_final($a) {
$a = $a | 0;
var $$0$i = 0, $$0$i$8 = 0, $$idx$val$idx$val = 0, $$lcssa = 0, $$lcssa50 = 0, $$ph$i = 0, $$pre$phi10$iZ2D = 0, $$pre27 = 0, $0 = 0, $103 = 0, $105 = 0, $106 = 0, $115 = 0, $125 = 0, $15 = 0, $17 = 0, $18 = 0, $23 = 0, $30 = 0, $38 = 0, $39 = 0, $42 = 0, $5 = 0, $51 = 0, $53 = 0, $6 = 0, $62 = 0, $74 = 0, $89 = 0, $9 = 0, $96 = 0, $98 = 0, $99 = 0, $a$idx$val$idx$val = 0, $a$idx1$val$idx$val = 0, $om = 0, $r$0$1$i = 0, $r$0$20 = 0, $r$02$i = 0, $r$02$i$2 = 0, $r$02$i$2$lcssa = 0, $r$02$i$5 = 0, $r$02$i$5$lcssa = 0, $r$021 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$om = sp + 20 | 0;
$0 = HEAP32[$a >> 2] | 0;
if (HEAP8[$0 + 12 >> 0] & 2) {
STACKTOP = sp;
return;
}
$5 = $a + 4 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (!$6) $30 = $0; else {
$9 = HEAP32[$0 + 8 >> 2] | 0;
do if (!$9) $15 = $0; else if ((_fwrite($a + 12 | 0, $6, 1, $9) | 0) == 1) {
$15 = HEAP32[$a >> 2] | 0;
break;
} else __gcry_bug(36567, 630, 36572); while (0);
$r$0$1$i = HEAP32[$15 + 16 >> 2] | 0;
if (!$r$0$1$i) $$pre27 = $15; else {
$17 = $a + 12 | 0;
$r$02$i = $r$0$1$i;
do {
$18 = HEAP32[$5 >> 2] | 0;
if (!$18) $$pre$phi10$iZ2D = $r$02$i + 16 | 0; else {
$23 = $r$02$i + 16 | 0;
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$r$02$i >> 2] | 0) + 32 >> 2] & 7]($23, $17, $18);
$$pre$phi10$iZ2D = $23;
}
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$r$02$i >> 2] | 0) + 32 >> 2] & 7]($$pre$phi10$iZ2D, 0, 0);
$r$02$i = HEAP32[$r$02$i + 4 >> 2] | 0;
} while (($r$02$i | 0) != 0);
$$pre27 = HEAP32[$a >> 2] | 0;
}
HEAP32[$5 >> 2] = 0;
$30 = $$pre27;
}
$r$0$20 = HEAP32[$30 + 16 >> 2] | 0;
if (!$r$0$20) $39 = $30; else {
$r$021 = $r$0$20;
do {
FUNCTION_TABLE_vi[HEAP32[(HEAP32[$r$021 >> 2] | 0) + 36 >> 2] & 15]($r$021 + 16 | 0);
$r$021 = HEAP32[$r$021 + 4 >> 2] | 0;
} while (($r$021 | 0) != 0);
$39 = HEAP32[$a >> 2] | 0;
}
$38 = $39 + 12 | 0;
HEAP8[$38 >> 0] = HEAP8[$38 >> 0] | 2;
$42 = HEAP32[$a >> 2] | 0;
if (!(HEAP32[$42 + 20 >> 2] | 0)) {
STACKTOP = sp;
return;
}
$a$idx$val$idx$val = HEAP32[$42 + 16 >> 2] | 0;
if (!$a$idx$val$idx$val) __gcry_bug(36567, 816, 36753);
if (!(HEAP32[$a$idx$val$idx$val + 4 >> 2] | 0)) $a$idx1$val$idx$val = $a$idx$val$idx$val; else {
__gcry_fips_signal_error(36567, 980, 36581, 0, 36593);
__gcry_log_error(36614, $vararg_buffer);
$a$idx1$val$idx$val = HEAP32[(HEAP32[$a >> 2] | 0) + 16 >> 2] | 0;
}
$51 = HEAP32[HEAP32[$a$idx$val$idx$val >> 2] >> 2] | 0;
$53 = ($a$idx1$val$idx$val | 0) == 0;
do if (!$51) {
if ($53) __gcry_bug(36567, 816, 36753);
if (HEAP32[$a$idx1$val$idx$val + 4 >> 2] | 0) __gcry_log_debug(36714, $vararg_buffer1);
$$0$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$a$idx1$val$idx$val >> 2] | 0) + 40 >> 2] & 15]($a$idx1$val$idx$val + 16 | 0) | 0;
$125 = 1;
$74 = 0;
} else {
if ($53) __gcry_bug(36567, 816, 36753); else $r$02$i$2 = $a$idx1$val$idx$val;
while (1) {
$62 = HEAP32[$r$02$i$2 >> 2] | 0;
if ((HEAP32[$62 >> 2] | 0) == ($51 | 0)) {
$$lcssa50 = $62;
$r$02$i$2$lcssa = $r$02$i$2;
label = 29;
break;
}
$r$02$i$2 = HEAP32[$r$02$i$2 + 4 >> 2] | 0;
if (!$r$02$i$2) {
label = 31;
break;
}
}
if ((label | 0) == 29) {
$$0$i = FUNCTION_TABLE_ii[HEAP32[$$lcssa50 + 40 >> 2] & 15]($r$02$i$2$lcssa + 16 | 0) | 0;
$125 = 0;
$74 = $51;
break;
} else if ((label | 0) == 31) __gcry_bug(36567, 816, 36753);
} while (0);
if ((HEAP32[1886] | 0) == ($74 | 0)) {
$$ph$i = 7544;
label = 38;
} else if ((HEAP32[1918] | 0) == ($74 | 0)) {
$$ph$i = 7672;
label = 38;
} else if ((HEAP32[1905] | 0) == ($74 | 0)) {
$$ph$i = 7620;
label = 38;
} else if ((HEAP32[1936] | 0) == ($74 | 0)) {
$$ph$i = 7744;
label = 38;
} else if ((HEAP32[1949] | 0) == ($74 | 0)) {
$$ph$i = 7796;
label = 38;
} else if ((HEAP32[1845] | 0) == ($74 | 0)) {
$$ph$i = 7380;
label = 38;
} else $105 = 0;
if ((label | 0) == 38) $105 = HEAP32[$$ph$i + 24 >> 2] | 0;
$89 = HEAP8[(HEAP32[$a >> 2] | 0) + 12 >> 0] | 0;
$96 = _md_open($om, $74, ($89 & 4) << 6 | $89 & 1) | 0;
if ($96) __gcry_fatal_error($96, 0);
$98 = HEAP32[$om >> 2] | 0;
$99 = HEAP32[$a >> 2] | 0;
$103 = HEAP32[$99 + 24 >> 2] | 0;
_md_write($98, (HEAP32[$99 + 20 >> 2] | 0) + $103 | 0, $103);
_md_write($98, $$0$i, $105);
_md_final($98);
$$idx$val$idx$val = HEAP32[(HEAP32[$98 >> 2] | 0) + 16 >> 2] | 0;
$106 = ($$idx$val$idx$val | 0) == 0;
do if ($125) {
if ($106) __gcry_bug(36567, 816, 36753);
if (HEAP32[$$idx$val$idx$val + 4 >> 2] | 0) __gcry_log_debug(36714, $vararg_buffer3);
$$0$i$8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$idx$val$idx$val >> 2] | 0) + 40 >> 2] & 15]($$idx$val$idx$val + 16 | 0) | 0;
} else {
if ($106) __gcry_bug(36567, 816, 36753); else $r$02$i$5 = $$idx$val$idx$val;
while (1) {
$115 = HEAP32[$r$02$i$5 >> 2] | 0;
if ((HEAP32[$115 >> 2] | 0) == ($74 | 0)) {
$$lcssa = $115;
$r$02$i$5$lcssa = $r$02$i$5;
label = 48;
break;
}
$r$02$i$5 = HEAP32[$r$02$i$5 + 4 >> 2] | 0;
if (!$r$02$i$5) {
label = 50;
break;
}
}
if ((label | 0) == 48) {
$$0$i$8 = FUNCTION_TABLE_ii[HEAP32[$$lcssa + 40 >> 2] & 15]($r$02$i$5$lcssa + 16 | 0) | 0;
break;
} else if ((label | 0) == 50) __gcry_bug(36567, 816, 36753);
} while (0);
_memcpy($$0$i | 0, $$0$i$8 | 0, $105 | 0) | 0;
_md_close($98);
STACKTOP = sp;
return;
}
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 $$014 = 0, $$lcssa = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $114 = 0, $120 = 0, $126 = 0, $132 = 0, $138 = 0, $144 = 0, $149 = 0, $15 = 0, $154 = 0, $16 = 0, $160 = 0, $166 = 0, $17 = 0, $171 = 0, $179 = 0, $18 = 0, $184 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $6 = 0, $60 = 0, $66 = 0, $72 = 0, $78 = 0, $84 = 0, $90 = 0, $96 = 0, $inbuf$012 = 0, $outbuf$013 = 0, $savebuf = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$savebuf = sp;
_check_decryption_preparation($context);
$1 = HEAP32[$context + 500 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
$4 = HEAP32[$context + 492 >> 2] | 0;
if (!$nblocks) {
$6 = $savebuf;
HEAP32[$6 >> 2] = 0;
HEAP32[$6 + 4 >> 2] = 0;
$11 = $savebuf + 8 | 0;
HEAP32[$11 >> 2] = 0;
HEAP32[$11 + 4 >> 2] = 0;
STACKTOP = sp;
return;
}
$15 = $iv;
$16 = $savebuf + 4 | 0;
$17 = $iv + 4 | 0;
$18 = $savebuf + 8 | 0;
$19 = $iv + 8 | 0;
$20 = $savebuf + 12 | 0;
$21 = $iv + 12 | 0;
$22 = $savebuf + 1 | 0;
$23 = $iv + 1 | 0;
$24 = $savebuf + 2 | 0;
$25 = $iv + 2 | 0;
$26 = $savebuf + 3 | 0;
$27 = $iv + 3 | 0;
$28 = $savebuf + 4 | 0;
$29 = $iv + 4 | 0;
$30 = $savebuf + 5 | 0;
$31 = $iv + 5 | 0;
$32 = $savebuf + 6 | 0;
$33 = $iv + 6 | 0;
$34 = $savebuf + 7 | 0;
$35 = $iv + 7 | 0;
$36 = $savebuf + 8 | 0;
$37 = $iv + 8 | 0;
$38 = $savebuf + 9 | 0;
$39 = $iv + 9 | 0;
$40 = $savebuf + 10 | 0;
$41 = $iv + 10 | 0;
$42 = $savebuf + 11 | 0;
$43 = $iv + 11 | 0;
$44 = $savebuf + 12 | 0;
$45 = $iv + 12 | 0;
$46 = $savebuf + 13 | 0;
$47 = $iv + 13 | 0;
$48 = $savebuf + 14 | 0;
$49 = $iv + 14 | 0;
$50 = $savebuf + 15 | 0;
$51 = $iv + 15 | 0;
$$014 = $nblocks;
$inbuf$012 = $inbuf_arg;
$outbuf$013 = $outbuf_arg;
while (1) {
$52 = FUNCTION_TABLE_iiii[$4 & 63]($context, $savebuf, $inbuf$012) | 0;
if (!(($inbuf$012 | $15 | $outbuf$013) & 3)) {
$154 = HEAP32[$inbuf$012 >> 2] | 0;
HEAP32[$outbuf$013 >> 2] = HEAP32[$savebuf >> 2] ^ HEAP32[$iv >> 2];
HEAP32[$iv >> 2] = $154;
$160 = HEAP32[$inbuf$012 + 4 >> 2] | 0;
HEAP32[$outbuf$013 + 4 >> 2] = HEAP32[$16 >> 2] ^ HEAP32[$17 >> 2];
HEAP32[$17 >> 2] = $160;
$166 = HEAP32[$inbuf$012 + 8 >> 2] | 0;
HEAP32[$outbuf$013 + 8 >> 2] = HEAP32[$18 >> 2] ^ HEAP32[$19 >> 2];
HEAP32[$19 >> 2] = $166;
$171 = HEAP32[$inbuf$012 + 12 >> 2] | 0;
HEAP32[$outbuf$013 + 12 >> 2] = HEAP32[$20 >> 2] ^ HEAP32[$21 >> 2];
HEAP32[$21 >> 2] = $171;
} else {
$60 = HEAP8[$inbuf$012 >> 0] | 0;
HEAP8[$outbuf$013 >> 0] = HEAP8[$savebuf >> 0] ^ HEAP8[$iv >> 0];
HEAP8[$iv >> 0] = $60;
$66 = HEAP8[$inbuf$012 + 1 >> 0] | 0;
HEAP8[$outbuf$013 + 1 >> 0] = HEAP8[$22 >> 0] ^ HEAP8[$23 >> 0];
HEAP8[$23 >> 0] = $66;
$72 = HEAP8[$inbuf$012 + 2 >> 0] | 0;
HEAP8[$outbuf$013 + 2 >> 0] = HEAP8[$24 >> 0] ^ HEAP8[$25 >> 0];
HEAP8[$25 >> 0] = $72;
$78 = HEAP8[$inbuf$012 + 3 >> 0] | 0;
HEAP8[$outbuf$013 + 3 >> 0] = HEAP8[$26 >> 0] ^ HEAP8[$27 >> 0];
HEAP8[$27 >> 0] = $78;
$84 = HEAP8[$inbuf$012 + 4 >> 0] | 0;
HEAP8[$outbuf$013 + 4 >> 0] = HEAP8[$28 >> 0] ^ HEAP8[$29 >> 0];
HEAP8[$29 >> 0] = $84;
$90 = HEAP8[$inbuf$012 + 5 >> 0] | 0;
HEAP8[$outbuf$013 + 5 >> 0] = HEAP8[$30 >> 0] ^ HEAP8[$31 >> 0];
HEAP8[$31 >> 0] = $90;
$96 = HEAP8[$inbuf$012 + 6 >> 0] | 0;
HEAP8[$outbuf$013 + 6 >> 0] = HEAP8[$32 >> 0] ^ HEAP8[$33 >> 0];
HEAP8[$33 >> 0] = $96;
$102 = HEAP8[$inbuf$012 + 7 >> 0] | 0;
HEAP8[$outbuf$013 + 7 >> 0] = HEAP8[$34 >> 0] ^ HEAP8[$35 >> 0];
HEAP8[$35 >> 0] = $102;
$108 = HEAP8[$inbuf$012 + 8 >> 0] | 0;
HEAP8[$outbuf$013 + 8 >> 0] = HEAP8[$36 >> 0] ^ HEAP8[$37 >> 0];
HEAP8[$37 >> 0] = $108;
$114 = HEAP8[$inbuf$012 + 9 >> 0] | 0;
HEAP8[$outbuf$013 + 9 >> 0] = HEAP8[$38 >> 0] ^ HEAP8[$39 >> 0];
HEAP8[$39 >> 0] = $114;
$120 = HEAP8[$inbuf$012 + 10 >> 0] | 0;
HEAP8[$outbuf$013 + 10 >> 0] = HEAP8[$40 >> 0] ^ HEAP8[$41 >> 0];
HEAP8[$41 >> 0] = $120;
$126 = HEAP8[$inbuf$012 + 11 >> 0] | 0;
HEAP8[$outbuf$013 + 11 >> 0] = HEAP8[$42 >> 0] ^ HEAP8[$43 >> 0];
HEAP8[$43 >> 0] = $126;
$132 = HEAP8[$inbuf$012 + 12 >> 0] | 0;
HEAP8[$outbuf$013 + 12 >> 0] = HEAP8[$44 >> 0] ^ HEAP8[$45 >> 0];
HEAP8[$45 >> 0] = $132;
$138 = HEAP8[$inbuf$012 + 13 >> 0] | 0;
HEAP8[$outbuf$013 + 13 >> 0] = HEAP8[$46 >> 0] ^ HEAP8[$47 >> 0];
HEAP8[$47 >> 0] = $138;
$144 = HEAP8[$inbuf$012 + 14 >> 0] | 0;
HEAP8[$outbuf$013 + 14 >> 0] = HEAP8[$48 >> 0] ^ HEAP8[$49 >> 0];
HEAP8[$49 >> 0] = $144;
$149 = HEAP8[$inbuf$012 + 15 >> 0] | 0;
HEAP8[$outbuf$013 + 15 >> 0] = HEAP8[$50 >> 0] ^ HEAP8[$51 >> 0];
HEAP8[$51 >> 0] = $149;
}
$$014 = $$014 + -1 | 0;
if (!$$014) {
$$lcssa = $52;
break;
} else {
$inbuf$012 = $inbuf$012 + 16 | 0;
$outbuf$013 = $outbuf$013 + 16 | 0;
}
}
$179 = $savebuf;
HEAP32[$179 >> 2] = 0;
HEAP32[$179 + 4 >> 2] = 0;
$184 = $savebuf + 8 | 0;
HEAP32[$184 >> 2] = 0;
HEAP32[$184 + 4 >> 2] = 0;
if (!$$lcssa) {
STACKTOP = sp;
return;
}
___gcry_burn_stack($$lcssa + 16 | 0);
STACKTOP = sp;
return;
}
function __gcry_md_block_write($context, $inbuf_arg, $inlen) {
$context = $context | 0;
$inbuf_arg = $inbuf_arg | 0;
$inlen = $inlen | 0;
var $$010$lcssa = 0, $$01021 = 0, $$1 = 0, $$2 = 0, $$37 = 0, $$lcssa = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $103 = 0, $11 = 0, $110 = 0, $111 = 0, $117 = 0, $119 = 0, $124 = 0, $126 = 0, $127 = 0, $128 = 0, $134 = 0, $135 = 0, $142 = 0, $143 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $166 = 0, $17 = 0, $18 = 0, $19 = 0, $26 = 0, $27 = 0, $3 = 0, $33 = 0, $35 = 0, $4 = 0, $40 = 0, $44 = 0, $46 = 0, $48 = 0, $50 = 0, $52 = 0, $54 = 0, $58 = 0, $59 = 0, $6 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $74 = 0, $75 = 0, $81 = 0, $83 = 0, $87 = 0, $89 = 0, $94 = 0, $95 = 0, $inbuf$09$lcssa = 0, $inbuf$0922 = 0, $inbuf$1 = 0, $inbuf$2 = 0, $inbuf$36 = 0, $stack_burn$1 = 0, label = 0;
$0 = $context + 148 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if ($1 >>> 0 > 128) __gcry_bug(49380, 112, 49394);
$3 = $context + 152 | 0;
$4 = HEAP32[$3 >> 2] | 0;
if (!$4) return;
$6 = $context + 144 | 0;
$7 = HEAP32[$6 >> 2] | 0;
if (($7 | 0) == ($1 | 0)) {
___gcry_burn_stack(FUNCTION_TABLE_iiii[$4 & 63]($context, $context, 1) | 0);
HEAP32[$6 >> 2] = 0;
$10 = $context + 128 | 0;
$11 = $10;
$17 = _i64Add(HEAP32[$11 >> 2] | 0, HEAP32[$11 + 4 >> 2] | 0, 1, 0) | 0;
$18 = tempRet0;
$19 = $10;
HEAP32[$19 >> 2] = $17;
HEAP32[$19 + 4 >> 2] = $18;
if (($17 | 0) == 0 & ($18 | 0) == 0) {
$26 = $context + 136 | 0;
$27 = $26;
$33 = _i64Add(HEAP32[$27 >> 2] | 0, HEAP32[$27 + 4 >> 2] | 0, 1, 0) | 0;
$35 = $26;
HEAP32[$35 >> 2] = $33;
HEAP32[$35 + 4 >> 2] = tempRet0;
$40 = 0;
} else $40 = 0;
} else $40 = $7;
if (!$inbuf_arg) return;
L14 : do if (!$40) {
$$1 = $inlen;
$inbuf$1 = $inbuf_arg;
} else {
L16 : do if ($inlen) {
if ($40 >>> 0 < $1 >>> 0) {
$$01021 = $inlen;
$46 = $40;
$inbuf$0922 = $inbuf_arg;
while (1) {
$44 = HEAP8[$inbuf$0922 >> 0] | 0;
HEAP32[$6 >> 2] = $46 + 1;
HEAP8[$context + $46 >> 0] = $44;
$48 = $$01021 + -1 | 0;
if (!$48) break L16;
$50 = $inbuf$0922 + 1 | 0;
$$pre = HEAP32[$6 >> 2] | 0;
if ($$pre >>> 0 < $1 >>> 0) {
$$01021 = $48;
$46 = $$pre;
$inbuf$0922 = $50;
} else {
$$010$lcssa = $48;
$$lcssa = $$pre;
$inbuf$09$lcssa = $50;
break;
}
}
} else {
$$010$lcssa = $inlen;
$$lcssa = $40;
$inbuf$09$lcssa = $inbuf_arg;
}
$52 = HEAP32[$0 >> 2] | 0;
if ($52 >>> 0 > 128) __gcry_bug(49380, 112, 49394);
$54 = HEAP32[$3 >> 2] | 0;
if (!(($$lcssa | 0) == ($52 | 0) & ($54 | 0) != 0)) {
$$1 = $$010$lcssa;
$inbuf$1 = $inbuf$09$lcssa;
break L14;
}
___gcry_burn_stack(FUNCTION_TABLE_iiii[$54 & 63]($context, $context, 1) | 0);
HEAP32[$6 >> 2] = 0;
$58 = $context + 128 | 0;
$59 = $58;
$65 = _i64Add(HEAP32[$59 >> 2] | 0, HEAP32[$59 + 4 >> 2] | 0, 1, 0) | 0;
$66 = tempRet0;
$67 = $58;
HEAP32[$67 >> 2] = $65;
HEAP32[$67 + 4 >> 2] = $66;
if (!(($65 | 0) == 0 & ($66 | 0) == 0)) {
$$1 = $$010$lcssa;
$inbuf$1 = $inbuf$09$lcssa;
break L14;
}
$74 = $context + 136 | 0;
$75 = $74;
$81 = _i64Add(HEAP32[$75 >> 2] | 0, HEAP32[$75 + 4 >> 2] | 0, 1, 0) | 0;
$83 = $74;
HEAP32[$83 >> 2] = $81;
HEAP32[$83 + 4 >> 2] = tempRet0;
$$1 = $$010$lcssa;
$inbuf$1 = $inbuf$09$lcssa;
break L14;
} while (0);
$87 = HEAP32[$0 >> 2] | 0;
if ($87 >>> 0 > 128) __gcry_bug(49380, 112, 49394);
$89 = HEAP32[$3 >> 2] | 0;
if (!$89) return;
if ((HEAP32[$6 >> 2] | 0) != ($87 | 0)) return;
___gcry_burn_stack(FUNCTION_TABLE_iiii[$89 & 63]($context, $context, 1) | 0);
HEAP32[$6 >> 2] = 0;
$94 = $context + 128 | 0;
$95 = $94;
$101 = _i64Add(HEAP32[$95 >> 2] | 0, HEAP32[$95 + 4 >> 2] | 0, 1, 0) | 0;
$102 = tempRet0;
$103 = $94;
HEAP32[$103 >> 2] = $101;
HEAP32[$103 + 4 >> 2] = $102;
if (!(($101 | 0) == 0 & ($102 | 0) == 0)) return;
$110 = $context + 136 | 0;
$111 = $110;
$117 = _i64Add(HEAP32[$111 >> 2] | 0, HEAP32[$111 + 4 >> 2] | 0, 1, 0) | 0;
$119 = $110;
HEAP32[$119 >> 2] = $117;
HEAP32[$119 + 4 >> 2] = tempRet0;
return;
} while (0);
if ($$1 >>> 0 < $1 >>> 0) {
$$2 = $$1;
$inbuf$2 = $inbuf$1;
$stack_burn$1 = 0;
} else {
$124 = ($$1 >>> 0) / ($1 >>> 0) | 0;
$126 = FUNCTION_TABLE_iiii[HEAP32[$3 >> 2] & 63]($context, $inbuf$1, $124) | 0;
HEAP32[$6 >> 2] = 0;
$127 = $context + 128 | 0;
$128 = $127;
$134 = _i64Add(HEAP32[$128 >> 2] | 0, HEAP32[$128 + 4 >> 2] | 0, $124 | 0, 0) | 0;
$135 = tempRet0;
$142 = $context + 136 | 0;
$143 = $142;
$149 = _i64Add(($135 >>> 0 < 0 | ($135 | 0) == 0 & $134 >>> 0 < $124 >>> 0) & 1 | 0, 0, HEAP32[$143 >> 2] | 0, HEAP32[$143 + 4 >> 2] | 0) | 0;
$151 = $142;
HEAP32[$151 >> 2] = $149;
HEAP32[$151 + 4 >> 2] = tempRet0;
$155 = $127;
HEAP32[$155 >> 2] = $134;
HEAP32[$155 + 4 >> 2] = $135;
$159 = Math_imul($124, $1) | 0;
$$2 = $$1 - $159 | 0;
$inbuf$2 = $inbuf$1 + $159 | 0;
$stack_burn$1 = $126;
}
___gcry_burn_stack($stack_burn$1);
if (!$$2) return; else {
$$37 = $$2;
$inbuf$36 = $inbuf$2;
}
while (1) {
$163 = HEAP32[$6 >> 2] | 0;
if ($163 >>> 0 >= $1 >>> 0) {
label = 29;
break;
}
$166 = HEAP8[$inbuf$36 >> 0] | 0;
HEAP32[$6 >> 2] = $163 + 1;
HEAP8[$context + $163 >> 0] = $166;
$$37 = $$37 + -1 | 0;
if (!$$37) {
label = 29;
break;
} else $inbuf$36 = $inbuf$36 + 1 | 0;
}
if ((label | 0) == 29) return;
}
function _mylog($kind, $comp, $message, $va) {
$kind = $kind | 0;
$comp = $comp | 0;
$message = $message | 0;
$va = $va | 0;
var $$0$i$i = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $19 = 0, $22 = 0, $24 = 0, $26 = 0, $28 = 0, $3 = 0, $30 = 0, $35 = 0, $36 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $52 = 0, $54 = 0, $57 = 0, $6 = 0, $63 = 0, $76 = 0, $77 = 0, $85 = 0, $87 = 0, $9 = 0, $91 = 0, $93 = 0, $date = 0, $date2 = 0, $last_bulk_time$byval_copy = 0, $pos$0$2$i = 0, $pos$03$i = 0, $timeofday = 0, $vacp = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$last_bulk_time$byval_copy = sp + 32 | 0;
$vararg_buffer5 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$date = sp + 128 | 0;
$date2 = sp + 64 | 0;
$vacp = sp + 48 | 0;
$timeofday = sp + 40 | 0;
HEAP32[$vacp >> 2] = HEAP32[$va >> 2];
$1 = (_vsnprintf(0, 0, $message, $vacp) | 0) + 1 | 0;
if (!$1) {
$3 = HEAP32[187] | 0;
if (($3 | 0) == -1) {
$5 = _GNUNET_get_log_call_status(1, 0, 18977, 19024, 910) | 0;
HEAP32[187] = $5;
$9 = $5;
} else $9 = $3;
$6 = HEAP32[17464] | 0;
if (($6 | 0) > 0) {
HEAP32[17464] = $6 + -1;
_GNUNET_abort_();
}
if (!$9) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 18977;
HEAP32[$vararg_buffer + 4 >> 2] = 910;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
dest = $date;
stop = dest + 64 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
$10 = _llvm_stacksave() | 0;
$11 = STACKTOP;
STACKTOP = STACKTOP + ((1 * $1 | 0) + 15 & -16) | 0;
_gettimeofday($timeofday | 0, 0) | 0;
$12 = _GNUNET_TIME_get_offset() | 0;
$13 = tempRet0;
$19 = ___divdi3($12 | 0, $13 | 0, 1e3, 0) | 0;
$22 = _i64Add(HEAP32[$timeofday >> 2] | 0, 0, $19 | 0, tempRet0 | 0) | 0;
HEAP32[$timeofday >> 2] = $22;
do if (($13 | 0) > 0 | ($13 | 0) == 0 & $12 >>> 0 > 0) {
$24 = ___remdi3($12 | 0, $13 | 0, 1e3, 0) | 0;
$26 = ___muldi3($24 | 0, tempRet0 | 0, 1e3, 0) | 0;
$28 = $timeofday + 4 | 0;
$30 = _i64Add(HEAP32[$28 >> 2] | 0, 0, $26 | 0, tempRet0 | 0) | 0;
HEAP32[$28 >> 2] = $30;
if (($30 | 0) > 1e6) {
HEAP32[$28 >> 2] = $30 + -1e6;
HEAP32[$timeofday >> 2] = $22 + 1;
}
} else {
$35 = $timeofday + 4 | 0;
$36 = HEAP32[$35 >> 2] | 0;
$38 = (($36 | 0) < 0) << 31 >> 31;
$39 = ___remdi3($12 | 0, $13 | 0, 1e3, 0) | 0;
$40 = tempRet0;
$41 = ___muldi3($39 | 0, $40 | 0, -1e3, -1) | 0;
$42 = tempRet0;
$48 = ___muldi3($39 | 0, $40 | 0, 1e3, 0) | 0;
$49 = tempRet0;
if (($38 | 0) > ($42 | 0) | ($38 | 0) == ($42 | 0) & $36 >>> 0 > $41 >>> 0) {
$50 = _i64Add($36 | 0, $38 | 0, $48 | 0, $49 | 0) | 0;
HEAP32[$35 >> 2] = $50;
break;
} else {
$52 = _i64Add($48 | 0, $49 | 0, 1e6, 0) | 0;
$54 = _i64Add($52 | 0, tempRet0 | 0, $36 | 0, $38 | 0) | 0;
HEAP32[$35 >> 2] = $54;
HEAP32[$timeofday >> 2] = $22 + -1;
break;
}
} while (0);
$57 = _localtime($timeofday | 0) | 0;
if (!$57) {
dest = $date;
src = 19030;
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));
_vsnprintf($11, $1, $message, $va) | 0;
} else {
_strftime($date2 | 0, 64, 19046, $57 | 0) | 0;
HEAP32[$vararg_buffer2 >> 2] = HEAP32[$timeofday + 4 >> 2];
_snprintf($date, 64, $date2, $vararg_buffer2) | 0;
_vsnprintf($11, $1, $message, $va) | 0;
_setup_log_file($57) | 0;
}
$63 = 69808;
if (($kind & 32 | 0) != 0 & ((HEAP32[$63 >> 2] | 0) != 0 | (HEAP32[$63 + 4 >> 2] | 0) != 0)) if (!(_strncmp($11, 70922, 256) | 0)) {
HEAP32[17466] = (HEAP32[17466] | 0) + 1;
HEAP32[$last_bulk_time$byval_copy >> 2] = HEAP32[17452];
HEAP32[$last_bulk_time$byval_copy + 4 >> 2] = HEAP32[17453];
$76 = _GNUNET_TIME_absolute_get_duration($last_bulk_time$byval_copy) | 0;
$77 = tempRet0;
if ($77 >>> 0 > 10 | ($77 | 0) == 10 & $76 >>> 0 > 250327040 | (HEAP32[17466] | 0) >>> 0 > 1e3) _flush_bulk($date);
_llvm_stackrestore($10 | 0);
STACKTOP = sp;
return;
}
_flush_bulk($date);
_strncpy(70922, $11, 256) | 0;
HEAP32[17466] = 0;
HEAP32[17467] = $kind;
$85 = _GNUNET_TIME_absolute_get() | 0;
$87 = 69808;
HEAP32[$87 >> 2] = $85;
HEAP32[$87 + 4 >> 2] = tempRet0;
_strncpy(71178, $comp, 32) | 0;
$91 = HEAP32[17465] | 0;
$93 = HEAP32[17463] | 0;
if (($91 | 0) != 0 & ($93 | 0) == 0) {
if (!($kind & 1)) if (!($kind & 2)) if (!($kind & 4)) if (!($kind & 8)) $$0$i$i = ($kind & -33 | 0) == 0 ? 18972 : 19016; else $$0$i$i = 18947; else $$0$i$i = 18953; else $$0$i$i = 18958; else $$0$i$i = 18966;
HEAP32[$vararg_buffer5 >> 2] = $date;
HEAP32[$vararg_buffer5 + 4 >> 2] = $comp;
HEAP32[$vararg_buffer5 + 8 >> 2] = $$0$i$i;
HEAP32[$vararg_buffer5 + 12 >> 2] = $11;
_fprintf($91, 19067, $vararg_buffer5) | 0;
_fflush(HEAP32[17465] | 0) | 0;
$pos$0$2$i = HEAP32[17463] | 0;
} else $pos$0$2$i = $93;
if ($pos$0$2$i) {
$pos$03$i = $pos$0$2$i;
do {
FUNCTION_TABLE_viiiii[HEAP32[$pos$03$i + 4 >> 2] & 15](HEAP32[$pos$03$i + 8 >> 2] | 0, $kind, $comp, $date, $11);
$pos$03$i = HEAP32[$pos$03$i >> 2] | 0;
} while (($pos$03$i | 0) != 0);
}
_llvm_stackrestore($10 | 0);
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 $$0 = 0, $$1$lcssa = 0, $$16 = 0, $0 = 0, $1 = 0, $14 = 0, $15 = 0, $2 = 0, $22 = 0, $23 = 0, $24 = 0, $30 = 0, $31 = 0, $33 = 0, $34 = 0, $38 = 0, $39 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $50 = 0, $51 = 0, $58 = 0, $59 = 0, $60 = 0, $67 = 0, $70 = 0, $72 = 0, $74 = 0, $76 = 0, $78 = 0, $79 = 0, $81 = 0, $84 = 0, $85 = 0, $87 = 0, $96 = 0, $args = 0, $ctx_len$0$lcssa = 0, $ctx_len$012 = 0, $dst$08 = 0, $hc$0 = 0, $i$0$lcssa = 0, $i$05 = 0, $i$1 = 0, $prf = 0, $ret$1 = 0, $xtr = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$xtr = sp + 20 | 0;
$prf = sp + 16 | 0;
$args = sp;
$0 = _gcry_md_get_algo_dlen($prf_algo) | 0;
$1 = _gcry_md_get_algo_dlen($xtr_algo) | 0;
$2 = STACKTOP;
STACKTOP = STACKTOP + ((1 * $1 | 0) + 15 & -16) | 0;
if (!$0) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (_gcry_md_open($xtr, $xtr_algo, 2) | 0) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (_gcry_md_open($prf, $prf_algo, 2) | 0) {
_gcry_md_close(HEAP32[$xtr >> 2] | 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$args >> 2] = HEAP32[$argp >> 2];
$14 = (HEAP32[$args >> 2] | 0) + (4 - 1) & ~(4 - 1);
$15 = HEAP32[$14 >> 2] | 0;
HEAP32[$args >> 2] = $14 + 4;
if (!$15) $ctx_len$0$lcssa = 0; else {
$ctx_len$012 = 0;
while (1) {
$22 = (HEAP32[$args >> 2] | 0) + (4 - 1) & ~(4 - 1);
$23 = HEAP32[$22 >> 2] | 0;
HEAP32[$args >> 2] = $22 + 4;
$24 = $23 + $ctx_len$012 | 0;
$30 = (HEAP32[$args >> 2] | 0) + (4 - 1) & ~(4 - 1);
$31 = HEAP32[$30 >> 2] | 0;
HEAP32[$args >> 2] = $30 + 4;
if (!$31) {
$ctx_len$0$lcssa = $24;
break;
} else $ctx_len$012 = $24;
}
}
_memset($result | 0, 0, $out_len | 0) | 0;
$33 = HEAP32[$xtr >> 2] | 0;
_gcry_md_setkey($33, $xts, $xts_len) | 0;
_gcry_md_write($33, $skm, $skm_len);
$34 = _gcry_md_read($33, 0) | 0;
L15 : do if (!$34) $ret$1 = -1; else {
_memcpy($2 | 0, $34 | 0, _gcry_md_get_algo_dlen(_gcry_md_get_algo($33) | 0) | 0) | 0;
$38 = ($out_len >>> 0) / ($0 >>> 0) | 0;
$39 = ($out_len >>> 0) % ($0 >>> 0) | 0;
$41 = $0 + 1 + $ctx_len$0$lcssa | 0;
$42 = _llvm_stacksave() | 0;
$43 = STACKTOP;
STACKTOP = STACKTOP + ((1 * $41 | 0) + 15 & -16) | 0;
$44 = $43 + $0 | 0;
HEAP32[$args >> 2] = HEAP32[$argp >> 2];
$50 = (HEAP32[$args >> 2] | 0) + (4 - 1) & ~(4 - 1);
$51 = HEAP32[$50 >> 2] | 0;
HEAP32[$args >> 2] = $50 + 4;
if ($51) {
$60 = $51;
$dst$08 = $44;
while (1) {
$58 = (HEAP32[$args >> 2] | 0) + (4 - 1) & ~(4 - 1);
$59 = HEAP32[$58 >> 2] | 0;
HEAP32[$args >> 2] = $58 + 4;
_memcpy($dst$08 | 0, $60 | 0, $59 | 0) | 0;
$67 = (HEAP32[$args >> 2] | 0) + (4 - 1) & ~(4 - 1);
$60 = HEAP32[$67 >> 2] | 0;
HEAP32[$args >> 2] = $67 + 4;
if (!$60) break; else $dst$08 = $dst$08 + $59 | 0;
}
}
$70 = ($38 | 0) != 0;
L21 : do if ($70) {
HEAP8[$44 + $ctx_len$0$lcssa >> 0] = 1;
$72 = HEAP32[$prf >> 2] | 0;
_gcry_md_setkey($72, $2, $1) | 0;
_gcry_md_write($72, $44, $ctx_len$0$lcssa + 1 | 0);
$74 = _gcry_md_read($72, 0) | 0;
if ($74) {
_memcpy($result | 0, $74 | 0, $0 | 0) | 0;
$76 = $result + $0 | 0;
if ($38 >>> 0 > 1) {
$78 = 0 - $0 | 0;
$79 = $44 + $ctx_len$0$lcssa | 0;
$$16 = $76;
$i$05 = 1;
while (1) {
_memcpy($43 | 0, $$16 + $78 | 0, $0 | 0) | 0;
$81 = $i$05 + 1 | 0;
_memset($79 | 0, $81 & 255 | 0, 1) | 0;
_gcry_md_reset(HEAP32[$prf >> 2] | 0);
$84 = HEAP32[$prf >> 2] | 0;
_gcry_md_setkey($84, $2, $1) | 0;
_gcry_md_write($84, $43, $41);
$85 = _gcry_md_read($84, 0) | 0;
if (!$85) break L21;
_memcpy($$16 | 0, $85 | 0, $0 | 0) | 0;
$87 = $$16 + $0 | 0;
if ($81 >>> 0 < $38 >>> 0) {
$$16 = $87;
$i$05 = $81;
} else {
$$1$lcssa = $87;
$i$0$lcssa = $81;
label = 16;
break;
}
}
} else {
$$1$lcssa = $76;
$i$0$lcssa = 1;
label = 16;
}
}
} else {
$$1$lcssa = $result;
$i$0$lcssa = 1;
label = 16;
} while (0);
do if ((label | 0) == 16) {
if ($39) {
if ($70) {
_memcpy($43 | 0, $$1$lcssa + (0 - $0) | 0, $0 | 0) | 0;
$i$1 = $i$0$lcssa + 1 | 0;
} else $i$1 = $i$0$lcssa;
_memset($44 + $ctx_len$0$lcssa | 0, $i$1 & 255 | 0, 1) | 0;
_gcry_md_reset(HEAP32[$prf >> 2] | 0);
$96 = HEAP32[$prf >> 2] | 0;
if ($70) {
_gcry_md_setkey($96, $2, $1) | 0;
_gcry_md_write($96, $43, $41);
$hc$0 = _gcry_md_read($96, 0) | 0;
} else {
_gcry_md_setkey($96, $2, $1) | 0;
_gcry_md_write($96, $44, $41 - $0 | 0);
$hc$0 = _gcry_md_read($96, 0) | 0;
}
if (!$hc$0) break;
_memcpy($$1$lcssa | 0, $hc$0 | 0, $39 | 0) | 0;
}
_llvm_stackrestore($42 | 0);
$ret$1 = 1;
break L15;
} while (0);
_llvm_stackrestore($42 | 0);
$ret$1 = -1;
} while (0);
_gcry_md_close(HEAP32[$xtr >> 2] | 0);
_gcry_md_close(HEAP32[$prf >> 2] | 0);
$$0 = $ret$1;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_mpi_ec_curve_point($point, $ctx) {
$point = $point | 0;
$ctx = $ctx | 0;
var $$ = 0, $$1 = 0, $$pre$phi19Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $16 = 0, $2 = 0, $21 = 0, $24 = 0, $34 = 0, $35 = 0, $4 = 0, $40 = 0, $44 = 0, $48 = 0, $52 = 0, $57 = 0, $61 = 0, $67 = 0, $69 = 0, $7 = 0, $76 = 0, $77 = 0, $8 = 0, $81 = 0, $90 = 0, $94 = 0, $99 = 0, $res$2 = 0;
$0 = __gcry_mpi_new(0) | 0;
$1 = __gcry_mpi_new(0) | 0;
$2 = __gcry_mpi_new(0) | 0;
switch (HEAP32[$ctx >> 2] | 0) {
case 0:
{
$4 = __gcry_mpi_new(0) | 0;
if (__gcry_mpi_ec_get_affine($0, $1, $point, $ctx) | 0) {
$$1 = 0;
return $$1 | 0;
}
__gcry_mpi_mul($1, $1, $1);
$7 = $ctx + 60 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if (!$8) {
$10 = $ctx + 16 | 0;
__gcry_mpi_mod($1, $1, HEAP32[$10 >> 2] | 0);
$$pre$phiZ2D = $10;
} else {
__gcry_mpi_mod_barrett($1, $1, $8);
$$pre$phiZ2D = $ctx + 16 | 0;
}
__gcry_mpi_powm($4, $0, __gcry_mpi_const(3) | 0, HEAP32[$$pre$phiZ2D >> 2] | 0);
__gcry_mpi_mul($2, HEAP32[$ctx + 20 >> 2] | 0, $0);
$16 = HEAP32[$7 >> 2] | 0;
if (!$16) __gcry_mpi_mod($2, $2, HEAP32[$$pre$phiZ2D >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $16);
__gcry_mpi_add($2, $2, HEAP32[$ctx + 24 >> 2] | 0);
$21 = HEAP32[$7 >> 2] | 0;
if (!$21) __gcry_mpi_mod($2, $2, HEAP32[$$pre$phiZ2D >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $21);
__gcry_mpi_add($2, $2, $4);
$24 = HEAP32[$7 >> 2] | 0;
if (!$24) __gcry_mpi_mod($2, $2, HEAP32[$$pre$phiZ2D >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $24);
$$ = (__gcry_mpi_cmp($1, $2) | 0) == 0 & 1;
__gcry_mpi_release($4);
$res$2 = $$;
break;
}
case 1:
{
if (__gcry_mpi_ec_get_affine($0, 0, $point, $ctx) | 0) {
$$1 = 0;
return $$1 | 0;
}
__gcry_mpi_mul($2, HEAP32[$ctx + 20 >> 2] | 0, __gcry_mpi_const(4) | 0);
$34 = $ctx + 60 | 0;
$35 = HEAP32[$34 >> 2] | 0;
if (!$35) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $35);
__gcry_mpi_add($2, $2, __gcry_mpi_const(2) | 0);
$40 = HEAP32[$34 >> 2] | 0;
if (!$40) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $40);
__gcry_mpi_mul($2, $2, $0);
$44 = HEAP32[$34 >> 2] | 0;
if (!$44) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $44);
__gcry_mpi_mul($1, $0, $0);
$48 = HEAP32[$34 >> 2] | 0;
if (!$48) __gcry_mpi_mod($1, $1, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($1, $1, $48);
__gcry_mpi_add($2, $2, $1);
$52 = HEAP32[$34 >> 2] | 0;
if (!$52) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $52);
__gcry_mpi_add($2, $2, __gcry_mpi_const(1) | 0);
$57 = HEAP32[$34 >> 2] | 0;
if (!$57) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $57);
__gcry_mpi_mul($2, $2, $0);
$61 = HEAP32[$34 >> 2] | 0;
if (!$61) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $61);
__gcry_mpi_mul($2, $2, HEAP32[$ctx + 24 >> 2] | 0);
$67 = HEAP32[$34 >> 2] | 0;
if (!$67) {
$69 = $ctx + 16 | 0;
__gcry_mpi_mod($2, $2, HEAP32[$69 >> 2] | 0);
$$pre$phi19Z2D = $69;
} else {
__gcry_mpi_mod_barrett($2, $2, $67);
$$pre$phi19Z2D = $ctx + 16 | 0;
}
__gcry_mpi_sub($1, HEAP32[$$pre$phi19Z2D >> 2] | 0, __gcry_mpi_const(1) | 0);
__gcry_mpi_rshift($1, $1, 1);
__gcry_mpi_powm($2, $2, $1, HEAP32[$$pre$phi19Z2D >> 2] | 0);
$res$2 = __gcry_mpi_cmp_ui($2, 1) | 0;
break;
}
case 2:
{
if (__gcry_mpi_ec_get_affine($0, $1, $point, $ctx) | 0) {
$$1 = 0;
return $$1 | 0;
}
__gcry_mpi_mul($0, $0, $0);
$76 = $ctx + 60 | 0;
$77 = HEAP32[$76 >> 2] | 0;
if (!$77) __gcry_mpi_mod($0, $0, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($0, $0, $77);
__gcry_mpi_mul($1, $1, $1);
$81 = HEAP32[$76 >> 2] | 0;
if (!$81) __gcry_mpi_mod($1, $1, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($1, $1, $81);
do if ((HEAP32[$ctx + 4 >> 2] | 0) == 1) {
__gcry_mpi_set($2, $0) | 0;
__gcry_mpi_neg($2, $2);
} else {
__gcry_mpi_mul($2, HEAP32[$ctx + 20 >> 2] | 0, $0);
$90 = HEAP32[$76 >> 2] | 0;
if (!$90) {
__gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0);
break;
} else {
__gcry_mpi_mod_barrett($2, $2, $90);
break;
}
} while (0);
__gcry_mpi_add($2, $2, $1);
$94 = HEAP32[$76 >> 2] | 0;
if (!$94) __gcry_mpi_mod($2, $2, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($2, $2, $94);
__gcry_mpi_sub($2, $2, __gcry_mpi_const(1) | 0);
__gcry_mpi_mul($0, $0, $1);
$99 = HEAP32[$76 >> 2] | 0;
if (!$99) __gcry_mpi_mod($0, $0, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($0, $0, $99);
__gcry_mpi_mul($0, $0, HEAP32[$ctx + 24 >> 2] | 0);
$105 = HEAP32[$76 >> 2] | 0;
if (!$105) __gcry_mpi_mod($0, $0, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($0, $0, $105);
__gcry_mpi_sub($2, $2, $0);
$res$2 = (__gcry_mpi_cmp_ui($2, 0) | 0) == 0 & 1;
break;
}
default:
$res$2 = 0;
}
__gcry_mpi_release($2);
__gcry_mpi_release($0);
__gcry_mpi_release($1);
$$1 = $res$2;
return $$1 | 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, $109 = 0, $128 = 0, $13 = 0, $16 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $31 = 0, $32 = 0, $33 = 0, $35 = 0, $36 = 0, $37 = 0, $39 = 0, $40 = 0, $41 = 0, $43 = 0, $44 = 0, $45 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $55 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $61 = 0, $63 = 0, $64 = 0, $65 = 0, $67 = 0, $68 = 0, $69 = 0, $71 = 0, $72 = 0, $73 = 0, $75 = 0, $76 = 0, $77 = 0, $79 = 0, $80 = 0, $81 = 0, $90 = 0, $Q = 0, $hash_d$0 = 0, $hvec = 0, $rc$0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$Q = sp + 16 | 0;
$hvec = sp;
__gcry_mpi_point_init($Q);
HEAP32[$hvec >> 2] = 0;
HEAP32[$hvec + 4 >> 2] = 0;
HEAP32[$hvec + 8 >> 2] = 0;
HEAP32[$hvec + 12 >> 2] = 0;
$0 = __gcry_mpi_snew(0) | 0;
$1 = __gcry_mpi_new(0) | 0;
$2 = __gcry_mpi_new(0) | 0;
$3 = __gcry_malloc_secure(64) | 0;
if (!$3) {
$5 = _gpg_err_code_from_syserror() | 0;
$hash_d$0 = 0;
$rc$0 = ($5 | 0) == 0 ? 0 : $5 & 65535 | 16777216;
__gcry_mpi_point_free_parts($Q);
__gcry_mpi_release($0);
__gcry_mpi_release($1);
__gcry_mpi_release($2);
__gcry_free($hash_d$0);
STACKTOP = sp;
return $rc$0 | 0;
}
$13 = __gcry_random_bytes_secure(32, 2 - ($flags >>> 5 & 1) | 0) | 0;
HEAP32[$hvec + 12 >> 2] = $13;
HEAP32[$hvec + 8 >> 2] = 32;
$16 = __gcry_md_hash_buffers(10, 0, $3, $hvec, 1) | 0;
if ($16) {
$hash_d$0 = $3;
$rc$0 = $16;
__gcry_mpi_point_free_parts($Q);
__gcry_mpi_release($0);
__gcry_mpi_release($1);
__gcry_mpi_release($2);
__gcry_free($hash_d$0);
STACKTOP = sp;
return $rc$0 | 0;
}
HEAP32[$sk + 56 >> 2] = __gcry_mpi_set_opaque(0, $13, 256) | 0;
$20 = HEAP8[$3 >> 0] | 0;
$21 = $3 + 31 | 0;
$22 = HEAP8[$21 >> 0] | 0;
$23 = $3 + 1 | 0;
$24 = HEAP8[$23 >> 0] | 0;
$25 = $3 + 30 | 0;
HEAP8[$23 >> 0] = HEAP8[$25 >> 0] | 0;
HEAP8[$25 >> 0] = $24;
$27 = $3 + 2 | 0;
$28 = HEAP8[$27 >> 0] | 0;
$29 = $3 + 29 | 0;
HEAP8[$27 >> 0] = HEAP8[$29 >> 0] | 0;
HEAP8[$29 >> 0] = $28;
$31 = $3 + 3 | 0;
$32 = HEAP8[$31 >> 0] | 0;
$33 = $3 + 28 | 0;
HEAP8[$31 >> 0] = HEAP8[$33 >> 0] | 0;
HEAP8[$33 >> 0] = $32;
$35 = $3 + 4 | 0;
$36 = HEAP8[$35 >> 0] | 0;
$37 = $3 + 27 | 0;
HEAP8[$35 >> 0] = HEAP8[$37 >> 0] | 0;
HEAP8[$37 >> 0] = $36;
$39 = $3 + 5 | 0;
$40 = HEAP8[$39 >> 0] | 0;
$41 = $3 + 26 | 0;
HEAP8[$39 >> 0] = HEAP8[$41 >> 0] | 0;
HEAP8[$41 >> 0] = $40;
$43 = $3 + 6 | 0;
$44 = HEAP8[$43 >> 0] | 0;
$45 = $3 + 25 | 0;
HEAP8[$43 >> 0] = HEAP8[$45 >> 0] | 0;
HEAP8[$45 >> 0] = $44;
$47 = $3 + 7 | 0;
$48 = HEAP8[$47 >> 0] | 0;
$49 = $3 + 24 | 0;
HEAP8[$47 >> 0] = HEAP8[$49 >> 0] | 0;
HEAP8[$49 >> 0] = $48;
$51 = $3 + 8 | 0;
$52 = HEAP8[$51 >> 0] | 0;
$53 = $3 + 23 | 0;
HEAP8[$51 >> 0] = HEAP8[$53 >> 0] | 0;
HEAP8[$53 >> 0] = $52;
$55 = $3 + 9 | 0;
$56 = HEAP8[$55 >> 0] | 0;
$57 = $3 + 22 | 0;
HEAP8[$55 >> 0] = HEAP8[$57 >> 0] | 0;
HEAP8[$57 >> 0] = $56;
$59 = $3 + 10 | 0;
$60 = HEAP8[$59 >> 0] | 0;
$61 = $3 + 21 | 0;
HEAP8[$59 >> 0] = HEAP8[$61 >> 0] | 0;
HEAP8[$61 >> 0] = $60;
$63 = $3 + 11 | 0;
$64 = HEAP8[$63 >> 0] | 0;
$65 = $3 + 20 | 0;
HEAP8[$63 >> 0] = HEAP8[$65 >> 0] | 0;
HEAP8[$65 >> 0] = $64;
$67 = $3 + 12 | 0;
$68 = HEAP8[$67 >> 0] | 0;
$69 = $3 + 19 | 0;
HEAP8[$67 >> 0] = HEAP8[$69 >> 0] | 0;
HEAP8[$69 >> 0] = $68;
$71 = $3 + 13 | 0;
$72 = HEAP8[$71 >> 0] | 0;
$73 = $3 + 18 | 0;
HEAP8[$71 >> 0] = HEAP8[$73 >> 0] | 0;
HEAP8[$73 >> 0] = $72;
$75 = $3 + 14 | 0;
$76 = HEAP8[$75 >> 0] | 0;
$77 = $3 + 17 | 0;
HEAP8[$75 >> 0] = HEAP8[$77 >> 0] | 0;
HEAP8[$77 >> 0] = $76;
$79 = $3 + 15 | 0;
$80 = HEAP8[$79 >> 0] | 0;
$81 = $3 + 16 | 0;
HEAP8[$79 >> 0] = HEAP8[$81 >> 0] | 0;
HEAP8[$81 >> 0] = $80;
HEAP8[$3 >> 0] = $22 & 63 | 64;
HEAP8[$21 >> 0] = $20 & 248;
__gcry_mpi_set_buffer($0, $3, 32, 0);
__gcry_free($3);
$90 = $E + 20 | 0;
__gcry_mpi_ec_mul_point($Q, $0, $90, $ctx);
if (__gcry_get_debug_flag(1) | 0) __gcry_mpi_point_log(35388, $Q, $ctx);
HEAP32[$sk >> 2] = HEAP32[$E >> 2];
HEAP32[$sk + 4 >> 2] = HEAP32[$E + 4 >> 2];
HEAP32[$sk + 8 >> 2] = __gcry_mpi_copy(HEAP32[$E + 8 >> 2] | 0) | 0;
HEAP32[$sk + 12 >> 2] = __gcry_mpi_copy(HEAP32[$E + 12 >> 2] | 0) | 0;
HEAP32[$sk + 16 >> 2] = __gcry_mpi_copy(HEAP32[$E + 16 >> 2] | 0) | 0;
$109 = $sk + 20 | 0;
__gcry_mpi_point_init($109);
__gcry_mpi_set(HEAP32[$109 >> 2] | 0, HEAP32[$90 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 24 >> 2] | 0, HEAP32[$E + 24 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 28 >> 2] | 0, HEAP32[$E + 28 >> 2] | 0) | 0;
HEAP32[$sk + 32 >> 2] = __gcry_mpi_copy(HEAP32[$E + 32 >> 2] | 0) | 0;
HEAP32[$sk + 36 >> 2] = __gcry_mpi_copy(HEAP32[$E + 36 >> 2] | 0) | 0;
$128 = $sk + 44 | 0;
__gcry_mpi_point_init($128);
__gcry_mpi_set(HEAP32[$128 >> 2] | 0, HEAP32[$Q >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 48 >> 2] | 0, HEAP32[$Q + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$sk + 52 >> 2] | 0, HEAP32[$Q + 8 >> 2] | 0) | 0;
$hash_d$0 = 0;
$rc$0 = 0;
__gcry_mpi_point_free_parts($Q);
__gcry_mpi_release($0);
__gcry_mpi_release($1);
__gcry_mpi_release($2);
__gcry_free($hash_d$0);
STACKTOP = sp;
return $rc$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 $$015 = 0, $$burn_stack_depth$0 = 0, $$lcssa = 0, $$lcssa27 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $128 = 0, $13 = 0, $130 = 0, $134 = 0, $135 = 0, $14 = 0, $142 = 0, $143 = 0, $145 = 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, $_vlen$0$lcssa22 = 0, $_vlen$08 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$36 = 0, $_vptr$0$lcssa23 = 0, $_vptr$07 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$35 = 0, $burn_stack_depth$0$lcssa = 0, $burn_stack_depth$013 = 0, $i$0 = 0, $inbuf$012 = 0, $outbuf$014 = 0, $scevgep = 0, $tmpbuf = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tmpbuf = sp;
if (!$nblocks) $burn_stack_depth$0$lcssa = 0; else {
$1 = $tmpbuf + 4 | 0;
$2 = $tmpbuf + 8 | 0;
$3 = $tmpbuf + 12 | 0;
$4 = $tmpbuf + 1 | 0;
$5 = $tmpbuf + 2 | 0;
$6 = $tmpbuf + 3 | 0;
$7 = $tmpbuf + 4 | 0;
$8 = $tmpbuf + 5 | 0;
$9 = $tmpbuf + 6 | 0;
$10 = $tmpbuf + 7 | 0;
$11 = $tmpbuf + 8 | 0;
$12 = $tmpbuf + 9 | 0;
$13 = $tmpbuf + 10 | 0;
$14 = $tmpbuf + 11 | 0;
$15 = $tmpbuf + 12 | 0;
$16 = $tmpbuf + 13 | 0;
$17 = $tmpbuf + 14 | 0;
$18 = $tmpbuf + 15 | 0;
$$015 = $nblocks;
$burn_stack_depth$013 = 0;
$inbuf$012 = $inbuf_arg;
$outbuf$014 = $outbuf_arg;
while (1) {
_twofish_encrypt($context, $tmpbuf, $ctr) | 0;
$$burn_stack_depth$0 = $burn_stack_depth$013 >>> 0 < 36 ? 36 : $burn_stack_depth$013;
if (!(($outbuf$014 | $inbuf$012) & 3)) {
HEAP32[$outbuf$014 >> 2] = HEAP32[$inbuf$012 >> 2] ^ HEAP32[$tmpbuf >> 2];
HEAP32[$outbuf$014 + 4 >> 2] = HEAP32[$inbuf$012 + 4 >> 2] ^ HEAP32[$1 >> 2];
HEAP32[$outbuf$014 + 8 >> 2] = HEAP32[$inbuf$012 + 8 >> 2] ^ HEAP32[$2 >> 2];
HEAP32[$outbuf$014 + 12 >> 2] = HEAP32[$inbuf$012 + 12 >> 2] ^ HEAP32[$3 >> 2];
} else {
HEAP8[$outbuf$014 >> 0] = HEAP8[$inbuf$012 >> 0] ^ HEAP8[$tmpbuf >> 0];
HEAP8[$outbuf$014 + 1 >> 0] = HEAP8[$inbuf$012 + 1 >> 0] ^ HEAP8[$4 >> 0];
HEAP8[$outbuf$014 + 2 >> 0] = HEAP8[$inbuf$012 + 2 >> 0] ^ HEAP8[$5 >> 0];
HEAP8[$outbuf$014 + 3 >> 0] = HEAP8[$inbuf$012 + 3 >> 0] ^ HEAP8[$6 >> 0];
HEAP8[$outbuf$014 + 4 >> 0] = HEAP8[$inbuf$012 + 4 >> 0] ^ HEAP8[$7 >> 0];
HEAP8[$outbuf$014 + 5 >> 0] = HEAP8[$inbuf$012 + 5 >> 0] ^ HEAP8[$8 >> 0];
HEAP8[$outbuf$014 + 6 >> 0] = HEAP8[$inbuf$012 + 6 >> 0] ^ HEAP8[$9 >> 0];
HEAP8[$outbuf$014 + 7 >> 0] = HEAP8[$inbuf$012 + 7 >> 0] ^ HEAP8[$10 >> 0];
HEAP8[$outbuf$014 + 8 >> 0] = HEAP8[$inbuf$012 + 8 >> 0] ^ HEAP8[$11 >> 0];
HEAP8[$outbuf$014 + 9 >> 0] = HEAP8[$inbuf$012 + 9 >> 0] ^ HEAP8[$12 >> 0];
HEAP8[$outbuf$014 + 10 >> 0] = HEAP8[$inbuf$012 + 10 >> 0] ^ HEAP8[$13 >> 0];
HEAP8[$outbuf$014 + 11 >> 0] = HEAP8[$inbuf$012 + 11 >> 0] ^ HEAP8[$14 >> 0];
HEAP8[$outbuf$014 + 12 >> 0] = HEAP8[$inbuf$012 + 12 >> 0] ^ HEAP8[$15 >> 0];
HEAP8[$outbuf$014 + 13 >> 0] = HEAP8[$inbuf$012 + 13 >> 0] ^ HEAP8[$16 >> 0];
HEAP8[$outbuf$014 + 14 >> 0] = HEAP8[$inbuf$012 + 14 >> 0] ^ HEAP8[$17 >> 0];
HEAP8[$outbuf$014 + 15 >> 0] = HEAP8[$inbuf$012 + 15 >> 0] ^ HEAP8[$18 >> 0];
}
$outbuf$014 = $outbuf$014 + 16 | 0;
$inbuf$012 = $inbuf$012 + 16 | 0;
$i$0 = 16;
do {
if (($i$0 | 0) <= 0) break;
$i$0 = $i$0 + -1 | 0;
$128 = $ctr + $i$0 | 0;
$130 = (HEAP8[$128 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$128 >> 0] = $130;
} while ($130 << 24 >> 24 == 0);
$$015 = $$015 + -1 | 0;
if (!$$015) {
$burn_stack_depth$0$lcssa = $$burn_stack_depth$0;
break;
} else $burn_stack_depth$013 = $$burn_stack_depth$0;
}
}
if (!($tmpbuf & 4)) {
$_vlen$0$lcssa22 = 16;
$_vptr$0$lcssa23 = $tmpbuf;
label = 13;
} else {
$_vlen$08 = 16;
$_vptr$07 = $tmpbuf;
while (1) {
HEAP8[$_vptr$07 >> 0] = 0;
$134 = $_vptr$07 + 1 | 0;
$135 = $_vlen$08 + -1 | 0;
if (($135 | 0) != 0 & ($134 & 7 | 0) != 0) {
$_vlen$08 = $135;
$_vptr$07 = $134;
} else {
$$lcssa = $134;
$$lcssa27 = $135;
break;
}
}
if ($$lcssa27 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa27;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa22 = $$lcssa27;
$_vptr$0$lcssa23 = $$lcssa;
label = 13;
}
}
if ((label | 0) == 13) {
$142 = $_vlen$0$lcssa22 + -8 | 0;
$143 = $142 & -8;
$scevgep = $_vptr$0$lcssa23 + ($143 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa22;
$_vptr$1 = $_vptr$0$lcssa23;
while (1) {
$145 = $_vptr$1;
HEAP32[$145 >> 2] = 0;
HEAP32[$145 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $142 - $143 | 0;
$_vptr$3$ph = $scevgep;
}
if (!$_vlen$3$ph) {
___gcry_burn_stack($burn_stack_depth$0$lcssa);
STACKTOP = sp;
return;
} else {
$_vlen$36 = $_vlen$3$ph;
$_vptr$35 = $_vptr$3$ph;
}
while (1) {
HEAP8[$_vptr$35 >> 0] = 0;
$_vlen$36 = $_vlen$36 + -1 | 0;
if (!$_vlen$36) break; else $_vptr$35 = $_vptr$35 + 1 | 0;
}
___gcry_burn_stack($burn_stack_depth$0$lcssa);
STACKTOP = sp;
return;
}
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, $103 = 0, $104 = 0, $106 = 0, $107 = 0, $11 = 0, $112 = 0, $116 = 0, $118 = 0, $12 = 0, $120 = 0, $124 = 0, $126 = 0, $13 = 0, $131 = 0, $134 = 0, $14 = 0, $18 = 0, $19 = 0, $22 = 0, $26 = 0, $27 = 0, $28 = 0, $30 = 0, $32 = 0, $36 = 0, $37 = 0, $41 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $56 = 0, $59 = 0, $6 = 0, $63 = 0, $64 = 0, $67 = 0, $7 = 0, $71 = 0, $74 = 0, $78 = 0, $80 = 0, $84 = 0, $86 = 0, $88 = 0, $90 = 0, $94 = 0, $96 = 0;
$0 = $ctx + 64 | 0;
$1 = HEAP32[$0 >> 2] | 0;
__gcry_mpi_mul($1, HEAP32[$p1 + 8 >> 2] | 0, HEAP32[$p2 + 8 >> 2] | 0);
$6 = $ctx + 60 | 0;
$7 = HEAP32[$6 >> 2] | 0;
if (!$7) __gcry_mpi_mod($1, $1, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($1, $1, $7);
$11 = $ctx + 68 | 0;
$12 = HEAP32[$11 >> 2] | 0;
$13 = HEAP32[$0 >> 2] | 0;
__gcry_mpi_mul($12, $13, $13);
$14 = HEAP32[$6 >> 2] | 0;
if (!$14) __gcry_mpi_mod($12, $12, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($12, $12, $14);
$18 = $ctx + 72 | 0;
$19 = HEAP32[$18 >> 2] | 0;
__gcry_mpi_mul($19, HEAP32[$p1 >> 2] | 0, HEAP32[$p2 >> 2] | 0);
$22 = HEAP32[$6 >> 2] | 0;
if (!$22) __gcry_mpi_mod($19, $19, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($19, $19, $22);
$26 = $ctx + 76 | 0;
$27 = HEAP32[$26 >> 2] | 0;
$28 = $p1 + 4 | 0;
$30 = $p2 + 4 | 0;
__gcry_mpi_mul($27, HEAP32[$28 >> 2] | 0, HEAP32[$30 >> 2] | 0);
$32 = HEAP32[$6 >> 2] | 0;
if (!$32) __gcry_mpi_mod($27, $27, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($27, $27, $32);
$36 = $ctx + 80 | 0;
$37 = HEAP32[$36 >> 2] | 0;
__gcry_mpi_mul($37, HEAP32[$ctx + 24 >> 2] | 0, HEAP32[$18 >> 2] | 0);
$41 = HEAP32[$6 >> 2] | 0;
if (!$41) __gcry_mpi_mod($37, $37, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($37, $37, $41);
$45 = HEAP32[$36 >> 2] | 0;
__gcry_mpi_mul($45, $45, HEAP32[$26 >> 2] | 0);
$47 = HEAP32[$6 >> 2] | 0;
if (!$47) __gcry_mpi_mod($45, $45, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($45, $45, $47);
$51 = $ctx + 84 | 0;
__gcry_mpi_sub(HEAP32[$51 >> 2] | 0, HEAP32[$11 >> 2] | 0, HEAP32[$36 >> 2] | 0);
$55 = $ctx + 88 | 0;
$56 = HEAP32[$55 >> 2] | 0;
__gcry_mpi_add($56, HEAP32[$11 >> 2] | 0, HEAP32[$36 >> 2] | 0);
$59 = HEAP32[$6 >> 2] | 0;
if (!$59) __gcry_mpi_mod($56, $56, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($56, $56, $59);
$63 = $ctx + 92 | 0;
$64 = HEAP32[$63 >> 2] | 0;
__gcry_mpi_add($64, HEAP32[$p1 >> 2] | 0, HEAP32[$28 >> 2] | 0);
$67 = HEAP32[$6 >> 2] | 0;
if (!$67) __gcry_mpi_mod($64, $64, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($64, $64, $67);
$71 = HEAP32[$result >> 2] | 0;
__gcry_mpi_add($71, HEAP32[$p2 >> 2] | 0, HEAP32[$30 >> 2] | 0);
$74 = HEAP32[$6 >> 2] | 0;
if (!$74) __gcry_mpi_mod($71, $71, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($71, $71, $74);
$78 = HEAP32[$result >> 2] | 0;
__gcry_mpi_mul($78, $78, HEAP32[$63 >> 2] | 0);
$80 = HEAP32[$6 >> 2] | 0;
if (!$80) __gcry_mpi_mod($78, $78, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($78, $78, $80);
$84 = HEAP32[$result >> 2] | 0;
__gcry_mpi_sub($84, $84, HEAP32[$18 >> 2] | 0);
$86 = HEAP32[$result >> 2] | 0;
__gcry_mpi_sub($86, $86, HEAP32[$26 >> 2] | 0);
$88 = HEAP32[$result >> 2] | 0;
__gcry_mpi_mul($88, $88, HEAP32[$51 >> 2] | 0);
$90 = HEAP32[$6 >> 2] | 0;
if (!$90) __gcry_mpi_mod($88, $88, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($88, $88, $90);
$94 = HEAP32[$result >> 2] | 0;
__gcry_mpi_mul($94, $94, HEAP32[$0 >> 2] | 0);
$96 = HEAP32[$6 >> 2] | 0;
if (!$96) __gcry_mpi_mod($94, $94, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($94, $94, $96);
$103 = $result + 4 | 0;
$104 = HEAP32[$103 >> 2] | 0;
if ((HEAP32[$ctx + 4 >> 2] | 0) == 1) {
__gcry_mpi_set($104, HEAP32[$18 >> 2] | 0) | 0;
$106 = HEAP32[$103 >> 2] | 0;
__gcry_mpi_neg($106, $106);
$107 = HEAP32[$103 >> 2] | 0;
__gcry_mpi_sub($107, HEAP32[$26 >> 2] | 0, $107);
} else {
__gcry_mpi_mul($104, HEAP32[$ctx + 20 >> 2] | 0, HEAP32[$18 >> 2] | 0);
$112 = HEAP32[$6 >> 2] | 0;
if (!$112) __gcry_mpi_mod($104, $104, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($104, $104, $112);
$116 = HEAP32[$103 >> 2] | 0;
__gcry_mpi_sub($116, HEAP32[$26 >> 2] | 0, $116);
}
$118 = HEAP32[$103 >> 2] | 0;
__gcry_mpi_mul($118, $118, HEAP32[$55 >> 2] | 0);
$120 = HEAP32[$6 >> 2] | 0;
if (!$120) __gcry_mpi_mod($118, $118, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($118, $118, $120);
$124 = HEAP32[$103 >> 2] | 0;
__gcry_mpi_mul($124, $124, HEAP32[$0 >> 2] | 0);
$126 = HEAP32[$6 >> 2] | 0;
if (!$126) __gcry_mpi_mod($124, $124, HEAP32[$ctx + 16 >> 2] | 0); else __gcry_mpi_mod_barrett($124, $124, $126);
$131 = HEAP32[$result + 8 >> 2] | 0;
__gcry_mpi_mul($131, HEAP32[$51 >> 2] | 0, HEAP32[$55 >> 2] | 0);
$134 = HEAP32[$6 >> 2] | 0;
if (!$134) {
__gcry_mpi_mod($131, $131, HEAP32[$ctx + 16 >> 2] | 0);
return;
} else {
__gcry_mpi_mod_barrett($131, $131, $134);
return;
}
}
function __gcry_cipher_open_internal($handle, $algo, $mode, $flags) {
$handle = $handle | 0;
$algo = $algo | 0;
$mode = $mode | 0;
$flags = $flags | 0;
var $$ph = 0, $0 = 0, $20 = 0, $67 = 0, $68 = 0, $74 = 0, $75 = 0, $76 = 0, $err$0 = 0, $err$1 = 0, $err$5 = 0, $h$0$in = 0, $h$1 = 0, $h$3 = 0, $off$0 = 0, label = 0;
$0 = $flags & 1;
__gcry_fast_random_poll();
if ((HEAP32[1069] | 0) == ($algo | 0)) {
$$ph = 4276;
label = 6;
} else if ((HEAP32[1085] | 0) == ($algo | 0)) {
$$ph = 4340;
label = 6;
} else if ((HEAP32[1101] | 0) == ($algo | 0)) {
$$ph = 4404;
label = 6;
} else if ((HEAP32[1968] | 0) == ($algo | 0)) {
$$ph = 7872;
label = 6;
} else if ((HEAP32[1984] | 0) == ($algo | 0)) {
$$ph = 7936;
label = 6;
} else {
$20 = 0;
$err$0 = 12;
}
if ((label | 0) == 6) {
$20 = $$ph;
$err$0 = (HEAP8[$$ph + 4 >> 0] & 1) == 0 ? 0 : 12;
}
$err$1 = $flags >>> 0 > 15 & ($err$0 | 0) == 0 ? 12 : $err$0;
L9 : do if (!$err$1) {
L11 : do if (($mode | 0) < 6) switch ($mode | 0) {
case 5:
case 2:
case 3:
case 1:
{
label = 11;
break L11;
break;
}
case 4:
{
if (!(HEAP32[$20 + 44 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if (!(HEAP32[$20 + 48 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
} else break L11;
break;
}
case 0:
{
if (__gcry_fips_mode() | 0) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if (!(__gcry_get_debug_flag(0) | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
} else break L11;
break;
}
default:
{
$err$5 = 71;
$h$3 = 0;
break L9;
}
} else {
if (($mode | 0) < 9) {
switch ($mode | 0) {
case 7:
case 6:
{
label = 11;
break L11;
break;
}
case 8:
break;
default:
{
$err$5 = 71;
$h$3 = 0;
break L9;
}
}
if (!(HEAP32[$20 + 36 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if ((HEAP32[$20 + 40 >> 2] | 0) == 0 ? 1 : (HEAP32[$20 + 20 >> 2] | 0) != 16) {
$err$5 = 71;
$h$3 = 0;
break L9;
} else break;
}
if (($mode | 0) < 11) {
switch ($mode | 0) {
case 9:
{
label = 11;
break L11;
break;
}
case 10:
break;
default:
{
$err$5 = 71;
$h$3 = 0;
break L9;
}
}
if (!(HEAP32[$20 + 44 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if (!(HEAP32[$20 + 48 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if (!(HEAP32[$20 + 60 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if ((HEAP32[$20 >> 2] | 0) == 316) break; else {
$err$5 = 71;
$h$3 = 0;
break L9;
}
}
if (($mode | 0) >= 65537) switch ($mode | 0) {
case 65537:
{
label = 11;
break L11;
break;
}
default:
{
$err$5 = 71;
$h$3 = 0;
break L9;
}
}
switch ($mode | 0) {
case 11:
break;
default:
{
$err$5 = 71;
$h$3 = 0;
break L9;
}
}
if (!(HEAP32[$20 + 36 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if (!(HEAP32[$20 + 40 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
if ((HEAP32[$20 + 20 >> 2] | 0) != 16) {
$err$5 = 71;
$h$3 = 0;
break L9;
}
} while (0);
if ((label | 0) == 11) {
if (!(HEAP32[$20 + 36 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break;
}
if (!(HEAP32[$20 + 40 >> 2] | 0)) {
$err$5 = 71;
$h$3 = 0;
break;
}
}
$67 = (HEAP32[$20 + 28 >> 2] << 1) + 511 | 0;
$68 = ($0 | 0) != 0;
if ($68) $h$0$in = __gcry_calloc_secure(1, $67) | 0; else $h$0$in = __gcry_calloc(1, $67) | 0;
if (!$h$0$in) {
$err$5 = _gpg_err_code_from_syserror() | 0;
$h$3 = $h$0$in;
break;
}
$74 = $h$0$in & 15;
$75 = ($74 | 0) == 0;
$76 = 16 - $74 | 0;
$h$1 = $75 ? $h$0$in : $h$0$in + $76 | 0;
$off$0 = $75 ? 0 : $76;
HEAP32[$h$1 >> 2] = $68 ? 1183944770 : 604576100;
HEAP32[$h$1 + 4 >> 2] = $67 - $off$0;
HEAP32[$h$1 + 8 >> 2] = $off$0;
HEAP32[$h$1 + 12 >> 2] = $20;
HEAP32[$h$1 + 16 >> 2] = $algo;
HEAP32[$h$1 + 48 >> 2] = $mode;
HEAP32[$h$1 + 52 >> 2] = $flags;
switch ($algo | 0) {
case 9:
case 8:
case 7:
{
HEAP32[$h$1 + 20 >> 2] = 1;
HEAP32[$h$1 + 24 >> 2] = 2;
HEAP32[$h$1 + 28 >> 2] = 1;
HEAP32[$h$1 + 32 >> 2] = 3;
HEAP32[$h$1 + 36 >> 2] = 4;
HEAP32[$h$1 + 40 >> 2] = 5;
HEAP32[$h$1 + 44 >> 2] = 2;
break;
}
case 303:
case 10:
{
HEAP32[$h$1 + 32 >> 2] = 6;
HEAP32[$h$1 + 24 >> 2] = 7;
HEAP32[$h$1 + 36 >> 2] = 8;
break;
}
default:
{}
}
if (($mode | 0) == 11) {
HEAP8[$h$1 + 480 >> 0] = 16;
$err$5 = 0;
$h$3 = $h$1;
} else {
$err$5 = 0;
$h$3 = $h$1;
}
} else {
$err$5 = $err$1;
$h$3 = 0;
} while (0);
HEAP32[$handle >> 2] = ($err$5 | 0) != 0 ? 0 : $h$3;
return (($err$5 | 0) == 0 ? 0 : $err$5 & 65535 | 536870912) | 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 $$02 = 0, $$2 = 0, $100 = 0, $101 = 0, $102 = 0, $104 = 0, $111 = 0, $14 = 0, $17 = 0, $21 = 0, $23 = 0, $27 = 0, $32 = 0, $35 = 0, $36 = 0, $39 = 0, $44 = 0, $45 = 0, $5 = 0, $56 = 0, $58 = 0, $61 = 0, $64 = 0, $65 = 0, $67 = 0, $68 = 0, $69 = 0, $71 = 0, $77 = 0, $8 = 0, $80 = 0, $83 = 0, $86 = 0, $88 = 0, $9 = 0, $91 = 0, $97 = 0, $98 = 0, $buf$0 = 0, $i$01$i = 0, $i$01$i$7 = 0, $rawmpi$1 = 0, $rawmpilen = 0, $rawmpilen$i = 0, $sign$0 = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rawmpilen$i = sp + 12 | 0;
$rawmpilen = sp + 8 | 0;
$x = sp + 4 | 0;
$y = sp;
if (!$pk) label = 24; else if (!(HEAP32[$pk + 12 >> 2] & 4)) label = 24; else {
$5 = __gcry_mpi_get_opaque($pk, $rawmpilen) | 0;
if (!$5) {
$$2 = 65;
STACKTOP = sp;
return $$2 | 0;
}
$8 = (HEAP32[$rawmpilen >> 2] | 0) + 7 | 0;
$9 = $8 >>> 3;
HEAP32[$rawmpilen >> 2] = $9;
L7 : do if ($8 >>> 0 < 16 | ($9 & 1 | 0) == 0) {
$58 = $9;
$buf$0 = $5;
} else {
switch (HEAP8[$5 >> 0] | 0) {
case 4:
break;
case 64:
{
$56 = $9 + -1 | 0;
HEAP32[$rawmpilen >> 2] = $56;
$58 = $56;
$buf$0 = $5 + 1 | 0;
break L7;
break;
}
default:
{
$58 = $9;
$buf$0 = $5;
break L7;
}
}
$14 = $5 + 1 | 0;
$17 = __gcry_mpi_scan($x, 1, $14, ($9 + -1 | 0) >>> 1, 0) | 0;
L12 : do if (!$17) {
$21 = ((HEAP32[$rawmpilen >> 2] | 0) + -1 | 0) >>> 1;
$23 = __gcry_mpi_scan($y, 1, $14 + $21 | 0, $21, 0) | 0;
if ($23) {
__gcry_mpi_free(HEAP32[$x >> 2] | 0);
$$02 = $23;
break;
}
do if ($r_encpk) {
$27 = HEAP32[$x >> 2] | 0;
$32 = __gcry_mpi_get_buffer_extra(HEAP32[$y >> 2] | 0, (HEAP32[$ctx + 12 >> 2] | 0) >>> 3, 0, $rawmpilen$i, 0) | 0;
if (!$32) {
$45 = _gpg_err_code_from_syserror() | 0;
if (!$45) break;
__gcry_mpi_free(HEAP32[$x >> 2] | 0);
__gcry_mpi_free(HEAP32[$y >> 2] | 0);
$$02 = $45;
break L12;
}
$35 = (__gcry_mpi_test_bit($27, 0) | 0) != 0;
$36 = HEAP32[$rawmpilen$i >> 2] | 0;
if ($35 & ($36 | 0) != 0) {
$39 = $32 + ($36 + -1) | 0;
HEAP8[$39 >> 0] = HEAPU8[$39 >> 0] | 128;
$44 = HEAP32[$rawmpilen$i >> 2] | 0;
} else $44 = $36;
HEAP32[$r_encpk >> 2] = $32;
HEAP32[$r_encpklen >> 2] = $44;
} while (0);
__gcry_mpi_snatch(HEAP32[$result >> 2] | 0, HEAP32[$x >> 2] | 0);
__gcry_mpi_snatch(HEAP32[$result + 4 >> 2] | 0, HEAP32[$y >> 2] | 0);
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 1) | 0;
$$02 = 0;
} else $$02 = $17; while (0);
$$2 = $$02;
STACKTOP = sp;
return $$2 | 0;
} while (0);
$61 = __gcry_malloc(($58 | 0) != 0 ? $58 : 1) | 0;
if (!$61) {
$$2 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$2 | 0;
}
$64 = HEAP32[$rawmpilen >> 2] | 0;
_memcpy($61 | 0, $buf$0 | 0, $64 | 0) | 0;
$65 = $64 >>> 1;
if (!$65) {
$80 = $64;
$rawmpi$1 = $61;
} else {
$67 = $64 + -1 | 0;
$i$01$i = 0;
do {
$68 = $61 + $i$01$i | 0;
$69 = HEAP8[$68 >> 0] | 0;
$71 = $61 + ($67 - $i$01$i) | 0;
HEAP8[$68 >> 0] = HEAP8[$71 >> 0] | 0;
HEAP8[$71 >> 0] = $69;
$i$01$i = $i$01$i + 1 | 0;
} while (($i$01$i | 0) != ($65 | 0));
$80 = $64;
$rawmpi$1 = $61;
}
}
do if ((label | 0) == 24) {
$77 = __gcry_mpi_get_buffer($pk, (HEAP32[$ctx + 12 >> 2] | 0) >>> 3, $rawmpilen, 0) | 0;
if ($77) {
$80 = HEAP32[$rawmpilen >> 2] | 0;
$rawmpi$1 = $77;
break;
}
$$2 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$2 | 0;
} while (0);
if (!$80) {
$88 = 0;
$sign$0 = 0;
} else {
$83 = HEAPU8[$rawmpi$1 >> 0] | 0;
HEAP8[$rawmpi$1 >> 0] = $83 & 127;
$88 = HEAP32[$rawmpilen >> 2] | 0;
$sign$0 = $83 >>> 7;
}
$86 = $result + 4 | 0;
__gcry_mpi_set_buffer(HEAP32[$86 >> 2] | 0, $rawmpi$1, $88, 0);
if (!$r_encpk) __gcry_free($rawmpi$1); else {
$91 = HEAP32[$rawmpilen >> 2] | 0;
if (($sign$0 | 0) != 0 & ($91 | 0) != 0) {
HEAP8[$rawmpi$1 >> 0] = HEAPU8[$rawmpi$1 >> 0] | 128;
$98 = HEAP32[$rawmpilen >> 2] | 0;
} else $98 = $91;
$97 = $98 >>> 1;
if ($97) {
$100 = $98 + -1 | 0;
$i$01$i$7 = 0;
do {
$101 = $rawmpi$1 + $i$01$i$7 | 0;
$102 = HEAP8[$101 >> 0] | 0;
$104 = $rawmpi$1 + ($100 - $i$01$i$7) | 0;
HEAP8[$101 >> 0] = HEAP8[$104 >> 0] | 0;
HEAP8[$104 >> 0] = $102;
$i$01$i$7 = $i$01$i$7 + 1 | 0;
} while (($i$01$i$7 | 0) != ($97 | 0));
}
HEAP32[$r_encpk >> 2] = $rawmpi$1;
if ($r_encpklen) HEAP32[$r_encpklen >> 2] = HEAP32[$rawmpilen >> 2];
}
$111 = __gcry_ecc_eddsa_recover_x(HEAP32[$result >> 2] | 0, HEAP32[$86 >> 2] | 0, $sign$0, $ctx) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 1) | 0;
$$2 = $111;
STACKTOP = sp;
return $$2 | 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, $16 = 0, $17 = 0, $27 = 0, $31 = 0, $41 = 0, $44 = 0, $47 = 0, $50 = 0, $65 = 0, $67 = 0, $68 = 0, $70 = 0, $75 = 0, $77 = 0, $78 = 0, $79 = 0, $81 = 0, $82 = 0, $83 = 0, $85 = 0, $92 = 0, $93 = 0, $99 = 0, $Ia = 0, $Ib = 0, $Q = 0, $digest = 0, $encpk = 0, $encpklen = 0, $hvec = 0, $i$01$i = 0, $i$01$i$6 = 0, $rc$1 = 0, $tbuf = 0, $tlen = 0, $tmp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176 | 0;
$tmp = sp + 100 | 0;
$Q = sp + 88 | 0;
$encpk = sp + 84 | 0;
$encpklen = sp + 80 | 0;
$tbuf = sp + 76 | 0;
$tlen = sp + 72 | 0;
$digest = sp + 104 | 0;
$hvec = sp + 24 | 0;
$Ia = sp + 12 | 0;
$Ib = sp;
HEAP32[$encpk >> 2] = 0;
HEAP32[$tbuf >> 2] = 0;
if (!$input) {
$$0 = 79;
STACKTOP = sp;
return $$0 | 0;
}
if (!(($r_in | 0) != 0 ? (HEAP32[$input + 12 >> 2] & 4 | 0) != 0 : 0)) {
$$0 = 79;
STACKTOP = sp;
return $$0 | 0;
}
if (!(($s_in | 0) != 0 ? (HEAP32[$r_in + 12 >> 2] & 4 | 0) != 0 : 0)) {
$$0 = 79;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[$s_in + 12 >> 2] & 4)) {
$$0 = 79;
STACKTOP = sp;
return $$0 | 0;
}
if (($hashalgo | 0) != 10) {
$$0 = 5;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_mpi_point_init($Q);
__gcry_mpi_point_init($Ia);
__gcry_mpi_point_init($Ib);
$16 = __gcry_mpi_new(0) | 0;
$17 = __gcry_mpi_new(0) | 0;
$27 = __gcry_mpi_ec_p_internal_new(HEAP32[$pkey >> 2] | 0, HEAP32[$pkey + 4 >> 2] | 0, 0, HEAP32[$pkey + 8 >> 2] | 0, HEAP32[$pkey + 12 >> 2] | 0, HEAP32[$pkey + 16 >> 2] | 0) | 0;
if ((HEAP32[$27 + 12 >> 2] & -8 | 0) != 256) {
$$0 = 63;
STACKTOP = sp;
return $$0 | 0;
}
$31 = __gcry_ecc_eddsa_decodepoint($pk, $27, $Q, $encpk, $encpklen) | 0;
do if (!$31) if (!(__gcry_mpi_ec_curve_point($Q, $27) | 0)) $rc$1 = 195; else {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35409, HEAP32[$encpk >> 2] | 0, HEAP32[$encpklen >> 2] | 0);
if ((HEAP32[$encpklen >> 2] | 0) == 32) {
$41 = __gcry_mpi_get_opaque($input, $tmp) | 0;
$44 = ((HEAP32[$tmp >> 2] | 0) + 7 | 0) >>> 3;
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35416, $41, $44);
$47 = __gcry_mpi_get_opaque($r_in, $tmp) | 0;
$50 = ((HEAP32[$tmp >> 2] | 0) + 7 | 0) >>> 3;
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(52651, $47, $50);
if (($50 | 0) == 32) {
HEAP32[$hvec + 12 >> 2] = $47;
HEAP32[$hvec + 4 >> 2] = 0;
HEAP32[$hvec + 8 >> 2] = 32;
HEAP32[$hvec + 28 >> 2] = HEAP32[$encpk >> 2];
HEAP32[$hvec + 20 >> 2] = 0;
HEAP32[$hvec + 24 >> 2] = HEAP32[$encpklen >> 2];
HEAP32[$hvec + 44 >> 2] = $41;
HEAP32[$hvec + 36 >> 2] = 0;
HEAP32[$hvec + 40 >> 2] = $44;
$65 = __gcry_md_hash_buffers(10, 0, $digest, $hvec, 3) | 0;
if (!$65) {
$i$01$i = 0;
do {
$67 = $digest + $i$01$i | 0;
$68 = HEAP8[$67 >> 0] | 0;
$70 = $digest + (63 - $i$01$i) | 0;
HEAP8[$67 >> 0] = HEAP8[$70 >> 0] | 0;
HEAP8[$70 >> 0] = $68;
$i$01$i = $i$01$i + 1 | 0;
} while (($i$01$i | 0) != 32);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(35435, $digest, 64);
__gcry_mpi_set_buffer($16, $digest, 64, 0);
$75 = __gcry_mpi_get_opaque_copy($s_in, $tmp) | 0;
$77 = (HEAP32[$tmp >> 2] | 0) + 7 | 0;
$78 = $77 >>> 3;
$79 = $77 >>> 4;
if ($79) {
$81 = $78 + -1 | 0;
$i$01$i$6 = 0;
do {
$82 = $75 + $i$01$i$6 | 0;
$83 = HEAP8[$82 >> 0] | 0;
$85 = $75 + ($81 - $i$01$i$6) | 0;
HEAP8[$82 >> 0] = HEAP8[$85 >> 0] | 0;
HEAP8[$85 >> 0] = $83;
$i$01$i$6 = $i$01$i$6 + 1 | 0;
} while (($i$01$i$6 | 0) != ($79 | 0));
}
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printhex(52658, $75, $78);
__gcry_mpi_set_buffer($17, $75, $78, 0);
__gcry_free($75);
if (($78 | 0) == 32) {
__gcry_mpi_ec_mul_point($Ia, $17, $pkey + 20 | 0, $27);
__gcry_mpi_ec_mul_point($Ib, $16, $Q, $27);
$92 = HEAP32[$Ib >> 2] | 0;
__gcry_mpi_neg($92, $92);
__gcry_mpi_ec_add_points($Ia, $Ia, $Ib, $27);
$93 = __gcry_ecc_eddsa_encodepoint($Ia, $27, $17, $16, 0, $tbuf, $tlen) | 0;
if (!$93) {
if ((HEAP32[$tlen >> 2] | 0) != 32) {
$rc$1 = 8;
break;
}
$99 = (_memcmp(HEAP32[$tbuf >> 2] | 0, $47, 32) | 0) == 0;
$rc$1 = $99 ? 0 : 8;
} else $rc$1 = $93;
} else $rc$1 = 139;
} else $rc$1 = $65;
} else $rc$1 = 139;
} else $rc$1 = 139;
} else $rc$1 = $31; while (0);
__gcry_free(HEAP32[$encpk >> 2] | 0);
__gcry_free(HEAP32[$tbuf >> 2] | 0);
__gcry_mpi_ec_free($27);
__gcry_mpi_release($17);
__gcry_mpi_release($16);
__gcry_mpi_point_free_parts($Ia);
__gcry_mpi_point_free_parts($Ib);
__gcry_mpi_point_free_parts($Q);
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_sexp_nth($list, $number) {
$list = $list | 0;
$number = $number | 0;
var $$02$ph97 = 0, $$1 = 0, $$lcssa = 0, $$lcssa117 = 0, $$lcssa123 = 0, $$lcssa124 = 0, $19 = 0, $21 = 0, $23 = 0, $25 = 0, $27 = 0, $4 = 0, $40 = 0, $42 = 0, $44 = 0, $45 = 0, $46 = 0, $52 = 0, $7 = 0, $9 = 0, $level$0$ph$be = 0, $level$0$ph11$us = 0, $level$0$ph11$us$lcssa = 0, $level$0$ph11$us$lcssa126 = 0, $level$0$ph99 = 0, $level$1$ph = 0, $level$2 = 0, $newlist$07$in65 = 0, $newlist$0766 = 0, $p$0$ph$be = 0, $p$0$ph$lcssa = 0, $p$0$ph10$us = 0, $p$0$ph98 = 0, $p$0$us$us = 0, $p$0$us$us$lcssa = 0, $p$1 = 0, $p$1$lcssa = 0, $p$1$lcssa114 = 0, $p$1$ph = 0, $p$1116 = 0, $p$1116$lcssa = 0, label = 0;
if (!$list) {
$$1 = 0;
return $$1 | 0;
}
if ((HEAP8[$list >> 0] | 0) != 3) {
$$1 = 0;
return $$1 | 0;
}
L7 : do if (($number | 0) > 0) {
$$02$ph97 = $number;
$level$0$ph99 = 0;
$p$0$ph98 = $list;
L8 : while (1) {
$level$0$ph11$us = $level$0$ph99;
$p$0$ph10$us = $p$0$ph98;
L10 : while (1) {
$p$0$us$us = $p$0$ph10$us;
L12 : while (1) {
$4 = $p$0$us$us + 1 | 0;
switch (HEAP8[$4 >> 0] | 0) {
case 0:
{
$$1 = 0;
break L8;
break;
}
case 1:
{
$level$0$ph11$us$lcssa = $level$0$ph11$us;
$p$0$us$us$lcssa = $p$0$us$us;
label = 9;
break L10;
break;
}
case 4:
{
$$lcssa124 = $4;
$level$0$ph11$us$lcssa126 = $level$0$ph11$us;
label = 11;
break L10;
break;
}
case 3:
{
$$lcssa123 = $4;
break L12;
break;
}
default:
$p$0$us$us = $4;
}
}
$level$0$ph11$us = $level$0$ph11$us + 1 | 0;
$p$0$ph10$us = $$lcssa123;
}
if ((label | 0) == 9) {
label = 0;
$9 = $p$0$us$us$lcssa + 2 | 0;
$level$0$ph$be = $level$0$ph11$us$lcssa;
$p$0$ph$be = $9 + (((HEAPU8[$9 >> 0] | HEAPU8[$9 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
} else if ((label | 0) == 11) {
label = 0;
$level$0$ph$be = $level$0$ph11$us$lcssa126 + -1 | 0;
$p$0$ph$be = $$lcssa124;
}
$$02$ph97 = ((($level$0$ph$be | 0) == 0) << 31 >> 31) + $$02$ph97 | 0;
if (($$02$ph97 | 0) <= 0) {
$p$0$ph$lcssa = $p$0$ph$be;
break L7;
} else {
$level$0$ph99 = $level$0$ph$be;
$p$0$ph98 = $p$0$ph$be;
}
}
return $$1 | 0;
} else $p$0$ph$lcssa = $list; while (0);
$7 = $p$0$ph$lcssa + 1 | 0;
L21 : do switch (HEAP8[$7 >> 0] | 0) {
case 1:
{
$19 = $p$0$ph$lcssa + 2 | 0;
$21 = (HEAPU8[$19 >> 0] | HEAPU8[$19 + 1 >> 0] << 8) & 65535;
$23 = __gcry_malloc($21 + 6 | 0) | 0;
if (!$23) {
$$1 = 0;
return $$1 | 0;
} else {
$44 = $23 + 1 | 0;
HEAP8[$23 >> 0] = 3;
$45 = $21 + 3 | 0;
_memcpy($44 | 0, $7 | 0, $45 | 0) | 0;
$46 = $44 + $45 | 0;
HEAP8[$46 >> 0] = 4;
HEAP8[$46 + 1 >> 0] = 0;
$newlist$07$in65 = $23;
$newlist$0766 = $23;
break L21;
}
break;
}
case 3:
{
$level$1$ph = 1;
$p$1$ph = $7;
L26 : while (1) {
$p$1 = $p$1$ph;
L28 : while (1) {
$25 = $p$1 + 1 | 0;
switch (HEAP8[$25 >> 0] | 0) {
case 0:
{
label = 18;
break L26;
break;
}
case 3:
{
$$lcssa = $25;
$p$1$lcssa = $p$1;
label = 16;
break L28;
break;
}
case 4:
{
$$lcssa117 = $25;
$p$1$lcssa114 = $p$1;
label = 17;
break L28;
break;
}
case 1:
break;
default:
{
$p$1 = $25;
continue L28;
}
}
$27 = $p$1 + 2 | 0;
$p$1 = $27 + (((HEAPU8[$27 >> 0] | HEAPU8[$27 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
if ((label | 0) == 16) {
label = 0;
$52 = $$lcssa;
$level$2 = $level$1$ph + 1 | 0;
$p$1116 = $p$1$lcssa;
} else if ((label | 0) == 17) {
label = 0;
$52 = $$lcssa117;
$level$2 = $level$1$ph + -1 | 0;
$p$1116 = $p$1$lcssa114;
}
if (!$level$2) {
$p$1116$lcssa = $p$1116;
break;
} else {
$level$1$ph = $level$2;
$p$1$ph = $52;
}
}
if ((label | 0) == 18) __gcry_bug(22147, 673, 22176);
$40 = $p$1116$lcssa + 2 - $7 & 65535;
$42 = __gcry_malloc($40 + 1 | 0) | 0;
if (!$42) {
$$1 = 0;
return $$1 | 0;
}
_memcpy($42 | 0, $7 | 0, $40 | 0) | 0;
HEAP8[$42 + $40 >> 0] = 0;
switch (HEAP8[$42 >> 0] | 0) {
case 3:
{
$newlist$07$in65 = $42;
$newlist$0766 = $42;
break L21;
break;
}
case 0:
break;
default:
{
$$1 = $42;
return $$1 | 0;
}
}
__gcry_sexp_release($42);
$$1 = 0;
return $$1 | 0;
}
default:
{
$$1 = 0;
return $$1 | 0;
}
} while (0);
if ((HEAP8[$newlist$07$in65 + 1 >> 0] | 0) != 4) {
$$1 = $newlist$0766;
return $$1 | 0;
}
__gcry_sexp_release($newlist$0766);
$$1 = 0;
return $$1 | 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$i = 0, $$1 = 0, $$lcssa = 0, $12 = 0, $23 = 0, $24 = 0, $27 = 0, $31 = 0, $36 = 0, $51 = 0, $59 = 0, $67 = 0, $7 = 0, $75 = 0, $83 = 0, $87 = 0, $aliasno$07$i = 0, $idx$08$i = 0, $idx$16$i = 0, $val$i$10 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer13 = sp + 40 | 0;
$vararg_buffer10 = sp + 32 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$val$i$10 = sp + 44 | 0;
$idx$08$i = 0;
while (1) {
if (!(_strcmp($name, HEAP32[1280 + ($idx$08$i * 48 | 0) >> 2] | 0) | 0)) {
$$0$i = $idx$08$i;
break;
}
$idx$08$i = $idx$08$i + 1 | 0;
if (($idx$08$i | 0) == 21) {
$87 = 2336;
$aliasno$07$i = 0;
label = 5;
break;
}
}
L4 : do if ((label | 0) == 5) {
while (1) {
label = 0;
$7 = $aliasno$07$i + 1 | 0;
if (!(_strcmp($name, HEAP32[2336 + ($aliasno$07$i << 3) + 4 >> 2] | 0) | 0)) {
$$lcssa = $87;
break;
}
if (($7 | 0) == 36) {
$$1 = 188;
label = 40;
break;
} else {
$87 = 2336 + ($7 << 3) | 0;
$aliasno$07$i = $7;
label = 5;
}
}
if ((label | 0) == 40) {
STACKTOP = sp;
return $$1 | 0;
}
$12 = HEAP32[$$lcssa >> 2] | 0;
$idx$16$i = 0;
while (1) {
if (!(_strcmp($12, HEAP32[1280 + ($idx$16$i * 48 | 0) >> 2] | 0) | 0)) {
$$0$i = $idx$16$i;
break L4;
}
$idx$16$i = $idx$16$i + 1 | 0;
if (($idx$16$i | 0) == 21) {
$$1 = 188;
break;
}
}
STACKTOP = sp;
return $$1 | 0;
} while (0);
if (($$0$i | 0) < 0) {
$$1 = 188;
STACKTOP = sp;
return $$1 | 0;
}
do if ($g) {
$23 = (HEAP32[1280 + ($$0$i * 48 | 0) + 36 >> 2] | 0) + 2 | 0;
$24 = _strlen($23) | 0;
$27 = (HEAP32[1280 + ($$0$i * 48 | 0) + 40 >> 2] | 0) + 2 | 0;
$31 = __gcry_malloc($24 + 5 + (_strlen($27) | 0) | 0) | 0;
if (!$31) {
$$1 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$1 | 0;
}
HEAP8[$31 >> 0] = HEAP8[24106] | 0;
HEAP8[$31 + 1 >> 0] = HEAP8[24107] | 0;
HEAP8[$31 + 2 >> 0] = HEAP8[24108] | 0;
HEAP8[$31 + 3 >> 0] = HEAP8[24109] | 0;
HEAP8[$31 + 4 >> 0] = HEAP8[24110] | 0;
_strcpy(___stpcpy($31 + 4 | 0, $23) | 0, $27) | 0;
__gcry_mpi_release(HEAP32[$g >> 2] | 0);
$36 = __gcry_mpi_scan($val$i$10, 4, $31, 0, 0) | 0;
if (!$36) {
HEAP32[$g >> 2] = HEAP32[$val$i$10 >> 2];
__gcry_free($31);
break;
} else {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($36) | 0;
__gcry_log_fatal(35288, $vararg_buffer);
}
} while (0);
if ($model) HEAP32[$model >> 2] = HEAP32[1280 + ($$0$i * 48 | 0) + 12 >> 2];
if ($dialect) HEAP32[$dialect >> 2] = HEAP32[1280 + ($$0$i * 48 | 0) + 16 >> 2];
do if ($p) {
__gcry_mpi_release(HEAP32[$p >> 2] | 0);
$51 = __gcry_mpi_scan($val$i$10, 4, HEAP32[1280 + ($$0$i * 48 | 0) + 20 >> 2] | 0, 0, 0) | 0;
if (!$51) {
HEAP32[$p >> 2] = HEAP32[$val$i$10 >> 2];
break;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($51) | 0;
__gcry_log_fatal(35288, $vararg_buffer1);
}
} while (0);
do if ($a) {
__gcry_mpi_release(HEAP32[$a >> 2] | 0);
$59 = __gcry_mpi_scan($val$i$10, 4, HEAP32[1280 + ($$0$i * 48 | 0) + 24 >> 2] | 0, 0, 0) | 0;
if (!$59) {
HEAP32[$a >> 2] = HEAP32[$val$i$10 >> 2];
break;
} else {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($59) | 0;
__gcry_log_fatal(35288, $vararg_buffer4);
}
} while (0);
do if ($b) {
__gcry_mpi_release(HEAP32[$b >> 2] | 0);
$67 = __gcry_mpi_scan($val$i$10, 4, HEAP32[1280 + ($$0$i * 48 | 0) + 28 >> 2] | 0, 0, 0) | 0;
if (!$67) {
HEAP32[$b >> 2] = HEAP32[$val$i$10 >> 2];
break;
} else {
HEAP32[$vararg_buffer7 >> 2] = _gpg_strerror($67) | 0;
__gcry_log_fatal(35288, $vararg_buffer7);
}
} while (0);
do if ($n) {
__gcry_mpi_release(HEAP32[$n >> 2] | 0);
$75 = __gcry_mpi_scan($val$i$10, 4, HEAP32[1280 + ($$0$i * 48 | 0) + 32 >> 2] | 0, 0, 0) | 0;
if (!$75) {
HEAP32[$n >> 2] = HEAP32[$val$i$10 >> 2];
break;
} else {
HEAP32[$vararg_buffer10 >> 2] = _gpg_strerror($75) | 0;
__gcry_log_fatal(35288, $vararg_buffer10);
}
} while (0);
if (!$h) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
__gcry_mpi_release(HEAP32[$h >> 2] | 0);
$83 = __gcry_mpi_scan($val$i$10, 4, HEAP32[1280 + ($$0$i * 48 | 0) + 44 >> 2] | 0, 0, 0) | 0;
if ($83) {
HEAP32[$vararg_buffer13 >> 2] = _gpg_strerror($83) | 0;
__gcry_log_fatal(35288, $vararg_buffer13);
}
HEAP32[$h >> 2] = HEAP32[$val$i$10 >> 2];
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
function __gcry_rngfips_selftest($report) {
$report = $report | 0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $55 = 0, $6 = 0, $69 = 0, $82 = 0, $9 = 0, $91 = 0, $94 = 0, $errtxt$0$i = 0, $result$i = 0, $tvidx$06$i = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$result$i = sp + 32 | 0;
__gcry_randomize($result$i, 8, 1);
if (!(HEAP32[17570] | 0)) __gcry_assert_failed(50910, 50726, 912, 50940);
$2 = __gcry_xcalloc(1, 68) | 0;
HEAP8[$2 >> 0] = 17;
$3 = $2 + 16 | 0;
HEAP8[$3 >> 0] = 42;
$4 = $2 + 33 | 0;
HEAP8[$4 >> 0] = -119;
$5 = $2 + 50 | 0;
HEAP8[$5 >> 0] = -4;
$6 = _gpgrt_lock_lock(12568) | 0;
if ($6) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($6) | 0;
__gcry_log_fatal(50662, $vararg_buffer);
}
HEAP32[17569] = 1;
$9 = $2 + 4 | 0;
$10 = $2 + 60 | 0;
$11 = $2 + 17 | 0;
$12 = $2 + 8 | 0;
$13 = $2 + 64 | 0;
$14 = $2 + 52 | 0;
$15 = $2 + 56 | 0;
$tvidx$06$i = 0;
while (1) {
if (__gcry_cipher_open($9, 7, 1, 1) | 0) {
$errtxt$0$i = 51310;
label = 18;
break;
}
if (__gcry_cipher_setkey(HEAP32[$9 >> 2] | 0, 50953 + ($tvidx$06$i * 96 | 0) | 0, 16) | 0) {
$errtxt$0$i = 51348;
label = 18;
break;
}
HEAP32[$10 >> 2] = _getpid() | 0;
dest = $11;
src = 50953 + ($tvidx$06$i * 96 | 0) + 32 | 0;
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));
HEAP8[$12 >> 0] = HEAP8[$12 >> 0] | 1;
HEAP32[$13 >> 2] = _getpid() | 0;
HEAP32[$14 >> 2] = 50953 + ($tvidx$06$i * 96 | 0) + 16;
HEAP32[$15 >> 2] = HEAPU8[50953 + ($tvidx$06$i * 96 | 0) + 29 >> 0] << 16 | HEAPU8[50953 + ($tvidx$06$i * 96 | 0) + 28 >> 0] << 24 | HEAPU8[50953 + ($tvidx$06$i * 96 | 0) + 30 >> 0] << 8 | HEAPU8[50953 + ($tvidx$06$i * 96 | 0) + 31 >> 0];
if (_x931_aes_driver($result$i, 16, $2) | 0) {
$errtxt$0$i = 51241;
label = 18;
break;
}
if (_memcmp($result$i, 50953 + ($tvidx$06$i * 96 | 0) + 48 | 0, 16) | 0) {
$errtxt$0$i = 51272;
label = 18;
break;
}
if (_x931_aes_driver($result$i, 16, $2) | 0) {
$errtxt$0$i = 51241;
label = 18;
break;
}
if (_memcmp($result$i, 50953 + ($tvidx$06$i * 96 | 0) + 64 | 0, 16) | 0) {
$errtxt$0$i = 51272;
label = 18;
break;
}
if (_x931_aes_driver($result$i, 16, $2) | 0) {
$errtxt$0$i = 51241;
label = 18;
break;
}
if (_memcmp($result$i, 50953 + ($tvidx$06$i * 96 | 0) + 80 | 0, 16) | 0) {
$errtxt$0$i = 51272;
label = 18;
break;
}
$91 = HEAP32[$10 >> 2] | 0;
if (($91 | 0) != (_getpid() | 0)) {
$errtxt$0$i = 51374;
label = 18;
break;
}
$55 = HEAP32[$13 >> 2] | 0;
if (($55 | 0) != (_getpid() | 0)) {
$errtxt$0$i = 51374;
label = 18;
break;
}
__gcry_cipher_close(HEAP32[$9 >> 2] | 0);
HEAP32[$9 >> 2] = 0;
HEAP8[$12 >> 0] = HEAP8[$12 >> 0] & -2;
if ((HEAP8[$2 >> 0] | 0) != 17) {
label = 17;
break;
}
if ((HEAP8[$3 >> 0] | 0) != 42) {
label = 17;
break;
}
if ((HEAP8[$4 >> 0] | 0) != -119) {
label = 17;
break;
}
$tvidx$06$i = $tvidx$06$i + 1 | 0;
if ((HEAP8[$5 >> 0] | 0) != -4) {
label = 17;
break;
}
if ($tvidx$06$i >>> 0 >= 3) {
$errtxt$0$i = 0;
label = 18;
break;
}
}
if ((label | 0) == 17) {
HEAP32[$vararg_buffer1 >> 2] = $2;
__gcry_log_fatal(50828, $vararg_buffer1);
} else if ((label | 0) == 18) {
HEAP32[17569] = 0;
$69 = _gpgrt_lock_unlock(12568) | 0;
if ($69) {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($69) | 0;
__gcry_log_fatal(50874, $vararg_buffer4);
}
__gcry_cipher_close(HEAP32[$9 >> 2] | 0);
if ((HEAP8[$2 >> 0] | 0) != 17) {
HEAP32[$vararg_buffer7 >> 2] = $2;
__gcry_log_fatal(50828, $vararg_buffer7);
}
if ((HEAP8[$3 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer7 >> 2] = $2;
__gcry_log_fatal(50828, $vararg_buffer7);
}
if ((HEAP8[$4 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer7 >> 2] = $2;
__gcry_log_fatal(50828, $vararg_buffer7);
}
if ((HEAP8[$5 >> 0] | 0) != -4) {
HEAP32[$vararg_buffer7 >> 2] = $2;
__gcry_log_fatal(50828, $vararg_buffer7);
}
__gcry_free($2);
$82 = ($errtxt$0$i | 0) != 0;
if (!(($report | 0) != 0 & $82)) {
$94 = $82 ? 16777266 : 0;
STACKTOP = sp;
return $94 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](51396, 0, 51403, $errtxt$0$i);
$94 = $82 ? 16777266 : 0;
STACKTOP = sp;
return $94 | 0;
}
return 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 $$015$i$i$i = 0, $$023$i$i$i = 0, $$lcssa = 0, $0 = 0, $12 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $4 = 0, $6 = 0, $8 = 0, $burn$06$i$i$i = 0, $n$04$i$i$i = 0, $out$in = 0, $outsize$inlen = 0, $rc$0$i = 0, $rc$0$i4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = ($in | 0) == 0;
$outsize$inlen = $0 ? $outsize : $inlen;
$out$in = $0 ? $out : $in;
$2 = HEAP32[$h + 48 >> 2] | 0;
L1 : do if (($2 | 0) < 6) switch ($2 | 0) {
case 1:
{
$4 = HEAP32[$h + 12 >> 2] | 0;
$6 = HEAP32[$4 + 36 >> 2] | 0;
$8 = HEAP32[$4 + 20 >> 2] | 0;
if ($outsize$inlen >>> 0 > $outsize >>> 0) {
$rc$0$i = 200;
break L1;
}
if (($outsize$inlen >>> 0) % ($8 >>> 0) | 0) {
$rc$0$i = 139;
break L1;
}
$12 = ($outsize$inlen >>> 0) / ($8 >>> 0) | 0;
if (!$12) {
$rc$0$i4 = 0;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
$14 = $h + 496 | 0;
$$015$i$i$i = $out;
$$023$i$i$i = $out$in;
$burn$06$i$i$i = 0;
$n$04$i$i$i = 0;
while (1) {
$15 = FUNCTION_TABLE_iiii[$6 & 63]($14, $$015$i$i$i, $$023$i$i$i) | 0;
$17 = $15 >>> 0 > $burn$06$i$i$i >>> 0 ? $15 : $burn$06$i$i$i;
$n$04$i$i$i = $n$04$i$i$i + 1 | 0;
if ($n$04$i$i$i >>> 0 >= $12 >>> 0) {
$$lcssa = $17;
break;
} else {
$$015$i$i$i = $$015$i$i$i + $8 | 0;
$$023$i$i$i = $$023$i$i$i + $8 | 0;
$burn$06$i$i$i = $17;
}
}
if (!$$lcssa) {
$rc$0$i4 = 0;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
___gcry_burn_stack($$lcssa + 16 | 0);
$rc$0$i4 = 0;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
case 3:
{
$rc$0$i = __gcry_cipher_cbc_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 2:
{
$rc$0$i = __gcry_cipher_cfb_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 5:
{
$rc$0$i = __gcry_cipher_ofb_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 4:
{
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$h + 12 >> 2] | 0) + 44 >> 2] & 1]($h + 496 | 0, $out, $out$in, $outsize$inlen);
$rc$0$i4 = 0;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
case 0:
{
if (!(__gcry_fips_mode() | 0)) if (__gcry_get_debug_flag(0) | 0) {
if (($out$in | 0) == ($out | 0)) {
$rc$0$i4 = 0;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
_memmove($out | 0, $out$in | 0, $outsize$inlen | 0) | 0;
$rc$0$i4 = 0;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
__gcry_fips_signal_error(23886, 875, 23895, 0, 23910);
$rc$0$i = 71;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23932, $vararg_buffer);
}
} else {
if (($2 | 0) < 9) switch ($2 | 0) {
case 6:
{
$rc$0$i = __gcry_cipher_ctr_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 7:
{
$rc$0$i = __gcry_cipher_aeswrap_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 8:
{
$rc$0$i = __gcry_cipher_ccm_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23932, $vararg_buffer);
}
}
if (($2 | 0) < 11) switch ($2 | 0) {
case 9:
{
$rc$0$i = __gcry_cipher_gcm_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 10:
{
$rc$0$i = __gcry_cipher_poly1305_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23932, $vararg_buffer);
}
}
if (($2 | 0) >= 65537) {
switch ($2 | 0) {
case 65537:
{
$rc$0$i = 71;
break L1;
break;
}
default:
{}
}
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23932, $vararg_buffer);
}
switch ($2 | 0) {
case 11:
{
$rc$0$i = __gcry_cipher_ocb_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23932, $vararg_buffer);
}
}
} while (0);
if (!(($out | 0) != 0 & ($rc$0$i | 0) != 0)) {
$rc$0$i4 = $rc$0$i;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
_memset($out | 0, 66, $outsize | 0) | 0;
$rc$0$i4 = $rc$0$i;
STACKTOP = sp;
return $rc$0$i4 | 0;
}
function __gcry_ecc_get_mpi($name, $ec, $copy) {
$name = $name | 0;
$ec = $ec | 0;
$copy = $copy | 0;
var $$1 = 0, $0 = 0, $100 = 0, $111 = 0, $114 = 0, $119 = 0, $130 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $139 = 0, $141 = 0, $143 = 0, $16 = 0, $27 = 0, $38 = 0, $49 = 0, $5 = 0, $60 = 0, $71 = 0, $73 = 0, $84 = 0, $87 = 0, $98 = 0, $encpk = 0, $encpklen = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$encpk = sp + 4 | 0;
$encpklen = sp;
$0 = HEAP8[$name >> 0] | 0;
L1 : do if (!($0 << 24 >> 24)) $$1 = 0; else {
if (!(_strcmp($name, 46610) | 0)) {
$5 = HEAP32[$ec + 16 >> 2] | 0;
if ($5) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$5 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $5;
break;
}
$$1 = __gcry_mpi_copy($5) | 0;
break;
}
}
if (!(_strcmp($name, 38733) | 0)) {
$16 = HEAP32[$ec + 20 >> 2] | 0;
if ($16) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$16 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $16;
break;
}
$$1 = __gcry_mpi_copy($16) | 0;
break;
}
}
if (!(_strcmp($name, 24119) | 0)) {
$27 = HEAP32[$ec + 24 >> 2] | 0;
if ($27) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$27 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $27;
break;
}
$$1 = __gcry_mpi_copy($27) | 0;
break;
}
}
if (!(_strcmp($name, 38737) | 0)) {
$38 = HEAP32[$ec + 32 >> 2] | 0;
if ($38) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$38 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $38;
break;
}
$$1 = __gcry_mpi_copy($38) | 0;
break;
}
}
if (!(_strcmp($name, 24123) | 0)) {
$49 = HEAP32[$ec + 36 >> 2] | 0;
if ($49) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$49 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $49;
break;
}
$$1 = __gcry_mpi_copy($49) | 0;
break;
}
}
if (!(_strcmp($name, 24125) | 0)) {
$60 = HEAP32[$ec + 44 >> 2] | 0;
if ($60) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$60 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $60;
break;
}
$$1 = __gcry_mpi_copy($60) | 0;
break;
}
}
if (!(_strcmp($name, 24224) | 0)) {
$71 = HEAP32[$ec + 28 >> 2] | 0;
if ($71) {
$73 = HEAP32[$71 >> 2] | 0;
if ($73) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$73 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $73;
break;
}
$$1 = __gcry_mpi_copy($73) | 0;
break;
}
}
}
if (!(_strcmp($name, 24228) | 0)) {
$84 = HEAP32[$ec + 28 >> 2] | 0;
if ($84) {
$87 = HEAP32[$84 + 4 >> 2] | 0;
if ($87) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$87 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $87;
break;
}
$$1 = __gcry_mpi_copy($87) | 0;
break;
}
}
}
if (!(_strcmp($name, 24232) | 0)) {
$98 = HEAP32[$ec + 40 >> 2] | 0;
if ($98) {
$100 = HEAP32[$98 >> 2] | 0;
if ($100) {
if (!(($copy | 0) != 0 ? 1 : (HEAP32[$100 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $100;
break;
}
$$1 = __gcry_mpi_copy($100) | 0;
break;
}
}
}
if (!(_strcmp($name, 24236) | 0)) {
$111 = HEAP32[$ec + 40 >> 2] | 0;
if ($111) {
$114 = HEAP32[$111 + 4 >> 2] | 0;
if ($114) {
$119 = HEAP32[(HEAP32[$ec + 28 >> 2] | 0) + 4 >> 2] | 0;
if ($119) if (!(($copy | 0) != 0 ? 1 : (HEAP32[$119 + 12 >> 2] & 32 | 0) == 0)) {
$$1 = $114;
break;
}
$$1 = __gcry_mpi_copy($114) | 0;
break;
}
}
}
if (!(_strcmp($name, 24121) | 0)) {
$130 = HEAP32[$ec + 28 >> 2] | 0;
if ($130) {
$$1 = __gcry_mpi_ec_ec2os($130, $ec) | 0;
break;
}
}
if ($0 << 24 >> 24 == 113) {
$134 = $name + 1 | 0;
$135 = HEAP8[$134 >> 0] | 0;
switch ($135 << 24 >> 24) {
case 64:
case 0:
break;
default:
{
$$1 = 0;
break L1;
}
}
$136 = $ec + 40 | 0;
$137 = HEAP32[$136 >> 2] | 0;
if (!$137) {
$139 = __gcry_ecc_compute_public(0, $ec, 0, 0) | 0;
HEAP32[$136 >> 2] = $139;
if (!$139) {
$$1 = 0;
break;
}
$141 = HEAP8[$134 >> 0] | 0;
$143 = $139;
} else {
$141 = $135;
$143 = $137;
}
if ($141 << 24 >> 24 != 64) {
$$1 = __gcry_mpi_ec_ec2os($143, $ec) | 0;
break;
}
if (!(_strcmp($name + 2 | 0, 49275) | 0)) if ((HEAP32[$ec >> 2] | 0) == 2) if (!(__gcry_ecc_eddsa_encodepoint($143, $ec, 0, 0, 0, $encpk, $encpklen) | 0)) {
$$1 = __gcry_mpi_set_opaque(0, HEAP32[$encpk >> 2] | 0, HEAP32[$encpklen >> 2] << 3) | 0;
break;
} else {
$$1 = 0;
break;
} else $$1 = 0; else $$1 = 0;
} else $$1 = 0;
} while (0);
STACKTOP = sp;
return $$1 | 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 $$01$i = 0, $$01$i$3 = 0, $$04$i$1$pn = 0, $$04$i$pn = 0, $$lcssa = 0, $$lcssa82 = 0, $$lcssa83 = 0, $$lcssa84 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $22 = 0, $24 = 0, $29 = 0, $31 = 0, $34 = 0, $36 = 0, $38 = 0, $4 = 0, $40 = 0, $46 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $64 = 0, $73 = 0, $79 = 0, $81 = 0, $_i$044 = 0, $_i1$043 = 0, $cy$0 = 0, $i$0$in$i = 0, $i$0$in$i$17 = 0, $negflg$0 = 0, $negflg$1 = 0, label = 0;
if ($size & 1) {
$2 = $size + -1 | 0;
if (($size | 0) < 17) _mul_n_basecase($prodp, $up, $vp, $2); else _mul_n($prodp, $up, $vp, $2, $tspace);
$4 = $prodp + ($2 << 2) | 0;
HEAP32[$prodp + ($2 << 1 << 2) >> 2] = __gcry_mpih_addmul_1($4, $up, $2, HEAP32[$vp + ($2 << 2) >> 2] | 0) | 0;
HEAP32[$prodp + ($2 + $size << 2) >> 2] = __gcry_mpih_addmul_1($4, $vp, $size, HEAP32[$up + ($2 << 2) >> 2] | 0) | 0;
return;
}
$15 = $size >> 1;
$16 = ($15 | 0) < 16;
$17 = $prodp + ($size << 2) | 0;
$18 = $up + ($15 << 2) | 0;
$19 = $vp + ($15 << 2) | 0;
if ($16) {
_mul_n_basecase($17, $18, $19, $15);
$i$0$in$i = $15;
} else {
_mul_n($17, $18, $19, $15, $tspace);
$i$0$in$i = $15;
}
while (1) {
if (($i$0$in$i | 0) <= 0) {
label = 12;
break;
}
$i$0$in$i = $i$0$in$i + -1 | 0;
$22 = HEAP32[$18 + ($i$0$in$i << 2) >> 2] | 0;
$24 = HEAP32[$up + ($i$0$in$i << 2) >> 2] | 0;
if (($22 | 0) != ($24 | 0)) {
$$lcssa83 = $22;
$$lcssa84 = $24;
label = 11;
break;
}
}
if ((label | 0) == 11) if ($$lcssa83 >>> 0 > $$lcssa84 >>> 0) label = 12; else {
__gcry_mpih_sub_n($prodp, $up, $18, $15) | 0;
$negflg$0 = 1;
}
if ((label | 0) == 12) {
__gcry_mpih_sub_n($prodp, $18, $up, $15) | 0;
$negflg$0 = 0;
}
$i$0$in$i$17 = $15;
while (1) {
if (($i$0$in$i$17 | 0) <= 0) {
label = 18;
break;
}
$i$0$in$i$17 = $i$0$in$i$17 + -1 | 0;
$29 = HEAP32[$19 + ($i$0$in$i$17 << 2) >> 2] | 0;
$31 = HEAP32[$vp + ($i$0$in$i$17 << 2) >> 2] | 0;
if (($29 | 0) != ($31 | 0)) {
$$lcssa = $29;
$$lcssa82 = $31;
label = 17;
break;
}
}
if ((label | 0) == 17) if ($$lcssa >>> 0 > $$lcssa82 >>> 0) label = 18; else {
$36 = $prodp + ($15 << 2) | 0;
__gcry_mpih_sub_n($36, $vp, $19, $15) | 0;
$38 = $36;
$negflg$1 = $negflg$0;
}
if ((label | 0) == 18) {
$34 = $prodp + ($15 << 2) | 0;
__gcry_mpih_sub_n($34, $19, $vp, $15) | 0;
$38 = $34;
$negflg$1 = $negflg$0 ^ 1;
}
if ($16) {
_mul_n_basecase($tspace, $prodp, $38, $15);
if (($15 | 0) > 0) label = 23; else $81 = 0;
} else {
_mul_n($tspace, $prodp, $38, $15, $tspace + ($size << 2) | 0);
label = 23;
}
if ((label | 0) == 23) {
$40 = $prodp + ($15 << 2) | 0;
$_i$044 = 0;
do {
HEAP32[$40 + ($_i$044 << 2) >> 2] = HEAP32[$17 + ($_i$044 << 2) >> 2];
$_i$044 = $_i$044 + 1 | 0;
} while (($_i$044 | 0) != ($15 | 0));
$81 = 1;
}
$46 = __gcry_mpih_add_n($17, $17, $17 + ($15 << 2) | 0, $15) | 0;
if (!$negflg$1) $cy$0 = (__gcry_mpih_add_n($38, $38, $tspace, $size) | 0) + $46 | 0; else $cy$0 = $46 - (__gcry_mpih_sub_n($38, $38, $tspace, $size) | 0) | 0;
if ($16) _mul_n_basecase($tspace, $up, $vp, $15); else _mul_n($tspace, $up, $vp, $15, $tspace + ($size << 2) | 0);
$54 = (__gcry_mpih_add_n($38, $38, $tspace, $size) | 0) + $cy$0 | 0;
L46 : do if ($54) {
$57 = $prodp + ($15 << 2) + ($size << 2) | 0;
$58 = HEAP32[$57 >> 2] | 0;
$59 = $58 + $54 | 0;
HEAP32[$57 >> 2] = $59;
if ($59 >>> 0 < $58 >>> 0) {
$$01$i$3 = $15;
$$04$i$1$pn = $57;
do {
$$04$i$1$pn = $$04$i$1$pn + 4 | 0;
$$01$i$3 = $$01$i$3 + -1 | 0;
if (!$$01$i$3) break L46;
$64 = (HEAP32[$$04$i$1$pn >> 2] | 0) + 1 | 0;
HEAP32[$$04$i$1$pn >> 2] = $64;
} while (($64 | 0) == 0);
}
} while (0);
if ($81) {
$_i1$043 = 0;
do {
HEAP32[$prodp + ($_i1$043 << 2) >> 2] = HEAP32[$tspace + ($_i1$043 << 2) >> 2];
$_i1$043 = $_i1$043 + 1 | 0;
} while (($_i1$043 | 0) != ($15 | 0));
}
if (!(__gcry_mpih_add_n($38, $38, $tspace + ($15 << 2) | 0, $15) | 0)) return;
$73 = HEAP32[$17 >> 2] | 0;
HEAP32[$17 >> 2] = $73 + 1;
if (($73 | 0) == -1) {
$$01$i = $size;
$$04$i$pn = $17;
} else return;
while (1) {
$$04$i$pn = $$04$i$pn + 4 | 0;
$$01$i = $$01$i + -1 | 0;
if (!$$01$i) {
label = 41;
break;
}
$79 = (HEAP32[$$04$i$pn >> 2] | 0) + 1 | 0;
HEAP32[$$04$i$pn >> 2] = $79;
if ($79) {
label = 41;
break;
}
}
if ((label | 0) == 41) return;
}
function _selftest_fips_128_38a($requested_mode) {
$requested_mode = $requested_mode | 0;
var $$0 = 0, $10 = 0, $12 = 0, $18 = 0, $19 = 0, $20 = 0, $22 = 0, $29 = 0, $3 = 0, $35 = 0, $40 = 0, $54 = 0, $63 = 0, $66 = 0, $75 = 0, $78 = 0, $9 = 0, $hddec = 0, $hdenc = 0, $scratch = 0, $tvi$010$lcssa = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$scratch = sp + 8 | 0;
$hdenc = sp + 4 | 0;
$hddec = sp;
HEAP32[$hdenc >> 2] = 0;
HEAP32[$hddec >> 2] = 0;
if (($requested_mode | 0) == 2) $tvi$010$lcssa = 0; else if (($requested_mode | 0) == 5) $tvi$010$lcssa = 1; else {
__gcry_cipher_close(0);
__gcry_cipher_close(0);
$$0 = 38062;
STACKTOP = sp;
return $$0 | 0;
}
$3 = HEAP32[4628 + ($tvi$010$lcssa * 164 | 0) >> 2] | 0;
if (__gcry_cipher_open($hdenc, 7, $3, 0) | 0) {
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38089;
STACKTOP = sp;
return $$0 | 0;
}
$9 = (__gcry_cipher_open($hddec, 7, $3, 0) | 0) == 0;
$10 = HEAP32[$hdenc >> 2] | 0;
if (!$9) {
__gcry_cipher_close($10);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38089;
STACKTOP = sp;
return $$0 | 0;
}
$12 = 4628 + ($tvi$010$lcssa * 164 | 0) + 4 | 0;
if (!(__gcry_cipher_setkey($10, $12, 16) | 0)) {
$18 = (__gcry_cipher_setkey(HEAP32[$hddec >> 2] | 0, $12, 16) | 0) == 0;
$19 = HEAP32[$hdenc >> 2] | 0;
if ($18) {
$22 = 4628 + ($tvi$010$lcssa * 164 | 0) + 20 | 0;
if (!(__gcry_cipher_setiv($19, $22, 16) | 0)) if (!(__gcry_cipher_setiv(HEAP32[$hddec >> 2] | 0, $22, 16) | 0)) {
$29 = 4628 + ($tvi$010$lcssa * 164 | 0) + 36 | 0;
L20 : do if (!(__gcry_cipher_encrypt(HEAP32[$hdenc >> 2] | 0, $scratch, 16, $29, 16) | 0)) {
$40 = 4628 + ($tvi$010$lcssa * 164 | 0) + 52 | 0;
L22 : do if (!(_memcmp($scratch, $40, 16) | 0)) {
L24 : do if (!(__gcry_cipher_decrypt(HEAP32[$hddec >> 2] | 0, $scratch, 16, $40, 16) | 0)) {
do if (!(_memcmp($scratch, $29, 16) | 0)) {
$35 = 4628 + ($tvi$010$lcssa * 164 | 0) + 68 | 0;
if (__gcry_cipher_encrypt(HEAP32[$hdenc >> 2] | 0, $scratch, 16, $35, 16) | 0) break L20;
$54 = 4628 + ($tvi$010$lcssa * 164 | 0) + 84 | 0;
if (_memcmp($scratch, $54, 16) | 0) break L22;
if (__gcry_cipher_decrypt(HEAP32[$hddec >> 2] | 0, $scratch, 16, $54, 16) | 0) break L24;
if (_memcmp($scratch, $35, 16) | 0) break;
$63 = 4628 + ($tvi$010$lcssa * 164 | 0) + 100 | 0;
if (__gcry_cipher_encrypt(HEAP32[$hdenc >> 2] | 0, $scratch, 16, $63, 16) | 0) break L20;
$66 = 4628 + ($tvi$010$lcssa * 164 | 0) + 116 | 0;
if (_memcmp($scratch, $66, 16) | 0) break L22;
if (__gcry_cipher_decrypt(HEAP32[$hddec >> 2] | 0, $scratch, 16, $66, 16) | 0) break L24;
if (_memcmp($scratch, $63, 16) | 0) break;
$75 = 4628 + ($tvi$010$lcssa * 164 | 0) + 132 | 0;
if (__gcry_cipher_encrypt(HEAP32[$hdenc >> 2] | 0, $scratch, 16, $75, 16) | 0) break L20;
$78 = 4628 + ($tvi$010$lcssa * 164 | 0) + 148 | 0;
if (_memcmp($scratch, $78, 16) | 0) break L22;
if (__gcry_cipher_decrypt(HEAP32[$hddec >> 2] | 0, $scratch, 16, $78, 16) | 0) break L24;
if (_memcmp($scratch, $75, 16) | 0) break;
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} while (0);
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38158;
STACKTOP = sp;
return $$0 | 0;
} while (0);
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38142;
STACKTOP = sp;
return $$0 | 0;
} while (0);
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38125;
STACKTOP = sp;
return $$0 | 0;
} while (0);
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38109;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_cipher_close(HEAP32[$hdenc >> 2] | 0);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38102;
STACKTOP = sp;
return $$0 | 0;
} else $20 = $19;
} else $20 = HEAP32[$hdenc >> 2] | 0;
__gcry_cipher_close($20);
__gcry_cipher_close(HEAP32[$hddec >> 2] | 0);
$$0 = 38094;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_hmac256_new($key, $keylen) {
$key = $key | 0;
$keylen = $keylen | 0;
var $$3 = 0, $0 = 0, $11 = 0, $13 = 0, $15 = 0, $27 = 0, $28 = 0, $33 = 0, $i$09 = 0, $ipad = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$ipad = sp;
$0 = _malloc(172) | 0;
if (!$0) {
$$3 = 0;
STACKTOP = sp;
return $$3 | 0;
}
HEAP32[$0 >> 2] = 1779033703;
HEAP32[$0 + 4 >> 2] = -1150833019;
HEAP32[$0 + 8 >> 2] = 1013904242;
HEAP32[$0 + 12 >> 2] = -1521486534;
HEAP32[$0 + 16 >> 2] = 1359893119;
HEAP32[$0 + 20 >> 2] = -1694144372;
HEAP32[$0 + 24 >> 2] = 528734635;
HEAP32[$0 + 28 >> 2] = 1541459225;
HEAP32[$0 + 32 >> 2] = 0;
HEAP32[$0 + 36 >> 2] = 0;
$11 = $0 + 40 | 0;
HEAP8[$11 >> 0] = 0;
if (!$key) {
$$3 = $0;
STACKTOP = sp;
return $$3 | 0;
}
dest = $ipad;
stop = dest + 64 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
$13 = $0 + 105 | 0;
dest = $13;
stop = dest + 64 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
do if ($keylen >>> 0 < 65) {
_memcpy($ipad | 0, $key | 0, $keylen | 0) | 0;
_memcpy($13 | 0, $key | 0, $keylen | 0) | 0;
$i$09 = 0;
} else {
$15 = _malloc(172) | 0;
if ($15) {
HEAP32[$15 >> 2] = 1779033703;
HEAP32[$15 + 4 >> 2] = -1150833019;
HEAP32[$15 + 8 >> 2] = 1013904242;
HEAP32[$15 + 12 >> 2] = -1521486534;
HEAP32[$15 + 16 >> 2] = 1359893119;
HEAP32[$15 + 20 >> 2] = -1694144372;
HEAP32[$15 + 24 >> 2] = 528734635;
HEAP32[$15 + 28 >> 2] = 1541459225;
HEAP32[$15 + 32 >> 2] = 0;
HEAP32[$15 + 36 >> 2] = 0;
HEAP8[$15 + 40 >> 0] = 0;
__gcry_hmac256_update($15, $key, $keylen);
_finalize($15);
$27 = $15 + 41 | 0;
dest = $ipad;
src = $27;
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));
dest = $13;
src = $27;
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));
__gcry_hmac256_release($15);
$i$09 = 0;
break;
}
_free($0);
$$3 = 0;
STACKTOP = sp;
return $$3 | 0;
} while (0);
do {
$28 = $ipad + $i$09 | 0;
HEAP8[$28 >> 0] = (HEAPU8[$28 >> 0] | 0) ^ 54;
$33 = $13 + $i$09 | 0;
HEAP8[$33 >> 0] = (HEAPU8[$33 >> 0] | 0) ^ 92;
$i$09 = $i$09 + 1 | 0;
} while (($i$09 | 0) != 64);
HEAP8[$11 >> 0] = HEAP8[$11 >> 0] | 2;
__gcry_hmac256_update($0, $ipad, 64);
HEAP8[$ipad >> 0] = 0;
HEAP8[$ipad + 1 >> 0] = 0;
HEAP8[$ipad + 2 >> 0] = 0;
HEAP8[$ipad + 3 >> 0] = 0;
HEAP8[$ipad + 4 >> 0] = 0;
HEAP8[$ipad + 5 >> 0] = 0;
HEAP8[$ipad + 6 >> 0] = 0;
HEAP8[$ipad + 7 >> 0] = 0;
HEAP8[$ipad + 8 >> 0] = 0;
HEAP8[$ipad + 9 >> 0] = 0;
HEAP8[$ipad + 10 >> 0] = 0;
HEAP8[$ipad + 11 >> 0] = 0;
HEAP8[$ipad + 12 >> 0] = 0;
HEAP8[$ipad + 13 >> 0] = 0;
HEAP8[$ipad + 14 >> 0] = 0;
HEAP8[$ipad + 15 >> 0] = 0;
HEAP8[$ipad + 16 >> 0] = 0;
HEAP8[$ipad + 17 >> 0] = 0;
HEAP8[$ipad + 18 >> 0] = 0;
HEAP8[$ipad + 19 >> 0] = 0;
HEAP8[$ipad + 20 >> 0] = 0;
HEAP8[$ipad + 21 >> 0] = 0;
HEAP8[$ipad + 22 >> 0] = 0;
HEAP8[$ipad + 23 >> 0] = 0;
HEAP8[$ipad + 24 >> 0] = 0;
HEAP8[$ipad + 25 >> 0] = 0;
HEAP8[$ipad + 26 >> 0] = 0;
HEAP8[$ipad + 27 >> 0] = 0;
HEAP8[$ipad + 28 >> 0] = 0;
HEAP8[$ipad + 29 >> 0] = 0;
HEAP8[$ipad + 30 >> 0] = 0;
HEAP8[$ipad + 31 >> 0] = 0;
HEAP8[$ipad + 32 >> 0] = 0;
HEAP8[$ipad + 33 >> 0] = 0;
HEAP8[$ipad + 34 >> 0] = 0;
HEAP8[$ipad + 35 >> 0] = 0;
HEAP8[$ipad + 36 >> 0] = 0;
HEAP8[$ipad + 37 >> 0] = 0;
HEAP8[$ipad + 38 >> 0] = 0;
HEAP8[$ipad + 39 >> 0] = 0;
HEAP8[$ipad + 40 >> 0] = 0;
HEAP8[$ipad + 41 >> 0] = 0;
HEAP8[$ipad + 42 >> 0] = 0;
HEAP8[$ipad + 43 >> 0] = 0;
HEAP8[$ipad + 44 >> 0] = 0;
HEAP8[$ipad + 45 >> 0] = 0;
HEAP8[$ipad + 46 >> 0] = 0;
HEAP8[$ipad + 47 >> 0] = 0;
HEAP8[$ipad + 48 >> 0] = 0;
HEAP8[$ipad + 49 >> 0] = 0;
HEAP8[$ipad + 50 >> 0] = 0;
HEAP8[$ipad + 51 >> 0] = 0;
HEAP8[$ipad + 52 >> 0] = 0;
HEAP8[$ipad + 53 >> 0] = 0;
HEAP8[$ipad + 54 >> 0] = 0;
HEAP8[$ipad + 55 >> 0] = 0;
HEAP8[$ipad + 56 >> 0] = 0;
HEAP8[$ipad + 57 >> 0] = 0;
HEAP8[$ipad + 58 >> 0] = 0;
HEAP8[$ipad + 59 >> 0] = 0;
HEAP8[$ipad + 60 >> 0] = 0;
HEAP8[$ipad + 61 >> 0] = 0;
HEAP8[$ipad + 62 >> 0] = 0;
HEAP8[$ipad + 63 >> 0] = 0;
$$3 = $0;
STACKTOP = sp;
return $$3 | 0;
}
function __gcry_md_setkey($hd, $key, $keylen) {
$hd = $hd | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $$01$i = 0, $$02$i = 0, $$ph$i$3$i = 0, $$ph$i$i = 0, $$pre$i = 0, $0 = 0, $107 = 0, $108 = 0, $11 = 0, $13 = 0, $29 = 0, $30 = 0, $45 = 0, $46 = 0, $48 = 0, $51 = 0, $54 = 0, $55 = 0, $57 = 0, $60 = 0, $65 = 0, $70 = 0, $82 = 0, $85 = 0, $89 = 0, $9 = 0, $92 = 0, $93 = 0, $hd$idx$val$idx$val$i = 0, $helpkey$0$i = 0, $i$06$i = 0, $r$0$1$i = 0, $r$02$i = 0, $rc$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = HEAP32[$hd >> 2] | 0;
if (!(HEAP32[$0 + 20 >> 2] | 0)) {
$rc$0 = 70;
STACKTOP = sp;
return $rc$0 | 0;
}
$hd$idx$val$idx$val$i = HEAP32[$0 + 16 >> 2] | 0;
if (!$hd$idx$val$idx$val$i) {
$rc$0 = 5;
STACKTOP = sp;
return $rc$0 | 0;
}
if (HEAP32[$hd$idx$val$idx$val$i + 4 >> 2] | 0) {
__gcry_fips_signal_error(36567, 980, 36581, 0, 36593);
__gcry_log_error(36614, sp);
}
$9 = HEAP32[HEAP32[$hd$idx$val$idx$val$i >> 2] >> 2] | 0;
if (!$9) {
$rc$0 = 5;
STACKTOP = sp;
return $rc$0 | 0;
}
$11 = HEAP32[$hd >> 2] | 0;
$13 = HEAP32[$11 + 24 >> 2] | 0;
do if ($13 >>> 0 < $keylen >>> 0) {
if ((HEAP32[1886] | 0) == ($9 | 0)) {
$$ph$i$i = 7544;
label = 13;
} else if ((HEAP32[1918] | 0) == ($9 | 0)) {
$$ph$i$i = 7672;
label = 13;
} else if ((HEAP32[1905] | 0) == ($9 | 0)) {
$$ph$i$i = 7620;
label = 13;
} else if ((HEAP32[1936] | 0) == ($9 | 0)) {
$$ph$i$i = 7744;
label = 13;
} else if ((HEAP32[1949] | 0) == ($9 | 0)) {
$$ph$i$i = 7796;
label = 13;
} else if ((HEAP32[1845] | 0) == ($9 | 0)) {
$$ph$i$i = 7380;
label = 13;
} else $29 = 0;
if ((label | 0) == 13) $29 = HEAP32[$$ph$i$i + 24 >> 2] | 0;
$30 = __gcry_malloc_secure($29) | 0;
if (!$30) {
$82 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$82) break; else $rc$0 = $82;
STACKTOP = sp;
return $rc$0 | 0;
}
__gcry_md_hash_buffer($9, $30, $key, $keylen);
if ((HEAP32[1886] | 0) == ($9 | 0)) $$ph$i$3$i = 7544; else if ((HEAP32[1918] | 0) == ($9 | 0)) $$ph$i$3$i = 7672; else if ((HEAP32[1905] | 0) == ($9 | 0)) $$ph$i$3$i = 7620; else if ((HEAP32[1936] | 0) == ($9 | 0)) $$ph$i$3$i = 7744; else if ((HEAP32[1949] | 0) == ($9 | 0)) $$ph$i$3$i = 7796; else if ((HEAP32[1845] | 0) == ($9 | 0)) $$ph$i$3$i = 7380; else {
$$pre$i = HEAP32[$hd >> 2] | 0;
$$01$i = $30;
$$02$i = 0;
$51 = $$pre$i;
$54 = HEAP32[$$pre$i + 24 >> 2] | 0;
$helpkey$0$i = $30;
label = 24;
break;
}
$45 = HEAP32[$$ph$i$3$i + 24 >> 2] | 0;
$46 = HEAP32[$hd >> 2] | 0;
$48 = HEAP32[$46 + 24 >> 2] | 0;
if ($45 >>> 0 > $48 >>> 0) __gcry_assert_failed(36665, 36567, 716, 36698); else {
$$01$i = $30;
$$02$i = $45;
$51 = $46;
$54 = $48;
$helpkey$0$i = $30;
label = 24;
}
} else {
$$01$i = $key;
$$02$i = $keylen;
$51 = $11;
$54 = $13;
$helpkey$0$i = 0;
label = 24;
} while (0);
if ((label | 0) == 24) {
_memset(HEAP32[$51 + 20 >> 2] | 0, 0, $54 << 1 | 0) | 0;
$55 = HEAP32[$hd >> 2] | 0;
$57 = HEAP32[$55 + 20 >> 2] | 0;
$60 = $57 + (HEAP32[$55 + 24 >> 2] | 0) | 0;
_memcpy($57 | 0, $$01$i | 0, $$02$i | 0) | 0;
_memcpy($60 | 0, $$01$i | 0, $$02$i | 0) | 0;
if ((HEAP32[(HEAP32[$hd >> 2] | 0) + 24 >> 2] | 0) > 0) {
$i$06$i = 0;
do {
$65 = $57 + $i$06$i | 0;
HEAP8[$65 >> 0] = (HEAPU8[$65 >> 0] | 0) ^ 54;
$70 = $60 + $i$06$i | 0;
HEAP8[$70 >> 0] = (HEAPU8[$70 >> 0] | 0) ^ 92;
$i$06$i = $i$06$i + 1 | 0;
} while (($i$06$i | 0) < (HEAP32[(HEAP32[$hd >> 2] | 0) + 24 >> 2] | 0));
}
__gcry_free($helpkey$0$i);
}
$85 = (HEAP32[$hd >> 2] | 0) + 12 | 0;
HEAP8[$85 >> 0] = HEAP8[$85 >> 0] & -3;
HEAP32[$hd + 4 >> 2] = 0;
$89 = HEAP32[$hd >> 2] | 0;
$r$0$1$i = HEAP32[$89 + 16 >> 2] | 0;
if (!$r$0$1$i) $107 = $89; else {
$r$02$i = $r$0$1$i;
do {
$92 = $r$02$i + 16 | 0;
$93 = HEAP32[$r$02$i >> 2] | 0;
_memset($92 | 0, 0, HEAP32[$93 + 44 >> 2] | 0) | 0;
FUNCTION_TABLE_vii[HEAP32[$93 + 28 >> 2] & 7]($92, (HEAP8[(HEAP32[$hd >> 2] | 0) + 12 >> 0] & 4) << 6);
$r$02$i = HEAP32[$r$02$i + 4 >> 2] | 0;
} while (($r$02$i | 0) != 0);
$107 = HEAP32[$hd >> 2] | 0;
}
$108 = HEAP32[$107 + 20 >> 2] | 0;
if (!$108) {
$rc$0 = 0;
STACKTOP = sp;
return $rc$0 | 0;
}
_md_write($hd, $108, HEAP32[$107 + 24 >> 2] | 0);
$rc$0 = 0;
STACKTOP = sp;
return $rc$0 | 0;
}
function __gcry_cipher_gcm_setiv($c, $iv, $ivlen) {
$c = $c | 0;
$iv = $iv | 0;
$ivlen = $ivlen | 0;
var $$1$i = 0, $$lcssa = 0, $$lcssa6 = 0, $$pre = 0, $$pre$phi37$iZ2D = 0, $$pre$phi38$iZ2D = 0, $0 = 0, $10 = 0, $12 = 0, $13 = 0, $17 = 0, $25 = 0, $3 = 0, $32 = 0, $33 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $55 = 0, $58 = 0, $7 = 0, $8 = 0, $9 = 0, $_vlen2$0$lcssa40$i = 0, $_vlen2$015$i = 0, $_vlen2$1$i = 0, $_vlen2$3$ph$i = 0, $_vlen2$313$i = 0, $_vptr1$0$lcssa41$i = 0, $_vptr1$014$i = 0, $_vptr1$1$i = 0, $_vptr1$3$ph$i = 0, $_vptr1$312$i = 0, $bitlengths$i = 0, $iv_bytes$i = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$iv_bytes$i = sp;
$bitlengths$i = sp + 8 | 0;
$0 = $c + 56 | 0;
HEAP8[$0 >> 0] = HEAP8[$0 >> 0] & -7;
$3 = $c + 196 | 0;
HEAP8[$3 >> 0] = HEAP8[$3 >> 0] & -9;
$7 = (__gcry_fips_mode() | 0) == 0;
$$pre = HEAP8[$3 >> 0] | 0;
if ($7) $12 = $$pre; else {
$8 = $$pre | 8;
HEAP8[$3 >> 0] = $8;
$12 = $8;
}
$9 = $c + 128 | 0;
$10 = $c + 164 | 0;
HEAP32[$9 >> 2] = 0;
HEAP32[$9 + 4 >> 2] = 0;
HEAP32[$9 + 8 >> 2] = 0;
HEAP32[$9 + 12 >> 2] = 0;
HEAP32[$10 >> 2] = 0;
HEAP32[$10 + 4 >> 2] = 0;
HEAP32[$10 + 8 >> 2] = 0;
HEAP32[$10 + 12 >> 2] = 0;
HEAP8[$3 >> 0] = $12 & -8;
switch ($ivlen | 0) {
case 12:
{
$55 = $c + 80 | 0;
dest = $55;
src = $iv;
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));
HEAP8[$c + 94 >> 0] = 0;
HEAP8[$c + 93 >> 0] = 0;
$58 = $c + 92 | 0;
HEAP8[$58 >> 0] = 0;
HEAP8[$c + 95 >> 0] = 1;
$$pre$phi37$iZ2D = $55;
$$pre$phi38$iZ2D = $58;
break;
}
case 0:
{
$$1$i = 139;
STACKTOP = sp;
return $$1$i | 0;
}
default:
{
$13 = $iv_bytes$i;
HEAP32[$13 >> 2] = 0;
HEAP32[$13 + 4 >> 2] = 0;
$17 = $c + 80 | 0;
HEAP32[$17 >> 2] = 0;
HEAP32[$17 + 4 >> 2] = 0;
HEAP32[$17 + 8 >> 2] = 0;
HEAP32[$17 + 12 >> 2] = 0;
HEAP32[$iv_bytes$i >> 2] = $ivlen;
_do_ghash_buf($c, $17, $iv, $ivlen, 1);
HEAP32[$bitlengths$i + 12 >> 2] = _llvm_bswap_i32($ivlen << 3 | 0) | 0;
HEAP32[$bitlengths$i + 8 >> 2] = _llvm_bswap_i32($ivlen >>> 29 | 0) | 0;
HEAP32[$bitlengths$i + 4 >> 2] = 0;
HEAP32[$bitlengths$i >> 2] = 0;
_do_ghash_buf($c, $17, $bitlengths$i, 16, 1);
$25 = $iv_bytes$i;
HEAP32[$25 >> 2] = 0;
HEAP32[$25 + 4 >> 2] = 0;
if (!($bitlengths$i & 4)) {
$_vlen2$0$lcssa40$i = 16;
$_vptr1$0$lcssa41$i = $bitlengths$i;
label = 7;
} else {
$_vlen2$015$i = 16;
$_vptr1$014$i = $bitlengths$i;
while (1) {
HEAP8[$_vptr1$014$i >> 0] = 0;
$32 = $_vptr1$014$i + 1 | 0;
$33 = $_vlen2$015$i + -1 | 0;
if (($33 | 0) != 0 & ($32 & 7 | 0) != 0) {
$_vlen2$015$i = $33;
$_vptr1$014$i = $32;
} else {
$$lcssa = $32;
$$lcssa6 = $33;
break;
}
}
if ($$lcssa6 >>> 0 < 8) {
$_vlen2$3$ph$i = $$lcssa6;
$_vptr1$3$ph$i = $$lcssa;
} else {
$_vlen2$0$lcssa40$i = $$lcssa6;
$_vptr1$0$lcssa41$i = $$lcssa;
label = 7;
}
}
if ((label | 0) == 7) {
$40 = $_vlen2$0$lcssa40$i + -8 | 0;
$41 = $40 & -8;
$42 = $41 + 8 | 0;
$_vlen2$1$i = $_vlen2$0$lcssa40$i;
$_vptr1$1$i = $_vptr1$0$lcssa41$i;
while (1) {
$43 = $_vptr1$1$i;
HEAP32[$43 >> 2] = 0;
HEAP32[$43 + 4 >> 2] = 0;
$_vlen2$1$i = $_vlen2$1$i + -8 | 0;
if ($_vlen2$1$i >>> 0 <= 7) break; else $_vptr1$1$i = $_vptr1$1$i + 8 | 0;
}
$_vlen2$3$ph$i = $40 - $41 | 0;
$_vptr1$3$ph$i = $_vptr1$0$lcssa41$i + $42 | 0;
}
if ($_vlen2$3$ph$i) {
$_vlen2$313$i = $_vlen2$3$ph$i;
$_vptr1$312$i = $_vptr1$3$ph$i;
while (1) {
HEAP8[$_vptr1$312$i >> 0] = 0;
$_vlen2$313$i = $_vlen2$313$i + -1 | 0;
if (!$_vlen2$313$i) break; else $_vptr1$312$i = $_vptr1$312$i + 1 | 0;
}
}
$$pre$phi37$iZ2D = $17;
$$pre$phi38$iZ2D = $c + 92 | 0;
}
}
FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 36 >> 2] & 63]($c + 496 | 0, $c + 180 | 0, $$pre$phi37$iZ2D) | 0;
HEAP32[$$pre$phi38$iZ2D >> 2] = _llvm_bswap_i32((_llvm_bswap_i32(HEAP32[$$pre$phi38$iZ2D >> 2] | 0) | 0) + 1 | 0) | 0;
HEAP32[$c + 112 >> 2] = 0;
HEAP8[$0 >> 0] = HEAP8[$0 >> 0] & -7 | 2;
$$1$i = 0;
STACKTOP = sp;
return $$1$i | 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 $$1 = 0, $$11 = 0, $$12 = 0, $101 = 0, $104 = 0, $107 = 0, $109 = 0, $11 = 0, $113 = 0, $12 = 0, $14 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $24 = 0, $27 = 0, $31 = 0, $33 = 0, $35 = 0, $39 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $56 = 0, $58 = 0, $6 = 0, $60 = 0, $62 = 0, $66 = 0, $69 = 0, $72 = 0, $74 = 0, $80 = 0, $82 = 0, $83 = 0, $86 = 0, $87 = 0, $89 = 0, $92 = 0, $95 = 0, $97 = 0, $__r0$0 = 0, $__r013$0 = 0, $__r06$0 = 0, $__r1$0 = 0, $__r112$0 = 0, $__r15$0 = 0, $i$020 = 0, $i$117 = 0, $n1$0$lcssa = 0, $n1$019 = 0, $r$0$lcssa = 0, $r$018 = 0, $r$116 = 0;
if (!$dividend_size) {
$$1 = 0;
return $$1 | 0;
}
$6 = $divisor_limb >>> 0 < 65536 ? ($divisor_limb >>> 0 < 256 ? 0 : 8) : $divisor_limb >>> 0 < 16777216 ? 16 : 24;
$11 = (HEAPU8[45217 + ($divisor_limb >>> $6) >> 0] | 0) + $6 | 0;
$12 = 32 - $11 | 0;
if (!$12) {
$80 = $dividend_size + -1 | 0;
$82 = HEAP32[$dividend_ptr + ($80 << 2) >> 2] | 0;
$83 = $82 >>> 0 < $divisor_limb >>> 0;
$$11 = $83 ? $82 : 0;
$$12 = $83 ? $dividend_size + -2 | 0 : $80;
if (($$12 | 0) <= -1) {
$$1 = $$11;
return $$1 | 0;
}
$86 = $divisor_limb >>> 16;
$87 = $divisor_limb & 65535;
$i$117 = $$12;
$r$116 = $$11;
while (1) {
$89 = HEAP32[$dividend_ptr + ($i$117 << 2) >> 2] | 0;
$92 = Math_imul(($r$116 >>> 0) / ($86 >>> 0) | 0, $87) | 0;
$95 = (($r$116 >>> 0) % ($86 >>> 0) | 0) << 16 | $89 >>> 16;
if ($95 >>> 0 < $92 >>> 0) {
$97 = $95 + $divisor_limb | 0;
$__r112$0 = ($97 >>> 0 >= $divisor_limb >>> 0 & $97 >>> 0 < $92 >>> 0 ? $divisor_limb : 0) + $97 | 0;
} else $__r112$0 = $95;
$101 = $__r112$0 - $92 | 0;
$104 = Math_imul(($101 >>> 0) / ($86 >>> 0) | 0, $87) | 0;
$107 = (($101 >>> 0) % ($86 >>> 0) | 0) << 16 | $89 & 65535;
if ($107 >>> 0 < $104 >>> 0) {
$109 = $107 + $divisor_limb | 0;
$__r013$0 = ($109 >>> 0 >= $divisor_limb >>> 0 & $109 >>> 0 < $104 >>> 0 ? $divisor_limb : 0) + $109 | 0;
} else $__r013$0 = $107;
$113 = $__r013$0 - $104 | 0;
if (($i$117 | 0) > 0) {
$i$117 = $i$117 + -1 | 0;
$r$116 = $113;
} else {
$$1 = $113;
break;
}
}
return $$1 | 0;
}
$14 = $divisor_limb << $12;
$17 = HEAP32[$dividend_ptr + ($dividend_size + -1 << 2) >> 2] | 0;
$18 = $17 >>> $11;
$19 = $dividend_size + -2 | 0;
$21 = $14 >>> 16;
$22 = $14 & 65535;
if (($19 | 0) > -1) {
$i$020 = $19;
$n1$019 = $17;
$r$018 = $18;
while (1) {
$24 = HEAP32[$dividend_ptr + ($i$020 << 2) >> 2] | 0;
$27 = Math_imul(($r$018 >>> 0) / ($21 >>> 0) | 0, $22) | 0;
$31 = $24 >>> $11 | $n1$019 << $12;
$33 = $31 >>> 16 | (($r$018 >>> 0) % ($21 >>> 0) | 0) << 16;
if ($33 >>> 0 < $27 >>> 0) {
$35 = $33 + $14 | 0;
$__r1$0 = ($35 >>> 0 >= $14 >>> 0 & $35 >>> 0 < $27 >>> 0 ? $14 : 0) + $35 | 0;
} else $__r1$0 = $33;
$39 = $__r1$0 - $27 | 0;
$42 = Math_imul(($39 >>> 0) / ($21 >>> 0) | 0, $22) | 0;
$45 = (($39 >>> 0) % ($21 >>> 0) | 0) << 16 | $31 & 65535;
if ($45 >>> 0 < $42 >>> 0) {
$47 = $45 + $14 | 0;
$__r0$0 = ($47 >>> 0 >= $14 >>> 0 & $47 >>> 0 < $42 >>> 0 ? $14 : 0) + $47 | 0;
} else $__r0$0 = $45;
$51 = $__r0$0 - $42 | 0;
if (($i$020 | 0) > 0) {
$i$020 = $i$020 + -1 | 0;
$n1$019 = $24;
$r$018 = $51;
} else {
$n1$0$lcssa = $24;
$r$0$lcssa = $51;
break;
}
}
} else {
$n1$0$lcssa = $17;
$r$0$lcssa = $18;
}
$56 = Math_imul(($r$0$lcssa >>> 0) / ($21 >>> 0) | 0, $22) | 0;
$58 = $n1$0$lcssa << $12;
$60 = (($r$0$lcssa >>> 0) % ($21 >>> 0) | 0) << 16 | $58 >>> 16;
if ($60 >>> 0 < $56 >>> 0) {
$62 = $60 + $14 | 0;
$__r15$0 = ($62 >>> 0 >= $14 >>> 0 & $62 >>> 0 < $56 >>> 0 ? $14 : 0) + $62 | 0;
} else $__r15$0 = $60;
$66 = $__r15$0 - $56 | 0;
$69 = Math_imul(($66 >>> 0) / ($21 >>> 0) | 0, $22) | 0;
$72 = (($66 >>> 0) % ($21 >>> 0) | 0) << 16 | $58 & 65535;
if ($72 >>> 0 < $69 >>> 0) {
$74 = $72 + $14 | 0;
$__r06$0 = ($74 >>> 0 >= $14 >>> 0 & $74 >>> 0 < $69 >>> 0 ? $14 : 0) + $74 | 0;
} else $__r06$0 = $72;
$$1 = ($__r06$0 - $69 | 0) >>> $12;
return $$1 | 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 $$$i = 0, $10 = 0, $12 = 0, $16 = 0, $18 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $28 = 0, $29 = 0, $30 = 0, $32 = 0, $33 = 0, $35 = 0, $36 = 0, $37 = 0, $39 = 0, $4 = 0, $40 = 0, $42 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $6 = 0, $date_abs$i = 0, $end_abs$i = 0, $end_abs$i$byval_copy = 0, $expire_abs$i = 0, $master = 0, $sig = 0, $signkey = 0, $signkey_key$sroa$0$i = 0, $skval$i = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 352 | 0;
$end_abs$i$byval_copy = sp + 24 | 0;
$skval$i = sp + 192 | 0;
$date_abs$i = sp + 16 | 0;
$expire_abs$i = sp + 8 | 0;
$end_abs$i = sp;
$signkey_key$sroa$0$i = sp + 160 | 0;
$master = sp + 128 | 0;
$signkey = sp + 96 | 0;
$sig = sp + 32 | 0;
_GNUNET_STRINGS_string_to_data($master_enc, _strlen($master_enc) | 0, $master, 32) | 0;
_GNUNET_STRINGS_string_to_data($signkey_enc, _strlen($signkey_enc) | 0, $signkey, 32) | 0;
_GNUNET_STRINGS_string_to_data($sig_enc, _strlen($sig_enc) | 0, $sig, 64) | 0;
dest = $signkey_key$sroa$0$i;
src = $signkey;
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));
dest = $skval$i + 72 | 0;
src = $master;
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));
$4 = ___muldi3($date | 0, 0, 1e6, 0) | 0;
$6 = $date_abs$i;
HEAP32[$6 >> 2] = $4;
HEAP32[$6 + 4 >> 2] = tempRet0;
$10 = ___muldi3($expire | 0, 0, 1e6, 0) | 0;
$12 = $expire_abs$i;
HEAP32[$12 >> 2] = $10;
HEAP32[$12 + 4 >> 2] = tempRet0;
$16 = ___muldi3($end | 0, 0, 1e6, 0) | 0;
$18 = $end_abs$i;
HEAP32[$18 >> 2] = $16;
HEAP32[$18 + 4 >> 2] = tempRet0;
HEAP32[$end_abs$i$byval_copy >> 2] = HEAP32[$date_abs$i >> 2];
HEAP32[$end_abs$i$byval_copy + 4 >> 2] = HEAP32[$date_abs$i + 4 >> 2];
$22 = _GNUNET_TIME_absolute_hton($end_abs$i$byval_copy) | 0;
$23 = tempRet0;
$25 = $skval$i + 104 | 0;
$26 = $25;
HEAP8[$26 >> 0] = $22;
HEAP8[$26 + 1 >> 0] = $22 >> 8;
HEAP8[$26 + 2 >> 0] = $22 >> 16;
HEAP8[$26 + 3 >> 0] = $22 >> 24;
$28 = $25 + 4 | 0;
HEAP8[$28 >> 0] = $23;
HEAP8[$28 + 1 >> 0] = $23 >> 8;
HEAP8[$28 + 2 >> 0] = $23 >> 16;
HEAP8[$28 + 3 >> 0] = $23 >> 24;
HEAP32[$end_abs$i$byval_copy >> 2] = HEAP32[$expire_abs$i >> 2];
HEAP32[$end_abs$i$byval_copy + 4 >> 2] = HEAP32[$expire_abs$i + 4 >> 2];
$29 = _GNUNET_TIME_absolute_hton($end_abs$i$byval_copy) | 0;
$30 = tempRet0;
$32 = $skval$i + 112 | 0;
$33 = $32;
HEAP8[$33 >> 0] = $29;
HEAP8[$33 + 1 >> 0] = $29 >> 8;
HEAP8[$33 + 2 >> 0] = $29 >> 16;
HEAP8[$33 + 3 >> 0] = $29 >> 24;
$35 = $32 + 4 | 0;
HEAP8[$35 >> 0] = $30;
HEAP8[$35 + 1 >> 0] = $30 >> 8;
HEAP8[$35 + 2 >> 0] = $30 >> 16;
HEAP8[$35 + 3 >> 0] = $30 >> 24;
HEAP32[$end_abs$i$byval_copy >> 2] = HEAP32[$end_abs$i >> 2];
HEAP32[$end_abs$i$byval_copy + 4 >> 2] = HEAP32[$end_abs$i + 4 >> 2];
$36 = _GNUNET_TIME_absolute_hton($end_abs$i$byval_copy) | 0;
$37 = tempRet0;
$39 = $skval$i + 120 | 0;
$40 = $39;
HEAP8[$40 >> 0] = $36;
HEAP8[$40 + 1 >> 0] = $36 >> 8;
HEAP8[$40 + 2 >> 0] = $36 >> 16;
HEAP8[$40 + 3 >> 0] = $36 >> 24;
$42 = $39 + 4 | 0;
HEAP8[$42 >> 0] = $37;
HEAP8[$42 + 1 >> 0] = $37 >> 8;
HEAP8[$42 + 2 >> 0] = $37 >> 16;
HEAP8[$42 + 3 >> 0] = $37 >> 24;
dest = $skval$i + 128 | 0;
src = $signkey_key$sroa$0$i;
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$i + 64 | 0;
$46 = $skval$i + 68 | 0;
HEAP8[$46 >> 0] = $44;
HEAP8[$46 + 1 >> 0] = $44 >> 8;
HEAP8[$46 + 2 >> 0] = $44 >> 16;
HEAP8[$46 + 3 >> 0] = $44 >> 24;
$47 = _htonl(96) | 0;
HEAP8[$45 >> 0] = $47;
HEAP8[$45 + 1 >> 0] = $47 >> 8;
HEAP8[$45 + 2 >> 0] = $47 >> 16;
HEAP8[$45 + 3 >> 0] = $47 >> 24;
$$$i = (_GNUNET_CRYPTO_eddsa_verify(1024, $45, $sig, $master) | 0) == 1 & 1;
STACKTOP = sp;
return $$$i | 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 $$015$i$i$i = 0, $$023$i$i$i = 0, $$lcssa = 0, $0 = 0, $12 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $4 = 0, $6 = 0, $8 = 0, $burn$06$i$i$i = 0, $n$04$i$i$i = 0, $out$in = 0, $outsize$inlen = 0, $rc$0$i = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = ($in | 0) == 0;
$out$in = $0 ? $out : $in;
$outsize$inlen = $0 ? $outsize : $inlen;
$2 = HEAP32[$h + 48 >> 2] | 0;
L1 : do if (($2 | 0) < 6) switch ($2 | 0) {
case 1:
{
$4 = HEAP32[$h + 12 >> 2] | 0;
$6 = HEAP32[$4 + 40 >> 2] | 0;
$8 = HEAP32[$4 + 20 >> 2] | 0;
if ($outsize$inlen >>> 0 > $outsize >>> 0) {
$rc$0$i = 200;
break L1;
}
if (($outsize$inlen >>> 0) % ($8 >>> 0) | 0) {
$rc$0$i = 139;
break L1;
}
$12 = ($outsize$inlen >>> 0) / ($8 >>> 0) | 0;
if (!$12) {
$rc$0$i = 0;
break L1;
}
$14 = $h + 496 | 0;
$$015$i$i$i = $out;
$$023$i$i$i = $out$in;
$burn$06$i$i$i = 0;
$n$04$i$i$i = 0;
while (1) {
$15 = FUNCTION_TABLE_iiii[$6 & 63]($14, $$015$i$i$i, $$023$i$i$i) | 0;
$17 = $15 >>> 0 > $burn$06$i$i$i >>> 0 ? $15 : $burn$06$i$i$i;
$n$04$i$i$i = $n$04$i$i$i + 1 | 0;
if ($n$04$i$i$i >>> 0 >= $12 >>> 0) {
$$lcssa = $17;
break;
} else {
$$015$i$i$i = $$015$i$i$i + $8 | 0;
$$023$i$i$i = $$023$i$i$i + $8 | 0;
$burn$06$i$i$i = $17;
}
}
if (!$$lcssa) {
$rc$0$i = 0;
break L1;
}
___gcry_burn_stack($$lcssa + 16 | 0);
$rc$0$i = 0;
break L1;
break;
}
case 3:
{
$rc$0$i = __gcry_cipher_cbc_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 2:
{
$rc$0$i = __gcry_cipher_cfb_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 5:
{
$rc$0$i = __gcry_cipher_ofb_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 4:
{
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$h + 12 >> 2] | 0) + 48 >> 2] & 1]($h + 496 | 0, $out, $out$in, $outsize$inlen);
$rc$0$i = 0;
break L1;
break;
}
case 0:
{
if (!(__gcry_fips_mode() | 0)) if (__gcry_get_debug_flag(0) | 0) {
if (($out$in | 0) == ($out | 0)) {
$rc$0$i = 0;
break L1;
}
_memmove($out | 0, $out$in | 0, $outsize$inlen | 0) | 0;
$rc$0$i = 0;
break L1;
}
__gcry_fips_signal_error(23886, 992, 23965, 0, 23910);
$rc$0$i = 71;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23980, $vararg_buffer);
}
} else {
if (($2 | 0) < 9) switch ($2 | 0) {
case 6:
{
$rc$0$i = __gcry_cipher_ctr_encrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 7:
{
$rc$0$i = __gcry_cipher_aeswrap_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 8:
{
$rc$0$i = __gcry_cipher_ccm_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23980, $vararg_buffer);
}
}
if (($2 | 0) < 11) switch ($2 | 0) {
case 9:
{
$rc$0$i = __gcry_cipher_gcm_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
case 10:
{
$rc$0$i = __gcry_cipher_poly1305_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23980, $vararg_buffer);
}
}
if (($2 | 0) >= 65537) {
switch ($2 | 0) {
case 65537:
{
$rc$0$i = 71;
break L1;
break;
}
default:
{}
}
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23980, $vararg_buffer);
}
switch ($2 | 0) {
case 11:
{
$rc$0$i = __gcry_cipher_ocb_decrypt($h, $out, $outsize, $out$in, $outsize$inlen) | 0;
break L1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $2;
__gcry_log_fatal(23980, $vararg_buffer);
}
}
} while (0);
STACKTOP = sp;
return $rc$0$i | 0;
}
function __gcry_rngcsprng_update_seed_file() {
var $$pre$phiZ2D = 0, $11 = 0, $16 = 0, $2 = 0, $31 = 0, $32 = 0, $34 = 0, $35 = 0, $38 = 0, $44 = 0, $45 = 0, $48 = 0, $51 = 0, $54 = 0, $55 = 0, $57 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $7 = 0, $dp$06 = 0, $i$08 = 0, $sp$07 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer20 = 0, $vararg_buffer24 = 0, $vararg_buffer28 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$vararg_buffer28 = sp + 72 | 0;
$vararg_buffer24 = sp + 64 | 0;
$vararg_buffer20 = sp + 56 | 0;
$vararg_buffer16 = sp + 48 | 0;
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer9 = sp + 32 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17541] | 0)) HEAP32[17541] = 1;
$2 = _gpgrt_lock_lock(12520) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_fatal(49833, $vararg_buffer);
}
HEAP32[17542] = 1;
$7 = HEAP32[17556] | 0;
if (!((HEAP32[17559] | 0) != 0 & ($7 | 0) != 0 & (HEAP32[17543] | 0) != 0)) {
HEAP32[17542] = 0;
$11 = _gpgrt_lock_unlock(12520) | 0;
if (!$11) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($11) | 0;
__gcry_log_fatal(49870, $vararg_buffer1);
}
}
if (!(HEAP32[17560] | 0)) {
HEAP32[17542] = 0;
$16 = _gpgrt_lock_unlock(12520) | 0;
if ($16) {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($16) | 0;
__gcry_log_fatal(49870, $vararg_buffer4);
}
__gcry_log_info(__gcry_gettext(50442) | 0, $vararg_buffer7);
STACKTOP = sp;
return;
}
$dp$06 = HEAP32[17564] | 0;
$i$08 = 0;
$sp$07 = $7;
while (1) {
HEAP32[$dp$06 >> 2] = (HEAP32[$sp$07 >> 2] | 0) + -1515870811;
$i$08 = $i$08 + 1 | 0;
if (($i$08 | 0) == 150) break; else {
$dp$06 = $dp$06 + 4 | 0;
$sp$07 = $sp$07 + 4 | 0;
}
}
_mix_pool($7);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
_mix_pool(HEAP32[17564] | 0);
HEAP32[17549] = (HEAP32[17549] | 0) + 1;
$31 = HEAP32[17559] | 0;
HEAP32[$vararg_buffer9 >> 2] = 384;
$32 = _open($31, 65, $vararg_buffer9) | 0;
do if (($32 | 0) == -1) {
$34 = __gcry_gettext(50478) | 0;
$35 = HEAP32[17559] | 0;
$38 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer12 >> 2] = $35;
HEAP32[$vararg_buffer12 + 4 >> 2] = $38;
__gcry_log_info($34, $vararg_buffer12);
} else {
if (_lock_seed_file($32, HEAP32[17559] | 0, 1) | 0) {
_close($32) | 0;
break;
}
if (_ftruncate($32, 0) | 0) {
$44 = __gcry_gettext(50501) | 0;
$45 = HEAP32[17559] | 0;
$48 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer16 >> 2] = $45;
HEAP32[$vararg_buffer16 + 4 >> 2] = $48;
__gcry_log_info($44, $vararg_buffer16);
_close($32) | 0;
break;
}
L31 : while (1) {
switch (_write($32, HEAP32[17564] | 0, 600) | 0) {
case 600:
{
break L31;
break;
}
case -1:
break;
default:
{
label = 21;
break L31;
}
}
$51 = ___errno_location() | 0;
if ((HEAP32[$51 >> 2] | 0) != 4) {
$$pre$phiZ2D = $51;
label = 23;
break;
}
}
if ((label | 0) == 21) {
$$pre$phiZ2D = ___errno_location() | 0;
label = 23;
}
if ((label | 0) == 23) {
$54 = __gcry_gettext(50501) | 0;
$55 = HEAP32[17559] | 0;
$57 = _strerror(HEAP32[$$pre$phiZ2D >> 2] | 0) | 0;
HEAP32[$vararg_buffer20 >> 2] = $55;
HEAP32[$vararg_buffer20 + 4 >> 2] = $57;
__gcry_log_info($54, $vararg_buffer20);
}
if (_close($32) | 0) {
$60 = __gcry_gettext(50523) | 0;
$61 = HEAP32[17559] | 0;
$64 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer24 >> 2] = $61;
HEAP32[$vararg_buffer24 + 4 >> 2] = $64;
__gcry_log_info($60, $vararg_buffer24);
}
} while (0);
HEAP32[17542] = 0;
$65 = _gpgrt_lock_unlock(12520) | 0;
if (!$65) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer28 >> 2] = _gpg_strerror($65) | 0;
__gcry_log_fatal(49870, $vararg_buffer28);
}
}
function __gcry_poly1305_update($ctx, $m, $bytes) {
$ctx = $ctx | 0;
$m = $m | 0;
$bytes = $bytes | 0;
var $$0 = 0, $$0$lcssa$i$14 = 0, $$02 = 0, $$06$i = 0, $$06$i$7 = 0, $$1 = 0, $$1$ph$i$20 = 0, $$13 = 0, $$13$i = 0, $$13$i$22 = 0, $0 = 0, $11 = 0, $13 = 0, $20 = 0, $21 = 0, $22 = 0, $35 = 0, $36 = 0, $4 = 0, $44 = 0, $47 = 0, $5 = 0, $55 = 0, $56 = 0, $63 = 0, $64 = 0, $65 = 0, $7 = 0, $79 = 0, $8 = 0, $9 = 0, $burn$1 = 0, $burn$2 = 0, $bytes$ = 0, $dst$0$ph$i$18 = 0, $dst$01$i = 0, $dst$01$i$24 = 0, $ldst$0$lcssa$i$16 = 0, $ldst$04$i = 0, $ldst$04$i$9 = 0, $lsrc$0$lcssa$i$15 = 0, $lsrc$05$i = 0, $lsrc$05$i$8 = 0, $scevgep$i = 0, $scevgep$i$4 = 0, $src$0$ph$i$19 = 0, $src$02$i = 0, $src$02$i$23 = 0, label = 0;
$0 = $ctx + 3 | 0;
$4 = $0 + (0 - ($0 & 3)) | 0;
$5 = $ctx + 84 | 0;
$7 = HEAP32[HEAP32[$5 >> 2] >> 2] | 0;
$8 = $ctx + 88 | 0;
$9 = HEAP32[$8 >> 2] | 0;
do if (!$9) {
$$0 = $m;
$$02 = $bytes;
$burn$1 = 0;
} else {
$11 = $7 - $9 | 0;
$bytes$ = $11 >>> 0 > $bytes >>> 0 ? $bytes : $11;
$13 = $ctx + 68 + $9 | 0;
if (!(($13 | $m) & 3)) {
if ($bytes$ >>> 0 > 3) {
$20 = $bytes$ + -4 | 0;
$21 = $20 & -4;
$22 = $21 + 4 | 0;
$scevgep$i$4 = $13 + $22 | 0;
$$06$i$7 = $bytes$;
$ldst$04$i$9 = $13;
$lsrc$05$i$8 = $m;
while (1) {
HEAP32[$ldst$04$i$9 >> 2] = HEAP32[$lsrc$05$i$8 >> 2];
$$06$i$7 = $$06$i$7 + -4 | 0;
if ($$06$i$7 >>> 0 <= 3) break; else {
$ldst$04$i$9 = $ldst$04$i$9 + 4 | 0;
$lsrc$05$i$8 = $lsrc$05$i$8 + 4 | 0;
}
}
$$0$lcssa$i$14 = $20 - $21 | 0;
$ldst$0$lcssa$i$16 = $scevgep$i$4;
$lsrc$0$lcssa$i$15 = $m + $22 | 0;
} else {
$$0$lcssa$i$14 = $bytes$;
$ldst$0$lcssa$i$16 = $13;
$lsrc$0$lcssa$i$15 = $m;
}
$$1$ph$i$20 = $$0$lcssa$i$14;
$dst$0$ph$i$18 = $ldst$0$lcssa$i$16;
$src$0$ph$i$19 = $lsrc$0$lcssa$i$15;
} else {
$$1$ph$i$20 = $bytes$;
$dst$0$ph$i$18 = $13;
$src$0$ph$i$19 = $m;
}
if (!$$1$ph$i$20) $36 = $9; else {
$$13$i$22 = $$1$ph$i$20;
$dst$01$i$24 = $dst$0$ph$i$18;
$src$02$i$23 = $src$0$ph$i$19;
while (1) {
HEAP8[$dst$01$i$24 >> 0] = HEAP8[$src$02$i$23 >> 0] | 0;
$$13$i$22 = $$13$i$22 + -1 | 0;
if (!$$13$i$22) break; else {
$dst$01$i$24 = $dst$01$i$24 + 1 | 0;
$src$02$i$23 = $src$02$i$23 + 1 | 0;
}
}
$36 = HEAP32[$8 >> 2] | 0;
}
$35 = $36 + $bytes$ | 0;
HEAP32[$8 >> 2] = $35;
if ($35 >>> 0 < $7 >>> 0) return; else {
$44 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$5 >> 2] | 0) + 8 >> 2] & 63]($4, $ctx + 68 | 0, $7) | 0;
HEAP32[$8 >> 2] = 0;
$$0 = $m + $bytes$ | 0;
$$02 = $bytes - $bytes$ | 0;
$burn$1 = $44;
break;
}
} while (0);
if ($$02 >>> 0 < $7 >>> 0) {
$$1 = $$0;
$$13 = $$02;
$burn$2 = $burn$1;
} else {
$47 = $$02 & 0 - $7;
$$1 = $$0 + $47 | 0;
$$13 = $$02 - $47 | 0;
$burn$2 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$5 >> 2] | 0) + 8 >> 2] & 63]($4, $$0, $47) | 0;
}
if ($$13) {
$55 = HEAP32[$8 >> 2] | 0;
$56 = $ctx + 68 + $55 | 0;
if ($$13 >>> 0 > 3 & (($56 | $$1) & 3 | 0) == 0) {
$63 = $$13 + -4 | 0;
$64 = $63 & -4;
$65 = $64 + 4 | 0;
$scevgep$i = $56 + $65 | 0;
$$06$i = $$13;
$ldst$04$i = $56;
$lsrc$05$i = $$1;
while (1) {
HEAP32[$ldst$04$i >> 2] = HEAP32[$lsrc$05$i >> 2];
$$06$i = $$06$i + -4 | 0;
if ($$06$i >>> 0 <= 3) break; else {
$ldst$04$i = $ldst$04$i + 4 | 0;
$lsrc$05$i = $lsrc$05$i + 4 | 0;
}
}
if (($63 | 0) == ($64 | 0)) $79 = $55; else {
$$13$i = $63 - $64 | 0;
$dst$01$i = $scevgep$i;
$src$02$i = $$1 + $65 | 0;
label = 20;
}
} else {
$$13$i = $$13;
$dst$01$i = $56;
$src$02$i = $$1;
label = 20;
}
if ((label | 0) == 20) {
while (1) {
label = 0;
HEAP8[$dst$01$i >> 0] = HEAP8[$src$02$i >> 0] | 0;
$$13$i = $$13$i + -1 | 0;
if (!$$13$i) break; else {
$dst$01$i = $dst$01$i + 1 | 0;
$src$02$i = $src$02$i + 1 | 0;
label = 20;
}
}
$79 = HEAP32[$8 >> 2] | 0;
}
HEAP32[$8 >> 2] = $79 + $$13;
}
if (!$burn$2) return;
___gcry_burn_stack($burn$2);
return;
}
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 $$03 = 0, $$burn_stack_depth$0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $11 = 0, $113 = 0, $117 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $25 = 0, $3 = 0, $30 = 0, $35 = 0, $4 = 0, $40 = 0, $45 = 0, $5 = 0, $50 = 0, $55 = 0, $6 = 0, $60 = 0, $65 = 0, $7 = 0, $70 = 0, $75 = 0, $8 = 0, $80 = 0, $85 = 0, $9 = 0, $90 = 0, $95 = 0, $99 = 0, $burn_stack_depth$0$lcssa = 0, $burn_stack_depth$04 = 0, $inbuf$02 = 0, $outbuf$01 = 0;
if (!$nblocks) {
$burn_stack_depth$0$lcssa = 0;
___gcry_burn_stack($burn_stack_depth$0$lcssa);
return;
}
$1 = $iv;
$2 = $iv + 4 | 0;
$3 = $iv + 8 | 0;
$4 = $iv + 12 | 0;
$5 = $iv + 1 | 0;
$6 = $iv + 2 | 0;
$7 = $iv + 3 | 0;
$8 = $iv + 5 | 0;
$9 = $iv + 6 | 0;
$10 = $iv + 7 | 0;
$11 = $iv + 9 | 0;
$12 = $iv + 10 | 0;
$13 = $iv + 11 | 0;
$14 = $iv + 13 | 0;
$15 = $iv + 14 | 0;
$16 = $iv + 15 | 0;
$$03 = $nblocks;
$burn_stack_depth$04 = 0;
$inbuf$02 = $inbuf_arg;
$outbuf$01 = $outbuf_arg;
while (1) {
_twofish_encrypt($context, $iv, $iv) | 0;
$$burn_stack_depth$0 = $burn_stack_depth$04 >>> 0 < 36 ? 36 : $burn_stack_depth$04;
if (!(($outbuf$01 | $1 | $inbuf$02) & 3)) {
$103 = HEAP32[$inbuf$02 >> 2] | 0;
HEAP32[$outbuf$01 >> 2] = HEAP32[$iv >> 2] ^ $103;
HEAP32[$iv >> 2] = $103;
$108 = HEAP32[$inbuf$02 + 4 >> 2] | 0;
HEAP32[$outbuf$01 + 4 >> 2] = HEAP32[$2 >> 2] ^ $108;
HEAP32[$2 >> 2] = $108;
$113 = HEAP32[$inbuf$02 + 8 >> 2] | 0;
HEAP32[$outbuf$01 + 8 >> 2] = HEAP32[$3 >> 2] ^ $113;
HEAP32[$3 >> 2] = $113;
$117 = HEAP32[$inbuf$02 + 12 >> 2] | 0;
HEAP32[$outbuf$01 + 12 >> 2] = HEAP32[$4 >> 2] ^ $117;
HEAP32[$4 >> 2] = $117;
} else {
$25 = HEAP8[$inbuf$02 >> 0] | 0;
HEAP8[$outbuf$01 >> 0] = HEAP8[$iv >> 0] ^ $25;
HEAP8[$iv >> 0] = $25;
$30 = HEAP8[$inbuf$02 + 1 >> 0] | 0;
HEAP8[$outbuf$01 + 1 >> 0] = HEAP8[$5 >> 0] ^ $30;
HEAP8[$5 >> 0] = $30;
$35 = HEAP8[$inbuf$02 + 2 >> 0] | 0;
HEAP8[$outbuf$01 + 2 >> 0] = HEAP8[$6 >> 0] ^ $35;
HEAP8[$6 >> 0] = $35;
$40 = HEAP8[$inbuf$02 + 3 >> 0] | 0;
HEAP8[$outbuf$01 + 3 >> 0] = HEAP8[$7 >> 0] ^ $40;
HEAP8[$7 >> 0] = $40;
$45 = HEAP8[$inbuf$02 + 4 >> 0] | 0;
HEAP8[$outbuf$01 + 4 >> 0] = HEAP8[$2 >> 0] ^ $45;
HEAP8[$2 >> 0] = $45;
$50 = HEAP8[$inbuf$02 + 5 >> 0] | 0;
HEAP8[$outbuf$01 + 5 >> 0] = HEAP8[$8 >> 0] ^ $50;
HEAP8[$8 >> 0] = $50;
$55 = HEAP8[$inbuf$02 + 6 >> 0] | 0;
HEAP8[$outbuf$01 + 6 >> 0] = HEAP8[$9 >> 0] ^ $55;
HEAP8[$9 >> 0] = $55;
$60 = HEAP8[$inbuf$02 + 7 >> 0] | 0;
HEAP8[$outbuf$01 + 7 >> 0] = HEAP8[$10 >> 0] ^ $60;
HEAP8[$10 >> 0] = $60;
$65 = HEAP8[$inbuf$02 + 8 >> 0] | 0;
HEAP8[$outbuf$01 + 8 >> 0] = HEAP8[$3 >> 0] ^ $65;
HEAP8[$3 >> 0] = $65;
$70 = HEAP8[$inbuf$02 + 9 >> 0] | 0;
HEAP8[$outbuf$01 + 9 >> 0] = HEAP8[$11 >> 0] ^ $70;
HEAP8[$11 >> 0] = $70;
$75 = HEAP8[$inbuf$02 + 10 >> 0] | 0;
HEAP8[$outbuf$01 + 10 >> 0] = HEAP8[$12 >> 0] ^ $75;
HEAP8[$12 >> 0] = $75;
$80 = HEAP8[$inbuf$02 + 11 >> 0] | 0;
HEAP8[$outbuf$01 + 11 >> 0] = HEAP8[$13 >> 0] ^ $80;
HEAP8[$13 >> 0] = $80;
$85 = HEAP8[$inbuf$02 + 12 >> 0] | 0;
HEAP8[$outbuf$01 + 12 >> 0] = HEAP8[$4 >> 0] ^ $85;
HEAP8[$4 >> 0] = $85;
$90 = HEAP8[$inbuf$02 + 13 >> 0] | 0;
HEAP8[$outbuf$01 + 13 >> 0] = HEAP8[$14 >> 0] ^ $90;
HEAP8[$14 >> 0] = $90;
$95 = HEAP8[$inbuf$02 + 14 >> 0] | 0;
HEAP8[$outbuf$01 + 14 >> 0] = HEAP8[$15 >> 0] ^ $95;
HEAP8[$15 >> 0] = $95;
$99 = HEAP8[$inbuf$02 + 15 >> 0] | 0;
HEAP8[$outbuf$01 + 15 >> 0] = HEAP8[$16 >> 0] ^ $99;
HEAP8[$16 >> 0] = $99;
}
$$03 = $$03 + -1 | 0;
if (!$$03) {
$burn_stack_depth$0$lcssa = $$burn_stack_depth$0;
break;
} else {
$burn_stack_depth$04 = $$burn_stack_depth$0;
$inbuf$02 = $inbuf$02 + 16 | 0;
$outbuf$01 = $outbuf$01 + 16 | 0;
}
}
___gcry_burn_stack($burn_stack_depth$0$lcssa);
return;
}
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, $10 = 0, $2 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $31 = 0, $37 = 0, $5 = 0, $55 = 0, $57 = 0, $7 = 0, $77 = 0, $8 = 0, $9 = 0, $I = 0, $abits = 0, $extraloops$0$us10 = 0, $hash = 0, $k = 0, $rc$2 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$k = sp + 24 | 0;
$I = sp + 12 | 0;
$hash = sp + 8 | 0;
$abits = sp + 4 | 0;
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(52415, $input);
$2 = $skey + 32 | 0;
$5 = __gcry_dsa_normalize_hash($input, $hash, __gcry_mpi_get_nbits(HEAP32[$2 >> 2] | 0) | 0) | 0;
if ($5) {
$$0 = $5;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$k >> 2] = 0;
$7 = __gcry_mpi_alloc(0) | 0;
$8 = __gcry_mpi_alloc(0) | 0;
$9 = __gcry_mpi_alloc(0) | 0;
$10 = __gcry_mpi_alloc(0) | 0;
__gcry_mpi_point_init($I);
$20 = __gcry_mpi_ec_p_internal_new(HEAP32[$skey >> 2] | 0, HEAP32[$skey + 4 >> 2] | 0, 0, HEAP32[$skey + 8 >> 2] | 0, HEAP32[$skey + 12 >> 2] | 0, HEAP32[$skey + 16 >> 2] | 0) | 0;
$24 = ($input | 0) == 0;
$25 = $input + 12 | 0;
$26 = $skey + 56 | 0;
$27 = $skey + 20 | 0;
L7 : do if (($flags & 2 | 0) != 0 & ($hashalgo | 0) != 0) {
__gcry_mpi_free(0);
HEAP32[$k >> 2] = 0;
if ($24) $rc$2 = 70; else {
$extraloops$0$us10 = 0;
while (1) {
if (!(HEAP32[$25 >> 2] & 4)) {
$rc$2 = 70;
break L7;
}
$31 = __gcry_mpi_get_opaque($input, $abits) | 0;
$37 = __gcry_dsa_gen_rfc6979_k($k, HEAP32[$2 >> 2] | 0, HEAP32[$26 >> 2] | 0, $31, ((HEAP32[$abits >> 2] | 0) + 7 | 0) >>> 3, $hashalgo, $extraloops$0$us10) | 0;
if ($37) {
$rc$2 = $37;
break L7;
}
$extraloops$0$us10 = $extraloops$0$us10 + 1 | 0;
__gcry_mpi_ec_mul_point($I, HEAP32[$k >> 2] | 0, $27, $20);
if (__gcry_mpi_ec_get_affine($10, 0, $I, $20) | 0) {
label = 13;
break L7;
}
__gcry_mpi_mod($r, $10, HEAP32[$2 >> 2] | 0);
if (__gcry_mpi_cmp_ui($r, 0) | 0) {
__gcry_mpi_mulm($7, HEAP32[$26 >> 2] | 0, $r, HEAP32[$2 >> 2] | 0);
__gcry_mpi_addm($8, HEAP32[$hash >> 2] | 0, $7, HEAP32[$2 >> 2] | 0);
__gcry_mpi_invm($9, HEAP32[$k >> 2] | 0, HEAP32[$2 >> 2] | 0) | 0;
__gcry_mpi_mulm($s, $9, $8, HEAP32[$2 >> 2] | 0);
if (__gcry_mpi_cmp_ui($s, 0) | 0) {
label = 18;
break L7;
}
}
__gcry_mpi_free(HEAP32[$k >> 2] | 0);
HEAP32[$k >> 2] = 0;
if ($24) {
$rc$2 = 70;
break;
}
}
}
} else {
$55 = 0;
while (1) {
__gcry_mpi_free($55);
HEAP32[$k >> 2] = 0;
$57 = __gcry_dsa_gen_k(HEAP32[$2 >> 2] | 0, 1) | 0;
HEAP32[$k >> 2] = $57;
__gcry_mpi_ec_mul_point($I, $57, $27, $20);
if (__gcry_mpi_ec_get_affine($10, 0, $I, $20) | 0) {
label = 13;
break L7;
}
__gcry_mpi_mod($r, $10, HEAP32[$2 >> 2] | 0);
if (__gcry_mpi_cmp_ui($r, 0) | 0) {
__gcry_mpi_mulm($7, HEAP32[$26 >> 2] | 0, $r, HEAP32[$2 >> 2] | 0);
__gcry_mpi_addm($8, HEAP32[$hash >> 2] | 0, $7, HEAP32[$2 >> 2] | 0);
__gcry_mpi_invm($9, HEAP32[$k >> 2] | 0, HEAP32[$2 >> 2] | 0) | 0;
__gcry_mpi_mulm($s, $9, $8, HEAP32[$2 >> 2] | 0);
if (__gcry_mpi_cmp_ui($s, 0) | 0) {
label = 18;
break L7;
}
}
$55 = HEAP32[$k >> 2] | 0;
}
} while (0);
if ((label | 0) == 13) if (!(__gcry_get_debug_flag(1) | 0)) $rc$2 = 8; else {
__gcry_log_debug(52492, $vararg_buffer);
$rc$2 = 8;
} else if ((label | 0) == 18) if (!(__gcry_get_debug_flag(1) | 0)) $rc$2 = 0; else {
__gcry_log_printmpi(52433, $r);
__gcry_log_printmpi(52454, $s);
$rc$2 = 0;
}
__gcry_mpi_ec_free($20);
__gcry_mpi_point_free_parts($I);
__gcry_mpi_free($10);
__gcry_mpi_free($9);
__gcry_mpi_free($8);
__gcry_mpi_free($7);
__gcry_mpi_free(HEAP32[$k >> 2] | 0);
$77 = HEAP32[$hash >> 2] | 0;
if (($77 | 0) == ($input | 0)) {
$$0 = $rc$2;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_mpi_free($77);
$$0 = $rc$2;
STACKTOP = sp;
return $$0 | 0;
}
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, $12 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $28 = 0, $29 = 0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $44 = 0, $45 = 0, $46 = 0, $48 = 0, $49 = 0, $50 = 0, $52 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $58 = 0, $60 = 0, $61 = 0, $62 = 0, $64 = 0, $65 = 0, $66 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $72 = 0, $73 = 0, $74 = 0, $76 = 0, $77 = 0, $78 = 0, $80 = 0, $81 = 0, $82 = 0, $hvec = 0, $rawmpilen = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$rawmpilen = sp + 32 | 0;
$hvec = sp;
HEAP32[$r_digest >> 2] = 0;
if (((HEAP32[$ec + 12 >> 2] | 0) + 7 & -8 | 0) != 256) {
$$0 = 63;
STACKTOP = sp;
return $$0 | 0;
}
$4 = __gcry_calloc_secure(2, 32) | 0;
if (!$4) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
};
HEAP32[$hvec >> 2] = 0;
HEAP32[$hvec + 4 >> 2] = 0;
HEAP32[$hvec + 8 >> 2] = 0;
HEAP32[$hvec + 12 >> 2] = 0;
HEAP32[$hvec + 16 >> 2] = 0;
HEAP32[$hvec + 20 >> 2] = 0;
HEAP32[$hvec + 24 >> 2] = 0;
HEAP32[$hvec + 28 >> 2] = 0;
$7 = __gcry_mpi_get_buffer($d, 0, $rawmpilen, 0) | 0;
if (!$7) {
__gcry_free($4);
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$hvec + 12 >> 2] = $4;
HEAP32[$hvec + 4 >> 2] = 0;
$12 = HEAP32[$rawmpilen >> 2] | 0;
HEAP32[$hvec + 8 >> 2] = $12 >>> 0 < 32 ? 32 - $12 | 0 : 0;
HEAP32[$hvec + 28 >> 2] = $7;
HEAP32[$hvec + 20 >> 2] = 0;
HEAP32[$hvec + 24 >> 2] = $12;
$19 = __gcry_md_hash_buffers(10, 0, $4, $hvec, 2) | 0;
__gcry_free($7);
if (!$19) {
$21 = HEAP8[$4 >> 0] | 0;
$22 = $4 + 31 | 0;
$23 = HEAP8[$22 >> 0] | 0;
$24 = $4 + 1 | 0;
$25 = HEAP8[$24 >> 0] | 0;
$26 = $4 + 30 | 0;
HEAP8[$24 >> 0] = HEAP8[$26 >> 0] | 0;
HEAP8[$26 >> 0] = $25;
$28 = $4 + 2 | 0;
$29 = HEAP8[$28 >> 0] | 0;
$30 = $4 + 29 | 0;
HEAP8[$28 >> 0] = HEAP8[$30 >> 0] | 0;
HEAP8[$30 >> 0] = $29;
$32 = $4 + 3 | 0;
$33 = HEAP8[$32 >> 0] | 0;
$34 = $4 + 28 | 0;
HEAP8[$32 >> 0] = HEAP8[$34 >> 0] | 0;
HEAP8[$34 >> 0] = $33;
$36 = $4 + 4 | 0;
$37 = HEAP8[$36 >> 0] | 0;
$38 = $4 + 27 | 0;
HEAP8[$36 >> 0] = HEAP8[$38 >> 0] | 0;
HEAP8[$38 >> 0] = $37;
$40 = $4 + 5 | 0;
$41 = HEAP8[$40 >> 0] | 0;
$42 = $4 + 26 | 0;
HEAP8[$40 >> 0] = HEAP8[$42 >> 0] | 0;
HEAP8[$42 >> 0] = $41;
$44 = $4 + 6 | 0;
$45 = HEAP8[$44 >> 0] | 0;
$46 = $4 + 25 | 0;
HEAP8[$44 >> 0] = HEAP8[$46 >> 0] | 0;
HEAP8[$46 >> 0] = $45;
$48 = $4 + 7 | 0;
$49 = HEAP8[$48 >> 0] | 0;
$50 = $4 + 24 | 0;
HEAP8[$48 >> 0] = HEAP8[$50 >> 0] | 0;
HEAP8[$50 >> 0] = $49;
$52 = $4 + 8 | 0;
$53 = HEAP8[$52 >> 0] | 0;
$54 = $4 + 23 | 0;
HEAP8[$52 >> 0] = HEAP8[$54 >> 0] | 0;
HEAP8[$54 >> 0] = $53;
$56 = $4 + 9 | 0;
$57 = HEAP8[$56 >> 0] | 0;
$58 = $4 + 22 | 0;
HEAP8[$56 >> 0] = HEAP8[$58 >> 0] | 0;
HEAP8[$58 >> 0] = $57;
$60 = $4 + 10 | 0;
$61 = HEAP8[$60 >> 0] | 0;
$62 = $4 + 21 | 0;
HEAP8[$60 >> 0] = HEAP8[$62 >> 0] | 0;
HEAP8[$62 >> 0] = $61;
$64 = $4 + 11 | 0;
$65 = HEAP8[$64 >> 0] | 0;
$66 = $4 + 20 | 0;
HEAP8[$64 >> 0] = HEAP8[$66 >> 0] | 0;
HEAP8[$66 >> 0] = $65;
$68 = $4 + 12 | 0;
$69 = HEAP8[$68 >> 0] | 0;
$70 = $4 + 19 | 0;
HEAP8[$68 >> 0] = HEAP8[$70 >> 0] | 0;
HEAP8[$70 >> 0] = $69;
$72 = $4 + 13 | 0;
$73 = HEAP8[$72 >> 0] | 0;
$74 = $4 + 18 | 0;
HEAP8[$72 >> 0] = HEAP8[$74 >> 0] | 0;
HEAP8[$74 >> 0] = $73;
$76 = $4 + 14 | 0;
$77 = HEAP8[$76 >> 0] | 0;
$78 = $4 + 17 | 0;
HEAP8[$76 >> 0] = HEAP8[$78 >> 0] | 0;
HEAP8[$78 >> 0] = $77;
$80 = $4 + 15 | 0;
$81 = HEAP8[$80 >> 0] | 0;
$82 = $4 + 16 | 0;
HEAP8[$80 >> 0] = HEAP8[$82 >> 0] | 0;
HEAP8[$82 >> 0] = $81;
HEAP8[$4 >> 0] = $23 & 63 | 64;
HEAP8[$22 >> 0] = $21 & 248;
HEAP32[$r_digest >> 2] = $4;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
__gcry_free($4);
$$0 = $19;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
function __gcry_mpi_mul($w, $u, $v) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
var $$6 = 0, $$vp$0 = 0, $1 = 0, $27 = 0, $3 = 0, $34 = 0, $4 = 0, $43 = 0, $5 = 0, $53 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $_i$09 = 0, $_i1$012 = 0, $_i2$08 = 0, $assign_wp$0 = 0, $tmp_limb$0 = 0, $tmp_limb_nlimbs$0 = 0, $u$v = 0, $up$0 = 0, $up$1 = 0, $usecure$0 = 0, $v$u = 0, $vp$0 = 0, $vp$2 = 0, $vsize$0 = 0, $wp$0 = 0, $wp$1 = 0, $wsize$0 = 0, label = 0;
$1 = HEAP32[$u + 4 >> 2] | 0;
$3 = HEAP32[$v + 4 >> 2] | 0;
$4 = ($1 | 0) < ($3 | 0);
$u$v = $4 ? $u : $v;
$v$u = $4 ? $v : $u;
$$6 = $4 ? $3 : $1;
$usecure$0 = HEAP32[$v$u + 12 >> 2] & 1;
$vsize$0 = $4 ? $1 : $3;
$up$0 = HEAP32[$v$u + 16 >> 2] | 0;
$5 = HEAP32[$u$v + 12 >> 2] & 1;
$vp$0 = HEAP32[$u$v + 16 >> 2] | 0;
$6 = HEAP32[$v$u + 8 >> 2] ^ HEAP32[$u$v + 8 >> 2];
$7 = $w + 16 | 0;
$8 = HEAP32[$7 >> 2] | 0;
$9 = $$6 + $vsize$0 | 0;
if (!$w) label = 3; else if (!(HEAP32[$w + 12 >> 2] & 1)) label = 3; else label = 7;
do if ((label | 0) == 3) {
if (!(HEAP32[$u + 12 >> 2] & 1)) {
if (!$v) {
label = 7;
break;
}
if (!(HEAP32[$v + 12 >> 2] & 1)) {
label = 7;
break;
}
}
$assign_wp$0 = 2;
$tmp_limb$0 = 0;
$tmp_limb_nlimbs$0 = 0;
$up$1 = $up$0;
$vp$2 = $vp$0;
$wp$0 = __gcry_mpi_alloc_limb_space($9, 1) | 0;
} while (0);
L9 : do if ((label | 0) == 7) {
$27 = ($8 | 0) == ($up$0 | 0);
if ((HEAP32[$w >> 2] | 0) < ($9 | 0)) if ($27 | ($8 | 0) == ($vp$0 | 0)) {
$assign_wp$0 = 1;
$tmp_limb$0 = 0;
$tmp_limb_nlimbs$0 = 0;
$up$1 = $up$0;
$vp$2 = $vp$0;
$wp$0 = __gcry_mpi_alloc_limb_space($9, HEAP32[$w + 12 >> 2] & 1) | 0;
break;
} else {
__gcry_mpi_resize($w, $9);
$assign_wp$0 = 0;
$tmp_limb$0 = 0;
$tmp_limb_nlimbs$0 = 0;
$up$1 = $up$0;
$vp$2 = $vp$0;
$wp$0 = HEAP32[$7 >> 2] | 0;
break;
}
if ($27) {
$34 = __gcry_mpi_alloc_limb_space($$6, $usecure$0) | 0;
$$vp$0 = ($up$0 | 0) == ($vp$0 | 0) ? $34 : $vp$0;
if (($$6 | 0) > 0) $_i$09 = 0; else {
$assign_wp$0 = 0;
$tmp_limb$0 = $34;
$tmp_limb_nlimbs$0 = $$6;
$up$1 = $34;
$vp$2 = $$vp$0;
$wp$0 = $up$0;
break;
}
while (1) {
HEAP32[$34 + ($_i$09 << 2) >> 2] = HEAP32[$up$0 + ($_i$09 << 2) >> 2];
$_i$09 = $_i$09 + 1 | 0;
if (($_i$09 | 0) >= ($$6 | 0)) {
$assign_wp$0 = 0;
$tmp_limb$0 = $34;
$tmp_limb_nlimbs$0 = $$6;
$up$1 = $34;
$vp$2 = $$vp$0;
$wp$0 = $up$0;
break L9;
}
}
}
if (($8 | 0) == ($vp$0 | 0)) {
$43 = __gcry_mpi_alloc_limb_space($vsize$0, $5) | 0;
if (($vsize$0 | 0) > 0) {
$_i1$012 = 0;
do {
HEAP32[$43 + ($_i1$012 << 2) >> 2] = HEAP32[$vp$0 + ($_i1$012 << 2) >> 2];
$_i1$012 = $_i1$012 + 1 | 0;
} while (($_i1$012 | 0) != ($vsize$0 | 0));
$assign_wp$0 = 0;
$tmp_limb$0 = $43;
$tmp_limb_nlimbs$0 = $vsize$0;
$up$1 = $up$0;
$vp$2 = $43;
$wp$0 = $vp$0;
} else {
$assign_wp$0 = 0;
$tmp_limb$0 = $43;
$tmp_limb_nlimbs$0 = $vsize$0;
$up$1 = $up$0;
$vp$2 = $43;
$wp$0 = $vp$0;
}
} else {
$assign_wp$0 = 0;
$tmp_limb$0 = 0;
$tmp_limb_nlimbs$0 = 0;
$up$1 = $up$0;
$vp$2 = $vp$0;
$wp$0 = $8;
}
} while (0);
if (!$vsize$0) $wsize$0 = 0; else $wsize$0 = $9 - ((__gcry_mpih_mul($wp$0, $up$1, $$6, $vp$2, $vsize$0) | 0) == 0 & 1) | 0;
switch ($assign_wp$0 | 0) {
case 0:
break;
case 2:
{
$53 = __gcry_mpi_alloc_limb_space($wsize$0, 0) | 0;
if (($wsize$0 | 0) > 0) {
$_i2$08 = 0;
do {
HEAP32[$53 + ($_i2$08 << 2) >> 2] = HEAP32[$wp$0 + ($_i2$08 << 2) >> 2];
$_i2$08 = $_i2$08 + 1 | 0;
} while (($_i2$08 | 0) != ($wsize$0 | 0));
}
__gcry_mpi_free_limb_space($wp$0, 0);
$wp$1 = $53;
label = 23;
break;
}
default:
{
$wp$1 = $wp$0;
label = 23;
}
}
if ((label | 0) == 23) __gcry_mpi_assign_limb_space($w, $wp$1, $wsize$0);
HEAP32[$w + 4 >> 2] = $wsize$0;
HEAP32[$w + 8 >> 2] = $6;
if (!$tmp_limb$0) return;
__gcry_mpi_free_limb_space($tmp_limb$0, $tmp_limb_nlimbs$0);
return;
}
function __gcry_check_version($req_version) {
$req_version = $req_version | 0;
var $$0 = 0, $$0$i$ph$i = 0, $$01$lcssa$i$3981 = 0, $$016$i$34 = 0, $$016$i$50 = 0, $$016$i$i$20 = 0, $$lcssa = 0, $$lcssa122 = 0, $$lcssa123 = 0, $$lcssa124 = 0, $$lcssa125 = 0, $$lcssa126 = 0, $$lcssa127 = 0, $14 = 0, $15 = 0, $16 = 0, $19 = 0, $21 = 0, $22 = 0, $29 = 0, $30 = 0, $31 = 0, $34 = 0, $36 = 0, $37 = 0, $44 = 0, $7 = 0, $isdigittmp$4$i$29 = 0, $isdigittmp$4$i$45 = 0, $isdigittmp$4$i$i = 0, $isdigittmp8$i$32 = 0, $isdigittmp8$i$48 = 0, $isdigittmp8$i$i$18 = 0, $rq_major$0 = 0, $val$0$lcssa$i$3880 = 0, $val$0$lcssa$i$5482 = 0, $val$07$i$33 = 0, $val$07$i$49 = 0, $val$07$i$i$19 = 0;
if (!$req_version) {
_global_init();
$$0 = 21865;
return $$0 | 0;
}
if ((HEAP8[$req_version >> 0] | 0) == 1) if ((HEAP8[$req_version + 1 >> 0] | 0) == 1) {
$$0 = __gcry_compat_identification() | 0;
return $$0 | 0;
}
_global_init();
$7 = HEAP8[$req_version >> 0] | 0;
if ($7 << 24 >> 24 == 48) if (((HEAP8[$req_version + 1 >> 0] | 0) + -48 | 0) >>> 0 < 10) {
$$0 = 0;
return $$0 | 0;
}
$isdigittmp$4$i$i = ($7 << 24 >> 24) + -48 | 0;
if ($isdigittmp$4$i$i >>> 0 < 10) {
$$016$i$i$20 = $req_version;
$isdigittmp8$i$i$18 = $isdigittmp$4$i$i;
$val$07$i$i$19 = 0;
while (1) {
$14 = ($val$07$i$i$19 * 10 | 0) + $isdigittmp8$i$i$18 | 0;
$15 = $$016$i$i$20 + 1 | 0;
$16 = HEAP8[$15 >> 0] | 0;
$isdigittmp8$i$i$18 = ($16 << 24 >> 24) + -48 | 0;
if ($isdigittmp8$i$i$18 >>> 0 >= 10) {
$$lcssa125 = $14;
$$lcssa126 = $15;
$$lcssa127 = $16;
break;
} else {
$$016$i$i$20 = $15;
$val$07$i$i$19 = $14;
}
}
if (($$lcssa125 | 0) < 0) {
$$0 = 0;
return $$0 | 0;
} else {
$$0$i$ph$i = $$lcssa126;
$19 = $$lcssa127;
$rq_major$0 = $$lcssa125;
}
} else {
$$0$i$ph$i = $req_version;
$19 = $7;
$rq_major$0 = 0;
}
if ($19 << 24 >> 24 != 46) {
$$0 = 0;
return $$0 | 0;
}
$21 = $$0$i$ph$i + 1 | 0;
$22 = HEAP8[$21 >> 0] | 0;
if ($22 << 24 >> 24 == 48) if (((HEAP8[$$0$i$ph$i + 2 >> 0] | 0) + -48 | 0) >>> 0 < 10) {
$$0 = 0;
return $$0 | 0;
}
$isdigittmp$4$i$29 = ($22 << 24 >> 24) + -48 | 0;
if ($isdigittmp$4$i$29 >>> 0 < 10) {
$$016$i$34 = $21;
$isdigittmp8$i$32 = $isdigittmp$4$i$29;
$val$07$i$33 = 0;
while (1) {
$29 = ($val$07$i$33 * 10 | 0) + $isdigittmp8$i$32 | 0;
$30 = $$016$i$34 + 1 | 0;
$31 = HEAP8[$30 >> 0] | 0;
$isdigittmp8$i$32 = ($31 << 24 >> 24) + -48 | 0;
if ($isdigittmp8$i$32 >>> 0 >= 10) {
$$lcssa122 = $29;
$$lcssa123 = $30;
$$lcssa124 = $31;
break;
} else {
$$016$i$34 = $30;
$val$07$i$33 = $29;
}
}
if (($$lcssa122 | 0) < 0) {
$$0 = 0;
return $$0 | 0;
} else {
$$01$lcssa$i$3981 = $$lcssa123;
$34 = $$lcssa124;
$val$0$lcssa$i$3880 = $$lcssa122;
}
} else {
$$01$lcssa$i$3981 = $21;
$34 = $22;
$val$0$lcssa$i$3880 = 0;
}
if ($34 << 24 >> 24 != 46) {
$$0 = 0;
return $$0 | 0;
}
$36 = $$01$lcssa$i$3981 + 1 | 0;
$37 = HEAP8[$36 >> 0] | 0;
if ($37 << 24 >> 24 == 48) if (((HEAP8[$$01$lcssa$i$3981 + 2 >> 0] | 0) + -48 | 0) >>> 0 < 10) {
$$0 = 0;
return $$0 | 0;
}
$isdigittmp$4$i$45 = ($37 << 24 >> 24) + -48 | 0;
if ($isdigittmp$4$i$45 >>> 0 < 10) {
$$016$i$50 = $36;
$isdigittmp8$i$48 = $isdigittmp$4$i$45;
$val$07$i$49 = 0;
while (1) {
$44 = ($val$07$i$49 * 10 | 0) + $isdigittmp8$i$48 | 0;
$$016$i$50 = $$016$i$50 + 1 | 0;
$isdigittmp8$i$48 = (HEAP8[$$016$i$50 >> 0] | 0) + -48 | 0;
if ($isdigittmp8$i$48 >>> 0 >= 10) {
$$lcssa = $44;
break;
} else $val$07$i$49 = $44;
}
if (($$lcssa | 0) < 0) {
$$0 = 0;
return $$0 | 0;
} else $val$0$lcssa$i$5482 = $$lcssa;
} else $val$0$lcssa$i$5482 = 0;
if (($rq_major$0 | 0) < 1) {
$$0 = 21865;
return $$0 | 0;
}
if (($rq_major$0 | 0) == 1) {
if (($val$0$lcssa$i$3880 | 0) < 7) {
$$0 = 21865;
return $$0 | 0;
}
if (($val$0$lcssa$i$3880 | 0) == 7 & ($val$0$lcssa$i$5482 | 0) == 0) {
$$0 = 21865;
return $$0 | 0;
}
}
$$0 = 0;
return $$0 | 0;
}
function _TALER_amount_cmp($a1, $a2) {
$a1 = $a1 | 0;
$a2 = $a2 | 0;
var $$0 = 0, $10 = 0, $12 = 0, $15 = 0, $17 = 0, $18 = 0, $20 = 0, $23 = 0, $25 = 0, $30 = 0, $31 = 0, $32 = 0, $49 = 0, $50 = 0, $51 = 0, $64 = 0, $66 = 0, $67 = 0, $69 = 0, $a1$idx$i = 0, $a2$idx$i = 0, $n1$sroa$7$0 = 0, $n1$sroa$7$1 = 0, $n1$sroa$7$2 = 0, $n2$sroa$7$0 = 0, $n2$sroa$7$1 = 0, $n2$sroa$7$2 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer6 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$a1$idx$i = $a1 + 12 | 0;
if (HEAP8[$a1$idx$i >> 0] | 0) {
$a2$idx$i = $a2 + 12 | 0;
if (HEAP8[$a2$idx$i >> 0] | 0) if (!(_strcasecmp($a1$idx$i, $a2$idx$i) | 0)) {
$10 = $a1;
$12 = HEAP32[$10 >> 2] | 0;
$15 = HEAP32[$10 + 4 >> 2] | 0;
$17 = HEAP32[$a1 + 8 >> 2] | 0;
$18 = $a2;
$20 = HEAP32[$18 >> 2] | 0;
$23 = HEAP32[$18 + 4 >> 2] | 0;
$25 = HEAP32[$a2 + 8 >> 2] | 0;
L5 : do if (($12 | 0) == -1 & ($15 | 0) == -1) {
$n1$sroa$7$1 = $17;
label = 14;
} else {
$31 = $12;
$32 = $15;
$n1$sroa$7$0 = $17;
while (1) {
if ($n1$sroa$7$0 >>> 0 <= 999999) {
$64 = $31;
$67 = $32;
$n1$sroa$7$2 = $n1$sroa$7$0;
break L5;
}
$30 = $n1$sroa$7$0 + -1e6 | 0;
$31 = _i64Add($31 | 0, $32 | 0, 1, 0) | 0;
$32 = tempRet0;
if (($31 | 0) == -1 & ($32 | 0) == -1) {
$n1$sroa$7$1 = $30;
label = 14;
break;
} else $n1$sroa$7$0 = $30;
}
} while (0);
if ((label | 0) == 14) if ($n1$sroa$7$1 >>> 0 > 999999) {
if ((HEAP32[3817] | 0) == -1) HEAP32[3817] = _GNUNET_get_log_call_status(1, 0, 60850, 60859, 329) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[3817] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 60850;
HEAP32[$vararg_buffer2 + 4 >> 2] = 329;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
} else {
$64 = -1;
$67 = -1;
$n1$sroa$7$2 = $n1$sroa$7$1;
}
L24 : do if (($20 | 0) == -1 & ($23 | 0) == -1) {
$n2$sroa$7$1 = $25;
label = 25;
} else {
$50 = $20;
$51 = $23;
$n2$sroa$7$0 = $25;
while (1) {
if ($n2$sroa$7$0 >>> 0 <= 999999) {
$66 = $50;
$69 = $51;
$n2$sroa$7$2 = $n2$sroa$7$0;
break L24;
}
$49 = $n2$sroa$7$0 + -1e6 | 0;
$50 = _i64Add($50 | 0, $51 | 0, 1, 0) | 0;
$51 = tempRet0;
if (($50 | 0) == -1 & ($51 | 0) == -1) {
$n2$sroa$7$1 = $49;
label = 25;
break;
} else $n2$sroa$7$0 = $49;
}
} while (0);
if ((label | 0) == 25) if ($n2$sroa$7$1 >>> 0 > 999999) {
if ((HEAP32[3818] | 0) == -1) HEAP32[3818] = _GNUNET_get_log_call_status(1, 0, 60850, 60859, 331) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[3818] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer6 >> 2] = 60850;
HEAP32[$vararg_buffer6 + 4 >> 2] = 331;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer6);
_GNUNET_abort_();
} else {
$66 = -1;
$69 = -1;
$n2$sroa$7$2 = $n2$sroa$7$1;
}
if (!(($64 | 0) == ($66 | 0) & ($67 | 0) == ($69 | 0))) {
$$0 = $67 >>> 0 < $69 >>> 0 | ($67 | 0) == ($69 | 0) & $64 >>> 0 < $66 >>> 0 ? -1 : 1;
STACKTOP = sp;
return $$0 | 0;
}
if ($n1$sroa$7$2 >>> 0 < $n2$sroa$7$2 >>> 0) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$$0 = $n1$sroa$7$2 >>> 0 > $n2$sroa$7$2 >>> 0 & 1;
STACKTOP = sp;
return $$0 | 0;
}
}
if ((HEAP32[3816] | 0) == -1) HEAP32[3816] = _GNUNET_get_log_call_status(1, 0, 60850, 60859, 325) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[3816] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 60850;
HEAP32[$vararg_buffer + 4 >> 2] = 325;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function _mix_pool($pool) {
$pool = $pool | 0;
var $0 = 0, $13 = 0, $17 = 0, $21 = 0, $25 = 0, $29 = 0, $33 = 0, $37 = 0, $4 = 0, $41 = 0, $45 = 0, $49 = 0, $53 = 0, $57 = 0, $61 = 0, $65 = 0, $69 = 0, $73 = 0, $77 = 0, $81 = 0, $85 = 0, $89 = 0, $i$14 = 0, $md = 0, $n$07 = 0, $p$06 = 0, $pp$0$pool = 0, $pp$05 = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$md = sp;
$0 = $pool + 600 | 0;
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 615, 50615);
__gcry_rmd160_init($md);
dest = $0;
src = $pool + 580 | 0;
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));
$4 = $pool + 620 | 0;
dest = $4;
src = $pool;
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));
__gcry_rmd160_mixblock($md, $0);
dest = $pool;
src = $0;
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));
if ((HEAP32[17567] | 0) != 0 & (HEAP32[17556] | 0) == ($pool | 0)) {
HEAP8[$pool >> 0] = HEAP8[$pool >> 0] ^ HEAP8[75738];
$13 = $pool + 1 | 0;
HEAP8[$13 >> 0] = HEAP8[$13 >> 0] ^ HEAP8[75739];
$17 = $pool + 2 | 0;
HEAP8[$17 >> 0] = HEAP8[$17 >> 0] ^ HEAP8[75740];
$21 = $pool + 3 | 0;
HEAP8[$21 >> 0] = HEAP8[$21 >> 0] ^ HEAP8[75741];
$25 = $pool + 4 | 0;
HEAP8[$25 >> 0] = HEAP8[$25 >> 0] ^ HEAP8[75742];
$29 = $pool + 5 | 0;
HEAP8[$29 >> 0] = HEAP8[$29 >> 0] ^ HEAP8[75743];
$33 = $pool + 6 | 0;
HEAP8[$33 >> 0] = HEAP8[$33 >> 0] ^ HEAP8[75744];
$37 = $pool + 7 | 0;
HEAP8[$37 >> 0] = HEAP8[$37 >> 0] ^ HEAP8[75745];
$41 = $pool + 8 | 0;
HEAP8[$41 >> 0] = HEAP8[$41 >> 0] ^ HEAP8[75746];
$45 = $pool + 9 | 0;
HEAP8[$45 >> 0] = HEAP8[$45 >> 0] ^ HEAP8[75747];
$49 = $pool + 10 | 0;
HEAP8[$49 >> 0] = HEAP8[$49 >> 0] ^ HEAP8[75748];
$53 = $pool + 11 | 0;
HEAP8[$53 >> 0] = HEAP8[$53 >> 0] ^ HEAP8[75749];
$57 = $pool + 12 | 0;
HEAP8[$57 >> 0] = HEAP8[$57 >> 0] ^ HEAP8[75750];
$61 = $pool + 13 | 0;
HEAP8[$61 >> 0] = HEAP8[$61 >> 0] ^ HEAP8[75751];
$65 = $pool + 14 | 0;
HEAP8[$65 >> 0] = HEAP8[$65 >> 0] ^ HEAP8[75752];
$69 = $pool + 15 | 0;
HEAP8[$69 >> 0] = HEAP8[$69 >> 0] ^ HEAP8[75753];
$73 = $pool + 16 | 0;
HEAP8[$73 >> 0] = HEAP8[$73 >> 0] ^ HEAP8[75754];
$77 = $pool + 17 | 0;
HEAP8[$77 >> 0] = HEAP8[$77 >> 0] ^ HEAP8[75755];
$81 = $pool + 18 | 0;
HEAP8[$81 >> 0] = HEAP8[$81 >> 0] ^ HEAP8[75756];
$85 = $pool + 19 | 0;
HEAP8[$85 >> 0] = HEAP8[$85 >> 0] ^ HEAP8[75757];
$n$07 = 1;
$p$06 = $pool;
} else {
$n$07 = 1;
$p$06 = $pool;
}
do {
dest = $0;
src = $p$06;
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));
$89 = $p$06 + 40 | 0;
if (($p$06 + 104 | 0) >>> 0 < $0 >>> 0) {
dest = $4;
src = $89;
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 {
$i$14 = 20;
$pp$05 = $89;
while (1) {
$pp$0$pool = $pp$05 >>> 0 < $0 >>> 0 ? $pp$05 : $pool;
HEAP8[$0 + $i$14 >> 0] = HEAP8[$pp$0$pool >> 0] | 0;
$i$14 = $i$14 + 1 | 0;
if (($i$14 | 0) == 64) break; else $pp$05 = $pp$0$pool + 1 | 0;
}
}
$p$06 = $p$06 + 20 | 0;
__gcry_rmd160_mixblock($md, $0);
dest = $p$06;
src = $0;
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));
$n$07 = $n$07 + 1 | 0;
} while (($n$07 | 0) != 30);
if ((HEAP32[17556] | 0) != ($pool | 0)) {
___gcry_burn_stack(384);
STACKTOP = sp;
return;
}
__gcry_rmd160_hash_buffer(75738, $pool, 600);
HEAP32[17567] = 1;
___gcry_burn_stack(384);
STACKTOP = sp;
return;
}
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, $1 = 0, $13 = 0, $15 = 0, $19 = 0, $20 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $27 = 0, $29 = 0, $3 = 0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $39 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $7 = 0, $9 = 0, $date_abs = 0, $end_abs = 0, $end_abs$byval_copy = 0, $expire_abs = 0, $master_key$sroa$0 = 0, $signkey_key$sroa$0 = 0, $skval = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
$end_abs$byval_copy = sp + 24 | 0;
$skval = sp + 96 | 0;
$date_abs = sp + 16 | 0;
$expire_abs = sp + 8 | 0;
$end_abs = sp;
$master_key$sroa$0 = sp + 64 | 0;
$signkey_key$sroa$0 = sp + 32 | 0;
dest = $master_key$sroa$0;
src = $master;
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));
dest = $signkey_key$sroa$0;
src = $signkey;
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));
dest = $skval + 72 | 0;
src = $master_key$sroa$0;
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));
$1 = ___muldi3($date | 0, 0, 1e6, 0) | 0;
$3 = $date_abs;
HEAP32[$3 >> 2] = $1;
HEAP32[$3 + 4 >> 2] = tempRet0;
$7 = ___muldi3($expire | 0, 0, 1e6, 0) | 0;
$9 = $expire_abs;
HEAP32[$9 >> 2] = $7;
HEAP32[$9 + 4 >> 2] = tempRet0;
$13 = ___muldi3($end | 0, 0, 1e6, 0) | 0;
$15 = $end_abs;
HEAP32[$15 >> 2] = $13;
HEAP32[$15 + 4 >> 2] = tempRet0;
HEAP32[$end_abs$byval_copy >> 2] = HEAP32[$date_abs >> 2];
HEAP32[$end_abs$byval_copy + 4 >> 2] = HEAP32[$date_abs + 4 >> 2];
$19 = _GNUNET_TIME_absolute_hton($end_abs$byval_copy) | 0;
$20 = tempRet0;
$22 = $skval + 104 | 0;
$23 = $22;
HEAP8[$23 >> 0] = $19;
HEAP8[$23 + 1 >> 0] = $19 >> 8;
HEAP8[$23 + 2 >> 0] = $19 >> 16;
HEAP8[$23 + 3 >> 0] = $19 >> 24;
$25 = $22 + 4 | 0;
HEAP8[$25 >> 0] = $20;
HEAP8[$25 + 1 >> 0] = $20 >> 8;
HEAP8[$25 + 2 >> 0] = $20 >> 16;
HEAP8[$25 + 3 >> 0] = $20 >> 24;
HEAP32[$end_abs$byval_copy >> 2] = HEAP32[$expire_abs >> 2];
HEAP32[$end_abs$byval_copy + 4 >> 2] = HEAP32[$expire_abs + 4 >> 2];
$26 = _GNUNET_TIME_absolute_hton($end_abs$byval_copy) | 0;
$27 = tempRet0;
$29 = $skval + 112 | 0;
$30 = $29;
HEAP8[$30 >> 0] = $26;
HEAP8[$30 + 1 >> 0] = $26 >> 8;
HEAP8[$30 + 2 >> 0] = $26 >> 16;
HEAP8[$30 + 3 >> 0] = $26 >> 24;
$32 = $29 + 4 | 0;
HEAP8[$32 >> 0] = $27;
HEAP8[$32 + 1 >> 0] = $27 >> 8;
HEAP8[$32 + 2 >> 0] = $27 >> 16;
HEAP8[$32 + 3 >> 0] = $27 >> 24;
HEAP32[$end_abs$byval_copy >> 2] = HEAP32[$end_abs >> 2];
HEAP32[$end_abs$byval_copy + 4 >> 2] = HEAP32[$end_abs + 4 >> 2];
$33 = _GNUNET_TIME_absolute_hton($end_abs$byval_copy) | 0;
$34 = tempRet0;
$36 = $skval + 120 | 0;
$37 = $36;
HEAP8[$37 >> 0] = $33;
HEAP8[$37 + 1 >> 0] = $33 >> 8;
HEAP8[$37 + 2 >> 0] = $33 >> 16;
HEAP8[$37 + 3 >> 0] = $33 >> 24;
$39 = $36 + 4 | 0;
HEAP8[$39 >> 0] = $34;
HEAP8[$39 + 1 >> 0] = $34 >> 8;
HEAP8[$39 + 2 >> 0] = $34 >> 16;
HEAP8[$39 + 3 >> 0] = $34 >> 24;
dest = $skval + 128 | 0;
src = $signkey_key$sroa$0;
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));
$41 = _htonl(1024) | 0;
$42 = $skval + 64 | 0;
$43 = $skval + 68 | 0;
HEAP8[$43 >> 0] = $41;
HEAP8[$43 + 1 >> 0] = $41 >> 8;
HEAP8[$43 + 2 >> 0] = $41 >> 16;
HEAP8[$43 + 3 >> 0] = $41 >> 24;
$44 = _htonl(96) | 0;
HEAP8[$42 >> 0] = $44;
HEAP8[$42 + 1 >> 0] = $44 >> 8;
HEAP8[$42 + 2 >> 0] = $44 >> 16;
HEAP8[$42 + 3 >> 0] = $44 >> 24;
$$ = (_GNUNET_CRYPTO_eddsa_verify(1024, $42, $sig, $master) | 0) == 1 & 1;
STACKTOP = sp;
return $$ | 0;
}
function __gcry_md_map_name($string) {
$string = $string | 0;
var $$0 = 0, $$0$i$ph$i = 0, $$01$i = 0, $$ph = 0, $14 = 0, $17 = 0, $19 = 0, $21 = 0, $28 = 0, $30 = 0, $32 = 0, $39 = 0, $41 = 0, $43 = 0, $50 = 0, $52 = 0, $54 = 0, $6 = 0, $61 = 0, $63 = 0, $65 = 0, $72 = 0, $75 = 0, $79 = 0, $8 = 0, $i$08$i = 0, $j$04$1$i$i = 0, $j$04$2$i$i = 0, $j$04$3$i$i = 0, $j$04$4$i$i = 0, $j$04$5$i$i = 0, $j$04$i$i = 0, label = 0;
if (!$string) {
$$0 = 0;
return $$0 | 0;
}
if (!(_strncmp($string, 36557, 4) | 0)) label = 4; else if (!(_strncmp($string, 36562, 4) | 0)) label = 4; else $$01$i = $string;
if ((label | 0) == 4) $$01$i = $string + 4 | 0;
$6 = HEAP32[1891] | 0;
L9 : do if (!$6) label = 9; else {
$8 = HEAP32[$6 >> 2] | 0;
if (!$8) label = 9; else {
$14 = $8;
$j$04$i$i = 0;
while (1) {
$j$04$i$i = $j$04$i$i + 1 | 0;
if (!(_strcasecmp($$01$i, $14) | 0)) {
$$0$i$ph$i = 7544;
$72 = $8;
$75 = $6;
label = 29;
break L9;
}
$14 = HEAP32[$6 + ($j$04$i$i << 2) >> 2] | 0;
if (!$14) {
label = 9;
break;
}
}
}
} while (0);
L14 : do if ((label | 0) == 9) {
$17 = HEAP32[1923] | 0;
if ($17) {
$19 = HEAP32[$17 >> 2] | 0;
if ($19) {
$21 = $19;
$j$04$1$i$i = 0;
do {
$j$04$1$i$i = $j$04$1$i$i + 1 | 0;
if (!(_strcasecmp($$01$i, $21) | 0)) {
$$0$i$ph$i = 7672;
$72 = $19;
$75 = $17;
label = 29;
break L14;
}
$21 = HEAP32[$17 + ($j$04$1$i$i << 2) >> 2] | 0;
} while (($21 | 0) != 0);
}
}
$28 = HEAP32[1910] | 0;
if ($28) {
$30 = HEAP32[$28 >> 2] | 0;
if ($30) {
$32 = $30;
$j$04$2$i$i = 0;
do {
$j$04$2$i$i = $j$04$2$i$i + 1 | 0;
if (!(_strcasecmp($$01$i, $32) | 0)) {
$$0$i$ph$i = 7620;
$72 = $30;
$75 = $28;
label = 29;
break L14;
}
$32 = HEAP32[$28 + ($j$04$2$i$i << 2) >> 2] | 0;
} while (($32 | 0) != 0);
}
}
$39 = HEAP32[1941] | 0;
if ($39) {
$41 = HEAP32[$39 >> 2] | 0;
if ($41) {
$43 = $41;
$j$04$3$i$i = 0;
do {
$j$04$3$i$i = $j$04$3$i$i + 1 | 0;
if (!(_strcasecmp($$01$i, $43) | 0)) {
$$0$i$ph$i = 7744;
$72 = $41;
$75 = $39;
label = 29;
break L14;
}
$43 = HEAP32[$39 + ($j$04$3$i$i << 2) >> 2] | 0;
} while (($43 | 0) != 0);
}
}
$50 = HEAP32[1954] | 0;
if ($50) {
$52 = HEAP32[$50 >> 2] | 0;
if ($52) {
$54 = $52;
$j$04$4$i$i = 0;
do {
$j$04$4$i$i = $j$04$4$i$i + 1 | 0;
if (!(_strcasecmp($$01$i, $54) | 0)) {
$$0$i$ph$i = 7796;
$72 = $52;
$75 = $50;
label = 29;
break L14;
}
$54 = HEAP32[$50 + ($j$04$4$i$i << 2) >> 2] | 0;
} while (($54 | 0) != 0);
}
}
$61 = HEAP32[1850] | 0;
if ($61) {
$63 = HEAP32[$61 >> 2] | 0;
if ($63) {
$65 = $63;
$j$04$5$i$i = 0;
do {
$j$04$5$i$i = $j$04$5$i$i + 1 | 0;
if (!(_strcasecmp($$01$i, $65) | 0)) {
$$0$i$ph$i = 7380;
$72 = $63;
$75 = $61;
label = 29;
break L14;
}
$65 = HEAP32[$61 + ($j$04$5$i$i << 2) >> 2] | 0;
} while (($65 | 0) != 0);
}
}
} while (0);
L44 : do if ((label | 0) == 29) if ($72) {
$79 = $72;
$i$08$i = 0;
while (1) {
$i$08$i = $i$08$i + 1 | 0;
if (!(_strcasecmp($$01$i, $79) | 0)) break;
$79 = HEAP32[$75 + ($i$08$i << 2) >> 2] | 0;
if (!$79) break L44;
}
$$0 = HEAP32[$$0$i$ph$i >> 2] | 0;
return $$0 | 0;
} while (0);
if (!(_strcasecmp($string, HEAP32[1888] | 0) | 0)) $$ph = 7544; else if (!(_strcasecmp($string, HEAP32[1920] | 0) | 0)) $$ph = 7672; else if (!(_strcasecmp($string, HEAP32[1907] | 0) | 0)) $$ph = 7620; else if (!(_strcasecmp($string, HEAP32[1938] | 0) | 0)) $$ph = 7744; else if (!(_strcasecmp($string, HEAP32[1951] | 0) | 0)) $$ph = 7796; else if (!(_strcasecmp($string, HEAP32[1847] | 0) | 0)) $$ph = 7380; else {
$$0 = 0;
return $$0 | 0;
}
$$0 = HEAP32[$$ph >> 2] | 0;
return $$0 | 0;
}
function __gcry_cipher_cmac_set_subkeys($c) {
$c = $c | 0;
var $$lcssa = 0, $$lcssa16 = 0, $$lcssa17 = 0, $$lcssa18 = 0, $$lcssa2 = 0, $$phi$trans$insert$i = 0, $$pre$i = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $18 = 0, $19 = 0, $23 = 0, $25 = 0, $3 = 0, $33 = 0, $34 = 0, $37 = 0, $38 = 0, $39 = 0, $45 = 0, $46 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $70 = 0, $72 = 0, $75 = 0, $77 = 0, $8 = 0, $84 = 0, $86 = 0, $_vlen$0$lcssa27$i = 0, $_vlen$08$i = 0, $_vlen$1$i = 0, $_vlen$3$ph$i = 0, $_vlen$36$i = 0, $_vptr$0$lcssa28$i = 0, $_vptr$07$i = 0, $_vptr$1$i = 0, $_vptr$3$ph$i = 0, $_vptr$35$i = 0, $carry$013$us$i = 0, $i$012$us$i = 0, $u$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$u$i = sp;
$1 = HEAP32[$c + 12 >> 2] | 0;
$3 = HEAP32[$1 + 20 >> 2] | 0;
if ($3 >>> 0 > 16) __gcry_bug(46190, 113, 46204);
_memset($u$i | 0, 0, $3 | 0) | 0;
$8 = FUNCTION_TABLE_iiii[HEAP32[$1 + 36 >> 2] & 63]($c + 496 | 0, $u$i, $u$i) | 0;
$10 = $3 + -1 | 0;
$12 = ($3 | 0) == 16 ? 135 : 27;
$13 = $u$i + $10 | 0;
$14 = $c + 128 | 0;
if (($10 | 0) > -1) {
$carry$013$us$i = 0;
$i$012$us$i = $10;
while (1) {
$18 = $u$i + $i$012$us$i | 0;
$19 = HEAP8[$18 >> 0] | 0;
$23 = ($19 & 255) >>> 7;
$25 = (($19 & 255) << 1 | $carry$013$us$i & 255) & 255;
HEAP8[$18 >> 0] = $25;
HEAP8[$14 + 1 + $i$012$us$i >> 0] = $25;
if (($i$012$us$i | 0) > 0) {
$carry$013$us$i = $23;
$i$012$us$i = $i$012$us$i + -1 | 0;
} else {
$$lcssa18 = $23;
break;
}
}
$33 = (HEAPU8[$13 >> 0] | 0) ^ ($$lcssa18 << 24 >> 24 != 0 ? $12 : 0);
$34 = $33 & 255;
HEAP8[$14 + 1 + $10 >> 0] = $34;
$37 = ($34 & 255) >>> 7;
$38 = $33 << 1 & 255;
HEAP8[$13 >> 0] = $38;
$39 = $14 + 17 + $10 | 0;
HEAP8[$39 >> 0] = $38;
if (($10 | 0) > 0) {
$70 = $3 + -2 | 0;
$72 = $37;
while (1) {
$$phi$trans$insert$i = $u$i + $70 | 0;
$$pre$i = HEAP8[$$phi$trans$insert$i >> 0] | 0;
$75 = ($$pre$i & 255) >>> 7;
$77 = (($$pre$i & 255) << 1 | $72 & 255) & 255;
HEAP8[$$phi$trans$insert$i >> 0] = $77;
HEAP8[$14 + 17 + $70 >> 0] = $77;
if (($70 | 0) > 0) {
$70 = $70 + -1 | 0;
$72 = $75;
} else {
$$lcssa17 = $75;
break;
}
}
$$lcssa2 = $$lcssa17;
$84 = HEAP8[$13 >> 0] | 0;
} else {
$$lcssa2 = $37;
$84 = $38;
}
$86 = ($84 & 255 ^ ($$lcssa2 << 24 >> 24 != 0 ? $12 : 0)) & 255;
HEAP8[$13 >> 0] = $86;
HEAP8[$39 >> 0] = $86;
} else {
$15 = HEAP8[$13 >> 0] | 0;
HEAP8[$14 + 1 + $10 >> 0] = $15;
HEAP8[$14 + 17 + $10 >> 0] = $15;
}
if (!($u$i & 4)) {
$_vlen$0$lcssa27$i = 16;
$_vptr$0$lcssa28$i = $u$i;
label = 11;
} else {
$_vlen$08$i = 16;
$_vptr$07$i = $u$i;
while (1) {
HEAP8[$_vptr$07$i >> 0] = 0;
$45 = $_vptr$07$i + 1 | 0;
$46 = $_vlen$08$i + -1 | 0;
if (($46 | 0) != 0 & ($45 & 7 | 0) != 0) {
$_vlen$08$i = $46;
$_vptr$07$i = $45;
} else {
$$lcssa = $45;
$$lcssa16 = $46;
break;
}
}
if ($$lcssa16 >>> 0 < 8) {
$_vlen$3$ph$i = $$lcssa16;
$_vptr$3$ph$i = $$lcssa;
} else {
$_vlen$0$lcssa27$i = $$lcssa16;
$_vptr$0$lcssa28$i = $$lcssa;
label = 11;
}
}
if ((label | 0) == 11) {
$53 = $_vlen$0$lcssa27$i + -8 | 0;
$54 = $53 & -8;
$55 = $54 + 8 | 0;
$_vlen$1$i = $_vlen$0$lcssa27$i;
$_vptr$1$i = $_vptr$0$lcssa28$i;
while (1) {
$56 = $_vptr$1$i;
HEAP32[$56 >> 2] = 0;
HEAP32[$56 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$ph$i = $53 - $54 | 0;
$_vptr$3$ph$i = $_vptr$0$lcssa28$i + $55 | 0;
}
if ($_vlen$3$ph$i) {
$_vlen$36$i = $_vlen$3$ph$i;
$_vptr$35$i = $_vptr$3$ph$i;
while (1) {
HEAP8[$_vptr$35$i >> 0] = 0;
$_vlen$36$i = $_vlen$36$i + -1 | 0;
if (!$_vlen$36$i) break; else $_vptr$35$i = $_vptr$35$i + 1 | 0;
}
}
if (!$8) {
STACKTOP = sp;
return 0;
}
___gcry_burn_stack($8 + 16 | 0);
STACKTOP = sp;
return 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 $$03 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $100 = 0, $105 = 0, $109 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $123 = 0, $127 = 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, $35 = 0, $4 = 0, $40 = 0, $45 = 0, $50 = 0, $55 = 0, $6 = 0, $60 = 0, $65 = 0, $7 = 0, $70 = 0, $75 = 0, $8 = 0, $80 = 0, $85 = 0, $9 = 0, $90 = 0, $95 = 0, $inbuf$02 = 0, $outbuf$01 = 0;
$1 = HEAP32[$context + 496 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
$4 = HEAP32[$context + 488 >> 2] | 0;
if (!$nblocks) return;
$6 = $iv;
$7 = $iv + 4 | 0;
$8 = $iv + 8 | 0;
$9 = $iv + 12 | 0;
$10 = $iv + 1 | 0;
$11 = $iv + 2 | 0;
$12 = $iv + 3 | 0;
$13 = $iv + 4 | 0;
$14 = $iv + 5 | 0;
$15 = $iv + 6 | 0;
$16 = $iv + 7 | 0;
$17 = $iv + 8 | 0;
$18 = $iv + 9 | 0;
$19 = $iv + 10 | 0;
$20 = $iv + 11 | 0;
$21 = $iv + 12 | 0;
$22 = $iv + 13 | 0;
$23 = $iv + 14 | 0;
$24 = $iv + 15 | 0;
$$03 = $nblocks;
$inbuf$02 = $inbuf_arg;
$outbuf$01 = $outbuf_arg;
while (1) {
$25 = FUNCTION_TABLE_iiii[$4 & 63]($context, $iv, $iv) | 0;
if (!(($outbuf$01 | $6 | $inbuf$02) & 3)) {
$113 = HEAP32[$iv >> 2] ^ HEAP32[$inbuf$02 >> 2];
HEAP32[$iv >> 2] = $113;
HEAP32[$outbuf$01 >> 2] = $113;
$118 = HEAP32[$7 >> 2] ^ HEAP32[$inbuf$02 + 4 >> 2];
HEAP32[$7 >> 2] = $118;
HEAP32[$outbuf$01 + 4 >> 2] = $118;
$123 = HEAP32[$8 >> 2] ^ HEAP32[$inbuf$02 + 8 >> 2];
HEAP32[$8 >> 2] = $123;
HEAP32[$outbuf$01 + 8 >> 2] = $123;
$127 = HEAP32[$9 >> 2] ^ HEAP32[$inbuf$02 + 12 >> 2];
HEAP32[$9 >> 2] = $127;
HEAP32[$outbuf$01 + 12 >> 2] = $127;
} else {
$35 = HEAP8[$iv >> 0] ^ HEAP8[$inbuf$02 >> 0];
HEAP8[$iv >> 0] = $35;
HEAP8[$outbuf$01 >> 0] = $35;
$40 = HEAP8[$10 >> 0] ^ HEAP8[$inbuf$02 + 1 >> 0];
HEAP8[$10 >> 0] = $40;
HEAP8[$outbuf$01 + 1 >> 0] = $40;
$45 = HEAP8[$11 >> 0] ^ HEAP8[$inbuf$02 + 2 >> 0];
HEAP8[$11 >> 0] = $45;
HEAP8[$outbuf$01 + 2 >> 0] = $45;
$50 = HEAP8[$12 >> 0] ^ HEAP8[$inbuf$02 + 3 >> 0];
HEAP8[$12 >> 0] = $50;
HEAP8[$outbuf$01 + 3 >> 0] = $50;
$55 = HEAP8[$13 >> 0] ^ HEAP8[$inbuf$02 + 4 >> 0];
HEAP8[$13 >> 0] = $55;
HEAP8[$outbuf$01 + 4 >> 0] = $55;
$60 = HEAP8[$14 >> 0] ^ HEAP8[$inbuf$02 + 5 >> 0];
HEAP8[$14 >> 0] = $60;
HEAP8[$outbuf$01 + 5 >> 0] = $60;
$65 = HEAP8[$15 >> 0] ^ HEAP8[$inbuf$02 + 6 >> 0];
HEAP8[$15 >> 0] = $65;
HEAP8[$outbuf$01 + 6 >> 0] = $65;
$70 = HEAP8[$16 >> 0] ^ HEAP8[$inbuf$02 + 7 >> 0];
HEAP8[$16 >> 0] = $70;
HEAP8[$outbuf$01 + 7 >> 0] = $70;
$75 = HEAP8[$17 >> 0] ^ HEAP8[$inbuf$02 + 8 >> 0];
HEAP8[$17 >> 0] = $75;
HEAP8[$outbuf$01 + 8 >> 0] = $75;
$80 = HEAP8[$18 >> 0] ^ HEAP8[$inbuf$02 + 9 >> 0];
HEAP8[$18 >> 0] = $80;
HEAP8[$outbuf$01 + 9 >> 0] = $80;
$85 = HEAP8[$19 >> 0] ^ HEAP8[$inbuf$02 + 10 >> 0];
HEAP8[$19 >> 0] = $85;
HEAP8[$outbuf$01 + 10 >> 0] = $85;
$90 = HEAP8[$20 >> 0] ^ HEAP8[$inbuf$02 + 11 >> 0];
HEAP8[$20 >> 0] = $90;
HEAP8[$outbuf$01 + 11 >> 0] = $90;
$95 = HEAP8[$21 >> 0] ^ HEAP8[$inbuf$02 + 12 >> 0];
HEAP8[$21 >> 0] = $95;
HEAP8[$outbuf$01 + 12 >> 0] = $95;
$100 = HEAP8[$22 >> 0] ^ HEAP8[$inbuf$02 + 13 >> 0];
HEAP8[$22 >> 0] = $100;
HEAP8[$outbuf$01 + 13 >> 0] = $100;
$105 = HEAP8[$23 >> 0] ^ HEAP8[$inbuf$02 + 14 >> 0];
HEAP8[$23 >> 0] = $105;
HEAP8[$outbuf$01 + 14 >> 0] = $105;
$109 = HEAP8[$24 >> 0] ^ HEAP8[$inbuf$02 + 15 >> 0];
HEAP8[$24 >> 0] = $109;
HEAP8[$outbuf$01 + 15 >> 0] = $109;
}
$$03 = $$03 + -1 | 0;
if (!$$03) {
$$lcssa = $25;
break;
} else {
$inbuf$02 = $inbuf$02 + 16 | 0;
$outbuf$01 = $outbuf$01 + 16 | 0;
}
}
if (!$$lcssa) return;
___gcry_burn_stack($$lcssa + 16 | 0);
return;
}
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 $$03 = 0, $$lcssa = 0, $1 = 0, $10 = 0, $100 = 0, $104 = 0, $108 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $122 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $30 = 0, $35 = 0, $4 = 0, $40 = 0, $45 = 0, $50 = 0, $55 = 0, $6 = 0, $60 = 0, $65 = 0, $7 = 0, $70 = 0, $75 = 0, $8 = 0, $80 = 0, $85 = 0, $9 = 0, $90 = 0, $95 = 0, $inbuf$02 = 0, $outbuf$01 = 0;
$1 = HEAP32[$context + 496 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
$4 = HEAP32[$context + 488 >> 2] | 0;
if (!$nblocks) return;
$6 = $iv;
$7 = $iv + 4 | 0;
$8 = $iv + 8 | 0;
$9 = $iv + 12 | 0;
$10 = $iv + 1 | 0;
$11 = $iv + 2 | 0;
$12 = $iv + 3 | 0;
$13 = $iv + 5 | 0;
$14 = $iv + 6 | 0;
$15 = $iv + 7 | 0;
$16 = $iv + 9 | 0;
$17 = $iv + 10 | 0;
$18 = $iv + 11 | 0;
$19 = $iv + 13 | 0;
$20 = $iv + 14 | 0;
$21 = $iv + 15 | 0;
$$03 = $nblocks;
$inbuf$02 = $inbuf_arg;
$outbuf$01 = $outbuf_arg;
while (1) {
$22 = FUNCTION_TABLE_iiii[$4 & 63]($context, $iv, $iv) | 0;
if (!(($outbuf$01 | $6 | $inbuf$02) & 3)) {
$108 = HEAP32[$inbuf$02 >> 2] | 0;
HEAP32[$outbuf$01 >> 2] = HEAP32[$iv >> 2] ^ $108;
HEAP32[$iv >> 2] = $108;
$113 = HEAP32[$inbuf$02 + 4 >> 2] | 0;
HEAP32[$outbuf$01 + 4 >> 2] = HEAP32[$7 >> 2] ^ $113;
HEAP32[$7 >> 2] = $113;
$118 = HEAP32[$inbuf$02 + 8 >> 2] | 0;
HEAP32[$outbuf$01 + 8 >> 2] = HEAP32[$8 >> 2] ^ $118;
HEAP32[$8 >> 2] = $118;
$122 = HEAP32[$inbuf$02 + 12 >> 2] | 0;
HEAP32[$outbuf$01 + 12 >> 2] = HEAP32[$9 >> 2] ^ $122;
HEAP32[$9 >> 2] = $122;
} else {
$30 = HEAP8[$inbuf$02 >> 0] | 0;
HEAP8[$outbuf$01 >> 0] = HEAP8[$iv >> 0] ^ $30;
HEAP8[$iv >> 0] = $30;
$35 = HEAP8[$inbuf$02 + 1 >> 0] | 0;
HEAP8[$outbuf$01 + 1 >> 0] = HEAP8[$10 >> 0] ^ $35;
HEAP8[$10 >> 0] = $35;
$40 = HEAP8[$inbuf$02 + 2 >> 0] | 0;
HEAP8[$outbuf$01 + 2 >> 0] = HEAP8[$11 >> 0] ^ $40;
HEAP8[$11 >> 0] = $40;
$45 = HEAP8[$inbuf$02 + 3 >> 0] | 0;
HEAP8[$outbuf$01 + 3 >> 0] = HEAP8[$12 >> 0] ^ $45;
HEAP8[$12 >> 0] = $45;
$50 = HEAP8[$inbuf$02 + 4 >> 0] | 0;
HEAP8[$outbuf$01 + 4 >> 0] = HEAP8[$7 >> 0] ^ $50;
HEAP8[$7 >> 0] = $50;
$55 = HEAP8[$inbuf$02 + 5 >> 0] | 0;
HEAP8[$outbuf$01 + 5 >> 0] = HEAP8[$13 >> 0] ^ $55;
HEAP8[$13 >> 0] = $55;
$60 = HEAP8[$inbuf$02 + 6 >> 0] | 0;
HEAP8[$outbuf$01 + 6 >> 0] = HEAP8[$14 >> 0] ^ $60;
HEAP8[$14 >> 0] = $60;
$65 = HEAP8[$inbuf$02 + 7 >> 0] | 0;
HEAP8[$outbuf$01 + 7 >> 0] = HEAP8[$15 >> 0] ^ $65;
HEAP8[$15 >> 0] = $65;
$70 = HEAP8[$inbuf$02 + 8 >> 0] | 0;
HEAP8[$outbuf$01 + 8 >> 0] = HEAP8[$8 >> 0] ^ $70;
HEAP8[$8 >> 0] = $70;
$75 = HEAP8[$inbuf$02 + 9 >> 0] | 0;
HEAP8[$outbuf$01 + 9 >> 0] = HEAP8[$16 >> 0] ^ $75;
HEAP8[$16 >> 0] = $75;
$80 = HEAP8[$inbuf$02 + 10 >> 0] | 0;
HEAP8[$outbuf$01 + 10 >> 0] = HEAP8[$17 >> 0] ^ $80;
HEAP8[$17 >> 0] = $80;
$85 = HEAP8[$inbuf$02 + 11 >> 0] | 0;
HEAP8[$outbuf$01 + 11 >> 0] = HEAP8[$18 >> 0] ^ $85;
HEAP8[$18 >> 0] = $85;
$90 = HEAP8[$inbuf$02 + 12 >> 0] | 0;
HEAP8[$outbuf$01 + 12 >> 0] = HEAP8[$9 >> 0] ^ $90;
HEAP8[$9 >> 0] = $90;
$95 = HEAP8[$inbuf$02 + 13 >> 0] | 0;
HEAP8[$outbuf$01 + 13 >> 0] = HEAP8[$19 >> 0] ^ $95;
HEAP8[$19 >> 0] = $95;
$100 = HEAP8[$inbuf$02 + 14 >> 0] | 0;
HEAP8[$outbuf$01 + 14 >> 0] = HEAP8[$20 >> 0] ^ $100;
HEAP8[$20 >> 0] = $100;
$104 = HEAP8[$inbuf$02 + 15 >> 0] | 0;
HEAP8[$outbuf$01 + 15 >> 0] = HEAP8[$21 >> 0] ^ $104;
HEAP8[$21 >> 0] = $104;
}
$$03 = $$03 + -1 | 0;
if (!$$03) {
$$lcssa = $22;
break;
} else {
$inbuf$02 = $inbuf$02 + 16 | 0;
$outbuf$01 = $outbuf$01 + 16 | 0;
}
}
if (!$$lcssa) return;
___gcry_burn_stack($$lcssa + 16 | 0);
return;
}
function _rsa_sign($r_sig, $s_data, $keyparms) {
$r_sig = $r_sig | 0;
$s_data = $s_data | 0;
$keyparms = $keyparms | 0;
var $$0$i = 0, $0 = 0, $10 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $33 = 0, $44 = 0, $45 = 0, $47 = 0, $48 = 0, $5 = 0, $66 = 0, $ctx = 0, $data = 0, $rc$0 = 0, $rc$1 = 0, $sig$0 = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
$vararg_buffer14 = sp + 48 | 0;
$vararg_buffer11 = sp + 40 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer = sp;
$ctx = sp + 88 | 0;
$data = sp + 80 | 0;
$sk = sp + 56 | 0;
HEAP32[$data >> 2] = 0;
HEAP32[$sk >> 2] = 0;
HEAP32[$sk + 4 >> 2] = 0;
HEAP32[$sk + 8 >> 2] = 0;
HEAP32[$sk + 12 >> 2] = 0;
HEAP32[$sk + 16 >> 2] = 0;
HEAP32[$sk + 20 >> 2] = 0;
$0 = __gcry_sexp_find_token($keyparms, 38737, 1) | 0;
if (!$0) $$0$i = 0; else {
$2 = __gcry_sexp_nth_mpi($0, 1, 5) | 0;
__gcry_sexp_release($0);
if (!$2) $66 = 0; else $66 = __gcry_mpi_get_nbits($2) | 0;
__gcry_mpi_release($2);
$$0$i = $66;
}
__gcry_pk_util_init_encoding_ctx($ctx, 2, $$0$i);
$5 = __gcry_pk_util_data_to_mpi($s_data, $data, $ctx) | 0;
do if (!$5) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40641, HEAP32[$data >> 2] | 0);
$10 = HEAP32[$data >> 2] | 0;
if ($10) if (HEAP32[$10 + 12 >> 2] & 4) {
$rc$1 = 79;
$sig$0 = 0;
break;
}
$16 = $sk + 4 | 0;
$17 = $sk + 8 | 0;
$18 = $sk + 12 | 0;
$19 = $sk + 16 | 0;
$20 = $sk + 20 | 0;
HEAP32[$vararg_buffer >> 2] = $sk;
HEAP32[$vararg_buffer + 4 >> 2] = $16;
HEAP32[$vararg_buffer + 8 >> 2] = $17;
HEAP32[$vararg_buffer + 12 >> 2] = $18;
HEAP32[$vararg_buffer + 16 >> 2] = $19;
HEAP32[$vararg_buffer + 20 >> 2] = $20;
HEAP32[$vararg_buffer + 24 >> 2] = 0;
$21 = __gcry_sexp_extract_param($keyparms, 0, 40657, $vararg_buffer) | 0;
if (!$21) {
if (__gcry_get_debug_flag(1) | 0) {
__gcry_log_printmpi(40667, HEAP32[$sk >> 2] | 0);
__gcry_log_printmpi(40683, HEAP32[$16 >> 2] | 0);
if (!(__gcry_fips_mode() | 0)) {
__gcry_log_printmpi(40699, HEAP32[$17 >> 2] | 0);
__gcry_log_printmpi(40715, HEAP32[$18 >> 2] | 0);
__gcry_log_printmpi(40731, HEAP32[$19 >> 2] | 0);
__gcry_log_printmpi(40747, HEAP32[$20 >> 2] | 0);
}
}
$33 = __gcry_mpi_new(0) | 0;
_secret($33, HEAP32[$data >> 2] | 0, $sk);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40763, $33);
if (!(HEAP32[$ctx + 12 >> 2] & 4)) {
HEAP32[$vararg_buffer11 >> 2] = $33;
$rc$1 = __gcry_sexp_build($r_sig, 0, 40799, $vararg_buffer11) | 0;
$sig$0 = $33;
break;
}
$44 = ((__gcry_mpi_get_nbits(HEAP32[$sk >> 2] | 0) | 0) + 7 | 0) >>> 3;
$45 = __gcry_mpi_to_octet_string($vararg_buffer, 0, $33, $44) | 0;
if (!$45) {
$47 = HEAP32[$vararg_buffer >> 2] | 0;
HEAP32[$vararg_buffer7 >> 2] = $44;
HEAP32[$vararg_buffer7 + 4 >> 2] = $47;
$48 = __gcry_sexp_build($r_sig, 0, 40779, $vararg_buffer7) | 0;
__gcry_free(HEAP32[$vararg_buffer >> 2] | 0);
$rc$0 = $48;
} else $rc$0 = $45;
$rc$1 = $rc$0;
$sig$0 = $33;
} else {
$rc$1 = $21;
$sig$0 = 0;
}
} else {
$rc$1 = $5;
$sig$0 = 0;
} while (0);
__gcry_mpi_release($sig$0);
__gcry_mpi_release(HEAP32[$sk >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 4 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 8 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 12 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 16 >> 2] | 0);
__gcry_mpi_release(HEAP32[$sk + 20 >> 2] | 0);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
STACKTOP = sp;
return $rc$1 | 0;
}
HEAP32[$vararg_buffer14 >> 2] = _gpg_strerror($rc$1) | 0;
__gcry_log_debug(40819, $vararg_buffer14);
STACKTOP = sp;
return $rc$1 | 0;
}
function _fcntl($fd, $cmd, $varargs) {
$fd = $fd | 0;
$cmd = $cmd | 0;
$varargs = $varargs | 0;
var $$ = 0, $$0 = 0, $$2 = 0, $12 = 0, $19 = 0, $22 = 0, $26 = 0, $30 = 0, $5 = 0, $6 = 0, $ap = 0, $ex = 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, $vararg_buffer41 = 0, $vararg_buffer46 = 0, $vararg_buffer8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$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;
$5 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$6 = HEAP32[$5 >> 2] | 0;
HEAP32[$ap >> 2] = $5 + 4;
$$ = ($cmd | 0) == 4 ? $6 | 32768 : $6;
L1 : do switch ($cmd | 0) {
case 14:
{
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = 14;
HEAP32[$vararg_buffer + 8 >> 2] = $$;
$$2 = ___syscall_ret(___syscall221(221, $vararg_buffer | 0) | 0) | 0;
break;
}
case 9:
{
HEAP32[$vararg_buffer3 >> 2] = $fd;
HEAP32[$vararg_buffer3 + 4 >> 2] = 16;
HEAP32[$vararg_buffer3 + 8 >> 2] = $ex;
$12 = ___syscall221(221, $vararg_buffer3 | 0) | 0;
switch ($12 | 0) {
case -22:
{
HEAP32[$vararg_buffer8 >> 2] = $fd;
HEAP32[$vararg_buffer8 + 4 >> 2] = 9;
HEAP32[$vararg_buffer8 + 8 >> 2] = $$;
$$0 = ___syscall221(221, $vararg_buffer8 | 0) | 0;
break;
}
case 0:
{
$19 = HEAP32[$ex + 4 >> 2] | 0;
$$0 = (HEAP32[$ex >> 2] | 0) == 2 ? 0 - $19 | 0 : $19;
break;
}
default:
$$0 = ___syscall_ret($12) | 0;
}
$$2 = $$0;
break;
}
case 1030:
{
HEAP32[$vararg_buffer13 >> 2] = $fd;
HEAP32[$vararg_buffer13 + 4 >> 2] = 1030;
HEAP32[$vararg_buffer13 + 8 >> 2] = $$;
$22 = ___syscall221(221, $vararg_buffer13 | 0) | 0;
if (($22 | 0) != -22) {
if (($22 | 0) > -1) {
HEAP32[$vararg_buffer18 >> 2] = $22;
HEAP32[$vararg_buffer18 + 4 >> 2] = 2;
HEAP32[$vararg_buffer18 + 8 >> 2] = 1;
___syscall221(221, $vararg_buffer18 | 0) | 0;
}
$$2 = ___syscall_ret($22) | 0;
break L1;
}
HEAP32[$vararg_buffer23 >> 2] = $fd;
HEAP32[$vararg_buffer23 + 4 >> 2] = 1030;
HEAP32[$vararg_buffer23 + 8 >> 2] = 0;
$26 = ___syscall221(221, $vararg_buffer23 | 0) | 0;
if (($26 | 0) == -22) {
HEAP32[$vararg_buffer31 >> 2] = $fd;
HEAP32[$vararg_buffer31 + 4 >> 2] = 0;
HEAP32[$vararg_buffer31 + 8 >> 2] = $$;
$30 = ___syscall221(221, $vararg_buffer31 | 0) | 0;
if (($30 | 0) > -1) {
HEAP32[$vararg_buffer36 >> 2] = $30;
HEAP32[$vararg_buffer36 + 4 >> 2] = 2;
HEAP32[$vararg_buffer36 + 8 >> 2] = 1;
___syscall221(221, $vararg_buffer36 | 0) | 0;
}
$$2 = ___syscall_ret($30) | 0;
break L1;
} else {
if (($26 | 0) > -1) {
HEAP32[$vararg_buffer28 >> 2] = $26;
___syscall6(6, $vararg_buffer28 | 0) | 0;
}
$$2 = ___syscall_ret(-22) | 0;
break L1;
}
break;
}
default:
if (($cmd + -12 | 0) >>> 0 < 5) {
HEAP32[$vararg_buffer41 >> 2] = $fd;
HEAP32[$vararg_buffer41 + 4 >> 2] = $cmd;
HEAP32[$vararg_buffer41 + 8 >> 2] = $$;
$$2 = ___syscall_ret(___syscall221(221, $vararg_buffer41 | 0) | 0) | 0;
break L1;
} else {
HEAP32[$vararg_buffer46 >> 2] = $fd;
HEAP32[$vararg_buffer46 + 4 >> 2] = $cmd;
HEAP32[$vararg_buffer46 + 8 >> 2] = $$;
$$2 = ___syscall_ret(___syscall221(221, $vararg_buffer46 | 0) | 0) | 0;
break L1;
}
} while (0);
STACKTOP = sp;
return $$2 | 0;
}
function __gcry_mpi_invm($x, $a, $n) {
$x = $x | 0;
$a = $a | 0;
$n = $n | 0;
var $$0 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $20 = 0, $21 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $32 = 0, $36 = 0, $4 = 0, $41 = 0, $44 = 0, $45 = 0, $48 = 0, $5 = 0, $t1$0 = 0, $t1$1 = 0, $t2$0 = 0, $t2$1 = 0, $t2$2 = 0, $t2$3 = 0, $t3$0 = 0, $t3$1 = 0, $u2$0 = 0, $v2$0 = 0, label = 0;
if (!(__gcry_mpi_cmp_ui($a, 0) | 0)) {
$$0 = 0;
return $$0 | 0;
}
if (!(__gcry_mpi_cmp_ui($n, 1) | 0)) {
$$0 = 0;
return $$0 | 0;
}
$4 = __gcry_mpi_copy($a) | 0;
$5 = __gcry_mpi_copy($n) | 0;
L7 : do if (!(__gcry_mpi_test_bit($4, 0) | 0)) do {
if (__gcry_mpi_test_bit($5, 0) | 0) break L7;
__gcry_mpi_rshift($4, $4, 1);
__gcry_mpi_rshift($5, $5, 1);
} while ((__gcry_mpi_test_bit($4, 0) | 0) == 0); while (0);
$12 = __gcry_mpi_test_bit($5, 0) | 0;
$13 = __gcry_mpi_alloc_set_ui(1) | 0;
$14 = ($12 | 0) != 0;
if ($14) $u2$0 = 0; else $u2$0 = __gcry_mpi_alloc_set_ui(0) | 0;
$16 = __gcry_mpi_copy($4) | 0;
$17 = __gcry_mpi_copy($5) | 0;
if ($14) $v2$0 = 0; else {
$20 = __gcry_mpi_alloc(HEAP32[$4 + 4 >> 2] | 0) | 0;
__gcry_mpi_sub($20, $13, $4);
$v2$0 = $20;
}
$21 = __gcry_mpi_copy($5) | 0;
if (!(__gcry_mpi_test_bit($4, 0) | 0)) {
$32 = __gcry_mpi_alloc_set_ui(1) | 0;
if ($14) $t2$1 = 0; else $t2$1 = __gcry_mpi_alloc_set_ui(0) | 0;
$t1$0 = $32;
$t2$2 = $t2$1;
$t3$0 = __gcry_mpi_copy($4) | 0;
label = 17;
} else {
$24 = __gcry_mpi_alloc_set_ui(0) | 0;
if ($14) $t2$0 = 0; else {
$25 = __gcry_mpi_alloc_set_ui(1) | 0;
HEAP32[$25 + 8 >> 2] = 1;
$t2$0 = $25;
}
$27 = __gcry_mpi_copy($5) | 0;
$28 = $27 + 8 | 0;
HEAP32[$28 >> 2] = (HEAP32[$28 >> 2] | 0) == 0 & 1;
$t1$1 = $24;
$t2$3 = $t2$0;
$t3$1 = $27;
}
while (1) {
if ((label | 0) == 17) {
label = 0;
$36 = (__gcry_mpi_test_bit($t1$0, 0) | 0) != 0;
if ($14) {
if ($36) __gcry_mpi_add($t1$0, $t1$0, $5);
__gcry_mpi_rshift($t1$0, $t1$0, 1);
__gcry_mpi_rshift($t3$0, $t3$0, 1);
$t1$1 = $t1$0;
$t2$3 = $t2$2;
$t3$1 = $t3$0;
continue;
}
if ($36) label = 20; else if (__gcry_mpi_test_bit($t2$2, 0) | 0) label = 20;
if ((label | 0) == 20) {
label = 0;
__gcry_mpi_add($t1$0, $t1$0, $5);
__gcry_mpi_sub($t2$2, $t2$2, $4);
}
__gcry_mpi_rshift($t1$0, $t1$0, 1);
__gcry_mpi_rshift($t2$2, $t2$2, 1);
__gcry_mpi_rshift($t3$0, $t3$0, 1);
$t1$1 = $t1$0;
$t2$3 = $t2$2;
$t3$1 = $t3$0;
}
if (!(__gcry_mpi_test_bit($t3$1, 0) | 0)) {
$t1$0 = $t1$1;
$t2$2 = $t2$3;
$t3$0 = $t3$1;
label = 17;
continue;
}
$41 = $t3$1 + 8 | 0;
if (!(HEAP32[$41 >> 2] | 0)) {
__gcry_mpi_set($13, $t1$1) | 0;
if (!$14) __gcry_mpi_set($u2$0, $t2$3) | 0;
__gcry_mpi_set($16, $t3$1) | 0;
} else {
__gcry_mpi_sub($17, $5, $t1$1);
$44 = $4 + 8 | 0;
$45 = HEAP32[$44 >> 2] | 0;
HEAP32[$44 >> 2] = ($45 | 0) == 0 & 1;
if (!$14) __gcry_mpi_sub($v2$0, $4, $t2$3);
HEAP32[$44 >> 2] = $45;
$48 = HEAP32[$41 >> 2] | 0;
HEAP32[$41 >> 2] = ($48 | 0) == 0 & 1;
__gcry_mpi_set($21, $t3$1) | 0;
HEAP32[$41 >> 2] = $48;
}
__gcry_mpi_sub($t1$1, $13, $17);
if (!$14) __gcry_mpi_sub($t2$3, $u2$0, $v2$0);
__gcry_mpi_sub($t3$1, $16, $21);
if (HEAP32[$t1$1 + 8 >> 2] | 0) {
__gcry_mpi_add($t1$1, $t1$1, $5);
if (!$14) __gcry_mpi_sub($t2$3, $t2$3, $4);
}
if (!(__gcry_mpi_cmp_ui($t3$1, 0) | 0)) break; else {
$t1$0 = $t1$1;
$t2$2 = $t2$3;
$t3$0 = $t3$1;
label = 17;
}
}
__gcry_mpi_set($x, $13) | 0;
__gcry_mpi_free($13);
__gcry_mpi_free($17);
__gcry_mpi_free($t1$1);
if (!$14) {
__gcry_mpi_free($u2$0);
__gcry_mpi_free($v2$0);
__gcry_mpi_free($t2$3);
}
__gcry_mpi_free($16);
__gcry_mpi_free($21);
__gcry_mpi_free($t3$1);
__gcry_mpi_free($4);
__gcry_mpi_free($5);
$$0 = 1;
return $$0 | 0;
}
function __gcry_md_algo_info($algo, $what, $buffer, $nbytes) {
$algo = $algo | 0;
$what = $what | 0;
$buffer = $buffer | 0;
$nbytes = $nbytes | 0;
var $$ph$i = 0, $$ph$i$11 = 0, $$ph$i$4 = 0, $$ph$i$6 = 0, $19 = 0, $45 = 0, $47 = 0, $48 = 0, $71 = 0, $73 = 0, $ec$0$i = 0, $rc$1 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
switch ($what | 0) {
case 8:
{
if (($buffer | 0) != 0 | ($nbytes | 0) != 0) {
$rc$1 = 45;
STACKTOP = sp;
return $rc$1 | 0;
}
if ((HEAP32[1886] | 0) == ($algo | 0)) {
$$ph$i = 7544;
label = 9;
} else if ((HEAP32[1918] | 0) == ($algo | 0)) {
$$ph$i = 7672;
label = 9;
} else if ((HEAP32[1905] | 0) == ($algo | 0)) {
$$ph$i = 7620;
label = 9;
} else if ((HEAP32[1936] | 0) == ($algo | 0)) {
$$ph$i = 7744;
label = 9;
} else if ((HEAP32[1949] | 0) == ($algo | 0)) {
$$ph$i = 7796;
label = 9;
} else if ((HEAP32[1845] | 0) == ($algo | 0)) {
$$ph$i = 7380;
label = 9;
}
if ((label | 0) == 9) if (!(HEAP8[$$ph$i + 4 >> 0] & 1)) {
$rc$1 = 0;
STACKTOP = sp;
return $rc$1 | 0;
}
$rc$1 = 5;
STACKTOP = sp;
return $rc$1 | 0;
}
case 10:
{
$19 = (HEAP32[1886] | 0) == ($algo | 0);
if ($19) $$ph$i$6 = 7544; else if ((HEAP32[1918] | 0) == ($algo | 0)) $$ph$i$6 = 7672; else if ((HEAP32[1905] | 0) == ($algo | 0)) $$ph$i$6 = 7620; else if ((HEAP32[1936] | 0) == ($algo | 0)) $$ph$i$6 = 7744; else if ((HEAP32[1949] | 0) == ($algo | 0)) $$ph$i$6 = 7796; else if ((HEAP32[1845] | 0) == ($algo | 0)) $$ph$i$6 = 7380; else {
$rc$1 = 5;
STACKTOP = sp;
return $rc$1 | 0;
}
if (HEAP8[$$ph$i$6 + 4 >> 0] & 1) {
$rc$1 = 5;
STACKTOP = sp;
return $rc$1 | 0;
}
if ($19) $$ph$i$11 = 7544; else if ((HEAP32[1918] | 0) == ($algo | 0)) $$ph$i$11 = 7672; else if ((HEAP32[1905] | 0) == ($algo | 0)) $$ph$i$11 = 7620; else if ((HEAP32[1936] | 0) == ($algo | 0)) $$ph$i$11 = 7744; else if ((HEAP32[1949] | 0) == ($algo | 0)) $$ph$i$11 = 7796; else if ((HEAP32[1845] | 0) == ($algo | 0)) $$ph$i$11 = 7380; else {
HEAP32[$vararg_buffer >> 2] = $algo;
__gcry_log_bug(36806, $vararg_buffer);
}
$45 = HEAP32[$$ph$i$11 + 16 >> 2] | 0;
$47 = HEAP32[$$ph$i$11 + 12 >> 2] | 0;
$48 = ($buffer | 0) != 0;
if ($48) {
if ((HEAP32[$nbytes >> 2] | 0) >>> 0 >= $45 >>> 0) {
_memcpy($buffer | 0, $47 | 0, $45 | 0) | 0;
HEAP32[$nbytes >> 2] = $45;
$rc$1 = 0;
STACKTOP = sp;
return $rc$1 | 0;
}
} else if ($nbytes) {
HEAP32[$nbytes >> 2] = $45;
$rc$1 = 0;
STACKTOP = sp;
return $rc$1 | 0;
}
$rc$1 = $48 ? 66 : 45;
STACKTOP = sp;
return $rc$1 | 0;
}
case 57:
{
if (!$nbytes) $73 = 0; else $73 = HEAP32[$nbytes >> 2] | 0;
if ((HEAP32[1886] | 0) == ($algo | 0)) {
$$ph$i$4 = 7544;
label = 39;
} else if ((HEAP32[1918] | 0) == ($algo | 0)) {
$$ph$i$4 = 7672;
label = 39;
} else if ((HEAP32[1905] | 0) == ($algo | 0)) {
$$ph$i$4 = 7620;
label = 39;
} else if ((HEAP32[1936] | 0) == ($algo | 0)) {
$$ph$i$4 = 7744;
label = 39;
} else if ((HEAP32[1949] | 0) == ($algo | 0)) {
$$ph$i$4 = 7796;
label = 39;
} else if ((HEAP32[1845] | 0) == ($algo | 0)) {
$$ph$i$4 = 7380;
label = 39;
} else $ec$0$i = 69;
do if ((label | 0) == 39) {
$71 = HEAP32[$$ph$i$4 + 48 >> 2] | 0;
if (HEAP8[$$ph$i$4 + 4 >> 0] & 1) {
$ec$0$i = ($71 | 0) != 0 ? 5 : 69;
break;
}
if (!$71) $ec$0$i = 69; else $ec$0$i = FUNCTION_TABLE_iiii[$71 & 63]($algo, $73, 0) | 0;
} while (0);
$rc$1 = $ec$0$i & 65535;
STACKTOP = sp;
return $rc$1 | 0;
}
default:
{
$rc$1 = 61;
STACKTOP = sp;
return $rc$1 | 0;
}
}
return 0;
}
function __gcry_cipher_gcm_setkey($c) {
$c = $c | 0;
var $0 = 0, $100 = 0, $108 = 0, $110 = 0, $111 = 0, $113 = 0, $114 = 0, $116 = 0, $117 = 0, $118 = 0, $128 = 0, $131 = 0, $134 = 0, $136 = 0, $137 = 0, $139 = 0, $141 = 0, $143 = 0, $171 = 0, $175 = 0, $23 = 0, $24 = 0, $25 = 0, $42 = 0, $43 = 0, $44 = 0, $61 = 0, $62 = 0, $63 = 0, $7 = 0, $80 = 0, $81 = 0, $82 = 0, $86 = 0, $90 = 0, $92 = 0, $93 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $j$02$2$i$i = 0;
$0 = $c + 208 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
HEAP32[$0 + 12 >> 2] = 0;
FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 36 >> 2] & 63]($c + 496 | 0, $0, $0) | 0;
HEAP32[$c + 224 >> 2] = 2;
$7 = $c + 228 | 0;
HEAP32[$7 >> 2] = 0;
HEAP32[$7 + 4 >> 2] = 0;
HEAP32[$7 + 8 >> 2] = 0;
HEAP32[$7 + 12 >> 2] = 0;
$23 = HEAPU8[$0 + 3 >> 0] | 0;
$24 = (HEAPU8[$0 + 1 >> 0] | 0) << 16 | (HEAPU8[$0 >> 0] | 0) << 24 | (HEAPU8[$0 + 2 >> 0] | 0) << 8 | $23;
$25 = $c + 356 | 0;
HEAP32[$25 >> 2] = $24;
$42 = HEAPU8[$0 + 7 >> 0] | 0;
$43 = (HEAPU8[$0 + 5 >> 0] | 0) << 16 | (HEAPU8[$0 + 4 >> 0] | 0) << 24 | (HEAPU8[$0 + 6 >> 0] | 0) << 8 | $42;
$44 = $c + 360 | 0;
HEAP32[$44 >> 2] = $43;
$61 = HEAPU8[$c + 219 >> 0] | 0;
$62 = (HEAPU8[$c + 217 >> 0] | 0) << 16 | (HEAPU8[$c + 216 >> 0] | 0) << 24 | (HEAPU8[$c + 218 >> 0] | 0) << 8 | $61;
$63 = $c + 364 | 0;
HEAP32[$63 >> 2] = $62;
$80 = HEAPU8[$c + 223 >> 0] | 0;
$81 = (HEAPU8[$c + 221 >> 0] | 0) << 16 | (HEAPU8[$c + 220 >> 0] | 0) << 24 | (HEAPU8[$c + 222 >> 0] | 0) << 8 | $80;
$82 = $c + 368 | 0;
HEAP32[$82 >> 2] = $81;
$86 = $c + 304 | 0;
$90 = $81 >>> 1;
$92 = $90 | $61 << 31;
HEAP32[$86 >> 2] = $92;
$93 = $62 >>> 1;
$95 = $93 | $42 << 31;
HEAP32[$c + 300 >> 2] = $95;
$96 = $43 >>> 1;
$98 = $96 | $23 << 31;
HEAP32[$c + 296 >> 2] = $98;
$99 = $24 >>> 1;
$100 = (($80 & 1 | 0) != 0 ? -520093696 : 0) ^ $99;
HEAP32[$c + 292 >> 2] = $100;
$108 = $92 >>> 1;
$110 = $108 | $93 << 31;
HEAP32[$c + 272 >> 2] = $110;
$111 = $95 >>> 1;
$113 = $111 | $96 << 31;
HEAP32[$c + 268 >> 2] = $113;
$114 = $98 >>> 1;
$116 = $114 | $99 << 31;
HEAP32[$c + 264 >> 2] = $116;
$117 = $100 >>> 1;
$118 = (($90 & 1 | 0) != 0 ? -520093696 : 0) ^ $117;
HEAP32[$c + 260 >> 2] = $118;
$128 = $110 >>> 1 | $111 << 31;
HEAP32[$c + 256 >> 2] = $128;
$131 = $113 >>> 1 | $114 << 31;
HEAP32[$c + 252 >> 2] = $131;
$134 = $117 << 31 | $116 >>> 1;
HEAP32[$c + 248 >> 2] = $134;
$136 = (($108 & 1 | 0) != 0 ? -520093696 : 0) ^ $118 >>> 1;
HEAP32[$c + 244 >> 2] = $136;
$137 = $136 ^ $118;
HEAP32[$c + 276 >> 2] = $137;
$139 = $134 ^ $116;
HEAP32[$c + 280 >> 2] = $139;
$141 = $131 ^ $113;
HEAP32[$c + 284 >> 2] = $141;
$143 = $128 ^ $110;
HEAP32[$c + 288 >> 2] = $143;
HEAP32[$c + 308 >> 2] = $136 ^ $100;
HEAP32[$c + 312 >> 2] = $134 ^ $98;
HEAP32[$c + 316 >> 2] = $131 ^ $95;
HEAP32[$c + 320 >> 2] = $128 ^ $92;
HEAP32[$c + 324 >> 2] = $118 ^ $100;
HEAP32[$c + 328 >> 2] = $116 ^ $98;
HEAP32[$c + 332 >> 2] = $113 ^ $95;
HEAP32[$c + 336 >> 2] = $110 ^ $92;
HEAP32[$c + 340 >> 2] = $137 ^ $100;
HEAP32[$c + 344 >> 2] = $139 ^ $98;
HEAP32[$c + 348 >> 2] = $141 ^ $95;
HEAP32[$c + 352 >> 2] = HEAP32[$86 >> 2] ^ $143;
$j$02$2$i$i = 1;
do {
$171 = $j$02$2$i$i << 2;
$175 = $171 + 32 | 0;
HEAP32[$c + 228 + ($175 << 2) >> 2] = HEAP32[$c + 228 + ($171 << 2) >> 2] ^ HEAP32[$25 >> 2];
HEAP32[$c + 228 + (($175 | 1) << 2) >> 2] = HEAP32[$c + 228 + (($171 | 1) << 2) >> 2] ^ HEAP32[$44 >> 2];
HEAP32[$c + 228 + (($175 | 2) << 2) >> 2] = HEAP32[$c + 228 + (($171 | 2) << 2) >> 2] ^ HEAP32[$63 >> 2];
HEAP32[$c + 228 + (($175 | 3) << 2) >> 2] = HEAP32[$c + 228 + (($171 | 3) << 2) >> 2] ^ HEAP32[$82 >> 2];
$j$02$2$i$i = $j$02$2$i$i + 1 | 0;
} while (($j$02$2$i$i | 0) != 8);
return;
}
function _run_selftests($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $$0$i$ph$i = 0, $$0$i$ph$i$11 = 0, $$0$i$ph$i$5 = 0, $1 = 0, $15 = 0, $17 = 0, $21 = 0, $28 = 0, $36 = 0, $43 = 0, $8 = 0, $ctx$i$i$7 = 0, $ec$0 = 0, $errtxt$0$i = 0, $scratch$i$i = 0, $what$0$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 528 | 0;
$ctx$i$i$7 = sp;
$scratch$i$i = sp + 504 | 0;
switch ($algo | 0) {
case 7:
{
_do_setkey($ctx$i$i$7, 37677, 16) | 0;
$1 = HEAP32[$ctx$i$i$7 + 496 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$i$7 + 488 >> 2] & 63]($ctx$i$i$7, $scratch$i$i, 37693) | 0;
if (!(_memcmp($scratch$i$i, 37709, 16) | 0)) {
_check_decryption_preparation($ctx$i$i$7);
$8 = HEAP32[$ctx$i$i$7 + 500 >> 2] | 0;
if ($8) FUNCTION_TABLE_v[$8 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$i$7 + 492 >> 2] & 63]($ctx$i$i$7, $scratch$i$i, $scratch$i$i) | 0;
if (!(_memcmp($scratch$i$i, 37693, 16) | 0)) {
if (!$extended) {
$ec$0 = 0;
STACKTOP = sp;
return $ec$0 | 0;
}
$15 = _selftest_fips_128_38a(2) | 0;
if (!$15) {
$17 = _selftest_fips_128_38a(5) | 0;
if (!$17) {
$ec$0 = 0;
STACKTOP = sp;
return $ec$0 | 0;
} else {
$errtxt$0$i = $17;
$what$0$i = 37793;
}
} else {
$errtxt$0$i = $15;
$what$0$i = 37789;
}
} else {
$$0$i$ph$i = 37725;
label = 8;
}
} else {
$$0$i$ph$i = 37757;
label = 8;
}
if ((label | 0) == 8) {
$errtxt$0$i = $$0$i$ph$i;
$what$0$i = 37797;
}
if (!$report) {
$ec$0 = 50;
STACKTOP = sp;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](37807, 7, $what$0$i, $errtxt$0$i);
$ec$0 = 50;
STACKTOP = sp;
return $ec$0 | 0;
}
case 8:
{
_do_setkey($ctx$i$i$7, 37814, 24) | 0;
$21 = HEAP32[$ctx$i$i$7 + 496 >> 2] | 0;
if ($21) FUNCTION_TABLE_v[$21 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$i$7 + 488 >> 2] & 63]($ctx$i$i$7, $scratch$i$i, 37838) | 0;
if (!(_memcmp($scratch$i$i, 37854, 16) | 0)) {
_check_decryption_preparation($ctx$i$i$7);
$28 = HEAP32[$ctx$i$i$7 + 500 >> 2] | 0;
if ($28) FUNCTION_TABLE_v[$28 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$i$7 + 492 >> 2] & 63]($ctx$i$i$7, $scratch$i$i, $scratch$i$i) | 0;
if (!(_memcmp($scratch$i$i, 37838, 16) | 0)) {
$ec$0 = 0;
STACKTOP = sp;
return $ec$0 | 0;
} else $$0$i$ph$i$5 = 37870;
} else $$0$i$ph$i$5 = 37902;
if (!$report) {
$ec$0 = 50;
STACKTOP = sp;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](37807, 8, 37797, $$0$i$ph$i$5);
$ec$0 = 50;
STACKTOP = sp;
return $ec$0 | 0;
}
case 9:
{
_do_setkey($ctx$i$i$7, 37934, 32) | 0;
$36 = HEAP32[$ctx$i$i$7 + 496 >> 2] | 0;
if ($36) FUNCTION_TABLE_v[$36 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$i$7 + 488 >> 2] & 63]($ctx$i$i$7, $scratch$i$i, 37966) | 0;
if (!(_memcmp($scratch$i$i, 37982, 16) | 0)) {
_check_decryption_preparation($ctx$i$i$7);
$43 = HEAP32[$ctx$i$i$7 + 500 >> 2] | 0;
if ($43) FUNCTION_TABLE_v[$43 & 3]();
FUNCTION_TABLE_iiii[HEAP32[$ctx$i$i$7 + 492 >> 2] & 63]($ctx$i$i$7, $scratch$i$i, $scratch$i$i) | 0;
if (!(_memcmp($scratch$i$i, 37966, 16) | 0)) {
$ec$0 = 0;
STACKTOP = sp;
return $ec$0 | 0;
} else $$0$i$ph$i$11 = 37998;
} else $$0$i$ph$i$11 = 38030;
if (!$report) {
$ec$0 = 50;
STACKTOP = sp;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](37807, 9, 37797, $$0$i$ph$i$11);
$ec$0 = 50;
STACKTOP = sp;
return $ec$0 | 0;
}
default:
{
$ec$0 = 12;
STACKTOP = sp;
return $ec$0 | 0;
}
}
return 0;
}
function __gcry_mpi_rshift($x, $a, $n) {
$x = $x | 0;
$a = $a | 0;
$n = $n | 0;
var $$pre = 0, $$pre$phiZ2D = 0, $$pre24 = 0, $0 = 0, $1 = 0, $17 = 0, $23 = 0, $24 = 0, $28 = 0, $30 = 0, $31 = 0, $36 = 0, $37 = 0, $41 = 0, $43 = 0, $47 = 0, $50 = 0, $57 = 0, $62 = 0, $63 = 0, $66 = 0, $68 = 0, $71 = 0, $74 = 0, $76 = 0, $8 = 0, $88 = 0, $9 = 0, $i$0$lcssa = 0, $i$08 = 0, $i$116 = 0, $i$2$lcssa = 0, $i$212 = 0, $i$310 = 0, label = 0, $88$looptemp = 0;
$0 = $n >>> 5;
$1 = $n & 31;
if ($x) if (HEAP32[$x + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
L6 : do if (($x | 0) == ($a | 0)) {
$8 = $x + 4 | 0;
$9 = HEAP32[$8 >> 2] | 0;
if ($0 >>> 0 >= $9 >>> 0) {
HEAP32[$8 >> 2] = 0;
return;
}
if (!$0) $24 = $9; else {
$$pre24 = HEAP32[$x + 16 >> 2] | 0;
if (($9 | 0) == ($0 | 0)) $i$0$lcssa = 0; else {
$i$08 = 0;
while (1) {
HEAP32[$$pre24 + ($i$08 << 2) >> 2] = HEAP32[$$pre24 + ($i$08 + $0 << 2) >> 2];
$17 = $i$08 + 1 | 0;
if ($17 >>> 0 < ((HEAP32[$8 >> 2] | 0) - $0 | 0) >>> 0) $i$08 = $17; else {
$i$0$lcssa = $17;
break;
}
}
}
HEAP32[$$pre24 + ($i$0$lcssa << 2) >> 2] = 0;
$23 = (HEAP32[$8 >> 2] | 0) - $0 | 0;
HEAP32[$8 >> 2] = $23;
$24 = $23;
}
if (($1 | 0) != 0 & ($24 | 0) != 0) {
$28 = HEAP32[$x + 16 >> 2] | 0;
__gcry_mpih_rshift($28, $28, $24, $1) | 0;
$$pre$phiZ2D = $8;
} else $$pre$phiZ2D = $8;
} else {
$30 = $a + 4 | 0;
$31 = HEAP32[$30 >> 2] | 0;
HEAP32[$x + 8 >> 2] = HEAP32[$a + 8 >> 2];
$36 = (HEAP32[$x >> 2] | 0) < ($31 | 0);
if (!$0) {
if ($36) __gcry_mpi_resize($x, $31);
$66 = $x + 4 | 0;
HEAP32[$66 >> 2] = $31;
if (!$31) {
$$pre$phiZ2D = $66;
break;
}
if ($1) {
__gcry_mpih_rshift(HEAP32[$x + 16 >> 2] | 0, HEAP32[$a + 16 >> 2] | 0, $31, $1) | 0;
$$pre$phiZ2D = $66;
break;
}
$74 = HEAP32[$a + 16 >> 2] | 0;
$76 = HEAP32[$x + 16 >> 2] | 0;
$i$310 = 0;
while (1) {
HEAP32[$76 + ($i$310 << 2) >> 2] = HEAP32[$74 + ($i$310 << 2) >> 2];
$i$310 = $i$310 + 1 | 0;
if ($i$310 >>> 0 >= (HEAP32[$66 >> 2] | 0) >>> 0) {
$$pre$phiZ2D = $66;
break L6;
}
}
}
if ($36) __gcry_mpi_resize($x, $31);
$37 = $x + 4 | 0;
HEAP32[$37 >> 2] = $31;
if (!(HEAP32[$30 >> 2] | 0)) $50 = 0; else {
$41 = HEAP32[$a + 16 >> 2] | 0;
$43 = HEAP32[$x + 16 >> 2] | 0;
$i$116 = 0;
while (1) {
HEAP32[$43 + ($i$116 << 2) >> 2] = HEAP32[$41 + ($i$116 << 2) >> 2];
$47 = $i$116 + 1 | 0;
if ($47 >>> 0 < (HEAP32[$30 >> 2] | 0) >>> 0) $i$116 = $47; else {
$50 = $47;
break;
}
}
}
HEAP32[$37 >> 2] = $50;
if ($0 >>> 0 >= $50 >>> 0) {
HEAP32[$37 >> 2] = 0;
return;
}
$$pre = HEAP32[$x + 16 >> 2] | 0;
if (($50 | 0) == ($0 | 0)) $i$2$lcssa = 0; else {
$i$212 = 0;
while (1) {
HEAP32[$$pre + ($i$212 << 2) >> 2] = HEAP32[$$pre + ($i$212 + $0 << 2) >> 2];
$57 = $i$212 + 1 | 0;
if ($57 >>> 0 < ((HEAP32[$37 >> 2] | 0) - $0 | 0) >>> 0) $i$212 = $57; else {
$i$2$lcssa = $57;
break;
}
}
}
HEAP32[$$pre + ($i$2$lcssa << 2) >> 2] = 0;
$62 = HEAP32[$37 >> 2] | 0;
$63 = $62 - $0 | 0;
HEAP32[$37 >> 2] = $63;
if (($1 | 0) != 0 & ($62 | 0) != ($0 | 0)) {
__gcry_mpih_rshift($$pre, $$pre, $63, $1) | 0;
$$pre$phiZ2D = $37;
} else $$pre$phiZ2D = $37;
} while (0);
$68 = HEAP32[$$pre$phiZ2D >> 2] | 0;
if (($68 | 0) <= 0) return;
$71 = HEAP32[$x + 16 >> 2] | 0;
$88 = $68;
while (1) {
$88$looptemp = $88;
$88 = $88 + -1 | 0;
if (HEAP32[$71 + ($88 << 2) >> 2] | 0) {
label = 36;
break;
}
HEAP32[$$pre$phiZ2D >> 2] = $88;
if (($88$looptemp | 0) <= 1) {
label = 36;
break;
}
}
if ((label | 0) == 36) return;
}
function _rsa_verify($s_sig, $s_data, $keyparms) {
$s_sig = $s_sig | 0;
$s_data = $s_data | 0;
$keyparms = $keyparms | 0;
var $$0$i = 0, $0 = 0, $14 = 0, $20 = 0, $22 = 0, $23 = 0, $28 = 0, $29 = 0, $35 = 0, $36 = 0, $4 = 0, $41 = 0, $49 = 0, $54 = 0, $6 = 0, $66 = 0, $67 = 0, $9 = 0, $ctx = 0, $data = 0, $l1 = 0, $pk = 0, $rc$0 = 0, $result$0 = 0, $sig = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer2 = sp + 16 | 0;
$vararg_buffer = sp + 8 | 0;
$ctx = sp + 48 | 0;
$l1 = sp + 44 | 0;
$sig = sp + 40 | 0;
$data = sp + 36 | 0;
$pk = sp;
HEAP32[$l1 >> 2] = 0;
HEAP32[$sig >> 2] = 0;
HEAP32[$data >> 2] = 0;
$0 = $pk;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
$4 = __gcry_sexp_find_token($keyparms, 38737, 1) | 0;
if (!$4) $$0$i = 0; else {
$6 = __gcry_sexp_nth_mpi($4, 1, 5) | 0;
__gcry_sexp_release($4);
if (!$6) $67 = 0; else $67 = __gcry_mpi_get_nbits($6) | 0;
__gcry_mpi_release($6);
$$0$i = $67;
}
__gcry_pk_util_init_encoding_ctx($ctx, 3, $$0$i);
$9 = __gcry_pk_util_data_to_mpi($s_data, $data, $ctx) | 0;
do if (!$9) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40540, HEAP32[$data >> 2] | 0);
$14 = HEAP32[$data >> 2] | 0;
if ($14) if (HEAP32[$14 + 12 >> 2] & 4) {
$rc$0 = 79;
$result$0 = 0;
break;
}
$20 = __gcry_pk_util_preparse_sigval($s_sig, 7528, $l1, 0) | 0;
if (!$20) {
$22 = HEAP32[$l1 >> 2] | 0;
HEAP32[$vararg_buffer >> 2] = $sig;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
$23 = __gcry_sexp_extract_param($22, 0, 38735, $vararg_buffer) | 0;
if (!$23) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40556, HEAP32[$sig >> 2] | 0);
$28 = $pk + 4 | 0;
HEAP32[$vararg_buffer2 >> 2] = $pk;
HEAP32[$vararg_buffer2 + 4 >> 2] = $28;
HEAP32[$vararg_buffer2 + 8 >> 2] = 0;
$29 = __gcry_sexp_extract_param($keyparms, 0, 38723, $vararg_buffer2) | 0;
if (!$29) {
if (__gcry_get_debug_flag(1) | 0) {
__gcry_log_printmpi(40572, HEAP32[$pk >> 2] | 0);
__gcry_log_printmpi(40588, HEAP32[$28 >> 2] | 0);
}
$35 = __gcry_mpi_new(0) | 0;
$36 = HEAP32[$sig >> 2] | 0;
if (($35 | 0) == ($36 | 0)) {
$41 = __gcry_mpi_alloc(HEAP32[$35 + 4 >> 2] << 1) | 0;
__gcry_mpi_powm($41, $35, HEAP32[$28 >> 2] | 0, HEAP32[$pk >> 2] | 0);
__gcry_mpi_set($35, $41) | 0;
__gcry_mpi_free($41);
} else __gcry_mpi_powm($35, $36, HEAP32[$28 >> 2] | 0, HEAP32[$pk >> 2] | 0);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(40604, $35);
$49 = HEAP32[$ctx + 32 >> 2] | 0;
if (!$49) {
$54 = (__gcry_mpi_cmp($35, HEAP32[$data >> 2] | 0) | 0) != 0;
$rc$0 = $54 ? 8 : 0;
$result$0 = $35;
break;
} else {
$rc$0 = FUNCTION_TABLE_iii[$49 & 7]($ctx, $35) | 0;
$result$0 = $35;
break;
}
} else {
$rc$0 = $29;
$result$0 = 0;
}
} else {
$rc$0 = $23;
$result$0 = 0;
}
} else {
$rc$0 = $20;
$result$0 = 0;
}
} else {
$rc$0 = $9;
$result$0 = 0;
} while (0);
__gcry_mpi_release($result$0);
__gcry_mpi_release(HEAP32[$pk >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 4 >> 2] | 0);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_mpi_release(HEAP32[$sig >> 2] | 0);
__gcry_sexp_release(HEAP32[$l1 >> 2] | 0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
STACKTOP = sp;
return $rc$0 | 0;
}
if (!$rc$0) $66 = 46844; else $66 = _gpg_strerror($rc$0) | 0;
HEAP32[$vararg_buffer7 >> 2] = $66;
__gcry_log_debug(40620, $vararg_buffer7);
STACKTOP = sp;
return $rc$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 $$014 = 0, $$lcssa = 0, $1 = 0, $11 = 0, $139 = 0, $141 = 0, $145 = 0, $15 = 0, $150 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $6 = 0, $i$0 = 0, $inbuf$012 = 0, $outbuf$013 = 0, $tmp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tmp = sp;
$1 = HEAP32[$context + 496 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
$4 = HEAP32[$context + 488 >> 2] | 0;
if (!$nblocks) {
$6 = $tmp;
HEAP32[$6 >> 2] = 0;
HEAP32[$6 + 4 >> 2] = 0;
$11 = $tmp + 8 | 0;
HEAP32[$11 >> 2] = 0;
HEAP32[$11 + 4 >> 2] = 0;
STACKTOP = sp;
return;
}
$15 = $tmp + 4 | 0;
$16 = $tmp + 8 | 0;
$17 = $tmp + 12 | 0;
$18 = $tmp + 1 | 0;
$19 = $tmp + 2 | 0;
$20 = $tmp + 3 | 0;
$21 = $tmp + 4 | 0;
$22 = $21 + 1 | 0;
$23 = $21 + 2 | 0;
$24 = $21 + 3 | 0;
$25 = $tmp + 8 | 0;
$26 = $25 + 1 | 0;
$27 = $25 + 2 | 0;
$28 = $25 + 3 | 0;
$29 = $tmp + 12 | 0;
$30 = $29 + 1 | 0;
$31 = $29 + 2 | 0;
$32 = $29 + 3 | 0;
$$014 = $nblocks;
$inbuf$012 = $inbuf_arg;
$outbuf$013 = $outbuf_arg;
do {
$33 = FUNCTION_TABLE_iiii[$4 & 63]($context, $tmp, $ctr) | 0;
if (!(($outbuf$013 | $inbuf$012) & 3)) {
HEAP32[$outbuf$013 >> 2] = HEAP32[$inbuf$012 >> 2] ^ HEAP32[$tmp >> 2];
HEAP32[$outbuf$013 + 4 >> 2] = HEAP32[$inbuf$012 + 4 >> 2] ^ HEAP32[$15 >> 2];
HEAP32[$outbuf$013 + 8 >> 2] = HEAP32[$inbuf$012 + 8 >> 2] ^ HEAP32[$16 >> 2];
HEAP32[$outbuf$013 + 12 >> 2] = HEAP32[$inbuf$012 + 12 >> 2] ^ HEAP32[$17 >> 2];
} else {
HEAP8[$outbuf$013 >> 0] = HEAP8[$inbuf$012 >> 0] ^ HEAP8[$tmp >> 0];
HEAP8[$outbuf$013 + 1 >> 0] = HEAP8[$inbuf$012 + 1 >> 0] ^ HEAP8[$18 >> 0];
HEAP8[$outbuf$013 + 2 >> 0] = HEAP8[$inbuf$012 + 2 >> 0] ^ HEAP8[$19 >> 0];
HEAP8[$outbuf$013 + 3 >> 0] = HEAP8[$inbuf$012 + 3 >> 0] ^ HEAP8[$20 >> 0];
HEAP8[$outbuf$013 + 4 >> 0] = HEAP8[$inbuf$012 + 4 >> 0] ^ HEAP8[$21 >> 0];
HEAP8[$outbuf$013 + 5 >> 0] = HEAP8[$inbuf$012 + 5 >> 0] ^ HEAP8[$22 >> 0];
HEAP8[$outbuf$013 + 6 >> 0] = HEAP8[$inbuf$012 + 6 >> 0] ^ HEAP8[$23 >> 0];
HEAP8[$outbuf$013 + 7 >> 0] = HEAP8[$inbuf$012 + 7 >> 0] ^ HEAP8[$24 >> 0];
HEAP8[$outbuf$013 + 8 >> 0] = HEAP8[$inbuf$012 + 8 >> 0] ^ HEAP8[$25 >> 0];
HEAP8[$outbuf$013 + 9 >> 0] = HEAP8[$inbuf$012 + 9 >> 0] ^ HEAP8[$26 >> 0];
HEAP8[$outbuf$013 + 10 >> 0] = HEAP8[$inbuf$012 + 10 >> 0] ^ HEAP8[$27 >> 0];
HEAP8[$outbuf$013 + 11 >> 0] = HEAP8[$inbuf$012 + 11 >> 0] ^ HEAP8[$28 >> 0];
HEAP8[$outbuf$013 + 12 >> 0] = HEAP8[$inbuf$012 + 12 >> 0] ^ HEAP8[$29 >> 0];
HEAP8[$outbuf$013 + 13 >> 0] = HEAP8[$inbuf$012 + 13 >> 0] ^ HEAP8[$30 >> 0];
HEAP8[$outbuf$013 + 14 >> 0] = HEAP8[$inbuf$012 + 14 >> 0] ^ HEAP8[$31 >> 0];
HEAP8[$outbuf$013 + 15 >> 0] = HEAP8[$inbuf$012 + 15 >> 0] ^ HEAP8[$32 >> 0];
}
$outbuf$013 = $outbuf$013 + 16 | 0;
$inbuf$012 = $inbuf$012 + 16 | 0;
$i$0 = 16;
do {
if (($i$0 | 0) <= 0) break;
$i$0 = $i$0 + -1 | 0;
$139 = $ctr + $i$0 | 0;
$141 = (HEAP8[$139 >> 0] | 0) + 1 << 24 >> 24;
HEAP8[$139 >> 0] = $141;
} while ($141 << 24 >> 24 == 0);
$$014 = $$014 + -1 | 0;
} while (($$014 | 0) != 0);
$$lcssa = $33;
$145 = $tmp;
HEAP32[$145 >> 2] = 0;
HEAP32[$145 + 4 >> 2] = 0;
$150 = $tmp + 8 | 0;
HEAP32[$150 >> 2] = 0;
HEAP32[$150 + 4 >> 2] = 0;
if (!$$lcssa) {
STACKTOP = sp;
return;
}
___gcry_burn_stack($$lcssa + 16 | 0);
STACKTOP = sp;
return;
}
function _double_block($b) {
$b = $b | 0;
var $10 = 0, $102 = 0, $106 = 0, $109 = 0, $11 = 0, $112 = 0, $115 = 0, $118 = 0, $121 = 0, $124 = 0, $128 = 0, $131 = 0, $134 = 0, $137 = 0, $14 = 0, $140 = 0, $143 = 0, $146 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $22 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $32 = 0, $34 = 0, $35 = 0, $36 = 0, $39 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $46 = 0, $47 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $7 = 0, $70 = 0, $73 = 0, $75 = 0, $76 = 0, $77 = 0, $80 = 0, $82 = 0, $83 = 0, $84 = 0, $87 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $94 = 0, $95 = 0, $97 = 0, $98 = 0, $99 = 0;
$2 = _bitshift64Shl(HEAPU8[$b >> 0] | 0 | 0, 0, 56) | 0;
$3 = tempRet0;
$4 = $b + 1 | 0;
$7 = _bitshift64Shl(HEAPU8[$4 >> 0] | 0 | 0, 0, 48) | 0;
$9 = $7 | $2;
$10 = tempRet0 | $3;
$11 = $b + 2 | 0;
$14 = _bitshift64Shl(HEAPU8[$11 >> 0] | 0 | 0, 0, 40) | 0;
$16 = $9 | $14;
$17 = $10 | tempRet0;
$18 = $b + 3 | 0;
$21 = $17 | (HEAPU8[$18 >> 0] | 0);
$22 = $b + 4 | 0;
$25 = _bitshift64Shl(HEAPU8[$22 >> 0] | 0 | 0, 0, 24) | 0;
$27 = $16 | $25;
$28 = $21 | tempRet0;
$29 = $b + 5 | 0;
$32 = _bitshift64Shl(HEAPU8[$29 >> 0] | 0 | 0, 0, 16) | 0;
$34 = $27 | $32;
$35 = $28 | tempRet0;
$36 = $b + 6 | 0;
$39 = _bitshift64Shl(HEAPU8[$36 >> 0] | 0 | 0, 0, 8) | 0;
$41 = $34 | $39;
$42 = $35 | tempRet0;
$43 = $b + 7 | 0;
$46 = $41 | (HEAPU8[$43 >> 0] | 0);
$47 = $b + 8 | 0;
$49 = HEAPU8[$47 >> 0] | 0;
$50 = _bitshift64Shl($49 | 0, 0, 56) | 0;
$51 = tempRet0;
$52 = $b + 9 | 0;
$55 = _bitshift64Shl(HEAPU8[$52 >> 0] | 0 | 0, 0, 48) | 0;
$57 = $55 | $50;
$58 = tempRet0 | $51;
$59 = $b + 10 | 0;
$62 = _bitshift64Shl(HEAPU8[$59 >> 0] | 0 | 0, 0, 40) | 0;
$64 = $57 | $62;
$65 = $58 | tempRet0;
$66 = $b + 11 | 0;
$69 = $65 | (HEAPU8[$66 >> 0] | 0);
$70 = $b + 12 | 0;
$73 = _bitshift64Shl(HEAPU8[$70 >> 0] | 0 | 0, 0, 24) | 0;
$75 = $64 | $73;
$76 = $69 | tempRet0;
$77 = $b + 13 | 0;
$80 = _bitshift64Shl(HEAPU8[$77 >> 0] | 0 | 0, 0, 16) | 0;
$82 = $75 | $80;
$83 = $76 | tempRet0;
$84 = $b + 14 | 0;
$87 = _bitshift64Shl(HEAPU8[$84 >> 0] | 0 | 0, 0, 8) | 0;
$89 = $82 | $87;
$90 = $83 | tempRet0;
$91 = $b + 15 | 0;
$94 = $89 | (HEAPU8[$91 >> 0] | 0);
$95 = _bitshift64Ashr($2 | 0, $3 | 0, 63) | 0;
$97 = _bitshift64Shl($46 | 0, $42 | 0, 1) | 0;
$98 = tempRet0;
$99 = _bitshift64Lshr($49 | 0, 0, 7) | 0;
$98 | tempRet0;
$102 = _bitshift64Shl($94 | 0, $90 | 0, 1) | 0;
$106 = _bitshift64Lshr($9 | 0, $10 | 0, 55) | 0;
HEAP8[$b >> 0] = $106;
$109 = _bitshift64Lshr($16 | 0, $17 | 0, 47) | 0;
HEAP8[$4 >> 0] = $109;
$112 = _bitshift64Lshr($16 | 0, $21 | 0, 39) | 0;
HEAP8[$11 >> 0] = $112;
$115 = _bitshift64Lshr($27 | 0, $28 | 0, 31) | 0;
HEAP8[$18 >> 0] = $115;
$118 = _bitshift64Lshr($34 | 0, $35 | 0, 23) | 0;
HEAP8[$22 >> 0] = $118;
$121 = _bitshift64Lshr($41 | 0, $42 | 0, 15) | 0;
HEAP8[$29 >> 0] = $121;
$124 = _bitshift64Lshr($46 | 0, $42 | 0, 7) | 0;
HEAP8[$36 >> 0] = $124;
HEAP8[$43 >> 0] = $97 | $99;
$128 = _bitshift64Lshr($57 | 0, $58 | 0, 55) | 0;
HEAP8[$47 >> 0] = $128;
$131 = _bitshift64Lshr($64 | 0, $65 | 0, 47) | 0;
HEAP8[$52 >> 0] = $131;
$134 = _bitshift64Lshr($64 | 0, $69 | 0, 39) | 0;
HEAP8[$59 >> 0] = $134;
$137 = _bitshift64Lshr($75 | 0, $76 | 0, 31) | 0;
HEAP8[$66 >> 0] = $137;
$140 = _bitshift64Lshr($82 | 0, $83 | 0, 23) | 0;
HEAP8[$70 >> 0] = $140;
$143 = _bitshift64Lshr($89 | 0, $90 | 0, 15) | 0;
HEAP8[$77 >> 0] = $143;
$146 = _bitshift64Lshr($94 | 0, $90 | 0, 7) | 0;
HEAP8[$84 >> 0] = $146;
HEAP8[$91 >> 0] = $102 ^ $95 & 135;
return;
}
function __gcry_secmem_malloc_internal($size) {
$size = $size | 0;
var $$0 = 0, $$0$i$i = 0, $$lcssa = 0, $$lcssa28 = 0, $$lcssa30 = 0, $$lcssa31 = 0, $$lcssa32 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $17 = 0, $20 = 0, $23 = 0, $28 = 0, $31 = 0, $35 = 0, $38 = 0, $39 = 0, $52 = 0, $53 = 0, $6 = 0, $61 = 0, $64 = 0, $68 = 0, $7 = 0, $70 = 0, $8 = 0, $82 = 0, $mb$0$be$i = 0, $mb$03$i = 0, $mb$08$i = 0, $mb$08$i$lcssa29 = 0, $mb$1$i2 = 0, $mb_prev$0$i$i$i = 0, $mb_prev$1$i$i$i = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17496] | 0)) {
_secmem_init(32768);
if (!(HEAP32[17496] | 0)) {
__gcry_log_info(__gcry_gettext(22628) | 0, $vararg_buffer);
_gpg_err_set_errno(12);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
}
$6 = $size + 31 & -32;
$7 = HEAP32[17497] | 0;
$8 = $7;
$10 = (HEAP32[17498] | 0) + $8 | 0;
$11 = $8;
$mb$08$i = $7;
while (1) {
if ($11 >>> 0 >= $10 >>> 0) {
$70 = $11;
$mb$03$i = $mb$08$i;
break;
}
$13 = $mb$08$i + 4 | 0;
$14 = HEAP32[$13 >> 2] | 0;
$17 = HEAP32[$mb$08$i >> 2] | 0;
if (!(($14 & 1 | 0) != 0 | $17 >>> 0 < $6 >>> 0)) {
$$lcssa = $13;
$$lcssa28 = $11;
$$lcssa30 = $14;
$$lcssa31 = $mb$08$i;
$$lcssa32 = $17;
$mb$08$i$lcssa29 = $mb$08$i;
label = 7;
break;
}
$64 = $mb$08$i + 8 + $17 | 0;
$mb$0$be$i = $64 >>> 0 < $7 >>> 0 ? 0 : $64 >>> 0 < $10 >>> 0 ? $64 : 0;
$68 = $mb$0$be$i;
if ($mb$0$be$i >>> 0 < $7 >>> 0) {
$70 = $68;
$mb$03$i = $mb$0$be$i;
break;
} else {
$11 = $68;
$mb$08$i = $mb$0$be$i;
}
}
if ((label | 0) == 7) {
HEAP32[$$lcssa >> 2] = $$lcssa30 | 1;
$20 = $$lcssa32 - $6 | 0;
if ($20 >>> 0 > 8) {
$23 = $mb$08$i$lcssa29 + 8 + $6 | 0;
HEAP32[$23 >> 2] = $20 + -8;
HEAP32[$23 + 4 >> 2] = 0;
HEAP32[$$lcssa31 >> 2] = $6;
if (($7 | 0) == ($23 | 0)) $mb_prev$1$i$i$i = 0; else {
$28 = (HEAP32[17498] | 0) + $8 | 0;
$mb_prev$0$i$i$i = $7;
while (1) {
$31 = $mb_prev$0$i$i$i + 8 + (HEAP32[$mb_prev$0$i$i$i >> 2] | 0) | 0;
$35 = $31 >>> 0 < $7 >>> 0 ? 0 : $31 >>> 0 < $28 >>> 0 ? $31 : 0;
if (($35 | 0) == ($23 | 0)) {
$mb_prev$1$i$i$i = $mb_prev$0$i$i$i;
break;
} else $mb_prev$0$i$i$i = $35;
}
}
$38 = HEAP32[$23 >> 2] | 0;
$39 = $23 + 8 + $38 | 0;
if ($39 >>> 0 < $7 >>> 0) $53 = 0; else $53 = $39 >>> 0 < ((HEAP32[17498] | 0) + $8 | 0) >>> 0 ? $39 : 0;
if (!$mb_prev$1$i$i$i) {
$$0$i$i = $23;
$61 = $38;
} else if (!(HEAP32[$mb_prev$1$i$i$i + 4 >> 2] & 1)) {
$52 = $38 + 8 + (HEAP32[$mb_prev$1$i$i$i >> 2] | 0) | 0;
HEAP32[$mb_prev$1$i$i$i >> 2] = $52;
$$0$i$i = $mb_prev$1$i$i$i;
$61 = $52;
} else {
$$0$i$i = $23;
$61 = $38;
}
if (!$53) {
$70 = $$lcssa28;
$mb$03$i = $mb$08$i$lcssa29;
} else if (!(HEAP32[$53 + 4 >> 2] & 1)) {
HEAP32[$$0$i$i >> 2] = $61 + 8 + (HEAP32[$53 >> 2] | 0);
$70 = $$lcssa28;
$mb$03$i = $mb$08$i$lcssa29;
} else {
$70 = $$lcssa28;
$mb$03$i = $mb$08$i$lcssa29;
}
} else {
$70 = $$lcssa28;
$mb$03$i = $mb$08$i$lcssa29;
}
}
if ($70 >>> 0 < $8 >>> 0) label = 22; else if ($70 >>> 0 < ((HEAP32[17498] | 0) + $8 | 0) >>> 0) if (!$mb$03$i) {
$82 = 0;
$mb$1$i2 = 0;
} else if (!$6) {
$82 = 1;
$mb$1$i2 = $mb$03$i;
} else {
HEAP32[17500] = (HEAP32[17500] | 0) + $6;
HEAP32[17501] = (HEAP32[17501] | 0) + 1;
$82 = 1;
$mb$1$i2 = $mb$03$i;
} else label = 22;
if ((label | 0) == 22) {
_gpg_err_set_errno(12);
$82 = 0;
$mb$1$i2 = 0;
}
$$0 = $82 ? $mb$1$i2 + 8 | 0 : 0;
STACKTOP = sp;
return $$0 | 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$i = 0, $$06$ph = 0, $$07$ph = 0, $$0715 = 0, $$08$ph = 0, $$0814 = 0, $$1 = 0, $$idx$val$idx$val = 0, $$lcssa = 0, $$ph$i = 0, $11 = 0, $13 = 0, $2 = 0, $21 = 0, $3 = 0, $37 = 0, $46 = 0, $70 = 0, $h = 0, $r$02$i = 0, $r$02$i$lcssa = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$h = sp + 4 | 0;
if (!(($flags & -3 | 0) == 0 & (($iov | 0) != 0 & ($iovcnt | 0) > -1))) {
$$1 = 45;
STACKTOP = sp;
return $$1 | 0;
}
$2 = $flags & 2;
$3 = ($2 | 0) != 0;
if ($3 & ($iovcnt | 0) < 1) {
$$1 = 45;
STACKTOP = sp;
return $$1 | 0;
}
if (!(($algo | 0) != 2 | $3)) {
__gcry_sha1_hash_buffers($digest, $iov, $iovcnt);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
if (($algo | 0) == 1) if (__gcry_fips_mode() | 0) {
__gcry_inactivate_fips_mode(36761);
if (__gcry_enforced_fips_mode() | 0) __gcry_fips_noreturn();
}
$11 = _md_open($h, $algo, $2) | 0;
L16 : do if (!$11) {
$13 = HEAP32[$h >> 2] | 0;
do if ($3) {
$21 = __gcry_md_setkey($13, (HEAP32[$iov + 12 >> 2] | 0) + (HEAP32[$iov + 4 >> 2] | 0) | 0, HEAP32[$iov + 8 >> 2] | 0) | 0;
if (!$21) {
$$07$ph = $iovcnt + -1 | 0;
$$08$ph = $iov + 16 | 0;
break;
} else {
_md_close($13);
$$06$ph = $21;
break L16;
}
} else {
$$07$ph = $iovcnt;
$$08$ph = $iov;
} while (0);
if ($$07$ph) {
$$0715 = $$07$ph;
$$0814 = $$08$ph;
while (1) {
_md_write($13, (HEAP32[$$0814 + 12 >> 2] | 0) + (HEAP32[$$0814 + 4 >> 2] | 0) | 0, HEAP32[$$0814 + 8 >> 2] | 0);
$$0715 = $$0715 + -1 | 0;
if (!$$0715) break; else $$0814 = $$0814 + 16 | 0;
}
}
_md_final($13);
$$idx$val$idx$val = HEAP32[(HEAP32[$13 >> 2] | 0) + 16 >> 2] | 0;
$37 = ($$idx$val$idx$val | 0) == 0;
do if (!$algo) {
if ($37) __gcry_bug(36567, 816, 36753);
if (HEAP32[$$idx$val$idx$val + 4 >> 2] | 0) __gcry_log_debug(36714, $vararg_buffer);
$$0$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$idx$val$idx$val >> 2] | 0) + 40 >> 2] & 15]($$idx$val$idx$val + 16 | 0) | 0;
} else {
if ($37) __gcry_bug(36567, 816, 36753); else $r$02$i = $$idx$val$idx$val;
while (1) {
$46 = HEAP32[$r$02$i >> 2] | 0;
if ((HEAP32[$46 >> 2] | 0) == ($algo | 0)) {
$$lcssa = $46;
$r$02$i$lcssa = $r$02$i;
label = 23;
break;
}
$r$02$i = HEAP32[$r$02$i + 4 >> 2] | 0;
if (!$r$02$i) {
label = 25;
break;
}
}
if ((label | 0) == 23) {
$$0$i = FUNCTION_TABLE_ii[HEAP32[$$lcssa + 40 >> 2] & 15]($r$02$i$lcssa + 16 | 0) | 0;
break;
} else if ((label | 0) == 25) __gcry_bug(36567, 816, 36753);
} while (0);
if ((HEAP32[1886] | 0) == ($algo | 0)) {
$$ph$i = 7544;
label = 32;
} else if ((HEAP32[1918] | 0) == ($algo | 0)) {
$$ph$i = 7672;
label = 32;
} else if ((HEAP32[1905] | 0) == ($algo | 0)) {
$$ph$i = 7620;
label = 32;
} else if ((HEAP32[1936] | 0) == ($algo | 0)) {
$$ph$i = 7744;
label = 32;
} else if ((HEAP32[1949] | 0) == ($algo | 0)) {
$$ph$i = 7796;
label = 32;
} else if ((HEAP32[1845] | 0) == ($algo | 0)) {
$$ph$i = 7380;
label = 32;
} else $70 = 0;
if ((label | 0) == 32) $70 = HEAP32[$$ph$i + 24 >> 2] | 0;
_memcpy($digest | 0, $$0$i | 0, $70 | 0) | 0;
_md_close($13);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
} else $$06$ph = $11; while (0);
$$1 = $$06$ph;
STACKTOP = sp;
return $$1 | 0;
}
function __gcry_mpi_add_ui($w, $u, $v) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
var $$0$i = 0, $$01$i = 0, $$01$i$3 = 0, $$02$i = 0, $$02$i$2 = 0, $$04$i = 0, $$04$i$1 = 0, $$1$i = 0, $$1$i$7 = 0, $$13$i = 0, $$13$i$6 = 0, $$15$i = 0, $$15$i$5 = 0, $1 = 0, $10 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $20 = 0, $22 = 0, $24 = 0, $25 = 0, $29 = 0, $3 = 0, $37 = 0, $40 = 0, $41 = 0, $42 = 0, $44 = 0, $46 = 0, $47 = 0, $49 = 0, $53 = 0, $64 = 0, $65 = 0, $8 = 0, $i$011$i = 0, $i$011$i$11 = 0, $wsign$0 = 0, $wsize$0 = 0, label = 0;
$1 = HEAP32[$u + 4 >> 2] | 0;
$3 = HEAP32[$u + 8 >> 2] | 0;
if ((HEAP32[$w >> 2] | 0) <= ($1 | 0)) __gcry_mpi_resize($w, $1 + 1 | 0);
$8 = HEAP32[$u + 16 >> 2] | 0;
$10 = HEAP32[$w + 16 >> 2] | 0;
if (!$1) {
HEAP32[$10 >> 2] = $v;
$wsign$0 = 0;
$wsize$0 = ($v | 0) != 0 & 1;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
if (!$3) {
$15 = $8 + 4 | 0;
$16 = HEAP32[$8 >> 2] | 0;
$17 = $16 + $v | 0;
$18 = $10 + 4 | 0;
HEAP32[$10 >> 2] = $17;
L10 : do if ($17 >>> 0 < $16 >>> 0) {
$$01$i = $1;
$$02$i = $15;
$$04$i = $18;
while (1) {
$20 = $$01$i + -1 | 0;
if (!$20) {
$$0$i = 1;
break L10;
}
$22 = $$02$i + 4 | 0;
$24 = (HEAP32[$$02$i >> 2] | 0) + 1 | 0;
$25 = $$04$i + 4 | 0;
HEAP32[$$04$i >> 2] = $24;
if (!$24) {
$$01$i = $20;
$$02$i = $22;
$$04$i = $25;
} else {
$$1$i = $20;
$$13$i = $22;
$$15$i = $25;
label = 9;
break;
}
}
} else {
$$1$i = $1;
$$13$i = $15;
$$15$i = $18;
label = 9;
} while (0);
if ((label | 0) == 9) if (($$15$i | 0) != ($$13$i | 0) & ($$1$i | 0) > 1) {
$29 = $$1$i + -1 | 0;
$i$011$i = 0;
do {
HEAP32[$$15$i + ($i$011$i << 2) >> 2] = HEAP32[$$13$i + ($i$011$i << 2) >> 2];
$i$011$i = $i$011$i + 1 | 0;
} while (($i$011$i | 0) != ($29 | 0));
$$0$i = 0;
} else $$0$i = 0;
HEAP32[$10 + ($1 << 2) >> 2] = $$0$i;
$wsign$0 = 0;
$wsize$0 = $$0$i + $1 | 0;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
$37 = HEAP32[$8 >> 2] | 0;
if (($1 | 0) == 1 & $37 >>> 0 < $v >>> 0) {
HEAP32[$10 >> 2] = $v - $37;
$wsign$0 = 0;
$wsize$0 = 1;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
$40 = $8 + 4 | 0;
$41 = $37 - $v | 0;
$42 = $10 + 4 | 0;
HEAP32[$10 >> 2] = $41;
L26 : do if ($41 >>> 0 > $37 >>> 0) {
$$01$i$3 = $1;
$$02$i$2 = $40;
$$04$i$1 = $42;
while (1) {
$44 = $$01$i$3 + -1 | 0;
if (!$44) break L26;
$46 = $$02$i$2 + 4 | 0;
$47 = HEAP32[$$02$i$2 >> 2] | 0;
$49 = $$04$i$1 + 4 | 0;
HEAP32[$$04$i$1 >> 2] = $47 + -1;
if (!$47) {
$$01$i$3 = $44;
$$02$i$2 = $46;
$$04$i$1 = $49;
} else {
$$1$i$7 = $44;
$$13$i$6 = $46;
$$15$i$5 = $49;
label = 18;
break;
}
}
} else {
$$1$i$7 = $1;
$$13$i$6 = $40;
$$15$i$5 = $42;
label = 18;
} while (0);
if ((label | 0) == 18) if (($$15$i$5 | 0) != ($$13$i$6 | 0) & ($$1$i$7 | 0) > 1) {
$53 = $$1$i$7 + -1 | 0;
$i$011$i$11 = 0;
do {
HEAP32[$$15$i$5 + ($i$011$i$11 << 2) >> 2] = HEAP32[$$13$i$6 + ($i$011$i$11 << 2) >> 2];
$i$011$i$11 = $i$011$i$11 + 1 | 0;
} while (($i$011$i$11 | 0) != ($53 | 0));
}
$wsign$0 = 1;
$wsize$0 = $1 - ((HEAP32[$10 + ($1 + -1 << 2) >> 2] | 0) == 0 & 1) | 0;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
function __gcry_mpi_sub_ui($w, $u, $v) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
var $$0$i = 0, $$01$i = 0, $$01$i$3 = 0, $$02$i = 0, $$02$i$2 = 0, $$04$i = 0, $$04$i$1 = 0, $$1$i = 0, $$1$i$7 = 0, $$13$i = 0, $$13$i$6 = 0, $$15$i = 0, $$15$i$5 = 0, $1 = 0, $10 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $20 = 0, $22 = 0, $24 = 0, $25 = 0, $29 = 0, $3 = 0, $37 = 0, $40 = 0, $41 = 0, $42 = 0, $44 = 0, $46 = 0, $47 = 0, $49 = 0, $53 = 0, $64 = 0, $65 = 0, $8 = 0, $i$011$i = 0, $i$011$i$11 = 0, $wsign$0 = 0, $wsize$0 = 0, label = 0;
$1 = HEAP32[$u + 4 >> 2] | 0;
$3 = HEAP32[$u + 8 >> 2] | 0;
if ((HEAP32[$w >> 2] | 0) <= ($1 | 0)) __gcry_mpi_resize($w, $1 + 1 | 0);
$8 = HEAP32[$u + 16 >> 2] | 0;
$10 = HEAP32[$w + 16 >> 2] | 0;
if (!$1) {
HEAP32[$10 >> 2] = $v;
$wsign$0 = 1;
$wsize$0 = ($v | 0) != 0 & 1;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
if ($3) {
$15 = $8 + 4 | 0;
$16 = HEAP32[$8 >> 2] | 0;
$17 = $16 + $v | 0;
$18 = $10 + 4 | 0;
HEAP32[$10 >> 2] = $17;
L10 : do if ($17 >>> 0 < $16 >>> 0) {
$$01$i = $1;
$$02$i = $15;
$$04$i = $18;
while (1) {
$20 = $$01$i + -1 | 0;
if (!$20) {
$$0$i = 1;
break L10;
}
$22 = $$02$i + 4 | 0;
$24 = (HEAP32[$$02$i >> 2] | 0) + 1 | 0;
$25 = $$04$i + 4 | 0;
HEAP32[$$04$i >> 2] = $24;
if (!$24) {
$$01$i = $20;
$$02$i = $22;
$$04$i = $25;
} else {
$$1$i = $20;
$$13$i = $22;
$$15$i = $25;
label = 9;
break;
}
}
} else {
$$1$i = $1;
$$13$i = $15;
$$15$i = $18;
label = 9;
} while (0);
if ((label | 0) == 9) if (($$15$i | 0) != ($$13$i | 0) & ($$1$i | 0) > 1) {
$29 = $$1$i + -1 | 0;
$i$011$i = 0;
do {
HEAP32[$$15$i + ($i$011$i << 2) >> 2] = HEAP32[$$13$i + ($i$011$i << 2) >> 2];
$i$011$i = $i$011$i + 1 | 0;
} while (($i$011$i | 0) != ($29 | 0));
$$0$i = 0;
} else $$0$i = 0;
HEAP32[$10 + ($1 << 2) >> 2] = $$0$i;
$wsign$0 = 0;
$wsize$0 = $$0$i + $1 | 0;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
$37 = HEAP32[$8 >> 2] | 0;
if (($1 | 0) == 1 & $37 >>> 0 < $v >>> 0) {
HEAP32[$10 >> 2] = $v - $37;
$wsign$0 = 1;
$wsize$0 = 1;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
$40 = $8 + 4 | 0;
$41 = $37 - $v | 0;
$42 = $10 + 4 | 0;
HEAP32[$10 >> 2] = $41;
L26 : do if ($41 >>> 0 > $37 >>> 0) {
$$01$i$3 = $1;
$$02$i$2 = $40;
$$04$i$1 = $42;
while (1) {
$44 = $$01$i$3 + -1 | 0;
if (!$44) break L26;
$46 = $$02$i$2 + 4 | 0;
$47 = HEAP32[$$02$i$2 >> 2] | 0;
$49 = $$04$i$1 + 4 | 0;
HEAP32[$$04$i$1 >> 2] = $47 + -1;
if (!$47) {
$$01$i$3 = $44;
$$02$i$2 = $46;
$$04$i$1 = $49;
} else {
$$1$i$7 = $44;
$$13$i$6 = $46;
$$15$i$5 = $49;
label = 18;
break;
}
}
} else {
$$1$i$7 = $1;
$$13$i$6 = $40;
$$15$i$5 = $42;
label = 18;
} while (0);
if ((label | 0) == 18) if (($$15$i$5 | 0) != ($$13$i$6 | 0) & ($$1$i$7 | 0) > 1) {
$53 = $$1$i$7 + -1 | 0;
$i$011$i$11 = 0;
do {
HEAP32[$$15$i$5 + ($i$011$i$11 << 2) >> 2] = HEAP32[$$13$i$6 + ($i$011$i$11 << 2) >> 2];
$i$011$i$11 = $i$011$i$11 + 1 | 0;
} while (($i$011$i$11 | 0) != ($53 | 0));
}
$wsign$0 = 0;
$wsize$0 = $1 - ((HEAP32[$10 + ($1 + -1 << 2) >> 2] | 0) == 0 & 1) | 0;
$64 = $w + 4 | 0;
HEAP32[$64 >> 2] = $wsize$0;
$65 = $w + 8 | 0;
HEAP32[$65 >> 2] = $wsign$0;
return;
}
function _finalize($hd) {
$hd = $hd | 0;
var $$ = 0, $$lcssa = 0, $$phi$trans$insert = 0, $$pre$phiZ2D = 0, $0 = 0, $10 = 0, $101 = 0, $11 = 0, $114 = 0, $127 = 0, $13 = 0, $14 = 0, $140 = 0, $153 = 0, $17 = 0, $20 = 0, $23 = 0, $25 = 0, $29 = 0, $3 = 0, $34 = 0, $36 = 0, $4 = 0, $62 = 0, $7 = 0, $75 = 0, $88 = 0, $9 = 0, dest = 0, stop = 0;
$0 = $hd + 40 | 0;
if (HEAP8[$0 >> 0] & 1) return;
$3 = $hd + 36 | 0;
$4 = HEAP32[$3 >> 2] | 0;
if (($4 | 0) == 64) {
_transform_1710($hd, $hd + 41 | 0);
HEAP32[$3 >> 2] = 0;
$7 = $hd + 32 | 0;
$9 = (HEAP32[$7 >> 2] | 0) + 1 | 0;
HEAP32[$7 >> 2] = $9;
$$pre$phiZ2D = $7;
$11 = $9;
$14 = 0;
} else {
$$phi$trans$insert = $hd + 32 | 0;
$$pre$phiZ2D = $$phi$trans$insert;
$11 = HEAP32[$$phi$trans$insert >> 2] | 0;
$14 = $4;
}
$10 = $11 << 6;
$13 = $10 + $14 | 0;
$$ = ($13 >>> 0 < $10 >>> 0 & 1) + ($11 >>> 26) | 0;
$17 = $13 << 3;
$20 = $$ << 3 | $13 >>> 29;
HEAP32[$3 >> 2] = $14 + 1;
$23 = $hd + 41 | 0;
HEAP8[$hd + 41 + $14 >> 0] = -128;
$25 = HEAP32[$3 >> 2] | 0;
if (($14 | 0) < 56) {
if (($25 | 0) < 56) {
$29 = $25;
do {
HEAP32[$3 >> 2] = $29 + 1;
HEAP8[$hd + 41 + $29 >> 0] = 0;
$29 = HEAP32[$3 >> 2] | 0;
} while (($29 | 0) < 56);
}
} else {
if (($25 | 0) < 64) {
$34 = $25;
while (1) {
HEAP32[$3 >> 2] = $34 + 1;
HEAP8[$hd + 41 + $34 >> 0] = 0;
$36 = HEAP32[$3 >> 2] | 0;
if (($36 | 0) < 64) $34 = $36; else {
$$lcssa = $36;
break;
}
}
} else $$lcssa = $25;
if (($$lcssa | 0) == 64 & (HEAP8[$0 >> 0] & 1) == 0) {
_transform_1710($hd, $hd + 41 | 0);
HEAP32[$3 >> 2] = 0;
HEAP32[$$pre$phiZ2D >> 2] = (HEAP32[$$pre$phiZ2D >> 2] | 0) + 1;
}
dest = $23;
stop = dest + 56 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
}
HEAP8[$hd + 97 >> 0] = 0;
HEAP8[$hd + 98 >> 0] = 0;
HEAP8[$hd + 99 >> 0] = $$ >>> 5;
HEAP8[$hd + 100 >> 0] = $20;
HEAP8[$hd + 101 >> 0] = $13 >>> 21;
HEAP8[$hd + 102 >> 0] = $13 >>> 13;
HEAP8[$hd + 103 >> 0] = $13 >>> 5;
HEAP8[$hd + 104 >> 0] = $17;
_transform_1710($hd, $23);
$62 = HEAP32[$hd >> 2] | 0;
HEAP8[$23 >> 0] = $62 >>> 24;
HEAP8[$hd + 42 >> 0] = $62 >>> 16;
HEAP8[$hd + 43 >> 0] = $62 >>> 8;
HEAP8[$hd + 44 >> 0] = $62;
$75 = HEAP32[$hd + 4 >> 2] | 0;
HEAP8[$hd + 45 >> 0] = $75 >>> 24;
HEAP8[$hd + 46 >> 0] = $75 >>> 16;
HEAP8[$hd + 47 >> 0] = $75 >>> 8;
HEAP8[$hd + 48 >> 0] = $75;
$88 = HEAP32[$hd + 8 >> 2] | 0;
HEAP8[$hd + 49 >> 0] = $88 >>> 24;
HEAP8[$hd + 50 >> 0] = $88 >>> 16;
HEAP8[$hd + 51 >> 0] = $88 >>> 8;
HEAP8[$hd + 52 >> 0] = $88;
$101 = HEAP32[$hd + 12 >> 2] | 0;
HEAP8[$hd + 53 >> 0] = $101 >>> 24;
HEAP8[$hd + 54 >> 0] = $101 >>> 16;
HEAP8[$hd + 55 >> 0] = $101 >>> 8;
HEAP8[$hd + 56 >> 0] = $101;
$114 = HEAP32[$hd + 16 >> 2] | 0;
HEAP8[$hd + 57 >> 0] = $114 >>> 24;
HEAP8[$hd + 58 >> 0] = $114 >>> 16;
HEAP8[$hd + 59 >> 0] = $114 >>> 8;
HEAP8[$hd + 60 >> 0] = $114;
$127 = HEAP32[$hd + 20 >> 2] | 0;
HEAP8[$hd + 61 >> 0] = $127 >>> 24;
HEAP8[$hd + 62 >> 0] = $127 >>> 16;
HEAP8[$hd + 63 >> 0] = $127 >>> 8;
HEAP8[$hd + 64 >> 0] = $127;
$140 = HEAP32[$hd + 24 >> 2] | 0;
HEAP8[$hd + 65 >> 0] = $140 >>> 24;
HEAP8[$hd + 66 >> 0] = $140 >>> 16;
HEAP8[$hd + 67 >> 0] = $140 >>> 8;
HEAP8[$hd + 68 >> 0] = $140;
$153 = HEAP32[$hd + 28 >> 2] | 0;
HEAP8[$hd + 69 >> 0] = $153 >>> 24;
HEAP8[$hd + 70 >> 0] = $153 >>> 16;
HEAP8[$hd + 71 >> 0] = $153 >>> 8;
HEAP8[$hd + 72 >> 0] = $153;
HEAP8[$0 >> 0] = HEAP8[$0 >> 0] | 1;
return;
}
function _GNUNET_CRYPTO_ecc_ecdh($priv, $pub, $key_material) {
$priv = $priv | 0;
$pub = $pub | 0;
$key_material = $key_material | 0;
var $$0 = 0, $13 = 0, $14 = 0, $18 = 0, $28 = 0, $ctx = 0, $d = 0, $pub_sexpr = 0, $rsize = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $xbuf = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
$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 + 60 | 0;
$ctx = sp + 56 | 0;
$pub_sexpr = sp + 52 | 0;
$xbuf = sp + 64 | 0;
$rsize = sp + 48 | 0;
HEAP32[$vararg_buffer >> 2] = 32;
HEAP32[$vararg_buffer + 4 >> 2] = $pub;
if (_gcry_sexp_build($pub_sexpr, 0, 19748, $vararg_buffer) | 0) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (_gcry_mpi_ec_new($ctx, HEAP32[$pub_sexpr >> 2] | 0, 0) | 0) {
if ((HEAP32[217] | 0) == -1) HEAP32[217] = _GNUNET_get_log_call_status(1, 0, 19324, 19945, 972) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[217] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 19324;
HEAP32[$vararg_buffer2 + 4 >> 2] = 972;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
}
_gcry_sexp_release(HEAP32[$pub_sexpr >> 2] | 0);
$13 = _gcry_mpi_ec_get_point(46584, HEAP32[$ctx >> 2] | 0, 0) | 0;
_GNUNET_CRYPTO_mpi_scan_unsigned($d, $priv, 32);
$14 = _gcry_mpi_point_new(0) | 0;
_gcry_mpi_ec_mul($14, HEAP32[$d >> 2] | 0, $13, HEAP32[$ctx >> 2] | 0);
_gcry_mpi_point_release($13);
_gcry_mpi_release(HEAP32[$d >> 2] | 0);
$18 = _gcry_mpi_new(256) | 0;
if (_gcry_mpi_ec_get_affine($18, 0, $14, HEAP32[$ctx >> 2] | 0) | 0) {
if ((HEAP32[218] | 0) == -1) HEAP32[218] = _GNUNET_get_log_call_status(1, 20654, 19324, 19945, 989) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[218] | 0) {
$28 = _gcry_strerror(0) | 0;
HEAP32[$vararg_buffer6 >> 2] = 19968;
HEAP32[$vararg_buffer6 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer6 + 8 >> 2] = 989;
HEAP32[$vararg_buffer6 + 12 >> 2] = $28;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer6);
}
_gcry_mpi_point_release($14);
_gcry_ctx_release(HEAP32[$ctx >> 2] | 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
_gcry_mpi_point_release($14);
_gcry_ctx_release(HEAP32[$ctx >> 2] | 0);
HEAP32[$rsize >> 2] = 32;
if (_gcry_mpi_get_flag($18, 2) | 0) {
if ((HEAP32[219] | 0) == -1) HEAP32[219] = _GNUNET_get_log_call_status(1, 0, 19324, 19945, 998) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[219] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer12 >> 2] = 19324;
HEAP32[$vararg_buffer12 + 4 >> 2] = 998;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer12);
_GNUNET_abort_();
}
if (!(_gcry_mpi_print(1, $xbuf, 32, $rsize, $18) | 0)) {
_GNUNET_CRYPTO_hash($xbuf, HEAP32[$rsize >> 2] | 0, $key_material);
_gcry_mpi_release($18);
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[220] | 0) == -1) HEAP32[220] = _GNUNET_get_log_call_status(1, 0, 19324, 19945, 1005) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[220] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer16 >> 2] = 19324;
HEAP32[$vararg_buffer16 + 4 >> 2] = 1005;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer16);
_GNUNET_abort_();
return 0;
}
function __gcry_fips_run_selftests($extended) {
$extended = $extended | 0;
var $10 = 0, $13 = 0, $14 = 0, $17 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $29 = 0, $3 = 0, $30 = 0, $33 = 0, $34 = 0, $37 = 0, $38 = 0, $41 = 0, $47 = 0, $48 = 0, $5 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $6 = 0, $62 = 0, $63 = 0, $66 = 0, $72 = 0, $75 = 0, $76 = 0, $78 = 0, $79 = 0, $9 = 0, $ec$0 = 0, $result$0 = 0;
if ((HEAP32[17504] | 0) != 1) _fips_new_state(2);
$2 = __gcry_cipher_selftest(2, $extended, 1) | 0;
$3 = ($2 | 0) != 0;
if ($3) $5 = _gpg_strerror($2) | 0; else $5 = 0;
_reporter(37807, 2, 0, $5);
$6 = __gcry_cipher_selftest(7, $extended, 1) | 0;
if (!$6) $9 = 0; else $9 = _gpg_strerror($6) | 0;
_reporter(37807, 7, 0, $9);
$10 = __gcry_cipher_selftest(8, $extended, 1) | 0;
if (!$10) $13 = 0; else $13 = _gpg_strerror($10) | 0;
_reporter(37807, 8, 0, $13);
$14 = __gcry_cipher_selftest(9, $extended, 1) | 0;
if (!$14) $17 = 0; else $17 = _gpg_strerror($14) | 0;
_reporter(37807, 9, 0, $17);
do if (!($6 | $3 & 1 | $10 | $14)) {
$22 = __gcry_md_selftest(2, $extended, 1) | 0;
$23 = ($22 | 0) != 0;
if ($23) $25 = _gpg_strerror($22) | 0; else $25 = 0;
_reporter(42606, 2, 0, $25);
$26 = __gcry_md_selftest(11, $extended, 1) | 0;
if (!$26) $29 = 0; else $29 = _gpg_strerror($26) | 0;
_reporter(42606, 11, 0, $29);
$30 = __gcry_md_selftest(8, $extended, 1) | 0;
if (!$30) $33 = 0; else $33 = _gpg_strerror($30) | 0;
_reporter(42606, 8, 0, $33);
$34 = __gcry_md_selftest(9, $extended, 1) | 0;
if (!$34) $37 = 0; else $37 = _gpg_strerror($34) | 0;
_reporter(42606, 9, 0, $37);
$38 = __gcry_md_selftest(10, $extended, 1) | 0;
if (!$38) $41 = 0; else $41 = _gpg_strerror($38) | 0;
_reporter(42606, 10, 0, $41);
if (!($26 | $23 & 1 | $30 | $34 | $38)) {
$47 = __gcry_hmac_selftest(2, $extended, 1) | 0;
$48 = ($47 | 0) != 0;
if ($48) $50 = _gpg_strerror($47) | 0; else $50 = 0;
_reporter(35713, 2, 0, $50);
$51 = __gcry_hmac_selftest(11, $extended, 1) | 0;
if (!$51) $54 = 0; else $54 = _gpg_strerror($51) | 0;
_reporter(35713, 11, 0, $54);
$55 = __gcry_hmac_selftest(8, $extended, 1) | 0;
if (!$55) $58 = 0; else $58 = _gpg_strerror($55) | 0;
_reporter(35713, 8, 0, $58);
$59 = __gcry_hmac_selftest(9, $extended, 1) | 0;
if (!$59) $62 = 0; else $62 = _gpg_strerror($59) | 0;
_reporter(35713, 9, 0, $62);
$63 = __gcry_hmac_selftest(10, $extended, 1) | 0;
if (!$63) $66 = 0; else $66 = _gpg_strerror($63) | 0;
_reporter(35713, 10, 0, $66);
if (!($51 | $48 & 1 | $55 | $59 | $63)) {
$72 = __gcry_random_selftest(1) | 0;
if ($72) {
_reporter(51396, 0, 0, _gpg_strerror($72) | 0);
$ec$0 = 50;
$result$0 = 4;
break;
}
_reporter(51396, 0, 0, 0);
$75 = __gcry_pk_selftest(1, $extended, 1) | 0;
$76 = ($75 | 0) != 0;
if ($76) $78 = _gpg_strerror($75) | 0; else $78 = 0;
_reporter(40533, 1, 0, $78);
$79 = __gcry_pk_selftest(17, $extended, 1) | 0;
if (!$79) {
_reporter(40533, 17, 0, 0);
$ec$0 = $76 ? 50 : 0;
$result$0 = $76 ? 4 : 3;
break;
} else {
_reporter(40533, 17, 0, _gpg_strerror($79) | 0);
$ec$0 = 50;
$result$0 = 4;
break;
}
} else {
$ec$0 = 50;
$result$0 = 4;
}
} else {
$ec$0 = 50;
$result$0 = 4;
}
} else {
$ec$0 = 50;
$result$0 = 4;
} while (0);
if ((HEAP32[17504] | 0) == 1) return $ec$0 | 0;
_fips_new_state($result$0);
return $ec$0 | 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 $10 = 0, $14 = 0, $17 = 0, $2 = 0, $21 = 0, $24 = 0, $28 = 0, $31 = 0, $4 = 0, $42 = 0, $8 = 0, $coin$sroa$0 = 0, $depperm = 0, $merchant$sroa$0 = 0, $refund_abs = 0, $refund_abs$byval_copy = 0, $timestamp_abs = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 368 | 0;
$refund_abs$byval_copy = sp + 16 | 0;
$depperm = sp + 24 | 0;
$timestamp_abs = sp + 8 | 0;
$refund_abs = sp;
$coin$sroa$0 = sp + 328 | 0;
$merchant$sroa$0 = sp + 296 | 0;
dest = $depperm + 8 | 0;
src = $h_contract;
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));
dest = $depperm + 72 | 0;
src = $h_wire;
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));
dest = $coin$sroa$0;
src = $coin_pub;
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));
dest = $merchant$sroa$0;
src = $merchant_pub;
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));
$2 = ___muldi3($timestamp | 0, 0, 1e6, 0) | 0;
$4 = $timestamp_abs;
HEAP32[$4 >> 2] = $2;
HEAP32[$4 + 4 >> 2] = tempRet0;
$8 = ___muldi3($refund | 0, 0, 1e6, 0) | 0;
$10 = $refund_abs;
HEAP32[$10 >> 2] = $8;
HEAP32[$10 + 4 >> 2] = tempRet0;
HEAP32[$refund_abs$byval_copy >> 2] = HEAP32[$timestamp_abs >> 2];
HEAP32[$refund_abs$byval_copy + 4 >> 2] = HEAP32[$timestamp_abs + 4 >> 2];
$14 = _GNUNET_TIME_absolute_hton($refund_abs$byval_copy) | 0;
$17 = $depperm + 136 | 0;
HEAP32[$17 >> 2] = $14;
HEAP32[$17 + 4 >> 2] = tempRet0;
HEAP32[$refund_abs$byval_copy >> 2] = HEAP32[$refund_abs >> 2];
HEAP32[$refund_abs$byval_copy + 4 >> 2] = HEAP32[$refund_abs + 4 >> 2];
$21 = _GNUNET_TIME_absolute_hton($refund_abs$byval_copy) | 0;
$24 = $depperm + 144 | 0;
HEAP32[$24 >> 2] = $21;
HEAP32[$24 + 4 >> 2] = tempRet0;
$28 = _GNUNET_htonll($trans_id, 0) | 0;
$31 = $depperm + 152 | 0;
HEAP32[$31 >> 2] = $28;
HEAP32[$31 + 4 >> 2] = tempRet0;
_TALER_amount_hton($depperm + 160 | 0, $amount_plus_fee);
_TALER_amount_hton($depperm + 184 | 0, $deposit_fee);
dest = $depperm + 208 | 0;
src = $merchant$sroa$0;
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));
dest = $depperm + 240 | 0;
src = $coin$sroa$0;
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));
HEAP32[$depperm >> 2] = _htonl(272) | 0;
HEAP32[$depperm + 4 >> 2] = _htonl(1201) | 0;
$42 = _GNUNET_xmalloc_(64, 18658, 1114) | 0;
_GNUNET_CRYPTO_eddsa_sign($coin_priv, $depperm, $42) | 0;
STACKTOP = sp;
return $42 | 0;
}
function __gcry_rngfips_initialize($full) {
$full = $full | 0;
var $13 = 0, $17 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $66 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer10 = sp + 32 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17568] | 0)) {
HEAP32[17568] = 1;
HEAP32[17569] = 0;
}
if (!$full) {
STACKTOP = sp;
return;
}
$3 = _gpgrt_lock_lock(12568) | 0;
if ($3) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($3) | 0;
__gcry_log_fatal(50662, $vararg_buffer);
}
HEAP32[17569] = 1;
if (!(HEAP32[17570] | 0)) {
HEAP32[17570] = __gcry_xmalloc_secure(48) | 0;
$9 = __gcry_xcalloc(1, 68) | 0;
HEAP32[17571] = $9;
HEAP8[$9 >> 0] = 17;
HEAP8[$9 + 16 >> 0] = 42;
HEAP8[$9 + 33 >> 0] = -119;
HEAP8[$9 + 50 >> 0] = -4;
$13 = __gcry_xcalloc_secure(1, 68) | 0;
HEAP32[17572] = $13;
HEAP8[$13 >> 0] = 17;
HEAP8[$13 + 16 >> 0] = 42;
HEAP8[$13 + 33 >> 0] = -119;
HEAP8[$13 + 50 >> 0] = -4;
$17 = __gcry_xcalloc_secure(1, 68) | 0;
HEAP32[17573] = $17;
HEAP8[$17 >> 0] = 17;
HEAP8[$17 + 16 >> 0] = 42;
HEAP8[$17 + 33 >> 0] = -119;
HEAP8[$17 + 50 >> 0] = -4;
} else {
$21 = HEAP32[17571] | 0;
if (HEAP32[$21 + 52 >> 2] | 0) __gcry_assert_failed(50698, 50726, 767, 50740);
$25 = HEAP32[17572] | 0;
if (HEAP32[$25 + 52 >> 2] | 0) __gcry_assert_failed(50765, 50726, 768, 50740);
$29 = HEAP32[17573] | 0;
if (HEAP32[$29 + 52 >> 2] | 0) __gcry_assert_failed(50795, 50726, 769, 50740);
if ((HEAP8[$21 >> 0] | 0) != 17) {
HEAP32[$vararg_buffer1 >> 2] = $21;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$21 + 16 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer1 >> 2] = $21;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$21 + 33 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer1 >> 2] = $21;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$21 + 50 >> 0] | 0) != -4) {
HEAP32[$vararg_buffer1 >> 2] = $21;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$25 >> 0] | 0) != 17) {
HEAP32[$vararg_buffer4 >> 2] = $25;
__gcry_log_fatal(50828, $vararg_buffer4);
}
if ((HEAP8[$25 + 16 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer4 >> 2] = $25;
__gcry_log_fatal(50828, $vararg_buffer4);
}
if ((HEAP8[$25 + 33 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer4 >> 2] = $25;
__gcry_log_fatal(50828, $vararg_buffer4);
}
if ((HEAP8[$25 + 50 >> 0] | 0) != -4) {
HEAP32[$vararg_buffer4 >> 2] = $25;
__gcry_log_fatal(50828, $vararg_buffer4);
}
if ((HEAP8[$29 >> 0] | 0) != 17) {
HEAP32[$vararg_buffer7 >> 2] = $29;
__gcry_log_fatal(50828, $vararg_buffer7);
}
if ((HEAP8[$29 + 16 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer7 >> 2] = $29;
__gcry_log_fatal(50828, $vararg_buffer7);
}
if ((HEAP8[$29 + 33 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer7 >> 2] = $29;
__gcry_log_fatal(50828, $vararg_buffer7);
}
if ((HEAP8[$29 + 50 >> 0] | 0) != -4) {
HEAP32[$vararg_buffer7 >> 2] = $29;
__gcry_log_fatal(50828, $vararg_buffer7);
}
}
HEAP32[17569] = 0;
$66 = _gpgrt_lock_unlock(12568) | 0;
if (!$66) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer10 >> 2] = _gpg_strerror($66) | 0;
__gcry_log_fatal(50874, $vararg_buffer10);
}
}
function _check_decryption_preparation($ctx) {
$ctx = $ctx | 0;
var $$lcssa$i = 0, $0 = 0, $109 = 0, $120 = 0, $131 = 0, $137 = 0, $151 = 0, $162 = 0, $173 = 0, $180 = 0, $194 = 0, $205 = 0, $216 = 0, $223 = 0, $237 = 0, $248 = 0, $259 = 0, $265 = 0, $268 = 0, $79 = 0, $89 = 0, $92 = 0, $94 = 0, $95 = 0, $r$0$lcssa$i = 0, $r$01$i = 0;
$0 = $ctx + 484 | 0;
if (HEAP8[$0 >> 0] & 1) return;
$79 = $ctx + 240 | 0;
HEAP32[$79 >> 2] = HEAP32[$ctx >> 2];
HEAP32[$79 + 4 >> 2] = HEAP32[$ctx + 4 >> 2];
HEAP32[$ctx + 248 >> 2] = HEAP32[$ctx + 8 >> 2];
HEAP32[$ctx + 252 >> 2] = HEAP32[$ctx + 12 >> 2];
$89 = $ctx + 480 | 0;
$92 = $ctx + 16 | 0;
if ((HEAP32[$89 >> 2] | 0) > 1) {
$95 = $92;
$r$01$i = 1;
while (1) {
$94 = HEAP32[$95 >> 2] | 0;
$109 = HEAP32[6100 + ((HEAPU8[4957 + ($94 >>> 6 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$120 = HEAP32[6100 + ((HEAPU8[4957 + ($94 >>> 14 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$131 = HEAP32[6100 + ((HEAPU8[4957 + ($94 >>> 24 << 2) >> 0] | 0) << 2) >> 2] | 0;
HEAP32[$79 + ($r$01$i << 4) >> 2] = ($109 << 8 | $109 >>> 24) ^ HEAP32[6100 + ((HEAPU8[4957 + ($94 << 2 & 1020) >> 0] | 0) << 2) >> 2] ^ ($120 << 16 | $120 >>> 16) ^ ($131 << 24 | $131 >>> 8);
$137 = HEAP32[$ctx + ($r$01$i << 4) + 4 >> 2] | 0;
$151 = HEAP32[6100 + ((HEAPU8[4957 + ($137 >>> 6 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$162 = HEAP32[6100 + ((HEAPU8[4957 + ($137 >>> 14 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$173 = HEAP32[6100 + ((HEAPU8[4957 + ($137 >>> 24 << 2) >> 0] | 0) << 2) >> 2] | 0;
HEAP32[$79 + ($r$01$i << 4) + 4 >> 2] = ($151 << 8 | $151 >>> 24) ^ HEAP32[6100 + ((HEAPU8[4957 + ($137 << 2 & 1020) >> 0] | 0) << 2) >> 2] ^ ($162 << 16 | $162 >>> 16) ^ ($173 << 24 | $173 >>> 8);
$180 = HEAP32[$ctx + ($r$01$i << 4) + 8 >> 2] | 0;
$194 = HEAP32[6100 + ((HEAPU8[4957 + ($180 >>> 6 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$205 = HEAP32[6100 + ((HEAPU8[4957 + ($180 >>> 14 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$216 = HEAP32[6100 + ((HEAPU8[4957 + ($180 >>> 24 << 2) >> 0] | 0) << 2) >> 2] | 0;
HEAP32[$79 + ($r$01$i << 4) + 8 >> 2] = ($194 << 8 | $194 >>> 24) ^ HEAP32[6100 + ((HEAPU8[4957 + ($180 << 2 & 1020) >> 0] | 0) << 2) >> 2] ^ ($205 << 16 | $205 >>> 16) ^ ($216 << 24 | $216 >>> 8);
$223 = HEAP32[$ctx + ($r$01$i << 4) + 12 >> 2] | 0;
$237 = HEAP32[6100 + ((HEAPU8[4957 + ($223 >>> 6 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$248 = HEAP32[6100 + ((HEAPU8[4957 + ($223 >>> 14 & 1020) >> 0] | 0) << 2) >> 2] | 0;
$259 = HEAP32[6100 + ((HEAPU8[4957 + ($223 >>> 24 << 2) >> 0] | 0) << 2) >> 2] | 0;
HEAP32[$79 + ($r$01$i << 4) + 12 >> 2] = ($237 << 8 | $237 >>> 24) ^ HEAP32[6100 + ((HEAPU8[4957 + ($223 << 2 & 1020) >> 0] | 0) << 2) >> 2] ^ ($248 << 16 | $248 >>> 16) ^ ($259 << 24 | $259 >>> 8);
$265 = $r$01$i + 1 | 0;
$268 = $ctx + ($265 << 4) | 0;
if (($265 | 0) < (HEAP32[$89 >> 2] | 0)) {
$95 = $268;
$r$01$i = $265;
} else {
$$lcssa$i = $268;
$r$0$lcssa$i = $265;
break;
}
}
} else {
$$lcssa$i = $92;
$r$0$lcssa$i = 1;
}
HEAP32[$79 + ($r$0$lcssa$i << 4) >> 2] = HEAP32[$$lcssa$i >> 2];
HEAP32[$79 + ($r$0$lcssa$i << 4) + 4 >> 2] = HEAP32[$ctx + ($r$0$lcssa$i << 4) + 4 >> 2];
HEAP32[$79 + ($r$0$lcssa$i << 4) + 8 >> 2] = HEAP32[$ctx + ($r$0$lcssa$i << 4) + 8 >> 2];
HEAP32[$79 + ($r$0$lcssa$i << 4) + 12 >> 2] = HEAP32[$ctx + ($r$0$lcssa$i << 4) + 12 >> 2];
HEAP8[$0 >> 0] = HEAP8[$0 >> 0] | 1;
return;
}
function __gcry_sexp_cdr($list) {
$list = $list | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa88 = 0, $$lcssa89 = 0, $11 = 0, $12 = 0, $18 = 0, $22 = 0, $3 = 0, $30 = 0, $35 = 0, $37 = 0, $39 = 0, $40 = 0, $44 = 0, $5 = 0, $6 = 0, $level$0$ph$be = 0, $level$0$ph68 = 0, $level$1 = 0, $level$2 = 0, $p$0$ph6$lcssa = 0, $p$0$ph664 = 0, $p$0$ph67 = 0, $p$0$us = 0, $p$0$us$lcssa = 0, $p$1 = 0, $p$2 = 0, $skip$0$ph$be = 0, $skip$0$ph69 = 0, $skip$0$ph765 = 0, $skip$0$ph765$lcssa = 0, $skip$0$ph765$lcssa91 = 0, label = 0;
if (!$list) {
$$0 = 0;
return $$0 | 0;
}
if ((HEAP8[$list >> 0] | 0) == 3) {
$12 = -1;
$level$0$ph68 = 0;
$p$0$ph67 = $list;
$skip$0$ph69 = 1;
} else {
$$0 = 0;
return $$0 | 0;
}
L6 : while (1) {
$p$0$ph664 = $p$0$ph67;
$skip$0$ph765 = $skip$0$ph69;
L8 : while (1) {
$p$0$us = $p$0$ph664;
L10 : while (1) {
$3 = $p$0$us + 1 | 0;
switch (HEAP8[$3 >> 0] | 0) {
case 0:
{
$$0 = 0;
label = 19;
break L6;
break;
}
case 3:
{
$$lcssa88 = $3;
$skip$0$ph765$lcssa = $skip$0$ph765;
label = 8;
break L8;
break;
}
case 4:
{
$$lcssa89 = $3;
$skip$0$ph765$lcssa91 = $skip$0$ph765;
label = 10;
break L8;
break;
}
case 1:
{
$p$0$us$lcssa = $p$0$us;
break L10;
break;
}
default:
$p$0$us = $3;
}
}
$6 = $p$0$us$lcssa + 2 | 0;
$11 = $6 + (((HEAPU8[$6 >> 0] | HEAPU8[$6 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
$skip$0$ph765 = $12 + $skip$0$ph765 | 0;
if (($skip$0$ph765 | 0) <= 0) {
$p$0$ph6$lcssa = $11;
break L6;
} else $p$0$ph664 = $11;
}
if ((label | 0) == 8) {
label = 0;
$44 = $$lcssa88;
$level$0$ph$be = $level$0$ph68 + 1 | 0;
$skip$0$ph$be = $skip$0$ph765$lcssa;
} else if ((label | 0) == 10) {
label = 0;
$18 = $level$0$ph68 + -1 | 0;
$44 = $$lcssa89;
$level$0$ph$be = $18;
$skip$0$ph$be = ((($18 | 0) == 0) << 31 >> 31) + $skip$0$ph765$lcssa91 | 0;
}
if (($skip$0$ph$be | 0) > 0) {
$12 = (($level$0$ph$be | 0) == 0) << 31 >> 31;
$level$0$ph68 = $level$0$ph$be;
$p$0$ph67 = $44;
$skip$0$ph69 = $skip$0$ph$be;
} else {
$p$0$ph6$lcssa = $44;
break;
}
}
if ((label | 0) == 19) return $$0 | 0;
$5 = $p$0$ph6$lcssa + 1 | 0;
$level$1 = 0;
$p$1 = $5;
L20 : while (1) {
switch (HEAP8[$p$1 >> 0] | 0) {
case 0:
{
$$0 = 0;
label = 19;
break L20;
break;
}
case 1:
{
$22 = $p$1 + 1 | 0;
$level$2 = $level$1;
$p$2 = $22 + (((HEAPU8[$22 >> 0] | HEAPU8[$22 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
break;
}
case 3:
{
$level$2 = $level$1 + 1 | 0;
$p$2 = $p$1;
break;
}
case 4:
{
$level$2 = $level$1 + -1 | 0;
$p$2 = $p$1;
break;
}
default:
{
$level$2 = $level$1;
$p$2 = $p$1;
}
}
$30 = $p$2 + 1 | 0;
if (!$level$2) {
$$lcssa = $30;
break;
} else {
$level$1 = $level$2;
$p$1 = $30;
}
}
if ((label | 0) == 19) return $$0 | 0;
$35 = $$lcssa - $5 & 65535;
$37 = __gcry_malloc($35 + 3 | 0) | 0;
if (!$37) {
$$0 = 0;
return $$0 | 0;
}
$39 = $37 + 1 | 0;
HEAP8[$37 >> 0] = 3;
_memcpy($39 | 0, $5 | 0, $35 | 0) | 0;
$40 = $39 + $35 | 0;
HEAP8[$40 >> 0] = 4;
HEAP8[$40 + 1 >> 0] = 0;
if ((HEAP8[$39 >> 0] | 0) != 4) {
$$0 = $37;
return $$0 | 0;
}
__gcry_sexp_release($37);
$$0 = 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, $0 = 0, $14 = 0, $43 = 0, $49 = 0, $5 = 0, $6 = 0, $bits$021 = 0, $bits$1 = 0, $bits$2 = 0, $rpos$022 = 0, $rpos$1 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vbit$020 = 0, $vbit$1 = 0, $vbit$2 = 0, $wpos$0$lcssa = 0, $wpos$023 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer6 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = $size << 3;
if (((($0 | 4) >>> 0) / 5 | 0) >>> 0 > $out_size >>> 0) {
if ((HEAP32[257] | 0) == -1) HEAP32[257] = _GNUNET_get_log_call_status(1, 0, 21279, 21361, 873) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[257] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer >> 2] = 21279;
HEAP32[$vararg_buffer + 4 >> 2] = 873;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
L15 : do if (!$size) $wpos$0$lcssa = 0; else {
$5 = ($0 >>> 0) % 5 | 0;
$6 = 5 - $5 | 0;
$14 = 1;
$bits$021 = 0;
$rpos$022 = 0;
$vbit$020 = 0;
$wpos$023 = 0;
while (1) {
if ($vbit$020 >>> 0 < 5 & $14) {
$bits$1 = HEAPU8[$data + $rpos$022 >> 0] | 0 | $bits$021 << 8;
$rpos$1 = $rpos$022 + 1 | 0;
$vbit$1 = $vbit$020 + 8 | 0;
} else {
$bits$1 = $bits$021;
$rpos$1 = $rpos$022;
$vbit$1 = $vbit$020;
}
if ($vbit$1 >>> 0 < 5) {
if (($vbit$1 | 0) != ($5 | 0)) {
label = 14;
break;
}
$bits$2 = $bits$1 << $6;
$vbit$2 = 5;
} else {
$bits$2 = $bits$1;
$vbit$2 = $vbit$1;
}
if ($wpos$023 >>> 0 >= $out_size >>> 0) {
label = 23;
break;
}
$vbit$020 = $vbit$2 + -5 | 0;
$43 = $wpos$023 + 1 | 0;
HEAP8[$out + $wpos$023 >> 0] = HEAP8[21391 + ($bits$2 >>> $vbit$020 & 31) >> 0] | 0;
$14 = $rpos$1 >>> 0 < $size >>> 0;
if (!(($vbit$020 | 0) != 0 | $14)) {
$wpos$0$lcssa = $43;
break L15;
} else {
$bits$021 = $bits$2;
$rpos$022 = $rpos$1;
$wpos$023 = $43;
}
}
if ((label | 0) == 14) {
if ((HEAP32[258] | 0) == -1) HEAP32[258] = _GNUNET_get_log_call_status(1, 0, 21279, 21361, 890) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[258] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 21279;
HEAP32[$vararg_buffer2 + 4 >> 2] = 890;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
} else if ((label | 0) == 23) {
if ((HEAP32[259] | 0) == -1) HEAP32[259] = _GNUNET_get_log_call_status(1, 0, 21279, 21361, 895) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[259] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer6 >> 2] = 21279;
HEAP32[$vararg_buffer6 + 4 >> 2] = 895;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer6);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
} while (0);
$49 = $out + $wpos$0$lcssa | 0;
if ($wpos$0$lcssa >>> 0 >= $out_size >>> 0) {
$$0 = $49;
STACKTOP = sp;
return $$0 | 0;
}
HEAP8[$49 >> 0] = 0;
$$0 = $49;
STACKTOP = sp;
return $$0 | 0;
}
function _rsa_encrypt($r_ciph, $s_data, $keyparms) {
$r_ciph = $r_ciph | 0;
$s_data = $s_data | 0;
$keyparms = $keyparms | 0;
var $$0$i = 0, $0 = 0, $14 = 0, $20 = 0, $21 = 0, $27 = 0, $28 = 0, $33 = 0, $4 = 0, $47 = 0, $48 = 0, $50 = 0, $51 = 0, $6 = 0, $61 = 0, $9 = 0, $ciph$0 = 0, $ctx = 0, $data = 0, $pk = 0, $rc$0 = 0, $rc$1 = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
$vararg_buffer10 = sp + 40 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer3 = sp + 24 | 0;
$vararg_buffer = sp + 8 | 0;
$ctx = sp + 48 | 0;
$data = sp + 44 | 0;
$pk = sp;
HEAP32[$data >> 2] = 0;
$0 = $pk;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
$4 = __gcry_sexp_find_token($keyparms, 38737, 1) | 0;
if (!$4) $$0$i = 0; else {
$6 = __gcry_sexp_nth_mpi($4, 1, 5) | 0;
__gcry_sexp_release($4);
if (!$6) $61 = 0; else $61 = __gcry_mpi_get_nbits($6) | 0;
__gcry_mpi_release($6);
$$0$i = $61;
}
__gcry_pk_util_init_encoding_ctx($ctx, 0, $$0$i);
$9 = __gcry_pk_util_data_to_mpi($s_data, $data, $ctx) | 0;
do if (!$9) {
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(41012, HEAP32[$data >> 2] | 0);
$14 = HEAP32[$data >> 2] | 0;
if ($14) if (HEAP32[$14 + 12 >> 2] & 4) {
$ciph$0 = 0;
$rc$1 = 79;
break;
}
$20 = $pk + 4 | 0;
HEAP32[$vararg_buffer >> 2] = $pk;
HEAP32[$vararg_buffer + 4 >> 2] = $20;
HEAP32[$vararg_buffer + 8 >> 2] = 0;
$21 = __gcry_sexp_extract_param($keyparms, 0, 38723, $vararg_buffer) | 0;
if (!$21) {
if (__gcry_get_debug_flag(1) | 0) {
__gcry_log_printmpi(41029, HEAP32[$pk >> 2] | 0);
__gcry_log_printmpi(41046, HEAP32[$20 >> 2] | 0);
}
$27 = __gcry_mpi_new(0) | 0;
$28 = HEAP32[$data >> 2] | 0;
if (($27 | 0) == ($28 | 0)) {
$33 = __gcry_mpi_alloc(HEAP32[$27 + 4 >> 2] << 1) | 0;
__gcry_mpi_powm($33, $27, HEAP32[$20 >> 2] | 0, HEAP32[$pk >> 2] | 0);
__gcry_mpi_set($27, $33) | 0;
__gcry_mpi_free($33);
} else __gcry_mpi_powm($27, $28, HEAP32[$20 >> 2] | 0, HEAP32[$pk >> 2] | 0);
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(41063, $27);
if (!(HEAP32[$ctx + 12 >> 2] & 4)) {
HEAP32[$vararg_buffer7 >> 2] = $27;
$ciph$0 = $27;
$rc$1 = __gcry_sexp_build($r_ciph, 0, 41100, $vararg_buffer7) | 0;
break;
}
$47 = ((__gcry_mpi_get_nbits(HEAP32[$pk >> 2] | 0) | 0) + 7 | 0) >>> 3;
$48 = __gcry_mpi_to_octet_string($vararg_buffer, 0, $27, $47) | 0;
if (!$48) {
$50 = HEAP32[$vararg_buffer >> 2] | 0;
HEAP32[$vararg_buffer3 >> 2] = $47;
HEAP32[$vararg_buffer3 + 4 >> 2] = $50;
$51 = __gcry_sexp_build($r_ciph, 0, 41080, $vararg_buffer3) | 0;
__gcry_free(HEAP32[$vararg_buffer >> 2] | 0);
$rc$0 = $51;
} else $rc$0 = $48;
$ciph$0 = $27;
$rc$1 = $rc$0;
} else {
$ciph$0 = 0;
$rc$1 = $21;
}
} else {
$ciph$0 = 0;
$rc$1 = $9;
} while (0);
__gcry_mpi_release($ciph$0);
__gcry_mpi_release(HEAP32[$pk >> 2] | 0);
__gcry_mpi_release(HEAP32[$pk + 4 >> 2] | 0);
__gcry_mpi_release(HEAP32[$data >> 2] | 0);
__gcry_pk_util_free_encoding_ctx($ctx);
if (!(__gcry_get_debug_flag(1) | 0)) {
STACKTOP = sp;
return $rc$1 | 0;
}
HEAP32[$vararg_buffer10 >> 2] = _gpg_strerror($rc$1) | 0;
__gcry_log_debug(41120, $vararg_buffer10);
STACKTOP = sp;
return $rc$1 | 0;
}
function _flush_bulk($datestr) {
$datestr = $datestr | 0;
var $$0$i$i = 0, $$byval_copy$17 = 0, $0 = 0, $1 = 0, $12 = 0, $18 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $28 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $37 = 0, $56 = 0, $58 = 0, $last$0 = 0, $msg = 0, $pos$0$2$i = 0, $pos$03$i = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 640 | 0;
$$byval_copy$17 = sp + 56 | 0;
$vararg_buffer10 = sp + 40 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer = sp;
$msg = sp + 64 | 0;
$0 = sp + 32 | 0;
$1 = 69808;
if ((HEAP32[$1 >> 2] | 0) == 0 & (HEAP32[$1 + 4 >> 2] | 0) == 0 | (HEAP32[17466] | 0) == 0) {
STACKTOP = sp;
return;
}
$12 = _memchr(70922, 0, 256) | 0;
$last$0 = ($12 | 0) == 0 ? 71177 : ($12 | 0) == 70922 ? 70922 : $12 + -1 | 0;
if ((HEAP8[$last$0 >> 0] | 0) == 10) {
HEAP8[$last$0 >> 0] = 0;
HEAP32[$$byval_copy$17 >> 2] = HEAP32[17452];
HEAP32[$$byval_copy$17 + 4 >> 2] = HEAP32[17453];
$18 = _GNUNET_TIME_absolute_get_duration($$byval_copy$17) | 0;
$20 = $0;
HEAP32[$20 >> 2] = $18;
HEAP32[$20 + 4 >> 2] = tempRet0;
HEAP32[$$byval_copy$17 >> 2] = HEAP32[$0 >> 2];
HEAP32[$$byval_copy$17 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
$24 = _GNUNET_STRINGS_relative_time_to_string($$byval_copy$17, 1) | 0;
$25 = HEAP32[17466] | 0;
HEAP32[$vararg_buffer >> 2] = 256;
HEAP32[$vararg_buffer + 4 >> 2] = 70922;
HEAP32[$vararg_buffer + 8 >> 2] = $25;
HEAP32[$vararg_buffer + 12 >> 2] = $24;
_snprintf($msg, 576, 19079, $vararg_buffer) | 0;
HEAP8[$last$0 >> 0] = 10;
} else {
HEAP32[$$byval_copy$17 >> 2] = HEAP32[17452];
HEAP32[$$byval_copy$17 + 4 >> 2] = HEAP32[17453];
$26 = _GNUNET_TIME_absolute_get_duration($$byval_copy$17) | 0;
$28 = $0;
HEAP32[$28 >> 2] = $26;
HEAP32[$28 + 4 >> 2] = tempRet0;
HEAP32[$$byval_copy$17 >> 2] = HEAP32[$0 >> 2];
HEAP32[$$byval_copy$17 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
$32 = _GNUNET_STRINGS_relative_time_to_string($$byval_copy$17, 1) | 0;
$33 = HEAP32[17466] | 0;
HEAP32[$vararg_buffer4 >> 2] = 256;
HEAP32[$vararg_buffer4 + 4 >> 2] = 70922;
HEAP32[$vararg_buffer4 + 8 >> 2] = $33;
HEAP32[$vararg_buffer4 + 12 >> 2] = $32;
_snprintf($msg, 576, 19079, $vararg_buffer4) | 0;
}
$34 = HEAP32[17467] | 0;
$35 = HEAP32[17465] | 0;
$37 = HEAP32[17463] | 0;
if (($35 | 0) != 0 & ($37 | 0) == 0) {
if (!($34 & 1)) if (!($34 & 2)) if (!($34 & 4)) if (!($34 & 8)) $$0$i$i = ($34 & -33 | 0) == 0 ? 18972 : 19016; else $$0$i$i = 18947; else $$0$i$i = 18953; else $$0$i$i = 18958; else $$0$i$i = 18966;
HEAP32[$vararg_buffer10 >> 2] = $datestr;
HEAP32[$vararg_buffer10 + 4 >> 2] = 71178;
HEAP32[$vararg_buffer10 + 8 >> 2] = $$0$i$i;
HEAP32[$vararg_buffer10 + 12 >> 2] = $msg;
_fprintf($35, 19067, $vararg_buffer10) | 0;
_fflush(HEAP32[17465] | 0) | 0;
$pos$0$2$i = HEAP32[17463] | 0;
} else $pos$0$2$i = $37;
if ($pos$0$2$i) {
$pos$03$i = $pos$0$2$i;
do {
FUNCTION_TABLE_viiiii[HEAP32[$pos$03$i + 4 >> 2] & 15](HEAP32[$pos$03$i + 8 >> 2] | 0, $34, 71178, $datestr, $msg);
$pos$03$i = HEAP32[$pos$03$i >> 2] | 0;
} while (($pos$03$i | 0) != 0);
}
$56 = _GNUNET_TIME_absolute_get() | 0;
$58 = 69808;
HEAP32[$58 >> 2] = $56;
HEAP32[$58 + 4 >> 2] = tempRet0;
HEAP32[17466] = 0;
STACKTOP = sp;
return;
}
function _fips_new_state($new_state) {
$new_state = $new_state | 0;
var $0 = 0, $14 = 0, $19 = 0, $3 = 0, $ok$049 = 0, $s$0$i = 0, $s$0$i$46 = 0, $switch$tableidx = 0, $switch$tableidx28 = 0, $switch$tableidx34 = 0, $switch$tableidx40 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = _gpgrt_lock_lock(1236) | 0;
if ($0) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($0) | 0;
__gcry_log_info(23298, $vararg_buffer);
_abort();
}
$3 = HEAP32[17507] | 0;
switch ($3 | 0) {
case 0:
{
$switch$tableidx = $new_state + -1 | 0;
if ($switch$tableidx >>> 0 < 5) if (!(25 >>> ($switch$tableidx & 31) & 1)) label = 17; else label = 14; else label = 17;
break;
}
case 1:
{
$switch$tableidx28 = $new_state + -2 | 0;
if ($switch$tableidx28 >>> 0 < 4) if (!(13 >>> ($switch$tableidx28 & 15) & 1)) label = 17; else label = 14; else label = 17;
break;
}
case 2:
{
if (($new_state + -3 | 0) >>> 0 < 3) label = 14; else label = 17;
break;
}
case 3:
{
$switch$tableidx34 = $new_state + -2 | 0;
if ($switch$tableidx34 >>> 0 < 5) if (!(29 >>> ($switch$tableidx34 & 31) & 1)) label = 17; else label = 14; else label = 17;
break;
}
case 4:
{
$switch$tableidx40 = $new_state + -2 | 0;
if ($switch$tableidx40 >>> 0 < 5) if (!(29 >>> ($switch$tableidx40 & 31) & 1)) label = 17; else label = 14; else label = 17;
break;
}
case 5:
{
if (($new_state | 0) == 6) label = 14; else label = 17;
break;
}
default:
label = 17;
}
if ((label | 0) == 14) {
HEAP32[17507] = $new_state;
$14 = _gpgrt_lock_unlock(1236) | 0;
if ($14) {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($14) | 0;
__gcry_log_info(23353, $vararg_buffer1);
_abort();
}
if (!(__gcry_log_verbosity(2) | 0)) {
STACKTOP = sp;
return;
} else $ok$049 = 1;
} else if ((label | 0) == 17) {
$19 = _gpgrt_lock_unlock(1236) | 0;
if (!$19) $ok$049 = 0; else {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($19) | 0;
__gcry_log_info(23353, $vararg_buffer4);
_abort();
}
}
switch ($3 | 0) {
case 0:
{
$s$0$i = 23527;
break;
}
case 1:
{
$s$0$i = 23522;
break;
}
case 2:
{
$s$0$i = 23512;
break;
}
case 3:
{
$s$0$i = 23500;
break;
}
case 4:
{
$s$0$i = 23494;
break;
}
case 5:
{
$s$0$i = 23482;
break;
}
case 6:
{
$s$0$i = 23473;
break;
}
default:
$s$0$i = 37327;
}
switch ($new_state | 0) {
case 0:
{
$s$0$i$46 = 23527;
break;
}
case 1:
{
$s$0$i$46 = 23522;
break;
}
case 2:
{
$s$0$i$46 = 23512;
break;
}
case 3:
{
$s$0$i$46 = 23500;
break;
}
case 4:
{
$s$0$i$46 = 23494;
break;
}
case 5:
{
$s$0$i$46 = 23482;
break;
}
case 6:
{
$s$0$i$46 = 23473;
break;
}
default:
$s$0$i$46 = 37327;
}
HEAP32[$vararg_buffer7 >> 2] = $s$0$i;
HEAP32[$vararg_buffer7 + 4 >> 2] = $s$0$i$46;
HEAP32[$vararg_buffer7 + 8 >> 2] = $ok$049 ? 23536 : 23544;
__gcry_log_info(23551, $vararg_buffer7);
if ($ok$049) {
STACKTOP = sp;
return;
} else __gcry_fips_noreturn();
}
function _sha256_final($context) {
$context = $context | 0;
var $$ = 0, $1 = 0, $100 = 0, $113 = 0, $126 = 0, $13 = 0, $139 = 0, $14 = 0, $15 = 0, $152 = 0, $18 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $34 = 0, $61 = 0, $7 = 0, $74 = 0, $8 = 0, $87 = 0, dest = 0, stop = 0;
__gcry_md_block_write($context, 0, 0);
$1 = $context + 128 | 0;
$3 = HEAP32[$1 >> 2] | 0;
$7 = $3 << 6;
$8 = _bitshift64Lshr($3 | 0, HEAP32[$1 + 4 >> 2] | 0, 26) | 0;
$13 = $context + 144 | 0;
$14 = HEAP32[$13 >> 2] | 0;
$15 = $7 + $14 | 0;
$$ = ($15 >>> 0 < $7 >>> 0 & 1) + ($8 & 536870848 | $3 >>> 26) | 0;
$18 = $15 << 3;
$21 = $$ << 3 | $15 >>> 29;
HEAP32[$13 >> 2] = $14 + 1;
HEAP8[$context + $14 >> 0] = -128;
$25 = HEAP32[$13 >> 2] | 0;
if (($14 | 0) < 56) {
if (($25 | 0) < 56) {
$29 = $25;
do {
HEAP32[$13 >> 2] = $29 + 1;
HEAP8[$context + $29 >> 0] = 0;
$29 = HEAP32[$13 >> 2] | 0;
} while (($29 | 0) < 56);
}
} else {
if (($25 | 0) < 64) {
$34 = $25;
do {
HEAP32[$13 >> 2] = $34 + 1;
HEAP8[$context + $34 >> 0] = 0;
$34 = HEAP32[$13 >> 2] | 0;
} while (($34 | 0) < 64);
}
__gcry_md_block_write($context, 0, 0);
dest = $context;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
}
HEAP8[$context + 56 >> 0] = $$ >>> 21;
HEAP8[$context + 57 >> 0] = $$ >>> 13;
HEAP8[$context + 58 >> 0] = $$ >>> 5;
HEAP8[$context + 59 >> 0] = $21;
HEAP8[$context + 60 >> 0] = $15 >>> 21;
HEAP8[$context + 61 >> 0] = $15 >>> 13;
HEAP8[$context + 62 >> 0] = $15 >>> 5;
HEAP8[$context + 63 >> 0] = $18;
_transform_1337($context, $context, 1) | 0;
___gcry_burn_stack(328);
$61 = HEAP32[$context + 160 >> 2] | 0;
HEAP8[$context >> 0] = $61 >>> 24;
HEAP8[$context + 1 >> 0] = $61 >>> 16;
HEAP8[$context + 2 >> 0] = $61 >>> 8;
HEAP8[$context + 3 >> 0] = $61;
$74 = HEAP32[$context + 164 >> 2] | 0;
HEAP8[$context + 4 >> 0] = $74 >>> 24;
HEAP8[$context + 5 >> 0] = $74 >>> 16;
HEAP8[$context + 6 >> 0] = $74 >>> 8;
HEAP8[$context + 7 >> 0] = $74;
$87 = HEAP32[$context + 168 >> 2] | 0;
HEAP8[$context + 8 >> 0] = $87 >>> 24;
HEAP8[$context + 9 >> 0] = $87 >>> 16;
HEAP8[$context + 10 >> 0] = $87 >>> 8;
HEAP8[$context + 11 >> 0] = $87;
$100 = HEAP32[$context + 172 >> 2] | 0;
HEAP8[$context + 12 >> 0] = $100 >>> 24;
HEAP8[$context + 13 >> 0] = $100 >>> 16;
HEAP8[$context + 14 >> 0] = $100 >>> 8;
HEAP8[$context + 15 >> 0] = $100;
$113 = HEAP32[$context + 176 >> 2] | 0;
HEAP8[$context + 16 >> 0] = $113 >>> 24;
HEAP8[$context + 17 >> 0] = $113 >>> 16;
HEAP8[$context + 18 >> 0] = $113 >>> 8;
HEAP8[$context + 19 >> 0] = $113;
$126 = HEAP32[$context + 180 >> 2] | 0;
HEAP8[$context + 20 >> 0] = $126 >>> 24;
HEAP8[$context + 21 >> 0] = $126 >>> 16;
HEAP8[$context + 22 >> 0] = $126 >>> 8;
HEAP8[$context + 23 >> 0] = $126;
$139 = HEAP32[$context + 184 >> 2] | 0;
HEAP8[$context + 24 >> 0] = $139 >>> 24;
HEAP8[$context + 25 >> 0] = $139 >>> 16;
HEAP8[$context + 26 >> 0] = $139 >>> 8;
HEAP8[$context + 27 >> 0] = $139;
$152 = HEAP32[$context + 188 >> 2] | 0;
HEAP8[$context + 28 >> 0] = $152 >>> 24;
HEAP8[$context + 29 >> 0] = $152 >>> 16;
HEAP8[$context + 30 >> 0] = $152 >>> 8;
HEAP8[$context + 31 >> 0] = $152;
return;
}
function __gcry_hmac256_update($hd, $buffer, $length) {
$hd = $hd | 0;
$buffer = $buffer | 0;
$length = $length | 0;
var $$015$lcssa = 0, $$01534 = 0, $$1$lcssa = 0, $$1$ph = 0, $$111 = 0, $$2831 = 0, $$lcssa = 0, $$pre = 0, $0 = 0, $11 = 0, $15 = 0, $17 = 0, $19 = 0, $21 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $32 = 0, $4 = 0, $40 = 0, $45 = 0, $52 = 0, $54 = 0, $60 = 0, $7 = 0, $inbuf$016$lcssa = 0, $inbuf$01633 = 0, $inbuf$1$lcssa = 0, $inbuf$1$ph = 0, $inbuf$112 = 0, $inbuf$2930 = 0, $scevgep = 0, label = 0;
$0 = $hd + 40 | 0;
if (HEAP8[$0 >> 0] & 1) return;
$3 = $hd + 36 | 0;
$4 = HEAP32[$3 >> 2] | 0;
if (($4 | 0) == 64) {
_transform_1710($hd, $hd + 41 | 0);
HEAP32[$3 >> 2] = 0;
$7 = $hd + 32 | 0;
HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + 1;
$11 = 0;
} else $11 = $4;
if (!$buffer) return;
L10 : do if (!$11) {
$$1$ph = $length;
$60 = 0;
$inbuf$1$ph = $buffer;
} else {
L12 : do if ($length) {
if (($11 | 0) < 64) {
$$01534 = $length;
$17 = $11;
$inbuf$01633 = $buffer;
while (1) {
$15 = HEAP8[$inbuf$01633 >> 0] | 0;
HEAP32[$3 >> 2] = $17 + 1;
HEAP8[$hd + 41 + $17 >> 0] = $15;
$19 = $$01534 + -1 | 0;
if (!$19) break L12;
$21 = $inbuf$01633 + 1 | 0;
$$pre = HEAP32[$3 >> 2] | 0;
if (($$pre | 0) < 64) {
$$01534 = $19;
$17 = $$pre;
$inbuf$01633 = $21;
} else {
$$015$lcssa = $19;
$$lcssa = $$pre;
$inbuf$016$lcssa = $21;
break;
}
}
} else {
$$015$lcssa = $length;
$$lcssa = $11;
$inbuf$016$lcssa = $buffer;
}
if (!(($$lcssa | 0) == 64 & (HEAP8[$0 >> 0] & 1) == 0)) {
$$1$ph = $$015$lcssa;
$60 = $$lcssa;
$inbuf$1$ph = $inbuf$016$lcssa;
break L10;
}
_transform_1710($hd, $hd + 41 | 0);
HEAP32[$3 >> 2] = 0;
$32 = $hd + 32 | 0;
HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1;
$$1$ph = $$015$lcssa;
$60 = 0;
$inbuf$1$ph = $inbuf$016$lcssa;
break L10;
} while (0);
if (HEAP8[$0 >> 0] & 1) return;
if ((HEAP32[$3 >> 2] | 0) != 64) return;
_transform_1710($hd, $hd + 41 | 0);
HEAP32[$3 >> 2] = 0;
$40 = $hd + 32 | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1;
return;
} while (0);
if ($$1$ph >>> 0 > 63) {
$27 = $hd + 32 | 0;
$28 = $$1$ph + -64 | 0;
$29 = $28 & -64;
$scevgep = $inbuf$1$ph + ($29 + 64) | 0;
$$111 = $$1$ph;
$inbuf$112 = $inbuf$1$ph;
while (1) {
_transform_1710($hd, $inbuf$112);
HEAP32[$3 >> 2] = 0;
HEAP32[$27 >> 2] = (HEAP32[$27 >> 2] | 0) + 1;
$$111 = $$111 + -64 | 0;
if ($$111 >>> 0 <= 63) break; else $inbuf$112 = $inbuf$112 + 64 | 0;
}
$$1$lcssa = $28 - $29 | 0;
$45 = 0;
$inbuf$1$lcssa = $scevgep;
} else {
$$1$lcssa = $$1$ph;
$45 = $60;
$inbuf$1$lcssa = $inbuf$1$ph;
}
if (($$1$lcssa | 0) != 0 & ($45 | 0) < 64) {
$$2831 = $$1$lcssa;
$54 = $45;
$inbuf$2930 = $inbuf$1$lcssa;
} else return;
while (1) {
$52 = HEAP8[$inbuf$2930 >> 0] | 0;
HEAP32[$3 >> 2] = $54 + 1;
HEAP8[$hd + 41 + $54 >> 0] = $52;
$$2831 = $$2831 + -1 | 0;
if (!$$2831) {
label = 22;
break;
}
$54 = HEAP32[$3 >> 2] | 0;
if (($54 | 0) >= 64) {
label = 22;
break;
} else $inbuf$2930 = $inbuf$2930 + 1 | 0;
}
if ((label | 0) == 22) return;
}
function __gcry_ecc_gost_verify($input, $pkey, $r, $s) {
$input = $input | 0;
$pkey = $pkey | 0;
$r = $r | 0;
$s = $s | 0;
var $$0 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $27 = 0, $49 = 0, $51 = 0, $Q = 0, $Q1 = 0, $Q2 = 0, $err$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$Q = sp + 52 | 0;
$Q1 = sp + 40 | 0;
$Q2 = sp + 28 | 0;
if ((__gcry_mpi_cmp_ui($r, 0) | 0) <= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
$2 = $pkey + 32 | 0;
if ((__gcry_mpi_cmp($r, HEAP32[$2 >> 2] | 0) | 0) >= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
if ((__gcry_mpi_cmp_ui($s, 0) | 0) <= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
if ((__gcry_mpi_cmp($s, HEAP32[$2 >> 2] | 0) | 0) >= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
$11 = __gcry_mpi_alloc(0) | 0;
$12 = __gcry_mpi_alloc(0) | 0;
$13 = __gcry_mpi_alloc(0) | 0;
$14 = __gcry_mpi_alloc(0) | 0;
$15 = __gcry_mpi_alloc(0) | 0;
$16 = __gcry_mpi_alloc(0) | 0;
$17 = __gcry_mpi_alloc(0) | 0;
__gcry_mpi_point_init($Q);
__gcry_mpi_point_init($Q1);
__gcry_mpi_point_init($Q2);
$27 = __gcry_mpi_ec_p_internal_new(HEAP32[$pkey >> 2] | 0, HEAP32[$pkey + 4 >> 2] | 0, 0, HEAP32[$pkey + 8 >> 2] | 0, HEAP32[$pkey + 12 >> 2] | 0, HEAP32[$pkey + 16 >> 2] | 0) | 0;
__gcry_mpi_mod($12, $input, HEAP32[$2 >> 2] | 0);
if (!(__gcry_mpi_cmp_ui($12, 0) | 0)) __gcry_mpi_set_ui($12, 1) | 0;
__gcry_mpi_invm($15, $12, HEAP32[$2 >> 2] | 0) | 0;
__gcry_mpi_mulm($13, $s, $15, HEAP32[$2 >> 2] | 0);
__gcry_mpi_mulm($16, $r, $15, HEAP32[$2 >> 2] | 0);
__gcry_mpi_subm($14, $17, $16, HEAP32[$2 >> 2] | 0);
__gcry_mpi_ec_mul_point($Q1, $13, $pkey + 20 | 0, $27);
__gcry_mpi_ec_mul_point($Q2, $14, $pkey + 44 | 0, $27);
__gcry_mpi_ec_add_points($Q, $Q1, $Q2, $27);
do if (!(__gcry_mpi_cmp_ui(HEAP32[$Q + 8 >> 2] | 0, 0) | 0)) if (!(__gcry_get_debug_flag(1) | 0)) $err$0 = 8; else {
__gcry_log_debug(52576, $vararg_buffer);
$err$0 = 8;
} else {
if (__gcry_mpi_ec_get_affine($11, 0, $Q, $27) | 0) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$err$0 = 8;
break;
}
__gcry_log_debug(52598, $vararg_buffer1);
$err$0 = 8;
break;
}
__gcry_mpi_mod($11, $11, HEAP32[$2 >> 2] | 0);
$49 = (__gcry_mpi_cmp($11, $r) | 0) == 0;
$51 = (__gcry_get_debug_flag(1) | 0) != 0;
if ($49) {
if (!$51) {
$err$0 = 0;
break;
}
__gcry_log_debug(52691, $vararg_buffer5);
$err$0 = 0;
break;
} else {
if (!$51) {
$err$0 = 8;
break;
}
__gcry_log_printmpi(52644, $11);
__gcry_log_printmpi(52651, $r);
__gcry_log_printmpi(52658, $s);
__gcry_log_debug(52665, $vararg_buffer3);
$err$0 = 8;
break;
}
} while (0);
__gcry_mpi_ec_free($27);
__gcry_mpi_point_free_parts($Q2);
__gcry_mpi_point_free_parts($Q1);
__gcry_mpi_point_free_parts($Q);
__gcry_mpi_free($17);
__gcry_mpi_free($16);
__gcry_mpi_free($15);
__gcry_mpi_free($14);
__gcry_mpi_free($13);
__gcry_mpi_free($11);
__gcry_mpi_free($12);
$$0 = $err$0;
STACKTOP = sp;
return $$0 | 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, $0 = 0, $13 = 0, $14 = 0, $19 = 0, $23 = 0, $24 = 0, $29 = 0, $35 = 0, $36 = 0, $37 = 0, $45 = 0, $5 = 0, $52 = 0, $6 = 0, $7 = 0, $8 = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$0 = $point + 8 | 0;
if (!(__gcry_mpi_cmp_ui(HEAP32[$0 >> 2] | 0, 0) | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
switch (HEAP32[$ctx >> 2] | 0) {
case 0:
{
$5 = __gcry_mpi_new(0) | 0;
$6 = __gcry_mpi_new(0) | 0;
$7 = HEAP32[$0 >> 2] | 0;
$8 = $ctx + 16 | 0;
if (!(__gcry_mpi_invm($5, $7, HEAP32[$8 >> 2] | 0) | 0)) {
__gcry_log_error(45003, sp);
__gcry_log_printmpi(45037, $7);
__gcry_log_printmpi(45041, HEAP32[$8 >> 2] | 0);
}
__gcry_mpi_mul($6, $5, $5);
$13 = $ctx + 60 | 0;
$14 = HEAP32[$13 >> 2] | 0;
if (!$14) __gcry_mpi_mod($6, $6, HEAP32[$8 >> 2] | 0); else __gcry_mpi_mod_barrett($6, $6, $14);
do if ($x) {
__gcry_mpi_mul($x, HEAP32[$point >> 2] | 0, $6);
$19 = HEAP32[$13 >> 2] | 0;
if (!$19) {
__gcry_mpi_mod($x, $x, HEAP32[$8 >> 2] | 0);
break;
} else {
__gcry_mpi_mod_barrett($x, $x, $19);
break;
}
} while (0);
if ($y) {
$23 = __gcry_mpi_new(0) | 0;
__gcry_mpi_mul($23, $6, $5);
$24 = HEAP32[$13 >> 2] | 0;
if (!$24) __gcry_mpi_mod($23, $23, HEAP32[$8 >> 2] | 0); else __gcry_mpi_mod_barrett($23, $23, $24);
__gcry_mpi_mul($y, HEAP32[$point + 4 >> 2] | 0, $23);
$29 = HEAP32[$13 >> 2] | 0;
if (!$29) __gcry_mpi_mod($y, $y, HEAP32[$8 >> 2] | 0); else __gcry_mpi_mod_barrett($y, $y, $29);
__gcry_mpi_free($23);
}
__gcry_mpi_free($6);
__gcry_mpi_free($5);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
case 1:
{
if ($x) __gcry_mpi_set($x, HEAP32[$point >> 2] | 0) | 0;
if (!$y) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = 45094;
HEAP32[$vararg_buffer1 + 4 >> 2] = 45118;
__gcry_log_fatal(45045, $vararg_buffer1);
}
break;
}
case 2:
{
$35 = __gcry_mpi_new(0) | 0;
$36 = HEAP32[$0 >> 2] | 0;
$37 = $ctx + 16 | 0;
if (!(__gcry_mpi_invm($35, $36, HEAP32[$37 >> 2] | 0) | 0)) {
__gcry_log_error(45003, $vararg_buffer4);
__gcry_log_printmpi(45037, $36);
__gcry_log_printmpi(45041, HEAP32[$37 >> 2] | 0);
}
do if ($x) {
__gcry_mpi_mul($x, HEAP32[$point >> 2] | 0, $35);
$45 = HEAP32[$ctx + 60 >> 2] | 0;
if (!$45) {
__gcry_mpi_mod($x, $x, HEAP32[$37 >> 2] | 0);
break;
} else {
__gcry_mpi_mod_barrett($x, $x, $45);
break;
}
} while (0);
do if ($y) {
__gcry_mpi_mul($y, HEAP32[$point + 4 >> 2] | 0, $35);
$52 = HEAP32[$ctx + 60 >> 2] | 0;
if (!$52) {
__gcry_mpi_mod($y, $y, HEAP32[$37 >> 2] | 0);
break;
} else {
__gcry_mpi_mod_barrett($y, $y, $52);
break;
}
} while (0);
__gcry_mpi_release($35);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
default:
{
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
}
return 0;
}
function _GNUNET_CRYPTO_rsa_unblind($sig, $bkey, $pkey) {
$sig = $sig | 0;
$bkey = $bkey | 0;
$pkey = $pkey | 0;
var $$0 = 0, $25 = 0, $27 = 0, $37 = 0, $38 = 0, $39 = 0, $n = 0, $s = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer13 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$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 + 44 | 0;
$s = sp + 40 | 0;
if (_key_from_sexp_125($n, HEAP32[$pkey >> 2] | 0, 37336, 38737) | 0) if (_key_from_sexp_125($n, HEAP32[$pkey >> 2] | 0, 40355, 38737) | 0) {
if ((HEAP32[250] | 0) == -1) HEAP32[250] = _GNUNET_get_log_call_status(2, 0, 20567, 21114, 932) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[250] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 932;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (_key_from_sexp_125($s, HEAP32[$sig >> 2] | 0, 37191, 38735) | 0) if (_key_from_sexp_125($s, HEAP32[$sig >> 2] | 0, 40355, 38735) | 0) {
_gcry_mpi_release(HEAP32[$n >> 2] | 0);
if ((HEAP32[251] | 0) == -1) HEAP32[251] = _GNUNET_get_log_call_status(2, 0, 20567, 21114, 941) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[251] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer2 >> 2] = 20567;
HEAP32[$vararg_buffer2 + 4 >> 2] = 941;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer2);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$25 = _gcry_mpi_new(0) | 0;
$27 = HEAP32[$n >> 2] | 0;
if ((_gcry_mpi_invm($25, HEAP32[$bkey >> 2] | 0, $27) | 0) != 1) {
if ((HEAP32[252] | 0) == -1) HEAP32[252] = _GNUNET_get_log_call_status(2, 0, 20567, 21114, 950) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[252] | 0) {
HEAP32[$vararg_buffer6 >> 2] = 20567;
HEAP32[$vararg_buffer6 + 4 >> 2] = 950;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer6);
}
_gcry_mpi_release($27);
_gcry_mpi_release($25);
_gcry_mpi_release(HEAP32[$s >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$37 = _gcry_mpi_new(0) | 0;
$38 = HEAP32[$s >> 2] | 0;
_gcry_mpi_mulm($37, $38, $25, $27);
_gcry_mpi_release($27);
_gcry_mpi_release($25);
_gcry_mpi_release($38);
$39 = _GNUNET_xmalloc_(4, 20567, 962) | 0;
HEAP32[$vararg_buffer10 >> 2] = $37;
if (!(_gcry_sexp_build($39, 0, 21140, $vararg_buffer10) | 0)) {
_gcry_mpi_release($37);
$$0 = $39;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[253] | 0) == -1) HEAP32[253] = _GNUNET_get_log_call_status(1, 0, 20567, 21114, 967) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[253] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer13 >> 2] = 20567;
HEAP32[$vararg_buffer13 + 4 >> 2] = 967;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer13);
_GNUNET_abort_();
return 0;
}
function _is_prime($n, $steps, $count) {
$n = $n | 0;
$steps = $steps | 0;
$count = $count | 0;
var $$steps = 0, $0 = 0, $10 = 0, $12 = 0, $13 = 0, $16 = 0, $2 = 0, $21 = 0, $38 = 0, $4 = 0, $47 = 0, $58 = 0, $6 = 0, $8 = 0, $9 = 0, $i$04 = 0, $i$04$us = 0, $j$02$us = 0, $rc$0 = 0, label = 0;
$0 = $n + 4 | 0;
$2 = __gcry_mpi_alloc(HEAP32[$0 >> 2] | 0) | 0;
$4 = __gcry_mpi_alloc(HEAP32[$0 >> 2] | 0) | 0;
$6 = __gcry_mpi_alloc(HEAP32[$0 >> 2] | 0) | 0;
$8 = __gcry_mpi_alloc(HEAP32[$0 >> 2] | 0) | 0;
$9 = __gcry_mpi_alloc_set_ui(2) | 0;
$10 = __gcry_mpi_get_nbits($n) | 0;
$$steps = ($steps | 0) < 5 ? 5 : $steps;
__gcry_mpi_sub_ui($8, $n, 1);
$12 = __gcry_mpi_copy($8) | 0;
$13 = __gcry_mpi_trailing_zeros($12) | 0;
__gcry_mpi_tdiv_q_2exp($12, $12, $13);
L1 : do if (!$$steps) $rc$0 = 1; else {
$16 = $10 + -2 | 0;
if ($13 >>> 0 > 1) $i$04$us = 0; else {
$i$04 = 0;
while (1) {
HEAP32[$count >> 2] = (HEAP32[$count >> 2] | 0) + 1;
if (!$i$04) __gcry_mpi_set_ui($2, 2) | 0; else {
__gcry_mpi_randomize($2, $10, 0);
$47 = (__gcry_mpi_test_bit($2, $16) | 0) == 0;
__gcry_mpi_set_highbit($2, $16);
if ($47) __gcry_mpi_clear_bit($2, $16);
if ((__gcry_mpi_cmp($2, $8) | 0) >= 0) {
label = 24;
break;
}
if ((__gcry_mpi_cmp_ui($2, 1) | 0) <= 0) {
label = 24;
break;
}
}
__gcry_mpi_powm($4, $2, $12, $n);
if (__gcry_mpi_cmp_ui($4, 1) | 0) if (__gcry_mpi_cmp($4, $8) | 0) if (__gcry_mpi_cmp($4, $8) | 0) {
$rc$0 = 0;
break L1;
}
$58 = HEAP32[17511] | 0;
if ($58) FUNCTION_TABLE_viiiii[$58 & 15](HEAP32[17512] | 0, 36874, 43, 0, 0);
$i$04 = $i$04 + 1 | 0;
if ($i$04 >>> 0 >= $$steps >>> 0) {
$rc$0 = 1;
break L1;
}
}
if ((label | 0) == 24) __gcry_assert_failed(36894, 36883, 951, 36966);
}
while (1) {
HEAP32[$count >> 2] = (HEAP32[$count >> 2] | 0) + 1;
if (!$i$04$us) __gcry_mpi_set_ui($2, 2) | 0; else {
__gcry_mpi_randomize($2, $10, 0);
$21 = (__gcry_mpi_test_bit($2, $16) | 0) == 0;
__gcry_mpi_set_highbit($2, $16);
if ($21) __gcry_mpi_clear_bit($2, $16);
if ((__gcry_mpi_cmp($2, $8) | 0) >= 0) {
label = 24;
break;
}
if ((__gcry_mpi_cmp_ui($2, 1) | 0) <= 0) {
label = 24;
break;
}
}
__gcry_mpi_powm($4, $2, $12, $n);
if (__gcry_mpi_cmp_ui($4, 1) | 0) if (__gcry_mpi_cmp($4, $8) | 0) {
$j$02$us = 1;
do {
if (!(__gcry_mpi_cmp($4, $8) | 0)) break;
__gcry_mpi_powm($4, $4, $9, $n);
$j$02$us = $j$02$us + 1 | 0;
if (!(__gcry_mpi_cmp_ui($4, 1) | 0)) {
$rc$0 = 0;
break L1;
}
} while ($j$02$us >>> 0 < $13 >>> 0);
if (__gcry_mpi_cmp($4, $8) | 0) {
$rc$0 = 0;
break L1;
}
}
$38 = HEAP32[17511] | 0;
if ($38) FUNCTION_TABLE_viiiii[$38 & 15](HEAP32[17512] | 0, 36874, 43, 0, 0);
$i$04$us = $i$04$us + 1 | 0;
if ($i$04$us >>> 0 >= $$steps >>> 0) {
$rc$0 = 1;
break L1;
}
}
if ((label | 0) == 24) __gcry_assert_failed(36894, 36883, 951, 36966);
} while (0);
__gcry_mpi_free($2);
__gcry_mpi_free($4);
__gcry_mpi_free($6);
__gcry_mpi_free($8);
__gcry_mpi_free($12);
__gcry_mpi_free($9);
return $rc$0 | 0;
}
function __gcry_sexp_nth_buffer($list, $number, $rlength) {
$list = $list | 0;
$number = $number | 0;
$rlength = $rlength | 0;
var $$0 = 0, $$015$ph$i = 0, $$lcssa$i = 0, $$ph$i = 0, $$ph12$i = 0, $1 = 0, $15 = 0, $18 = 0, $23 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $32 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $level$07$i$lcssa = 0, $level$07$i9 = 0, $level$07$i9$lcssa = 0, $level$07$ph$i = 0, $level$1$i = 0, $level$1$ph$i = 0, $p$0$lcssa$i = 0, $p$0$lcssa11$i = 0, $p$06$i$lcssa = 0, $p$06$i10 = 0, $p$06$i10$lcssa = 0, $p$06$ph$i = 0, $p$1$i = 0, label = 0;
HEAP32[$rlength >> 2] = 0;
if (!$list) {
$$0 = 0;
return $$0 | 0;
}
$1 = HEAP8[$list >> 0] | 0;
if ($1 << 24 >> 24 == 3) {
$5 = $list + 1 | 0;
$7 = HEAP8[$5 >> 0] | 0;
$8 = $7 << 24 >> 24 == 1;
L6 : do if (($number | 0) > 0) {
$$015$ph$i = $number;
$$ph$i = $8;
$$ph12$i = $7;
$level$07$ph$i = 0;
$p$06$ph$i = $5;
L7 : while (1) {
L9 : do if ($$ph$i) {
$level$07$i$lcssa = $level$07$ph$i;
$p$06$i$lcssa = $p$06$ph$i;
label = 6;
} else {
$15 = $$ph12$i;
$level$07$i9 = $level$07$ph$i;
$p$06$i10 = $p$06$ph$i;
L10 : while (1) {
switch ($15 << 24 >> 24) {
case 0:
{
$$0 = 0;
break L7;
break;
}
case 4:
{
$level$07$i9$lcssa = $level$07$i9;
$p$06$i10$lcssa = $p$06$i10;
break L10;
break;
}
case 3:
{
$level$1$ph$i = $level$07$i9 + 1 | 0;
break;
}
default:
$level$1$ph$i = $level$07$i9;
}
$18 = $p$06$i10 + 1 | 0;
$15 = HEAP8[$18 >> 0] | 0;
if ($15 << 24 >> 24 == 1) {
$level$07$i$lcssa = $level$1$ph$i;
$p$06$i$lcssa = $18;
label = 6;
break L9;
} else {
$level$07$i9 = $level$1$ph$i;
$p$06$i10 = $18;
}
}
$level$1$i = $level$07$i9$lcssa + -1 | 0;
$p$1$i = $p$06$i10$lcssa;
} while (0);
if ((label | 0) == 6) {
label = 0;
$9 = $p$06$i$lcssa + 1 | 0;
$level$1$i = $level$07$i$lcssa;
$p$1$i = $9 + (((HEAPU8[$9 >> 0] | HEAPU8[$9 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i = ((($level$1$i | 0) == 0) << 31 >> 31) + $$015$ph$i | 0;
$23 = $p$1$i + 1 | 0;
$$ph12$i = HEAP8[$23 >> 0] | 0;
$26 = $$ph12$i << 24 >> 24 == 1;
if (($$015$ph$i | 0) <= 0) {
$$lcssa$i = $26;
$p$0$lcssa$i = $23;
break L6;
} else {
$$ph$i = $26;
$level$07$ph$i = $level$1$i;
$p$06$ph$i = $23;
}
}
return $$0 | 0;
} else {
$$lcssa$i = $8;
$p$0$lcssa$i = $5;
} while (0);
if ($$lcssa$i) $p$0$lcssa11$i = $p$0$lcssa$i; else {
$$0 = 0;
return $$0 | 0;
}
} else if (($number | 0) == 0 & $1 << 24 >> 24 == 1) $p$0$lcssa11$i = $list; else {
$$0 = 0;
return $$0 | 0;
}
$27 = $p$0$lcssa11$i + 1 | 0;
$28 = HEAPU8[$27 >> 0] | HEAPU8[$27 + 1 >> 0] << 8;
$29 = $28 & 65535;
if (!($28 << 16 >> 16)) {
$$0 = 0;
return $$0 | 0;
}
$32 = __gcry_malloc($29) | 0;
if (!$32) {
$$0 = 0;
return $$0 | 0;
}
_memcpy($32 | 0, $p$0$lcssa11$i + 3 | 0, $29 | 0) | 0;
HEAP32[$rlength >> 2] = $29;
$$0 = $32;
return $$0 | 0;
}
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 $$1 = 0, $$k$0$us = 0, $1 = 0, $10 = 0, $21 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $32 = 0, $34 = 0, $35 = 0, $46 = 0, $5 = 0, $51 = 0, $j$06 = 0, $j1$0$us = 0, $j1$14$us = 0, $k$0$us = 0, $k$25$us = 0, $k$3$us = 0, $n$1$in = 0, $nframe = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$nframe = sp;
$1 = ($nbits + 7 | 0) >>> 3;
HEAP32[$nframe >> 2] = $1;
if (!(($1 | 0) != 0 & ($valuelen + 7 | 0) >>> 0 <= $1 >>> 0)) {
$$1 = 66;
STACKTOP = sp;
return $$1 | 0;
}
$5 = __gcry_malloc_secure($1) | 0;
if (!$5) {
$$1 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$1 | 0;
}
HEAP8[$5 >> 0] = 0;
HEAP8[$5 + 1 >> 0] = 2;
$10 = -3 - $valuelen + $1 | 0;
if (($10 | 0) <= 0) __gcry_assert_failed(38344, 38350, 95, 38363);
if (!$random_override) {
$21 = __gcry_random_bytes_secure($10, 1) | 0;
$j1$0$us = 0;
$k$0$us = 0;
while (1) {
if (($j1$0$us | 0) < ($10 | 0)) {
$$k$0$us = ((HEAP8[$21 + $j1$0$us >> 0] | 0) == 0 & 1) + $k$0$us | 0;
$j1$0$us = $j1$0$us + 1 | 0;
$k$0$us = $$k$0$us;
continue;
}
if (!$k$0$us) break;
$26 = $k$0$us + 3 + (($k$0$us | 0) / 128 | 0) | 0;
$27 = __gcry_random_bytes_secure($26, 1) | 0;
if ($26) {
$j1$14$us = 0;
$k$25$us = $26;
while (1) {
$29 = $21 + $j1$14$us | 0;
$30 = HEAP8[$29 >> 0] | 0;
if (!($30 << 24 >> 24)) {
$32 = $k$25$us + -1 | 0;
$34 = HEAP8[$27 + $32 >> 0] | 0;
HEAP8[$29 >> 0] = $34;
$35 = $34;
$k$3$us = $32;
} else {
$35 = $30;
$k$3$us = $k$25$us;
}
$j1$14$us = ($35 << 24 >> 24 != 0 & 1) + $j1$14$us | 0;
if (!(($j1$14$us | 0) < ($10 | 0) & ($k$3$us | 0) != 0)) break; else $k$25$us = $k$3$us;
}
}
__gcry_free($27);
$j1$0$us = 0;
$k$0$us = 0;
}
_memcpy($5 + 2 | 0, $21 | 0, $10 | 0) | 0;
__gcry_free($21);
$n$1$in = $10;
} else {
if (($10 | 0) != ($random_override_len | 0)) {
__gcry_free($5);
$$1 = 45;
STACKTOP = sp;
return $$1 | 0;
}
L32 : do if ($random_override_len) {
$j$06 = 0;
while (1) {
if (!(HEAP8[$random_override + $j$06 >> 0] | 0)) break;
$j$06 = $j$06 + 1 | 0;
if ($j$06 >>> 0 >= $random_override_len >>> 0) break L32;
}
__gcry_free($5);
$$1 = 45;
STACKTOP = sp;
return $$1 | 0;
} while (0);
_memcpy($5 + 2 | 0, $random_override | 0, $random_override_len | 0) | 0;
$n$1$in = $random_override_len;
}
$46 = $n$1$in + 3 | 0;
HEAP8[$5 + ($n$1$in + 2) >> 0] = 0;
_memcpy($5 + $46 | 0, $value | 0, $valuelen | 0) | 0;
if (($46 + $valuelen | 0) != ($1 | 0)) __gcry_assert_failed(38394, 38350, 153, 38363);
$51 = __gcry_mpi_scan($r_result, 5, $5, $1, $nframe) | 0;
if (!$51) if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(38406, HEAP32[$r_result >> 2] | 0);
__gcry_free($5);
$$1 = $51;
STACKTOP = sp;
return $$1 | 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, $$lcssa = 0, $$lcssa6 = 0, $10 = 0, $14 = 0, $16 = 0, $18 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $34 = 0, $38 = 0, $39 = 0, $4 = 0, $41 = 0, $57 = 0, $58 = 0, $I = 0, $abits = 0, $hash = 0, $k$0 = 0, $rc$1 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$I = sp + 12 | 0;
$hash = sp + 8 | 0;
$abits = sp + 4 | 0;
if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(52475, $input);
$2 = $skey + 32 | 0;
$4 = __gcry_mpi_get_nbits(HEAP32[$2 >> 2] | 0) | 0;
if (!$input) label = 8; else if (!(HEAP32[$input + 12 >> 2] & 4)) label = 8; else {
$10 = __gcry_mpi_get_opaque($input, $abits) | 0;
$14 = __gcry_mpi_scan($hash, 5, $10, ((HEAP32[$abits >> 2] | 0) + 7 | 0) >>> 3, 0) | 0;
if ($14) {
$$0 = $14;
STACKTOP = sp;
return $$0 | 0;
}
$16 = HEAP32[$abits >> 2] | 0;
if ($16 >>> 0 > $4 >>> 0) {
$18 = HEAP32[$hash >> 2] | 0;
__gcry_mpi_rshift($18, $18, $16 - $4 | 0);
}
}
if ((label | 0) == 8) HEAP32[$hash >> 2] = $input;
$20 = __gcry_mpi_alloc(0) | 0;
$21 = __gcry_mpi_alloc(0) | 0;
$22 = __gcry_mpi_alloc(0) | 0;
$23 = __gcry_mpi_alloc(0) | 0;
$24 = __gcry_mpi_alloc(0) | 0;
__gcry_mpi_point_init($I);
$34 = __gcry_mpi_ec_p_internal_new(HEAP32[$skey >> 2] | 0, HEAP32[$skey + 4 >> 2] | 0, 0, HEAP32[$skey + 8 >> 2] | 0, HEAP32[$skey + 12 >> 2] | 0, HEAP32[$skey + 16 >> 2] | 0) | 0;
__gcry_mpi_mod($23, $input, HEAP32[$2 >> 2] | 0);
if (!(__gcry_mpi_cmp_ui($23, 0) | 0)) __gcry_mpi_set_ui($23, 1) | 0;
$38 = $skey + 20 | 0;
$39 = $skey + 56 | 0;
$k$0 = 0;
while (1) {
__gcry_mpi_free($k$0);
$41 = __gcry_dsa_gen_k(HEAP32[$2 >> 2] | 0, 1) | 0;
__gcry_mpi_ec_mul_point($I, $41, $38, $34);
if (__gcry_mpi_ec_get_affine($24, 0, $I, $34) | 0) {
$$lcssa = $41;
label = 13;
break;
}
__gcry_mpi_mod($r, $24, HEAP32[$2 >> 2] | 0);
if (!(__gcry_mpi_cmp_ui($r, 0) | 0)) {
$k$0 = $41;
continue;
}
__gcry_mpi_mulm($20, HEAP32[$39 >> 2] | 0, $r, HEAP32[$2 >> 2] | 0);
__gcry_mpi_mulm($22, $41, $23, HEAP32[$2 >> 2] | 0);
__gcry_mpi_addm($s, $22, $20, HEAP32[$2 >> 2] | 0);
if (!(__gcry_mpi_cmp_ui($s, 0) | 0)) $k$0 = $41; else {
$$lcssa6 = $41;
label = 17;
break;
}
}
if ((label | 0) == 13) if (!(__gcry_get_debug_flag(1) | 0)) {
$57 = $$lcssa;
$rc$1 = 8;
} else {
__gcry_log_debug(52492, $vararg_buffer);
$57 = $$lcssa;
$rc$1 = 8;
} else if ((label | 0) == 17) if (!(__gcry_get_debug_flag(1) | 0)) {
$57 = $$lcssa6;
$rc$1 = 0;
} else {
__gcry_log_printmpi(52536, $r);
__gcry_log_printmpi(52556, $s);
$57 = $$lcssa6;
$rc$1 = 0;
}
__gcry_mpi_ec_free($34);
__gcry_mpi_point_free_parts($I);
__gcry_mpi_free($24);
__gcry_mpi_free($23);
__gcry_mpi_free($22);
__gcry_mpi_free($21);
__gcry_mpi_free($20);
__gcry_mpi_free($57);
$58 = HEAP32[$hash >> 2] | 0;
if (($58 | 0) == ($input | 0)) {
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_mpi_free($58);
$$0 = $rc$1;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_sexp_nth_string($list, $number) {
$list = $list | 0;
$number = $number | 0;
var $$0 = 0, $$015$ph$i = 0, $$lcssa$i = 0, $$ph$i = 0, $$ph12$i = 0, $1 = 0, $15 = 0, $18 = 0, $23 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $33 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $level$07$i$lcssa = 0, $level$07$i9 = 0, $level$07$i9$lcssa = 0, $level$07$ph$i = 0, $level$1$i = 0, $level$1$ph$i = 0, $p$0$lcssa$i = 0, $p$0$lcssa11$i = 0, $p$06$i$lcssa = 0, $p$06$i10 = 0, $p$06$i10$lcssa = 0, $p$06$ph$i = 0, $p$1$i = 0, label = 0;
if (!$list) {
$$0 = 0;
return $$0 | 0;
}
$1 = HEAP8[$list >> 0] | 0;
if ($1 << 24 >> 24 == 3) {
$5 = $list + 1 | 0;
$7 = HEAP8[$5 >> 0] | 0;
$8 = $7 << 24 >> 24 == 1;
L6 : do if (($number | 0) > 0) {
$$015$ph$i = $number;
$$ph$i = $8;
$$ph12$i = $7;
$level$07$ph$i = 0;
$p$06$ph$i = $5;
L7 : while (1) {
L9 : do if ($$ph$i) {
$level$07$i$lcssa = $level$07$ph$i;
$p$06$i$lcssa = $p$06$ph$i;
label = 6;
} else {
$15 = $$ph12$i;
$level$07$i9 = $level$07$ph$i;
$p$06$i10 = $p$06$ph$i;
L10 : while (1) {
switch ($15 << 24 >> 24) {
case 0:
{
$$0 = 0;
break L7;
break;
}
case 4:
{
$level$07$i9$lcssa = $level$07$i9;
$p$06$i10$lcssa = $p$06$i10;
break L10;
break;
}
case 3:
{
$level$1$ph$i = $level$07$i9 + 1 | 0;
break;
}
default:
$level$1$ph$i = $level$07$i9;
}
$18 = $p$06$i10 + 1 | 0;
$15 = HEAP8[$18 >> 0] | 0;
if ($15 << 24 >> 24 == 1) {
$level$07$i$lcssa = $level$1$ph$i;
$p$06$i$lcssa = $18;
label = 6;
break L9;
} else {
$level$07$i9 = $level$1$ph$i;
$p$06$i10 = $18;
}
}
$level$1$i = $level$07$i9$lcssa + -1 | 0;
$p$1$i = $p$06$i10$lcssa;
} while (0);
if ((label | 0) == 6) {
label = 0;
$9 = $p$06$i$lcssa + 1 | 0;
$level$1$i = $level$07$i$lcssa;
$p$1$i = $9 + (((HEAPU8[$9 >> 0] | HEAPU8[$9 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i = ((($level$1$i | 0) == 0) << 31 >> 31) + $$015$ph$i | 0;
$23 = $p$1$i + 1 | 0;
$$ph12$i = HEAP8[$23 >> 0] | 0;
$26 = $$ph12$i << 24 >> 24 == 1;
if (($$015$ph$i | 0) <= 0) {
$$lcssa$i = $26;
$p$0$lcssa$i = $23;
break L6;
} else {
$$ph$i = $26;
$level$07$ph$i = $level$1$i;
$p$06$ph$i = $23;
}
}
return $$0 | 0;
} else {
$$lcssa$i = $8;
$p$0$lcssa$i = $5;
} while (0);
if ($$lcssa$i) $p$0$lcssa11$i = $p$0$lcssa$i; else {
$$0 = 0;
return $$0 | 0;
}
} else if (($number | 0) == 0 & $1 << 24 >> 24 == 1) $p$0$lcssa11$i = $list; else {
$$0 = 0;
return $$0 | 0;
}
$27 = $p$0$lcssa11$i + 1 | 0;
$28 = HEAPU8[$27 >> 0] | HEAPU8[$27 + 1 >> 0] << 8;
$29 = $28 & 65535;
if (!($28 << 16 >> 16)) {
$$0 = 0;
return $$0 | 0;
}
$33 = __gcry_malloc($29 + 1 | 0) | 0;
if (!$33) {
$$0 = 0;
return $$0 | 0;
}
_memcpy($33 | 0, $p$0$lcssa11$i + 3 | 0, $29 | 0) | 0;
HEAP8[$33 + $29 >> 0] = 0;
$$0 = $33;
return $$0 | 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, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $16 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $31 = 0, $35 = 0, $7 = 0, $8 = 0, $wd$0$lcssa = 0, $wd$018 = 0, $ws$0$lcssa = 0, $ws$019 = 0, label = 0;
$0 = $s;
do if (!(($0 ^ $d) & 3)) {
$7 = ($n | 0) != 0;
L3 : do if ($7 & ($0 & 3 | 0) != 0) {
$$031 = $n;
$$0430 = $s;
$$0629 = $d;
while (1) {
$8 = HEAP8[$$0430 >> 0] | 0;
HEAP8[$$0629 >> 0] = $8;
if (!($8 << 24 >> 24)) {
$$0$lcssa42 = $$031;
$$04$lcssa43 = $$0430;
$$06$lcssa44 = $$0629;
break L3;
}
$10 = $$031 + -1 | 0;
$11 = $$0430 + 1 | 0;
$12 = $$0629 + 1 | 0;
$16 = ($10 | 0) != 0;
if ($16 & ($11 & 3 | 0) != 0) {
$$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;
}
if (!(HEAP8[$$04$lcssa43 >> 0] | 0)) {
$$28 = $$06$lcssa44;
$$3 = $$0$lcssa42;
} else {
L11 : do if ($$0$lcssa42 >>> 0 > 3) {
$$117 = $$0$lcssa42;
$wd$018 = $$06$lcssa44;
$ws$019 = $$04$lcssa43;
while (1) {
$20 = HEAP32[$ws$019 >> 2] | 0;
if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) {
$$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;
if ($26 >>> 0 > 3) {
$$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) if (!$$2$ph) {
$$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;
if (!($31 << 24 >> 24)) {
$$28 = $$1710;
$$3 = $$212;
break L16;
}
$$212 = $$212 + -1 | 0;
$35 = $$1710 + 1 | 0;
if (!$$212) {
$$28 = $35;
$$3 = 0;
break;
} else {
$$1511 = $$1511 + 1 | 0;
$$1710 = $35;
}
}
} while (0);
_memset($$28 | 0, 0, $$3 | 0) | 0;
return $$28 | 0;
}
function _GNUNET_CRYPTO_ecdhe_key_get_public($priv, $pub) {
$priv = $priv | 0;
$pub = $pub | 0;
var $0 = 0, $15 = 0, $32 = 0, $8 = 0, $ctx = 0, $result$i = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer16 = 0, $vararg_buffer2 = 0, $vararg_buffer20 = 0, $vararg_buffer8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer20 = sp + 48 | 0;
$vararg_buffer16 = sp + 40 | 0;
$vararg_buffer12 = sp + 32 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$result$i = sp + 60 | 0;
$ctx = sp + 56 | 0;
HEAP32[$vararg_buffer >> 2] = 32;
HEAP32[$vararg_buffer + 4 >> 2] = $priv;
$0 = _gcry_sexp_build($result$i, 0, 19380, $vararg_buffer) | 0;
if ($0) {
if ((HEAP32[202] | 0) == -1) HEAP32[202] = _GNUNET_get_log_call_status(1, 20654, 19324, 19422, 202) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[202] | 0) {
$8 = _gcry_strerror($0) | 0;
HEAP32[$vararg_buffer2 >> 2] = 19447;
HEAP32[$vararg_buffer2 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer2 + 8 >> 2] = 202;
HEAP32[$vararg_buffer2 + 12 >> 2] = $8;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer2);
}
if ((HEAP32[203] | 0) == -1) HEAP32[203] = _GNUNET_get_log_call_status(1, 0, 19324, 19422, 203) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[203] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer8 >> 2] = 19324;
HEAP32[$vararg_buffer8 + 4 >> 2] = 203;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer8);
_GNUNET_abort_();
}
$15 = HEAP32[$result$i >> 2] | 0;
if (!$15) {
if ((HEAP32[204] | 0) == -1) HEAP32[204] = _GNUNET_get_log_call_status(1, 0, 19324, 19463, 283) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[204] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer12 >> 2] = 19324;
HEAP32[$vararg_buffer12 + 4 >> 2] = 283;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer12);
_GNUNET_abort_();
}
if (_gcry_mpi_ec_new($ctx, $15, 0) | 0) {
if ((HEAP32[205] | 0) == -1) HEAP32[205] = _GNUNET_get_log_call_status(1, 0, 19324, 19463, 284) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[205] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer16 >> 2] = 19324;
HEAP32[$vararg_buffer16 + 4 >> 2] = 284;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer16);
_GNUNET_abort_();
}
_gcry_sexp_release($15);
$32 = _gcry_mpi_ec_get_mpi(19337, HEAP32[$ctx >> 2] | 0, 0) | 0;
if ($32) {
_GNUNET_CRYPTO_mpi_print_unsigned($pub, 32, $32);
_gcry_mpi_release($32);
_gcry_ctx_release(HEAP32[$ctx >> 2] | 0);
STACKTOP = sp;
return;
}
if ((HEAP32[206] | 0) == -1) HEAP32[206] = _GNUNET_get_log_call_status(1, 0, 19324, 19463, 287) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[206] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer20 >> 2] = 19324;
HEAP32[$vararg_buffer20 + 4 >> 2] = 287;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer20);
_GNUNET_abort_();
}
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 = 0, $1 = 0, $14 = 0, $15 = 0, $17 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $28 = 0, $32 = 0, $36 = 0, $4 = 0, $41 = 0, $46 = 0, $5 = 0, $50 = 0, $57 = 0, $59 = 0, $frame = 0, $n$012 = 0, $n$18 = 0, $n$2$lcssa = 0, $n$25 = 0, $or$cond = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$frame = sp;
HEAP32[$frame >> 2] = 0;
$1 = ($nbits + 7 | 0) >>> 3;
HEAP32[$r_result >> 2] = 0;
$or$cond = ($label | 0) != 0 & ($labellen | 0) != 0;
$4 = __gcry_md_get_algo_dlen($algo) | 0;
$5 = __gcry_malloc($4) | 0;
if (!$5) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_md_hash_buffer($algo, $5, $or$cond ? $label : 75759, $or$cond ? $labellen : 0);
if (__gcry_mpi_to_octet_string($frame, 0, $value, $1) | 0) {
__gcry_free($5);
$$0 = 155;
STACKTOP = sp;
return $$0 | 0;
}
if ($1 >>> 0 < (($4 << 1) + 2 | 0) >>> 0) {
__gcry_free(HEAP32[$frame >> 2] | 0);
__gcry_free($5);
$$0 = 155;
STACKTOP = sp;
return $$0 | 0;
}
$14 = $1 + -1 | 0;
$15 = __gcry_malloc_secure($14) | 0;
if (!$15) {
$17 = _gpg_err_code_from_syserror() | 0;
__gcry_free(HEAP32[$frame >> 2] | 0);
__gcry_free($5);
$$0 = $17;
STACKTOP = sp;
return $$0 | 0;
}
$19 = $15 + $4 | 0;
$21 = (HEAP32[$frame >> 2] | 0) + 1 | 0;
$22 = $21 + $4 | 0;
$23 = $14 - $4 | 0;
$$ = (_mgf1($15, $4, $22, $23, $algo) | 0) != 0 & 1;
if ($4) {
$n$012 = 0;
do {
$28 = $15 + $n$012 | 0;
HEAP8[$28 >> 0] = HEAP8[$28 >> 0] ^ HEAP8[$21 + $n$012 >> 0];
$n$012 = $n$012 + 1 | 0;
} while (($n$012 | 0) != ($4 | 0));
}
$32 = _mgf1($19, $23, $15, $4, $algo) | 0;
if (($14 | 0) != ($4 | 0)) {
$n$18 = 0;
do {
$36 = $19 + $n$18 | 0;
HEAP8[$36 >> 0] = HEAP8[$36 >> 0] ^ HEAP8[$22 + $n$18 >> 0];
$n$18 = $n$18 + 1 | 0;
} while ($n$18 >>> 0 < $23 >>> 0);
}
$41 = _memcmp($5, $19, $4) | 0;
L25 : do if ($4 >>> 0 < $23 >>> 0) {
$n$25 = $4;
while (1) {
if ((HEAP8[$19 + $n$25 >> 0] | 0) == 1) {
$n$2$lcssa = $n$25;
break L25;
}
$46 = $n$25 + 1 | 0;
if ($46 >>> 0 < $23 >>> 0) $n$25 = $46; else {
$n$2$lcssa = $46;
break;
}
}
} else $n$2$lcssa = $4; while (0);
$50 = (HEAP8[HEAP32[$frame >> 2] >> 0] | 0) == 0;
__gcry_free($5);
__gcry_free(HEAP32[$frame >> 2] | 0);
if (!(($32 | $$ | $41 | 0) == 0 & ($n$2$lcssa | 0) != ($23 | 0) & $50)) {
__gcry_free($15);
$$0 = 155;
STACKTOP = sp;
return $$0 | 0;
}
$57 = $n$2$lcssa + 1 | 0;
$59 = $23 - $57 | 0;
_memmove($15 | 0, $19 + $57 | 0, $59 | 0) | 0;
HEAP32[$r_result >> 2] = $15;
HEAP32[$r_resultlen >> 2] = $59;
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_log_printhex(38616, HEAP32[$r_result >> 2] | 0, HEAP32[$r_resultlen >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
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 $11 = 0, $16 = 0, $21 = 0, $26 = 0, $31 = 0, $5 = 0, $6 = 0, $8 = 0, $denom_amount = 0, $deposit_fee = 0, $masterkey = 0, $mastersig = 0, $refresh_fee = 0, $withdraw_fee = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$masterkey = sp + 160 | 0;
$mastersig = sp + 96 | 0;
$denom_amount = sp + 72 | 0;
$withdraw_fee = sp + 48 | 0;
$deposit_fee = sp + 24 | 0;
$refresh_fee = sp;
$5 = ~~+Math_floor(+(+(((_strlen($denom_enc) | 0) * 5 | 0) >>> 3 >>> 0))) >>> 0;
$6 = _GNUNET_xmalloc_($5, 18658, 353) | 0;
_GNUNET_STRINGS_string_to_data($denom_enc, _strlen($denom_enc) | 0, $6, $5) | 0;
$8 = _GNUNET_CRYPTO_rsa_public_key_decode($6, $5) | 0;
_GNUNET_xfree_($6, 18658, 217);
_GNUNET_STRINGS_string_to_data($master_enc, _strlen($master_enc) | 0, $masterkey, 32) | 0;
_GNUNET_STRINGS_string_to_data($mastersig_enc, _strlen($mastersig_enc) | 0, $mastersig, 64) | 0;
_TALER_amount_get_zero($denom_currency, $denom_amount) | 0;
$11 = $denom_amount;
HEAP32[$11 >> 2] = $denom_value;
HEAP32[$11 + 4 >> 2] = 0;
HEAP32[$denom_amount + 8 >> 2] = $denom_fraction;
_TALER_amount_get_zero($withdraw_fee_currency, $withdraw_fee) | 0;
$16 = $withdraw_fee;
HEAP32[$16 >> 2] = $withdraw_fee_value;
HEAP32[$16 + 4 >> 2] = 0;
HEAP32[$withdraw_fee + 8 >> 2] = $withdraw_fee_fraction;
_TALER_amount_get_zero($deposit_fee_currency, $deposit_fee) | 0;
$21 = $deposit_fee;
HEAP32[$21 >> 2] = $withdraw_fee_value;
HEAP32[$21 + 4 >> 2] = 0;
HEAP32[$deposit_fee + 8 >> 2] = $withdraw_fee_fraction;
_TALER_amount_get_zero($refresh_fee_currency, $refresh_fee) | 0;
$26 = $refresh_fee;
HEAP32[$26 >> 2] = $refresh_fee_value;
HEAP32[$26 + 4 >> 2] = 0;
HEAP32[$refresh_fee + 8 >> 2] = $refresh_fee_fraction;
$31 = _TALER_WR_verify_denom($8, $masterkey, $mastersig, $start, $exp_w, $exp_s, $exp_l, $denom_amount, $withdraw_fee, $deposit_fee, $refresh_fee) | 0;
_GNUNET_CRYPTO_rsa_public_key_free($8);
STACKTOP = sp;
return $31 | 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 = 0, $12 = 0, $14 = 0, $18 = 0, $2 = 0, $20 = 0, $26 = 0, $29 = 0, $33 = 0, $36 = 0, $40 = 0, $43 = 0, $47 = 0, $50 = 0, $6 = 0, $8 = 0, $dnv = 0, $exp_labs = 0, $exp_labs$byval_copy = 0, $exp_sabs = 0, $exp_wabs = 0, $start_abs = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272 | 0;
$exp_labs$byval_copy = sp + 32 | 0;
$dnv = sp + 40 | 0;
$start_abs = sp + 24 | 0;
$exp_wabs = sp + 16 | 0;
$exp_sabs = sp + 8 | 0;
$exp_labs = sp;
$0 = ___muldi3($start | 0, 0, 1e6, 0) | 0;
$2 = $start_abs;
HEAP32[$2 >> 2] = $0;
HEAP32[$2 + 4 >> 2] = tempRet0;
$6 = ___muldi3($exp_w | 0, 0, 1e6, 0) | 0;
$8 = $exp_wabs;
HEAP32[$8 >> 2] = $6;
HEAP32[$8 + 4 >> 2] = tempRet0;
$12 = ___muldi3($exp_s | 0, 0, 1e6, 0) | 0;
$14 = $exp_sabs;
HEAP32[$14 >> 2] = $12;
HEAP32[$14 + 4 >> 2] = tempRet0;
$18 = ___muldi3($exp_l | 0, 0, 1e6, 0) | 0;
$20 = $exp_labs;
HEAP32[$20 >> 2] = $18;
HEAP32[$20 + 4 >> 2] = tempRet0;
_GNUNET_CRYPTO_rsa_public_key_hash($denom, $dnv + 168 | 0);
dest = $dnv + 8 | 0;
src = $master;
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));
HEAP32[$exp_labs$byval_copy >> 2] = HEAP32[$start_abs >> 2];
HEAP32[$exp_labs$byval_copy + 4 >> 2] = HEAP32[$start_abs + 4 >> 2];
$26 = _GNUNET_TIME_absolute_hton($exp_labs$byval_copy) | 0;
$29 = $dnv + 40 | 0;
HEAP32[$29 >> 2] = $26;
HEAP32[$29 + 4 >> 2] = tempRet0;
HEAP32[$exp_labs$byval_copy >> 2] = HEAP32[$exp_wabs >> 2];
HEAP32[$exp_labs$byval_copy + 4 >> 2] = HEAP32[$exp_wabs + 4 >> 2];
$33 = _GNUNET_TIME_absolute_hton($exp_labs$byval_copy) | 0;
$36 = $dnv + 48 | 0;
HEAP32[$36 >> 2] = $33;
HEAP32[$36 + 4 >> 2] = tempRet0;
HEAP32[$exp_labs$byval_copy >> 2] = HEAP32[$exp_sabs >> 2];
HEAP32[$exp_labs$byval_copy + 4 >> 2] = HEAP32[$exp_sabs + 4 >> 2];
$40 = _GNUNET_TIME_absolute_hton($exp_labs$byval_copy) | 0;
$43 = $dnv + 56 | 0;
HEAP32[$43 >> 2] = $40;
HEAP32[$43 + 4 >> 2] = tempRet0;
HEAP32[$exp_labs$byval_copy >> 2] = HEAP32[$exp_labs >> 2];
HEAP32[$exp_labs$byval_copy + 4 >> 2] = HEAP32[$exp_labs + 4 >> 2];
$47 = _GNUNET_TIME_absolute_hton($exp_labs$byval_copy) | 0;
$50 = $dnv + 64 | 0;
HEAP32[$50 >> 2] = $47;
HEAP32[$50 + 4 >> 2] = tempRet0;
_TALER_amount_hton($dnv + 72 | 0, $value);
_TALER_amount_hton($dnv + 96 | 0, $fee_w);
_TALER_amount_hton($dnv + 120 | 0, $fee_d);
_TALER_amount_hton($dnv + 144 | 0, $fee_r);
HEAP32[$dnv + 4 >> 2] = _htonl(1025) | 0;
HEAP32[$dnv >> 2] = _htonl(232) | 0;
$$ = (_GNUNET_CRYPTO_eddsa_verify(1025, $dnv, $sig, $master) | 0) == 1 & 1;
STACKTOP = sp;
return $$ | 0;
}
function _TALER_WR_verify_confirmation($h_contract, $h_wire, $timestamp, $refund, $0, $1, $amount_minus_fee, $coin_pub, $merchant_pub, $sig, $mint_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;
$mint_pub = $mint_pub | 0;
var $$ = 0, $12 = 0, $14 = 0, $18 = 0, $21 = 0, $25 = 0, $28 = 0, $33 = 0, $36 = 0, $6 = 0, $8 = 0, $coin$sroa$0 = 0, $dc = 0, $refund_abs = 0, $refund_abs$byval_copy = 0, $timestamp_abs = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 304 | 0;
$refund_abs$byval_copy = sp + 16 | 0;
$dc = sp + 24 | 0;
$coin$sroa$0 = sp + 272 | 0;
$timestamp_abs = sp + 8 | 0;
$refund_abs = sp;
dest = $dc + 8 | 0;
src = $h_contract;
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));
dest = $dc + 72 | 0;
src = $h_wire;
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));
dest = $coin$sroa$0;
src = $coin_pub;
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));
dest = $dc + 216 | 0;
src = $merchant_pub;
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));
dest = $dc + 184 | 0;
src = $coin$sroa$0;
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));
$6 = ___muldi3($timestamp | 0, 0, 1e6, 0) | 0;
$8 = $timestamp_abs;
HEAP32[$8 >> 2] = $6;
HEAP32[$8 + 4 >> 2] = tempRet0;
$12 = ___muldi3($refund | 0, 0, 1e6, 0) | 0;
$14 = $refund_abs;
HEAP32[$14 >> 2] = $12;
HEAP32[$14 + 4 >> 2] = tempRet0;
HEAP32[$refund_abs$byval_copy >> 2] = HEAP32[$timestamp_abs >> 2];
HEAP32[$refund_abs$byval_copy + 4 >> 2] = HEAP32[$timestamp_abs + 4 >> 2];
$18 = _GNUNET_TIME_absolute_hton($refund_abs$byval_copy) | 0;
$21 = $dc + 144 | 0;
HEAP32[$21 >> 2] = $18;
HEAP32[$21 + 4 >> 2] = tempRet0;
HEAP32[$refund_abs$byval_copy >> 2] = HEAP32[$refund_abs >> 2];
HEAP32[$refund_abs$byval_copy + 4 >> 2] = HEAP32[$refund_abs + 4 >> 2];
$25 = _GNUNET_TIME_absolute_hton($refund_abs$byval_copy) | 0;
$28 = $dc + 152 | 0;
HEAP32[$28 >> 2] = $25;
HEAP32[$28 + 4 >> 2] = tempRet0;
_TALER_amount_hton($dc + 160 | 0, $amount_minus_fee);
$33 = _GNUNET_htonll($0, $1) | 0;
$36 = $dc + 136 | 0;
HEAP32[$36 >> 2] = $33;
HEAP32[$36 + 4 >> 2] = tempRet0;
HEAP32[$dc + 4 >> 2] = _htonl(1033) | 0;
HEAP32[$dc >> 2] = _htonl(248) | 0;
$$ = (_GNUNET_CRYPTO_eddsa_verify(1033, $dc, $sig, $mint_pub) | 0) != -1 & 1;
STACKTOP = sp;
return $$ | 0;
}
function __gcry_sexp_nth_data($list, $number, $datalen) {
$list = $list | 0;
$number = $number | 0;
$datalen = $datalen | 0;
var $$0$i = 0, $$015$ph$i = 0, $$lcssa$i = 0, $$ph$i = 0, $$ph12$i = 0, $1 = 0, $15 = 0, $18 = 0, $23 = 0, $26 = 0, $27 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $level$07$i$lcssa = 0, $level$07$i6 = 0, $level$07$i6$lcssa = 0, $level$07$ph$i = 0, $level$1$i = 0, $level$1$ph$i = 0, $p$0$lcssa$i = 0, $p$0$lcssa11$i = 0, $p$06$i$lcssa = 0, $p$06$i7 = 0, $p$06$i7$lcssa = 0, $p$06$ph$i = 0, $p$1$i = 0, label = 0;
HEAP32[$datalen >> 2] = 0;
if (!$list) {
$$0$i = 0;
return $$0$i | 0;
}
$1 = HEAP8[$list >> 0] | 0;
if ($1 << 24 >> 24 == 3) {
$5 = $list + 1 | 0;
$7 = HEAP8[$5 >> 0] | 0;
$8 = $7 << 24 >> 24 == 1;
L6 : do if (($number | 0) > 0) {
$$015$ph$i = $number;
$$ph$i = $8;
$$ph12$i = $7;
$level$07$ph$i = 0;
$p$06$ph$i = $5;
L7 : while (1) {
L9 : do if ($$ph$i) {
$level$07$i$lcssa = $level$07$ph$i;
$p$06$i$lcssa = $p$06$ph$i;
label = 6;
} else {
$15 = $$ph12$i;
$level$07$i6 = $level$07$ph$i;
$p$06$i7 = $p$06$ph$i;
L10 : while (1) {
switch ($15 << 24 >> 24) {
case 0:
{
$$0$i = 0;
break L7;
break;
}
case 4:
{
$level$07$i6$lcssa = $level$07$i6;
$p$06$i7$lcssa = $p$06$i7;
break L10;
break;
}
case 3:
{
$level$1$ph$i = $level$07$i6 + 1 | 0;
break;
}
default:
$level$1$ph$i = $level$07$i6;
}
$18 = $p$06$i7 + 1 | 0;
$15 = HEAP8[$18 >> 0] | 0;
if ($15 << 24 >> 24 == 1) {
$level$07$i$lcssa = $level$1$ph$i;
$p$06$i$lcssa = $18;
label = 6;
break L9;
} else {
$level$07$i6 = $level$1$ph$i;
$p$06$i7 = $18;
}
}
$level$1$i = $level$07$i6$lcssa + -1 | 0;
$p$1$i = $p$06$i7$lcssa;
} while (0);
if ((label | 0) == 6) {
label = 0;
$9 = $p$06$i$lcssa + 1 | 0;
$level$1$i = $level$07$i$lcssa;
$p$1$i = $9 + (((HEAPU8[$9 >> 0] | HEAPU8[$9 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
}
$$015$ph$i = ((($level$1$i | 0) == 0) << 31 >> 31) + $$015$ph$i | 0;
$23 = $p$1$i + 1 | 0;
$$ph12$i = HEAP8[$23 >> 0] | 0;
$26 = $$ph12$i << 24 >> 24 == 1;
if (($$015$ph$i | 0) <= 0) {
$$lcssa$i = $26;
$p$0$lcssa$i = $23;
break L6;
} else {
$$ph$i = $26;
$level$07$ph$i = $level$1$i;
$p$06$ph$i = $23;
}
}
return $$0$i | 0;
} else {
$$lcssa$i = $8;
$p$0$lcssa$i = $5;
} while (0);
if ($$lcssa$i) $p$0$lcssa11$i = $p$0$lcssa$i; else {
$$0$i = 0;
return $$0$i | 0;
}
} else if (($number | 0) == 0 & $1 << 24 >> 24 == 1) $p$0$lcssa11$i = $list; else {
$$0$i = 0;
return $$0$i | 0;
}
$27 = $p$0$lcssa11$i + 1 | 0;
HEAP32[$datalen >> 2] = (HEAPU8[$27 >> 0] | HEAPU8[$27 + 1 >> 0] << 8) & 65535;
$$0$i = $p$0$lcssa11$i + 3 | 0;
return $$0$i | 0;
}
function __gcry_mpi_set_opaque($a, $p, $nbits) {
$a = $a | 0;
$p = $p | 0;
$nbits = $nbits | 0;
var $$012 = 0, $$013 = 0, $$014 = 0, $1 = 0, $11 = 0, $12 = 0, $15 = 0, $20 = 0, $21 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $4 = 0, $46 = 0, $7 = 0, $9 = 0, $_vlen$0$lcssa$i = 0, $_vlen$05$i = 0, $_vlen$1$i = 0, $_vlen$3$ph$i = 0, $_vlen$33$i = 0, $_vptr$0$lcssa$i = 0, $_vptr$06$i = 0, $_vptr$1$i = 0, $_vptr$3$ph$i = 0, $_vptr$34$i = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (!$a) {
$1 = __gcry_xmalloc(20) | 0;
HEAP32[$1 >> 2] = 0;
HEAP32[$1 + 4 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
HEAP32[$1 + 12 >> 2] = 0;
HEAP32[$1 + 16 >> 2] = 0;
if (!$1) {
$$013 = 0;
$9 = HEAP32[3] | 0;
} else {
$$012 = $1;
label = 4;
}
} else {
$$012 = $a;
label = 4;
}
if ((label | 0) == 4) {
$4 = HEAP32[$$012 + 12 >> 2] | 0;
if (!($4 & 16)) {
$$013 = $$012;
$9 = $4;
} else {
__gcry_log_info(45711, $vararg_buffer);
$$014 = $$012;
STACKTOP = sp;
return $$014 | 0;
}
}
$7 = $$013 + 12 | 0;
$11 = $$013 + 16 | 0;
$12 = HEAP32[$11 >> 2] | 0;
if (!($9 & 4)) {
if ($12) {
$15 = HEAP32[$$013 >> 2] << 2;
if ($15) {
if (!($12 & 7)) {
$_vlen$0$lcssa$i = $15;
$_vptr$0$lcssa$i = $12;
} else {
$_vlen$05$i = $15;
$_vptr$06$i = $12;
while (1) {
HEAP8[$_vptr$06$i >> 0] = 0;
$20 = $_vptr$06$i + 1 | 0;
$21 = $_vlen$05$i + -1 | 0;
if (($21 | 0) != 0 & ($20 & 7 | 0) != 0) {
$_vlen$05$i = $21;
$_vptr$06$i = $20;
} else {
$_vlen$0$lcssa$i = $21;
$_vptr$0$lcssa$i = $20;
break;
}
}
}
if ($_vlen$0$lcssa$i >>> 0 < 8) {
$_vlen$3$ph$i = $_vlen$0$lcssa$i;
$_vptr$3$ph$i = $_vptr$0$lcssa$i;
} else {
$28 = $_vlen$0$lcssa$i + -8 | 0;
$29 = $28 & -8;
$30 = $29 + 8 | 0;
$_vlen$1$i = $_vlen$0$lcssa$i;
$_vptr$1$i = $_vptr$0$lcssa$i;
while (1) {
$31 = $_vptr$1$i;
HEAP32[$31 >> 2] = 0;
HEAP32[$31 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$ph$i = $28 - $29 | 0;
$_vptr$3$ph$i = $_vptr$0$lcssa$i + $30 | 0;
}
if ($_vlen$3$ph$i) {
$_vlen$33$i = $_vlen$3$ph$i;
$_vptr$34$i = $_vptr$3$ph$i;
while (1) {
HEAP8[$_vptr$34$i >> 0] = 0;
$_vlen$33$i = $_vlen$33$i + -1 | 0;
if (!$_vlen$33$i) break; else $_vptr$34$i = $_vptr$34$i + 1 | 0;
}
}
}
__gcry_free($12);
}
} else __gcry_free($12);
HEAP32[$11 >> 2] = $p;
HEAP32[$$013 >> 2] = 0;
HEAP32[$$013 + 4 >> 2] = 0;
HEAP32[$$013 + 8 >> 2] = $nbits;
$46 = HEAP32[$7 >> 2] & 3840;
HEAP32[$7 >> 2] = $46 | 4;
if (!(__gcry_is_secure($p) | 0)) {
$$014 = $$013;
STACKTOP = sp;
return $$014 | 0;
}
HEAP32[$7 >> 2] = $46 | 5;
$$014 = $$013;
STACKTOP = sp;
return $$014 | 0;
}
function __gcry_dsa_gen_k($q, $security_level) {
$q = $q | 0;
$security_level = $security_level | 0;
var $10 = 0, $12 = 0, $2 = 0, $23 = 0, $24 = 0, $26 = 0, $3 = 0, $5 = 0, $9 = 0, $rndbuf$0 = 0, $rndbuf$0$us = 0, $rndbuf$1 = 0, $rndbuf$1$lcssa = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer6 = 0, $vararg_buffer8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer8 = sp + 32 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$2 = __gcry_mpi_alloc_secure(HEAP32[$q + 4 >> 2] | 0) | 0;
$3 = __gcry_mpi_get_nbits($q) | 0;
$5 = ($3 + 7 | 0) >>> 3;
if (__gcry_get_debug_flag(1) | 0) {
HEAP32[$vararg_buffer >> 2] = $3;
HEAP32[$vararg_buffer + 4 >> 2] = $security_level;
__gcry_log_debug(52324, $vararg_buffer);
}
$9 = $3 + -1 | 0;
if ($3 >>> 0 < 32) {
$rndbuf$0$us = 0;
while (1) {
__gcry_free($rndbuf$0$us);
$10 = __gcry_random_bytes_secure($5, $security_level) | 0;
__gcry_mpi_set_buffer($2, $10, $5, 0);
$12 = (__gcry_mpi_test_bit($2, $9) | 0) == 0;
__gcry_mpi_set_highbit($2, $9);
if ($12) __gcry_mpi_clear_bit($2, $9);
if ((__gcry_mpi_cmp($2, $q) | 0) >= 0) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rndbuf$0$us = $10;
continue;
}
__gcry_log_debug(52371, $vararg_buffer2);
$rndbuf$0$us = $10;
continue;
}
if ((__gcry_mpi_cmp_ui($2, 0) | 0) > 0) {
$rndbuf$1$lcssa = $10;
break;
}
if (!(__gcry_get_debug_flag(1) | 0)) {
$rndbuf$0$us = $10;
continue;
}
__gcry_log_debug(52393, $vararg_buffer4);
$rndbuf$0$us = $10;
}
__gcry_free($rndbuf$1$lcssa);
STACKTOP = sp;
return $2 | 0;
} else $rndbuf$0 = 0;
while (1) {
if (!$rndbuf$0) {
__gcry_free(0);
$rndbuf$1 = __gcry_random_bytes_secure($5, $security_level) | 0;
} else {
$23 = __gcry_random_bytes_secure(4, $security_level) | 0;
$24 = HEAPU8[$23 >> 0] | HEAPU8[$23 + 1 >> 0] << 8 | HEAPU8[$23 + 2 >> 0] << 16 | HEAPU8[$23 + 3 >> 0] << 24;
HEAP8[$rndbuf$0 >> 0] = $24;
HEAP8[$rndbuf$0 + 1 >> 0] = $24 >> 8;
HEAP8[$rndbuf$0 + 2 >> 0] = $24 >> 16;
HEAP8[$rndbuf$0 + 3 >> 0] = $24 >> 24;
__gcry_free($23);
$rndbuf$1 = $rndbuf$0;
}
__gcry_mpi_set_buffer($2, $rndbuf$1, $5, 0);
$26 = (__gcry_mpi_test_bit($2, $9) | 0) == 0;
__gcry_mpi_set_highbit($2, $9);
if ($26) __gcry_mpi_clear_bit($2, $9);
if ((__gcry_mpi_cmp($2, $q) | 0) >= 0) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$rndbuf$0 = $rndbuf$1;
continue;
}
__gcry_log_debug(52371, $vararg_buffer6);
$rndbuf$0 = $rndbuf$1;
continue;
}
if ((__gcry_mpi_cmp_ui($2, 0) | 0) > 0) {
$rndbuf$1$lcssa = $rndbuf$1;
break;
}
if (!(__gcry_get_debug_flag(1) | 0)) {
$rndbuf$0 = $rndbuf$1;
continue;
}
__gcry_log_debug(52393, $vararg_buffer8);
$rndbuf$0 = $rndbuf$1;
}
__gcry_free($rndbuf$1$lcssa);
STACKTOP = sp;
return $2 | 0;
}
function __gcry_mpi_lshift($x, $a, $n) {
$x = $x | 0;
$a = $a | 0;
$n = $n | 0;
var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $15 = 0, $18 = 0, $20 = 0, $33 = 0, $34 = 0, $37 = 0, $40 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $69 = 0, $7 = 0, $72 = 0, $74 = 0, $8 = 0, $_i$09 = 0, $i$04$in$i = 0, $i$04$in$i$4 = 0, label = 0, $i$04$in$i$4$looptemp = 0, $i$04$in$i$looptemp = 0, $74$looptemp = 0;
$0 = $n >>> 5;
$1 = $n & 31;
if ($x) if (HEAP32[$x + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
$7 = ($x | 0) != ($a | 0);
$8 = ($n | 0) != 0;
if (!($7 | $8)) return;
if ($7) {
$10 = HEAP32[$a + 4 >> 2] | 0;
$12 = HEAP32[$a + 8 >> 2] | 0;
$15 = $0 + 1 + $10 | 0;
if ((HEAP32[$x >> 2] | 0) >>> 0 < $15 >>> 0) __gcry_mpi_resize($x, $15);
$18 = HEAP32[$x + 16 >> 2] | 0;
$20 = HEAP32[$a + 16 >> 2] | 0;
if ($10) {
$_i$09 = 0;
do {
HEAP32[$18 + ($_i$09 << 2) >> 2] = HEAP32[$20 + ($_i$09 << 2) >> 2];
$_i$09 = $_i$09 + 1 | 0;
} while (($_i$09 | 0) != ($10 | 0));
}
HEAP32[$x + 4 >> 2] = $10;
HEAP32[$x + 12 >> 2] = HEAP32[$a + 12 >> 2];
HEAP32[$x + 8 >> 2] = $12;
}
do if (($0 | 0) == 0 | ($1 | 0) != 0) {
if (!$8) {
$$pre$phiZ2D = $x + 4 | 0;
break;
}
$50 = $0 + 1 | 0;
$51 = $x + 4 | 0;
$52 = HEAP32[$51 >> 2] | 0;
if ($52) {
$55 = $52 + $50 | 0;
if ((HEAP32[$x >> 2] | 0) >>> 0 < $55 >>> 0) __gcry_mpi_resize($x, $55);
$58 = HEAP32[$x + 16 >> 2] | 0;
if (($52 | 0) > 0) {
$i$04$in$i$4 = $52;
do {
$i$04$in$i$4$looptemp = $i$04$in$i$4;
$i$04$in$i$4 = $i$04$in$i$4 + -1 | 0;
HEAP32[$58 + ($i$04$in$i$4$looptemp + $0 << 2) >> 2] = HEAP32[$58 + ($i$04$in$i$4 << 2) >> 2];
} while (($i$04$in$i$4$looptemp | 0) > 1);
}
_memset($58 | 0, 0, $50 << 2 | 0) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $50;
}
__gcry_mpi_rshift($x, $x, 32 - $1 | 0);
$$pre$phiZ2D = $51;
} else {
$33 = $x + 4 | 0;
$34 = HEAP32[$33 >> 2] | 0;
if (!$34) $$pre$phiZ2D = $33; else {
$37 = $34 + $0 | 0;
if ((HEAP32[$x >> 2] | 0) >>> 0 < $37 >>> 0) __gcry_mpi_resize($x, $37);
$40 = HEAP32[$x + 16 >> 2] | 0;
if (($34 | 0) > 0) {
$i$04$in$i = $34;
do {
$i$04$in$i$looptemp = $i$04$in$i;
$i$04$in$i = $i$04$in$i + -1 | 0;
HEAP32[$40 + ($i$04$in$i + $0 << 2) >> 2] = HEAP32[$40 + ($i$04$in$i << 2) >> 2];
} while (($i$04$in$i$looptemp | 0) > 1);
}
_memset($40 | 0, 0, $0 << 2 | 0) | 0;
HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + $0;
$$pre$phiZ2D = $33;
}
} while (0);
$69 = HEAP32[$$pre$phiZ2D >> 2] | 0;
if (($69 | 0) <= 0) return;
$72 = HEAP32[$x + 16 >> 2] | 0;
$74 = $69;
while (1) {
$74$looptemp = $74;
$74 = $74 + -1 | 0;
if (HEAP32[$72 + ($74 << 2) >> 2] | 0) {
label = 31;
break;
}
HEAP32[$$pre$phiZ2D >> 2] = $74;
if (($74$looptemp | 0) <= 1) {
label = 31;
break;
}
}
if ((label | 0) == 31) return;
}
function __gcry_md_hash_buffer($algo, $digest, $buffer, $length) {
$algo = $algo | 0;
$digest = $digest | 0;
$buffer = $buffer | 0;
$length = $length | 0;
var $$0$i = 0, $$idx$val$idx$val = 0, $$lcssa = 0, $$ph$i = 0, $11 = 0, $12 = 0, $14 = 0, $23 = 0, $47 = 0, $48 = 0, $7 = 0, $h = 0, $r$02$i = 0, $r$02$i$lcssa = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$h = sp + 12 | 0;
L1 : do switch ($algo | 0) {
case 2:
{
__gcry_sha1_hash_buffer($digest, $buffer, $length);
STACKTOP = sp;
return;
}
case 3:
{
if (__gcry_fips_mode() | 0) {
$48 = $h;
break L1;
}
__gcry_rmd160_hash_buffer($digest, $buffer, $length);
STACKTOP = sp;
return;
}
default:
if (($algo | 0) == 1) if (!(__gcry_fips_mode() | 0)) $48 = $h; else {
__gcry_inactivate_fips_mode(36761);
if (!(__gcry_enforced_fips_mode() | 0)) $48 = $h; else __gcry_fips_noreturn();
} else $48 = $h;
} while (0);
$7 = _md_open($h, $algo, 0) | 0;
if ($7) {
$11 = _gpg_strerror($7 & 65535 | 536870912) | 0;
HEAP32[$vararg_buffer >> 2] = $algo;
HEAP32[$vararg_buffer + 4 >> 2] = $11;
__gcry_log_bug(36770, $vararg_buffer);
}
$12 = HEAP32[$h >> 2] | 0;
_md_write($12, $buffer, $length);
_md_final($12);
$$idx$val$idx$val = HEAP32[(HEAP32[$12 >> 2] | 0) + 16 >> 2] | 0;
$14 = ($$idx$val$idx$val | 0) == 0;
do if (!$algo) {
if ($14) __gcry_bug(36567, 816, 36753);
if (HEAP32[$$idx$val$idx$val + 4 >> 2] | 0) __gcry_log_debug(36714, $vararg_buffer2);
$$0$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$idx$val$idx$val >> 2] | 0) + 40 >> 2] & 15]($$idx$val$idx$val + 16 | 0) | 0;
} else {
if ($14) __gcry_bug(36567, 816, 36753); else $r$02$i = $$idx$val$idx$val;
while (1) {
$23 = HEAP32[$r$02$i >> 2] | 0;
if ((HEAP32[$23 >> 2] | 0) == ($algo | 0)) {
$$lcssa = $23;
$r$02$i$lcssa = $r$02$i;
label = 19;
break;
}
$r$02$i = HEAP32[$r$02$i + 4 >> 2] | 0;
if (!$r$02$i) {
label = 21;
break;
}
}
if ((label | 0) == 19) {
$$0$i = FUNCTION_TABLE_ii[HEAP32[$$lcssa + 40 >> 2] & 15]($r$02$i$lcssa + 16 | 0) | 0;
break;
} else if ((label | 0) == 21) __gcry_bug(36567, 816, 36753);
} while (0);
if ((HEAP32[1886] | 0) == ($algo | 0)) {
$$ph$i = 7544;
label = 28;
} else if ((HEAP32[1918] | 0) == ($algo | 0)) {
$$ph$i = 7672;
label = 28;
} else if ((HEAP32[1905] | 0) == ($algo | 0)) {
$$ph$i = 7620;
label = 28;
} else if ((HEAP32[1936] | 0) == ($algo | 0)) {
$$ph$i = 7744;
label = 28;
} else if ((HEAP32[1949] | 0) == ($algo | 0)) {
$$ph$i = 7796;
label = 28;
} else if ((HEAP32[1845] | 0) == ($algo | 0)) {
$$ph$i = 7380;
label = 28;
} else $47 = 0;
if ((label | 0) == 28) $47 = HEAP32[$$ph$i + 24 >> 2] | 0;
_memcpy($digest | 0, $$0$i | 0, $47 | 0) | 0;
_md_close($12);
STACKTOP = sp;
return;
}
function _poly1305_finish_ext_ref32($state, $m, $remaining, $mac) {
$state = $state | 0;
$m = $m | 0;
$remaining = $remaining | 0;
$mac = $mac | 0;
var $15 = 0, $17 = 0, $18 = 0, $20 = 0, $21 = 0, $24 = 0, $26 = 0, $27 = 0, $31 = 0, $32 = 0, $35 = 0, $41 = 0, $43 = 0, $49 = 0, $53 = 0, $55 = 0, $57 = 0, $6 = 0, $73 = 0, $74 = 0, $77 = 0, $79 = 0, $80 = 0, $83 = 0, $85 = 0, $86 = 0, $89 = 0, $91 = 0, $burn$0 = 0, $final = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$final = sp;
if (!$remaining) $burn$0 = 100; else {
dest = $final;
stop = dest + 16 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
_memcpy($final | 0, $m | 0, $remaining | 0) | 0;
HEAP8[$final + $remaining >> 0] = 1;
HEAP8[$state + 56 >> 0] = 1;
_poly1305_blocks_ref32($state, $final, 16) | 0;
$burn$0 = 224;
}
$6 = HEAP32[$state + 24 >> 2] | 0;
$15 = (HEAP32[$state + 28 >> 2] | 0) + ($6 >>> 26) | 0;
$17 = $15 & 67108863;
$18 = ($15 >>> 26) + (HEAP32[$state + 32 >> 2] | 0) | 0;
$20 = $18 & 67108863;
$21 = ($18 >>> 26) + (HEAP32[$state + 36 >> 2] | 0) | 0;
$24 = (($21 >>> 26) * 5 | 0) + (HEAP32[$state + 20 >> 2] | 0) | 0;
$26 = $24 & 67108863;
$27 = ($24 >>> 26) + ($6 & 67108863) | 0;
$31 = (($26 + 5 | 0) >>> 26) + $27 | 0;
$32 = $31 >>> 26;
$35 = ($32 + $17 | 0) >>> 26;
$41 = ($21 | -67108864) + (($35 + $20 | 0) >>> 26) | 0;
$43 = ($41 >>> 31) + -1 | 0;
$49 = $41 >> 31;
$53 = $31 & 67108863 & $43 | $49 & $27;
$55 = $32 + $15 & 67108863 & $43 | $49 & $17;
$57 = $35 + $18 & 67108863 & $43 | $49 & $20;
$73 = _i64Add($24 + 5 & 67108863 & $43 | $49 & $26 | $53 << 26 | 0, 0, HEAP32[$state + 40 >> 2] | 0, 0) | 0;
$74 = tempRet0;
$77 = _i64Add($53 >>> 6 | $55 << 20 | 0, 0, HEAP32[$state + 44 >> 2] | 0, 0) | 0;
$79 = _i64Add($77 | 0, tempRet0 | 0, $74 | 0, 0) | 0;
$80 = tempRet0;
$83 = _i64Add($55 >>> 12 | $57 << 14 | 0, 0, HEAP32[$state + 48 >> 2] | 0, 0) | 0;
$85 = _i64Add($83 | 0, tempRet0 | 0, $80 | 0, 0) | 0;
$86 = tempRet0;
$89 = _i64Add($57 >>> 18 | ($43 & $41 | $49 & $21) << 8 | 0, 0, HEAP32[$state + 52 >> 2] | 0, 0) | 0;
$91 = _i64Add($89 | 0, tempRet0 | 0, $86 | 0, 0) | 0;
HEAP8[$mac + 3 >> 0] = $73 >>> 24;
HEAP8[$mac + 2 >> 0] = $73 >>> 16;
HEAP8[$mac + 1 >> 0] = $73 >>> 8;
HEAP8[$mac >> 0] = $73;
HEAP8[$mac + 7 >> 0] = $79 >>> 24;
HEAP8[$mac + 6 >> 0] = $79 >>> 16;
HEAP8[$mac + 5 >> 0] = $79 >>> 8;
HEAP8[$mac + 4 >> 0] = $79;
HEAP8[$mac + 11 >> 0] = $85 >>> 24;
HEAP8[$mac + 10 >> 0] = $85 >>> 16;
HEAP8[$mac + 9 >> 0] = $85 >>> 8;
HEAP8[$mac + 8 >> 0] = $85;
HEAP8[$mac + 15 >> 0] = $91 >>> 24;
HEAP8[$mac + 14 >> 0] = $91 >>> 16;
HEAP8[$mac + 13 >> 0] = $91 >>> 8;
HEAP8[$mac + 12 >> 0] = $91;
dest = $state;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
STACKTOP = sp;
return $burn$0 | 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, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $28 = 0, $50 = 0, $Q = 0, $Q1 = 0, $Q2 = 0, $err$0 = 0, $hash = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$hash = sp + 48 | 0;
$Q = sp + 36 | 0;
$Q1 = sp + 24 | 0;
$Q2 = sp + 12 | 0;
if ((__gcry_mpi_cmp_ui($r, 0) | 0) <= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
$2 = $pkey + 32 | 0;
if ((__gcry_mpi_cmp($r, HEAP32[$2 >> 2] | 0) | 0) >= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
if ((__gcry_mpi_cmp_ui($s, 0) | 0) <= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
if ((__gcry_mpi_cmp($s, HEAP32[$2 >> 2] | 0) | 0) >= 0) {
$$0 = 8;
STACKTOP = sp;
return $$0 | 0;
}
$13 = __gcry_dsa_normalize_hash($input, $hash, __gcry_mpi_get_nbits(HEAP32[$2 >> 2] | 0) | 0) | 0;
if ($13) {
$$0 = $13;
STACKTOP = sp;
return $$0 | 0;
}
$15 = __gcry_mpi_alloc(0) | 0;
$16 = __gcry_mpi_alloc(0) | 0;
$17 = __gcry_mpi_alloc(0) | 0;
$18 = __gcry_mpi_alloc(0) | 0;
__gcry_mpi_point_init($Q);
__gcry_mpi_point_init($Q1);
__gcry_mpi_point_init($Q2);
$28 = __gcry_mpi_ec_p_internal_new(HEAP32[$pkey >> 2] | 0, HEAP32[$pkey + 4 >> 2] | 0, 0, HEAP32[$pkey + 8 >> 2] | 0, HEAP32[$pkey + 12 >> 2] | 0, HEAP32[$pkey + 16 >> 2] | 0) | 0;
__gcry_mpi_invm($15, $s, HEAP32[$2 >> 2] | 0) | 0;
__gcry_mpi_mulm($16, HEAP32[$hash >> 2] | 0, $15, HEAP32[$2 >> 2] | 0);
__gcry_mpi_ec_mul_point($Q1, $16, $pkey + 20 | 0, $28);
__gcry_mpi_mulm($17, $r, $15, HEAP32[$2 >> 2] | 0);
__gcry_mpi_ec_mul_point($Q2, $17, $pkey + 44 | 0, $28);
__gcry_mpi_ec_add_points($Q, $Q1, $Q2, $28);
do if (!(__gcry_mpi_cmp_ui(HEAP32[$Q + 8 >> 2] | 0, 0) | 0)) if (!(__gcry_get_debug_flag(1) | 0)) $err$0 = 8; else {
__gcry_log_debug(52576, $vararg_buffer);
$err$0 = 8;
} else {
if (__gcry_mpi_ec_get_affine($18, 0, $Q, $28) | 0) {
if (!(__gcry_get_debug_flag(1) | 0)) {
$err$0 = 8;
break;
}
__gcry_log_debug(52598, $vararg_buffer1);
$err$0 = 8;
break;
}
__gcry_mpi_mod($18, $18, HEAP32[$2 >> 2] | 0);
if (!(__gcry_mpi_cmp($18, $r) | 0)) $err$0 = 0; else if (!(__gcry_get_debug_flag(1) | 0)) $err$0 = 8; else {
__gcry_log_printmpi(52644, $18);
__gcry_log_printmpi(52651, $r);
__gcry_log_printmpi(52658, $s);
$err$0 = 8;
}
} while (0);
__gcry_mpi_ec_free($28);
__gcry_mpi_point_free_parts($Q2);
__gcry_mpi_point_free_parts($Q1);
__gcry_mpi_point_free_parts($Q);
__gcry_mpi_free($18);
__gcry_mpi_free($17);
__gcry_mpi_free($16);
__gcry_mpi_free($15);
$50 = HEAP32[$hash >> 2] | 0;
if (($50 | 0) == ($input | 0)) {
$$0 = $err$0;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_mpi_free($50);
$$0 = $err$0;
STACKTOP = sp;
return $$0 | 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 $$2 = 0, $1 = 0, $10 = 0, $13 = 0, $14 = 0, $17 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $31 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $42 = 0, $46 = 0, $n$0$14 = 0, $n$016 = 0, $n$113 = 0, $or$cond = 0, $p$015 = 0, $p$112 = 0;
$1 = ($nbits + 7 | 0) >>> 3;
HEAP32[$r_result >> 2] = 0;
$or$cond = ($label | 0) != 0 & ($labellen | 0) != 0;
$4 = __gcry_md_get_algo_dlen($algo) | 0;
if (!(($1 | 0) != 0 ? ($1 + -2 - ($4 << 1) | 0) >>> 0 >= $valuelen >>> 0 : 0)) {
$$2 = 66;
return $$2 | 0;
}
$10 = __gcry_calloc_secure(1, $1) | 0;
if (!$10) {
$$2 = _gpg_err_code_from_syserror() | 0;
return $$2 | 0;
}
$13 = $10 + 1 | 0;
$14 = $13 + $4 | 0;
__gcry_md_hash_buffer($algo, $14, $or$cond ? $label : 75759, $or$cond ? $labellen : 0);
$17 = $10 + ($1 + -1 - $valuelen) | 0;
HEAP8[$17 >> 0] = 1;
_memcpy($17 + 1 | 0, $value | 0, $valuelen | 0) | 0;
do if (!$random_override) __gcry_randomize($13, $4, 1); else {
if (($4 | 0) == ($random_override_len | 0)) {
_memcpy($13 | 0, $random_override | 0, $random_override_len | 0) | 0;
break;
}
__gcry_free($10);
$$2 = 45;
return $$2 | 0;
} while (0);
$22 = $1 - $4 + -1 | 0;
$23 = __gcry_malloc_secure($22) | 0;
if (!$23) {
$25 = _gpg_err_code_from_syserror() | 0;
__gcry_free($10);
$$2 = $25;
return $$2 | 0;
}
$26 = _mgf1($23, $22, $13, $4, $algo) | 0;
if ($26) {
__gcry_free($23);
__gcry_free($10);
$$2 = $26;
return $$2 | 0;
}
$n$0$14 = $4 + 1 | 0;
if ($n$0$14 >>> 0 < $1 >>> 0) {
$n$016 = $n$0$14;
$p$015 = $23;
while (1) {
$31 = $10 + $n$016 | 0;
HEAP8[$31 >> 0] = HEAP8[$31 >> 0] ^ HEAP8[$p$015 >> 0];
$n$016 = $n$016 + 1 | 0;
if (($n$016 | 0) == ($1 | 0)) break; else $p$015 = $p$015 + 1 | 0;
}
}
__gcry_free($23);
$34 = __gcry_malloc_secure($4) | 0;
if (!$34) {
$36 = _gpg_err_code_from_syserror() | 0;
__gcry_free($10);
$$2 = $36;
return $$2 | 0;
}
$37 = _mgf1($34, $4, $14, $22, $algo) | 0;
if ($37) {
__gcry_free($34);
__gcry_free($10);
$$2 = $37;
return $$2 | 0;
}
if ($n$0$14 >>> 0 > 1) {
$n$113 = 1;
$p$112 = $34;
while (1) {
$42 = $10 + $n$113 | 0;
HEAP8[$42 >> 0] = HEAP8[$42 >> 0] ^ HEAP8[$p$112 >> 0];
$n$113 = $n$113 + 1 | 0;
if (($n$113 | 0) == ($n$0$14 | 0)) break; else $p$112 = $p$112 + 1 | 0;
}
}
__gcry_free($34);
$46 = __gcry_mpi_scan($r_result, 5, $10, $1, 0) | 0;
if (!$46) if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(38598, HEAP32[$r_result >> 2] | 0);
__gcry_free($10);
$$2 = $46;
return $$2 | 0;
}
function __gcry_sexp_find_token($list, $tok, $toklen) {
$list = $list | 0;
$tok = $tok | 0;
$toklen = $toklen | 0;
var $$01 = 0, $$3 = 0, $$lcssa = 0, $$lcssa31 = 0, $$pre = 0, $10 = 0, $16 = 0, $25 = 0, $3 = 0, $30 = 0, $32 = 0, $4 = 0, $7 = 0, $9 = 0, $level$08$ph = 0, $level$1 = 0, $p$0 = 0, $p$0$lcssa30 = 0, $p$17 = 0, $p$17$lcssa = 0, $p$17$lcssa27 = 0, $p$17$ph = 0, $p$1729 = 0, $p$2$ph = 0, label = 0;
if (!$list) {
$$3 = 0;
return $$3 | 0;
}
if (!$toklen) $$01 = _strlen($tok) | 0; else $$01 = $toklen;
$p$0 = $list;
L7 : while (1) {
$3 = HEAP8[$p$0 >> 0] | 0;
switch ($3 << 24 >> 24) {
case 0:
{
$$3 = 0;
label = 26;
break L7;
break;
}
case 3:
break;
default:
{
$$pre = $p$0 + 1 | 0;
if ($3 << 24 >> 24 != 1) {
$p$0 = $$pre;
continue L7;
}
$p$0 = $p$0 + 3 + ((HEAPU8[$$pre >> 0] | HEAPU8[$$pre + 1 >> 0] << 8) & 65535) | 0;
continue L7;
}
}
$4 = $p$0 + 1 | 0;
if ((HEAP8[$4 >> 0] | 0) != 1) {
$p$0 = $4;
continue;
}
$7 = $p$0 + 2 | 0;
$9 = $p$0 + 4 | 0;
$10 = (HEAPU8[$7 >> 0] | HEAPU8[$7 + 1 >> 0] << 8) & 65535;
if (($10 | 0) == ($$01 | 0)) if (!(_memcmp($9, $tok, $$01) | 0)) {
$$lcssa31 = $9;
$p$0$lcssa30 = $p$0;
break;
}
$p$0 = $9 + $10 | 0;
}
if ((label | 0) == 26) return $$3 | 0;
$level$08$ph = 1;
$p$17$ph = $$lcssa31 + $$01 | 0;
L20 : while (1) {
$p$17 = $p$17$ph;
L22 : while (1) {
switch (HEAP8[$p$17 >> 0] | 0) {
case 0:
{
label = 15;
break L20;
break;
}
case 3:
{
$p$17$lcssa = $p$17;
label = 13;
break L22;
break;
}
case 4:
{
$p$17$lcssa27 = $p$17;
label = 14;
break L22;
break;
}
case 1:
{
$16 = $p$17 + 1 | 0;
$p$2$ph = $16 + (((HEAPU8[$16 >> 0] | HEAPU8[$16 + 1 >> 0] << 8) & 65535) + 2) + -1 | 0;
break;
}
default:
$p$2$ph = $p$17;
}
$p$17 = $p$2$ph + 1 | 0;
}
if ((label | 0) == 13) {
label = 0;
$level$1 = $level$08$ph + 1 | 0;
$p$1729 = $p$17$lcssa;
} else if ((label | 0) == 14) {
label = 0;
$level$1 = $level$08$ph + -1 | 0;
$p$1729 = $p$17$lcssa27;
}
$25 = $p$1729 + 1 | 0;
if (!$level$1) {
$$lcssa = $25;
break;
} else {
$level$08$ph = $level$1;
$p$17$ph = $25;
}
}
if ((label | 0) == 15) __gcry_bug(22147, 481, 22154);
$30 = $$lcssa - $p$0$lcssa30 & 65535;
$32 = __gcry_malloc($30 + 1 | 0) | 0;
if (!$32) {
$$3 = 0;
return $$3 | 0;
}
_memcpy($32 | 0, $p$0$lcssa30 | 0, $30 | 0) | 0;
HEAP8[$32 + $30 >> 0] = 0;
switch (HEAP8[$32 >> 0] | 0) {
case 0:
{
__gcry_sexp_release($32);
$$3 = 0;
return $$3 | 0;
}
case 3:
{
if ((HEAP8[$32 + 1 >> 0] | 0) != 4) {
$$3 = $32;
return $$3 | 0;
}
__gcry_sexp_release($32);
$$3 = 0;
return $$3 | 0;
}
default:
{
$$3 = $32;
return $$3 | 0;
}
}
return 0;
}
function _pop_arg_180($arg, $type, $ap) {
$arg = $arg | 0;
$type = $type | 0;
$ap = $ap | 0;
var $105 = 0, $106 = 0.0, $112 = 0, $113 = 0.0, $13 = 0, $14 = 0, $17 = 0, $26 = 0, $27 = 0, $28 = 0, $37 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $53 = 0, $54 = 0, $56 = 0, $59 = 0, $6 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $79 = 0, $80 = 0, $82 = 0, $85 = 0, $94 = 0, $95 = 0, $96 = 0;
L1 : do if ($type >>> 0 <= 20) do switch ($type | 0) {
case 9:
{
$6 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$7 = HEAP32[$6 >> 2] | 0;
HEAP32[$ap >> 2] = $6 + 4;
HEAP32[$arg >> 2] = $7;
break L1;
break;
}
case 10:
{
$13 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$14 = HEAP32[$13 >> 2] | 0;
HEAP32[$ap >> 2] = $13 + 4;
$17 = $arg;
HEAP32[$17 >> 2] = $14;
HEAP32[$17 + 4 >> 2] = (($14 | 0) < 0) << 31 >> 31;
break L1;
break;
}
case 11:
{
$26 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$27 = HEAP32[$26 >> 2] | 0;
HEAP32[$ap >> 2] = $26 + 4;
$28 = $arg;
HEAP32[$28 >> 2] = $27;
HEAP32[$28 + 4 >> 2] = 0;
break L1;
break;
}
case 12:
{
$37 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1);
$38 = $37;
$40 = HEAP32[$38 >> 2] | 0;
$43 = HEAP32[$38 + 4 >> 2] | 0;
HEAP32[$ap >> 2] = $37 + 8;
$44 = $arg;
HEAP32[$44 >> 2] = $40;
HEAP32[$44 + 4 >> 2] = $43;
break L1;
break;
}
case 13:
{
$53 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$54 = HEAP32[$53 >> 2] | 0;
HEAP32[$ap >> 2] = $53 + 4;
$56 = ($54 & 65535) << 16 >> 16;
$59 = $arg;
HEAP32[$59 >> 2] = $56;
HEAP32[$59 + 4 >> 2] = (($56 | 0) < 0) << 31 >> 31;
break L1;
break;
}
case 14:
{
$68 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$69 = HEAP32[$68 >> 2] | 0;
HEAP32[$ap >> 2] = $68 + 4;
$70 = $arg;
HEAP32[$70 >> 2] = $69 & 65535;
HEAP32[$70 + 4 >> 2] = 0;
break L1;
break;
}
case 15:
{
$79 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$80 = HEAP32[$79 >> 2] | 0;
HEAP32[$ap >> 2] = $79 + 4;
$82 = ($80 & 255) << 24 >> 24;
$85 = $arg;
HEAP32[$85 >> 2] = $82;
HEAP32[$85 + 4 >> 2] = (($82 | 0) < 0) << 31 >> 31;
break L1;
break;
}
case 16:
{
$94 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$95 = HEAP32[$94 >> 2] | 0;
HEAP32[$ap >> 2] = $94 + 4;
$96 = $arg;
HEAP32[$96 >> 2] = $95 & 255;
HEAP32[$96 + 4 >> 2] = 0;
break L1;
break;
}
case 17:
{
$105 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1);
$106 = +HEAPF64[$105 >> 3];
HEAP32[$ap >> 2] = $105 + 8;
HEAPF64[$arg >> 3] = $106;
break L1;
break;
}
case 18:
{
$112 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1);
$113 = +HEAPF64[$112 >> 3];
HEAP32[$ap >> 2] = $112 + 8;
HEAPF64[$arg >> 3] = $113;
break L1;
break;
}
default:
break L1;
} while (0); while (0);
return;
}
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, $10 = 0, $13 = 0, $18 = 0, $23 = 0, $3 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc$0$ph = 0, $rc$014 = 0, $storemerge = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
__gcry_rngfips_initialize(1);
if (($r_context | 0) == 0 | ($key | 0) == 0 | ($keylen | 0) != 16 | ($seed | 0) == 0 | ($seedlen | 0) != 16 | ($dt | 0) == 0 | ($dtlen | 0) != 16) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$3 = __gcry_calloc(1, 84) | 0;
if (!$3) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP8[$3 >> 0] = 17;
$6 = $3 + 16 | 0;
HEAP8[$6 >> 0] = 42;
$7 = $3 + 33 | 0;
HEAP8[$7 >> 0] = -119;
$8 = $3 + 50 | 0;
HEAP8[$8 >> 0] = -4;
$9 = $3 + 4 | 0;
$10 = __gcry_cipher_open($9, 7, 1, 1) | 0;
if (!$10) {
$13 = __gcry_cipher_setkey(HEAP32[$9 >> 2] | 0, $key, 16) | 0;
if (!$13) {
HEAP32[$3 + 60 >> 2] = _getpid() | 0;
dest = $3 + 17 | 0;
src = $seed;
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));
$18 = $3 + 8 | 0;
HEAP8[$18 >> 0] = HEAP8[$18 >> 0] | 1;
HEAP32[$3 + 64 >> 2] = _getpid() | 0;
$23 = $3 + 68 | 0;
dest = $23;
src = $dt;
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));
HEAP32[$3 + 52 >> 2] = $23;
HEAP32[$3 + 56 >> 2] = HEAPU8[$3 + 81 >> 0] << 16 | HEAPU8[$3 + 80 >> 0] << 24 | HEAPU8[$3 + 82 >> 0] << 8 | HEAPU8[$3 + 83 >> 0];
if ($flags & 1) HEAP8[$3 + 51 >> 0] = 1;
if ((HEAP8[$3 >> 0] | 0) != 17) {
HEAP32[$vararg_buffer >> 2] = $3;
__gcry_log_fatal(50828, $vararg_buffer);
}
if ((HEAP8[$6 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer >> 2] = $3;
__gcry_log_fatal(50828, $vararg_buffer);
}
if ((HEAP8[$7 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer >> 2] = $3;
__gcry_log_fatal(50828, $vararg_buffer);
}
if ((HEAP8[$8 >> 0] | 0) == -4) {
$rc$014 = 0;
$storemerge = $3;
} else {
HEAP32[$vararg_buffer >> 2] = $3;
__gcry_log_fatal(50828, $vararg_buffer);
}
} else {
$rc$0$ph = $13;
label = 13;
}
} else {
$rc$0$ph = $10;
label = 13;
}
if ((label | 0) == 13) {
__gcry_cipher_close(HEAP32[$9 >> 2] | 0);
__gcry_free($3);
$rc$014 = $rc$0$ph;
$storemerge = 0;
}
HEAP32[$r_context >> 2] = $storemerge;
$$0 = $rc$014;
STACKTOP = sp;
return $$0 | 0;
}
function ___stdio_write($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $15 = 0, $20 = 0, $25 = 0, $3 = 0, $34 = 0, $36 = 0, $38 = 0, $49 = 0, $5 = 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, $iovcnt$1 = 0, $iovs = 0, $rem$0 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$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;
$3 = $f + 20 | 0;
$5 = (HEAP32[$3 >> 2] | 0) - $1 | 0;
HEAP32[$iovs + 4 >> 2] = $5;
HEAP32[$iovs + 8 >> 2] = $buf;
HEAP32[$iovs + 12 >> 2] = $len;
$9 = $f + 60 | 0;
$10 = $f + 44 | 0;
$iov$0 = $iovs;
$iovcnt$0 = 2;
$rem$0 = $5 + $len | 0;
while (1) {
if (!(HEAP32[17591] | 0)) {
HEAP32[$vararg_buffer3 >> 2] = HEAP32[$9 >> 2];
HEAP32[$vararg_buffer3 + 4 >> 2] = $iov$0;
HEAP32[$vararg_buffer3 + 8 >> 2] = $iovcnt$0;
$cnt$0 = ___syscall_ret(___syscall146(146, $vararg_buffer3 | 0) | 0) | 0;
} else {
_pthread_cleanup_push(6, $f | 0);
HEAP32[$vararg_buffer >> 2] = HEAP32[$9 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = $iov$0;
HEAP32[$vararg_buffer + 8 >> 2] = $iovcnt$0;
$15 = ___syscall_ret(___syscall146(146, $vararg_buffer | 0) | 0) | 0;
_pthread_cleanup_pop(0);
$cnt$0 = $15;
}
if (($rem$0 | 0) == ($cnt$0 | 0)) {
label = 6;
break;
}
if (($cnt$0 | 0) < 0) {
$iov$0$lcssa11 = $iov$0;
$iovcnt$0$lcssa12 = $iovcnt$0;
label = 8;
break;
}
$34 = $rem$0 - $cnt$0 | 0;
$36 = HEAP32[$iov$0 + 4 >> 2] | 0;
if ($cnt$0 >>> 0 > $36 >>> 0) {
$38 = HEAP32[$10 >> 2] | 0;
HEAP32[$0 >> 2] = $38;
HEAP32[$3 >> 2] = $38;
$49 = HEAP32[$iov$0 + 12 >> 2] | 0;
$cnt$1 = $cnt$0 - $36 | 0;
$iov$1 = $iov$0 + 8 | 0;
$iovcnt$1 = $iovcnt$0 + -1 | 0;
} else if (($iovcnt$0 | 0) == 2) {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + $cnt$0;
$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;
}
HEAP32[$iov$1 >> 2] = (HEAP32[$iov$1 >> 2] | 0) + $cnt$1;
HEAP32[$iov$1 + 4 >> 2] = $49 - $cnt$1;
$iov$0 = $iov$1;
$iovcnt$0 = $iovcnt$1;
$rem$0 = $34;
}
if ((label | 0) == 6) {
$20 = HEAP32[$10 >> 2] | 0;
HEAP32[$f + 16 >> 2] = $20 + (HEAP32[$f + 48 >> 2] | 0);
$25 = $20;
HEAP32[$0 >> 2] = $25;
HEAP32[$3 >> 2] = $25;
$$0 = $len;
} else if ((label | 0) == 8) {
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$3 >> 2] = 0;
HEAP32[$f >> 2] = HEAP32[$f >> 2] | 32;
if (($iovcnt$0$lcssa12 | 0) == 2) $$0 = 0; else $$0 = $len - (HEAP32[$iov$0$lcssa11 + 4 >> 2] | 0) | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_cipher_poly1305_setiv($c, $iv, $ivlen) {
$c = $c | 0;
$iv = $iv | 0;
$ivlen = $ivlen | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa21 = 0, $10 = 0, $13 = 0, $17 = 0, $2 = 0, $21 = 0, $25 = 0, $26 = 0, $3 = 0, $33 = 0, $34 = 0, $36 = 0, $7 = 0, $_vlen$0$lcssa16 = 0, $_vlen$08 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$36 = 0, $_vptr$0$lcssa17 = 0, $_vptr$07 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$35 = 0, $scevgep = 0, $tmpbuf = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$tmpbuf = sp;
if (($iv | 0) == 0 & ($ivlen | 0) != 12) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$2 = $c + 128 | 0;
$3 = $c + 148 | 0;
dest = $3;
stop = dest + 92 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$c + 136 >> 2] = 0;
HEAP32[$c + 140 >> 2] = 0;
$7 = $c + 144 | 0;
HEAP8[$7 >> 0] = HEAP8[$7 >> 0] & -4;
$10 = $c + 56 | 0;
HEAP8[$10 >> 0] = HEAP8[$10 >> 0] & -7;
$13 = $c + 12 | 0;
$17 = $c + 496 | 0;
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$13 >> 2] | 0) + 60 >> 2] & 7]($17, $iv, $ivlen);
dest = $tmpbuf;
stop = dest + 64 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$13 >> 2] | 0) + 44 >> 2] & 1]($17, $tmpbuf, $tmpbuf, 64);
$21 = __gcry_poly1305_init($3, $tmpbuf, 32) | 0;
if (!($tmpbuf & 7)) {
$_vlen$0$lcssa16 = 64;
$_vptr$0$lcssa17 = $tmpbuf;
label = 5;
} else {
$_vlen$08 = 64;
$_vptr$07 = $tmpbuf;
while (1) {
HEAP8[$_vptr$07 >> 0] = 0;
$25 = $_vptr$07 + 1 | 0;
$26 = $_vlen$08 + -1 | 0;
if (($26 | 0) != 0 & ($25 & 7 | 0) != 0) {
$_vlen$08 = $26;
$_vptr$07 = $25;
} else {
$$lcssa = $25;
$$lcssa21 = $26;
break;
}
}
if ($$lcssa21 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa21;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa16 = $$lcssa21;
$_vptr$0$lcssa17 = $$lcssa;
label = 5;
}
}
if ((label | 0) == 5) {
$33 = $_vlen$0$lcssa16 + -8 | 0;
$34 = $33 & -8;
$scevgep = $_vptr$0$lcssa17 + ($34 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa16;
$_vptr$1 = $_vptr$0$lcssa17;
while (1) {
$36 = $_vptr$1;
HEAP32[$36 >> 2] = 0;
HEAP32[$36 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $33 - $34 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$36 = $_vlen$3$ph;
$_vptr$35 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$35 >> 0] = 0;
$_vlen$36 = $_vlen$36 + -1 | 0;
if (!$_vlen$36) break; else $_vptr$35 = $_vptr$35 + 1 | 0;
}
}
if ($21) {
$$0 = $21;
STACKTOP = sp;
return $$0 | 0;
}
HEAP8[$10 >> 0] = HEAP8[$10 >> 0] | 2;
$$0 = 0;
STACKTOP = sp;
return $$0 | 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, $0 = 0, $13 = 0, $14 = 0, $20 = 0, $30 = 0, $5 = 0, $pub_sexpr = 0, $sig_sexpr = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer14 = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer14 = sp + 40 | 0;
$vararg_buffer10 = sp + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer = sp;
$sig_sexpr = sp + 56 | 0;
$pub_sexpr = sp + 52 | 0;
$0 = $validate + 4 | 0;
if ((_ntohl(HEAPU8[$0 >> 0] | HEAPU8[$0 + 1 >> 0] << 8 | HEAPU8[$0 + 2 >> 0] << 16 | HEAPU8[$0 + 3 >> 0] << 24) | 0) != ($purpose | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer >> 2] = 32;
HEAP32[$vararg_buffer + 4 >> 2] = $sig;
HEAP32[$vararg_buffer + 8 >> 2] = 32;
HEAP32[$vararg_buffer + 12 >> 2] = $sig + 32;
$5 = _gcry_sexp_build($sig_sexpr, 0, 19787, $vararg_buffer) | 0;
if ($5) {
if ((HEAP32[215] | 0) == -1) HEAP32[215] = _GNUNET_get_log_call_status(1, 20654, 19324, 19816, 918) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[215] | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$13 = _gcry_strerror($5) | 0;
HEAP32[$vararg_buffer4 >> 2] = 19447;
HEAP32[$vararg_buffer4 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer4 + 8 >> 2] = 918;
HEAP32[$vararg_buffer4 + 12 >> 2] = $13;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer4);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$14 = _data_to_eddsa_value($validate) | 0;
HEAP32[$vararg_buffer10 >> 2] = 32;
HEAP32[$vararg_buffer10 + 4 >> 2] = $pub;
if (_gcry_sexp_build($pub_sexpr, 0, 19843, $vararg_buffer10) | 0) {
_gcry_sexp_release($14);
_gcry_sexp_release(HEAP32[$sig_sexpr >> 2] | 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$20 = _gcry_pk_verify(HEAP32[$sig_sexpr >> 2] | 0, $14, HEAP32[$pub_sexpr >> 2] | 0) | 0;
_gcry_sexp_release(HEAP32[$pub_sexpr >> 2] | 0);
_gcry_sexp_release($14);
_gcry_sexp_release(HEAP32[$sig_sexpr >> 2] | 0);
if (!$20) {
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[216] | 0) == -1) HEAP32[216] = _GNUNET_get_log_call_status(4, 20654, 19324, 19816, 938) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[216] | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$30 = _gcry_strerror($20) | 0;
HEAP32[$vararg_buffer14 >> 2] = 19324;
HEAP32[$vararg_buffer14 + 4 >> 2] = 938;
HEAP32[$vararg_buffer14 + 8 >> 2] = $30;
_GNUNET_log_from_nocheck(4, 20654, 19895, $vararg_buffer14);
$$0 = -1;
STACKTOP = sp;
return $$0 | 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 $$2 = 0, $0 = 0, $14 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $22 = 0, $23 = 0, $25 = 0, $27 = 0, $28 = 0, $30 = 0, $4 = 0, $point$1 = 0, $point$3 = 0, $rc$0 = 0, $x$0$ph = 0, $y$0$ph = 0, $z$1 = 0, label = 0;
$0 = __gcry_sexp_find_token($keyparam, $name, 0) | 0;
if (!$0) {
$14 = __gcry_malloc((_strlen($name) | 0) + 3 | 0) | 0;
if (!$14) {
$$2 = _gpg_err_code_from_syserror() | 0;
return $$2 | 0;
}
$17 = ___stpcpy($14, $name) | 0;
HEAP8[$17 >> 0] = HEAP8[24240] | 0;
HEAP8[$17 + 1 >> 0] = HEAP8[24241] | 0;
HEAP8[$17 + 2 >> 0] = HEAP8[24242] | 0;
$18 = __gcry_sexp_find_token($keyparam, $14, 0) | 0;
if (!$18) $x$0$ph = 0; else {
$20 = __gcry_sexp_nth_mpi($18, 1, 5) | 0;
__gcry_sexp_release($18);
if (!$20) {
__gcry_free($14);
$$2 = 65;
return $$2 | 0;
} else $x$0$ph = $20;
}
$22 = ___stpcpy($14, $name) | 0;
HEAP8[$22 >> 0] = HEAP8[24243] | 0;
HEAP8[$22 + 1 >> 0] = HEAP8[24244] | 0;
HEAP8[$22 + 2 >> 0] = HEAP8[24245] | 0;
$23 = __gcry_sexp_find_token($keyparam, $14, 0) | 0;
if (!$23) $y$0$ph = 0; else {
$25 = __gcry_sexp_nth_mpi($23, 1, 5) | 0;
__gcry_sexp_release($23);
if (!$25) {
__gcry_mpi_free($x$0$ph);
__gcry_free($14);
$$2 = 65;
return $$2 | 0;
} else $y$0$ph = $25;
}
$27 = ___stpcpy($14, $name) | 0;
HEAP8[$27 >> 0] = HEAP8[24246] | 0;
HEAP8[$27 + 1 >> 0] = HEAP8[24247] | 0;
HEAP8[$27 + 2 >> 0] = HEAP8[24248] | 0;
$28 = __gcry_sexp_find_token($keyparam, $14, 0) | 0;
if (!$28) $z$1 = __gcry_mpi_set_ui(0, 1) | 0; else {
$30 = __gcry_sexp_nth_mpi($28, 1, 5) | 0;
__gcry_sexp_release($28);
if (!$30) {
__gcry_mpi_free($y$0$ph);
__gcry_mpi_free($x$0$ph);
__gcry_free($14);
$$2 = 65;
return $$2 | 0;
} else $z$1 = $30;
}
if (($x$0$ph | 0) != 0 & ($y$0$ph | 0) != 0) $point$1 = __gcry_mpi_point_snatch_set(0, $x$0$ph, $y$0$ph, $z$1) | 0; else {
__gcry_mpi_free($x$0$ph);
__gcry_mpi_free($y$0$ph);
__gcry_mpi_free($z$1);
$point$1 = 0;
}
__gcry_free($14);
$point$3 = $point$1;
} else {
$2 = __gcry_sexp_nth_mpi($0, 1, 8) | 0;
__gcry_sexp_release($0);
if (!$2) {
$$2 = 65;
return $$2 | 0;
}
$4 = __gcry_mpi_point_new(0) | 0;
if (!$ec) label = 6; else if ((HEAP32[$ec + 4 >> 2] | 0) == 1) $rc$0 = __gcry_ecc_eddsa_decodepoint($2, $ec, $4, 0, 0) | 0; else label = 6;
if ((label | 0) == 6) $rc$0 = __gcry_ecc_os2ec($4, $2) | 0;
__gcry_mpi_free($2);
if (!$rc$0) $point$3 = $4; else {
__gcry_mpi_point_release($4);
$$2 = $rc$0;
return $$2 | 0;
}
}
if (!$point$3) {
$$2 = 0;
return $$2 | 0;
}
HEAP32[$r_a >> 2] = $point$3;
$$2 = 0;
return $$2 | 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 = 0, $$pr = 0, $17 = 0, $20 = 0, $22 = 0, $25 = 0, $3 = 0, $39 = 0, $4 = 0, $41 = 0, $43 = 0, $44 = 0, $46 = 0, $5 = 0, $56 = 0, $58 = 0, $61 = 0, $8 = 0, $9 = 0, $buffer$0 = 0, $i$012$in = 0, $i$17 = 0, $length$0$lcssa = 0, $n2$0 = 0, $p$011 = 0, $p$2$lcssa = 0, $p$21 = 0, label = 0, $i$012$in$looptemp = 0;
if ($sign) HEAP32[$sign >> 2] = HEAP32[$a + 8 >> 2];
$3 = $a + 4 | 0;
$4 = HEAP32[$3 >> 2] | 0;
$5 = $4 << 2;
HEAP32[$nbytes >> 2] = $5;
$$ = ($4 | 0) == 0 ? 1 : $5;
$8 = ($extraalloc | 0) < 0;
$9 = 0 - $extraalloc | 0;
$n2$0 = ($$ >>> 0 < $fill_le >>> 0 ? $fill_le : $$) + ($8 ? $9 : $extraalloc) | 0;
if (!$force_secure) if (!(HEAP32[$a + 12 >> 2] & 1)) $17 = __gcry_malloc($n2$0) | 0; else label = 5; else label = 5;
if ((label | 0) == 5) $17 = __gcry_malloc_secure($n2$0) | 0;
if (!$17) {
$$0 = 0;
return $$0 | 0;
}
$buffer$0 = $8 ? $17 + $9 | 0 : $17;
$20 = HEAP32[$3 >> 2] | 0;
if (($20 | 0) > 0) {
$22 = $a + 16 | 0;
$i$012$in = $20;
$p$011 = $buffer$0;
while (1) {
$i$012$in$looptemp = $i$012$in;
$i$012$in = $i$012$in + -1 | 0;
$25 = HEAP32[(HEAP32[$22 >> 2] | 0) + ($i$012$in << 2) >> 2] | 0;
HEAP8[$p$011 >> 0] = $25 >>> 24;
HEAP8[$p$011 + 1 >> 0] = $25 >>> 16;
HEAP8[$p$011 + 2 >> 0] = $25 >>> 8;
HEAP8[$p$011 + 3 >> 0] = $25;
if (($i$012$in$looptemp | 0) <= 1) break; else $p$011 = $p$011 + 4 | 0;
}
}
$$pr = HEAP32[$nbytes >> 2] | 0;
if ($fill_le) {
$39 = $$pr >>> 1;
if ($39) {
$41 = $$pr + -1 | 0;
$i$17 = 0;
do {
$43 = $buffer$0 + $i$17 | 0;
$44 = HEAP8[$43 >> 0] | 0;
$46 = $buffer$0 + ($41 - $i$17) | 0;
HEAP8[$43 >> 0] = HEAP8[$46 >> 0] | 0;
HEAP8[$46 >> 0] = $44;
$i$17 = $i$17 + 1 | 0;
} while (($i$17 | 0) != ($39 | 0));
}
if ($$pr >>> 0 < $fill_le >>> 0) {
_memset($17 + ($$pr + (($extraalloc | 0) > 0 ? $extraalloc : 0) - $extraalloc) | 0, 0, $fill_le - $$pr | 0) | 0;
$length$0$lcssa = $fill_le;
} else $length$0$lcssa = $$pr;
HEAP32[$nbytes >> 2] = $length$0$lcssa;
$$0 = $17;
return $$0 | 0;
}
if (!$$pr) {
$$0 = $17;
return $$0 | 0;
} else {
$58 = $$pr;
$p$21 = $buffer$0;
}
while (1) {
if (HEAP8[$p$21 >> 0] | 0) {
$61 = $58;
$p$2$lcssa = $p$21;
break;
}
$56 = $p$21 + 1 | 0;
$58 = $58 + -1 | 0;
HEAP32[$nbytes >> 2] = $58;
if (!$58) {
$61 = 0;
$p$2$lcssa = $56;
break;
} else $p$21 = $56;
}
if (($p$2$lcssa | 0) == ($buffer$0 | 0)) {
$$0 = $17;
return $$0 | 0;
}
_memmove($buffer$0 | 0, $p$2$lcssa | 0, $61 | 0) | 0;
$$0 = $17;
return $$0 | 0;
}
function _GNUNET_CRYPTO_eddsa_key_create() {
var $$0 = 0, $0 = 0, $10 = 0, $18 = 0, $22 = 0, $30 = 0, $33 = 0, $34 = 0, $8 = 0, $d = 0, $priv_sexp = 0, $s_keyparam = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer1 = sp + 8 | 0;
$priv_sexp = sp + 64 | 0;
$s_keyparam = sp + 60 | 0;
$d = sp + 56 | 0;
$0 = _gcry_sexp_build($s_keyparam, 0, 19613, sp) | 0;
if ($0) {
if ((HEAP32[210] | 0) == -1) HEAP32[210] = _GNUNET_get_log_call_status(1, 20654, 19324, 19657, 604) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[210] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$8 = _gcry_strerror($0) | 0;
HEAP32[$vararg_buffer1 >> 2] = 19447;
HEAP32[$vararg_buffer1 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer1 + 8 >> 2] = 604;
HEAP32[$vararg_buffer1 + 12 >> 2] = $8;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer1);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$10 = _gcry_pk_genkey($priv_sexp, HEAP32[$s_keyparam >> 2] | 0) | 0;
if ($10) {
if ((HEAP32[211] | 0) == -1) HEAP32[211] = _GNUNET_get_log_call_status(1, 20654, 19324, 19657, 609) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[211] | 0) {
$18 = _gcry_strerror($10) | 0;
HEAP32[$vararg_buffer6 >> 2] = 19584;
HEAP32[$vararg_buffer6 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer6 + 8 >> 2] = 609;
HEAP32[$vararg_buffer6 + 12 >> 2] = $18;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer6);
}
_gcry_sexp_release(HEAP32[$s_keyparam >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
_gcry_sexp_release(HEAP32[$s_keyparam >> 2] | 0);
$22 = _key_from_sexp($d, HEAP32[$priv_sexp >> 2] | 0, 37347, 24125) | 0;
if (!$22) {
_gcry_sexp_release(HEAP32[$priv_sexp >> 2] | 0);
$33 = _GNUNET_xmalloc_(32, 19324, 629) | 0;
$34 = HEAP32[$d >> 2] | 0;
_GNUNET_CRYPTO_mpi_print_unsigned($33, 32, $34);
_gcry_mpi_release($34);
$$0 = $33;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[212] | 0) == -1) HEAP32[212] = _GNUNET_get_log_call_status(1, 20654, 19324, 19657, 624) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[212] | 0) {
$30 = _gcry_strerror($22) | 0;
HEAP32[$vararg_buffer12 >> 2] = 19599;
HEAP32[$vararg_buffer12 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer12 + 8 >> 2] = 624;
HEAP32[$vararg_buffer12 + 12 >> 2] = $30;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer12);
}
_gcry_sexp_release(HEAP32[$priv_sexp >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function _GNUNET_CRYPTO_ecdhe_key_create() {
var $$0 = 0, $0 = 0, $10 = 0, $18 = 0, $22 = 0, $30 = 0, $33 = 0, $34 = 0, $8 = 0, $d = 0, $priv_sexp = 0, $s_keyparam = 0, $vararg_buffer1 = 0, $vararg_buffer12 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer1 = sp + 8 | 0;
$priv_sexp = sp + 64 | 0;
$s_keyparam = sp + 60 | 0;
$d = sp + 56 | 0;
$0 = _gcry_sexp_build($s_keyparam, 0, 19498, sp) | 0;
if ($0) {
if ((HEAP32[207] | 0) == -1) HEAP32[207] = _GNUNET_get_log_call_status(1, 20654, 19324, 19553, 505) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[207] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$8 = _gcry_strerror($0) | 0;
HEAP32[$vararg_buffer1 >> 2] = 19447;
HEAP32[$vararg_buffer1 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer1 + 8 >> 2] = 505;
HEAP32[$vararg_buffer1 + 12 >> 2] = $8;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer1);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$10 = _gcry_pk_genkey($priv_sexp, HEAP32[$s_keyparam >> 2] | 0) | 0;
if ($10) {
if ((HEAP32[208] | 0) == -1) HEAP32[208] = _GNUNET_get_log_call_status(1, 20654, 19324, 19553, 510) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[208] | 0) {
$18 = _gcry_strerror($10) | 0;
HEAP32[$vararg_buffer6 >> 2] = 19584;
HEAP32[$vararg_buffer6 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer6 + 8 >> 2] = 510;
HEAP32[$vararg_buffer6 + 12 >> 2] = $18;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer6);
}
_gcry_sexp_release(HEAP32[$s_keyparam >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
_gcry_sexp_release(HEAP32[$s_keyparam >> 2] | 0);
$22 = _key_from_sexp($d, HEAP32[$priv_sexp >> 2] | 0, 37347, 24125) | 0;
if (!$22) {
_gcry_sexp_release(HEAP32[$priv_sexp >> 2] | 0);
$33 = _GNUNET_xmalloc_(32, 19324, 530) | 0;
$34 = HEAP32[$d >> 2] | 0;
_GNUNET_CRYPTO_mpi_print_unsigned($33, 32, $34);
_gcry_mpi_release($34);
$$0 = $33;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[209] | 0) == -1) HEAP32[209] = _GNUNET_get_log_call_status(1, 20654, 19324, 19553, 525) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[209] | 0) {
$30 = _gcry_strerror($22) | 0;
HEAP32[$vararg_buffer12 >> 2] = 19599;
HEAP32[$vararg_buffer12 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer12 + 8 >> 2] = 525;
HEAP32[$vararg_buffer12 + 12 >> 2] = $30;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer12);
}
_gcry_sexp_release(HEAP32[$priv_sexp >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function _GNUNET_STRINGS_relative_time_to_string($delta, $do_round) {
$delta = $delta | 0;
$do_round = $do_round | 0;
var $$0 = 0, $0 = 0, $14 = 0, $2 = 0, $20 = 0, $25 = 0, $26 = 0, $32 = 0, $37 = 0, $38 = 0, $44 = 0, $49 = 0, $5 = 0, $50 = 0, $56 = 0, $6 = 0, $61 = 0, $62 = 0, $68 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $82 = 0, $84 = 0, $87 = 0, $unit$0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = $delta;
$2 = HEAP32[$0 >> 2] | 0;
$5 = HEAP32[$0 + 4 >> 2] | 0;
$6 = _GNUNET_TIME_relative_get_forever_() | 0;
if (($6 | 0) == ($2 | 0) & (tempRet0 | 0) == ($5 | 0)) {
$$0 = 21297;
STACKTOP = sp;
return $$0 | 0;
}
if (($2 | 0) == 0 & ($5 | 0) == 0) {
$$0 = 21356;
STACKTOP = sp;
return $$0 | 0;
}
$14 = ($do_round | 0) == 1;
$20 = ___uremdi3($2 | 0, $5 | 0, 1e3, 0) | 0;
if ($14 & ($5 >>> 0 > 0 | ($5 | 0) == 0 & $2 >>> 0 > 5e3) | ($20 | 0) == 0 & (tempRet0 | 0) == 0) {
$25 = ___udivdi3($2 | 0, $5 | 0, 1e3, 0) | 0;
$26 = tempRet0;
$32 = ___uremdi3($25 | 0, $26 | 0, 1e3, 0) | 0;
if ($14 & ($5 >>> 0 > 0 | ($5 | 0) == 0 & $2 >>> 0 > 5000999) | ($32 | 0) == 0 & (tempRet0 | 0) == 0) {
$37 = ___udivdi3($2 | 0, $5 | 0, 1e6, 0) | 0;
$38 = tempRet0;
$44 = ___uremdi3($37 | 0, $38 | 0, 60, 0) | 0;
if ($14 & ($5 >>> 0 > 0 | ($5 | 0) == 0 & $2 >>> 0 > 300999999) | ($44 | 0) == 0 & (tempRet0 | 0) == 0) {
$49 = ___udivdi3($2 | 0, $5 | 0, 6e7, 0) | 0;
$50 = tempRet0;
$56 = ___uremdi3($49 | 0, $50 | 0, 60, 0) | 0;
if ($14 & ($5 >>> 0 > 4 | ($5 | 0) == 4 & $2 >>> 0 > 880130815) | ($56 | 0) == 0 & (tempRet0 | 0) == 0) {
$61 = ___udivdi3($2 | 0, $5 | 0, -694967296, 0) | 0;
$62 = tempRet0;
$68 = ___uremdi3($61 | 0, $62 | 0, 24, 0) | 0;
if ($14 & ($5 >>> 0 > 101 | ($5 | 0) == 101 & $2 >>> 0 > 1808303103) | ($68 | 0) == 0 & (tempRet0 | 0) == 0) {
$73 = ___udivdi3($2 | 0, $5 | 0, 500654080, 20) | 0;
$74 = tempRet0;
$75 = _i64Add($2 | 0, $5 | 0, -500654080, -21) | 0;
$76 = tempRet0;
$84 = $73;
$87 = $74;
$unit$0 = $76 >>> 0 < 20 | ($76 | 0) == 20 & $75 >>> 0 < 500654080 ? 21338 : 21342;
} else {
$84 = $61;
$87 = $62;
$unit$0 = 24123;
}
} else {
$84 = $49;
$87 = $50;
$unit$0 = 21354;
}
} else {
$84 = $37;
$87 = $38;
$unit$0 = 38735;
}
} else {
$84 = $25;
$87 = $26;
$unit$0 = 21351;
}
} else {
$84 = $2;
$87 = $5;
$unit$0 = 21347;
}
$82 = $vararg_buffer;
HEAP32[$82 >> 2] = $84;
HEAP32[$82 + 4 >> 2] = $87;
HEAP32[$vararg_buffer + 8 >> 2] = $unit$0;
_GNUNET_snprintf(75308, 128, 21289, $vararg_buffer) | 0;
$$0 = 75308;
STACKTOP = sp;
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 $10 = 0, $11 = 0, $14 = 0, $19 = 0, $20 = 0, $22 = 0, $27 = 0, $28 = 0, $32 = 0, $35 = 0, $37 = 0, $39 = 0, $41 = 0, $43 = 0, $45 = 0, $5 = 0, $55 = 0, $6 = 0, $61 = 0, $7 = 0, $9 = 0, $i$014 = 0, $i$19 = 0, $i$2$ph = 0, $i$25 = 0, $j$06 = 0, label = 0;
if (($cflags & 8 | 0) == 0 & ($match_eo | 0) > -1) {
$5 = HEAP32[$tnfa + 16 >> 2] | 0;
$6 = $tnfa + 28 | 0;
$7 = HEAP32[$6 >> 2] | 0;
$9 = ($nmatch | 0) != 0;
if ($9 & ($7 | 0) != 0) {
$10 = $tnfa + 48 | 0;
$i$014 = 0;
do {
$14 = HEAP32[$5 + ($i$014 * 12 | 0) >> 2] | 0;
if (($14 | 0) == (HEAP32[$10 >> 2] | 0)) $20 = $match_eo; else $20 = HEAP32[$tags + ($14 << 2) >> 2] | 0;
$19 = $pmatch + ($i$014 << 3) | 0;
HEAP32[$19 >> 2] = $20;
$22 = HEAP32[$5 + ($i$014 * 12 | 0) + 4 >> 2] | 0;
if (($22 | 0) == (HEAP32[$10 >> 2] | 0)) $28 = $match_eo; else $28 = HEAP32[$tags + ($22 << 2) >> 2] | 0;
$27 = $pmatch + ($i$014 << 3) + 4 | 0;
HEAP32[$27 >> 2] = $28;
if (($20 | 0) == -1 | ($28 | 0) == -1) {
HEAP32[$27 >> 2] = -1;
HEAP32[$19 >> 2] = -1;
}
$i$014 = $i$014 + 1 | 0;
$32 = HEAP32[$6 >> 2] | 0;
} while ($i$014 >>> 0 < $nmatch >>> 0 & $i$014 >>> 0 < $32 >>> 0);
$11 = $32;
} else $11 = $7;
if ($9 & ($11 | 0) != 0) {
$i$19 = 0;
while (1) {
$35 = $pmatch + ($i$19 << 3) + 4 | 0;
$37 = HEAP32[$5 + ($i$19 * 12 | 0) + 8 >> 2] | 0;
if ($37) {
$39 = HEAP32[$37 >> 2] | 0;
if (($39 | 0) > -1) {
$41 = $pmatch + ($i$19 << 3) | 0;
$43 = $39;
$45 = HEAP32[$41 >> 2] | 0;
$j$06 = 0;
while (1) {
if (($45 | 0) < (HEAP32[$pmatch + ($43 << 3) >> 2] | 0)) label = 18; else if ((HEAP32[$35 >> 2] | 0) > (HEAP32[$pmatch + ($43 << 3) + 4 >> 2] | 0)) label = 18; else $61 = $45;
if ((label | 0) == 18) {
label = 0;
HEAP32[$35 >> 2] = -1;
HEAP32[$41 >> 2] = -1;
$61 = -1;
}
$j$06 = $j$06 + 1 | 0;
$43 = HEAP32[$37 + ($j$06 << 2) >> 2] | 0;
if (($43 | 0) <= -1) break; else $45 = $61;
}
}
}
$55 = $i$19 + 1 | 0;
if ($55 >>> 0 < $nmatch >>> 0 & $55 >>> 0 < $11 >>> 0) $i$19 = $55; else {
$i$2$ph = $55;
break;
}
}
} else $i$2$ph = 0;
} else $i$2$ph = 0;
if ($i$2$ph >>> 0 < $nmatch >>> 0) {
$i$25 = $i$2$ph;
do {
HEAP32[$pmatch + ($i$25 << 3) >> 2] = -1;
HEAP32[$pmatch + ($i$25 << 3) + 4 >> 2] = -1;
$i$25 = $i$25 + 1 | 0;
} while (($i$25 | 0) != ($nmatch | 0));
}
return;
}
function __gcry_detect_hw_features() {
var $10 = 0, $13 = 0, $18 = 0, $2 = 0, $20 = 0, $23 = 0, $27 = 0, $34 = 0, $7 = 0, $buffer$i = 0, $i$08$lcssa$i = 0, $p$0$lcssa$i = 0, $p$03$i = 0, $pend$06$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
$buffer$i = sp;
if (__gcry_fips_mode() | 0) {
STACKTOP = sp;
return;
}
$2 = _fopen(22485, 23052) | 0;
if ($2) {
if (_fgets($buffer$i, 256, $2) | 0) do {
$7 = HEAP8[$buffer$i >> 0] | 0;
L9 : do if (!($7 & 128)) {
$10 = $7;
$p$03$i = $buffer$i;
while (1) {
if (!(_isspace($10) | 0)) {
$p$0$lcssa$i = $p$03$i;
break L9;
}
$13 = $p$03$i + 1 | 0;
$10 = HEAP8[$13 >> 0] | 0;
if ($10 & 128) {
$p$0$lcssa$i = $13;
break;
} else $p$03$i = $13;
}
} else $p$0$lcssa$i = $buffer$i; while (0);
$18 = _strchr($p$0$lcssa$i, 10) | 0;
if ($18) HEAP8[$18 >> 0] = 0;
$20 = HEAP8[$p$0$lcssa$i >> 0] | 0;
L17 : do if ($20 << 24 >> 24) {
$23 = (_strlen($p$0$lcssa$i) | 0) + -1 | 0;
if (($23 | 0) > 0) {
$pend$06$i = $p$0$lcssa$i + $23 | 0;
do {
$27 = HEAP8[$pend$06$i >> 0] | 0;
if (!($27 & 128)) if (_isspace($27) | 0) HEAP8[$pend$06$i >> 0] = 0;
$pend$06$i = $pend$06$i + -1 | 0;
} while ($pend$06$i >>> 0 > $p$0$lcssa$i >>> 0);
$34 = HEAP8[$p$0$lcssa$i >> 0] | 0;
} else $34 = $20;
switch ($34 << 24 >> 24) {
case 35:
case 0:
{
break L17;
break;
}
default:
{}
}
do if (!(_strcmp(22335, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 0; else if (!(_strcmp(22347, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 1; else if (!(_strcmp(22359, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 2; else if (!(_strcmp(22371, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 3; else if (!(_strcmp(22384, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 4; else if (!(_strcmp(22394, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 5; else if (!(_strcmp(22405, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 6; else if (!(_strcmp(22417, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 7; else {
if (!(_strcmp(22430, $p$0$lcssa$i) | 0)) {
$i$08$lcssa$i = 8;
break;
}
if (!(_strcmp(22442, $p$0$lcssa$i) | 0)) {
$i$08$lcssa$i = 9;
break;
}
if (!(_strcmp(22455, $p$0$lcssa$i) | 0)) {
$i$08$lcssa$i = 10;
break;
}
if (!(_strcmp(22465, $p$0$lcssa$i) | 0)) {
$i$08$lcssa$i = 11;
break;
}
if (!(_strcmp(22476, $p$0$lcssa$i) | 0)) $i$08$lcssa$i = 12; else break L17;
} while (0);
HEAP32[17490] = HEAP32[17490] | HEAP32[1088 + ($i$08$lcssa$i << 3) >> 2];
} while (0);
} while ((_fgets($buffer$i, 256, $2) | 0) != 0);
_feof($2) | 0;
_fclose($2) | 0;
}
STACKTOP = sp;
return;
}
function _setup_log_file($tm) {
$tm = $tm | 0;
var $$0 = 0, $0 = 0, $12 = 0, $16 = 0, $26 = 0, $28 = 0, $29 = 0, $33 = 0, $35 = 0, $37 = 0, $39 = 0, $4 = 0, $41 = 0, $43 = 0, $44 = 0, $47 = 0, $50 = 0, $9 = 0, $fn = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 4144 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$fn = sp + 44 | 0;
$0 = HEAP32[17462] | 0;
if (!$0) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (!(_strftime($fn | 0, 4097, $0 | 0, $tm | 0) | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$4 = _strrchr($fn, 91) | 0;
if ($4) if ((HEAP8[$4 + 1 >> 0] | 0) == 93) {
$9 = _GNUNET_xstrdup_($fn, 18977, 344) | 0;
$12 = $4 - $fn | 0;
HEAP8[$9 + $12 >> 0] = 0;
HEAP8[$9 + ($12 + 1) >> 0] = 0;
$16 = _getpid() | 0;
HEAP32[$vararg_buffer >> 2] = $9;
HEAP32[$vararg_buffer + 4 >> 2] = $16;
HEAP32[$vararg_buffer + 8 >> 2] = $9 + ($12 + 2);
_snprintf($fn, 4096, 19128, $vararg_buffer) | 0;
_GNUNET_xfree_($9, 18977, 354);
}
if (!(_strcmp($fn, 71211) | 0)) {
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
}
if (HEAP8[71211] | 0) {
$26 = HEAP32[69876 + ((((HEAP32[17468] | 0) >>> 0) % 3 | 0) << 2) >> 2] | 0;
if ($26) {
_unlink($26) | 0;
_GNUNET_xfree_($26, 18977, 314);
}
$28 = _GNUNET_xstrdup_(71211, 18977, 316) | 0;
$29 = HEAP32[17468] | 0;
HEAP32[69876 + ((($29 >>> 0) % 3 | 0) << 2) >> 2] = $28;
HEAP32[17468] = $29 + 1;
}
_strcpy(71211, $fn) | 0;
HEAP32[$vararg_buffer3 >> 2] = 420;
$33 = _open($fn, 1089, $vararg_buffer3) | 0;
do if (($33 | 0) != -1) {
$35 = HEAP32[17465] | 0;
if ($35) _fclose($35) | 0;
$37 = _dup2($33, 2) | 0;
_close($33) | 0;
if (($37 | 0) != -1) {
$39 = ___fdopen(2, 19135) | 0;
if (!$39) {
_close(2) | 0;
break;
}
HEAP32[17465] = $39;
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
}
} while (0);
$41 = HEAP32[188] | 0;
if (($41 | 0) == -1) {
$43 = _GNUNET_get_log_call_status(1, 0, 18977, 19138, 392) | 0;
HEAP32[188] = $43;
$47 = $43;
} else $47 = $41;
$44 = HEAP32[17464] | 0;
if (($44 | 0) > 0) {
HEAP32[17464] = $44 + -1;
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (!$47) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$50 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer6 >> 2] = 38089;
HEAP32[$vararg_buffer6 + 4 >> 2] = $fn;
HEAP32[$vararg_buffer6 + 8 >> 2] = 18977;
HEAP32[$vararg_buffer6 + 12 >> 2] = 392;
HEAP32[$vararg_buffer6 + 16 >> 2] = $50;
_GNUNET_log_nocheck(1, 19153, $vararg_buffer6);
$$0 = -1;
STACKTOP = sp;
return $$0 | 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, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $21 = 0, $34 = 0, $36 = 0, $39 = 0, $42 = 0, $46 = 0, $5 = 0, $rc$0 = 0, $val$i$1 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$val$i$1 = sp + 12 | 0;
if ((HEAP32[$ec + 4 >> 2] | 0) != 1) {
$$0 = 69;
STACKTOP = sp;
return $$0 | 0;
}
do if (!(HEAP32[17508] | 0)) {
$5 = __gcry_mpi_scan($val$i$1, 4, 35223, 0, 0) | 0;
if (!$5) {
HEAP32[17508] = HEAP32[$val$i$1 >> 2];
break;
} else {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($5) | 0;
__gcry_log_fatal(35288, $vararg_buffer);
}
} while (0);
if (!(HEAP32[17509] | 0)) HEAP32[17509] = __gcry_mpi_set_ui(0, 7) | 0;
$12 = __gcry_mpi_new(0) | 0;
$13 = __gcry_mpi_new(0) | 0;
$14 = __gcry_mpi_new(0) | 0;
$15 = __gcry_mpi_new(0) | 0;
$16 = $ec + 16 | 0;
__gcry_mpi_mulm($12, $y, $y, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($13, HEAP32[$ec + 24 >> 2] | 0, $12, HEAP32[$16 >> 2] | 0);
__gcry_mpi_sub_ui($12, $12, 1);
__gcry_mpi_add_ui($13, $13, 1);
$21 = __gcry_mpi_const(3) | 0;
__gcry_mpi_powm($14, $13, $21, HEAP32[$16 >> 2] | 0);
__gcry_mpi_powm($15, $13, HEAP32[17509] | 0, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($15, $15, $12, HEAP32[$16 >> 2] | 0);
__gcry_mpi_powm($15, $15, HEAP32[17508] | 0, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($15, $15, $12, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($x, $15, $14, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($15, $x, $x, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($15, $15, $13, HEAP32[$16 >> 2] | 0);
__gcry_mpi_neg($15, $15);
if (!(__gcry_mpi_cmp($15, $12) | 0)) {
$34 = HEAP32[17510] | 0;
do if (!$34) {
$36 = __gcry_mpi_scan($val$i$1, 4, 35323, 0, 0) | 0;
if (!$36) {
$39 = HEAP32[$val$i$1 >> 2] | 0;
HEAP32[17510] = $39;
$42 = $39;
break;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($36) | 0;
__gcry_log_fatal(35288, $vararg_buffer1);
}
} else $42 = $34; while (0);
__gcry_mpi_mulm($x, $x, $42, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($15, $x, $x, HEAP32[$16 >> 2] | 0);
__gcry_mpi_mulm($15, $15, $13, HEAP32[$16 >> 2] | 0);
__gcry_mpi_neg($15, $15);
$46 = (__gcry_mpi_cmp($15, $12) | 0) == 0;
$rc$0 = $46 ? 65 : 0;
} else $rc$0 = 0;
if ((__gcry_mpi_test_bit($x, 0) | 0) != (($sign | 0) != 0 | 0)) __gcry_mpi_sub($x, HEAP32[$16 >> 2] | 0, $x);
__gcry_mpi_free($15);
__gcry_mpi_free($14);
__gcry_mpi_free($13);
__gcry_mpi_free($12);
$$0 = $rc$0;
STACKTOP = sp;
return $$0 | 0;
}
function _x931_generate_key($for_nonce) {
$for_nonce = $for_nonce | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa20 = 0, $10 = 0, $14 = 0, $15 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $6 = 0, $_vlen$0$lcssa15 = 0, $_vlen$07 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$35 = 0, $_vptr$0$lcssa16 = 0, $_vptr$06 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$34 = 0, $buffer$0 = 0, $hd = 0, $scevgep = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$hd = sp + 12 | 0;
if (!(HEAP32[17569] | 0)) __gcry_assert_failed(51407, 50726, 596, 51802);
$2 = __gcry_cipher_open($hd, 7, 1, 1) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_error(51820, $vararg_buffer);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!$for_nonce) $buffer$0 = _get_entropy() | 0; else {
$6 = __gcry_xmalloc(16) | 0;
_get_random($6, 16, HEAP32[17572] | 0);
$buffer$0 = $6;
}
$10 = __gcry_cipher_setkey(HEAP32[$hd >> 2] | 0, $buffer$0, 16) | 0;
if (!($buffer$0 & 7)) {
$_vlen$0$lcssa15 = 16;
$_vptr$0$lcssa16 = $buffer$0;
label = 11;
} else {
$_vlen$07 = 16;
$_vptr$06 = $buffer$0;
while (1) {
HEAP8[$_vptr$06 >> 0] = 0;
$14 = $_vptr$06 + 1 | 0;
$15 = $_vlen$07 + -1 | 0;
if (($15 | 0) != 0 & ($14 & 7 | 0) != 0) {
$_vlen$07 = $15;
$_vptr$06 = $14;
} else {
$$lcssa = $14;
$$lcssa20 = $15;
break;
}
}
if ($$lcssa20 >>> 0 < 8) {
$_vlen$3$ph = $$lcssa20;
$_vptr$3$ph = $$lcssa;
} else {
$_vlen$0$lcssa15 = $$lcssa20;
$_vptr$0$lcssa16 = $$lcssa;
label = 11;
}
}
if ((label | 0) == 11) {
$22 = $_vlen$0$lcssa15 + -8 | 0;
$23 = $22 & -8;
$scevgep = $_vptr$0$lcssa16 + ($23 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa15;
$_vptr$1 = $_vptr$0$lcssa16;
while (1) {
$25 = $_vptr$1;
HEAP32[$25 >> 2] = 0;
HEAP32[$25 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $22 - $23 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$35 = $_vlen$3$ph;
$_vptr$34 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$34 >> 0] = 0;
$_vlen$35 = $_vlen$35 + -1 | 0;
if (!$_vlen$35) break; else $_vptr$34 = $_vptr$34 + 1 | 0;
}
}
__gcry_free($buffer$0);
if (!$10) {
$$0 = HEAP32[$hd >> 2] | 0;
STACKTOP = sp;
return $$0 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($10) | 0;
__gcry_log_error(51863, $vararg_buffer1);
__gcry_cipher_close(HEAP32[$hd >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
function _sha1_final($context) {
$context = $context | 0;
var $$ = 0, $1 = 0, $100 = 0, $113 = 0, $13 = 0, $14 = 0, $15 = 0, $18 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $34 = 0, $61 = 0, $7 = 0, $74 = 0, $8 = 0, $87 = 0, dest = 0, stop = 0;
__gcry_md_block_write($context, 0, 0);
$1 = $context + 128 | 0;
$3 = HEAP32[$1 >> 2] | 0;
$7 = $3 << 6;
$8 = _bitshift64Lshr($3 | 0, HEAP32[$1 + 4 >> 2] | 0, 26) | 0;
$13 = $context + 144 | 0;
$14 = HEAP32[$13 >> 2] | 0;
$15 = $7 + $14 | 0;
$$ = ($15 >>> 0 < $7 >>> 0 & 1) + ($8 & 536870848 | $3 >>> 26) | 0;
$18 = $15 << 3;
$21 = $$ << 3 | $15 >>> 29;
HEAP32[$13 >> 2] = $14 + 1;
HEAP8[$context + $14 >> 0] = -128;
$25 = HEAP32[$13 >> 2] | 0;
if (($14 | 0) < 56) {
if (($25 | 0) < 56) {
$29 = $25;
do {
HEAP32[$13 >> 2] = $29 + 1;
HEAP8[$context + $29 >> 0] = 0;
$29 = HEAP32[$13 >> 2] | 0;
} while (($29 | 0) < 56);
}
} else {
if (($25 | 0) < 64) {
$34 = $25;
do {
HEAP32[$13 >> 2] = $34 + 1;
HEAP8[$context + $34 >> 0] = 0;
$34 = HEAP32[$13 >> 2] | 0;
} while (($34 | 0) < 64);
}
__gcry_md_block_write($context, 0, 0);
dest = $context;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
}
HEAP8[$context + 56 >> 0] = $$ >>> 21;
HEAP8[$context + 57 >> 0] = $$ >>> 13;
HEAP8[$context + 58 >> 0] = $$ >>> 5;
HEAP8[$context + 59 >> 0] = $21;
HEAP8[$context + 60 >> 0] = $15 >>> 21;
HEAP8[$context + 61 >> 0] = $15 >>> 13;
HEAP8[$context + 62 >> 0] = $15 >>> 5;
HEAP8[$context + 63 >> 0] = $18;
_transform_1312($context, $context, 1) | 0;
___gcry_burn_stack(104);
$61 = HEAP32[$context + 160 >> 2] | 0;
HEAP8[$context >> 0] = $61 >>> 24;
HEAP8[$context + 1 >> 0] = $61 >>> 16;
HEAP8[$context + 2 >> 0] = $61 >>> 8;
HEAP8[$context + 3 >> 0] = $61;
$74 = HEAP32[$context + 164 >> 2] | 0;
HEAP8[$context + 4 >> 0] = $74 >>> 24;
HEAP8[$context + 5 >> 0] = $74 >>> 16;
HEAP8[$context + 6 >> 0] = $74 >>> 8;
HEAP8[$context + 7 >> 0] = $74;
$87 = HEAP32[$context + 168 >> 2] | 0;
HEAP8[$context + 8 >> 0] = $87 >>> 24;
HEAP8[$context + 9 >> 0] = $87 >>> 16;
HEAP8[$context + 10 >> 0] = $87 >>> 8;
HEAP8[$context + 11 >> 0] = $87;
$100 = HEAP32[$context + 172 >> 2] | 0;
HEAP8[$context + 12 >> 0] = $100 >>> 24;
HEAP8[$context + 13 >> 0] = $100 >>> 16;
HEAP8[$context + 14 >> 0] = $100 >>> 8;
HEAP8[$context + 15 >> 0] = $100;
$113 = HEAP32[$context + 176 >> 2] | 0;
HEAP8[$context + 16 >> 0] = $113 >>> 24;
HEAP8[$context + 17 >> 0] = $113 >>> 16;
HEAP8[$context + 18 >> 0] = $113 >>> 8;
HEAP8[$context + 19 >> 0] = $113;
return;
}
function _msgidxof_2406($code) {
$code = $code | 0;
var $0 = 0, $10 = 0, $15 = 0, $20 = 0, $25 = 0, $30 = 0, $35 = 0, $40 = 0, $45 = 0, $5 = 0, $50 = 0, $55 = 0, $60 = 0, $65 = 0, $70 = 0, $75 = 0, $83 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $code;
$5 = HEAP32[$0 >> 2] | 0;
if ((HEAP32[$0 >> 2] | 0) >= 0 & (HEAP32[$0 >> 2] | 0) <= 213) {
$83 = $5 - 0 | 0;
STACKTOP = sp;
return $83 | 0;
}
$10 = HEAP32[$0 >> 2] | 0;
if (($5 | 0) >= 222 & (HEAP32[$0 >> 2] | 0) <= 254) {
$83 = $10 - 8 | 0;
STACKTOP = sp;
return $83 | 0;
}
$15 = HEAP32[$0 >> 2] | 0;
if (($10 | 0) >= 257 & (HEAP32[$0 >> 2] | 0) <= 271) {
$83 = $15 - 10 | 0;
STACKTOP = sp;
return $83 | 0;
}
$20 = HEAP32[$0 >> 2] | 0;
if (($15 | 0) >= 273 & (HEAP32[$0 >> 2] | 0) <= 281) {
$83 = $20 - 11 | 0;
STACKTOP = sp;
return $83 | 0;
}
$25 = HEAP32[$0 >> 2] | 0;
if (($20 | 0) >= 721 & (HEAP32[$0 >> 2] | 0) <= 729) {
$83 = $25 - 450 | 0;
STACKTOP = sp;
return $83 | 0;
}
$30 = HEAP32[$0 >> 2] | 0;
if (($25 | 0) >= 750 & (HEAP32[$0 >> 2] | 0) <= 752) {
$83 = $30 - 470 | 0;
STACKTOP = sp;
return $83 | 0;
}
$35 = HEAP32[$0 >> 2] | 0;
if (($30 | 0) >= 754 & (HEAP32[$0 >> 2] | 0) <= 782) {
$83 = $35 - 471 | 0;
STACKTOP = sp;
return $83 | 0;
}
$40 = HEAP32[$0 >> 2] | 0;
if (($35 | 0) >= 784 & (HEAP32[$0 >> 2] | 0) <= 789) {
$83 = $40 - 472 | 0;
STACKTOP = sp;
return $83 | 0;
}
$45 = HEAP32[$0 >> 2] | 0;
if (($40 | 0) >= 800 & (HEAP32[$0 >> 2] | 0) <= 804) {
$83 = $45 - 482 | 0;
STACKTOP = sp;
return $83 | 0;
}
$50 = HEAP32[$0 >> 2] | 0;
if (($45 | 0) >= 815 & (HEAP32[$0 >> 2] | 0) <= 822) {
$83 = $50 - 492 | 0;
STACKTOP = sp;
return $83 | 0;
}
$55 = HEAP32[$0 >> 2] | 0;
if (($50 | 0) >= 832 & (HEAP32[$0 >> 2] | 0) <= 839) {
$83 = $55 - 501 | 0;
STACKTOP = sp;
return $83 | 0;
}
$60 = HEAP32[$0 >> 2] | 0;
if (($55 | 0) >= 844 & (HEAP32[$0 >> 2] | 0) <= 844) {
$83 = $60 - 505 | 0;
STACKTOP = sp;
return $83 | 0;
}
$65 = HEAP32[$0 >> 2] | 0;
if (($60 | 0) >= 848 & (HEAP32[$0 >> 2] | 0) <= 848) {
$83 = $65 - 508 | 0;
STACKTOP = sp;
return $83 | 0;
}
$70 = HEAP32[$0 >> 2] | 0;
if (($65 | 0) >= 881 & (HEAP32[$0 >> 2] | 0) <= 891) {
$83 = $70 - 540 | 0;
STACKTOP = sp;
return $83 | 0;
}
$75 = HEAP32[$0 >> 2] | 0;
if (($70 | 0) >= 1024 & (HEAP32[$0 >> 2] | 0) <= 1039) {
$83 = $75 - 672 | 0;
STACKTOP = sp;
return $83 | 0;
} else {
$83 = ($75 | 0) >= 16381 & (HEAP32[$0 >> 2] | 0) <= 16383 ? (HEAP32[$0 >> 2] | 0) - 16013 | 0 : 371;
STACKTOP = sp;
return $83 | 0;
}
return 0;
}
function _rmd160_final($context) {
$context = $context | 0;
var $$ = 0, $1 = 0, $100 = 0, $113 = 0, $13 = 0, $14 = 0, $15 = 0, $18 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $34 = 0, $61 = 0, $7 = 0, $74 = 0, $8 = 0, $87 = 0, dest = 0, stop = 0;
__gcry_md_block_write($context, 0, 0);
$1 = $context + 128 | 0;
$3 = HEAP32[$1 >> 2] | 0;
$7 = $3 << 6;
$8 = _bitshift64Lshr($3 | 0, HEAP32[$1 + 4 >> 2] | 0, 26) | 0;
$13 = $context + 144 | 0;
$14 = HEAP32[$13 >> 2] | 0;
$15 = $7 + $14 | 0;
$$ = ($15 >>> 0 < $7 >>> 0 & 1) + ($8 & 536870848 | $3 >>> 26) | 0;
$18 = $15 << 3;
$21 = $$ << 3 | $15 >>> 29;
HEAP32[$13 >> 2] = $14 + 1;
HEAP8[$context + $14 >> 0] = -128;
$25 = HEAP32[$13 >> 2] | 0;
if (($14 | 0) < 56) {
if (($25 | 0) < 56) {
$29 = $25;
do {
HEAP32[$13 >> 2] = $29 + 1;
HEAP8[$context + $29 >> 0] = 0;
$29 = HEAP32[$13 >> 2] | 0;
} while (($29 | 0) < 56);
}
} else {
if (($25 | 0) < 64) {
$34 = $25;
do {
HEAP32[$13 >> 2] = $34 + 1;
HEAP8[$context + $34 >> 0] = 0;
$34 = HEAP32[$13 >> 2] | 0;
} while (($34 | 0) < 64);
}
__gcry_md_block_write($context, 0, 0);
dest = $context;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
}
HEAP8[$context + 59 >> 0] = $15 >>> 21;
HEAP8[$context + 58 >> 0] = $15 >>> 13;
HEAP8[$context + 57 >> 0] = $15 >>> 5;
HEAP8[$context + 56 >> 0] = $18;
HEAP8[$context + 63 >> 0] = $$ >>> 21;
HEAP8[$context + 62 >> 0] = $$ >>> 13;
HEAP8[$context + 61 >> 0] = $$ >>> 5;
HEAP8[$context + 60 >> 0] = $21;
_transform($context, $context, 1) | 0;
___gcry_burn_stack(124);
$61 = HEAP32[$context + 160 >> 2] | 0;
HEAP8[$context + 3 >> 0] = $61 >>> 24;
HEAP8[$context + 2 >> 0] = $61 >>> 16;
HEAP8[$context + 1 >> 0] = $61 >>> 8;
HEAP8[$context >> 0] = $61;
$74 = HEAP32[$context + 164 >> 2] | 0;
HEAP8[$context + 7 >> 0] = $74 >>> 24;
HEAP8[$context + 6 >> 0] = $74 >>> 16;
HEAP8[$context + 5 >> 0] = $74 >>> 8;
HEAP8[$context + 4 >> 0] = $74;
$87 = HEAP32[$context + 168 >> 2] | 0;
HEAP8[$context + 11 >> 0] = $87 >>> 24;
HEAP8[$context + 10 >> 0] = $87 >>> 16;
HEAP8[$context + 9 >> 0] = $87 >>> 8;
HEAP8[$context + 8 >> 0] = $87;
$100 = HEAP32[$context + 172 >> 2] | 0;
HEAP8[$context + 15 >> 0] = $100 >>> 24;
HEAP8[$context + 14 >> 0] = $100 >>> 16;
HEAP8[$context + 13 >> 0] = $100 >>> 8;
HEAP8[$context + 12 >> 0] = $100;
$113 = HEAP32[$context + 176 >> 2] | 0;
HEAP8[$context + 19 >> 0] = $113 >>> 24;
HEAP8[$context + 18 >> 0] = $113 >>> 16;
HEAP8[$context + 17 >> 0] = $113 >>> 8;
HEAP8[$context + 16 >> 0] = $113;
return;
}
function __gcry_mpi_cmp($u, $v) {
$u = $u | 0;
$v = $v | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa27 = 0, $0 = 0, $11 = 0, $12 = 0, $2 = 0, $20 = 0, $23 = 0, $25 = 0, $38 = 0, $40 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $48 = 0, $49 = 0, $54 = 0, $56 = 0, $59 = 0, $61 = 0, $7 = 0, $i$0$in$i = 0, label = 0;
$0 = ($u | 0) != 0;
if ($0) {
$2 = HEAP32[$u + 12 >> 2] | 0;
if (!($2 & 4)) label = 3; else {
$11 = $2;
label = 7;
}
} else label = 3;
do if ((label | 0) == 3) {
if ($v) {
$7 = HEAP32[$v + 12 >> 2] | 0;
if ($7 & 4) {
if (!$0) {
$20 = $7;
label = 12;
break;
}
$11 = HEAP32[$u + 12 >> 2] | 0;
label = 7;
break;
}
}
__gcry_mpi_normalize($u);
__gcry_mpi_normalize($v);
$38 = HEAP32[$u + 4 >> 2] | 0;
$40 = HEAP32[$v + 4 >> 2] | 0;
$42 = HEAP32[$u + 8 >> 2] | 0;
$43 = ($42 | 0) == 0;
$45 = HEAP32[$v + 8 >> 2] | 0;
$46 = ($45 | 0) == 0;
if ($43) if ($46) $48 = 0; else {
$$0 = 1;
return $$0 | 0;
} else if ($46) {
$$0 = -1;
return $$0 | 0;
} else $48 = $45;
do if (($38 | 0) != ($40 | 0)) {
$49 = ($48 | 0) == 0;
if ($43) {
if (!$49) break;
$$0 = $38 - $40 | 0;
return $$0 | 0;
} else {
if ($49) break;
$$0 = $40 + $38 | 0;
return $$0 | 0;
}
} while (0);
if (!$38) {
$$0 = 0;
return $$0 | 0;
}
$54 = HEAP32[$u + 16 >> 2] | 0;
$56 = HEAP32[$v + 16 >> 2] | 0;
$i$0$in$i = $38;
while (1) {
if (($i$0$in$i | 0) <= 0) {
$$0 = 0;
label = 31;
break;
}
$i$0$in$i = $i$0$in$i + -1 | 0;
$59 = HEAP32[$54 + ($i$0$in$i << 2) >> 2] | 0;
$61 = HEAP32[$56 + ($i$0$in$i << 2) >> 2] | 0;
if (($59 | 0) != ($61 | 0)) {
$$lcssa = $59;
$$lcssa27 = $61;
break;
}
}
if ((label | 0) == 31) return $$0 | 0;
$$0 = $$lcssa >>> 0 <= $$lcssa27 >>> 0 ^ ($42 | 0) != 0 ? -1 : 1;
return $$0 | 0;
} while (0);
do if ((label | 0) == 7) {
$12 = ($11 & 4 | 0) == 0;
if ($12) {
if (!(($v | 0) != 0 & $12)) break;
$20 = HEAP32[$v + 12 >> 2] | 0;
label = 12;
break;
}
if (!$v) {
$$0 = -1;
return $$0 | 0;
}
if (!(HEAP32[$v + 12 >> 2] & 4)) {
$$0 = -1;
return $$0 | 0;
}
} while (0);
if ((label | 0) == 12) if ($20 & 4) {
$$0 = 1;
return $$0 | 0;
}
$23 = HEAP32[$u + 8 >> 2] | 0;
$25 = HEAP32[$v + 8 >> 2] | 0;
if (!($23 | $25)) {
$$0 = 0;
return $$0 | 0;
}
if (($23 | 0) < ($25 | 0)) {
$$0 = -1;
return $$0 | 0;
}
if (($23 | 0) > ($25 | 0)) {
$$0 = 1;
return $$0 | 0;
}
$$0 = _memcmp(HEAP32[$u + 16 >> 2] | 0, HEAP32[$v + 16 >> 2] | 0, ($23 + 7 | 0) / 8 | 0) | 0;
return $$0 | 0;
}
function _do_printhex($text, $text2, $buffer, $length) {
$text = $text | 0;
$text2 = $text2 | 0;
$buffer = $buffer | 0;
$length = $length | 0;
var $$06 = 0, $0 = 0, $10 = 0, $16 = 0, $20 = 0, $22 = 0, $24 = 0, $25 = 0, $cnt$07 = 0, $cnt$1 = 0, $p$08 = 0, $p$08$us = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer16 = 0, $vararg_buffer2 = 0, $vararg_buffer22 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, $wrap$0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$vararg_buffer22 = sp + 64 | 0;
$vararg_buffer16 = sp + 48 | 0;
$vararg_buffer14 = sp + 40 | 0;
$vararg_buffer11 = sp + 32 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = ($text | 0) != 0;
if ($0) if (!(HEAP8[$text >> 0] | 0)) {
$$06 = $text2;
$wrap$0 = 0;
} else {
HEAP32[$vararg_buffer >> 2] = $text;
HEAP32[$vararg_buffer + 4 >> 2] = $text2;
__gcry_log_debug(21784, $vararg_buffer);
if (($buffer | 0) != 0 & (($length | 0) != 0 & (HEAP8[$text2 + 1 >> 0] | 0) == 91)) {
__gcry_log_printf(22019, $vararg_buffer2);
HEAP32[$vararg_buffer4 >> 2] = _strlen($text) | 0;
HEAP32[$vararg_buffer4 + 4 >> 2] = 75759;
__gcry_log_debug(21827, $vararg_buffer4);
$$06 = 21782;
$wrap$0 = 1;
} else {
$$06 = $text2;
$wrap$0 = 1;
}
} else {
$$06 = $text2;
$wrap$0 = 0;
}
L6 : do if ($length) {
$10 = $length + -1 | 0;
if (!$wrap$0) {
$16 = $10;
$p$08$us = $buffer;
while (1) {
HEAP32[$vararg_buffer8 >> 2] = HEAPU8[$p$08$us >> 0];
__gcry_log_printf(21848, $vararg_buffer8);
if (!$16) break L6; else {
$16 = $16 + -1 | 0;
$p$08$us = $p$08$us + 1 | 0;
}
}
} else {
$22 = $10;
$cnt$07 = 0;
$p$08 = $buffer;
}
while (1) {
HEAP32[$vararg_buffer11 >> 2] = HEAPU8[$p$08 >> 0];
__gcry_log_printf(21848, $vararg_buffer11);
$20 = $cnt$07 + 1 | 0;
if (($22 | 0) != 0 & ($20 | 0) == 32) {
__gcry_log_printf(21853, $vararg_buffer14);
$24 = _strlen($text) | 0;
$25 = _strlen($$06) | 0;
HEAP32[$vararg_buffer16 >> 2] = $24;
HEAP32[$vararg_buffer16 + 4 >> 2] = 75759;
HEAP32[$vararg_buffer16 + 8 >> 2] = $25;
HEAP32[$vararg_buffer16 + 12 >> 2] = 75759;
__gcry_log_debug(21857, $vararg_buffer16);
$cnt$1 = 0;
} else $cnt$1 = $20;
if (!$22) break; else {
$22 = $22 + -1 | 0;
$cnt$07 = $cnt$1;
$p$08 = $p$08 + 1 | 0;
}
}
} while (0);
if (!$0) {
STACKTOP = sp;
return;
}
__gcry_log_printf(22019, $vararg_buffer22);
STACKTOP = sp;
return;
}
function __gcry_private_realloc($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $$1 = 0, $$sink = 0, $19 = 0, $33 = 0, $40 = 0, $42 = 0, $5 = 0, $55 = 0, $67 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17491] | 0)) if (!(__gcry_private_is_secure($a) | 0)) {
$$1 = _realloc($a, $n) | 0;
STACKTOP = sp;
return $$1 | 0;
} else {
$$1 = __gcry_secmem_realloc($a, $n) | 0;
STACKTOP = sp;
return $$1 | 0;
}
if (!$a) {
if (!$n) {
_gpg_err_set_errno(22);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$5 = _malloc($n + 5 | 0) | 0;
if (!$5) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
HEAP8[$5 >> 0] = $n;
HEAP8[$5 + 1 >> 0] = $n >>> 8;
HEAP8[$5 + 2 >> 0] = $n >>> 16;
HEAP8[$5 + 3 >> 0] = 85;
HEAP8[$5 + ($n + 4) >> 0] = -86;
$$1 = $5 + 4 | 0;
STACKTOP = sp;
return $$1 | 0;
}
$19 = HEAP8[$a + -1 >> 0] | 0;
switch ($19 << 24 >> 24) {
case -52:
case 85:
break;
default:
{
HEAP32[$vararg_buffer >> 2] = $a;
HEAP32[$vararg_buffer + 4 >> 2] = $19 & 255;
__gcry_log_fatal(22506, $vararg_buffer);
}
}
$33 = HEAPU8[$a + -3 >> 0] << 8 | HEAPU8[$a + -4 >> 0] | HEAPU8[$a + -2 >> 0] << 16;
if ((HEAP8[$a + $33 >> 0] | 0) != -86) {
HEAP32[$vararg_buffer2 >> 2] = $a;
HEAP32[$vararg_buffer2 + 4 >> 2] = $19 & 255;
__gcry_log_fatal(22547, $vararg_buffer2);
}
if ($33 >>> 0 >= $n >>> 0) {
$$1 = $a;
STACKTOP = sp;
return $$1 | 0;
}
$40 = ($n | 0) == 0;
do if ($19 << 24 >> 24 == -52) {
if ($40) {
_gpg_err_set_errno(22);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$42 = __gcry_secmem_malloc($n + 5 | 0) | 0;
if (!$42) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
} else {
HEAP8[$42 >> 0] = $n;
HEAP8[$42 + 1 >> 0] = $n >>> 8;
HEAP8[$42 + 2 >> 0] = $n >>> 16;
HEAP8[$42 + 3 >> 0] = -52;
HEAP8[$42 + ($n + 4) >> 0] = -86;
$$sink = $42;
break;
}
} else {
if ($40) {
_gpg_err_set_errno(22);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$55 = _malloc($n + 5 | 0) | 0;
if (!$55) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
} else {
HEAP8[$55 >> 0] = $n;
HEAP8[$55 + 1 >> 0] = $n >>> 8;
HEAP8[$55 + 2 >> 0] = $n >>> 16;
HEAP8[$55 + 3 >> 0] = 85;
HEAP8[$55 + ($n + 4) >> 0] = -86;
$$sink = $55;
break;
}
} while (0);
$67 = $$sink + 4 | 0;
_memcpy($67 | 0, $a | 0, $33 | 0) | 0;
_memset($67 + $33 | 0, 0, $n - $33 | 0) | 0;
__gcry_private_free($a);
$$1 = $67;
STACKTOP = sp;
return $$1 | 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, $13 = 0, $15 = 0, $17 = 0, $20 = 0, $26 = 0, $27 = 0, $32 = 0, $4 = 0, $5 = 0, $8 = 0, $9 = 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;
$0 = $c & 255;
$4 = ($n | 0) != 0;
L1 : do if ($4 & ($src & 3 | 0) != 0) {
$5 = $c & 255;
$$019 = $n;
$s$020 = $src;
while (1) {
if ((HEAP8[$s$020 >> 0] | 0) == $5 << 24 >> 24) {
$$0$lcssa30 = $$019;
$s$0$lcssa29 = $s$020;
label = 6;
break L1;
}
$8 = $s$020 + 1 | 0;
$9 = $$019 + -1 | 0;
$13 = ($9 | 0) != 0;
if ($13 & ($8 & 3 | 0) != 0) {
$$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) {
$15 = $c & 255;
if ((HEAP8[$s$0$lcssa29 >> 0] | 0) == $15 << 24 >> 24) {
$$3 = $$0$lcssa30;
$s$2 = $s$0$lcssa29;
} else {
$17 = Math_imul($0, 16843009) | 0;
L11 : do if ($$0$lcssa30 >>> 0 > 3) {
$$110 = $$0$lcssa30;
$w$011 = $s$0$lcssa29;
while (1) {
$20 = HEAP32[$w$011 >> 2] ^ $17;
if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) {
$$110$lcssa = $$110;
$w$011$lcssa = $w$011;
break;
}
$26 = $w$011 + 4 | 0;
$27 = $$110 + -4 | 0;
if ($27 >>> 0 > 3) {
$$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) if (!$$1$lcssa) {
$$3 = 0;
$s$2 = $w$0$lcssa;
break;
} else {
$$24 = $$1$lcssa;
$s$15 = $w$0$lcssa;
}
while (1) {
if ((HEAP8[$s$15 >> 0] | 0) == $15 << 24 >> 24) {
$$3 = $$24;
$s$2 = $s$15;
break L8;
}
$32 = $s$15 + 1 | 0;
$$24 = $$24 + -1 | 0;
if (!$$24) {
$$3 = 0;
$s$2 = $32;
break;
} else $s$15 = $32;
}
}
} while (0);
return (($$3 | 0) != 0 ? $s$2 : 0) | 0;
}
function __gcry_mpi_snatch($w, $u) {
$w = $w | 0;
$u = $u | 0;
var $1 = 0, $12 = 0, $17 = 0, $18 = 0, $25 = 0, $26 = 0, $27 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $_vlen$0$lcssa$i$i = 0, $_vlen$05$i$i = 0, $_vlen$1$i$i = 0, $_vlen$3$ph$i$i = 0, $_vlen$33$i$i = 0, $_vptr$0$lcssa$i$i = 0, $_vptr$06$i$i = 0, $_vptr$1$i$i = 0, $_vptr$3$ph$i$i = 0, $_vptr$34$i$i = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if ($w) {
$1 = $w + 12 | 0;
if (HEAP32[$1 >> 2] & 16) {
__gcry_log_info(45711, $vararg_buffer);
STACKTOP = sp;
return;
}
$5 = $u + 16 | 0;
$6 = HEAP32[$5 >> 2] | 0;
$7 = HEAP32[$u >> 2] | 0;
$8 = $w + 16 | 0;
$9 = HEAP32[$8 >> 2] | 0;
if ($9) {
$12 = HEAP32[$w >> 2] << 2;
if ($12) {
if (!($9 & 7)) {
$_vlen$0$lcssa$i$i = $12;
$_vptr$0$lcssa$i$i = $9;
} else {
$_vlen$05$i$i = $12;
$_vptr$06$i$i = $9;
while (1) {
HEAP8[$_vptr$06$i$i >> 0] = 0;
$17 = $_vptr$06$i$i + 1 | 0;
$18 = $_vlen$05$i$i + -1 | 0;
if (($18 | 0) != 0 & ($17 & 7 | 0) != 0) {
$_vlen$05$i$i = $18;
$_vptr$06$i$i = $17;
} else {
$_vlen$0$lcssa$i$i = $18;
$_vptr$0$lcssa$i$i = $17;
break;
}
}
}
if ($_vlen$0$lcssa$i$i >>> 0 < 8) {
$_vlen$3$ph$i$i = $_vlen$0$lcssa$i$i;
$_vptr$3$ph$i$i = $_vptr$0$lcssa$i$i;
} else {
$25 = $_vlen$0$lcssa$i$i + -8 | 0;
$26 = $25 & -8;
$_vlen$1$i$i = $_vlen$0$lcssa$i$i;
$_vptr$1$i$i = $_vptr$0$lcssa$i$i;
while (1) {
$27 = $_vptr$1$i$i;
HEAP32[$27 >> 2] = 0;
HEAP32[$27 + 4 >> 2] = 0;
$_vlen$1$i$i = $_vlen$1$i$i + -8 | 0;
if ($_vlen$1$i$i >>> 0 <= 7) break; else $_vptr$1$i$i = $_vptr$1$i$i + 8 | 0;
}
$_vlen$3$ph$i$i = $25 - $26 | 0;
$_vptr$3$ph$i$i = $_vptr$0$lcssa$i$i + ($26 + 8) | 0;
}
if ($_vlen$3$ph$i$i) {
$_vlen$33$i$i = $_vlen$3$ph$i$i;
$_vptr$34$i$i = $_vptr$3$ph$i$i;
while (1) {
HEAP8[$_vptr$34$i$i >> 0] = 0;
$_vlen$33$i$i = $_vlen$33$i$i + -1 | 0;
if (!$_vlen$33$i$i) break; else $_vptr$34$i$i = $_vptr$34$i$i + 1 | 0;
}
}
}
__gcry_free($9);
}
HEAP32[$8 >> 2] = $6;
HEAP32[$w >> 2] = $7;
$40 = $u + 4 | 0;
HEAP32[$w + 4 >> 2] = HEAP32[$40 >> 2];
HEAP32[$w + 8 >> 2] = HEAP32[$u + 8 >> 2];
HEAP32[$1 >> 2] = HEAP32[$u + 12 >> 2];
HEAP32[$u >> 2] = 0;
HEAP32[$40 >> 2] = 0;
HEAP32[$5 >> 2] = 0;
}
__gcry_mpi_free($u);
STACKTOP = sp;
return;
}
function _es_flush($stream) {
$stream = $stream | 0;
var $0 = 0, $53 = 0, $67 = 0, $85 = 0, $89 = 0, $bytes_written = 0, $data_flushed = 0, $err = 0, $func_write = 0, $ret = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$0 = sp + 20 | 0;
$func_write = sp + 16 | 0;
$err = sp + 12 | 0;
$bytes_written = sp + 8 | 0;
$data_flushed = sp + 4 | 0;
$ret = sp;
HEAP32[$0 >> 2] = $stream;
HEAP32[$func_write >> 2] = HEAP32[(HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1108 >> 2];
if (!((HEAP32[HEAP32[$0 >> 2] >> 2] | 0) >>> 16 & 1)) ___assert_fail(52804, 52785, 1654, 52826);
do if (HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] | 0) {
if (!(HEAP32[$func_write >> 2] | 0)) {
HEAP32[$err >> 2] = 95;
break;
}
HEAP32[$data_flushed >> 2] = 0;
HEAP32[$err >> 2] = 0;
do {
if (((HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] | 0) - (HEAP32[$data_flushed >> 2] | 0) | 0) <= 0) break;
if (!((HEAP32[$err >> 2] | 0) != 0 ^ 1)) break;
HEAP32[$ret >> 2] = FUNCTION_TABLE_iiii[HEAP32[$func_write >> 2] & 63](HEAP32[(HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1084 >> 2] | 0, (HEAP32[(HEAP32[$0 >> 2] | 0) + 4 >> 2] | 0) + (HEAP32[$data_flushed >> 2] | 0) | 0, (HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] | 0) - (HEAP32[$data_flushed >> 2] | 0) | 0) | 0;
if ((HEAP32[$ret >> 2] | 0) == -1) {
HEAP32[$bytes_written >> 2] = 0;
HEAP32[$err >> 2] = -1;
} else HEAP32[$bytes_written >> 2] = HEAP32[$ret >> 2];
HEAP32[$data_flushed >> 2] = (HEAP32[$data_flushed >> 2] | 0) + (HEAP32[$bytes_written >> 2] | 0);
} while ((HEAP32[$err >> 2] | 0) == 0);
$53 = (HEAP32[$0 >> 2] | 0) + 20 | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + (HEAP32[$data_flushed >> 2] | 0);
if ((HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] | 0) == (HEAP32[$data_flushed >> 2] | 0)) {
$67 = (HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1100 | 0;
HEAP32[$67 >> 2] = (HEAP32[$67 >> 2] | 0) + (HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] | 0);
HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] = 0;
HEAP32[(HEAP32[$0 >> 2] | 0) + 20 >> 2] = 0;
FUNCTION_TABLE_iiii[HEAP32[$func_write >> 2] & 63](HEAP32[(HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1084 >> 2] | 0, 0, 0) | 0;
}
} else HEAP32[$err >> 2] = 0; while (0);
if (!(HEAP32[$err >> 2] | 0)) {
$89 = HEAP32[$err >> 2] | 0;
STACKTOP = sp;
return $89 | 0;
}
$85 = (HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1136 | 0;
HEAP8[$85 >> 0] = HEAP8[$85 >> 0] & -2 | 1;
$89 = HEAP32[$err >> 2] | 0;
STACKTOP = sp;
return $89 | 0;
}
function _get_random($buffer, $length, $rng_ctx) {
$buffer = $buffer | 0;
$length = $length | 0;
$rng_ctx = $rng_ctx | 0;
var $10 = 0, $13 = 0, $27 = 0, $31 = 0, $4 = 0, $7 = 0, $storemerge = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!$buffer) __gcry_assert_failed(51981, 50726, 685, 52004);
if (!$rng_ctx) __gcry_assert_failed(51711, 50726, 686, 52004);
if ((HEAP8[$rng_ctx >> 0] | 0) != 17) {
HEAP32[$vararg_buffer >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer);
}
$4 = $rng_ctx + 16 | 0;
if ((HEAP8[$4 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer);
}
$7 = $rng_ctx + 33 | 0;
if ((HEAP8[$7 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer);
}
$10 = $rng_ctx + 50 | 0;
if ((HEAP8[$10 >> 0] | 0) != -4) {
HEAP32[$vararg_buffer >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer);
}
$13 = $rng_ctx + 4 | 0;
do if (!(HEAP32[$13 >> 2] | 0)) {
if ((HEAP32[17571] | 0) == ($rng_ctx | 0)) $storemerge = _x931_generate_key(1) | 0; else $storemerge = _x931_generate_key(0) | 0;
HEAP32[$13 >> 2] = $storemerge;
if (!$storemerge) __gcry_log_fatal(51773, $vararg_buffer4); else {
HEAP32[$rng_ctx + 60 >> 2] = _getpid() | 0;
break;
}
} while (0);
if (!(HEAP8[$rng_ctx + 8 >> 0] & 1)) _x931_reseed($rng_ctx);
$27 = HEAP32[$rng_ctx + 60 >> 2] | 0;
if (($27 | 0) == (_getpid() | 0)) {
$31 = HEAP32[$rng_ctx + 64 >> 2] | 0;
if (($31 | 0) == (_getpid() | 0)) {
if (_x931_aes_driver($buffer, $length, $rng_ctx) | 0) __gcry_log_fatal(51773, $vararg_buffer4);
if ((HEAP8[$rng_ctx >> 0] | 0) != 17) {
HEAP32[$vararg_buffer1 >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$4 >> 0] | 0) != 42) {
HEAP32[$vararg_buffer1 >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$7 >> 0] | 0) != -119) {
HEAP32[$vararg_buffer1 >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer1);
}
if ((HEAP8[$10 >> 0] | 0) == -4) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = $rng_ctx;
__gcry_log_fatal(50828, $vararg_buffer1);
}
}
}
__gcry_fips_signal_error(50726, 714, 52004, 0, 51719);
__gcry_log_fatal(51773, $vararg_buffer4);
}
function _GNUNET_CRYPTO_mpi_print_unsigned($buf, $size, $val) {
$buf = $buf | 0;
$size = $size | 0;
$val = $val | 0;
var $12 = 0, $17 = 0, $2 = 0, $25 = 0, $32 = 0, $34 = 0, $nbits = 0, $rsize = 0, $size$ = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$rsize = sp + 36 | 0;
$nbits = sp + 32 | 0;
if (_gcry_mpi_get_flag($val, 2) | 0) {
$2 = _gcry_mpi_get_opaque($val, $nbits) | 0;
if ($2) {
$12 = ((HEAP32[$nbits >> 2] | 0) + 7 | 0) >>> 3;
$size$ = $12 >>> 0 > $size >>> 0 ? $size : $12;
HEAP32[$rsize >> 2] = $size$;
_memcpy($buf | 0, $2 | 0, $size$ | 0) | 0;
if ($size$ >>> 0 < $size >>> 0) _memset($buf + $size$ | 0, 0, $size - $size$ | 0) | 0;
STACKTOP = sp;
return;
}
if ((HEAP32[226] | 0) == -1) HEAP32[226] = _GNUNET_get_log_call_status(1, 0, 20211, 20224, 89) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[226] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20211;
HEAP32[$vararg_buffer + 4 >> 2] = 89;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
HEAP32[$rsize >> 2] = $size;
$17 = _gcry_mpi_print(5, $buf, $size, $rsize, $val) | 0;
if (!$17) {
$32 = HEAP32[$rsize >> 2] | 0;
if ($32 >>> 0 >= $size >>> 0) {
STACKTOP = sp;
return;
}
$34 = $size - $32 | 0;
_memmove($buf + $34 | 0, $buf | 0, $32 | 0) | 0;
_memset($buf | 0, 0, $34 | 0) | 0;
STACKTOP = sp;
return;
}
if ((HEAP32[227] | 0) == -1) HEAP32[227] = _GNUNET_get_log_call_status(1, 20654, 20211, 20224, 110) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[227] | 0) {
$25 = _gcry_strerror($17) | 0;
HEAP32[$vararg_buffer2 >> 2] = 20294;
HEAP32[$vararg_buffer2 + 4 >> 2] = 20211;
HEAP32[$vararg_buffer2 + 8 >> 2] = 110;
HEAP32[$vararg_buffer2 + 12 >> 2] = $25;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer2);
}
if ((HEAP32[228] | 0) == -1) HEAP32[228] = _GNUNET_get_log_call_status(1, 0, 20211, 20224, 111) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[228] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer8 >> 2] = 20211;
HEAP32[$vararg_buffer8 + 4 >> 2] = 111;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer8);
_GNUNET_abort_();
}
function __gcry_ecc_eddsa_ensure_compact($value, $nbits) {
$value = $value | 0;
$nbits = $nbits | 0;
var $$0 = 0, $$0$i = 0, $14 = 0, $17 = 0, $21 = 0, $23 = 0, $25 = 0, $28 = 0, $32 = 0, $33 = 0, $36 = 0, $41 = 0, $5 = 0, $8 = 0, $9 = 0, $enclen$0 = 0, $rawmpilen = 0, $rawmpilen$i = 0, $x = 0, $y = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rawmpilen$i = sp + 12 | 0;
$rawmpilen = sp + 8 | 0;
$x = sp + 4 | 0;
$y = sp;
if (!$value) {
$$0 = 65;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[$value + 12 >> 2] & 4)) {
$$0 = 65;
STACKTOP = sp;
return $$0 | 0;
}
$5 = __gcry_mpi_get_opaque($value, $rawmpilen) | 0;
if (!$5) {
$$0 = 65;
STACKTOP = sp;
return $$0 | 0;
}
$8 = (HEAP32[$rawmpilen >> 2] | 0) + 7 | 0;
$9 = $8 >>> 3;
HEAP32[$rawmpilen >> 2] = $9;
if ($8 >>> 0 < 16 | ($9 & 1 | 0) == 0) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
switch (HEAP8[$5 >> 0] | 0) {
case 4:
{
$14 = $5 + 1 | 0;
$17 = __gcry_mpi_scan($x, 1, $14, ($9 + -1 | 0) >>> 1, 0) | 0;
if ($17) {
$$0 = $17;
STACKTOP = sp;
return $$0 | 0;
}
$21 = ((HEAP32[$rawmpilen >> 2] | 0) + -1 | 0) >>> 1;
$23 = __gcry_mpi_scan($y, 1, $14 + $21 | 0, $21, 0) | 0;
$25 = HEAP32[$x >> 2] | 0;
if ($23) {
__gcry_mpi_free($25);
$$0 = $23;
STACKTOP = sp;
return $$0 | 0;
}
$28 = __gcry_mpi_get_buffer_extra(HEAP32[$y >> 2] | 0, $nbits >>> 3, 0, $rawmpilen$i, 0) | 0;
if (!$28) {
$$0$i = _gpg_err_code_from_syserror() | 0;
$enclen$0 = 0;
} else {
$32 = (__gcry_mpi_test_bit($25, 0) | 0) != 0;
$33 = HEAP32[$rawmpilen$i >> 2] | 0;
if ($32 & ($33 | 0) != 0) {
$36 = $28 + ($33 + -1) | 0;
HEAP8[$36 >> 0] = HEAPU8[$36 >> 0] | 128;
$41 = HEAP32[$rawmpilen$i >> 2] | 0;
} else $41 = $33;
$$0$i = 0;
$enclen$0 = $41 << 3;
}
__gcry_mpi_free(HEAP32[$x >> 2] | 0);
__gcry_mpi_free(HEAP32[$y >> 2] | 0);
if ($$0$i) {
$$0 = $$0$i;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_mpi_set_opaque($value, $28, $enclen$0) | 0;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
case 64:
{
if (__gcry_mpi_set_opaque_copy($value, $5 + 1 | 0, ($9 << 3) + -8 | 0) | 0) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
default:
{
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
}
return 0;
}
function ___fdopen($fd, $mode) {
$fd = $fd | 0;
$mode = $mode | 0;
var $$0 = 0, $0 = 0, $12 = 0, $14 = 0, $19 = 0, $24 = 0, $26 = 0, $37 = 0, $4 = 0, $tio = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$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;
if (!(_memchr(62835, $0 << 24 >> 24, 4) | 0)) {
HEAP32[(___errno_location() | 0) >> 2] = 22;
$$0 = 0;
} else {
$4 = _malloc(1144) | 0;
if (!$4) $$0 = 0; else {
dest = $4;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
if (!(_strchr($mode, 43) | 0)) HEAP32[$4 >> 2] = $0 << 24 >> 24 == 114 ? 8 : 4;
if (!(_strchr($mode, 101) | 0)) $12 = $0; else {
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = 2;
HEAP32[$vararg_buffer + 8 >> 2] = 1;
___syscall221(221, $vararg_buffer | 0) | 0;
$12 = HEAP8[$mode >> 0] | 0;
}
if ($12 << 24 >> 24 == 97) {
HEAP32[$vararg_buffer3 >> 2] = $fd;
HEAP32[$vararg_buffer3 + 4 >> 2] = 3;
$14 = ___syscall221(221, $vararg_buffer3 | 0) | 0;
if (!($14 & 1024)) {
HEAP32[$vararg_buffer7 >> 2] = $fd;
HEAP32[$vararg_buffer7 + 4 >> 2] = 4;
HEAP32[$vararg_buffer7 + 8 >> 2] = $14 | 1024;
___syscall221(221, $vararg_buffer7 | 0) | 0;
}
$19 = HEAP32[$4 >> 2] | 128;
HEAP32[$4 >> 2] = $19;
$26 = $19;
} else $26 = HEAP32[$4 >> 2] | 0;
HEAP32[$4 + 60 >> 2] = $fd;
HEAP32[$4 + 44 >> 2] = $4 + 120;
HEAP32[$4 + 48 >> 2] = 1024;
$24 = $4 + 75 | 0;
HEAP8[$24 >> 0] = -1;
if (!($26 & 8)) {
HEAP32[$vararg_buffer12 >> 2] = $fd;
HEAP32[$vararg_buffer12 + 4 >> 2] = 21505;
HEAP32[$vararg_buffer12 + 8 >> 2] = $tio;
if (!(___syscall54(54, $vararg_buffer12 | 0) | 0)) HEAP8[$24 >> 0] = 10;
}
HEAP32[$4 + 32 >> 2] = 35;
HEAP32[$4 + 36 >> 2] = 26;
HEAP32[$4 + 40 >> 2] = 25;
HEAP32[$4 + 12 >> 2] = 10;
if (!(HEAP32[17592] | 0)) HEAP32[$4 + 76 >> 2] = -1;
___lock(70392);
$37 = HEAP32[17597] | 0;
HEAP32[$4 + 56 >> 2] = $37;
if ($37) HEAP32[$37 + 52 >> 2] = $4;
HEAP32[17597] = $4;
___unlock(70392);
$$0 = $4;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _x931_reseed($rng_ctx) {
$rng_ctx = $rng_ctx | 0;
var $$lcssa = 0, $$lcssa6 = 0, $11 = 0, $15 = 0, $16 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $38 = 0, $4 = 0, $6 = 0, $_vlen$0$lcssa15$i = 0, $_vlen$05$i = 0, $_vlen$1$i = 0, $_vlen$3$ph$i = 0, $_vlen$33$i = 0, $_vptr$0$lcssa14$i = 0, $_vptr$06$i = 0, $_vptr$1$i = 0, $_vptr$3$ph$i = 0, $_vptr$34$i = 0, dest = 0, label = 0, src = 0, stop = 0;
if (!(HEAP32[17569] | 0)) __gcry_assert_failed(51407, 50726, 658, 51593);
$4 = $rng_ctx + 17 | 0;
if ((HEAP32[17571] | 0) == ($rng_ctx | 0)) {
_get_random($4, 16, HEAP32[17572] | 0);
$6 = $rng_ctx + 8 | 0;
HEAP8[$6 >> 0] = HEAP8[$6 >> 0] | 1;
HEAP32[$rng_ctx + 64 >> 2] = _getpid() | 0;
return;
}
$11 = _get_entropy() | 0;
dest = $4;
src = $11;
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));
if (!($11 & 7)) {
$_vlen$0$lcssa15$i = 16;
$_vptr$0$lcssa14$i = $11;
label = 8;
} else {
$_vlen$05$i = 16;
$_vptr$06$i = $11;
while (1) {
HEAP8[$_vptr$06$i >> 0] = 0;
$15 = $_vptr$06$i + 1 | 0;
$16 = $_vlen$05$i + -1 | 0;
if (($16 | 0) != 0 & ($15 & 7 | 0) != 0) {
$_vlen$05$i = $16;
$_vptr$06$i = $15;
} else {
$$lcssa = $15;
$$lcssa6 = $16;
break;
}
}
if ($$lcssa6 >>> 0 < 8) {
$_vlen$3$ph$i = $$lcssa6;
$_vptr$3$ph$i = $$lcssa;
} else {
$_vlen$0$lcssa15$i = $$lcssa6;
$_vptr$0$lcssa14$i = $$lcssa;
label = 8;
}
}
if ((label | 0) == 8) {
$23 = $_vlen$0$lcssa15$i + -8 | 0;
$24 = $23 & -8;
$25 = $24 + 8 | 0;
$_vlen$1$i = $_vlen$0$lcssa15$i;
$_vptr$1$i = $_vptr$0$lcssa14$i;
while (1) {
$26 = $_vptr$1$i;
HEAP32[$26 >> 2] = 0;
HEAP32[$26 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$ph$i = $23 - $24 | 0;
$_vptr$3$ph$i = $_vptr$0$lcssa14$i + $25 | 0;
}
if ($_vlen$3$ph$i) {
$_vlen$33$i = $_vlen$3$ph$i;
$_vptr$34$i = $_vptr$3$ph$i;
while (1) {
HEAP8[$_vptr$34$i >> 0] = 0;
$_vlen$33$i = $_vlen$33$i + -1 | 0;
if (!$_vlen$33$i) break; else $_vptr$34$i = $_vptr$34$i + 1 | 0;
}
}
__gcry_free($11);
$38 = $rng_ctx + 8 | 0;
HEAP8[$38 >> 0] = HEAP8[$38 >> 0] | 1;
HEAP32[$rng_ctx + 64 >> 2] = _getpid() | 0;
return;
}
function __gcry_mpi_copy($a) {
$a = $a | 0;
var $$pre$phi4Z2D = 0, $$pre$phi6Z2D = 0, $$pre$phi8Z2D = 0, $1 = 0, $12 = 0, $15 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0, $51 = 0, $55 = 0, $8 = 0, $9 = 0, $b$0 = 0, $i$03 = 0;
if (!$a) {
$b$0 = 0;
return $b$0 | 0;
}
$1 = $a + 12 | 0;
$2 = HEAP32[$1 >> 2] | 0;
if ($2 & 4) {
$5 = $a + 16 | 0;
$8 = (__gcry_is_secure(HEAP32[$5 >> 2] | 0) | 0) == 0;
$9 = $a + 8 | 0;
$12 = ((HEAP32[$9 >> 2] | 0) + 7 | 0) / 8 | 0;
if ($8) $20 = __gcry_xmalloc($12) | 0; else $20 = __gcry_xmalloc_secure($12) | 0;
$15 = HEAP32[$5 >> 2] | 0;
if (!$15) $21 = HEAP32[$9 >> 2] | 0; else {
$17 = HEAP32[$9 >> 2] | 0;
_memcpy($20 | 0, $15 | 0, ($17 + 7 | 0) / 8 | 0 | 0) | 0;
$21 = $17;
}
$22 = __gcry_mpi_set_opaque(0, $20, $21) | 0;
$23 = $22 + 12 | 0;
HEAP32[$23 >> 2] = HEAP32[$23 >> 2] & -49;
$b$0 = $22;
return $b$0 | 0;
}
$28 = $a + 4 | 0;
$29 = HEAP32[$28 >> 2] | 0;
$30 = __gcry_xmalloc(20) | 0;
$31 = ($29 | 0) == 0;
if (!($2 & 1)) {
if ($31) $40 = 0; else $40 = __gcry_xmalloc($29 << 2) | 0;
HEAP32[$30 + 16 >> 2] = $40;
HEAP32[$30 >> 2] = $29;
$41 = $30 + 4 | 0;
HEAP32[$41 >> 2] = 0;
$42 = $30 + 8 | 0;
HEAP32[$42 >> 2] = 0;
$43 = $30 + 12 | 0;
HEAP32[$43 >> 2] = 0;
$$pre$phi4Z2D = $41;
$$pre$phi6Z2D = $42;
$$pre$phi8Z2D = $43;
$55 = $40;
} else {
if ($31) $34 = 0; else $34 = __gcry_xmalloc_secure($29 << 2) | 0;
HEAP32[$30 + 16 >> 2] = $34;
HEAP32[$30 >> 2] = $29;
$35 = $30 + 12 | 0;
HEAP32[$35 >> 2] = 1;
$36 = $30 + 4 | 0;
HEAP32[$36 >> 2] = 0;
$37 = $30 + 8 | 0;
HEAP32[$37 >> 2] = 0;
$$pre$phi4Z2D = $36;
$$pre$phi6Z2D = $37;
$$pre$phi8Z2D = $35;
$55 = $34;
}
$44 = HEAP32[$28 >> 2] | 0;
HEAP32[$$pre$phi4Z2D >> 2] = $44;
HEAP32[$$pre$phi6Z2D >> 2] = HEAP32[$a + 8 >> 2];
HEAP32[$$pre$phi8Z2D >> 2] = HEAP32[$1 >> 2] & -49;
if (($44 | 0) <= 0) {
$b$0 = $30;
return $b$0 | 0;
}
$51 = HEAP32[$a + 16 >> 2] | 0;
$i$03 = 0;
do {
HEAP32[$55 + ($i$03 << 2) >> 2] = HEAP32[$51 + ($i$03 << 2) >> 2];
$i$03 = $i$03 + 1 | 0;
} while (($i$03 | 0) < ($44 | 0));
$b$0 = $30;
return $b$0 | 0;
}
function _open_device($name, $retry) {
$name = $name | 0;
$retry = $retry | 0;
var $$lcssa8 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer8 = 0, $vararg_ptr7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer14 = sp + 48 | 0;
$vararg_buffer11 = sp + 40 | 0;
$vararg_buffer8 = sp + 32 | 0;
$vararg_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = ($retry | 0) != 0;
do if ($0) {
__gcry_random_progress(52234, 88, 1, 0);
$3 = _open($name, 0, $vararg_buffer1) | 0;
$4 = ($3 | 0) == -1;
if ($0 & $4) {
$5 = $vararg_buffer1 + 4 | 0;
do {
HEAP32[$vararg_buffer1 >> 2] = 5;
HEAP32[$5 >> 2] = 0;
__gcry_random_progress(52250, 88, 0, 5);
_select(0, 0, 0, 0, $vararg_buffer1) | 0;
$6 = _open($name, 0, $vararg_buffer3) | 0;
} while (($6 | 0) == -1);
$$lcssa8 = $6;
} else {
if (!$4) {
$$lcssa8 = $3;
break;
}
$8 = ___errno_location() | 0;
$9 = HEAP32[$8 >> 2] | 0;
$10 = _strerror($9) | 0;
HEAP32[$vararg_buffer5 >> 2] = $name;
$vararg_ptr7 = $vararg_buffer5 + 4 | 0;
HEAP32[$vararg_ptr7 >> 2] = $10;
__gcry_log_fatal(52266, $vararg_buffer5);
}
} else {
$1 = _open($name, 0, $vararg_buffer) | 0;
if (($1 | 0) == -1) {
$8 = ___errno_location() | 0;
$9 = HEAP32[$8 >> 2] | 0;
$10 = _strerror($9) | 0;
HEAP32[$vararg_buffer5 >> 2] = $name;
$vararg_ptr7 = $vararg_buffer5 + 4 | 0;
HEAP32[$vararg_ptr7 >> 2] = $10;
__gcry_log_fatal(52266, $vararg_buffer5);
} else $$lcssa8 = $1;
} while (0);
HEAP32[$vararg_buffer8 >> 2] = 0;
$11 = _fcntl($$lcssa8, 1, $vararg_buffer8) | 0;
if (($11 | 0) >= 0) {
HEAP32[$vararg_buffer11 >> 2] = $11 | 1;
if (!(_fcntl($$lcssa8, 2, $vararg_buffer11) | 0)) {
STACKTOP = sp;
return $$lcssa8 | 0;
}
}
$18 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer14 >> 2] = $$lcssa8;
HEAP32[$vararg_buffer14 + 4 >> 2] = $18;
__gcry_log_error(52285, $vararg_buffer14);
STACKTOP = sp;
return $$lcssa8 | 0;
}
function __gcry_ecc_os2ec($result, $value) {
$result = $result | 0;
$value = $value | 0;
var $$1 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $20 = 0, $23 = 0, $24 = 0, $25 = 0, $27 = 0, $29 = 0, $5 = 0, $9 = 0, $buf$0 = 0, $buf_memory$1 = 0, $n = 0, $nbits = 0, $x = 0, $y = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$n = sp + 12 | 0;
$x = sp + 8 | 0;
$y = sp + 4 | 0;
$nbits = sp;
do if (!$value) label = 6; else if (!(HEAP32[$value + 12 >> 2] & 4)) label = 6; else {
$5 = __gcry_mpi_get_opaque($value, $nbits) | 0;
if ($5) {
$9 = ((HEAP32[$nbits >> 2] | 0) + 7 | 0) >>> 3;
HEAP32[$n >> 2] = $9;
$16 = $9;
$buf$0 = $5;
$buf_memory$1 = 0;
break;
}
$$1 = 65;
STACKTOP = sp;
return $$1 | 0;
} while (0);
do if ((label | 0) == 6) {
$12 = ((__gcry_mpi_get_nbits($value) | 0) + 7 | 0) >>> 3;
HEAP32[$n >> 2] = $12;
$13 = __gcry_xmalloc($12) | 0;
$14 = __gcry_mpi_print(5, $13, $12, $n, $value) | 0;
if (!$14) {
$16 = HEAP32[$n >> 2] | 0;
$buf$0 = $13;
$buf_memory$1 = $13;
break;
}
__gcry_free($13);
$$1 = $14;
STACKTOP = sp;
return $$1 | 0;
} while (0);
if (!$16) {
__gcry_free($buf_memory$1);
$$1 = 65;
STACKTOP = sp;
return $$1 | 0;
}
if ((HEAP8[$buf$0 >> 0] | 0) != 4) {
__gcry_free($buf_memory$1);
$$1 = 69;
STACKTOP = sp;
return $$1 | 0;
}
$20 = $16 + -1 | 0;
if ($20 & 1) {
__gcry_free($buf_memory$1);
$$1 = 65;
STACKTOP = sp;
return $$1 | 0;
}
$23 = $20 >>> 1;
HEAP32[$n >> 2] = $23;
$24 = $buf$0 + 1 | 0;
$25 = __gcry_mpi_scan($x, 5, $24, $23, 0) | 0;
if ($25) {
__gcry_free($buf_memory$1);
$$1 = $25;
STACKTOP = sp;
return $$1 | 0;
}
$27 = HEAP32[$n >> 2] | 0;
$29 = __gcry_mpi_scan($y, 5, $24 + $27 | 0, $27, 0) | 0;
__gcry_free($buf_memory$1);
if (!$29) {
__gcry_mpi_set(HEAP32[$result >> 2] | 0, HEAP32[$x >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$result + 4 >> 2] | 0, HEAP32[$y >> 2] | 0) | 0;
__gcry_mpi_set_ui(HEAP32[$result + 8 >> 2] | 0, 1) | 0;
__gcry_mpi_free(HEAP32[$x >> 2] | 0);
__gcry_mpi_free(HEAP32[$y >> 2] | 0);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
} else {
__gcry_mpi_free(HEAP32[$x >> 2] | 0);
$$1 = $29;
STACKTOP = sp;
return $$1 | 0;
}
return 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, $23 = 0, $26 = 0, $27 = 0, $28 = 0, $32 = 0, $data = 0, $n = 0, $ne = 0, $rsize = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$data = sp + 32 | 0;
$ne = sp + 24 | 0;
$rsize = sp + 20 | 0;
$n = sp + 16 | 0;
if (_key_from_sexp_125($ne, HEAP32[$pkey >> 2] | 0, 37336, 38723) | 0) if (_key_from_sexp_125($ne, HEAP32[$pkey >> 2] | 0, 40355, 38723) | 0) {
if ((HEAP32[244] | 0) == -1) HEAP32[244] = _GNUNET_get_log_call_status(1, 0, 20567, 21032, 662) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[244] | 0) {
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 662;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
}
HEAP32[$buffer >> 2] = 0;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(_gcry_mpi_scan($data, 5, $hash, 64, $rsize) | 0)) {
$23 = _gcry_mpi_new(0) | 0;
$26 = HEAP32[$ne + 4 >> 2] | 0;
$27 = HEAP32[$ne >> 2] | 0;
_gcry_mpi_powm($23, HEAP32[$bkey >> 2] | 0, $26, $27);
$28 = _gcry_mpi_new(0) | 0;
_gcry_mpi_mulm($28, HEAP32[$data >> 2] | 0, $23, $27);
_gcry_mpi_release(HEAP32[$data >> 2] | 0);
_gcry_mpi_release($27);
_gcry_mpi_release($26);
_gcry_mpi_release($23);
_gcry_mpi_print(5, 0, 0, $n, $28) | 0;
$32 = _GNUNET_xmalloc_(HEAP32[$n >> 2] | 0, 20567, 698) | 0;
_gcry_mpi_print(5, $32, HEAP32[$n >> 2] | 0, $rsize, $28) | 0;
_gcry_mpi_release($28);
HEAP32[$buffer >> 2] = $32;
$$0 = HEAP32[$n >> 2] | 0;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[245] | 0) == -1) HEAP32[245] = _GNUNET_get_log_call_status(1, 0, 20567, 21032, 672) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[245] | 0) {
HEAP32[$vararg_buffer2 >> 2] = 20567;
HEAP32[$vararg_buffer2 + 4 >> 2] = 672;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
}
_gcry_mpi_release(HEAP32[$ne >> 2] | 0);
_gcry_mpi_release(HEAP32[$ne + 4 >> 2] | 0);
HEAP32[$buffer >> 2] = 0;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function _ocb_checksum($chksum, $plainbuf, $nblks) {
$chksum = $chksum | 0;
$plainbuf = $plainbuf | 0;
$nblks = $nblks | 0;
var $$012 = 0, $$03 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
if (!$nblks) return;
$1 = $chksum;
$2 = $chksum + 4 | 0;
$3 = $chksum + 8 | 0;
$4 = $chksum + 12 | 0;
$5 = $chksum + 1 | 0;
$6 = $chksum + 2 | 0;
$7 = $chksum + 3 | 0;
$8 = $chksum + 4 | 0;
$9 = $chksum + 5 | 0;
$10 = $chksum + 6 | 0;
$11 = $chksum + 7 | 0;
$12 = $chksum + 8 | 0;
$13 = $chksum + 9 | 0;
$14 = $chksum + 10 | 0;
$15 = $chksum + 11 | 0;
$16 = $chksum + 12 | 0;
$17 = $chksum + 13 | 0;
$18 = $chksum + 14 | 0;
$19 = $chksum + 15 | 0;
$$012 = $plainbuf;
$$03 = $nblks;
while (1) {
if (!(($$012 | $1) & 3)) {
HEAP32[$chksum >> 2] = HEAP32[$chksum >> 2] ^ HEAP32[$$012 >> 2];
HEAP32[$2 >> 2] = HEAP32[$2 >> 2] ^ HEAP32[$$012 + 4 >> 2];
HEAP32[$3 >> 2] = HEAP32[$3 >> 2] ^ HEAP32[$$012 + 8 >> 2];
HEAP32[$4 >> 2] = HEAP32[$4 >> 2] ^ HEAP32[$$012 + 12 >> 2];
} else {
HEAP8[$chksum >> 0] = HEAP8[$chksum >> 0] ^ HEAP8[$$012 >> 0];
HEAP8[$5 >> 0] = HEAP8[$5 >> 0] ^ HEAP8[$$012 + 1 >> 0];
HEAP8[$6 >> 0] = HEAP8[$6 >> 0] ^ HEAP8[$$012 + 2 >> 0];
HEAP8[$7 >> 0] = HEAP8[$7 >> 0] ^ HEAP8[$$012 + 3 >> 0];
HEAP8[$8 >> 0] = HEAP8[$8 >> 0] ^ HEAP8[$$012 + 4 >> 0];
HEAP8[$9 >> 0] = HEAP8[$9 >> 0] ^ HEAP8[$$012 + 5 >> 0];
HEAP8[$10 >> 0] = HEAP8[$10 >> 0] ^ HEAP8[$$012 + 6 >> 0];
HEAP8[$11 >> 0] = HEAP8[$11 >> 0] ^ HEAP8[$$012 + 7 >> 0];
HEAP8[$12 >> 0] = HEAP8[$12 >> 0] ^ HEAP8[$$012 + 8 >> 0];
HEAP8[$13 >> 0] = HEAP8[$13 >> 0] ^ HEAP8[$$012 + 9 >> 0];
HEAP8[$14 >> 0] = HEAP8[$14 >> 0] ^ HEAP8[$$012 + 10 >> 0];
HEAP8[$15 >> 0] = HEAP8[$15 >> 0] ^ HEAP8[$$012 + 11 >> 0];
HEAP8[$16 >> 0] = HEAP8[$16 >> 0] ^ HEAP8[$$012 + 12 >> 0];
HEAP8[$17 >> 0] = HEAP8[$17 >> 0] ^ HEAP8[$$012 + 13 >> 0];
HEAP8[$18 >> 0] = HEAP8[$18 >> 0] ^ HEAP8[$$012 + 14 >> 0];
HEAP8[$19 >> 0] = HEAP8[$19 >> 0] ^ HEAP8[$$012 + 15 >> 0];
}
$$03 = $$03 + -1 | 0;
if (!$$03) break; else $$012 = $$012 + 16 | 0;
}
return;
}
function ___towcase($wc, $lower) {
$wc = $wc | 0;
$lower = $lower | 0;
var $$2 = 0, $$lcssa = 0, $$lcssa53 = 0, $$neg20 = 0, $$neg20$lcssa = 0, $1 = 0, $11 = 0, $2 = 0, $22 = 0, $24 = 0, $32 = 0, $33 = 0, $45 = 0, $i$029 = 0, $i$128 = 0, $i$128$lcssa = 0, label = 0;
$1 = ($lower << 1) + -1 | 0;
$2 = $lower + -1 | 0;
L1 : do if (($wc + -43008 | 0) >>> 0 < 22272 | (($wc + -11776 | 0) >>> 0 < 30784 | (($wc + -1536 | 0) >>> 0 < 2560 | (_iswalpha($wc) | 0) == 0))) $$2 = $wc; else {
$11 = ($lower | 0) != 0;
if ($11 & ($wc + -4256 | 0) >>> 0 < 46) {
if (($wc | 0) > 4293) switch ($wc | 0) {
case 4295:
case 4301:
break;
default:
{
$$2 = $wc;
break L1;
}
}
$$2 = $wc + 7264 | 0;
break;
}
if (($wc + -11520 | 0) >>> 0 < 38 & ($11 ^ 1)) {
if (($wc | 0) > 11557) switch ($wc | 0) {
case 11559:
case 11565:
break;
default:
{
$$2 = $wc;
break L1;
}
}
$$2 = $wc + -7264 | 0;
break;
} else $i$029 = 0;
do {
$32 = HEAP8[18410 + ($i$029 << 2) + 2 >> 0] | 0;
$33 = $32 << 24 >> 24;
$$neg20 = $wc - (HEAPU16[18410 + ($i$029 << 2) >> 1] | 0) | 0;
if (($$neg20 - ($33 & $2) | 0) >>> 0 < (HEAPU8[18410 + ($i$029 << 2) + 3 >> 0] | 0) >>> 0) {
$$lcssa = $32;
$$lcssa53 = $33;
$$neg20$lcssa = $$neg20;
label = 13;
break;
}
$i$029 = $i$029 + 1 | 0;
} while (($i$029 | 0) != 61);
if ((label | 0) == 13) if ($$lcssa << 24 >> 24 == 1) {
$$2 = $lower + $wc - ($$neg20$lcssa & 1) | 0;
break;
} else {
$$2 = (Math_imul($$lcssa53, $1) | 0) + $wc | 0;
break;
}
$22 = 1 - $lower | 0;
$24 = HEAP16[17918 + ($22 << 1) >> 1] | 0;
L23 : do if ($24 << 16 >> 16) {
$45 = $24;
$i$128 = 0;
while (1) {
if (($45 & 65535 | 0) == ($wc | 0)) {
$i$128$lcssa = $i$128;
break;
}
$i$128 = $i$128 + 1 | 0;
$45 = HEAP16[17918 + ($i$128 << 2) + ($22 << 1) >> 1] | 0;
if (!($45 << 16 >> 16)) break L23;
}
$$2 = HEAPU16[17918 + ($i$128$lcssa << 2) + ($lower << 1) >> 1] | 0;
break L1;
} while (0);
if (($wc + -66600 + ($lower * 40 | 0) | 0) >>> 0 < 40) $$2 = $wc + -40 + ($lower * 80 | 0) | 0; else $$2 = $wc;
} while (0);
return $$2 | 0;
}
function __gcry_mpi_free($a) {
$a = $a | 0;
var $1 = 0, $11 = 0, $16 = 0, $17 = 0, $2 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $8 = 0, $_vlen$0$lcssa$i = 0, $_vlen$05$i = 0, $_vlen$1$i = 0, $_vlen$3$ph$i = 0, $_vlen$33$i = 0, $_vptr$0$lcssa$i = 0, $_vptr$06$i = 0, $_vptr$1$i = 0, $_vptr$3$ph$i = 0, $_vptr$34$i = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (!$a) {
STACKTOP = sp;
return;
}
$1 = $a + 12 | 0;
$2 = HEAP32[$1 >> 2] | 0;
if ($2 & 32) {
STACKTOP = sp;
return;
}
$8 = HEAP32[$a + 16 >> 2] | 0;
if (!($2 & 4)) {
if ($8) {
$11 = HEAP32[$a >> 2] << 2;
if ($11) {
if (!($8 & 7)) {
$_vlen$0$lcssa$i = $11;
$_vptr$0$lcssa$i = $8;
} else {
$_vlen$05$i = $11;
$_vptr$06$i = $8;
while (1) {
HEAP8[$_vptr$06$i >> 0] = 0;
$16 = $_vptr$06$i + 1 | 0;
$17 = $_vlen$05$i + -1 | 0;
if (($17 | 0) != 0 & ($16 & 7 | 0) != 0) {
$_vlen$05$i = $17;
$_vptr$06$i = $16;
} else {
$_vlen$0$lcssa$i = $17;
$_vptr$0$lcssa$i = $16;
break;
}
}
}
if ($_vlen$0$lcssa$i >>> 0 < 8) {
$_vlen$3$ph$i = $_vlen$0$lcssa$i;
$_vptr$3$ph$i = $_vptr$0$lcssa$i;
} else {
$24 = $_vlen$0$lcssa$i + -8 | 0;
$25 = $24 & -8;
$26 = $25 + 8 | 0;
$_vlen$1$i = $_vlen$0$lcssa$i;
$_vptr$1$i = $_vptr$0$lcssa$i;
while (1) {
$27 = $_vptr$1$i;
HEAP32[$27 >> 2] = 0;
HEAP32[$27 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$ph$i = $24 - $25 | 0;
$_vptr$3$ph$i = $_vptr$0$lcssa$i + $26 | 0;
}
if ($_vlen$3$ph$i) {
$_vlen$33$i = $_vlen$3$ph$i;
$_vptr$34$i = $_vptr$3$ph$i;
while (1) {
HEAP8[$_vptr$34$i >> 0] = 0;
$_vlen$33$i = $_vlen$33$i + -1 | 0;
if (!$_vlen$33$i) break; else $_vptr$34$i = $_vptr$34$i + 1 | 0;
}
}
}
__gcry_free($8);
}
} else __gcry_free($8);
if (HEAP32[$1 >> 2] & -3864) __gcry_log_bug(45755, $vararg_buffer);
__gcry_free($a);
STACKTOP = sp;
return;
}
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 $$pn$lcssa = 0, $$pn2 = 0, $$pre = 0, $10 = 0, $11 = 0, $22 = 0, $31 = 0, $35 = 0, $37 = 0, $6 = 0, $alimb$0 = 0, $alimb$1 = 0, $alimb$2 = 0, $i$0$lcssa = 0, $i$03 = 0, $i$1 = 0, $p$0 = 0, $p$0$1 = 0, $p$0$lcssa = 0, $p$04 = 0, $p$1 = 0, $p$2 = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
$6 = ($nbytes + 3 | 0) >>> 2;
if ((HEAP32[$a >> 2] | 0) < ($6 | 0)) __gcry_mpi_resize($a, $6);
HEAP32[$a + 8 >> 2] = $sign;
$10 = $buffer_arg + $nbytes | 0;
$p$0$1 = $10 + -1 | 0;
$11 = $buffer_arg + 4 | 0;
if ($p$0$1 >>> 0 < $11 >>> 0) {
$$pn$lcssa = $10;
$i$0$lcssa = 0;
$p$0$lcssa = $p$0$1;
} else {
$$pre = HEAP32[$a + 16 >> 2] | 0;
$$pn2 = $10;
$i$03 = 0;
$p$04 = $p$0$1;
while (1) {
$22 = $$pn2 + -4 | 0;
$31 = $i$03 + 1 | 0;
HEAP32[$$pre + ($i$03 << 2) >> 2] = (HEAPU8[$$pn2 + -2 >> 0] | 0) << 8 | (HEAPU8[$p$04 >> 0] | 0) | (HEAPU8[$$pn2 + -3 >> 0] | 0) << 16 | (HEAPU8[$22 >> 0] | 0) << 24;
$p$0 = $$pn2 + -5 | 0;
if ($p$0 >>> 0 < $11 >>> 0) {
$$pn$lcssa = $22;
$i$0$lcssa = $31;
$p$0$lcssa = $p$0;
break;
} else {
$$pn2 = $22;
$i$03 = $31;
$p$04 = $p$0;
}
}
}
if ($p$0$lcssa >>> 0 < $buffer_arg >>> 0) $i$1 = $i$0$lcssa; else {
$35 = $$pn$lcssa + -2 | 0;
$37 = HEAPU8[$p$0$lcssa >> 0] | 0;
if ($35 >>> 0 < $buffer_arg >>> 0) {
$alimb$0 = $37;
$p$1 = $35;
} else {
$alimb$0 = (HEAPU8[$35 >> 0] | 0) << 8 | $37;
$p$1 = $$pn$lcssa + -3 | 0;
}
if ($p$1 >>> 0 < $buffer_arg >>> 0) {
$alimb$1 = $alimb$0;
$p$2 = $p$1;
} else {
$alimb$1 = (HEAPU8[$p$1 >> 0] | 0) << 16 | $alimb$0;
$p$2 = $p$1 + -1 | 0;
}
if ($p$2 >>> 0 < $buffer_arg >>> 0) $alimb$2 = $alimb$1; else $alimb$2 = (HEAPU8[$p$2 >> 0] | 0) << 24 | $alimb$1;
HEAP32[(HEAP32[$a + 16 >> 2] | 0) + ($i$0$lcssa << 2) >> 2] = $alimb$2;
$i$1 = $i$0$lcssa + 1 | 0;
}
HEAP32[$a + 4 >> 2] = $i$1;
if (($i$1 | 0) == ($6 | 0)) return; else __gcry_assert_failed(45522, 45534, 377, 45545);
}
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, $$comp = 0, $$lcssa = 0, $2 = 0, $3 = 0, $32 = 0, $55 = 0, $8 = 0, $i$0$lcssa3 = 0, $i$04 = 0, $i$04$us = 0;
$$comp = ($comp | 0) == 0 ? HEAP32[17456] | 0 : $comp;
$2 = HEAP32[17457] | 0;
$3 = ($2 | 0) > -1;
if ($3 & (HEAP32[17458] | 0) == 0) {
$$0 = ($2 | 0) >= ($caller_level | 0) & 1;
return $$0 | 0;
}
L5 : do if ((HEAP32[17459] | 0) > 0) {
L7 : do if ($3) {
$i$04$us = 0;
while (1) {
$8 = HEAP32[17460] | 0;
if (HEAP32[$8 + ($i$04$us * 112 | 0) + 108 >> 2] | 0) if ((HEAP32[$8 + ($i$04$us * 112 | 0) + 96 >> 2] | 0) <= ($line | 0)) if ((HEAP32[$8 + ($i$04$us * 112 | 0) + 100 >> 2] | 0) >= ($line | 0)) if (!(_regexec($8 + ($i$04$us * 112 | 0) | 0, $$comp, 0, 0, 0) | 0)) if (!(_regexec($8 + ($i$04$us * 112 | 0) + 32 | 0, $file, 0, 0, 0) | 0)) if (!(_regexec($8 + ($i$04$us * 112 | 0) + 64 | 0, $function, 0, 0, 0) | 0)) {
$$lcssa = $8;
$i$0$lcssa3 = $i$04$us;
break L7;
}
$i$04$us = $i$04$us + 1 | 0;
if (($i$04$us | 0) >= (HEAP32[17459] | 0)) break L5;
}
} else {
$i$04 = 0;
while (1) {
$32 = HEAP32[17460] | 0;
if ((HEAP32[$32 + ($i$04 * 112 | 0) + 96 >> 2] | 0) <= ($line | 0)) if ((HEAP32[$32 + ($i$04 * 112 | 0) + 100 >> 2] | 0) >= ($line | 0)) if (!(_regexec($32 + ($i$04 * 112 | 0) | 0, $$comp, 0, 0, 0) | 0)) if (!(_regexec($32 + ($i$04 * 112 | 0) + 32 | 0, $file, 0, 0, 0) | 0)) if (!(_regexec($32 + ($i$04 * 112 | 0) + 64 | 0, $function, 0, 0, 0) | 0)) {
$$lcssa = $32;
$i$0$lcssa3 = $i$04;
break L7;
}
$i$04 = $i$04 + 1 | 0;
if (($i$04 | 0) >= (HEAP32[17459] | 0)) break L5;
}
} while (0);
$$0 = (HEAP32[$$lcssa + ($i$0$lcssa3 * 112 | 0) + 104 >> 2] | 0) >= ($caller_level | 0) & 1;
return $$0 | 0;
} while (0);
$55 = HEAP32[17457] | 0;
if (($55 | 0) > -1) {
$$0 = ($55 | 0) >= ($caller_level | 0) & 1;
return $$0 | 0;
} else {
$$0 = ($caller_level | 0) < 3 & 1;
return $$0 | 0;
}
return 0;
}
function __gcry_ecc_get_param_sexp($name) {
$name = $name | 0;
var $$0 = 0, $12 = 0, $13 = 0, $16 = 0, $18 = 0, $19 = 0, $2 = 0, $22 = 0, $25 = 0, $3 = 0, $35 = 0, $4 = 0, $6 = 0, $8 = 0, $9 = 0, $E = 0, $i$01 = 0, $nbits = 0, $pkey = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$nbits = sp + 108 | 0;
$E = sp + 64 | 0;
$pkey = sp + 36 | 0;
$result = sp + 32 | 0;
dest = $E;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
if (__gcry_ecc_fill_in_curve(0, $name, $E, $nbits) | 0) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = __gcry_mpi_new(0) | 0;
$3 = __gcry_mpi_new(0) | 0;
$4 = $E + 8 | 0;
$6 = $E + 12 | 0;
$8 = __gcry_mpi_ec_p_internal_new(0, 0, 0, HEAP32[$4 >> 2] | 0, HEAP32[$6 >> 2] | 0, 0) | 0;
$9 = $E + 20 | 0;
if (__gcry_mpi_ec_get_affine($2, $3, $9, $8) | 0) __gcry_log_fatal(24127, $vararg_buffer);
__gcry_mpi_ec_free($8);
__gcry_mpi_point_free_parts($9);
$12 = HEAP32[$4 >> 2] | 0;
HEAP32[$pkey >> 2] = $12;
$13 = HEAP32[$6 >> 2] | 0;
HEAP32[$pkey + 4 >> 2] = $13;
$16 = HEAP32[$E + 16 >> 2] | 0;
HEAP32[$pkey + 8 >> 2] = $16;
$18 = $12;
$19 = __gcry_ecc_ec2os($2, $3, $18) | 0;
HEAP32[$pkey + 12 >> 2] = $19;
$22 = HEAP32[$E + 32 >> 2] | 0;
HEAP32[$pkey + 16 >> 2] = $22;
$25 = HEAP32[$E + 36 >> 2] | 0;
HEAP32[$pkey + 20 >> 2] = $25;
HEAP32[$pkey + 24 >> 2] = 0;
__gcry_mpi_free($2);
__gcry_mpi_free($3);
HEAP32[$vararg_buffer1 >> 2] = $18;
HEAP32[$vararg_buffer1 + 4 >> 2] = $13;
HEAP32[$vararg_buffer1 + 8 >> 2] = $16;
HEAP32[$vararg_buffer1 + 12 >> 2] = $19;
HEAP32[$vararg_buffer1 + 16 >> 2] = $22;
HEAP32[$vararg_buffer1 + 20 >> 2] = $25;
if (__gcry_sexp_build($result, 0, 24176, $vararg_buffer1) | 0) HEAP32[$result >> 2] = 0;
if ($12) {
$35 = $18;
$i$01 = 0;
do {
__gcry_mpi_release($35);
$i$01 = $i$01 + 1 | 0;
$35 = HEAP32[$pkey + ($i$01 << 2) >> 2] | 0;
} while (($35 | 0) != 0);
}
$$0 = HEAP32[$result >> 2] | 0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_sexp_release($sexp) {
$sexp = $sexp | 0;
var $14 = 0, $15 = 0, $20 = 0, $21 = 0, $28 = 0, $29 = 0, $3 = 0, $31 = 0, $5 = 0, $6 = 0, $_vlen$0$lcssa = 0, $_vlen$06 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$34 = 0, $_vptr$0$lcssa = 0, $_vptr$07 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$35 = 0, $p$0$be = 0, $p$0$lcssa = 0, $p$010 = 0, $scevgep = 0;
if (!$sexp) return;
if (__gcry_is_secure($sexp) | 0) {
$3 = HEAP8[$sexp >> 0] | 0;
if (!($3 << 24 >> 24)) $p$0$lcssa = $sexp; else {
$6 = $3;
$p$010 = $sexp;
while (1) {
$5 = $p$010 + 1 | 0;
if ($6 << 24 >> 24 == 1) $p$0$be = $p$010 + 3 + ((HEAPU8[$5 >> 0] | HEAPU8[$5 + 1 >> 0] << 8) & 65535) | 0; else $p$0$be = $5;
$6 = HEAP8[$p$0$be >> 0] | 0;
if (!($6 << 24 >> 24)) {
$p$0$lcssa = $p$0$be;
break;
} else $p$010 = $p$0$be;
}
}
$14 = $sexp;
$15 = $p$0$lcssa - $14 | 0;
if (($p$0$lcssa | 0) != ($sexp | 0) & ($14 & 7 | 0) != 0) {
$_vlen$06 = $15;
$_vptr$07 = $sexp;
while (1) {
HEAP8[$_vptr$07 >> 0] = 0;
$20 = $_vptr$07 + 1 | 0;
$21 = $_vlen$06 + -1 | 0;
if (($21 | 0) != 0 & ($20 & 7 | 0) != 0) {
$_vlen$06 = $21;
$_vptr$07 = $20;
} else {
$_vlen$0$lcssa = $21;
$_vptr$0$lcssa = $20;
break;
}
}
} else {
$_vlen$0$lcssa = $15;
$_vptr$0$lcssa = $sexp;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$28 = $_vlen$0$lcssa + -8 | 0;
$29 = $28 & -8;
$scevgep = $_vptr$0$lcssa + ($29 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$31 = $_vptr$1;
HEAP32[$31 >> 2] = 0;
HEAP32[$31 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $28 - $29 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$34 = $_vlen$3$ph;
$_vptr$35 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$35 >> 0] = 0;
$_vlen$34 = $_vlen$34 + -1 | 0;
if (!$_vlen$34) break; else $_vptr$35 = $_vptr$35 + 1 | 0;
}
}
}
__gcry_free($sexp);
return;
}
function _GNUNET_CRYPTO_random_init() {
var $$lcssa = 0, $11 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $9 = 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, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$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;
if (_gcry_check_version(20371) | 0) {
HEAP32[$vararg_buffer5 >> 2] = 0;
$9 = _gcry_control(37, $vararg_buffer5) | 0;
if ($9) {
$11 = HEAP32[3824] | 0;
$12 = _gcry_strerror($9) | 0;
HEAP32[$vararg_buffer8 >> 2] = 20508;
HEAP32[$vararg_buffer8 + 4 >> 2] = $12;
_fprintf($11, 20469, $vararg_buffer8) | 0;
}
HEAP32[$vararg_buffer12 >> 2] = 0;
$13 = _gcry_control(44, $vararg_buffer12) | 0;
if ($13) {
$15 = HEAP32[3824] | 0;
$16 = _gcry_strerror($13) | 0;
HEAP32[$vararg_buffer15 >> 2] = 20523;
HEAP32[$vararg_buffer15 + 4 >> 2] = $16;
_fprintf($15, 20469, $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;
$17 = _time(0) | 0;
do {
_gcry_create_nonce($vararg_buffer22, 4);
$18 = HEAP32[$vararg_buffer22 >> 2] | 0;
} while (($18 | 0) == -1);
$$lcssa = $18;
_srandom((($$lcssa >>> 0) % 4294967295 | 0) ^ $17);
STACKTOP = sp;
return;
}
$2 = HEAP32[3824] | 0;
HEAP32[$vararg_buffer >> 2] = 20371;
_fprintf($2, 20377, $vararg_buffer) | 0;
if ((HEAP32[231] | 0) == -1) HEAP32[231] = _GNUNET_get_log_call_status(1, 0, 20355, 20443, 286) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[231] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer1 >> 2] = 20355;
HEAP32[$vararg_buffer1 + 4 >> 2] = 286;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer1);
_GNUNET_abort_();
}
function __gcry_mpi_set($w, $u) {
$w = $w | 0;
$u = $u | 0;
var $$01 = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $21 = 0, $24 = 0, $29 = 0, $3 = 0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $43 = 0, $45 = 0, $5 = 0, $9 = 0, $_i$02 = 0, $i$03$i = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = HEAP32[$u + 4 >> 2] | 0;
$3 = HEAP32[$u + 8 >> 2] | 0;
if (!$w) {
$5 = __gcry_xmalloc(20) | 0;
if (!$1) $9 = 0; else $9 = __gcry_xmalloc($1 << 2) | 0;
HEAP32[$5 + 16 >> 2] = $9;
HEAP32[$5 >> 2] = $1;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
$$01 = $5;
} else $$01 = $w;
$13 = $$01 + 12 | 0;
$14 = HEAP32[$13 >> 2] | 0;
if ($14 & 16) {
__gcry_log_info(45711, $vararg_buffer);
STACKTOP = sp;
return $$01 | 0;
}
$17 = HEAP32[$$01 >> 2] | 0;
L11 : do if (($17 | 0) < ($1 | 0)) {
if ($17 >>> 0 >= $1 >>> 0) {
$21 = HEAP32[$$01 + 4 >> 2] | 0;
if ($21 >>> 0 >= $17 >>> 0) break;
$24 = HEAP32[$$01 + 16 >> 2] | 0;
$i$03$i = $21;
while (1) {
HEAP32[$24 + ($i$03$i << 2) >> 2] = 0;
$i$03$i = $i$03$i + 1 | 0;
if ($i$03$i >>> 0 >= (HEAP32[$$01 >> 2] | 0) >>> 0) break L11;
}
}
$29 = $$01 + 16 | 0;
$30 = HEAP32[$29 >> 2] | 0;
do if (!$30) if (!($14 & 1)) {
HEAP32[$29 >> 2] = __gcry_xcalloc($1, 4) | 0;
break;
} else {
HEAP32[$29 >> 2] = __gcry_xcalloc_secure($1, 4) | 0;
break;
} else {
$32 = $1 << 2;
$33 = __gcry_xrealloc($30, $32) | 0;
HEAP32[$29 >> 2] = $33;
$34 = HEAP32[$$01 >> 2] | 0;
if ($34 >>> 0 < $1 >>> 0) _memset($33 + ($34 << 2) | 0, 0, $32 - ($34 << 2) | 0) | 0;
} while (0);
HEAP32[$$01 >> 2] = $1;
} while (0);
$43 = HEAP32[$$01 + 16 >> 2] | 0;
$45 = HEAP32[$u + 16 >> 2] | 0;
if (($1 | 0) > 0) {
$_i$02 = 0;
do {
HEAP32[$43 + ($_i$02 << 2) >> 2] = HEAP32[$45 + ($_i$02 << 2) >> 2];
$_i$02 = $_i$02 + 1 | 0;
} while (($_i$02 | 0) != ($1 | 0));
}
HEAP32[$$01 + 4 >> 2] = $1;
HEAP32[$13 >> 2] = HEAP32[$u + 12 >> 2] & -49;
HEAP32[$$01 + 8 >> 2] = $3;
STACKTOP = sp;
return $$01 | 0;
}
function _fgets($s, $n, $f) {
$s = $s | 0;
$n = $n | 0;
$f = $f | 0;
var $$0 = 0, $$047 = 0, $$05 = 0, $$lcssa13 = 0, $12 = 0, $15 = 0, $16 = 0, $17 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $26 = 0, $27 = 0, $28 = 0, $30 = 0, $31 = 0, $32 = 0, $38 = 0, $4 = 0, $46 = 0, $47 = 0, $6 = 0, $8 = 0, $p$0 = 0, $p$1 = 0, label = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) $12 = ___lockfile($f) | 0; else $12 = 0;
$4 = $n + -1 | 0;
if (($n | 0) < 2) {
$6 = $f + 74 | 0;
$8 = HEAP8[$6 >> 0] | 0;
HEAP8[$6 >> 0] = $8 + 255 | $8;
if ($12) ___unlockfile($f);
if (!$4) {
HEAP8[$s >> 0] = 0;
$$0 = $s;
} else $$0 = 0;
} else {
L11 : do if (!$4) {
$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;
$19 = $17;
$20 = (HEAP32[$16 >> 2] | 0) - $19 | 0;
$21 = _memchr($17, 10, $20) | 0;
$22 = ($21 | 0) == 0;
$26 = $22 ? $20 : 1 - $19 + $21 | 0;
$27 = $26 >>> 0 < $$05 >>> 0;
$28 = $27 ? $26 : $$05;
_memcpy($p$0 | 0, $17 | 0, $28 | 0) | 0;
$30 = (HEAP32[$15 >> 2] | 0) + $28 | 0;
HEAP32[$15 >> 2] = $30;
$31 = $p$0 + $28 | 0;
$32 = $$05 - $28 | 0;
if (!($22 & $27)) {
$p$1 = $31;
label = 17;
break L11;
}
if ($30 >>> 0 < (HEAP32[$16 >> 2] | 0) >>> 0) {
HEAP32[$15 >> 2] = $30 + 1;
$46 = HEAPU8[$30 >> 0] | 0;
} else {
$38 = ___uflow($f) | 0;
if (($38 | 0) < 0) {
$$lcssa13 = $31;
break;
} else $46 = $38;
}
$$05 = $32 + -1 | 0;
$47 = $31 + 1 | 0;
HEAP8[$31 >> 0] = $46;
if (!(($$05 | 0) != 0 & ($46 & 255 | 0) != 10)) {
$p$1 = $47;
label = 17;
break L11;
} else $p$0 = $47;
}
if (($$lcssa13 | 0) == ($s | 0)) $$047 = 0; else if (!(HEAP32[$f >> 2] & 16)) $$047 = 0; else {
$p$1 = $$lcssa13;
label = 17;
}
} while (0);
if ((label | 0) == 17) if (!$s) $$047 = 0; else {
HEAP8[$p$1 >> 0] = 0;
$$047 = $s;
}
if (!$12) $$0 = $$047; else {
___unlockfile($f);
$$0 = $$047;
}
}
return $$0 | 0;
}
function _secmem_init($n) {
$n = $n | 0;
var $1 = 0, $16 = 0, $18 = 0, $23 = 0, $24 = 0, $26 = 0, $29 = 0, $32 = 0, $33 = 0, $35 = 0, $6 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer11 = sp + 40 | 0;
$vararg_buffer9 = sp + 32 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!$n) {
HEAP32[17502] = 1;
$1 = _getuid() | 0;
if (($1 | 0) == (_geteuid() | 0)) {
STACKTOP = sp;
return;
}
if (_setuid($1) | 0) __gcry_log_fatal(22689, $vararg_buffer);
$6 = _getuid() | 0;
if (($6 | 0) != (_geteuid() | 0)) __gcry_log_fatal(22689, $vararg_buffer);
if (!(_setuid(0) | 0)) __gcry_log_fatal(22689, $vararg_buffer); else {
STACKTOP = sp;
return;
}
}
if (HEAP32[17496] | 0) {
__gcry_log_error(22888, $vararg_buffer11);
STACKTOP = sp;
return;
}
HEAP32[17498] = $n >>> 0 < 16384 ? 16384 : $n;
if (HEAP32[17502] | 0) __gcry_log_bug(22712, $vararg_buffer1);
$16 = _sysconf(30) | 0;
$18 = ($16 | 0) > 0 ? $16 : 4096;
$23 = (HEAP32[17498] | 0) + -1 + $18 & 0 - $18;
HEAP32[17498] = $23;
$24 = ___mmap(0, $23, 3, 34, -1, 0) | 0;
HEAP32[17497] = $24;
if (($24 | 0) == (-1 | 0)) {
$26 = HEAP32[17498] | 0;
$29 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer3 >> 2] = $26;
HEAP32[$vararg_buffer3 + 4 >> 2] = $29;
__gcry_log_info(22738, $vararg_buffer3);
} else {
HEAP32[17499] = 1;
HEAP32[17496] = 1;
}
do if (!(HEAP32[17496] | 0)) {
$32 = HEAP32[17498] | 0;
$33 = _malloc($32) | 0;
HEAP32[17497] = $33;
if (!$33) {
HEAP32[$vararg_buffer6 >> 2] = $32;
__gcry_log_fatal(22786, $vararg_buffer6);
} else {
HEAP32[17496] = 1;
break;
}
} while (0);
$35 = HEAP32[17497] | 0;
HEAP32[$35 >> 2] = HEAP32[17498];
HEAP32[$35 + 4 >> 2] = 0;
if (HEAP32[17494] | 0) {
STACKTOP = sp;
return;
}
__gcry_log_info(22826, $vararg_buffer9);
STACKTOP = sp;
return;
}
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 $$pr = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $3 = 0, $5 = 0, $9 = 0, $i$02 = 0, $l2$0 = 0, $l2$1 = 0, $name$0 = 0, $name$1 = 0, $rc$0 = 0;
HEAP32[$r_parms >> 2] = 0;
$0 = ($r_eccflags | 0) != 0;
if ($0) HEAP32[$r_eccflags >> 2] = 0;
$1 = __gcry_sexp_find_token($s_sig, 37191, 0) | 0;
L4 : do if (!$1) {
$l2$1 = 0;
$name$1 = 0;
$rc$0 = 65;
} else {
$3 = __gcry_sexp_nth($1, 1) | 0;
if (!$3) {
$l2$1 = 0;
$name$1 = 0;
$rc$0 = 68;
} else {
$5 = __gcry_sexp_nth_string($3, 0) | 0;
if (!$5) {
$l2$1 = $3;
$name$1 = 0;
$rc$0 = 65;
} else {
if (!(_strcmp($5, 46546) | 0)) {
__gcry_sexp_release($3);
$9 = __gcry_sexp_nth($1, 2) | 0;
if (!$9) {
$l2$1 = 0;
$name$1 = $5;
$rc$0 = 65;
break;
}
__gcry_free($5);
$11 = __gcry_sexp_nth_string($9, 0) | 0;
if (!$11) {
$l2$1 = $9;
$name$1 = 0;
$rc$0 = 65;
break;
} else {
$l2$0 = $9;
$name$0 = $11;
}
} else {
$l2$0 = $3;
$name$0 = $5;
}
$13 = HEAP32[$algo_names >> 2] | 0;
if (!$13) {
$l2$1 = $l2$0;
$name$1 = $name$0;
$rc$0 = 70;
} else {
$$pr = $13;
$i$02 = 0;
while (1) {
$i$02 = $i$02 + 1 | 0;
if (!(_strcasecmp($name$0, $$pr) | 0)) break;
$$pr = HEAP32[$algo_names + ($i$02 << 2) >> 2] | 0;
if (!$$pr) {
$l2$1 = $l2$0;
$name$1 = $name$0;
$rc$0 = 70;
break L4;
}
}
if ($0) {
if (!(_strcmp($name$0, 49275) | 0)) HEAP32[$r_eccflags >> 2] = 4096;
if (!(_strcmp($name$0, 49281) | 0)) HEAP32[$r_eccflags >> 2] = 8192;
}
HEAP32[$r_parms >> 2] = $l2$0;
$l2$1 = 0;
$name$1 = $name$0;
$rc$0 = 0;
}
}
}
} while (0);
__gcry_free($name$1);
__gcry_sexp_release($l2$1);
__gcry_sexp_release($1);
return $rc$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, $$phi$trans$insert = 0, $$pre$phi5Z2D = 0, $11 = 0, $15 = 0, $18 = 0, $2 = 0, $21 = 0, $25 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $32 = 0, $34 = 0, $37 = 0, $5 = 0, $6 = 0, $zero$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$zero$i = sp;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
STACKTOP = sp;
return $$0 | 0;
}
$2 = HEAP8[$c + 56 >> 0] | 0;
if ($2 & 4) {
$$0 = 156;
STACKTOP = sp;
return $$0 | 0;
}
$5 = $c + 144 | 0;
$6 = HEAP8[$5 >> 0] | 0;
if ($6 & 2) {
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
do if (!($2 & 2)) {
$11 = $zero$i;
HEAP32[$11 >> 2] = 0;
HEAP32[$11 + 4 >> 2] = 0;
$15 = __gcry_cipher_poly1305_setiv($c, $zero$i, 8) | 0;
if (!$15) {
$18 = HEAP8[$5 >> 0] | 0;
break;
} else {
$$0 = $15;
STACKTOP = sp;
return $$0 | 0;
}
} else $18 = $6; while (0);
if (!($18 & 1)) {
$21 = HEAP32[$c + 128 >> 2] & 15;
if (!$21) $26 = $18; else {
__gcry_poly1305_update($c + 148 | 0, 75723, 16 - $21 | 0);
$26 = HEAP8[$5 >> 0] | 0;
}
$25 = $26 | 1;
HEAP8[$5 >> 0] = $25;
$27 = $c + 136 | 0;
HEAP32[$27 >> 2] = 0;
HEAP32[$c + 140 >> 2] = 0;
$$pre$phi5Z2D = $27;
$30 = 0;
$37 = $25;
} else {
$$phi$trans$insert = $c + 136 | 0;
$$pre$phi5Z2D = $$phi$trans$insert;
$30 = HEAP32[$$phi$trans$insert >> 2] | 0;
$37 = $18;
}
$29 = $30 + $inbuflen | 0;
HEAP32[$$pre$phi5Z2D >> 2] = $29;
if ($29 >>> 0 < $inbuflen >>> 0) {
$32 = $c + 140 | 0;
$34 = (HEAP32[$32 >> 2] | 0) + 1 | 0;
HEAP32[$32 >> 2] = $34;
if (!$34) {
HEAP8[$5 >> 0] = $37 | 2;
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
}
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 44 >> 2] & 1]($c + 496 | 0, $outbuf, $inbuf, $inbuflen);
__gcry_poly1305_update($c + 148 | 0, $outbuf, $inbuflen);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
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, $$phi$trans$insert = 0, $$pre$phi5Z2D = 0, $11 = 0, $15 = 0, $18 = 0, $2 = 0, $21 = 0, $25 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $32 = 0, $34 = 0, $37 = 0, $5 = 0, $6 = 0, $zero$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$zero$i = sp;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
STACKTOP = sp;
return $$0 | 0;
}
$2 = HEAP8[$c + 56 >> 0] | 0;
if ($2 & 4) {
$$0 = 156;
STACKTOP = sp;
return $$0 | 0;
}
$5 = $c + 144 | 0;
$6 = HEAP8[$5 >> 0] | 0;
if ($6 & 2) {
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
do if (!($2 & 2)) {
$11 = $zero$i;
HEAP32[$11 >> 2] = 0;
HEAP32[$11 + 4 >> 2] = 0;
$15 = __gcry_cipher_poly1305_setiv($c, $zero$i, 8) | 0;
if (!$15) {
$18 = HEAP8[$5 >> 0] | 0;
break;
} else {
$$0 = $15;
STACKTOP = sp;
return $$0 | 0;
}
} else $18 = $6; while (0);
if (!($18 & 1)) {
$21 = HEAP32[$c + 128 >> 2] & 15;
if (!$21) $26 = $18; else {
__gcry_poly1305_update($c + 148 | 0, 75723, 16 - $21 | 0);
$26 = HEAP8[$5 >> 0] | 0;
}
$25 = $26 | 1;
HEAP8[$5 >> 0] = $25;
$27 = $c + 136 | 0;
HEAP32[$27 >> 2] = 0;
HEAP32[$c + 140 >> 2] = 0;
$$pre$phi5Z2D = $27;
$30 = 0;
$37 = $25;
} else {
$$phi$trans$insert = $c + 136 | 0;
$$pre$phi5Z2D = $$phi$trans$insert;
$30 = HEAP32[$$phi$trans$insert >> 2] | 0;
$37 = $18;
}
$29 = $30 + $inbuflen | 0;
HEAP32[$$pre$phi5Z2D >> 2] = $29;
if ($29 >>> 0 < $inbuflen >>> 0) {
$32 = $c + 140 | 0;
$34 = (HEAP32[$32 >> 2] | 0) + 1 | 0;
HEAP32[$32 >> 2] = $34;
if (!$34) {
HEAP8[$5 >> 0] = $37 | 2;
$$0 = 139;
STACKTOP = sp;
return $$0 | 0;
}
}
__gcry_poly1305_update($c + 148 | 0, $inbuf, $inbuflen);
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 48 >> 2] & 1]($c + 496 | 0, $outbuf, $inbuf, $inbuflen);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_hmac256_release($ctx) {
$ctx = $ctx | 0;
if (!$ctx) return;
if (HEAP8[$ctx + 40 >> 0] & 2) {
HEAP8[$ctx + 105 >> 0] = 0;
HEAP8[$ctx + 106 >> 0] = 0;
HEAP8[$ctx + 107 >> 0] = 0;
HEAP8[$ctx + 108 >> 0] = 0;
HEAP8[$ctx + 109 >> 0] = 0;
HEAP8[$ctx + 110 >> 0] = 0;
HEAP8[$ctx + 111 >> 0] = 0;
HEAP8[$ctx + 112 >> 0] = 0;
HEAP8[$ctx + 113 >> 0] = 0;
HEAP8[$ctx + 114 >> 0] = 0;
HEAP8[$ctx + 115 >> 0] = 0;
HEAP8[$ctx + 116 >> 0] = 0;
HEAP8[$ctx + 117 >> 0] = 0;
HEAP8[$ctx + 118 >> 0] = 0;
HEAP8[$ctx + 119 >> 0] = 0;
HEAP8[$ctx + 120 >> 0] = 0;
HEAP8[$ctx + 121 >> 0] = 0;
HEAP8[$ctx + 122 >> 0] = 0;
HEAP8[$ctx + 123 >> 0] = 0;
HEAP8[$ctx + 124 >> 0] = 0;
HEAP8[$ctx + 125 >> 0] = 0;
HEAP8[$ctx + 126 >> 0] = 0;
HEAP8[$ctx + 127 >> 0] = 0;
HEAP8[$ctx + 128 >> 0] = 0;
HEAP8[$ctx + 129 >> 0] = 0;
HEAP8[$ctx + 130 >> 0] = 0;
HEAP8[$ctx + 131 >> 0] = 0;
HEAP8[$ctx + 132 >> 0] = 0;
HEAP8[$ctx + 133 >> 0] = 0;
HEAP8[$ctx + 134 >> 0] = 0;
HEAP8[$ctx + 135 >> 0] = 0;
HEAP8[$ctx + 136 >> 0] = 0;
HEAP8[$ctx + 137 >> 0] = 0;
HEAP8[$ctx + 138 >> 0] = 0;
HEAP8[$ctx + 139 >> 0] = 0;
HEAP8[$ctx + 140 >> 0] = 0;
HEAP8[$ctx + 141 >> 0] = 0;
HEAP8[$ctx + 142 >> 0] = 0;
HEAP8[$ctx + 143 >> 0] = 0;
HEAP8[$ctx + 144 >> 0] = 0;
HEAP8[$ctx + 145 >> 0] = 0;
HEAP8[$ctx + 146 >> 0] = 0;
HEAP8[$ctx + 147 >> 0] = 0;
HEAP8[$ctx + 148 >> 0] = 0;
HEAP8[$ctx + 149 >> 0] = 0;
HEAP8[$ctx + 150 >> 0] = 0;
HEAP8[$ctx + 151 >> 0] = 0;
HEAP8[$ctx + 152 >> 0] = 0;
HEAP8[$ctx + 153 >> 0] = 0;
HEAP8[$ctx + 154 >> 0] = 0;
HEAP8[$ctx + 155 >> 0] = 0;
HEAP8[$ctx + 156 >> 0] = 0;
HEAP8[$ctx + 157 >> 0] = 0;
HEAP8[$ctx + 158 >> 0] = 0;
HEAP8[$ctx + 159 >> 0] = 0;
HEAP8[$ctx + 160 >> 0] = 0;
HEAP8[$ctx + 161 >> 0] = 0;
HEAP8[$ctx + 162 >> 0] = 0;
HEAP8[$ctx + 163 >> 0] = 0;
HEAP8[$ctx + 164 >> 0] = 0;
HEAP8[$ctx + 165 >> 0] = 0;
HEAP8[$ctx + 166 >> 0] = 0;
HEAP8[$ctx + 167 >> 0] = 0;
HEAP8[$ctx + 168 >> 0] = 0;
}
_free($ctx);
return;
}
function _md_enable($hd$0$0$val, $algorithm) {
$hd$0$0$val = $hd$0$0$val | 0;
$algorithm = $algorithm | 0;
var $$0 = 0, $$ph = 0, $0 = 0, $26 = 0, $27 = 0, $entry$0$5 = 0, $entry$06 = 0, $entry$1$in = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = $hd$0$0$val + 16 | 0;
$entry$0$5 = HEAP32[$0 >> 2] | 0;
L1 : do if ($entry$0$5) {
$entry$06 = $entry$0$5;
while (1) {
if ((HEAP32[HEAP32[$entry$06 >> 2] >> 2] | 0) == ($algorithm | 0)) {
$$0 = 0;
break;
}
$entry$06 = HEAP32[$entry$06 + 4 >> 2] | 0;
if (!$entry$06) break L1;
}
STACKTOP = sp;
return $$0 | 0;
} while (0);
if ((HEAP32[1886] | 0) == ($algorithm | 0)) $$ph = 7544; else if ((HEAP32[1918] | 0) == ($algorithm | 0)) $$ph = 7672; else if ((HEAP32[1905] | 0) == ($algorithm | 0)) $$ph = 7620; else if ((HEAP32[1936] | 0) == ($algorithm | 0)) $$ph = 7744; else if ((HEAP32[1949] | 0) == ($algorithm | 0)) $$ph = 7796; else if ((HEAP32[1845] | 0) == ($algorithm | 0)) $$ph = 7380; else {
HEAP32[$vararg_buffer >> 2] = $algorithm;
__gcry_log_debug(36835, $vararg_buffer);
$$0 = 5;
STACKTOP = sp;
return $$0 | 0;
}
if (($algorithm | 0) == 1) if (__gcry_fips_mode() | 0) {
__gcry_inactivate_fips_mode(36761);
if (__gcry_enforced_fips_mode() | 0) {
$$0 = 5;
STACKTOP = sp;
return $$0 | 0;
}
}
$26 = (HEAP32[$$ph + 44 >> 2] | 0) + 16 | 0;
$27 = $hd$0$0$val + 12 | 0;
if (!(HEAP8[$27 >> 0] & 1)) $entry$1$in = __gcry_malloc($26) | 0; else $entry$1$in = __gcry_malloc_secure($26) | 0;
if (!$entry$1$in) {
$$0 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
STACKTOP = sp;
return $$0 | 0;
} else {
HEAP32[$entry$1$in >> 2] = $$ph;
HEAP32[$entry$1$in + 4 >> 2] = HEAP32[$0 >> 2];
HEAP32[$entry$1$in + 8 >> 2] = $26;
HEAP32[$0 >> 2] = $entry$1$in;
FUNCTION_TABLE_vii[HEAP32[$$ph + 28 >> 2] & 7]($entry$1$in + 16 | 0, (HEAP8[$27 >> 0] & 4) << 6);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
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, $$phi$trans$insert = 0, $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $11 = 0, $13 = 0, $15 = 0, $17 = 0, $19 = 0, $20 = 0, $25 = 0, $27 = 0, $28 = 0, $3 = 0, $31 = 0, $33 = 0, $35 = 0, $4 = 0, $9 = 0;
$0 = $mem + 16 | 0;
L1 : do if (!(HEAP32[$0 >> 2] | 0)) {
$3 = $mem + 12 | 0;
$4 = HEAP32[$3 >> 2] | 0;
do if ($4 >>> 0 < $size >>> 0) {
if ($provided) if (!$provided_block) {
HEAP32[$0 >> 2] = 1;
$$3 = 0;
break L1;
} else {
$9 = $mem + 8 | 0;
HEAP32[$9 >> 2] = $provided_block;
HEAP32[$3 >> 2] = 1024;
$$pre$phiZ2D = $9;
$27 = $provided_block;
$33 = $provided_block;
$35 = 1024;
break;
}
$11 = $size << 3;
$$ = $11 >>> 0 > 1024 ? $11 : 1024;
$13 = _malloc(8) | 0;
if (!$13) {
HEAP32[$0 >> 2] = 1;
$$3 = 0;
break L1;
}
$15 = _malloc($$) | 0;
HEAP32[$13 >> 2] = $15;
$17 = $15;
if (!$15) {
_free($13);
HEAP32[$0 >> 2] = 1;
$$3 = 0;
break L1;
}
HEAP32[$13 + 4 >> 2] = 0;
$19 = $mem + 4 | 0;
$20 = HEAP32[$19 >> 2] | 0;
if ($20) HEAP32[$20 + 4 >> 2] = $13;
if (!(HEAP32[$mem >> 2] | 0)) 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;
$$pre$phiZ2D = $$phi$trans$insert;
$27 = $$pre;
$33 = $$pre;
$35 = $4;
} while (0);
$28 = $27 + $size & 3;
$31 = (($28 | 0) == 0 ? 0 : 4 - $28 | 0) + $size | 0;
HEAP32[$$pre$phiZ2D >> 2] = $33 + $31;
HEAP32[$3 >> 2] = $35 - $31;
if (!$zero) $$3 = $33; else {
_memset($33 | 0, 0, $31 | 0) | 0;
$$3 = $33;
}
} else $$3 = 0; while (0);
return $$3 | 0;
}
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 $$017$pn = 0, $$1 = 0, $0 = 0, $15 = 0, $3 = 0, $6 = 0, $_i$08 = 0, $ctx = 0, $cy$0 = 0, $cy$2 = 0, $i$06 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$ctx = sp;
$0 = $prodp + ($usize << 2) | 0;
if (($vsize | 0) >= 16) {
HEAP32[$ctx >> 2] = 0;
HEAP32[$ctx + 4 >> 2] = 0;
HEAP32[$ctx + 8 >> 2] = 0;
HEAP32[$ctx + 12 >> 2] = 0;
HEAP32[$ctx + 16 >> 2] = 0;
HEAP32[$ctx + 20 >> 2] = 0;
HEAP32[$ctx + 24 >> 2] = 0;
__gcry_mpih_mul_karatsuba_case($prodp, $up, $usize, $vp, $vsize, $ctx);
__gcry_mpih_release_karatsuba_ctx($ctx);
$$1 = HEAP32[$0 + ($vsize << 2) + -4 >> 2] | 0;
STACKTOP = sp;
return $$1 | 0;
}
if (!$vsize) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$3 = HEAP32[$vp >> 2] | 0;
do if ($3 >>> 0 < 2) {
$6 = ($usize | 0) > 0;
if (($3 | 0) == 1) {
if ($6) $_i$08 = 0; else {
$cy$0 = 0;
break;
}
do {
HEAP32[$prodp + ($_i$08 << 2) >> 2] = HEAP32[$up + ($_i$08 << 2) >> 2];
$_i$08 = $_i$08 + 1 | 0;
} while (($_i$08 | 0) != ($usize | 0));
$cy$0 = 0;
} else {
if (!$6) {
$cy$0 = 0;
break;
}
_memset($prodp | 0, 0, $usize << 2 | 0) | 0;
$cy$0 = 0;
break;
}
} else $cy$0 = __gcry_mpih_mul_1($prodp, $up, $usize, $3) | 0; while (0);
HEAP32[$0 >> 2] = $cy$0;
if (($vsize | 0) > 1) {
$$017$pn = $prodp;
$i$06 = 1;
} else {
$$1 = $cy$0;
STACKTOP = sp;
return $$1 | 0;
}
do {
$$017$pn = $$017$pn + 4 | 0;
$15 = HEAP32[$vp + ($i$06 << 2) >> 2] | 0;
if ($15 >>> 0 < 2) if (($15 | 0) == 1) $cy$2 = __gcry_mpih_add_n($$017$pn, $$017$pn, $up, $usize) | 0; else $cy$2 = 0; else $cy$2 = __gcry_mpih_addmul_1($$017$pn, $up, $usize, $15) | 0;
HEAP32[$$017$pn + ($usize << 2) >> 2] = $cy$2;
$i$06 = $i$06 + 1 | 0;
} while (($i$06 | 0) != ($vsize | 0));
$$1 = $cy$2;
STACKTOP = sp;
return $$1 | 0;
}
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 $$0 = 0, $$0$i = 0, $$0$i1 = 0, $12 = 0, $13 = 0, $76 = 0, $ntz$02 = 0, label = 0;
if (($0 | 0) == 0 & 0 == 0) if (!$1) $$0$i1 = 64; else {
$$0$i = (_llvm_cttz_i32($1 | 0) | 0) + 32 | 0;
label = 6;
} else if (!$0) $$0$i1 = 32; else {
$$0$i = _llvm_cttz_i32($0 | 0) | 0;
label = 6;
}
if ((label | 0) == 6) if (($$0$i | 0) < 16) {
$$0 = $c + 160 + ($$0$i << 4) | 0;
return $$0 | 0;
} else $$0$i1 = $$0$i;
$12 = $c + 160 | 0;
$13 = $12 + 240 | 0;
do if (($13 | 0) != ($l_tmp | 0)) if (!(($13 | $l_tmp) & 3)) {
HEAP32[$l_tmp >> 2] = HEAP32[$13 >> 2];
HEAP32[$l_tmp + 4 >> 2] = HEAP32[$12 + 244 >> 2];
HEAP32[$l_tmp + 8 >> 2] = HEAP32[$12 + 248 >> 2];
HEAP32[$l_tmp + 12 >> 2] = HEAP32[$12 + 252 >> 2];
break;
} else {
HEAP8[$l_tmp >> 0] = HEAP8[$13 >> 0] | 0;
HEAP8[$l_tmp + 1 >> 0] = HEAP8[$13 + 1 >> 0] | 0;
HEAP8[$l_tmp + 2 >> 0] = HEAP8[$13 + 2 >> 0] | 0;
HEAP8[$l_tmp + 3 >> 0] = HEAP8[$13 + 3 >> 0] | 0;
HEAP8[$l_tmp + 4 >> 0] = HEAP8[$12 + 244 >> 0] | 0;
HEAP8[$l_tmp + 5 >> 0] = HEAP8[$13 + 5 >> 0] | 0;
HEAP8[$l_tmp + 6 >> 0] = HEAP8[$13 + 6 >> 0] | 0;
HEAP8[$l_tmp + 7 >> 0] = HEAP8[$13 + 7 >> 0] | 0;
HEAP8[$l_tmp + 8 >> 0] = HEAP8[$12 + 248 >> 0] | 0;
HEAP8[$l_tmp + 9 >> 0] = HEAP8[$13 + 9 >> 0] | 0;
HEAP8[$l_tmp + 10 >> 0] = HEAP8[$13 + 10 >> 0] | 0;
HEAP8[$l_tmp + 11 >> 0] = HEAP8[$13 + 11 >> 0] | 0;
HEAP8[$l_tmp + 12 >> 0] = HEAP8[$12 + 252 >> 0] | 0;
HEAP8[$l_tmp + 13 >> 0] = HEAP8[$13 + 13 >> 0] | 0;
HEAP8[$l_tmp + 14 >> 0] = HEAP8[$13 + 14 >> 0] | 0;
HEAP8[$l_tmp + 15 >> 0] = HEAP8[$13 + 15 >> 0] | 0;
break;
} while (0);
_double_block($l_tmp);
$76 = $$0$i1 + -16 | 0;
if (!$76) {
$$0 = $l_tmp;
return $$0 | 0;
} else $ntz$02 = $76;
do {
_double_block($l_tmp);
$ntz$02 = $ntz$02 + -1 | 0;
} while (($ntz$02 | 0) != 0);
$$0 = $l_tmp;
return $$0 | 0;
}
function _GNUNET_CRYPTO_eddsa_sign($priv, $purpose, $sig) {
$priv = $priv | 0;
$purpose = $purpose | 0;
$sig = $sig | 0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $22 = 0, $25 = 0, $rs = 0, $sig_sexp = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$sig_sexp = sp + 32 | 0;
$rs = sp + 24 | 0;
$0 = _decode_private_eddsa_key($priv) | 0;
$1 = _data_to_eddsa_value($purpose) | 0;
$2 = _gcry_pk_sign($sig_sexp, $1, $0) | 0;
if ($2) {
if ((HEAP32[213] | 0) == -1) HEAP32[213] = _GNUNET_get_log_call_status(2, 20654, 19324, 19688, 807) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[213] | 0) {
$10 = _gcry_strerror($2) | 0;
HEAP32[$vararg_buffer >> 2] = 19324;
HEAP32[$vararg_buffer + 4 >> 2] = 807;
HEAP32[$vararg_buffer + 8 >> 2] = $10;
_GNUNET_log_from_nocheck(2, 20654, 19713, $vararg_buffer);
}
_gcry_sexp_release($1);
_gcry_sexp_release($0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
_gcry_sexp_release($0);
_gcry_sexp_release($1);
if (!(_key_from_sexp($rs, HEAP32[$sig_sexp >> 2] | 0, 37191, 46543) | 0)) {
_gcry_sexp_release(HEAP32[$sig_sexp >> 2] | 0);
$22 = HEAP32[$rs >> 2] | 0;
_GNUNET_CRYPTO_mpi_print_unsigned($sig, 32, $22);
$25 = HEAP32[$rs + 4 >> 2] | 0;
_GNUNET_CRYPTO_mpi_print_unsigned($sig + 32 | 0, 32, $25);
_gcry_mpi_release($22);
_gcry_mpi_release($25);
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[214] | 0) == -1) HEAP32[214] = _GNUNET_get_log_call_status(1, 0, 19324, 19688, 819) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[214] | 0) {
HEAP32[$vararg_buffer3 >> 2] = 19324;
HEAP32[$vararg_buffer3 + 4 >> 2] = 819;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer3);
}
_gcry_sexp_release(HEAP32[$sig_sexp >> 2] | 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_cipher_close($h) {
$h = $h | 0;
var $1 = 0, $11 = 0, $12 = 0, $19 = 0, $20 = 0, $22 = 0, $3 = 0, $5 = 0, $_vlen$0$lcssa = 0, $_vlen$05 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$33 = 0, $_vptr$0$lcssa = 0, $_vptr$06 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$34 = 0, $scevgep = 0;
if (!$h) return;
$1 = HEAP32[$h >> 2] | 0;
L4 : do if (($1 | 0) < 1183944770) {
switch ($1 | 0) {
case 604576100:
{
break L4;
break;
}
default:
{}
}
__gcry_fatal_error(63, 23837);
} else {
switch ($1 | 0) {
case 1183944770:
{
break L4;
break;
}
default:
{}
}
__gcry_fatal_error(63, 23837);
} while (0);
HEAP32[$h >> 2] = 0;
$3 = HEAP32[$h + 8 >> 2] | 0;
$5 = HEAP32[$h + 4 >> 2] | 0;
if (($5 | 0) != 0 & ($h & 7 | 0) != 0) {
$_vlen$05 = $5;
$_vptr$06 = $h;
while (1) {
HEAP8[$_vptr$06 >> 0] = 0;
$11 = $_vptr$06 + 1 | 0;
$12 = $_vlen$05 + -1 | 0;
if (($12 | 0) != 0 & ($11 & 7 | 0) != 0) {
$_vlen$05 = $12;
$_vptr$06 = $11;
} else {
$_vlen$0$lcssa = $12;
$_vptr$0$lcssa = $11;
break;
}
}
} else {
$_vlen$0$lcssa = $5;
$_vptr$0$lcssa = $h;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$19 = $_vlen$0$lcssa + -8 | 0;
$20 = $19 & -8;
$scevgep = $_vptr$0$lcssa + ($20 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$22 = $_vptr$1;
HEAP32[$22 >> 2] = 0;
HEAP32[$22 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $19 - $20 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$33 = $_vlen$3$ph;
$_vptr$34 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$34 >> 0] = 0;
$_vlen$33 = $_vlen$33 + -1 | 0;
if (!$_vlen$33) break; else $_vptr$34 = $_vptr$34 + 1 | 0;
}
}
__gcry_free($h + (0 - $3) | 0);
return;
}
function _add_randomness($buffer, $length, $origin) {
$buffer = $buffer | 0;
$length = $length | 0;
$origin = $origin | 0;
var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $33 = 0, $38 = 0, $42 = 0, $6 = 0, $count$0$be = 0, $count$03 = 0, $count$1 = 0, $p$02 = 0, $p$02$us = 0;
if (!(HEAP32[17542] | 0)) __gcry_assert_failed(50047, 50062, 1074, 50088);
HEAP32[17548] = (HEAP32[17548] | 0) + $length;
HEAP32[17547] = (HEAP32[17547] | 0) + 1;
$6 = $length + -1 | 0;
if (!$length) return;
if ($origin >>> 0 < 3) {
$20 = $6;
$p$02$us = $buffer;
while (1) {
$10 = HEAP8[$p$02$us >> 0] | 0;
$11 = HEAP32[17557] | 0;
$12 = $11 + 1 | 0;
HEAP32[17557] = $12;
$13 = HEAP32[17556] | 0;
$14 = $13 + $11 | 0;
HEAP8[$14 >> 0] = HEAP8[$14 >> 0] ^ $10;
if ($12 >>> 0 > 599) {
HEAP32[17557] = 0;
_mix_pool($13);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = ($20 | 0) == 0 & 1;
}
if (!$20) break; else {
$20 = $20 + -1 | 0;
$p$02$us = $p$02$us + 1 | 0;
}
}
return;
} else {
$42 = $6;
$count$03 = 0;
$p$02 = $buffer;
}
while (1) {
$26 = HEAP8[$p$02 >> 0] | 0;
$p$02 = $p$02 + 1 | 0;
$27 = HEAP32[17557] | 0;
$28 = $27 + 1 | 0;
HEAP32[17557] = $28;
$29 = HEAP32[17556] | 0;
$30 = $29 + $27 | 0;
HEAP8[$30 >> 0] = HEAP8[$30 >> 0] ^ $26;
$33 = $count$03 + 1 | 0;
if ($28 >>> 0 > 599) {
if (!(HEAP32[17543] | 0)) {
$38 = (HEAP32[17566] | 0) + $33 | 0;
HEAP32[17566] = $38;
if ($38 >>> 0 > 599) {
HEAP32[17543] = 1;
$count$1 = 0;
} else $count$1 = 0;
} else $count$1 = $33;
HEAP32[17557] = 0;
_mix_pool($29);
HEAP32[17544] = (HEAP32[17544] | 0) + 1;
HEAP32[17558] = ($42 | 0) == 0 & 1;
$count$0$be = $count$1;
} else $count$0$be = $33;
if (!$42) break; else {
$42 = $42 + -1 | 0;
$count$03 = $count$0$be;
}
}
return;
}
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, $10 = 0, $14 = 0, $20 = 0, $21 = 0, $22 = 0, $29 = 0, $32 = 0, $33 = 0, $7 = 0, $9 = 0, $wd$0$lcssa = 0, $wd$010 = 0, $ws$0$lcssa = 0, $ws$011 = 0, label = 0;
$0 = $s;
L1 : do if (!(($0 ^ $d) & 3)) {
if (!($0 & 3)) {
$$0$lcssa = $s;
$$01$lcssa = $d;
} else {
$$0115 = $d;
$$016 = $s;
while (1) {
$7 = HEAP8[$$016 >> 0] | 0;
HEAP8[$$0115 >> 0] = $7;
if (!($7 << 24 >> 24)) {
$$03 = $$0115;
break L1;
}
$9 = $$016 + 1 | 0;
$10 = $$0115 + 1 | 0;
if (!($9 & 3)) {
$$0$lcssa = $9;
$$01$lcssa = $10;
break;
} else {
$$0115 = $10;
$$016 = $9;
}
}
}
$14 = HEAP32[$$0$lcssa >> 2] | 0;
if (!(($14 & -2139062144 ^ -2139062144) & $14 + -16843009)) {
$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;
$22 = HEAP32[$20 >> 2] | 0;
if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) {
$wd$0$lcssa = $21;
$ws$0$lcssa = $20;
break;
} else {
$wd$010 = $21;
$ws$011 = $20;
}
}
} 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;
if (!($29 << 24 >> 24)) $$03 = $$12$ph; else {
$$128 = $$12$ph;
$$19 = $$1$ph;
while (1) {
$$19 = $$19 + 1 | 0;
$32 = $$128 + 1 | 0;
$33 = HEAP8[$$19 >> 0] | 0;
HEAP8[$32 >> 0] = $33;
if (!($33 << 24 >> 24)) {
$$03 = $32;
break;
} else $$128 = $32;
}
}
}
return $$03 | 0;
}
function _getrlimit($resource, $rlim) {
$resource = $resource | 0;
$rlim = $rlim | 0;
var $$0 = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $26 = 0, $3 = 0, $36 = 0, $37 = 0, $40 = 0, $45 = 0, $46 = 0, $49 = 0, $50 = 0, $54 = 0, $58 = 0, $k_rlim = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer = sp;
$k_rlim = sp + 24 | 0;
HEAP32[$vararg_buffer >> 2] = 0;
HEAP32[$vararg_buffer + 4 >> 2] = $resource;
HEAP32[$vararg_buffer + 8 >> 2] = 0;
HEAP32[$vararg_buffer + 12 >> 2] = $rlim;
$1 = ___syscall_ret(___syscall340(340, $vararg_buffer | 0) | 0) | 0;
if (!$1) {
$3 = $rlim;
if ((HEAP32[$3 >> 2] | 0) == -1 ? (HEAP32[$3 + 4 >> 2] | 0) == -1 : 0) {
$12 = $rlim;
HEAP32[$12 >> 2] = -1;
HEAP32[$12 + 4 >> 2] = -1;
}
$16 = $rlim + 8 | 0;
$17 = $16;
if ((HEAP32[$17 >> 2] | 0) == -1 ? (HEAP32[$17 + 4 >> 2] | 0) == -1 : 0) {
$26 = $16;
HEAP32[$26 >> 2] = -1;
HEAP32[$26 + 4 >> 2] = -1;
$$0 = 0;
} else $$0 = 0;
} else if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 38) {
HEAP32[$vararg_buffer4 >> 2] = $resource;
HEAP32[$vararg_buffer4 + 4 >> 2] = $k_rlim;
if ((___syscall_ret(___syscall191(191, $vararg_buffer4 | 0) | 0) | 0) < 0) $$0 = -1; else {
$36 = HEAP32[$k_rlim >> 2] | 0;
$37 = ($36 | 0) == -1;
$40 = $rlim;
HEAP32[$40 >> 2] = $37 ? -1 : $36;
HEAP32[$40 + 4 >> 2] = $37 ? -1 : 0;
$45 = HEAP32[$k_rlim + 4 >> 2] | 0;
$46 = ($45 | 0) == -1;
$49 = $rlim + 8 | 0;
$50 = $49;
HEAP32[$50 >> 2] = $46 ? -1 : $45;
HEAP32[$50 + 4 >> 2] = $46 ? -1 : 0;
if ($37) {
$54 = $rlim;
HEAP32[$54 >> 2] = -1;
HEAP32[$54 + 4 >> 2] = -1;
}
if ($46) {
$58 = $49;
HEAP32[$58 >> 2] = -1;
HEAP32[$58 + 4 >> 2] = -1;
$$0 = 0;
} else $$0 = 0;
}
} else $$0 = $1;
STACKTOP = sp;
return $$0 | 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, $10 = 0, $16 = 0, $17 = 0, $18 = 0, $20 = 0, $25 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
if (($e | 0) == 0 | ($xp | 0) != 0 & ($xp1 | 0) != 0 & ($xp2 | 0) != 0 ^ 1) {
$$0 = 0;
return $$0 | 0;
}
if (!(__gcry_mpi_test_bit($e, 0) | 0)) {
$$0 = 0;
return $$0 | 0;
}
$6 = _find_x931_prime($xp1) | 0;
$7 = _find_x931_prime($xp2) | 0;
$8 = __gcry_mpi_alloc_like($xp) | 0;
__gcry_mpi_mul($8, $6, $7);
$9 = __gcry_mpi_alloc_like($6) | 0;
__gcry_mpi_invm($9, $7, $6) | 0;
__gcry_mpi_mul($9, $9, $7);
$10 = __gcry_mpi_alloc_like($7) | 0;
__gcry_mpi_invm($10, $6, $7) | 0;
__gcry_mpi_mul($10, $10, $6);
__gcry_mpi_sub($9, $9, $10);
if (HEAP32[$9 + 8 >> 2] | 0) __gcry_mpi_add($9, $9, $8);
__gcry_mpi_subm($10, $9, $xp, $8);
__gcry_mpi_add($10, $10, $xp);
__gcry_mpi_free($9);
if ((__gcry_mpi_cmp($10, $xp) | 0) < 0) __gcry_mpi_add($10, $10, $8);
$16 = __gcry_mpi_alloc_set_ui(2) | 0;
$17 = __gcry_mpi_alloc_like($10) | 0;
__gcry_mpi_sub_ui($8, $8, 1);
__gcry_mpi_sub_ui($10, $10, 1);
while (1) {
$18 = __gcry_mpi_gcd($17, $e, $10) | 0;
__gcry_mpi_add_ui($10, $10, 1);
if (!$18) {
$20 = HEAP32[17511] | 0;
if ($20) FUNCTION_TABLE_viiiii[$20 & 15](HEAP32[17512] | 0, 36874, 47, 0, 0);
} else if (_check_prime($10, $16, 64, 0, 0) | 0) break;
__gcry_mpi_add($10, $10, $8);
}
__gcry_mpi_free($17);
__gcry_mpi_free($16);
__gcry_mpi_free($8);
$25 = HEAP32[17511] | 0;
if ($25) FUNCTION_TABLE_viiiii[$25 & 15](HEAP32[17512] | 0, 36874, 10, 0, 0);
if (!$r_p1) __gcry_mpi_free($6); else HEAP32[$r_p1 >> 2] = $6;
if (!$r_p2) {
__gcry_mpi_free($7);
$$0 = $10;
return $$0 | 0;
} else {
HEAP32[$r_p2 >> 2] = $7;
$$0 = $10;
return $$0 | 0;
}
return 0;
}
function _run_selftests_1358($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $0 = 0, $11 = 0, $13 = 0, $3 = 0, $5 = 0, $8 = 0, $ec$0 = 0, $errtxt$0$i = 0, $errtxt$0$i$2 = 0, $what$0$i = 0, $what$0$i$1 = 0;
switch ($algo | 0) {
case 9:
{
$0 = __gcry_hash_selftest_check_one(9, 0, 42301, 3, 42305, 48) | 0;
if (!$0) {
if (!$extended) {
$ec$0 = 0;
return $ec$0 | 0;
}
$3 = __gcry_hash_selftest_check_one(9, 0, 42354, 112, 42467, 48) | 0;
if (!$3) {
$5 = __gcry_hash_selftest_check_one(9, 1, 0, 0, 42516, 48) | 0;
if (!$5) {
$ec$0 = 0;
return $ec$0 | 0;
} else {
$errtxt$0$i = $5;
$what$0$i = 42590;
}
} else {
$errtxt$0$i = $3;
$what$0$i = 42578;
}
} else {
$errtxt$0$i = $0;
$what$0$i = 42565;
}
if (!$report) {
$ec$0 = 50;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](42606, 9, $what$0$i, $errtxt$0$i);
$ec$0 = 50;
return $ec$0 | 0;
}
case 10:
{
$8 = __gcry_hash_selftest_check_one(10, 0, 42301, 3, 42613, 64) | 0;
if (!$8) {
if (!$extended) {
$ec$0 = 0;
return $ec$0 | 0;
}
$11 = __gcry_hash_selftest_check_one(10, 0, 42354, 112, 42678, 64) | 0;
if (!$11) {
$13 = __gcry_hash_selftest_check_one(10, 1, 0, 0, 42743, 64) | 0;
if (!$13) {
$ec$0 = 0;
return $ec$0 | 0;
} else {
$errtxt$0$i$2 = $13;
$what$0$i$1 = 42590;
}
} else {
$errtxt$0$i$2 = $11;
$what$0$i$1 = 42578;
}
} else {
$errtxt$0$i$2 = $8;
$what$0$i$1 = 42565;
}
if (!$report) {
$ec$0 = 50;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](42606, 10, $what$0$i$1, $errtxt$0$i$2);
$ec$0 = 50;
return $ec$0 | 0;
}
default:
{
$ec$0 = 5;
return $ec$0 | 0;
}
}
return 0;
}
function _poly1305_init_ext_ref32($state, $key) {
$state = $state | 0;
$key = $key | 0;
var $0 = 0, $15 = 0, $35 = 0, $88 = 0;
$0 = $key + 3 | 0;
HEAP32[$state >> 2] = (HEAPU8[$key + 2 >> 0] | 0) << 16 | (HEAPU8[$0 >> 0] | 0) << 24 & 50331648 | (HEAPU8[$key + 1 >> 0] | 0) << 8 | (HEAPU8[$key >> 0] | 0);
$15 = $key + 6 | 0;
HEAP32[$state + 4 >> 2] = ((HEAPU8[$key + 5 >> 0] | 0) << 16 | (HEAPU8[$15 >> 0] | 0) << 24 | (HEAPU8[$key + 4 >> 0] | 0) << 8 | (HEAPU8[$0 >> 0] | 0)) >>> 2 & 67108611;
$35 = $key + 9 | 0;
HEAP32[$state + 8 >> 2] = ((HEAPU8[$key + 8 >> 0] | 0) << 16 | (HEAPU8[$35 >> 0] | 0) << 24 | (HEAPU8[$key + 7 >> 0] | 0) << 8 | (HEAPU8[$15 >> 0] | 0)) >>> 4 & 67092735;
HEAP32[$state + 12 >> 2] = ((HEAPU8[$key + 11 >> 0] | 0) << 16 | (HEAPU8[$key + 12 >> 0] | 0) << 24 | (HEAPU8[$key + 10 >> 0] | 0) << 8 | (HEAPU8[$35 >> 0] | 0)) >>> 6 & 66076671;
HEAP32[$state + 16 >> 2] = (HEAPU8[$key + 14 >> 0] | 0) << 8 | (HEAPU8[$key + 15 >> 0] | 0) << 16 & 983040 | (HEAPU8[$key + 13 >> 0] | 0);
$88 = $state + 20 | 0;
HEAP32[$88 >> 2] = 0;
HEAP32[$88 + 4 >> 2] = 0;
HEAP32[$88 + 8 >> 2] = 0;
HEAP32[$88 + 12 >> 2] = 0;
HEAP32[$88 + 16 >> 2] = 0;
HEAP32[$state + 40 >> 2] = (HEAPU8[$key + 18 >> 0] | 0) << 16 | (HEAPU8[$key + 19 >> 0] | 0) << 24 | (HEAPU8[$key + 17 >> 0] | 0) << 8 | (HEAPU8[$key + 16 >> 0] | 0);
HEAP32[$state + 44 >> 2] = (HEAPU8[$key + 22 >> 0] | 0) << 16 | (HEAPU8[$key + 23 >> 0] | 0) << 24 | (HEAPU8[$key + 21 >> 0] | 0) << 8 | (HEAPU8[$key + 20 >> 0] | 0);
HEAP32[$state + 48 >> 2] = (HEAPU8[$key + 26 >> 0] | 0) << 16 | (HEAPU8[$key + 27 >> 0] | 0) << 24 | (HEAPU8[$key + 25 >> 0] | 0) << 8 | (HEAPU8[$key + 24 >> 0] | 0);
HEAP32[$state + 52 >> 2] = (HEAPU8[$key + 30 >> 0] | 0) << 16 | (HEAPU8[$key + 31 >> 0] | 0) << 24 | (HEAPU8[$key + 29 >> 0] | 0) << 8 | (HEAPU8[$key + 28 >> 0] | 0);
HEAP8[$state + 56 >> 0] = 0;
return;
}
function _run_selftests_1335($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $0 = 0, $11 = 0, $13 = 0, $3 = 0, $5 = 0, $8 = 0, $ec$0 = 0, $errtxt$0$i = 0, $errtxt$0$i$2 = 0, $what$0$i = 0, $what$0$i$1 = 0;
switch ($algo | 0) {
case 11:
{
$0 = __gcry_hash_selftest_check_one(11, 0, 42301, 3, 41938, 28) | 0;
if (!$0) {
if (!$extended) {
$ec$0 = 0;
return $ec$0 | 0;
}
$3 = __gcry_hash_selftest_check_one(11, 0, 41967, 56, 42024, 28) | 0;
if (!$3) {
$5 = __gcry_hash_selftest_check_one(11, 1, 0, 0, 42053, 28) | 0;
if (!$5) {
$ec$0 = 0;
return $ec$0 | 0;
} else {
$errtxt$0$i = $5;
$what$0$i = 42590;
}
} else {
$errtxt$0$i = $3;
$what$0$i = 42578;
}
} else {
$errtxt$0$i = $0;
$what$0$i = 42565;
}
if (!$report) {
$ec$0 = 50;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](42606, 11, $what$0$i, $errtxt$0$i);
$ec$0 = 50;
return $ec$0 | 0;
}
case 8:
{
$8 = __gcry_hash_selftest_check_one(8, 0, 42301, 3, 42082, 32) | 0;
if (!$8) {
if (!$extended) {
$ec$0 = 0;
return $ec$0 | 0;
}
$11 = __gcry_hash_selftest_check_one(8, 0, 41967, 56, 42115, 32) | 0;
if (!$11) {
$13 = __gcry_hash_selftest_check_one(8, 1, 0, 0, 42148, 32) | 0;
if (!$13) {
$ec$0 = 0;
return $ec$0 | 0;
} else {
$errtxt$0$i$2 = $13;
$what$0$i$1 = 42590;
}
} else {
$errtxt$0$i$2 = $11;
$what$0$i$1 = 42578;
}
} else {
$errtxt$0$i$2 = $8;
$what$0$i$1 = 42565;
}
if (!$report) {
$ec$0 = 50;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](42606, 8, $what$0$i$1, $errtxt$0$i$2);
$ec$0 = 50;
return $ec$0 | 0;
}
default:
{
$ec$0 = 5;
return $ec$0 | 0;
}
}
return 0;
}
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 $$1 = 0, $$lcssa = 0, $1 = 0, $11 = 0, $12 = 0, $14 = 0, $15 = 0, $18 = 0, $25 = 0, $5 = 0, $count = 0, $i$04 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$count = sp;
HEAP32[$count >> 2] = 0;
$5 = 3;
$i$04 = 0;
while (1) {
$1 = $i$04 + 1 | 0;
if (__gcry_mpi_divisible_ui($prime, $5) | 0) {
$$lcssa = $5;
label = 4;
break;
}
if (($1 | 0) == 668) break; else {
$5 = HEAPU16[16068 + ($1 << 1) >> 1] | 0;
$i$04 = $1;
}
}
if ((label | 0) == 4) {
$$1 = (__gcry_mpi_cmp_ui($prime, $$lcssa) | 0) == 0 & 1;
STACKTOP = sp;
return $$1 | 0;
}
$11 = __gcry_mpi_alloc_like($prime) | 0;
$12 = __gcry_mpi_alloc_like($prime) | 0;
__gcry_mpi_sub_ui($12, $prime, 1);
__gcry_mpi_powm($11, $val_2, $12, $prime);
__gcry_mpi_free($12);
$14 = (__gcry_mpi_cmp_ui($11, 1) | 0) == 0;
__gcry_mpi_free($11);
if (!$14) {
$15 = HEAP32[17511] | 0;
if (!$15) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
FUNCTION_TABLE_viiiii[$15 & 15](HEAP32[17512] | 0, 36874, 46, 0, 0);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$18 = ($cb_func | 0) != 0;
if ($18) {
if (FUNCTION_TABLE_iiii[$cb_func & 63]($cb_arg, 2, $prime) | 0) label = 10;
} else label = 10;
if ((label | 0) == 10) if (_is_prime($prime, $rm_rounds, $count) | 0) {
if (!$18) {
$$1 = 1;
STACKTOP = sp;
return $$1 | 0;
}
if (FUNCTION_TABLE_iiii[$cb_func & 63]($cb_arg, 1, $prime) | 0) {
$$1 = 1;
STACKTOP = sp;
return $$1 | 0;
}
}
$25 = HEAP32[17511] | 0;
if (!$25) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
FUNCTION_TABLE_viiiii[$25 & 15](HEAP32[17512] | 0, 36874, 46, 0, 0);
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
function _GNUNET_CRYPTO_eddsa_key_get_public($priv, $pub) {
$priv = $priv | 0;
$pub = $pub | 0;
var $0 = 0, $17 = 0, $ctx = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer6 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$ctx = sp + 24 | 0;
$0 = _decode_private_eddsa_key($priv) | 0;
if (!$0) {
if ((HEAP32[199] | 0) == -1) HEAP32[199] = _GNUNET_get_log_call_status(1, 0, 19324, 19345, 257) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[199] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 19324;
HEAP32[$vararg_buffer + 4 >> 2] = 257;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
if (_gcry_mpi_ec_new($ctx, $0, 0) | 0) {
if ((HEAP32[200] | 0) == -1) HEAP32[200] = _GNUNET_get_log_call_status(1, 0, 19324, 19345, 258) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[200] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 19324;
HEAP32[$vararg_buffer2 + 4 >> 2] = 258;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
}
_gcry_sexp_release($0);
$17 = _gcry_mpi_ec_get_mpi(19337, HEAP32[$ctx >> 2] | 0, 0) | 0;
if ($17) {
_GNUNET_CRYPTO_mpi_print_unsigned($pub, 32, $17);
_gcry_mpi_release($17);
_gcry_ctx_release(HEAP32[$ctx >> 2] | 0);
STACKTOP = sp;
return;
}
if ((HEAP32[201] | 0) == -1) HEAP32[201] = _GNUNET_get_log_call_status(1, 0, 19324, 19345, 261) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[201] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer6 >> 2] = 19324;
HEAP32[$vararg_buffer6 + 4 >> 2] = 261;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer6);
_GNUNET_abort_();
}
function __gcry_create_nonce($buffer, $length) {
$buffer = $buffer | 0;
$length = $length | 0;
var $$02 = 0, $10 = 0, $16 = 0, $17 = 0, $25 = 0, $29 = 0, $apid = 0, $p$01 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$apid = sp + 12 | 0;
if (__gcry_fips_mode() | 0) {
__gcry_rngfips_create_nonce($buffer, $length);
STACKTOP = sp;
return;
}
do if (!(__gcry_fips_mode() | 0)) {
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_initialize(1);
break;
}
if (HEAP32[17521] | 0) {
__gcry_rngfips_initialize(1);
break;
}
if (!(HEAP32[17522] | 0)) {
__gcry_rngcsprng_initialize(1);
break;
} else {
__gcry_rngsystem_initialize(1);
break;
}
} else __gcry_rngfips_initialize(1); while (0);
$10 = _gpgrt_lock_lock(12096) | 0;
if ($10) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($10) | 0;
__gcry_log_fatal(44903, $vararg_buffer);
}
HEAP32[$apid >> 2] = _getpid() | 0;
if (!(HEAP32[17523] | 0)) {
$16 = _time(0) | 0;
$17 = HEAP32[$apid >> 2] | 0;
HEAP32[17524] = HEAP32[$apid >> 2];
HEAP32[17525] = $17;
HEAP32[17526] = $16;
_do_randomize(70120, 8, 0);
HEAP32[17523] = 1;
} else if ((HEAP32[17524] | 0) != (HEAP32[$apid >> 2] | 0)) {
_do_randomize(70120, 8, 0);
HEAP32[17524] = HEAP32[$apid >> 2];
}
if ($length) {
$$02 = $length;
$p$01 = $buffer;
while (1) {
__gcry_sha1_hash_buffer(70100, 70100, 28);
$25 = $$02 >>> 0 > 20 ? 20 : $$02;
_memcpy($p$01 | 0, 70100, $25 | 0) | 0;
if (($$02 | 0) == ($25 | 0)) break; else {
$$02 = $$02 - $25 | 0;
$p$01 = $p$01 + $25 | 0;
}
}
}
$29 = _gpgrt_lock_unlock(12096) | 0;
if (!$29) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($29) | 0;
__gcry_log_fatal(44948, $vararg_buffer1);
}
}
function _setup_cipher_twofish($handle, $sessionkey, $iv) {
$handle = $handle | 0;
$sessionkey = $sessionkey | 0;
$iv = $iv | 0;
var $10 = 0, $21 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer6 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
if (_gcry_cipher_open($handle, 10, 2, 0) | 0) {
if ((HEAP32[193] | 0) == -1) HEAP32[193] = _GNUNET_get_log_call_status(1, 0, 19203, 19286, 98) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[193] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 19203;
HEAP32[$vararg_buffer + 4 >> 2] = 98;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
$10 = _gcry_cipher_setkey(HEAP32[$handle >> 2] | 0, $sessionkey + 32 | 0, 32) | 0;
if (!(($10 | 0) == 0 | ($10 & 255 | 0) == 43)) {
if ((HEAP32[194] | 0) == -1) HEAP32[194] = _GNUNET_get_log_call_status(1, 0, 19203, 19286, 102) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[194] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 19203;
HEAP32[$vararg_buffer2 + 4 >> 2] = 102;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
}
$21 = _gcry_cipher_setiv(HEAP32[$handle >> 2] | 0, $iv + 16 | 0, 16) | 0;
if (($21 | 0) == 0 | ($21 & 255 | 0) == 43) {
STACKTOP = sp;
return;
}
if ((HEAP32[195] | 0) == -1) HEAP32[195] = _GNUNET_get_log_call_status(1, 0, 19203, 19286, 106) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[195] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer6 >> 2] = 19203;
HEAP32[$vararg_buffer6 + 4 >> 2] = 106;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer6);
_GNUNET_abort_();
}
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, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $9 = 0, $_vlen$0$lcssa$i = 0, $_vlen$05$i = 0, $_vlen$1$i = 0, $_vlen$3$ph$i = 0, $_vlen$33$i = 0, $_vptr$0$lcssa$i = 0, $_vptr$06$i = 0, $_vptr$1$i = 0, $_vptr$3$ph$i = 0, $_vptr$34$i = 0;
$0 = $a + 16 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!$1) {
HEAP32[$0 >> 2] = $ap;
HEAP32[$a >> 2] = $nlimbs;
return;
}
$4 = HEAP32[$a >> 2] << 2;
if ($4) {
if (!($1 & 7)) {
$_vlen$0$lcssa$i = $4;
$_vptr$0$lcssa$i = $1;
} else {
$_vlen$05$i = $4;
$_vptr$06$i = $1;
while (1) {
HEAP8[$_vptr$06$i >> 0] = 0;
$9 = $_vptr$06$i + 1 | 0;
$10 = $_vlen$05$i + -1 | 0;
if (($10 | 0) != 0 & ($9 & 7 | 0) != 0) {
$_vlen$05$i = $10;
$_vptr$06$i = $9;
} else {
$_vlen$0$lcssa$i = $10;
$_vptr$0$lcssa$i = $9;
break;
}
}
}
if ($_vlen$0$lcssa$i >>> 0 < 8) {
$_vlen$3$ph$i = $_vlen$0$lcssa$i;
$_vptr$3$ph$i = $_vptr$0$lcssa$i;
} else {
$17 = $_vlen$0$lcssa$i + -8 | 0;
$18 = $17 & -8;
$19 = $18 + 8 | 0;
$_vlen$1$i = $_vlen$0$lcssa$i;
$_vptr$1$i = $_vptr$0$lcssa$i;
while (1) {
$20 = $_vptr$1$i;
HEAP32[$20 >> 2] = 0;
HEAP32[$20 + 4 >> 2] = 0;
$_vlen$1$i = $_vlen$1$i + -8 | 0;
if ($_vlen$1$i >>> 0 <= 7) break; else $_vptr$1$i = $_vptr$1$i + 8 | 0;
}
$_vlen$3$ph$i = $17 - $18 | 0;
$_vptr$3$ph$i = $_vptr$0$lcssa$i + $19 | 0;
}
if ($_vlen$3$ph$i) {
$_vlen$33$i = $_vlen$3$ph$i;
$_vptr$34$i = $_vptr$3$ph$i;
while (1) {
HEAP8[$_vptr$34$i >> 0] = 0;
$_vlen$33$i = $_vlen$33$i + -1 | 0;
if (!$_vlen$33$i) break; else $_vptr$34$i = $_vptr$34$i + 1 | 0;
}
}
}
__gcry_free($1);
HEAP32[$0 >> 2] = $ap;
HEAP32[$a >> 2] = $nlimbs;
return;
}
function _GNUNET_CRYPTO_rsa_sign($key, $msg, $msg_len) {
$key = $key | 0;
$msg = $msg | 0;
$msg_len = $msg_len | 0;
var $$0 = 0, $0 = 0, $10 = 0, $24 = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$result = sp + 16 | 0;
$0 = _data_to_sexp($msg, $msg_len) | 0;
if (_gcry_pk_sign($result, $0, HEAP32[$key >> 2] | 0) | 0) {
if ((HEAP32[246] | 0) == -1) HEAP32[246] = _GNUNET_get_log_call_status(1, 0, 20567, 21056, 767) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[246] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 767;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$10 = _GNUNET_CRYPTO_rsa_private_key_get_public($key) | 0;
if (!(_gcry_pk_verify(HEAP32[$result >> 2] | 0, $0, HEAP32[$10 >> 2] | 0) | 0)) {
_gcry_sexp_release(HEAP32[$10 >> 2] | 0);
_GNUNET_xfree_($10, 20567, 294);
_gcry_sexp_release($0);
$24 = _GNUNET_xmalloc_(4, 20567, 788) | 0;
HEAP32[$24 >> 2] = HEAP32[$result >> 2];
$$0 = $24;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[247] | 0) == -1) HEAP32[247] = _GNUNET_get_log_call_status(1, 0, 20567, 21056, 778) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[247] | 0) {
HEAP32[$vararg_buffer2 >> 2] = 20567;
HEAP32[$vararg_buffer2 + 4 >> 2] = 778;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
}
_gcry_sexp_release(HEAP32[$10 >> 2] | 0);
_GNUNET_xfree_($10, 20567, 294);
_gcry_sexp_release($0);
_gcry_sexp_release(HEAP32[$result >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function _md_open($h, $algo, $flags) {
$h = $h | 0;
$algo = $algo | 0;
$flags = $flags | 0;
var $0 = 0, $1 = 0, $14 = 0, $16 = 0, $3 = 0, $32 = 0, $33 = 0, $38 = 0, $41 = 0, $7 = 0, $8 = 0, $err$27 = 0, $hd$0$in = 0;
$0 = $flags & 1;
$1 = ($0 | 0) != 0;
$3 = ($flags & 2 | 0) == 0;
$7 = ($0 << 9 ^ 512) + 535 & 1552;
$8 = $7 + 28 | 0;
if ($1) $hd$0$in = __gcry_malloc_secure($8) | 0; else $hd$0$in = __gcry_malloc($8) | 0;
if (!$hd$0$in) {
$14 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if ($14) {
$err$27 = $14;
return $err$27 | 0;
}
}
$16 = $hd$0$in + $7 | 0;
HEAP32[$hd$0$in >> 2] = $16;
HEAP32[$hd$0$in + 8 >> 2] = $7 + -15;
HEAP32[$hd$0$in + 4 >> 2] = 0;
HEAP32[$16 >> 2] = 0;
HEAP32[$16 + 4 >> 2] = 0;
HEAP32[$16 + 8 >> 2] = 0;
HEAP32[$16 + 12 >> 2] = 0;
HEAP32[$16 + 16 >> 2] = 0;
HEAP32[$16 + 20 >> 2] = 0;
HEAP32[$16 + 24 >> 2] = 0;
HEAP32[$16 >> 2] = $1 ? 378630161 : 285677921;
HEAP32[$16 + 4 >> 2] = $8;
HEAP8[$16 + 12 >> 0] = $flags >>> 6 & 4 | $flags & 1;
if (!$3) {
switch ($algo | 0) {
case 10:
case 9:
{
HEAP32[$16 + 24 >> 2] = 128;
$32 = 256;
break;
}
case 311:
case 308:
{
HEAP32[$16 + 24 >> 2] = 32;
$32 = 64;
break;
}
default:
{
HEAP32[$16 + 24 >> 2] = 64;
$32 = 128;
}
}
$33 = __gcry_malloc_secure($32) | 0;
HEAP32[$16 + 20 >> 2] = $33;
if (!$33) {
$38 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
_md_close($hd$0$in);
if ($38) {
$err$27 = $38;
return $err$27 | 0;
}
}
}
__gcry_fast_random_poll();
if ($algo) {
$41 = _md_enable(HEAP32[$hd$0$in >> 2] | 0, $algo) | 0;
if ($41) {
_md_close($hd$0$in);
$err$27 = $41;
return $err$27 | 0;
}
}
HEAP32[$h >> 2] = $hd$0$in;
$err$27 = 0;
return $err$27 | 0;
}
function _vfprintf($f, $fmt, $ap) {
$f = $f | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
var $$ = 0, $$0 = 0, $12 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $28 = 0, $32 = 0, $6 = 0, $7 = 0, $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0, $ret$1 = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224 | 0;
$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;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2];
if ((_printf_core(0, $fmt, $ap2, $nl_arg, $nl_type) | 0) < 0) $$0 = -1; else {
if ((HEAP32[$f + 76 >> 2] | 0) > -1) $32 = ___lockfile($f) | 0; else $32 = 0;
$6 = HEAP32[$f >> 2] | 0;
$7 = $6 & 32;
if ((HEAP8[$f + 74 >> 0] | 0) < 1) HEAP32[$f >> 2] = $6 & -33;
$12 = $f + 48 | 0;
if (!(HEAP32[$12 >> 2] | 0)) {
$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;
$21 = $f + 16 | 0;
HEAP32[$21 >> 2] = $internal_buf + 80;
$22 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0;
if (!$17) $ret$1 = $22; else {
FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0;
$$ = (HEAP32[$19 >> 2] | 0) == 0 ? -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 $ret$1 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0;
$28 = HEAP32[$f >> 2] | 0;
HEAP32[$f >> 2] = $28 | $7;
if ($32) ___unlockfile($f);
$$0 = ($28 & 32 | 0) == 0 ? $ret$1 : -1;
}
STACKTOP = sp;
return $$0 | 0;
}
function _setup_cipher_aes($handle, $sessionkey, $iv) {
$handle = $handle | 0;
$sessionkey = $sessionkey | 0;
$iv = $iv | 0;
var $19 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer6 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
if (_gcry_cipher_open($handle, 9, 2, 0) | 0) {
if ((HEAP32[196] | 0) == -1) HEAP32[196] = _GNUNET_get_log_call_status(1, 0, 19203, 19307, 68) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[196] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 19203;
HEAP32[$vararg_buffer + 4 >> 2] = 68;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
$9 = _gcry_cipher_setkey(HEAP32[$handle >> 2] | 0, $sessionkey, 32) | 0;
if (!(($9 | 0) == 0 | ($9 & 255 | 0) == 43)) {
if ((HEAP32[197] | 0) == -1) HEAP32[197] = _GNUNET_get_log_call_status(1, 0, 19203, 19307, 72) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[197] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 19203;
HEAP32[$vararg_buffer2 + 4 >> 2] = 72;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
}
$19 = _gcry_cipher_setiv(HEAP32[$handle >> 2] | 0, $iv, 16) | 0;
if (($19 | 0) == 0 | ($19 & 255 | 0) == 43) {
STACKTOP = sp;
return;
}
if ((HEAP32[198] | 0) == -1) HEAP32[198] = _GNUNET_get_log_call_status(1, 0, 19203, 19307, 76) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[198] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer6 >> 2] = 19203;
HEAP32[$vararg_buffer6 + 4 >> 2] = 76;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer6);
_GNUNET_abort_();
}
function __gcry_cipher_setiv($hd, $iv, $ivlen) {
$hd = $hd | 0;
$iv = $iv | 0;
$ivlen = $ivlen | 0;
var $12 = 0, $13 = 0, $16 = 0, $18 = 0, $20 = 0, $23 = 0, $6 = 0, $7 = 0, $9 = 0, $rc$0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
switch (HEAP32[$hd + 48 >> 2] | 0) {
case 8:
{
$rc$0 = __gcry_cipher_ccm_set_nonce($hd, $iv, $ivlen) | 0;
STACKTOP = sp;
return $rc$0 | 0;
}
case 9:
{
$rc$0 = __gcry_cipher_gcm_setiv($hd, $iv, $ivlen) | 0;
STACKTOP = sp;
return $rc$0 | 0;
}
case 10:
{
$rc$0 = __gcry_cipher_poly1305_setiv($hd, $iv, $ivlen) | 0;
STACKTOP = sp;
return $rc$0 | 0;
}
case 11:
{
$rc$0 = __gcry_cipher_ocb_set_nonce($hd, $iv, $ivlen) | 0;
STACKTOP = sp;
return $rc$0 | 0;
}
default:
{
$6 = $hd + 12 | 0;
$7 = HEAP32[$6 >> 2] | 0;
$9 = HEAP32[$7 + 60 >> 2] | 0;
if ($9) {
FUNCTION_TABLE_viii[$9 & 7]($hd + 496 | 0, $iv, $ivlen);
$rc$0 = 0;
STACKTOP = sp;
return $rc$0 | 0;
}
$12 = $hd + 64 | 0;
$13 = $7 + 20 | 0;
_memset($12 | 0, 0, HEAP32[$13 >> 2] | 0) | 0;
if (!$iv) {
$23 = $hd + 56 | 0;
HEAP8[$23 >> 0] = HEAP8[$23 >> 0] & -3;
} else {
$16 = HEAP32[$13 >> 2] | 0;
if (($16 | 0) == ($ivlen | 0)) $18 = $ivlen; else {
HEAP32[$vararg_buffer >> 2] = $ivlen;
HEAP32[$vararg_buffer + 4 >> 2] = $16;
__gcry_log_info(24013, $vararg_buffer);
__gcry_fips_signal_error(23886, 682, 24056, 0, 24069);
$18 = HEAP32[(HEAP32[$6 >> 2] | 0) + 20 >> 2] | 0;
}
_memcpy($12 | 0, $iv | 0, ($18 >>> 0 < $ivlen >>> 0 ? $18 : $ivlen) | 0) | 0;
$20 = $hd + 56 | 0;
HEAP8[$20 >> 0] = HEAP8[$20 >> 0] | 2;
}
HEAP32[$hd + 112 >> 2] = 0;
$rc$0 = 0;
STACKTOP = sp;
return $rc$0 | 0;
}
}
return 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, $11 = 0, $12 = 0, $18 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $27 = 0, $5 = 0, $8 = 0, $n = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$n = sp;
$1 = ($nbits + 7 | 0) >>> 3;
HEAP32[$r_result >> 2] = 0;
$2 = __gcry_malloc_secure($1) | 0;
if (!$2) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
$5 = __gcry_mpi_print(5, $2, $1, $n, $value) | 0;
if ($5) {
__gcry_free($2);
$$0 = $5 & 65535;
STACKTOP = sp;
return $$0 | 0;
}
$8 = HEAP32[$n >> 2] | 0;
if ($8 >>> 0 < 4) {
__gcry_free($2);
$$0 = 155;
STACKTOP = sp;
return $$0 | 0;
}
$11 = (HEAP8[$2 >> 0] | 0) == 0;
$12 = $11 ? 2 : 1;
HEAP32[$n >> 2] = $12;
if ((HEAP8[$2 + ($11 & 1) >> 0] | 0) != 2) {
__gcry_free($2);
$$0 = 155;
STACKTOP = sp;
return $$0 | 0;
}
L17 : do if ($12 >>> 0 < $8 >>> 0) {
$18 = $12;
while (1) {
if (!(HEAP8[$2 + $18 >> 0] | 0)) {
$24 = $18;
break L17;
}
$21 = $18 + 1 | 0;
HEAP32[$n >> 2] = $21;
if ($21 >>> 0 < $8 >>> 0) $18 = $21; else {
$24 = $21;
break;
}
}
} else $24 = $12; while (0);
$23 = $24 + 1 | 0;
if ($8 >>> 0 <= $23 >>> 0) {
__gcry_free($2);
$$0 = 155;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$n >> 2] = $23;
$27 = $8 - $23 | 0;
_memmove($2 | 0, $2 + $23 | 0, $27 | 0) | 0;
HEAP32[$r_result >> 2] = $2;
HEAP32[$r_resultlen >> 2] = $27;
if (!(__gcry_get_debug_flag(1) | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
__gcry_log_printhex(38439, HEAP32[$r_result >> 2] | 0, HEAP32[$r_resultlen >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 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 $$sink = 0, $10 = 0, $20 = 0, $21 = 0;
do if (!(HEAP32[17532] | 0)) if (!(_getenv(45202) | 0)) {
HEAP32[17532] = -1;
break;
} else {
HEAP32[17532] = 1;
break;
} while (0);
HEAP32[$ctx >> 2] = $model;
HEAP32[$ctx + 4 >> 2] = $dialect;
HEAP32[$ctx + 8 >> 2] = $flags;
if (($dialect | 0) == 1) $$sink = 256; else $$sink = __gcry_mpi_get_nbits($p) | 0;
HEAP32[$ctx + 12 >> 2] = $$sink;
$10 = $ctx + 16 | 0;
HEAP32[$10 >> 2] = __gcry_mpi_copy($p) | 0;
HEAP32[$ctx + 20 >> 2] = __gcry_mpi_copy($a) | 0;
HEAP32[$ctx + 24 >> 2] = __gcry_mpi_copy($b) | 0;
if ((HEAP32[17532] | 0) > 0) $20 = __gcry_mpi_barrett_init(HEAP32[$10 >> 2] | 0, 0) | 0; else $20 = 0;
HEAP32[$ctx + 60 >> 2] = $20;
$21 = $ctx + 48 | 0;
HEAP8[$21 >> 0] = HEAP8[$21 >> 0] & -4;
HEAP32[$ctx + 64 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 68 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 72 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 76 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 80 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 84 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 88 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 92 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 96 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 100 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
HEAP32[$ctx + 104 >> 2] = __gcry_mpi_alloc_like(HEAP32[$10 >> 2] | 0) | 0;
return;
}
function _GNUNET_xmalloc_($size, $filename, $linenumber) {
$size = $size | 0;
$filename = $filename | 0;
$linenumber = $linenumber | 0;
var $17 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
if ($size >>> 0 >= 41943041) {
if ((HEAP32[180] | 0) == -1) HEAP32[180] = _GNUNET_get_log_call_status(1, 0, 18858, 18878, 74) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[180] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $linenumber;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
$7 = _malloc($size) | 0;
if ($7) {
_memset($7 | 0, 0, $size | 0) | 0;
STACKTOP = sp;
return $7 | 0;
}
if ((HEAP32[181] | 0) == -1) HEAP32[181] = _GNUNET_get_log_call_status(1, 20654, 18858, 18878, 81) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[181] | 0) {
$17 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
HEAP32[$vararg_buffer2 >> 2] = 18894;
HEAP32[$vararg_buffer2 + 4 >> 2] = 18858;
HEAP32[$vararg_buffer2 + 8 >> 2] = 81;
HEAP32[$vararg_buffer2 + 12 >> 2] = $17;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer2);
}
if ((HEAP32[182] | 0) == -1) HEAP32[182] = _GNUNET_get_log_call_status(1, 0, 18858, 18878, 82) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[182] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer8 >> 2] = 18858;
HEAP32[$vararg_buffer8 + 4 >> 2] = 82;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer8);
_GNUNET_abort_();
return 0;
}
function __gcry_log_printmpi($text, $mpi) {
$text = $text | 0;
$mpi = $mpi | 0;
var $16 = 0, $19 = 0, $2 = 0, $22 = 0, $26 = 0, $9 = 0, $nbits = 0, $prefix = 0, $rawmpilen = 0, $sign = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$vararg_buffer11 = sp + 32 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$rawmpilen = sp + 44 | 0;
$sign = sp + 40 | 0;
$nbits = sp + 36 | 0;
$prefix = sp + 48 | 0;
if (!$mpi) {
$2 = ($text | 0) != 0 ? $text : 21782;
if (HEAP8[$2 >> 0] | 0) {
HEAP32[$vararg_buffer >> 2] = $2;
HEAP32[$vararg_buffer + 4 >> 2] = 21790;
__gcry_log_debug(21784, $vararg_buffer);
}
__gcry_log_printf(22019, $vararg_buffer2);
STACKTOP = sp;
return;
}
if (HEAP32[$mpi + 12 >> 2] & 4) {
$9 = __gcry_mpi_get_opaque($mpi, $nbits) | 0;
HEAP32[$vararg_buffer4 >> 2] = HEAP32[$nbits >> 2];
_snprintf($prefix, 30, 21798, $vararg_buffer4) | 0;
_do_printhex(($text | 0) != 0 ? $text : 21782, $prefix, $9, ((HEAP32[$nbits >> 2] | 0) + 7 | 0) >>> 3);
STACKTOP = sp;
return;
}
$16 = __gcry_mpi_get_buffer($mpi, 0, $rawmpilen, $sign) | 0;
if (!$16) {
$19 = ($text | 0) != 0 ? $text : 21782;
if (HEAP8[$19 >> 0] | 0) {
HEAP32[$vararg_buffer7 >> 2] = $19;
HEAP32[$vararg_buffer7 + 4 >> 2] = 21808;
__gcry_log_debug(21784, $vararg_buffer7);
}
__gcry_log_printf(22019, $vararg_buffer11);
STACKTOP = sp;
return;
}
$22 = HEAP32[$rawmpilen >> 2] | 0;
$26 = (HEAP32[$sign >> 2] | 0) != 0 ? 21823 : 21825;
if (!$22) _do_printhex($text, $26, 75759, 1); else _do_printhex($text, $26, $16, $22);
__gcry_free($16);
STACKTOP = sp;
return;
}
function __gcry_initialize_fips_mode($force) {
$force = $force | 0;
var $11 = 0, $20 = 0, $23 = 0, $24 = 0, $27 = 0, $line = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 272 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$line = sp + 16 | 0;
if (HEAP32[17503] | 0) if ((HEAP32[17504] | 0) == 1) __gcry_assert_failed(22934, 22940, 114, 22947); else {
_fips_new_state(5);
__gcry_fips_noreturn();
}
HEAP32[17503] = 1;
L7 : do if (!$force) {
if (!(_access(22997, 0) | 0)) {
if (!(HEAP32[17504] | 0)) break;
__gcry_assert_failed(22974, 22940, 132, 22947);
}
$11 = _fopen(23022, 23052) | 0;
L13 : do if (!$11) {
$20 = HEAP32[(___errno_location() | 0) >> 2] | 0;
switch ($20 | 0) {
case 2:
case 13:
{
break L13;
break;
}
default:
{}
}
if (!(_access(23054, 0) | 0)) {
$23 = _strerror($20) | 0;
HEAP32[$vararg_buffer >> 2] = 23022;
HEAP32[$vararg_buffer + 4 >> 2] = $23;
__gcry_log_info(23068, $vararg_buffer);
_abort();
}
} else {
if (_fgets($line, 256, $11) | 0) if (_atoi($line) | 0) {
_fclose($11) | 0;
if (!(HEAP32[17504] | 0)) break L7; else __gcry_assert_failed(22974, 22940, 151, 22947);
}
_fclose($11) | 0;
} while (0);
HEAP32[17504] = 1;
STACKTOP = sp;
return;
} else if (HEAP32[17504] | 0) __gcry_assert_failed(22974, 22940, 121, 22947); while (0);
$24 = _gpgrt_lock_init(1236) | 0;
if ($24) {
HEAP32[$vararg_buffer2 >> 2] = _gpg_strerror($24) | 0;
__gcry_log_info(23112, $vararg_buffer2);
_abort();
}
$27 = _fopen(22997, 23052) | 0;
if ($27) {
if (_fgets($line, 256, $27) | 0) if (_atoi($line) | 0) HEAP32[17505] = 1;
_fclose($27) | 0;
}
_fips_new_state(1);
STACKTOP = sp;
return;
}
function _lock_seed_file($fd, $fname, $for_write) {
$fd = $fd | 0;
$fname = $fname | 0;
$for_write = $for_write | 0;
var $$0 = 0, $10 = 0, $12 = 0, $5 = 0, $6 = 0, $8 = 0, $backoff$01 = 0, $lck = 0, $tv = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer5 = 0, $vararg_buffer8 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer5 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$lck = sp + 40 | 0;
$tv = sp + 32 | 0;
HEAP32[$lck >> 2] = 0;
HEAP32[$lck + 4 >> 2] = 0;
HEAP32[$lck + 8 >> 2] = 0;
HEAP32[$lck + 12 >> 2] = 0;
HEAP16[$lck >> 1] = ($for_write | 0) != 0 & 1;
HEAP16[$lck + 2 >> 1] = 0;
HEAP32[$vararg_buffer >> 2] = $lck;
if ((_fcntl($fd, 13, $vararg_buffer) | 0) != -1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$5 = ___errno_location() | 0;
$6 = $tv + 4 | 0;
$backoff$01 = 0;
L4 : while (1) {
switch (HEAP32[$5 >> 2] | 0) {
case 13:
case 11:
break;
default:
break L4;
}
if (($backoff$01 | 0) > 2) {
$12 = __gcry_gettext(50586) | 0;
HEAP32[$vararg_buffer5 >> 2] = $fname;
__gcry_log_info($12, $vararg_buffer5);
}
HEAP32[$tv >> 2] = $backoff$01;
HEAP32[$6 >> 2] = 25e4;
_select(0, 0, 0, 0, $tv) | 0;
HEAP32[$vararg_buffer8 >> 2] = $lck;
if ((_fcntl($fd, 13, $vararg_buffer8) | 0) == -1) $backoff$01 = (($backoff$01 | 0) < 10 & 1) + $backoff$01 | 0; else {
$$0 = 0;
label = 8;
break;
}
}
if ((label | 0) == 8) {
STACKTOP = sp;
return $$0 | 0;
}
$8 = __gcry_gettext(50565) | 0;
$10 = _strerror(HEAP32[$5 >> 2] | 0) | 0;
HEAP32[$vararg_buffer1 >> 2] = $fname;
HEAP32[$vararg_buffer1 + 4 >> 2] = $10;
__gcry_log_info($8, $vararg_buffer1);
$$0 = -1;
STACKTOP = sp;
return $$0 | 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, $0 = 0, $13 = 0, $17 = 0, $2 = 0, $6 = 0, $9 = 0, $i$05 = 0, $i$16 = 0, $idx$010 = 0, $idx$010$lcssa = 0, $idx$010$lcssa24 = 0, $s$09 = 0, label = 0;
$0 = _gcry_sexp_find_token($sexp, $topname, 0) | 0;
if (!$0) {
$$0 = 1;
return $$0 | 0;
}
$2 = _gcry_sexp_cadr($0) | 0;
_gcry_sexp_release($0);
if (!$2) {
$$0 = 2;
return $$0 | 0;
}
L7 : do if (HEAP8[$elems >> 0] | 0) {
$idx$010 = 0;
$s$09 = $elems;
while (1) {
$6 = _gcry_sexp_find_token($2, $s$09, 1) | 0;
if (!$6) {
$idx$010$lcssa = $idx$010;
label = 5;
break;
}
$13 = $array + ($idx$010 << 2) | 0;
HEAP32[$13 >> 2] = _gcry_sexp_nth_mpi($6, 1, 5) | 0;
_gcry_sexp_release($6);
if (!(HEAP32[$13 >> 2] | 0)) {
$idx$010$lcssa24 = $idx$010;
label = 9;
break;
}
$s$09 = $s$09 + 1 | 0;
if (!(HEAP8[$s$09 >> 0] | 0)) break L7; else $idx$010 = $idx$010 + 1 | 0;
}
if ((label | 0) == 5) {
if ($idx$010$lcssa) {
$i$05 = 0;
do {
$9 = $array + ($i$05 << 2) | 0;
_gcry_free(HEAP32[$9 >> 2] | 0);
HEAP32[$9 >> 2] = 0;
$i$05 = $i$05 + 1 | 0;
} while (($i$05 | 0) != ($idx$010$lcssa | 0));
}
_gcry_sexp_release($2);
$$0 = 3;
return $$0 | 0;
} else if ((label | 0) == 9) {
if ($idx$010$lcssa24) {
$i$16 = 0;
do {
$17 = $array + ($i$16 << 2) | 0;
_gcry_free(HEAP32[$17 >> 2] | 0);
HEAP32[$17 >> 2] = 0;
$i$16 = $i$16 + 1 | 0;
} while (($i$16 | 0) != ($idx$010$lcssa24 | 0));
}
_gcry_sexp_release($2);
$$0 = 4;
return $$0 | 0;
}
} while (0);
_gcry_sexp_release($2);
$$0 = 0;
return $$0 | 0;
}
function _key_from_sexp($array, $sexp, $topname, $elems) {
$array = $array | 0;
$sexp = $sexp | 0;
$topname = $topname | 0;
$elems = $elems | 0;
var $$0 = 0, $0 = 0, $13 = 0, $17 = 0, $2 = 0, $6 = 0, $9 = 0, $i$05 = 0, $i$16 = 0, $idx$010 = 0, $idx$010$lcssa = 0, $idx$010$lcssa24 = 0, $s$09 = 0, label = 0;
$0 = _gcry_sexp_find_token($sexp, $topname, 0) | 0;
if (!$0) {
$$0 = 1;
return $$0 | 0;
}
$2 = _gcry_sexp_cadr($0) | 0;
_gcry_sexp_release($0);
if (!$2) {
$$0 = 2;
return $$0 | 0;
}
L7 : do if (HEAP8[$elems >> 0] | 0) {
$idx$010 = 0;
$s$09 = $elems;
while (1) {
$6 = _gcry_sexp_find_token($2, $s$09, 1) | 0;
if (!$6) {
$idx$010$lcssa = $idx$010;
label = 5;
break;
}
$13 = $array + ($idx$010 << 2) | 0;
HEAP32[$13 >> 2] = _gcry_sexp_nth_mpi($6, 1, 5) | 0;
_gcry_sexp_release($6);
if (!(HEAP32[$13 >> 2] | 0)) {
$idx$010$lcssa24 = $idx$010;
label = 9;
break;
}
$s$09 = $s$09 + 1 | 0;
if (!(HEAP8[$s$09 >> 0] | 0)) break L7; else $idx$010 = $idx$010 + 1 | 0;
}
if ((label | 0) == 5) {
if ($idx$010$lcssa) {
$i$05 = 0;
do {
$9 = $array + ($i$05 << 2) | 0;
_gcry_free(HEAP32[$9 >> 2] | 0);
HEAP32[$9 >> 2] = 0;
$i$05 = $i$05 + 1 | 0;
} while (($i$05 | 0) != ($idx$010$lcssa | 0));
}
_gcry_sexp_release($2);
$$0 = 3;
return $$0 | 0;
} else if ((label | 0) == 9) {
if ($idx$010$lcssa24) {
$i$16 = 0;
do {
$17 = $array + ($i$16 << 2) | 0;
_gcry_free(HEAP32[$17 >> 2] | 0);
HEAP32[$17 >> 2] = 0;
$i$16 = $i$16 + 1 | 0;
} while (($i$16 | 0) != ($idx$010$lcssa24 | 0));
}
_gcry_sexp_release($2);
$$0 = 4;
return $$0 | 0;
}
} while (0);
_gcry_sexp_release($2);
$$0 = 0;
return $$0 | 0;
}
function __gcry_mpi_set_ui($w, $u) {
$w = $w | 0;
$u = $u | 0;
var $$012 = 0, $$013 = 0, $$014 = 0, $1 = 0, $12 = 0, $16 = 0, $19 = 0, $24 = 0, $25 = 0, $27 = 0, $i$03$i = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (!$w) {
$1 = __gcry_xmalloc(20) | 0;
HEAP32[$1 + 16 >> 2] = __gcry_xmalloc(4) | 0;
HEAP32[$1 >> 2] = 1;
HEAP32[$1 + 4 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
HEAP32[$1 + 12 >> 2] = 0;
if (!$1) $$013 = 0; else {
$$012 = $1;
label = 3;
}
} else {
$$012 = $w;
label = 3;
}
if ((label | 0) == 3) if (!(HEAP32[$$012 + 12 >> 2] & 16)) $$013 = $$012; else {
__gcry_log_info(45711, $vararg_buffer);
$$014 = $$012;
STACKTOP = sp;
return $$014 | 0;
}
$12 = HEAP32[$$013 >> 2] | 0;
L8 : do if (($12 | 0) < 1) {
if ($12) {
$16 = HEAP32[$$013 + 4 >> 2] | 0;
if ($16 >>> 0 >= $12 >>> 0) break;
$19 = HEAP32[$$013 + 16 >> 2] | 0;
$i$03$i = $16;
while (1) {
HEAP32[$19 + ($i$03$i << 2) >> 2] = 0;
$i$03$i = $i$03$i + 1 | 0;
if ($i$03$i >>> 0 >= (HEAP32[$$013 >> 2] | 0) >>> 0) break L8;
}
}
$24 = $$013 + 16 | 0;
$25 = HEAP32[$24 >> 2] | 0;
do if (!$25) if (!(HEAP32[$$013 + 12 >> 2] & 1)) {
HEAP32[$24 >> 2] = __gcry_xcalloc(1, 4) | 0;
break;
} else {
HEAP32[$24 >> 2] = __gcry_xcalloc_secure(1, 4) | 0;
break;
} else {
$27 = __gcry_xrealloc($25, 4) | 0;
HEAP32[$24 >> 2] = $27;
if (!(HEAP32[$$013 >> 2] | 0)) HEAP32[$27 >> 2] = 0;
} while (0);
HEAP32[$$013 >> 2] = 1;
} while (0);
HEAP32[HEAP32[$$013 + 16 >> 2] >> 2] = $u;
HEAP32[$$013 + 4 >> 2] = ($u | 0) != 0 & 1;
HEAP32[$$013 + 8 >> 2] = 0;
HEAP32[$$013 + 12 >> 2] = 0;
$$014 = $$013;
STACKTOP = sp;
return $$014 | 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, $15 = 0, $2 = 0, $27 = 0, $30 = 0, $31 = 0, $7 = 0, $cnt$0 = 0, $iov = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$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;
HEAP32[$0 >> 2] = $len - (($2 | 0) != 0 & 1);
$7 = $f + 44 | 0;
HEAP32[$iov + 8 >> 2] = HEAP32[$7 >> 2];
HEAP32[$iov + 12 >> 2] = $2;
if (!(HEAP32[17591] | 0)) {
HEAP32[$vararg_buffer3 >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer3 + 4 >> 2] = $iov;
HEAP32[$vararg_buffer3 + 8 >> 2] = 2;
$cnt$0 = ___syscall_ret(___syscall145(145, $vararg_buffer3 | 0) | 0) | 0;
} else {
_pthread_cleanup_push(7, $f | 0);
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = $iov;
HEAP32[$vararg_buffer + 8 >> 2] = 2;
$15 = ___syscall_ret(___syscall145(145, $vararg_buffer | 0) | 0) | 0;
_pthread_cleanup_pop(0);
$cnt$0 = $15;
}
if (($cnt$0 | 0) < 1) {
HEAP32[$f >> 2] = HEAP32[$f >> 2] | $cnt$0 & 48 ^ 16;
HEAP32[$f + 8 >> 2] = 0;
HEAP32[$f + 4 >> 2] = 0;
$$0 = $cnt$0;
} else {
$27 = HEAP32[$0 >> 2] | 0;
if ($cnt$0 >>> 0 > $27 >>> 0) {
$30 = HEAP32[$7 >> 2] | 0;
$31 = $f + 4 | 0;
HEAP32[$31 >> 2] = $30;
$$cast = $30;
HEAP32[$f + 8 >> 2] = $$cast + ($cnt$0 - $27);
if (!(HEAP32[$1 >> 2] | 0)) $$0 = $len; else {
HEAP32[$31 >> 2] = $$cast + 1;
HEAP8[$buf + ($len + -1) >> 0] = HEAP8[$$cast >> 0] | 0;
$$0 = $len;
}
} else $$0 = $cnt$0;
}
STACKTOP = sp;
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 $$03 = 0, $$04 = 0, $$057 = 0, $$058 = 0, $$1 = 0, $$211 = 0, $28 = 0, $32 = 0, $35 = 0, $digest = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$digest = sp;
if (!$G) $$04 = HEAP32[$ec + 28 >> 2] | 0; else $$04 = $G;
if (!$d) $$03 = HEAP32[$ec + 44 >> 2] | 0; else $$03 = $d;
if (!(($$04 | 0) != 0 & ($$03 | 0) != 0)) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
if (!(HEAP32[$ec + 16 >> 2] | 0)) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
if (!(HEAP32[$ec + 20 >> 2] | 0)) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
if ((HEAP32[$ec >> 2] | 0) == 2) if (!(HEAP32[$ec + 24 >> 2] | 0)) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
if ((HEAP32[$ec + 4 >> 2] | 0) == 1) if (HEAP32[$ec + 8 >> 2] & 4096) {
if (__gcry_ecc_eddsa_compute_h_d($digest, $$03, $ec) | 0) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
}
$28 = __gcry_mpi_snew(0) | 0;
__gcry_mpi_set_buffer($28, HEAP32[$digest >> 2] | 0, 32, 0);
__gcry_free(HEAP32[$digest >> 2] | 0);
if (!$Q) {
$32 = __gcry_mpi_point_new(0) | 0;
if (!$32) $$058 = 0; else {
$$057 = $32;
label = 15;
}
} else {
$$057 = $Q;
label = 15;
}
if ((label | 0) == 15) {
__gcry_mpi_ec_mul_point($$057, $28, $$04, $ec);
$$058 = $$057;
}
__gcry_mpi_free($28);
$$1 = $$058;
STACKTOP = sp;
return $$1 | 0;
}
if (!$Q) {
$35 = __gcry_mpi_point_new(0) | 0;
if (!$35) {
$$1 = 0;
STACKTOP = sp;
return $$1 | 0;
} else $$211 = $35;
} else $$211 = $Q;
__gcry_mpi_ec_mul_point($$211, $$03, $$04, $ec);
$$1 = $$211;
STACKTOP = sp;
return $$1 | 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, $11 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $25 = 0, $asn = 0, $asnlen = 0, $nframe = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$asn = sp + 8 | 0;
$nframe = sp + 4 | 0;
$asnlen = sp;
$1 = ($nbits + 7 | 0) >>> 3;
HEAP32[$nframe >> 2] = $1;
HEAP32[$asnlen >> 2] = 100;
$2 = __gcry_md_get_algo_dlen($algo) | 0;
if (__gcry_md_algo_info($algo, 10, $asn, $asnlen) | 0) {
$$0 = 69;
STACKTOP = sp;
return $$0 | 0;
}
if (($2 | 0) != ($valuelen | 0)) {
$$0 = 70;
STACKTOP = sp;
return $$0 | 0;
}
if (!$valuelen) {
$$0 = 66;
STACKTOP = sp;
return $$0 | 0;
}
if (($valuelen + 4 + (HEAP32[$asnlen >> 2] | 0) | 0) >>> 0 > $1 >>> 0) {
$$0 = 66;
STACKTOP = sp;
return $$0 | 0;
}
$11 = __gcry_malloc($1) | 0;
if (!$11) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP8[$11 >> 0] = 0;
HEAP8[$11 + 1 >> 0] = 1;
$15 = $1 - $valuelen | 0;
$16 = HEAP32[$asnlen >> 2] | 0;
$17 = $15 - $16 | 0;
$18 = $17 + -3 | 0;
if (($18 | 0) <= 1) __gcry_assert_failed(38493, 38350, 303, 38499);
_memset($11 + 2 | 0, -1, $18 | 0) | 0;
HEAP8[$11 + ($17 + -1) >> 0] = 0;
_memcpy($11 + $17 | 0, $asn | 0, $16 | 0) | 0;
_memcpy($11 + $15 | 0, $value | 0, $valuelen | 0) | 0;
$25 = __gcry_mpi_scan($r_result, 5, $11, $1, $nframe) | 0;
if (!$25) if (__gcry_get_debug_flag(1) | 0) __gcry_log_printmpi(38530, HEAP32[$r_result >> 2] | 0);
__gcry_free($11);
$$0 = $25;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_sexp_length($list) {
$list = $list | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa25 = 0, $$lcssa26 = 0, $$pn = 0, $1 = 0, $3 = 0, $length$0$ph = 0, $level$0$ph = 0, $level$0$ph$be = 0, $level$0$ph4 = 0, $level$0$ph4$lcssa27 = 0, $level$0$ph4$lcssa28 = 0, $p$0 = 0, $p$0$ph = 0, $p$0$ph$be = 0, $p$0$ph3 = 0, label = 0;
if (!$list) {
$$0 = 0;
return $$0 | 0;
}
$length$0$ph = 0;
$level$0$ph = 0;
$p$0$ph = $list;
L4 : while (1) {
$level$0$ph4 = $level$0$ph;
$p$0$ph3 = $p$0$ph;
L6 : while (1) {
$p$0 = $p$0$ph3;
L8 : while (1) {
$1 = HEAP8[$p$0 >> 0] | 0;
if (!($1 << 24 >> 24)) {
$$0 = $length$0$ph;
break L4;
}
$3 = $p$0 + 1 | 0;
switch ($1 << 24 >> 24) {
case 1:
{
$$lcssa = $3;
$level$0$ph4$lcssa27 = $level$0$ph4;
label = 7;
break L6;
break;
}
case 3:
{
$$lcssa25 = $3;
$level$0$ph4$lcssa28 = $level$0$ph4;
label = 8;
break L6;
break;
}
case 4:
{
$$lcssa26 = $3;
break L8;
break;
}
default:
$p$0 = $3;
}
}
$level$0$ph4 = $level$0$ph4 + -1 | 0;
$p$0$ph3 = $$lcssa26;
}
if ((label | 0) == 7) {
label = 0;
$$pn = ($level$0$ph4$lcssa27 | 0) == 1 & 1;
$level$0$ph$be = $level$0$ph4$lcssa27;
$p$0$ph$be = $$lcssa + (((HEAPU8[$$lcssa >> 0] | HEAPU8[$$lcssa + 1 >> 0] << 8) & 65535) + 2) | 0;
} else if ((label | 0) == 8) {
label = 0;
$$pn = ($level$0$ph4$lcssa28 | 0) == 1 & 1;
$level$0$ph$be = $level$0$ph4$lcssa28 + 1 | 0;
$p$0$ph$be = $$lcssa25;
}
$length$0$ph = $$pn + $length$0$ph | 0;
$level$0$ph = $level$0$ph$be;
$p$0$ph = $p$0$ph$be;
}
return $$0 | 0;
}
function _rsa_check_secret_key($keyparms) {
$keyparms = $keyparms | 0;
var $0 = 0, $1 = 0, $11 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $rc$0 = 0, $sk = 0, $vararg_buffer = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer = sp;
$sk = sp + 40 | 0;
HEAP32[$sk >> 2] = 0;
HEAP32[$sk + 4 >> 2] = 0;
HEAP32[$sk + 8 >> 2] = 0;
HEAP32[$sk + 12 >> 2] = 0;
HEAP32[$sk + 16 >> 2] = 0;
HEAP32[$sk + 20 >> 2] = 0;
$0 = $sk + 4 | 0;
$1 = $sk + 8 | 0;
$2 = $sk + 12 | 0;
$3 = $sk + 16 | 0;
$4 = $sk + 20 | 0;
HEAP32[$vararg_buffer >> 2] = $sk;
HEAP32[$vararg_buffer + 4 >> 2] = $0;
HEAP32[$vararg_buffer + 8 >> 2] = $1;
HEAP32[$vararg_buffer + 12 >> 2] = $2;
HEAP32[$vararg_buffer + 16 >> 2] = $3;
HEAP32[$vararg_buffer + 20 >> 2] = $4;
HEAP32[$vararg_buffer + 24 >> 2] = 0;
$5 = __gcry_sexp_extract_param($keyparms, 0, 38726, $vararg_buffer) | 0;
if (!$5) {
$11 = __gcry_mpi_alloc(HEAP32[(HEAP32[$2 >> 2] | 0) + 4 >> 2] << 1) | 0;
__gcry_mpi_mul($11, HEAP32[$2 >> 2] | 0, HEAP32[$3 >> 2] | 0);
$15 = __gcry_mpi_cmp($11, HEAP32[$sk >> 2] | 0) | 0;
__gcry_mpi_free($11);
$rc$0 = ($15 | 0) == 0 ? 0 : 7;
} else $rc$0 = $5;
__gcry_mpi_release(HEAP32[$sk >> 2] | 0);
__gcry_mpi_release(HEAP32[$0 >> 2] | 0);
__gcry_mpi_release(HEAP32[$1 >> 2] | 0);
__gcry_mpi_release(HEAP32[$2 >> 2] | 0);
__gcry_mpi_release(HEAP32[$3 >> 2] | 0);
__gcry_mpi_release(HEAP32[$4 >> 2] | 0);
if (!(__gcry_get_debug_flag(1) | 0)) {
STACKTOP = sp;
return $rc$0 | 0;
}
HEAP32[$vararg_buffer7 >> 2] = _gpg_strerror($rc$0) | 0;
__gcry_log_debug(41142, $vararg_buffer7);
STACKTOP = sp;
return $rc$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 $0 = 0, $12 = 0, $13 = 0, $15 = 0, $18 = 0, $22 = 0, $3 = 0, $6 = 0, $i$02 = 0, $i$11 = 0, $sig = 0, $signkey = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
$signkey = sp + 64 | 0;
$sig = sp;
$0 = STACKTOP;
STACKTOP = STACKTOP + ((1 * ($ndenoms << 2) | 0) + 15 & -16) | 0;
_GNUNET_STRINGS_string_to_data($signkey_enc, _strlen($signkey_enc) | 0, $signkey, 32) | 0;
_GNUNET_STRINGS_string_to_data($sig_enc, _strlen($sig_enc) | 0, $sig, 64) | 0;
$3 = ($ndenoms | 0) == 0;
if ($3) {
$22 = _TALER_WR_verify_denoms($signkey, $0, $issue_date, $ndenoms, $sig) | 0;
STACKTOP = sp;
return $22 | 0;
} else $i$02 = 0;
do {
$6 = HEAP32[$denoms_enc + ($i$02 << 2) >> 2] | 0;
$12 = ~~+Math_floor(+(+(((_strlen($6) | 0) * 5 | 0) >>> 3 >>> 0))) >>> 0;
$13 = _GNUNET_xmalloc_($12, 18658, 353) | 0;
_GNUNET_STRINGS_string_to_data($6, _strlen($6) | 0, $13, $12) | 0;
$15 = _GNUNET_CRYPTO_rsa_public_key_decode($13, $12) | 0;
_GNUNET_xfree_($13, 18658, 217);
HEAP32[$0 + ($i$02 << 2) >> 2] = $15;
$i$02 = $i$02 + 1 | 0;
} while (($i$02 | 0) != ($ndenoms | 0));
$18 = _TALER_WR_verify_denoms($signkey, $0, $issue_date, $ndenoms, $sig) | 0;
if ($3) {
$22 = $18;
STACKTOP = sp;
return $22 | 0;
} else $i$11 = 0;
do {
_GNUNET_CRYPTO_rsa_public_key_free(HEAP32[$0 + ($i$11 << 2) >> 2] | 0);
$i$11 = $i$11 + 1 | 0;
} while (($i$11 | 0) != ($ndenoms | 0));
$22 = $18;
STACKTOP = sp;
return $22 | 0;
}
function _ec_deinit($opaque) {
$opaque = $opaque | 0;
var $12 = 0, $14 = 0, $21 = 0, $24 = 0, $26 = 0, $9 = 0;
__gcry_mpi_barrett_free(HEAP32[$opaque + 60 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 16 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 20 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 24 >> 2] | 0);
$9 = HEAP32[$opaque + 28 >> 2] | 0;
if ($9) {
__gcry_mpi_free(HEAP32[$9 >> 2] | 0);
HEAP32[$9 >> 2] = 0;
$12 = $9 + 4 | 0;
__gcry_mpi_free(HEAP32[$12 >> 2] | 0);
HEAP32[$12 >> 2] = 0;
$14 = $9 + 8 | 0;
__gcry_mpi_free(HEAP32[$14 >> 2] | 0);
HEAP32[$14 >> 2] = 0;
__gcry_free($9);
}
__gcry_mpi_free(HEAP32[$opaque + 32 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 36 >> 2] | 0);
$21 = HEAP32[$opaque + 40 >> 2] | 0;
if ($21) {
__gcry_mpi_free(HEAP32[$21 >> 2] | 0);
HEAP32[$21 >> 2] = 0;
$24 = $21 + 4 | 0;
__gcry_mpi_free(HEAP32[$24 >> 2] | 0);
HEAP32[$24 >> 2] = 0;
$26 = $21 + 8 | 0;
__gcry_mpi_free(HEAP32[$26 >> 2] | 0);
HEAP32[$26 >> 2] = 0;
__gcry_free($21);
}
__gcry_mpi_free(HEAP32[$opaque + 44 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 56 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 64 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 68 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 72 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 76 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 80 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 84 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 88 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 92 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 96 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 100 >> 2] | 0);
__gcry_mpi_free(HEAP32[$opaque + 104 >> 2] | 0);
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 $0 = 0, $handle = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$handle = sp + 16 | 0;
$0 = STACKTOP;
STACKTOP = STACKTOP + ((1 * $size | 0) + 15 & -16) | 0;
_setup_cipher_aes($handle, $sessionkey, $iv);
if (_gcry_cipher_encrypt(HEAP32[$handle >> 2] | 0, $0, $size, $block, $size) | 0) {
if ((HEAP32[189] | 0) == -1) HEAP32[189] = _GNUNET_get_log_call_status(1, 0, 19203, 19222, 136) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[189] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 19203;
HEAP32[$vararg_buffer + 4 >> 2] = 136;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
_gcry_cipher_close(HEAP32[$handle >> 2] | 0);
_setup_cipher_twofish($handle, $sessionkey, $iv);
if (!(_gcry_cipher_encrypt(HEAP32[$handle >> 2] | 0, $result, $size, $0, $size) | 0)) {
_gcry_cipher_close(HEAP32[$handle >> 2] | 0);
STACKTOP = sp;
return $size | 0;
}
if ((HEAP32[190] | 0) == -1) HEAP32[190] = _GNUNET_get_log_call_status(1, 0, 19203, 19222, 140) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[190] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 19203;
HEAP32[$vararg_buffer2 + 4 >> 2] = 140;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
return 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 $0 = 0, $handle = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$handle = sp + 16 | 0;
$0 = STACKTOP;
STACKTOP = STACKTOP + ((1 * $size | 0) + 15 & -16) | 0;
_setup_cipher_twofish($handle, $sessionkey, $iv);
if (_gcry_cipher_decrypt(HEAP32[$handle >> 2] | 0, $0, $size, $block, $size) | 0) {
if ((HEAP32[191] | 0) == -1) HEAP32[191] = _GNUNET_get_log_call_status(1, 0, 19203, 19254, 171) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[191] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 19203;
HEAP32[$vararg_buffer + 4 >> 2] = 171;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
_gcry_cipher_close(HEAP32[$handle >> 2] | 0);
_setup_cipher_aes($handle, $sessionkey, $iv);
if (!(_gcry_cipher_decrypt(HEAP32[$handle >> 2] | 0, $result, $size, $0, $size) | 0)) {
_gcry_cipher_close(HEAP32[$handle >> 2] | 0);
STACKTOP = sp;
return $size | 0;
}
if ((HEAP32[192] | 0) == -1) HEAP32[192] = _GNUNET_get_log_call_status(1, 0, 19203, 19254, 175) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[192] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer2 >> 2] = 19203;
HEAP32[$vararg_buffer2 + 4 >> 2] = 175;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
_GNUNET_abort_();
return 0;
}
function ___gcry_burn_stack($bytes) {
$bytes = $bytes | 0;
var $11 = 0, $12 = 0, $19 = 0, $20 = 0, $22 = 0, $4 = 0, $5 = 0, $_vlen$0$lcssa = 0, $_vlen$05 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$33 = 0, $_vptr$0$lcssa = 0, $_vptr$06 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$34 = 0, $scevgep = 0, sp = 0;
sp = STACKTOP;
$4 = $bytes + 63 + (($bytes | 0) == 0 & 1) & -64;
$5 = STACKTOP;
STACKTOP = STACKTOP + ((1 * $4 | 0) + 15 & -16) | 0;
if (($4 | 0) != 0 & ($5 & 7 | 0) != 0) {
$_vlen$05 = $4;
$_vptr$06 = $5;
while (1) {
HEAP8[$_vptr$06 >> 0] = 0;
$11 = $_vptr$06 + 1 | 0;
$12 = $_vlen$05 + -1 | 0;
if (($12 | 0) != 0 & ($11 & 7 | 0) != 0) {
$_vlen$05 = $12;
$_vptr$06 = $11;
} else {
$_vlen$0$lcssa = $12;
$_vptr$0$lcssa = $11;
break;
}
}
} else {
$_vlen$0$lcssa = $4;
$_vptr$0$lcssa = $5;
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$19 = $_vlen$0$lcssa + -8 | 0;
$20 = $19 & -8;
$scevgep = $_vptr$0$lcssa + ($20 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$22 = $_vptr$1;
HEAP32[$22 >> 2] = 0;
HEAP32[$22 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $19 - $20 | 0;
$_vptr$3$ph = $scevgep;
}
if (!$_vlen$3$ph) {
STACKTOP = sp;
return;
} else {
$_vlen$33 = $_vlen$3$ph;
$_vptr$34 = $_vptr$3$ph;
}
while (1) {
HEAP8[$_vptr$34 >> 0] = 0;
$_vlen$33 = $_vlen$33 + -1 | 0;
if (!$_vlen$33) break; else $_vptr$34 = $_vptr$34 + 1 | 0;
}
STACKTOP = sp;
return;
}
function __gcry_mpi_alloc_like($a) {
$a = $a | 0;
var $$pre$phi3Z2D = 0, $$pre$phi5Z2D = 0, $$pre$phi7Z2D = 0, $1 = 0, $16 = 0, $2 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $5 = 0, $8 = 0, $9 = 0, $b$0 = 0;
if (!$a) {
$b$0 = 0;
return $b$0 | 0;
}
$1 = $a + 12 | 0;
$2 = HEAP32[$1 >> 2] | 0;
if ($2 & 4) {
$5 = $a + 8 | 0;
$8 = ((HEAP32[$5 >> 2] | 0) + 7 | 0) / 8 | 0;
$9 = $a + 16 | 0;
if (!(__gcry_is_secure(HEAP32[$9 >> 2] | 0) | 0)) $16 = __gcry_malloc($8) | 0; else $16 = __gcry_malloc_secure($8) | 0;
_memcpy($16 | 0, HEAP32[$9 >> 2] | 0, $8 | 0) | 0;
$b$0 = __gcry_mpi_set_opaque(0, $16, HEAP32[$5 >> 2] | 0) | 0;
return $b$0 | 0;
}
$22 = HEAP32[$a + 4 >> 2] | 0;
$23 = __gcry_xmalloc(20) | 0;
$24 = ($22 | 0) == 0;
if (!($2 & 1)) {
if ($24) $33 = 0; else $33 = __gcry_xmalloc($22 << 2) | 0;
HEAP32[$23 + 16 >> 2] = $33;
HEAP32[$23 >> 2] = $22;
$34 = $23 + 4 | 0;
HEAP32[$34 >> 2] = 0;
$35 = $23 + 8 | 0;
HEAP32[$35 >> 2] = 0;
$36 = $23 + 12 | 0;
HEAP32[$36 >> 2] = 0;
$$pre$phi3Z2D = $34;
$$pre$phi5Z2D = $35;
$$pre$phi7Z2D = $36;
} else {
if ($24) $27 = 0; else $27 = __gcry_xmalloc_secure($22 << 2) | 0;
HEAP32[$23 + 16 >> 2] = $27;
HEAP32[$23 >> 2] = $22;
$28 = $23 + 12 | 0;
HEAP32[$28 >> 2] = 1;
$29 = $23 + 4 | 0;
HEAP32[$29 >> 2] = 0;
$30 = $23 + 8 | 0;
HEAP32[$30 >> 2] = 0;
$$pre$phi3Z2D = $29;
$$pre$phi5Z2D = $30;
$$pre$phi7Z2D = $28;
}
HEAP32[$$pre$phi3Z2D >> 2] = 0;
HEAP32[$$pre$phi5Z2D >> 2] = 0;
HEAP32[$$pre$phi7Z2D >> 2] = HEAP32[$1 >> 2];
$b$0 = $23;
return $b$0 | 0;
}
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, $12 = 0, $20 = 0, $25 = 0, $26 = 0, $28 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $38 = 0, $39 = 0, $6 = 0, $7 = 0, $8 = 0;
if ((HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 20 >> 2] | 0) != 16) {
$$0 = 12;
return $$0 | 0;
}
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$6 = $c + 128 | 0;
$7 = $c + 196 | 0;
$8 = HEAP8[$7 >> 0] | 0;
if ($8 & 4) {
$$0 = 139;
return $$0 | 0;
}
$12 = HEAP8[$c + 56 >> 0] | 0;
if (($12 & 4 | $8 & 1) << 24 >> 24) {
$$0 = 156;
return $$0 | 0;
}
if (!($12 & 2)) {
__gcry_cipher_gcm_setiv($c, 75691, 16) | 0;
$20 = HEAP8[$7 >> 0] | 0;
} else $20 = $8;
if ($20 & 8) {
$$0 = 156;
return $$0 | 0;
}
if (!($20 & 2)) {
_do_ghash_buf($c, $6, 0, 0, 1);
$25 = HEAP8[$7 >> 0] | 2;
HEAP8[$7 >> 0] = $25;
$38 = $25;
} else $38 = $20;
$26 = $c + 172 | 0;
$28 = (HEAP32[$26 >> 2] | 0) + $inbuflen | 0;
HEAP32[$26 >> 2] = $28;
$30 = $c + 176 | 0;
$31 = HEAP32[$30 >> 2] | 0;
if ($28 >>> 0 < $inbuflen >>> 0) {
$32 = $31 + 1 | 0;
HEAP32[$30 >> 2] = $32;
$33 = $32;
} else $33 = $31;
if ($33 >>> 0 <= 15) if ($33 >>> 0 < 15 | $28 >>> 0 < 4294967265) {
$39 = __gcry_cipher_ctr_encrypt($c, $outbuf, $outbuflen, $inbuf, $inbuflen) | 0;
if ($39) {
$$0 = $39;
return $$0 | 0;
}
_do_ghash_buf($c, $6, $outbuf, $inbuflen, 0);
$$0 = 0;
return $$0 | 0;
}
HEAP8[$7 >> 0] = $38 | 4;
$$0 = 139;
return $$0 | 0;
}
function __gcry_mpi_point_log($name, $point, $ctx) {
$name = $name | 0;
$point = $point | 0;
$ctx = $ctx | 0;
var $1 = 0, $2 = 0, $3 = 0, $buf = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $x$028 = 0, $x$03 = 0, $y$057 = 0, $y$06 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$buf = sp + 12 | 0;
if (!$point) {
HEAP32[$vararg_buffer >> 2] = $name;
_snprintf($buf, 99, 44993, $vararg_buffer) | 0;
__gcry_log_printmpi($buf, 0);
STACKTOP = sp;
return;
}
HEAP32[$vararg_buffer1 >> 2] = $name;
_snprintf($buf, 99, 44998, $vararg_buffer1) | 0;
$1 = ($ctx | 0) != 0;
if ($1) {
$2 = __gcry_mpi_new(0) | 0;
$3 = __gcry_mpi_new(0) | 0;
if (!(__gcry_mpi_ec_get_affine($2, $3, $point, $ctx) | 0)) {
HEAP8[$buf + ((_strlen($buf) | 0) + -1) >> 0] = 120;
__gcry_log_printmpi($buf, $2);
HEAP8[$buf + ((_strlen($buf) | 0) + -1) >> 0] = 121;
__gcry_log_printmpi($buf, $3);
$x$028 = $2;
$y$057 = $3;
} else {
$x$03 = $2;
$y$06 = $3;
label = 6;
}
} else {
$x$03 = 0;
$y$06 = 0;
label = 6;
}
if ((label | 0) == 6) {
__gcry_log_printmpi($buf, HEAP32[$point >> 2] | 0);
HEAP8[$buf + ((_strlen($buf) | 0) + -1) >> 0] = 89;
__gcry_log_printmpi($buf, HEAP32[$point + 4 >> 2] | 0);
HEAP8[$buf + ((_strlen($buf) | 0) + -1) >> 0] = 90;
__gcry_log_printmpi($buf, HEAP32[$point + 8 >> 2] | 0);
if ($1) {
$x$028 = $x$03;
$y$057 = $y$06;
} else {
STACKTOP = sp;
return;
}
}
__gcry_mpi_release($x$028);
__gcry_mpi_release($y$057);
STACKTOP = sp;
return;
}
function _test_keys($sk, $nbits) {
$sk = $sk | 0;
$nbits = $nbits | 0;
var $0 = 0, $1 = 0, $11 = 0, $2 = 0, $20 = 0, $24 = 0, $3 = 0, $34 = 0, $4 = 0, $6 = 0, $result$0 = 0;
$0 = __gcry_mpi_new($nbits) | 0;
$1 = __gcry_mpi_new($nbits) | 0;
$2 = __gcry_mpi_new($nbits) | 0;
$3 = __gcry_mpi_new($nbits) | 0;
$4 = HEAP32[$sk >> 2] | 0;
$6 = HEAP32[$sk + 4 >> 2] | 0;
__gcry_mpi_randomize($0, $nbits, 0);
if (($1 | 0) == ($0 | 0)) {
$11 = __gcry_mpi_alloc(HEAP32[$0 + 4 >> 2] << 1) | 0;
__gcry_mpi_powm($11, $0, $6, $4);
__gcry_mpi_set($0, $11) | 0;
__gcry_mpi_free($11);
} else __gcry_mpi_powm($1, $0, $6, $4);
if (!(__gcry_mpi_cmp($1, $0) | 0)) $result$0 = -1; else {
_secret($2, $1, $sk);
if (!(__gcry_mpi_cmp($2, $0) | 0)) {
__gcry_mpi_randomize($0, $nbits, 0);
_secret($3, $0, $sk);
$20 = ($2 | 0) == ($3 | 0);
if ($20) {
$24 = __gcry_mpi_alloc(HEAP32[$2 + 4 >> 2] << 1) | 0;
__gcry_mpi_powm($24, $2, $6, $4);
__gcry_mpi_set($2, $24) | 0;
__gcry_mpi_free($24);
} else __gcry_mpi_powm($2, $3, $6, $4);
if (!(__gcry_mpi_cmp($2, $0) | 0)) {
__gcry_mpi_add_ui($3, $3, 1);
if ($20) {
$34 = __gcry_mpi_alloc(HEAP32[$2 + 4 >> 2] << 1) | 0;
__gcry_mpi_powm($34, $2, $6, $4);
__gcry_mpi_set($2, $34) | 0;
__gcry_mpi_free($34);
} else __gcry_mpi_powm($2, $3, $6, $4);
$result$0 = ((__gcry_mpi_cmp($2, $0) | 0) == 0) << 31 >> 31;
} else $result$0 = -1;
} else $result$0 = -1;
}
__gcry_mpi_release($3);
__gcry_mpi_release($2);
__gcry_mpi_release($1);
__gcry_mpi_release($0);
return $result$0 | 0;
}
function __gcry_mpi_init() {
var $0 = 0, $1 = 0, $12 = 0, $13 = 0, $18 = 0, $19 = 0, $24 = 0, $25 = 0, $30 = 0, $31 = 0, $6 = 0, $7 = 0;
$0 = __gcry_xmalloc(20) | 0;
$1 = __gcry_xmalloc(4) | 0;
HEAP32[$0 + 16 >> 2] = $1;
HEAP32[$0 >> 2] = 1;
HEAP32[$1 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
HEAP32[17533] = $0;
HEAP32[$0 + 12 >> 2] = 48;
$6 = __gcry_xmalloc(20) | 0;
$7 = __gcry_xmalloc(4) | 0;
HEAP32[$6 + 16 >> 2] = $7;
HEAP32[$6 >> 2] = 1;
HEAP32[$7 >> 2] = 1;
HEAP32[$6 + 4 >> 2] = 1;
HEAP32[$6 + 8 >> 2] = 0;
HEAP32[17534] = $6;
HEAP32[$6 + 12 >> 2] = 48;
$12 = __gcry_xmalloc(20) | 0;
$13 = __gcry_xmalloc(4) | 0;
HEAP32[$12 + 16 >> 2] = $13;
HEAP32[$12 >> 2] = 1;
HEAP32[$13 >> 2] = 2;
HEAP32[$12 + 4 >> 2] = 1;
HEAP32[$12 + 8 >> 2] = 0;
HEAP32[17535] = $12;
HEAP32[$12 + 12 >> 2] = 48;
$18 = __gcry_xmalloc(20) | 0;
$19 = __gcry_xmalloc(4) | 0;
HEAP32[$18 + 16 >> 2] = $19;
HEAP32[$18 >> 2] = 1;
HEAP32[$19 >> 2] = 3;
HEAP32[$18 + 4 >> 2] = 1;
HEAP32[$18 + 8 >> 2] = 0;
HEAP32[17536] = $18;
HEAP32[$18 + 12 >> 2] = 48;
$24 = __gcry_xmalloc(20) | 0;
$25 = __gcry_xmalloc(4) | 0;
HEAP32[$24 + 16 >> 2] = $25;
HEAP32[$24 >> 2] = 1;
HEAP32[$25 >> 2] = 4;
HEAP32[$24 + 4 >> 2] = 1;
HEAP32[$24 + 8 >> 2] = 0;
HEAP32[17537] = $24;
HEAP32[$24 + 12 >> 2] = 48;
$30 = __gcry_xmalloc(20) | 0;
$31 = __gcry_xmalloc(4) | 0;
HEAP32[$30 + 16 >> 2] = $31;
HEAP32[$30 >> 2] = 1;
HEAP32[$31 >> 2] = 8;
HEAP32[$30 + 4 >> 2] = 1;
HEAP32[$30 + 8 >> 2] = 0;
HEAP32[17538] = $30;
HEAP32[$30 + 12 >> 2] = 48;
return 0;
}
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$i = 0, $0 = 0, $11 = 0, $12 = 0, $14 = 0, $18 = 0, $19 = 0, $2 = 0, $23 = 0, $4 = 0, $5 = 0, $rawmpilen$i = 0, $rc$0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$rawmpilen$i = sp + 4 | 0;
$0 = ($x_in | 0) != 0;
if ($0) $4 = $x_in; else $4 = __gcry_mpi_new(0) | 0;
$2 = ($y_in | 0) != 0;
if ($2) $5 = $y_in; else $5 = __gcry_mpi_new(0) | 0;
if (!(__gcry_mpi_ec_get_affine($4, $5, $point, $ec) | 0)) {
$11 = ($with_prefix | 0) != 0;
$12 = $11 & 1;
$14 = __gcry_mpi_get_buffer_extra($5, (HEAP32[$ec + 12 >> 2] | 0) >>> 3, $11 << 31 >> 31, $rawmpilen$i, 0) | 0;
if (!$14) $$0$i = _gpg_err_code_from_syserror() | 0; else {
$18 = (__gcry_mpi_test_bit($4, 0) | 0) != 0;
$19 = HEAP32[$rawmpilen$i >> 2] | 0;
if ($18 & ($19 | 0) != 0) {
$23 = $14 + ($19 + (($11 ^ 1) << 31 >> 31)) | 0;
HEAP8[$23 >> 0] = HEAPU8[$23 >> 0] | 0 | 128;
}
if ($11) HEAP8[$14 >> 0] = 64;
HEAP32[$r_buffer >> 2] = $14;
HEAP32[$r_buflen >> 2] = (HEAP32[$rawmpilen$i >> 2] | 0) + $12;
$$0$i = 0;
}
$rc$0 = $$0$i;
} else {
__gcry_log_error(35170, $vararg_buffer);
$rc$0 = 63;
}
if (!$0) __gcry_mpi_free($4);
if ($2) {
STACKTOP = sp;
return $rc$0 | 0;
}
__gcry_mpi_free($5);
STACKTOP = sp;
return $rc$0 | 0;
}
function __gcry_mpi_free_limb_space($a, $nlimbs) {
$a = $a | 0;
$nlimbs = $nlimbs | 0;
var $1 = 0, $14 = 0, $15 = 0, $17 = 0, $6 = 0, $7 = 0, $_vlen$0$lcssa = 0, $_vlen$05 = 0, $_vlen$1 = 0, $_vlen$3$ph = 0, $_vlen$33 = 0, $_vptr$0$lcssa = 0, $_vptr$06 = 0, $_vptr$1 = 0, $_vptr$3$ph = 0, $_vptr$34 = 0, $scevgep = 0;
if (!$a) return;
$1 = $nlimbs << 2;
if ($1) {
if (!($a & 7)) {
$_vlen$0$lcssa = $1;
$_vptr$0$lcssa = $a;
} else {
$_vlen$05 = $1;
$_vptr$06 = $a;
while (1) {
HEAP8[$_vptr$06 >> 0] = 0;
$6 = $_vptr$06 + 1 | 0;
$7 = $_vlen$05 + -1 | 0;
if (($7 | 0) != 0 & ($6 & 7 | 0) != 0) {
$_vlen$05 = $7;
$_vptr$06 = $6;
} else {
$_vlen$0$lcssa = $7;
$_vptr$0$lcssa = $6;
break;
}
}
}
if ($_vlen$0$lcssa >>> 0 < 8) {
$_vlen$3$ph = $_vlen$0$lcssa;
$_vptr$3$ph = $_vptr$0$lcssa;
} else {
$14 = $_vlen$0$lcssa + -8 | 0;
$15 = $14 & -8;
$scevgep = $_vptr$0$lcssa + ($15 + 8) | 0;
$_vlen$1 = $_vlen$0$lcssa;
$_vptr$1 = $_vptr$0$lcssa;
while (1) {
$17 = $_vptr$1;
HEAP32[$17 >> 2] = 0;
HEAP32[$17 + 4 >> 2] = 0;
$_vlen$1 = $_vlen$1 + -8 | 0;
if ($_vlen$1 >>> 0 <= 7) break; else $_vptr$1 = $_vptr$1 + 8 | 0;
}
$_vlen$3$ph = $14 - $15 | 0;
$_vptr$3$ph = $scevgep;
}
if ($_vlen$3$ph) {
$_vlen$33 = $_vlen$3$ph;
$_vptr$34 = $_vptr$3$ph;
while (1) {
HEAP8[$_vptr$34 >> 0] = 0;
$_vlen$33 = $_vlen$33 + -1 | 0;
if (!$_vlen$33) break; else $_vptr$34 = $_vptr$34 + 1 | 0;
}
}
}
__gcry_free($a);
return;
}
function __gcry_ecc_ec2os($x, $y, $p) {
$x = $x | 0;
$y = $y | 0;
$p = $p | 0;
var $10 = 0, $12 = 0, $14 = 0, $15 = 0, $18 = 0, $2 = 0, $20 = 0, $22 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $n = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$n = sp + 24 | 0;
$result = sp + 20 | 0;
$2 = ((__gcry_mpi_get_nbits($p) | 0) + 7 | 0) >>> 3;
$4 = $2 << 1 | 1;
$5 = __gcry_xmalloc($4) | 0;
HEAP8[$5 >> 0] = 4;
$6 = $5 + 1 | 0;
$7 = __gcry_mpi_print(5, $6, $2, $n, $x) | 0;
if ($7) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($7) | 0;
__gcry_log_fatal(35486, $vararg_buffer);
}
$10 = HEAP32[$n >> 2] | 0;
if ($2 >>> 0 > $10 >>> 0) {
$12 = $2 - $10 | 0;
_memmove($6 + $12 | 0, $6 | 0, $10 | 0) | 0;
_memset($6 | 0, 0, $12 | 0) | 0;
}
$14 = $6 + $2 | 0;
$15 = __gcry_mpi_print(5, $14, $2, $n, $y) | 0;
if ($15) {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($15) | 0;
__gcry_log_fatal(35486, $vararg_buffer1);
}
$18 = HEAP32[$n >> 2] | 0;
if ($2 >>> 0 > $18 >>> 0) {
$20 = $2 - $18 | 0;
_memmove($14 + $20 | 0, $14 | 0, $18 | 0) | 0;
_memset($14 | 0, 0, $20 | 0) | 0;
}
$22 = __gcry_mpi_scan($result, 5, $5, $4, 0) | 0;
if (!$22) {
__gcry_free($5);
STACKTOP = sp;
return HEAP32[$result >> 2] | 0;
} else {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($22) | 0;
__gcry_log_fatal(35508, $vararg_buffer4);
}
return 0;
}
function _mbtowc($wc, $src, $n) {
$wc = $wc | 0;
$src = $src | 0;
$n = $n | 0;
var $$0 = 0, $10 = 0, $12 = 0, $20 = 0, $21 = 0, $29 = 0, $3 = 0, $33 = 0, $38 = 0, $4 = 0, $42 = 0, $8 = 0, $dummy = 0, $dummy$wc = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$dummy = sp;
L1 : do if (!$src) $$0 = 0; else {
do if ($n) {
$dummy$wc = ($wc | 0) == 0 ? $dummy : $wc;
$3 = HEAP8[$src >> 0] | 0;
$4 = $3 & 255;
if ($3 << 24 >> 24 > -1) {
HEAP32[$dummy$wc >> 2] = $4;
$$0 = $3 << 24 >> 24 != 0 & 1;
break L1;
}
$8 = $4 + -194 | 0;
if ($8 >>> 0 <= 50) {
$10 = $src + 1 | 0;
$12 = HEAP32[15300 + ($8 << 2) >> 2] | 0;
if ($n >>> 0 < 4) if ($12 & -2147483648 >>> (($n * 6 | 0) + -6 | 0)) break;
$20 = HEAPU8[$10 >> 0] | 0;
$21 = $20 >>> 3;
if (($21 + -16 | $21 + ($12 >> 26)) >>> 0 <= 7) {
$29 = $20 + -128 | $12 << 6;
if (($29 | 0) >= 0) {
HEAP32[$dummy$wc >> 2] = $29;
$$0 = 2;
break L1;
}
$33 = HEAPU8[$src + 2 >> 0] | 0;
if (($33 & 192 | 0) == 128) {
$38 = $33 + -128 | $29 << 6;
if (($38 | 0) >= 0) {
HEAP32[$dummy$wc >> 2] = $38;
$$0 = 3;
break L1;
}
$42 = HEAPU8[$src + 3 >> 0] | 0;
if (($42 & 192 | 0) == 128) {
HEAP32[$dummy$wc >> 2] = $42 + -128 | $38 << 6;
$$0 = 4;
break L1;
}
}
}
}
} while (0);
HEAP32[(___errno_location() | 0) >> 2] = 84;
$$0 = -1;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _GNUNET_CRYPTO_rsa_private_key_create($len) {
$len = $len | 0;
var $18 = 0, $s_key = 0, $s_keyparam = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer5 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer5 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$s_key = sp + 28 | 0;
$s_keyparam = sp + 24 | 0;
HEAP32[$vararg_buffer >> 2] = $len;
if (_gcry_sexp_build($s_keyparam, 0, 20543, $vararg_buffer) | 0) {
if ((HEAP32[232] | 0) == -1) HEAP32[232] = _GNUNET_get_log_call_status(1, 0, 20567, 20580, 154) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[232] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer1 >> 2] = 20567;
HEAP32[$vararg_buffer1 + 4 >> 2] = 154;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer1);
_GNUNET_abort_();
}
if (!(_gcry_pk_genkey($s_key, HEAP32[$s_keyparam >> 2] | 0) | 0)) {
_gcry_sexp_release(HEAP32[$s_keyparam >> 2] | 0);
$18 = _GNUNET_xmalloc_(4, 20567, 163) | 0;
HEAP32[$18 >> 2] = HEAP32[$s_key >> 2];
STACKTOP = sp;
return $18 | 0;
}
if ((HEAP32[233] | 0) == -1) HEAP32[233] = _GNUNET_get_log_call_status(1, 0, 20567, 20580, 157) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[233] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer5 >> 2] = 20567;
HEAP32[$vararg_buffer5 + 4 >> 2] = 157;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer5);
_GNUNET_abort_();
return 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, $12 = 0, $20 = 0, $23 = 0, $24 = 0, $26 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $36 = 0, $6 = 0, $7 = 0, $8 = 0;
if ((HEAP32[(HEAP32[$c + 12 >> 2] | 0) + 20 >> 2] | 0) != 16) {
$$0 = 12;
return $$0 | 0;
}
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$6 = $c + 128 | 0;
$7 = $c + 196 | 0;
$8 = HEAP8[$7 >> 0] | 0;
if ($8 & 4) {
$$0 = 139;
return $$0 | 0;
}
$12 = HEAP8[$c + 56 >> 0] | 0;
if (($12 & 4 | $8 & 1) << 24 >> 24) {
$$0 = 156;
return $$0 | 0;
}
if (!($12 & 2)) {
__gcry_cipher_gcm_setiv($c, 75707, 16) | 0;
$20 = HEAP8[$7 >> 0] | 0;
} else $20 = $8;
if (!($20 & 2)) {
_do_ghash_buf($c, $6, 0, 0, 1);
$23 = HEAP8[$7 >> 0] | 2;
HEAP8[$7 >> 0] = $23;
$36 = $23;
} else $36 = $20;
$24 = $c + 172 | 0;
$26 = (HEAP32[$24 >> 2] | 0) + $inbuflen | 0;
HEAP32[$24 >> 2] = $26;
$28 = $c + 176 | 0;
$29 = HEAP32[$28 >> 2] | 0;
if ($26 >>> 0 < $inbuflen >>> 0) {
$30 = $29 + 1 | 0;
HEAP32[$28 >> 2] = $30;
$31 = $30;
} else $31 = $29;
if ($31 >>> 0 <= 15) if ($31 >>> 0 < 15 | $26 >>> 0 < 4294967265) {
_do_ghash_buf($c, $6, $inbuf, $inbuflen, 0);
$$0 = __gcry_cipher_ctr_encrypt($c, $outbuf, $outbuflen, $inbuf, $inbuflen) | 0;
return $$0 | 0;
}
HEAP8[$7 >> 0] = $36 | 4;
$$0 = 139;
return $$0 | 0;
}
function __gpg_err_code_from_syserror() {
var $0 = 0, $14 = 0, $19 = 0, $24 = 0, $29 = 0, $37 = 0, $44 = 0, $9 = 0, $err = 0, $idx = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 8 | 0;
$err = sp + 4 | 0;
$idx = sp;
HEAP32[$err >> 2] = HEAP32[(___errno_location() | 0) >> 2];
if (!(HEAP32[$err >> 2] | 0)) {
HEAP32[$0 >> 2] = 16381;
$44 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $44 | 0;
}
$9 = HEAP32[$err >> 2] | 0;
do if ((HEAP32[$err >> 2] | 0) >= 1 & (HEAP32[$err >> 2] | 0) <= 11) $37 = $9 - 1 | 0; else {
$14 = HEAP32[$err >> 2] | 0;
if (($9 | 0) >= 11 & (HEAP32[$err >> 2] | 0) <= 35) {
$37 = $14 - 0 | 0;
break;
}
$19 = HEAP32[$err >> 2] | 0;
if (($14 | 0) >= 35 & (HEAP32[$err >> 2] | 0) <= 40) {
$37 = $19 + 1 | 0;
break;
}
$24 = HEAP32[$err >> 2] | 0;
if (($19 | 0) >= 42 & (HEAP32[$err >> 2] | 0) <= 57) {
$37 = $24 - 0 | 0;
break;
}
$29 = HEAP32[$err >> 2] | 0;
if (($24 | 0) >= 59 & (HEAP32[$err >> 2] | 0) <= 95) {
$37 = $29 - 1 | 0;
break;
} else {
$37 = ($29 | 0) >= 95 & (HEAP32[$err >> 2] | 0) <= 125 ? (HEAP32[$err >> 2] | 0) - 0 | 0 : -1;
break;
}
} while (0);
HEAP32[$idx >> 2] = $37;
if ((HEAP32[$idx >> 2] | 0) < 0) {
HEAP32[$0 >> 2] = 16382;
$44 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $44 | 0;
} else {
HEAP32[$0 >> 2] = 32768 | HEAP32[14760 + (HEAP32[$idx >> 2] << 2) >> 2];
$44 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $44 | 0;
}
return 0;
}
function _secret($output, $input, $skey) {
$output = $output | 0;
$input = $input | 0;
$skey = $skey | 0;
var $0 = 0, $16 = 0, $21 = 0, $26 = 0, $28 = 0, $3 = 0, $6 = 0;
__gcry_mpi_normalize($input);
$0 = $skey + 12 | 0;
if (HEAP32[$0 >> 2] | 0) {
$3 = $skey + 16 | 0;
if (HEAP32[$3 >> 2] | 0) {
$6 = $skey + 20 | 0;
if (HEAP32[$6 >> 2] | 0) {
$16 = __gcry_mpi_alloc_secure((HEAP32[(HEAP32[$skey >> 2] | 0) + 4 >> 2] | 0) + 1 | 0) | 0;
$21 = __gcry_mpi_alloc_secure((HEAP32[(HEAP32[$skey >> 2] | 0) + 4 >> 2] | 0) + 1 | 0) | 0;
$26 = __gcry_mpi_alloc_secure((HEAP32[(HEAP32[$skey >> 2] | 0) + 4 >> 2] | 0) + 1 | 0) | 0;
__gcry_mpi_sub_ui($26, HEAP32[$0 >> 2] | 0, 1);
$28 = $skey + 8 | 0;
__gcry_mpi_fdiv_r($26, HEAP32[$28 >> 2] | 0, $26);
__gcry_mpi_powm($16, $input, $26, HEAP32[$0 >> 2] | 0);
__gcry_mpi_sub_ui($26, HEAP32[$3 >> 2] | 0, 1);
__gcry_mpi_fdiv_r($26, HEAP32[$28 >> 2] | 0, $26);
__gcry_mpi_powm($21, $input, $26, HEAP32[$3 >> 2] | 0);
__gcry_mpi_sub($26, $21, $16);
if (HEAP32[$26 + 8 >> 2] | 0) __gcry_mpi_add($26, $26, HEAP32[$3 >> 2] | 0);
__gcry_mpi_mulm($26, HEAP32[$6 >> 2] | 0, $26, HEAP32[$3 >> 2] | 0);
__gcry_mpi_mul($26, $26, HEAP32[$0 >> 2] | 0);
__gcry_mpi_add($output, $16, $26);
__gcry_mpi_free($26);
__gcry_mpi_free($16);
__gcry_mpi_free($21);
return;
}
}
}
__gcry_mpi_powm($output, $input, HEAP32[$skey + 8 >> 2] | 0, HEAP32[$skey >> 2] | 0);
return;
}
function __gcry_inactivate_fips_mode($text) {
$text = $text | 0;
var $11 = 0, $14 = 0, $6 = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer9 = sp + 32 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer = sp;
if ((HEAP32[17504] | 0) == 1) __gcry_assert_failed(23167, 22940, 295, 23186);
if (HEAP32[17505] | 0) {
_fips_new_state(4);
HEAP32[$vararg_buffer >> 2] = 75759;
HEAP32[$vararg_buffer + 4 >> 2] = 22940;
HEAP32[$vararg_buffer + 8 >> 2] = 300;
HEAP32[$vararg_buffer + 12 >> 2] = 23286;
HEAP32[$vararg_buffer + 16 >> 2] = 23186;
HEAP32[$vararg_buffer + 20 >> 2] = ($text | 0) != 0 ? $text : 23213;
__gcry_log_info(23238, $vararg_buffer);
STACKTOP = sp;
return;
}
$6 = _gpgrt_lock_lock(1236) | 0;
if ($6) {
HEAP32[$vararg_buffer6 >> 2] = _gpg_strerror($6) | 0;
__gcry_log_info(23298, $vararg_buffer6);
_abort();
}
if (!(HEAP32[17506] | 0)) {
HEAP32[17506] = 1;
$11 = _gpgrt_lock_unlock(1236) | 0;
if (!$11) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer9 >> 2] = _gpg_strerror($11) | 0;
__gcry_log_info(23353, $vararg_buffer9);
_abort();
}
} else {
$14 = _gpgrt_lock_unlock(1236) | 0;
if (!$14) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer12 >> 2] = _gpg_strerror($14) | 0;
__gcry_log_info(23353, $vararg_buffer12);
_abort();
}
}
}
function _GNUNET_CRYPTO_rsa_signature_decode($buf, $len) {
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $s = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$s = sp + 16 | 0;
$0 = _GNUNET_xmalloc_(4, 20567, 852) | 0;
if (_gcry_sexp_new($0, $buf, $len, 0) | 0) {
if ((HEAP32[248] | 0) == -1) HEAP32[248] = _GNUNET_get_log_call_status(2, 0, 20567, 21079, 859) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[248] | 0) {
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 859;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer);
}
_GNUNET_xfree_($0, 20567, 860);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (_key_from_sexp_125($s, HEAP32[$0 >> 2] | 0, 37191, 38735) | 0) if (_key_from_sexp_125($s, HEAP32[$0 >> 2] | 0, 40355, 38735) | 0) {
if ((HEAP32[249] | 0) == -1) HEAP32[249] = _GNUNET_get_log_call_status(2, 0, 20567, 21079, 870) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[249] | 0) {
HEAP32[$vararg_buffer2 >> 2] = 20567;
HEAP32[$vararg_buffer2 + 4 >> 2] = 870;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer2);
}
_gcry_sexp_release(HEAP32[$0 >> 2] | 0);
_GNUNET_xfree_($0, 20567, 872);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
_gcry_mpi_release(HEAP32[$s >> 2] | 0);
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
function _GNUNET_CRYPTO_rsa_public_key_decode($buf, $len) {
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $n = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$n = sp + 16 | 0;
$0 = _GNUNET_xmalloc_(4, 20567, 366) | 0;
if (_gcry_sexp_new($0, $buf, $len, 0) | 0) {
if ((HEAP32[239] | 0) == -1) HEAP32[239] = _GNUNET_get_log_call_status(2, 0, 20567, 20885, 373) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[239] | 0) {
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 373;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer);
}
_GNUNET_xfree_($0, 20567, 374);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (_key_from_sexp_125($n, HEAP32[$0 >> 2] | 0, 37336, 38737) | 0) if (_key_from_sexp_125($n, HEAP32[$0 >> 2] | 0, 40355, 38737) | 0) {
if ((HEAP32[240] | 0) == -1) HEAP32[240] = _GNUNET_get_log_call_status(1, 0, 20567, 20885, 384) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[240] | 0) {
HEAP32[$vararg_buffer2 >> 2] = 20567;
HEAP32[$vararg_buffer2 + 4 >> 2] = 384;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer2);
}
_gcry_sexp_release(HEAP32[$0 >> 2] | 0);
_GNUNET_xfree_($0, 20567, 386);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
_gcry_mpi_release(HEAP32[$n >> 2] | 0);
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_mpi_mod_barrett($r, $x, $ctx) {
$r = $r | 0;
$x = $x | 0;
$ctx = $ctx | 0;
var $0 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $2 = 0, $20 = 0, $26 = 0, $27 = 0, $30 = 0, $32 = 0, $4 = 0, $6 = 0, $8 = 0;
$0 = HEAP32[$ctx >> 2] | 0;
$2 = HEAP32[$ctx + 8 >> 2] | 0;
$4 = HEAP32[$ctx + 12 >> 2] | 0;
$6 = HEAP32[$ctx + 16 >> 2] | 0;
$8 = HEAP32[$ctx + 20 >> 2] | 0;
__gcry_mpi_normalize($x);
if ((HEAP32[$x + 4 >> 2] | 0) > ($2 << 1 | 0)) {
__gcry_mpi_fdiv_r($r, $x, $0);
return;
}
$13 = $x + 8 | 0;
$14 = HEAP32[$13 >> 2] | 0;
HEAP32[$13 >> 2] = 0;
__gcry_mpi_set($8, $x) | 0;
__gcry_mpi_rshift_limbs($8, $2 + -1 | 0);
__gcry_mpi_mul($8, $8, $4);
$16 = $2 + 1 | 0;
__gcry_mpi_rshift_limbs($8, $16);
__gcry_mpi_set($6, $x) | 0;
$17 = $6 + 4 | 0;
if ((HEAP32[$17 >> 2] | 0) > ($16 | 0)) HEAP32[$17 >> 2] = $16;
__gcry_mpi_mul($8, $8, $0);
$20 = $8 + 4 | 0;
if ((HEAP32[$20 >> 2] | 0) > ($16 | 0)) HEAP32[$20 >> 2] = $16;
__gcry_mpi_sub($r, $6, $8);
if (HEAP32[$r + 8 >> 2] | 0) {
$26 = $ctx + 24 | 0;
$27 = HEAP32[$26 >> 2] | 0;
if (!$27) {
$30 = __gcry_mpi_alloc($2 + 2 | 0) | 0;
HEAP32[$26 >> 2] = $30;
__gcry_mpi_set_ui($30, 1) | 0;
__gcry_mpi_lshift_limbs(HEAP32[$26 >> 2] | 0, $16);
$32 = HEAP32[$26 >> 2] | 0;
} else $32 = $27;
__gcry_mpi_add($r, $r, $32);
}
if ((__gcry_mpi_cmp($r, $0) | 0) > -1) do __gcry_mpi_sub($r, $r, $0); while ((__gcry_mpi_cmp($r, $0) | 0) > -1);
HEAP32[$13 >> 2] = $14;
return;
}
function _data_to_sexp($ptr, $size) {
$ptr = $ptr | 0;
$size = $size | 0;
var $data = 0, $value = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer5 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$value = sp + 28 | 0;
$data = sp + 24 | 0;
HEAP32[$value >> 2] = 0;
HEAP32[$data >> 2] = 0;
if (_gcry_mpi_scan($value, 5, $ptr, $size, 0) | 0) {
if ((HEAP32[255] | 0) == -1) HEAP32[255] = _GNUNET_get_log_call_status(1, 0, 20567, 21236, 731) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[255] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 731;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
HEAP32[$vararg_buffer2 >> 2] = HEAP32[$value >> 2];
if (!(_gcry_sexp_build($data, 0, 21249, $vararg_buffer2) | 0)) {
_gcry_mpi_release(HEAP32[$value >> 2] | 0);
STACKTOP = sp;
return HEAP32[$data >> 2] | 0;
}
if ((HEAP32[256] | 0) == -1) HEAP32[256] = _GNUNET_get_log_call_status(1, 0, 20567, 21236, 736) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[256] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer5 >> 2] = 20567;
HEAP32[$vararg_buffer5 + 4 >> 2] = 736;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer5);
_GNUNET_abort_();
return 0;
}
function ___strchrnul($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $$0 = 0, $$02$lcssa = 0, $$0211 = 0, $$1 = 0, $0 = 0, $11 = 0, $15 = 0, $16 = 0, $22 = 0, $23 = 0, $29 = 0, $36 = 0, $37 = 0, $5 = 0, $8 = 0, $w$0$lcssa = 0, $w$08 = 0;
$0 = $c & 255;
L1 : do if (!$0) $$0 = $s + (_strlen($s) | 0) | 0; else {
if (!($s & 3)) $$02$lcssa = $s; else {
$5 = $c & 255;
$$0211 = $s;
while (1) {
$8 = HEAP8[$$0211 >> 0] | 0;
if ($8 << 24 >> 24 == 0 ? 1 : $8 << 24 >> 24 == $5 << 24 >> 24) {
$$0 = $$0211;
break L1;
}
$11 = $$0211 + 1 | 0;
if (!($11 & 3)) {
$$02$lcssa = $11;
break;
} else $$0211 = $11;
}
}
$15 = Math_imul($0, 16843009) | 0;
$16 = HEAP32[$$02$lcssa >> 2] | 0;
L10 : do if (!(($16 & -2139062144 ^ -2139062144) & $16 + -16843009)) {
$23 = $16;
$w$08 = $$02$lcssa;
while (1) {
$22 = $23 ^ $15;
if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) {
$w$0$lcssa = $w$08;
break L10;
}
$29 = $w$08 + 4 | 0;
$23 = HEAP32[$29 >> 2] | 0;
if (($23 & -2139062144 ^ -2139062144) & $23 + -16843009) {
$w$0$lcssa = $29;
break;
} else $w$08 = $29;
}
} else $w$0$lcssa = $$02$lcssa; while (0);
$36 = $c & 255;
$$1 = $w$0$lcssa;
while (1) {
$37 = HEAP8[$$1 >> 0] | 0;
if ($37 << 24 >> 24 == 0 ? 1 : $37 << 24 >> 24 == $36 << 24 >> 24) {
$$0 = $$1;
break;
} else $$1 = $$1 + 1 | 0;
}
} while (0);
return $$0 | 0;
}
function __gpg_err_code_from_errno($err) {
$err = $err | 0;
var $0 = 0, $1 = 0, $13 = 0, $18 = 0, $23 = 0, $28 = 0, $36 = 0, $43 = 0, $8 = 0, $idx = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 8 | 0;
$1 = sp + 4 | 0;
$idx = sp;
HEAP32[$1 >> 2] = $err;
if (!(HEAP32[$1 >> 2] | 0)) {
HEAP32[$0 >> 2] = 0;
$43 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $43 | 0;
}
$8 = HEAP32[$1 >> 2] | 0;
do if ((HEAP32[$1 >> 2] | 0) >= 1 & (HEAP32[$1 >> 2] | 0) <= 11) $36 = $8 - 1 | 0; else {
$13 = HEAP32[$1 >> 2] | 0;
if (($8 | 0) >= 11 & (HEAP32[$1 >> 2] | 0) <= 35) {
$36 = $13 - 0 | 0;
break;
}
$18 = HEAP32[$1 >> 2] | 0;
if (($13 | 0) >= 35 & (HEAP32[$1 >> 2] | 0) <= 40) {
$36 = $18 + 1 | 0;
break;
}
$23 = HEAP32[$1 >> 2] | 0;
if (($18 | 0) >= 42 & (HEAP32[$1 >> 2] | 0) <= 57) {
$36 = $23 - 0 | 0;
break;
}
$28 = HEAP32[$1 >> 2] | 0;
if (($23 | 0) >= 59 & (HEAP32[$1 >> 2] | 0) <= 95) {
$36 = $28 - 1 | 0;
break;
} else {
$36 = ($28 | 0) >= 95 & (HEAP32[$1 >> 2] | 0) <= 125 ? (HEAP32[$1 >> 2] | 0) - 0 | 0 : -1;
break;
}
} while (0);
HEAP32[$idx >> 2] = $36;
if ((HEAP32[$idx >> 2] | 0) < 0) {
HEAP32[$0 >> 2] = 16382;
$43 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $43 | 0;
} else {
HEAP32[$0 >> 2] = 32768 | HEAP32[14760 + (HEAP32[$idx >> 2] << 2) >> 2];
$43 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $43 | 0;
}
return 0;
}
function ___fwritex($s, $l, $f) {
$s = $s | 0;
$l = $l | 0;
$f = $f | 0;
var $$0 = 0, $$01 = 0, $$02 = 0, $0 = 0, $1 = 0, $11 = 0, $19 = 0, $29 = 0, $6 = 0, $7 = 0, $9 = 0, $i$0 = 0, $i$0$lcssa12 = 0, $i$1 = 0, label = 0;
$0 = $f + 16 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!$1) if (!(___towrite($f) | 0)) {
$9 = HEAP32[$0 >> 2] | 0;
label = 5;
} else $$0 = 0; else {
$9 = $1;
label = 5;
}
L5 : do if ((label | 0) == 5) {
$6 = $f + 20 | 0;
$7 = HEAP32[$6 >> 2] | 0;
$11 = $7;
if (($9 - $7 | 0) >>> 0 < $l >>> 0) {
$$0 = FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, $s, $l) | 0;
break;
}
L10 : do if ((HEAP8[$f + 75 >> 0] | 0) > -1) {
$i$0 = $l;
while (1) {
if (!$i$0) {
$$01 = $l;
$$02 = $s;
$29 = $11;
$i$1 = 0;
break L10;
}
$19 = $i$0 + -1 | 0;
if ((HEAP8[$s + $19 >> 0] | 0) == 10) {
$i$0$lcssa12 = $i$0;
break;
} else $i$0 = $19;
}
if ((FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, $s, $i$0$lcssa12) | 0) >>> 0 < $i$0$lcssa12 >>> 0) {
$$0 = $i$0$lcssa12;
break L5;
}
$$01 = $l - $i$0$lcssa12 | 0;
$$02 = $s + $i$0$lcssa12 | 0;
$29 = HEAP32[$6 >> 2] | 0;
$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;
HEAP32[$6 >> 2] = (HEAP32[$6 >> 2] | 0) + $$01;
$$0 = $i$1 + $$01 | 0;
} while (0);
return $$0 | 0;
}
function __gcry_strdup($string) {
$string = $string | 0;
var $$0$i = 0, $0 = 0, $13 = 0, $14 = 0, $16 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $8 = 0, $m$0$i$i = 0, $string_cp$01 = 0, $string_cp$03 = 0, label = 0;
$0 = _strlen($string) | 0;
do if (!(HEAP32[17479] | 0)) label = 6; else {
if (__gcry_enforced_fips_mode() | 0) {
HEAP32[17479] = 0;
label = 6;
break;
}
if (!(HEAP32[17479] | 0)) label = 6; else {
$16 = $0 + 1 | 0;
label = 10;
}
} while (0);
if ((label | 0) == 6) {
$8 = HEAP32[17485] | 0;
if (!$8) $$0$i = __gcry_private_is_secure($string) | 0; else $$0$i = FUNCTION_TABLE_ii[$8 & 15]($string) | 0;
$13 = $0 + 1 | 0;
if (!$$0$i) {
$16 = $13;
label = 10;
} else {
$24 = __gcry_malloc_secure($13) | 0;
if (!$24) {
$string_cp$01 = 0;
return $string_cp$01 | 0;
} else $string_cp$03 = $24;
}
}
if ((label | 0) == 10) {
$14 = HEAP32[17483] | 0;
if (!$14) $m$0$i$i = __gcry_private_malloc($16) | 0; else $m$0$i$i = FUNCTION_TABLE_ii[$14 & 15]($16) | 0;
if (!$m$0$i$i) {
$20 = ___errno_location() | 0;
$21 = HEAP32[$20 >> 2] | 0;
if (!$21) {
_gpg_err_set_errno(12);
$23 = HEAP32[$20 >> 2] | 0;
} else $23 = $21;
_gpg_err_code_from_errno($23) | 0;
$string_cp$01 = 0;
return $string_cp$01 | 0;
} else $string_cp$03 = $m$0$i$i;
}
_strcpy($string_cp$03, $string) | 0;
$string_cp$01 = $string_cp$03;
return $string_cp$01 | 0;
}
function __gcry_sha1_hash_buffers($outbuf, $iov, $iovcnt) {
$outbuf = $outbuf | 0;
$iov = $iov | 0;
$iovcnt = $iovcnt | 0;
var $$012 = 0, $$03 = 0, $5 = 0, $hd = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$hd = sp;
HEAP32[$hd + 160 >> 2] = 1732584193;
HEAP32[$hd + 164 >> 2] = -271733879;
HEAP32[$hd + 168 >> 2] = -1732584194;
HEAP32[$hd + 172 >> 2] = 271733878;
HEAP32[$hd + 176 >> 2] = -1009589776;
$5 = $hd + 128 | 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$hd + 148 >> 2] = 64;
HEAP32[$hd + 152 >> 2] = 32;
if (($iovcnt | 0) > 0) {
$$012 = $iov;
$$03 = $iovcnt;
} else {
_sha1_final($hd);
dest = $outbuf;
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;
}
while (1) {
__gcry_md_block_write($hd, (HEAP32[$$012 + 12 >> 2] | 0) + (HEAP32[$$012 + 4 >> 2] | 0) | 0, HEAP32[$$012 + 8 >> 2] | 0);
if (($$03 | 0) > 1) {
$$012 = $$012 + 16 | 0;
$$03 = $$03 + -1 | 0;
} else break;
}
_sha1_final($hd);
dest = $outbuf;
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_md_selftest($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $$ph = 0, $17 = 0, $22 = 0, $26 = 0, $28 = 0, $33 = 0, $ec$0 = 0, label = 0;
if ((HEAP32[1886] | 0) == ($algo | 0)) {
$$ph = 7544;
label = 7;
} else if ((HEAP32[1918] | 0) == ($algo | 0)) {
$$ph = 7672;
label = 7;
} else if ((HEAP32[1905] | 0) == ($algo | 0)) {
$$ph = 7620;
label = 7;
} else if ((HEAP32[1936] | 0) == ($algo | 0)) {
$$ph = 7744;
label = 7;
} else if ((HEAP32[1949] | 0) == ($algo | 0)) {
$$ph = 7796;
label = 7;
} else if ((HEAP32[1845] | 0) == ($algo | 0)) {
$$ph = 7380;
label = 7;
} else {
$22 = 0;
$26 = 0;
$33 = 69;
label = 11;
}
do if ((label | 0) == 7) {
$17 = HEAP32[$$ph + 48 >> 2] | 0;
if (HEAP8[$$ph + 4 >> 0] & 1) {
$22 = $$ph;
$26 = 1;
$33 = ($17 | 0) != 0 ? 5 : 69;
label = 11;
break;
}
if (!$17) {
$22 = $$ph;
$26 = 1;
$33 = 69;
label = 11;
} else $ec$0 = FUNCTION_TABLE_iiii[$17 & 63]($algo, $extended, $report) | 0;
} while (0);
if ((label | 0) == 11) if (!$report) $ec$0 = $33; else {
if ($26) if (!(HEAP8[$22 + 4 >> 0] & 1)) $28 = 37398; else label = 14; else label = 14;
if ((label | 0) == 14) $28 = $26 ? 37359 : 37378;
FUNCTION_TABLE_viiii[$report & 1](42606, $algo, 37420, $28);
$ec$0 = $33;
}
return (($ec$0 | 0) == 0 ? 0 : $ec$0 & 65535 | 16777216) | 0;
}
function _GNUNET_CRYPTO_rsa_private_key_get_public($priv) {
$priv = $priv | 0;
var $$0 = 0, $15 = 0, $17 = 0, $18 = 0, $ne = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$ne = sp + 24 | 0;
$result = sp + 16 | 0;
if (_key_from_sexp_125($ne, HEAP32[$priv >> 2] | 0, 37336, 38723) | 0) if (_key_from_sexp_125($ne, HEAP32[$priv >> 2] | 0, 37347, 38723) | 0) if (_key_from_sexp_125($ne, HEAP32[$priv >> 2] | 0, 40355, 38723) | 0) {
if ((HEAP32[237] | 0) == -1) HEAP32[237] = _GNUNET_get_log_call_status(2, 0, 20567, 20730, 269) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[237] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 269;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$15 = HEAP32[$ne >> 2] | 0;
$17 = HEAP32[$ne + 4 >> 2] | 0;
HEAP32[$vararg_buffer2 >> 2] = $15;
HEAP32[$vararg_buffer2 + 4 >> 2] = $17;
_gcry_sexp_build($result, 0, 20819, $vararg_buffer2) | 0;
_gcry_mpi_release($15);
_gcry_mpi_release($17);
$18 = _GNUNET_xmalloc_(4, 20567, 279) | 0;
HEAP32[$18 >> 2] = HEAP32[$result >> 2];
$$0 = $18;
STACKTOP = sp;
return $$0 | 0;
}
function ___shgetc($f) {
$f = $f | 0;
var $$0 = 0, $$phi$trans$insert3 = 0, $$pre = 0, $0 = 0, $1 = 0, $13 = 0, $18 = 0, $20 = 0, $25 = 0, $27 = 0, $29 = 0, $35 = 0, $36 = 0, $41 = 0, $6 = 0, $9 = 0, label = 0;
$0 = $f + 104 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!$1) label = 3; else if ((HEAP32[$f + 108 >> 2] | 0) < ($1 | 0)) label = 3; else label = 4;
if ((label | 0) == 3) {
$6 = ___uflow($f) | 0;
if (($6 | 0) < 0) label = 4; else {
$9 = HEAP32[$0 >> 2] | 0;
$$pre = HEAP32[$f + 8 >> 2] | 0;
if (!$9) {
$41 = $$pre;
label = 9;
} else {
$13 = HEAP32[$f + 4 >> 2] | 0;
$18 = $9 - (HEAP32[$f + 108 >> 2] | 0) | 0;
$20 = $$pre;
if (($$pre - $13 | 0) < ($18 | 0)) {
$41 = $20;
label = 9;
} else {
HEAP32[$f + 100 >> 2] = $13 + ($18 + -1);
$25 = $20;
}
}
if ((label | 0) == 9) {
HEAP32[$f + 100 >> 2] = $$pre;
$25 = $41;
}
$$phi$trans$insert3 = $f + 4 | 0;
if (!$25) $36 = HEAP32[$$phi$trans$insert3 >> 2] | 0; else {
$27 = HEAP32[$$phi$trans$insert3 >> 2] | 0;
$29 = $f + 108 | 0;
HEAP32[$29 >> 2] = $25 + 1 - $27 + (HEAP32[$29 >> 2] | 0);
$36 = $27;
}
$35 = $36 + -1 | 0;
if ((HEAPU8[$35 >> 0] | 0 | 0) == ($6 | 0)) $$0 = $6; else {
HEAP8[$35 >> 0] = $6;
$$0 = $6;
}
}
}
if ((label | 0) == 4) {
HEAP32[$f + 100 >> 2] = 0;
$$0 = -1;
}
return $$0 | 0;
}
function _decode_private_eddsa_key($priv) {
$priv = $priv | 0;
var $0 = 0, $8 = 0, $result = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer8 = sp + 24 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$result = sp + 32 | 0;
HEAP32[$vararg_buffer >> 2] = 32;
HEAP32[$vararg_buffer + 4 >> 2] = $priv;
$0 = _gcry_sexp_build($result, 0, 20050, $vararg_buffer) | 0;
if (!$0) {
STACKTOP = sp;
return HEAP32[$result >> 2] | 0;
}
if ((HEAP32[222] | 0) == -1) HEAP32[222] = _GNUNET_get_log_call_status(1, 20654, 19324, 20105, 169) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[222] | 0) {
$8 = _gcry_strerror($0) | 0;
HEAP32[$vararg_buffer2 >> 2] = 19447;
HEAP32[$vararg_buffer2 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer2 + 8 >> 2] = 169;
HEAP32[$vararg_buffer2 + 12 >> 2] = $8;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer2);
}
if ((HEAP32[223] | 0) == -1) HEAP32[223] = _GNUNET_get_log_call_status(1, 0, 19324, 20105, 170) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[223] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer8 >> 2] = 19324;
HEAP32[$vararg_buffer8 + 4 >> 2] = 170;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer8);
_GNUNET_abort_();
return 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 = 0, $13 = 0, $2 = 0, $6 = 0, $9 = 0, $i$01 = 0, $issue = 0, $issue$byval_copy = 0, $khc = 0, $ks = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160 | 0;
$issue$byval_copy = sp + 8 | 0;
$issue = sp;
$ks = sp + 80 | 0;
$khc = sp + 16 | 0;
$0 = ___muldi3($issue_date | 0, 0, 1e6, 0) | 0;
$2 = $issue;
HEAP32[$2 >> 2] = $0;
HEAP32[$2 + 4 >> 2] = tempRet0;
HEAP32[$issue$byval_copy >> 2] = HEAP32[$issue >> 2];
HEAP32[$issue$byval_copy + 4 >> 2] = HEAP32[$issue + 4 >> 2];
$6 = _GNUNET_TIME_absolute_hton($issue$byval_copy) | 0;
$9 = $ks + 8 | 0;
HEAP32[$9 >> 2] = $6;
HEAP32[$9 + 4 >> 2] = tempRet0;
$13 = _GNUNET_CRYPTO_hash_context_start() | 0;
if ($ndenoms) {
$i$01 = 0;
do {
_GNUNET_CRYPTO_rsa_public_key_hash(HEAP32[$denoms + ($i$01 << 2) >> 2] | 0, $khc);
_GNUNET_CRYPTO_hash_context_read($13, $khc, 64);
$i$01 = $i$01 + 1 | 0;
} while (($i$01 | 0) != ($ndenoms | 0));
}
_GNUNET_CRYPTO_hash_context_finish($13, $ks + 16 | 0);
HEAP32[$ks >> 2] = _htonl(80) | 0;
HEAP32[$ks + 4 >> 2] = _htonl(1035) | 0;
$$ = (_GNUNET_CRYPTO_eddsa_verify(1035, $ks, $sig, $sign_key) | 0) == 1 & 1;
STACKTOP = sp;
return $$ | 0;
}
function __gcry_fips_is_operational() {
var $10 = 0, $13 = 0, $16 = 0, $2 = 0, $5 = 0, $7 = 0, $result$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if ((HEAP32[17504] | 0) == 1) {
$result$0 = 1;
STACKTOP = sp;
return $result$0 | 0;
}
$2 = _gpgrt_lock_lock(1236) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_info(23298, $vararg_buffer);
_abort();
}
$5 = HEAP32[17507] | 0;
do if (($5 | 0) == 1) {
$7 = _gpgrt_lock_unlock(1236) | 0;
if ($7) {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($7) | 0;
__gcry_log_info(23353, $vararg_buffer1);
_abort();
}
__gcry_fips_run_selftests(0) | 0;
$10 = _gpgrt_lock_lock(1236) | 0;
if (!$10) {
$13 = HEAP32[17507] | 0;
break;
} else {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($10) | 0;
__gcry_log_info(23298, $vararg_buffer4);
_abort();
}
} else $13 = $5; while (0);
$16 = _gpgrt_lock_unlock(1236) | 0;
if (!$16) {
$result$0 = ($13 | 0) == 3 & 1;
STACKTOP = sp;
return $result$0 | 0;
} else {
HEAP32[$vararg_buffer7 >> 2] = _gpg_strerror($16) | 0;
__gcry_log_info(23353, $vararg_buffer7);
_abort();
}
return 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 $$0 = 0, $10 = 0, $15 = 0, $22 = 0, $amn1 = 0, $amn2 = 0, $sum = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$amn1 = sp + 48 | 0;
$amn2 = sp + 24 | 0;
$sum = sp;
if ((_TALER_amount_get_zero($cur, $amn1) | 0) != 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if ((_TALER_amount_get_zero($cur, $amn2) | 0) != 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if ((_TALER_amount_get_zero($cur, $sum) | 0) != 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$10 = $amn1;
HEAP32[$10 >> 2] = $0;
HEAP32[$10 + 4 >> 2] = $1;
HEAP32[$amn1 + 8 >> 2] = $v1_frac;
$15 = $amn2;
HEAP32[$15 >> 2] = $2;
HEAP32[$15 + 4 >> 2] = $3;
HEAP32[$amn2 + 8 >> 2] = $v2_frac;
if ((_TALER_amount_add($sum, $amn1, $amn2) | 0) != 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$22 = _GNUNET_xmalloc_(24, 18658, 493) | 0;
HEAP32[$22 >> 2] = HEAP32[$sum >> 2];
HEAP32[$22 + 4 >> 2] = HEAP32[$sum + 4 >> 2];
HEAP32[$22 + 8 >> 2] = HEAP32[$sum + 8 >> 2];
HEAP32[$22 + 12 >> 2] = HEAP32[$sum + 12 >> 2];
HEAP32[$22 + 16 >> 2] = HEAP32[$sum + 16 >> 2];
HEAP32[$22 + 20 >> 2] = HEAP32[$sum + 20 >> 2];
$$0 = $22;
STACKTOP = sp;
return $$0 | 0;
}
function _reporter($domain, $algo, $what, $errtxt) {
$domain = $domain | 0;
$algo = $algo | 0;
$what = $what | 0;
$errtxt = $errtxt | 0;
var $0 = 0, $19 = 0, $23 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$0 = ($errtxt | 0) != 0;
if (!$0) if (!(__gcry_log_verbosity(2) | 0)) {
STACKTOP = sp;
return;
}
$3 = _strcmp($domain, 35713) | 0;
$5 = ($3 | 0) != 0 ? $domain : 42606;
$6 = ($3 | 0) == 0;
$7 = $6 ? 23415 : 75759;
do if (!(_strcmp($domain, 37807) | 0)) $23 = __gcry_cipher_algo_name($algo) | 0; else {
if (!(_strcmp($domain, 42606) | 0)) {
$23 = __gcry_md_algo_name($algo) | 0;
break;
}
if ($6) {
$23 = __gcry_md_algo_name($algo) | 0;
break;
}
if (!(_strcmp($domain, 40533) | 0)) $23 = __gcry_pk_algo_name($algo) | 0; else $23 = 75759;
} while (0);
$19 = ($what | 0) != 0;
HEAP32[$vararg_buffer >> 2] = $5;
HEAP32[$vararg_buffer + 4 >> 2] = $7;
HEAP32[$vararg_buffer + 8 >> 2] = $23;
HEAP32[$vararg_buffer + 12 >> 2] = $algo;
HEAP32[$vararg_buffer + 16 >> 2] = $0 ? $errtxt : 23421;
HEAP32[$vararg_buffer + 20 >> 2] = $19 ? 23426 : 75759;
HEAP32[$vararg_buffer + 24 >> 2] = $19 ? $what : 75759;
HEAP32[$vararg_buffer + 28 >> 2] = $19 ? 46608 : 75759;
__gcry_log_info(23429, $vararg_buffer);
STACKTOP = sp;
return;
}
function __gcry_xstrdup($string) {
$string = $string | 0;
var $$0$i = 0, $$lcssa = 0, $$lcssa13 = 0, $0 = 0, $13 = 0, $15 = 0, $16 = 0, $2 = 0, $24 = 0, $26 = 0, $9 = 0, label = 0;
while (1) {
$0 = __gcry_strdup($string) | 0;
if ($0) {
$$lcssa = $0;
label = 15;
break;
}
$2 = _strlen($string) | 0;
do if (!(HEAP32[17479] | 0)) label = 7; else if (!(__gcry_enforced_fips_mode() | 0)) if (!(HEAP32[17479] | 0)) {
label = 7;
break;
} else {
$$0$i = 0;
break;
} else {
HEAP32[17479] = 0;
label = 7;
break;
} while (0);
do if ((label | 0) == 7) {
label = 0;
$9 = HEAP32[17485] | 0;
if (!$9) {
$$0$i = __gcry_private_is_secure($string) | 0;
break;
} else {
$$0$i = FUNCTION_TABLE_ii[$9 & 15]($string) | 0;
break;
}
} while (0);
$13 = ($$0$i | 0) != 0;
$15 = (__gcry_fips_mode() | 0) == 0;
$16 = HEAP32[17488] | 0;
if (!($15 & ($16 | 0) != 0)) {
$$lcssa13 = $13;
break;
}
if (!(FUNCTION_TABLE_iiii[$16 & 63](HEAP32[17489] | 0, $2, $13 & 1) | 0)) {
$$lcssa13 = $13;
break;
}
}
if ((label | 0) == 15) return $$lcssa | 0;
$24 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
if (!$$lcssa13) {
$26 = 0;
__gcry_fatal_error($24, $26);
}
$26 = __gcry_gettext(22099) | 0;
__gcry_fatal_error($24, $26);
return 0;
}
function _data_to_eddsa_value($purpose) {
$purpose = $purpose | 0;
var $$0 = 0, $10 = 0, $2 = 0, $data = 0, $hc = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$hc = sp + 40 | 0;
$data = sp + 32 | 0;
_GNUNET_CRYPTO_hash($purpose, _ntohl(HEAPU8[$purpose >> 0] | HEAPU8[$purpose + 1 >> 0] << 8 | HEAPU8[$purpose + 2 >> 0] << 16 | HEAPU8[$purpose + 3 >> 0] << 24) | 0, $hc);
HEAP32[$vararg_buffer >> 2] = 37293;
HEAP32[$vararg_buffer + 4 >> 2] = 64;
HEAP32[$vararg_buffer + 8 >> 2] = $hc;
$2 = _gcry_sexp_build($data, 0, 19986, $vararg_buffer) | 0;
if (!$2) {
$$0 = HEAP32[$data >> 2] | 0;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[221] | 0) == -1) HEAP32[221] = _GNUNET_get_log_call_status(1, 20654, 19324, 20030, 698) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[221] | 0)) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$10 = _gcry_strerror($2) | 0;
HEAP32[$vararg_buffer3 >> 2] = 19447;
HEAP32[$vararg_buffer3 + 4 >> 2] = 19324;
HEAP32[$vararg_buffer3 + 8 >> 2] = 698;
HEAP32[$vararg_buffer3 + 12 >> 2] = $10;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer3);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function _twocompl($p, $n) {
$p = $p | 0;
$n = $n | 0;
var $$lcssa = 0, $$lcssa19 = 0, $1 = 0, $2 = 0, $4 = 0, $40 = 0, $42 = 0, $i$0 = 0, $i$0$in = 0, $i$0$in$lcssa18 = 0, $i$15 = 0, label = 0;
$i$0$in = $n;
while (1) {
$i$0 = $i$0$in + -1 | 0;
if (($i$0 | 0) <= -1) {
label = 21;
break;
}
$1 = $p + $i$0 | 0;
$2 = HEAP8[$1 >> 0] | 0;
if (!($2 << 24 >> 24)) $i$0$in = $i$0; else {
$$lcssa = $1;
$$lcssa19 = $2;
$i$0$in$lcssa18 = $i$0$in;
break;
}
}
if ((label | 0) == 21) return;
$4 = $$lcssa19 & 255;
do if (!($4 & 1)) {
if ($4 & 2) {
HEAP8[$$lcssa >> 0] = $4 & 252 ^ 254;
break;
}
if ($4 & 4) {
HEAP8[$$lcssa >> 0] = $4 & 248 ^ 252;
break;
}
if ($4 & 8) {
HEAP8[$$lcssa >> 0] = $4 & 240 ^ 248;
break;
}
if ($4 & 16) {
HEAP8[$$lcssa >> 0] = $4 & 224 ^ 240;
break;
}
if ($4 & 32) {
HEAP8[$$lcssa >> 0] = $4 & 192 ^ 224;
break;
}
if (!($4 & 64)) {
HEAP8[$$lcssa >> 0] = -128;
break;
} else {
HEAP8[$$lcssa >> 0] = $4 & 128 ^ 192;
break;
}
} else HEAP8[$$lcssa >> 0] = ($4 | 1) ^ 254; while (0);
$40 = $i$0$in$lcssa18 + -2 | 0;
if (($40 | 0) > -1) $i$15 = $40; else return;
while (1) {
$42 = $p + $i$15 | 0;
HEAP8[$42 >> 0] = (HEAPU8[$42 >> 0] | 0) ^ 255;
if (($i$15 | 0) > 0) $i$15 = $i$15 + -1 | 0; else break;
}
return;
}
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 = 0, $0 = 0, $2 = 0, $20 = 0, $21 = 0, $4 = 0, $5 = 0, $6 = 0, $c = 0, $hd = 0, $idx$01 = 0, $nbytes$02 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$hd = sp;
$c = sp + 4 | 0;
$0 = __gcry_md_open($hd, $algo, 0) | 0;
if ($0) {
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = __gcry_md_get_algo_dlen($algo) | 0;
if ($outlen) {
$4 = $c + 1 | 0;
$5 = $c + 2 | 0;
$6 = $c + 3 | 0;
$idx$01 = 0;
$nbytes$02 = 0;
while (1) {
if ($idx$01) __gcry_md_reset(HEAP32[$hd >> 2] | 0);
HEAP8[$c >> 0] = $idx$01 >>> 24;
HEAP8[$4 >> 0] = $idx$01 >>> 16;
HEAP8[$5 >> 0] = $idx$01 >>> 8;
HEAP8[$6 >> 0] = $idx$01;
__gcry_md_write(HEAP32[$hd >> 2] | 0, $seed, $seedlen);
__gcry_md_write(HEAP32[$hd >> 2] | 0, $c, 4);
$20 = __gcry_md_read(HEAP32[$hd >> 2] | 0, 0) | 0;
$21 = $outlen - $nbytes$02 | 0;
$$ = $21 >>> 0 < $2 >>> 0 ? $21 : $2;
_memcpy($output + $nbytes$02 | 0, $20 | 0, $$ | 0) | 0;
$nbytes$02 = $$ + $nbytes$02 | 0;
if ($nbytes$02 >>> 0 >= $outlen >>> 0) break; else $idx$01 = $idx$01 + 1 | 0;
}
}
__gcry_md_close(HEAP32[$hd >> 2] | 0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_pk_selftest($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $$0$i$1$ph = 0, $$0$i$15 = 0, $$0$i3 = 0, $17 = 0, $19 = 0, $9 = 0, $ec$0 = 0, label = 0;
switch ($algo | 0) {
case 3:
case 2:
{
$$0$i3 = 1;
break;
}
case 16:
{
$$0$i3 = 20;
break;
}
case 301:
{
$$0$i3 = 18;
break;
}
case 302:
{
$$0$i3 = 18;
break;
}
default:
$$0$i3 = $algo;
}
if (($$0$i3 | 0) == (HEAP32[3099] | 0)) {
$$0$i$1$ph = 12396;
label = 8;
} else if (($$0$i3 | 0) == (HEAP32[1861] | 0)) {
$$0$i$1$ph = 7444;
label = 8;
} else {
$$0$i$15 = 0;
$17 = 0;
label = 11;
}
if ((label | 0) == 8) if (!(HEAP8[$$0$i$1$ph + 4 >> 0] & 1)) {
$9 = HEAP32[$$0$i$1$ph + 68 >> 2] | 0;
if (!$9) {
$$0$i$15 = $$0$i$1$ph;
$17 = 1;
label = 11;
} else $ec$0 = FUNCTION_TABLE_iiii[$9 & 63]($$0$i3, $extended, $report) | 0;
} else {
$$0$i$15 = $$0$i$1$ph;
$17 = 1;
label = 11;
}
if ((label | 0) == 11) if (!$report) $ec$0 = 4; else {
if ($17) if (!(HEAP8[$$0$i$15 + 4 >> 0] & 1)) $19 = 37398; else label = 14; else label = 14;
if ((label | 0) == 14) $19 = $17 ? 37359 : 37378;
FUNCTION_TABLE_viiii[$report & 1](40533, $$0$i3, 37420, $19);
$ec$0 = 4;
}
return (($ec$0 | 0) == 0 ? 0 : $ec$0 & 65535 | 16777216) | 0;
}
function _TALER_WR_multiply_amount($a, $factor) {
$a = $a | 0;
$factor = $factor | 0;
var $$0 = 0, $10 = 0, $11 = 0, $15 = 0, $21 = 0, $22 = 0, $3 = 0, $5 = 0, $8 = 0, $9 = 0, $tmp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$tmp = sp;
_TALER_amount_get_zero($a + 12 | 0, $tmp) | 0;
if ((_TALER_amount_normalize($a) | 0) == -1) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$3 = $a;
$5 = HEAP32[$3 >> 2] | 0;
$8 = HEAP32[$3 + 4 >> 2] | 0;
$9 = ___muldi3($5 | 0, $8 | 0, $factor | 0, 0) | 0;
$10 = tempRet0;
$11 = $tmp;
HEAP32[$11 >> 2] = $9;
HEAP32[$11 + 4 >> 2] = $10;
$15 = ___udivdi3($9 | 0, $10 | 0, $factor | 0, 0) | 0;
if (!(($15 | 0) == ($5 | 0) & (tempRet0 | 0) == ($8 | 0))) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$21 = HEAP32[$a + 8 >> 2] | 0;
$22 = Math_imul($21, $factor) | 0;
HEAP32[$tmp + 8 >> 2] = $22;
if ((($22 >>> 0) / ($factor >>> 0) | 0 | 0) != ($21 | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
_TALER_amount_normalize($tmp) | 0;
HEAP32[$a >> 2] = HEAP32[$tmp >> 2];
HEAP32[$a + 4 >> 2] = HEAP32[$tmp + 4 >> 2];
HEAP32[$a + 8 >> 2] = HEAP32[$tmp + 8 >> 2];
HEAP32[$a + 12 >> 2] = HEAP32[$tmp + 12 >> 2];
HEAP32[$a + 16 >> 2] = HEAP32[$tmp + 16 >> 2];
HEAP32[$a + 20 >> 2] = HEAP32[$tmp + 20 >> 2];
$$0 = 1;
STACKTOP = sp;
return $$0 | 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, $12 = 0, $2 = 0, $21 = 0, $22 = 0, $27 = 0, $33 = 0, $35 = 0, $41 = 0, $43 = 0, $47 = 0;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$2 = HEAP8[$c + 184 >> 0] | 0;
if (!($2 & 1)) {
$$0 = 156;
return $$0 | 0;
}
if (($2 & 2) == 0 | (HEAP8[$c + 56 >> 0] & 4) != 0) {
$$0 = 156;
return $$0 | 0;
}
$12 = $c + 136 | 0;
if (!((HEAP32[$12 >> 2] | 0) == 0 & (HEAP32[$12 + 4 >> 2] | 0) == 0)) {
$$0 = 156;
return $$0 | 0;
}
$21 = $c + 128 | 0;
$22 = $21;
$27 = HEAP32[$22 + 4 >> 2] | 0;
if (0 > $27 >>> 0 | (0 == ($27 | 0) ? $inbuflen >>> 0 > (HEAP32[$22 >> 2] | 0) >>> 0 : 0)) {
$$0 = 139;
return $$0 | 0;
}
$33 = __gcry_cipher_ctr_encrypt($c, $outbuf, $outbuflen, $inbuf, $inbuflen) | 0;
if ($33) {
$$0 = $33;
return $$0 | 0;
}
$35 = $21;
$41 = _i64Subtract(HEAP32[$35 >> 2] | 0, HEAP32[$35 + 4 >> 2] | 0, $inbuflen | 0, 0) | 0;
$43 = $21;
HEAP32[$43 >> 2] = $41;
HEAP32[$43 + 4 >> 2] = tempRet0;
$47 = _do_cbc_mac($c, $outbuf, $inbuflen, 0) | 0;
if (!$47) {
$$0 = 0;
return $$0 | 0;
}
___gcry_burn_stack($47 + 20 | 0);
$$0 = 0;
return $$0 | 0;
}
function _GNUNET_CRYPTO_mpi_scan_unsigned($result, $data, $size) {
$result = $result | 0;
$data = $data | 0;
$size = $size | 0;
var $0 = 0, $1 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer = sp;
$0 = sp + 24 | 0;
HEAP32[$0 >> 2] = $size;
$1 = _gcry_mpi_scan($result, 5, $data, $size, $0) | 0;
if (!$1) {
STACKTOP = sp;
return;
}
if ((HEAP32[229] | 0) == -1) HEAP32[229] = _GNUNET_get_log_call_status(1, 20654, 20211, 20309, 140) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[229] | 0) {
$9 = _gcry_strerror($1) | 0;
HEAP32[$vararg_buffer >> 2] = 20341;
HEAP32[$vararg_buffer + 4 >> 2] = 20211;
HEAP32[$vararg_buffer + 8 >> 2] = 140;
HEAP32[$vararg_buffer + 12 >> 2] = $9;
_GNUNET_log_from_nocheck(1, 20654, 20257, $vararg_buffer);
}
if ((HEAP32[230] | 0) == -1) HEAP32[230] = _GNUNET_get_log_call_status(1, 0, 20211, 20309, 141) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[230] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer4 >> 2] = 20211;
HEAP32[$vararg_buffer4 + 4 >> 2] = 141;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer4);
_GNUNET_abort_();
}
function _TALER_amount_normalize($amount) {
$amount = $amount | 0;
var $$0 = 0, $1 = 0, $11 = 0, $12 = 0, $14 = 0, $15 = 0, $16 = 0, $19 = 0, $2 = 0, $26 = 0, $4 = 0, $7 = 0, $ret$0$lcssa = 0, $ret$01 = 0;
if (!(HEAP8[$amount + 12 >> 0] | 0)) {
$$0 = -1;
return $$0 | 0;
}
$1 = $amount + 8 | 0;
$2 = $amount;
$4 = HEAP32[$2 >> 2] | 0;
$7 = HEAP32[$2 + 4 >> 2] | 0;
$11 = HEAP32[$1 >> 2] | 0;
L4 : do if (($4 | 0) == -1 & ($7 | 0) == -1) {
$26 = $11;
$ret$0$lcssa = 0;
} else {
$12 = $11;
$15 = $4;
$16 = $7;
$ret$01 = 0;
while (1) {
if ($12 >>> 0 <= 999999) {
$$0 = $ret$01;
break;
}
$14 = $12 + -1e6 | 0;
HEAP32[$1 >> 2] = $14;
$15 = _i64Add($15 | 0, $16 | 0, 1, 0) | 0;
$16 = tempRet0;
$19 = $amount;
HEAP32[$19 >> 2] = $15;
HEAP32[$19 + 4 >> 2] = $16;
if (($15 | 0) == -1 & ($16 | 0) == -1) {
$26 = $14;
$ret$0$lcssa = 1;
break L4;
} else {
$12 = $14;
$ret$01 = 1;
}
}
return $$0 | 0;
} while (0);
if ($26 >>> 0 <= 999999) {
$$0 = $ret$0$lcssa;
return $$0 | 0;
};
HEAP32[$amount >> 2] = 0;
HEAP32[$amount + 4 >> 2] = 0;
HEAP32[$amount + 8 >> 2] = 0;
HEAP32[$amount + 12 >> 2] = 0;
HEAP32[$amount + 16 >> 2] = 0;
HEAP32[$amount + 20 >> 2] = 0;
$$0 = -1;
return $$0 | 0;
}
function _initialize() {
var $11 = 0, $16 = 0, $2 = 0, $21 = 0, $22 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17541] | 0)) HEAP32[17541] = 1;
$2 = _gpgrt_lock_lock(12520) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_fatal(49833, $vararg_buffer);
}
HEAP32[17542] = 1;
do if (!(HEAP32[17556] | 0)) {
if (!(HEAP32[17554] | 0)) $11 = __gcry_xcalloc(1, 664) | 0; else $11 = __gcry_xcalloc_secure(1, 664) | 0;
HEAP32[17556] = $11;
if (!(HEAP32[17554] | 0)) $16 = __gcry_xcalloc(1, 664) | 0; else $16 = __gcry_xcalloc_secure(1, 664) | 0;
HEAP32[17564] = $16;
if (_access(52105, 4) | 0) {
$21 = __gcry_gettext(50624) | 0;
__gcry_log_fatal($21, $vararg_buffer1);
}
if (!(_access(52117, 4) | 0)) {
HEAP32[17561] = 3;
break;
} else {
$21 = __gcry_gettext(50624) | 0;
__gcry_log_fatal($21, $vararg_buffer1);
}
} while (0);
HEAP32[17542] = 0;
$22 = _gpgrt_lock_unlock(12520) | 0;
if (!$22) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer3 >> 2] = _gpg_strerror($22) | 0;
__gcry_log_fatal(49870, $vararg_buffer3);
}
}
function _mul_n_basecase($prodp, $up, $vp, $size) {
$prodp = $prodp | 0;
$up = $up | 0;
$vp = $vp | 0;
$size = $size | 0;
var $$05$pn = 0, $0 = 0, $14 = 0, $3 = 0, $_i$06 = 0, $cy$0 = 0, $cy$2 = 0, $i$04 = 0;
$0 = HEAP32[$vp >> 2] | 0;
L1 : do if ($0 >>> 0 < 2) {
$3 = ($size | 0) > 0;
if (($0 | 0) == 1) {
if ($3) {
$_i$06 = 0;
while (1) {
HEAP32[$prodp + ($_i$06 << 2) >> 2] = HEAP32[$up + ($_i$06 << 2) >> 2];
$_i$06 = $_i$06 + 1 | 0;
if (($_i$06 | 0) == ($size | 0)) {
$cy$0 = 0;
break L1;
}
}
}
} else if ($3) {
_memset($prodp | 0, 0, $size << 2 | 0) | 0;
$cy$0 = 0;
break;
}
HEAP32[$prodp + ($size << 2) >> 2] = 0;
return;
} else $cy$0 = __gcry_mpih_mul_1($prodp, $up, $size, $0) | 0; while (0);
HEAP32[$prodp + ($size << 2) >> 2] = $cy$0;
if (($size | 0) > 1) {
$$05$pn = $prodp;
$i$04 = 1;
} else return;
do {
$$05$pn = $$05$pn + 4 | 0;
$14 = HEAP32[$vp + ($i$04 << 2) >> 2] | 0;
if ($14 >>> 0 < 2) if (($14 | 0) == 1) $cy$2 = __gcry_mpih_add_n($$05$pn, $$05$pn, $up, $size) | 0; else $cy$2 = 0; else $cy$2 = __gcry_mpih_addmul_1($$05$pn, $up, $size, $14) | 0;
HEAP32[$$05$pn + ($size << 2) >> 2] = $cy$2;
$i$04 = $i$04 + 1 | 0;
} while (($i$04 | 0) != ($size | 0));
return;
}
function __gcry_rngsystem_randomize($buffer, $length, $level) {
$buffer = $buffer | 0;
$length = $length | 0;
$level = $level | 0;
var $12 = 0, $3 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17581] | 0)) {
HEAP32[17581] = 1;
HEAP32[17582] = 0;
}
$3 = _gpgrt_lock_lock(12612) | 0;
if ($3) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($3) | 0;
__gcry_log_fatal(51895, $vararg_buffer);
}
HEAP32[17582] = 1;
if (!$buffer) __gcry_assert_failed(51981, 51988, 144, 52004);
HEAP32[17583] = $buffer;
HEAP32[17584] = $length;
HEAP32[17585] = 0;
$7 = __gcry_rndlinux_gather_random(5, 0, $length, ($level | 0) == 2 ? 2 : 1) | 0;
if (($7 | 0) < 0) {
HEAP32[$vararg_buffer1 >> 2] = $7;
__gcry_log_fatal(52015, $vararg_buffer1);
}
if ((HEAP32[17585] | 0) != (HEAP32[17584] | 0)) {
HEAP32[$vararg_buffer1 >> 2] = $7;
__gcry_log_fatal(52015, $vararg_buffer1);
}
HEAP32[17582] = 0;
$12 = _gpgrt_lock_unlock(12612) | 0;
if (!$12) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer4 >> 2] = _gpg_strerror($12) | 0;
__gcry_log_fatal(51938, $vararg_buffer4);
}
}
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, $10 = 0, $11 = 0, $13 = 0, $15 = 0, $5 = 0, $8 = 0, $b = 0, $f = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
$b = sp + 112 | 0;
$f = sp;
dest = $f;
src = 15504;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
if (($n + -1 | 0) >>> 0 > 2147483646) if (!$n) {
$$01 = $b;
$$02 = 1;
label = 4;
} else {
HEAP32[(___errno_location() | 0) >> 2] = 75;
$$0 = -1;
} else {
$$01 = $s;
$$02 = $n;
label = 4;
}
if ((label | 0) == 4) {
$5 = -2 - $$01 | 0;
$$$02 = $$02 >>> 0 > $5 >>> 0 ? $5 : $$02;
HEAP32[$f + 48 >> 2] = $$$02;
$8 = $f + 20 | 0;
HEAP32[$8 >> 2] = $$01;
HEAP32[$f + 44 >> 2] = $$01;
$10 = $$01 + $$$02 | 0;
$11 = $f + 16 | 0;
HEAP32[$11 >> 2] = $10;
HEAP32[$f + 28 >> 2] = $10;
$13 = _vfprintf($f, $fmt, $ap) | 0;
if (!$$$02) $$0 = $13; else {
$15 = HEAP32[$8 >> 2] | 0;
HEAP8[$15 + ((($15 | 0) == (HEAP32[$11 >> 2] | 0)) << 31 >> 31) >> 0] = 0;
$$0 = $13;
}
}
STACKTOP = sp;
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, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $purpose$sroa$4$0 = 0;
HEAP8[$motivation + $motivation_len >> 0] = 0;
do if (!(_strcmp($motivation, 18733) | 0)) $purpose$sroa$4$0 = _htonl(1025) | 0; else {
if (!(_strcmp($motivation, 18766) | 0)) {
$purpose$sroa$4$0 = _htonl(1303) | 0;
break;
}
if (!(_strcmp($motivation, 18702) | 0)) {
$purpose$sroa$4$0 = _htonl(1200) | 0;
break;
} else {
$$0 = 0;
return $$0 | 0;
}
} while (0);
$10 = $payload_size + 8 | 0;
$11 = _htonl($10) | 0;
$12 = _GNUNET_xmalloc_($10, 18658, 327) | 0;
HEAP8[$12 >> 0] = $11;
HEAP8[$12 + 1 >> 0] = $11 >> 8;
HEAP8[$12 + 2 >> 0] = $11 >> 16;
HEAP8[$12 + 3 >> 0] = $11 >> 24;
$13 = $12 + 4 | 0;
HEAP8[$13 >> 0] = $purpose$sroa$4$0;
HEAP8[$13 + 1 >> 0] = $purpose$sroa$4$0 >> 8;
HEAP8[$13 + 2 >> 0] = $purpose$sroa$4$0 >> 16;
HEAP8[$13 + 3 >> 0] = $purpose$sroa$4$0 >> 24;
if (!$payload_size) {
$$0 = $12;
return $$0 | 0;
}
_memcpy($12 + 64 | 0, $payload | 0, $payload_size | 0) | 0;
$$0 = $12;
return $$0 | 0;
}
function __gcry_cipher_selftest($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $$ph = 0, $15 = 0, $20 = 0, $24 = 0, $26 = 0, $ec$0 = 0, label = 0;
if ((HEAP32[1069] | 0) == ($algo | 0)) {
$$ph = 4276;
label = 6;
} else if ((HEAP32[1085] | 0) == ($algo | 0)) {
$$ph = 4340;
label = 6;
} else if ((HEAP32[1101] | 0) == ($algo | 0)) {
$$ph = 4404;
label = 6;
} else if ((HEAP32[1968] | 0) == ($algo | 0)) {
$$ph = 7872;
label = 6;
} else if ((HEAP32[1984] | 0) == ($algo | 0)) {
$$ph = 7936;
label = 6;
} else {
$20 = 0;
$24 = 0;
label = 9;
}
if ((label | 0) == 6) if (!(HEAP8[$$ph + 4 >> 0] & 1)) {
$15 = HEAP32[$$ph + 52 >> 2] | 0;
if (!$15) {
$20 = $$ph;
$24 = 1;
label = 9;
} else $ec$0 = FUNCTION_TABLE_iiii[$15 & 63]($algo, $extended, $report) | 0;
} else {
$20 = $$ph;
$24 = 1;
label = 9;
}
if ((label | 0) == 9) if (!$report) $ec$0 = 12; else {
if ($24) if (!(HEAP8[$20 + 4 >> 0] & 1)) $26 = 37398; else label = 12; else label = 12;
if ((label | 0) == 12) $26 = $24 ? 37359 : 37378;
FUNCTION_TABLE_viiii[$report & 1](37807, $algo, 37420, $26);
$ec$0 = 12;
}
return (($ec$0 | 0) == 0 ? 0 : $ec$0 & 65535 | 16777216) | 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, $10 = 0, $aaa = 0, $hd = 0, $i$02 = 0, $result$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1008 | 0;
$hd = sp;
$aaa = sp + 8 | 0;
if ((__gcry_md_get_algo_dlen($algo) | 0) != ($expectlen | 0)) {
$$0 = 49319;
STACKTOP = sp;
return $$0 | 0;
}
if (__gcry_md_open($hd, $algo, 0) | 0) {
$$0 = 49360;
STACKTOP = sp;
return $$0 | 0;
}
switch ($datamode | 0) {
case 0:
{
__gcry_md_write(HEAP32[$hd >> 2] | 0, $data, $datalen);
label = 8;
break;
}
case 1:
{
_memset($aaa | 0, 97, 1e3) | 0;
$i$02 = 0;
do {
__gcry_md_write(HEAP32[$hd >> 2] | 0, $aaa, 1e3);
$i$02 = $i$02 + 1 | 0;
} while (($i$02 | 0) != 1e3);
label = 8;
break;
}
default:
$result$1 = 49302;
}
if ((label | 0) == 8) {
$10 = (_memcmp(__gcry_md_read(HEAP32[$hd >> 2] | 0, $algo) | 0, $expect, $expectlen) | 0) == 0;
$result$1 = $10 ? 0 : 49286;
}
__gcry_md_close(HEAP32[$hd >> 2] | 0);
$$0 = $result$1;
STACKTOP = sp;
return $$0 | 0;
}
function ___setrlimit($resource, $rlim) {
$resource = $resource | 0;
$rlim = $rlim | 0;
var $$0 = 0, $0 = 0, $12 = 0, $13 = 0, $15 = 0, $17 = 0, $2 = 0, $20 = 0, $25 = 0, $26 = 0, $4 = 0, $7 = 0, $k_rlim = 0, $vararg_buffer = 0, $vararg_buffer4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer = sp;
$k_rlim = sp + 24 | 0;
HEAP32[$vararg_buffer >> 2] = 0;
HEAP32[$vararg_buffer + 4 >> 2] = $resource;
HEAP32[$vararg_buffer + 8 >> 2] = $rlim;
HEAP32[$vararg_buffer + 12 >> 2] = 0;
$0 = ___syscall340(340, $vararg_buffer | 0) | 0;
if (($0 | 0) == -38) {
$2 = $rlim;
$4 = HEAP32[$2 >> 2] | 0;
$7 = HEAP32[$2 + 4 >> 2] | 0;
$12 = $7 >>> 0 < 0 | ($7 | 0) == 0 & $4 >>> 0 < 4294967295;
$13 = $12 ? $4 : -1;
$12 ? $7 : 0;
HEAP32[$k_rlim >> 2] = $13;
$15 = $rlim + 8 | 0;
$17 = HEAP32[$15 >> 2] | 0;
$20 = HEAP32[$15 + 4 >> 2] | 0;
$25 = $20 >>> 0 < 0 | ($20 | 0) == 0 & $17 >>> 0 < 4294967295;
$26 = $25 ? $17 : -1;
$25 ? $20 : 0;
HEAP32[$k_rlim + 4 >> 2] = $26;
HEAP32[$vararg_buffer4 >> 2] = $resource;
HEAP32[$vararg_buffer4 + 4 >> 2] = $k_rlim;
$$0 = ___syscall75(75, $vararg_buffer4 | 0) | 0;
} else $$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_mpi_swap_cond($a, $b, $swap) {
$a = $a | 0;
$b = $b | 0;
$swap = $swap | 0;
var $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $17 = 0, $18 = 0, $19 = 0, $22 = 0, $26 = 0, $27 = 0, $28 = 0, $31 = 0, $6 = 0, $8 = 0, $9 = 0, $i$01$us = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = HEAP32[$a >> 2] | 0;
$1 = ($swap | 0) != 0;
if (($0 | 0) != (HEAP32[$b >> 2] | 0)) __gcry_log_bug(45848, sp);
if (($0 | 0) > 0) {
$6 = HEAP32[$a + 16 >> 2] | 0;
$8 = HEAP32[$b + 16 >> 2] | 0;
if ($1) {
$i$01$us = 0;
do {
$9 = $6 + ($i$01$us << 2) | 0;
$11 = $8 + ($i$01$us << 2) | 0;
$12 = HEAP32[$11 >> 2] | 0;
$13 = $12 ^ HEAP32[$9 >> 2];
HEAP32[$9 >> 2] = $12;
HEAP32[$11 >> 2] = HEAP32[$11 >> 2] ^ $13;
$i$01$us = $i$01$us + 1 | 0;
} while (($i$01$us | 0) != ($0 | 0));
}
}
$17 = $a + 4 | 0;
$18 = HEAP32[$17 >> 2] | 0;
$19 = $b + 4 | 0;
$22 = $1 ? HEAP32[$19 >> 2] ^ $18 : 0;
HEAP32[$17 >> 2] = $22 ^ $18;
HEAP32[$19 >> 2] = HEAP32[$19 >> 2] ^ $22;
$26 = $a + 8 | 0;
$27 = HEAP32[$26 >> 2] | 0;
$28 = $b + 8 | 0;
$31 = $1 ? HEAP32[$28 >> 2] ^ $27 : 0;
HEAP32[$26 >> 2] = $31 ^ $27;
HEAP32[$28 >> 2] = HEAP32[$28 >> 2] ^ $31;
STACKTOP = sp;
return;
}
function __gcry_md_read($hd, $algo) {
$hd = $hd | 0;
$algo = $algo | 0;
var $$0$i = 0, $$lcssa = 0, $1 = 0, $10 = 0, $hd$idx$val$idx$val = 0, $r$02$i = 0, $r$02$i$lcssa = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
_md_final($hd);
$hd$idx$val$idx$val = HEAP32[(HEAP32[$hd >> 2] | 0) + 16 >> 2] | 0;
$1 = ($hd$idx$val$idx$val | 0) == 0;
if (!$algo) {
if ($1) __gcry_bug(36567, 816, 36753);
if (HEAP32[$hd$idx$val$idx$val + 4 >> 2] | 0) __gcry_log_debug(36714, $vararg_buffer);
$$0$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$hd$idx$val$idx$val >> 2] | 0) + 40 >> 2] & 15]($hd$idx$val$idx$val + 16 | 0) | 0;
STACKTOP = sp;
return $$0$i | 0;
}
if ($1) __gcry_bug(36567, 816, 36753); else $r$02$i = $hd$idx$val$idx$val;
while (1) {
$10 = HEAP32[$r$02$i >> 2] | 0;
if ((HEAP32[$10 >> 2] | 0) == ($algo | 0)) {
$$lcssa = $10;
$r$02$i$lcssa = $r$02$i;
break;
}
$r$02$i = HEAP32[$r$02$i + 4 >> 2] | 0;
if (!$r$02$i) {
label = 10;
break;
}
}
if ((label | 0) == 10) __gcry_bug(36567, 816, 36753);
$$0$i = FUNCTION_TABLE_ii[HEAP32[$$lcssa + 40 >> 2] & 15]($r$02$i$lcssa + 16 | 0) | 0;
STACKTOP = sp;
return $$0$i | 0;
}
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 = 0, $0 = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $23 = 0, $7 = 0, $frame$0 = 0;
$0 = ($r_frame | 0) != 0;
$1 = ($space | 0) != 0;
if (!($0 ^ $1)) {
$$0 = 45;
return $$0 | 0;
}
if ($0) HEAP32[$r_frame >> 2] = 0;
$2 = __gcry_mpi_get_nbits($value) | 0;
if (HEAP32[$value + 8 >> 2] | 0) __gcry_mpi_cmp_ui($value, 0) | 0;
$7 = ($2 + 7 | 0) >>> 3;
if ($7 >>> 0 > $nbytes >>> 0) {
$$0 = 67;
return $$0 | 0;
}
$$ = $7 >>> 0 < $nbytes >>> 0 ? $nbytes - $7 | 0 : 0;
$11 = $$ + $7 | 0;
if ($1) $frame$0 = $space; else {
if (!(HEAP32[$value + 12 >> 2] & 1)) $18 = __gcry_malloc($11) | 0; else $18 = __gcry_malloc_secure($11) | 0;
if (!$18) {
$$0 = _gpg_err_code_from_syserror() | 0;
return $$0 | 0;
} else $frame$0 = $18;
}
if ($$) _memset($frame$0 | 0, 0, $$ | 0) | 0;
$23 = __gcry_mpi_print(5, $frame$0 + $$ | 0, $7, 0, $value) | 0;
if ($23) {
__gcry_free($frame$0);
$$0 = $23;
return $$0 | 0;
}
if (!$0) {
$$0 = 0;
return $$0 | 0;
}
HEAP32[$r_frame >> 2] = $frame$0;
$$0 = 0;
return $$0 | 0;
}
function _atoi($s) {
$s = $s | 0;
var $$0 = 0, $$0$lcssa = 0, $$1$ph = 0, $$13 = 0, $$lcssa9 = 0, $11 = 0, $4 = 0, $5 = 0, $8 = 0, $isdigittmp$1 = 0, $isdigittmp5 = 0, $n$0$lcssa = 0, $n$04 = 0, $neg$0 = 0, $neg$1$ph = 0, label = 0;
$$0 = $s;
while (1) {
$4 = $$0 + 1 | 0;
if (!(_isspace(HEAP8[$$0 >> 0] | 0) | 0)) {
$$0$lcssa = $$0;
$$lcssa9 = $4;
break;
} else $$0 = $4;
}
$5 = HEAP8[$$0$lcssa >> 0] | 0;
switch ($5 << 24 >> 24 | 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) {
$$1$ph = $$lcssa9;
$8 = HEAP8[$$lcssa9 >> 0] | 0;
$neg$1$ph = $neg$0;
}
$isdigittmp$1 = ($8 << 24 >> 24) + -48 | 0;
if ($isdigittmp$1 >>> 0 < 10) {
$$13 = $$1$ph;
$isdigittmp5 = $isdigittmp$1;
$n$04 = 0;
while (1) {
$$13 = $$13 + 1 | 0;
$11 = ($n$04 * 10 | 0) - $isdigittmp5 | 0;
$isdigittmp5 = (HEAP8[$$13 >> 0] | 0) + -48 | 0;
if ($isdigittmp5 >>> 0 >= 10) {
$n$0$lcssa = $11;
break;
} else $n$04 = $11;
}
} else $n$0$lcssa = 0;
return (($neg$1$ph | 0) != 0 ? $n$0$lcssa : 0 - $n$0$lcssa | 0) | 0;
}
function _int2octets($r_frame, $value, $nbytes) {
$r_frame = $r_frame | 0;
$value = $value | 0;
$nbytes = $nbytes | 0;
var $$ = 0, $$0 = 0, $0 = 0, $14 = 0, $18 = 0, $2 = 0, $21 = 0, $6 = 0, $nframe = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$nframe = sp;
$0 = __gcry_mpi_print(5, 0, 0, $nframe, $value) | 0;
if ($0) {
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = HEAP32[$nframe >> 2] | 0;
if ($2 >>> 0 > $nbytes >>> 0) {
$$0 = 67;
STACKTOP = sp;
return $$0 | 0;
}
$$ = $2 >>> 0 < $nbytes >>> 0 ? $nbytes - $2 | 0 : 0;
$6 = $$ + $2 | 0;
if (!$value) label = 6; else if (!(HEAP32[$value + 12 >> 2] & 1)) label = 6; else $14 = __gcry_malloc_secure($6) | 0;
if ((label | 0) == 6) $14 = __gcry_malloc($6) | 0;
if (!$14) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
if ($$) _memset($14 | 0, 0, $$ | 0) | 0;
$18 = HEAP32[$nframe >> 2] | 0;
HEAP32[$nframe >> 2] = $18 + $$;
$21 = __gcry_mpi_print(5, $14 + $$ | 0, $18, 0, $value) | 0;
if (!$21) {
HEAP32[$r_frame >> 2] = $14;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
__gcry_free($14);
$$0 = $21;
STACKTOP = sp;
return $$0 | 0;
}
return 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, $16 = 0, $5 = 0, $9 = 0, $nframe = 0, $rc$0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$nframe = sp;
$1 = ($nbits + 7 | 0) >>> 3;
HEAP32[$nframe >> 2] = $1;
if (($valuelen | 0) == 0 | ($valuelen + 4 | 0) >>> 0 > $1 >>> 0) {
$$0 = 66;
STACKTOP = sp;
return $$0 | 0;
}
$5 = __gcry_malloc($1) | 0;
if (!$5) {
$$0 = _gpg_err_code_from_syserror() | 0;
STACKTOP = sp;
return $$0 | 0;
}
HEAP8[$5 >> 0] = 0;
HEAP8[$5 + 1 >> 0] = 1;
$9 = $1 - $valuelen | 0;
$10 = $9 + -3 | 0;
if (($10 | 0) <= 1) __gcry_assert_failed(38493, 38350, 368, 38563);
_memset($5 + 2 | 0, -1, $10 | 0) | 0;
HEAP8[$5 + ($9 + -1) >> 0] = 0;
_memcpy($5 + $9 | 0, $value | 0, $valuelen | 0) | 0;
$16 = __gcry_mpi_scan($r_result, 5, $5, $1, $nframe) | 0;
if (!$16) if (!(__gcry_get_debug_flag(1) | 0)) $rc$0 = 0; else {
__gcry_log_printmpi(38530, HEAP32[$r_result >> 2] | 0);
$rc$0 = 0;
} else $rc$0 = $16 & 65535;
__gcry_free($5);
$$0 = $rc$0;
STACKTOP = sp;
return $$0 | 0;
}
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, $12 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $27 = 0, $33 = 0, $35 = 0, $39 = 0;
if ($outbuflen >>> 0 < $inbuflen >>> 0) {
$$0 = 200;
return $$0 | 0;
}
$2 = HEAP8[$c + 184 >> 0] | 0;
if (!($2 & 1)) {
$$0 = 156;
return $$0 | 0;
}
if (($2 & 2) == 0 | (HEAP8[$c + 56 >> 0] & 4) != 0) {
$$0 = 156;
return $$0 | 0;
}
$12 = $c + 136 | 0;
if (!((HEAP32[$12 >> 2] | 0) == 0 & (HEAP32[$12 + 4 >> 2] | 0) == 0)) {
$$0 = 156;
return $$0 | 0;
}
$21 = $c + 128 | 0;
$22 = $21;
$24 = HEAP32[$22 >> 2] | 0;
$27 = HEAP32[$22 + 4 >> 2] | 0;
if ($27 >>> 0 < 0 | ($27 | 0) == 0 & $24 >>> 0 < $inbuflen >>> 0) {
$$0 = 139;
return $$0 | 0;
}
$33 = _i64Subtract($24 | 0, $27 | 0, $inbuflen | 0, 0) | 0;
$35 = $21;
HEAP32[$35 >> 2] = $33;
HEAP32[$35 + 4 >> 2] = tempRet0;
$39 = _do_cbc_mac($c, $inbuf, $inbuflen, 0) | 0;
if ($39) ___gcry_burn_stack($39 + 20 | 0);
$$0 = __gcry_cipher_ctr_encrypt($c, $outbuf, $outbuflen, $inbuf, $inbuflen) | 0;
return $$0 | 0;
}
function __gcry_sexp_new($retsexp, $buffer, $length, $autodetect) {
$retsexp = $retsexp | 0;
$buffer = $buffer | 0;
$length = $length | 0;
$autodetect = $autodetect | 0;
var $$0$i = 0, $$08$i = 0, $10 = 0, $4 = 0, $errcode$i = 0, $se$i = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$errcode$i = sp + 8 | 0;
$se$i = sp + 4 | 0;
if (!$retsexp) {
$$0$i = 45;
STACKTOP = sp;
return $$0$i | 0;
}
HEAP32[$retsexp >> 2] = 0;
if (!(($buffer | 0) != 0 & $autodetect >>> 0 < 2)) {
$$0$i = 45;
STACKTOP = sp;
return $$0$i | 0;
}
if (!($autodetect | $length)) {
$4 = __gcry_sexp_canon_len($buffer, 0, 0, $errcode$i) | 0;
if (!$4) {
$$0$i = HEAP32[$errcode$i >> 2] | 0;
STACKTOP = sp;
return $$0$i | 0;
} else $$08$i = $4;
} else if (($length | 0) == 0 & ($autodetect | 0) != 0) $$08$i = _strlen($buffer) | 0; else $$08$i = $length;
$10 = _do_sexp_sscan($se$i, 0, $buffer, $$08$i, 0, 0, $vararg_buffer) | 0;
HEAP32[$errcode$i >> 2] = $10;
if ($10) {
$$0$i = $10;
STACKTOP = sp;
return $$0$i | 0;
}
HEAP32[$retsexp >> 2] = HEAP32[$se$i >> 2];
$$0$i = 0;
STACKTOP = sp;
return $$0$i | 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 $$lcssa = 0, $1 = 0, $11 = 0, $12 = 0, $15 = 0, $2 = 0, $23 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $32 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy_limb$0 = 0, $j$0 = 0;
$1 = $res_ptr + ($s1_size << 2) | 0;
$2 = $s1_ptr + ($s1_size << 2) | 0;
$3 = $s2_limb & 65535;
$4 = $s2_limb >>> 16;
$cy_limb$0 = 0;
$j$0 = 0 - $s1_size | 0;
while (1) {
$6 = HEAP32[$2 + ($j$0 << 2) >> 2] | 0;
$7 = $6 & 65535;
$8 = $6 >>> 16;
$9 = Math_imul($7, $3) | 0;
$11 = Math_imul($8, $3) | 0;
$12 = Math_imul($8, $4) | 0;
$15 = $11 + (Math_imul($7, $4) | 0) + ($9 >>> 16) | 0;
$23 = ($15 << 16 | $9 & 65535) + $cy_limb$0 | 0;
$27 = $1 + ($j$0 << 2) | 0;
$28 = HEAP32[$27 >> 2] | 0;
$29 = $28 - $23 | 0;
$32 = ($15 >>> 0 < $11 >>> 0 ? $12 + 65536 | 0 : $12) + ($15 >>> 16) + ($23 >>> 0 < $cy_limb$0 >>> 0 & 1) + ($29 >>> 0 > $28 >>> 0 & 1) | 0;
HEAP32[$27 >> 2] = $29;
$j$0 = $j$0 + 1 | 0;
if (!$j$0) {
$$lcssa = $32;
break;
} else $cy_limb$0 = $32;
}
return $$lcssa | 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 $$lcssa = 0, $1 = 0, $11 = 0, $12 = 0, $15 = 0, $2 = 0, $23 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $32 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy_limb$0 = 0, $j$0 = 0;
$1 = $res_ptr + ($s1_size << 2) | 0;
$2 = $s1_ptr + ($s1_size << 2) | 0;
$3 = $s2_limb & 65535;
$4 = $s2_limb >>> 16;
$cy_limb$0 = 0;
$j$0 = 0 - $s1_size | 0;
while (1) {
$6 = HEAP32[$2 + ($j$0 << 2) >> 2] | 0;
$7 = $6 & 65535;
$8 = $6 >>> 16;
$9 = Math_imul($7, $3) | 0;
$11 = Math_imul($8, $3) | 0;
$12 = Math_imul($8, $4) | 0;
$15 = $11 + (Math_imul($7, $4) | 0) + ($9 >>> 16) | 0;
$23 = ($15 << 16 | $9 & 65535) + $cy_limb$0 | 0;
$27 = $1 + ($j$0 << 2) | 0;
$28 = HEAP32[$27 >> 2] | 0;
$29 = $23 + $28 | 0;
$32 = ($15 >>> 0 < $11 >>> 0 ? $12 + 65536 | 0 : $12) + ($15 >>> 16) + ($23 >>> 0 < $cy_limb$0 >>> 0 & 1) + ($29 >>> 0 < $28 >>> 0 & 1) | 0;
HEAP32[$27 >> 2] = $29;
$j$0 = $j$0 + 1 | 0;
if (!$j$0) {
$$lcssa = $32;
break;
} else $cy_limb$0 = $32;
}
return $$lcssa | 0;
}
function _GNUNET_CRYPTO_rsa_private_key_decode($buf, $len) {
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = _GNUNET_xmalloc_(4, 20567, 225) | 0;
if (_gcry_sexp_new($0, $buf, $len, 0) | 0) {
if ((HEAP32[235] | 0) == -1) HEAP32[235] = _GNUNET_get_log_call_status(2, 20654, 20567, 20659, 233) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[235] | 0) _GNUNET_log_from_nocheck(2, 20654, 20696, $vararg_buffer);
_GNUNET_xfree_($0, 20567, 234);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
if (!(_gcry_pk_testkey(HEAP32[$0 >> 2] | 0) | 0)) {
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[236] | 0) == -1) HEAP32[236] = _GNUNET_get_log_call_status(2, 20654, 20567, 20659, 240) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[236] | 0) _GNUNET_log_from_nocheck(2, 20654, 20696, $vararg_buffer1);
_gcry_sexp_release(HEAP32[$0 >> 2] | 0);
_GNUNET_xfree_($0, 20567, 178);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_xrealloc($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $$0$i = 0, $$lcssa = 0, $0 = 0, $13 = 0, $3 = 0, $4 = 0, $6 = 0, label = 0;
while (1) {
$0 = __gcry_realloc($a, $n) | 0;
if ($0) {
$$lcssa = $0;
label = 13;
break;
}
$3 = (__gcry_fips_mode() | 0) == 0;
$4 = HEAP32[17488] | 0;
if (!($3 & ($4 | 0) != 0)) {
label = 12;
break;
}
$6 = HEAP32[17489] | 0;
do if (!(HEAP32[17479] | 0)) label = 8; else if (!(__gcry_enforced_fips_mode() | 0)) if (!(HEAP32[17479] | 0)) {
label = 8;
break;
} else {
$$0$i = 0;
break;
} else {
HEAP32[17479] = 0;
label = 8;
break;
} while (0);
do if ((label | 0) == 8) {
label = 0;
$13 = HEAP32[17485] | 0;
if (!$13) {
$$0$i = __gcry_private_is_secure($a) | 0;
break;
} else {
$$0$i = FUNCTION_TABLE_ii[$13 & 15]($a) | 0;
break;
}
} while (0);
if (!(FUNCTION_TABLE_iiii[$4 & 63]($6, $n, ($$0$i | 0) != 0 ? 3 : 2) | 0)) {
label = 12;
break;
}
}
if ((label | 0) == 12) __gcry_fatal_error(_gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0, 0); else if ((label | 0) == 13) return $$lcssa | 0;
return 0;
}
function _sha512_init($context, $flags) {
$context = $context | 0;
$flags = $flags | 0;
var $1 = 0, $11 = 0, $16 = 0, $21 = 0, $26 = 0, $31 = 0, $36 = 0, $40 = 0, $6 = 0;
$1 = $context + 160 | 0;
HEAP32[$1 >> 2] = -205731576;
HEAP32[$1 + 4 >> 2] = 1779033703;
$6 = $context + 168 | 0;
HEAP32[$6 >> 2] = -2067093701;
HEAP32[$6 + 4 >> 2] = -1150833019;
$11 = $context + 176 | 0;
HEAP32[$11 >> 2] = -23791573;
HEAP32[$11 + 4 >> 2] = 1013904242;
$16 = $context + 184 | 0;
HEAP32[$16 >> 2] = 1595750129;
HEAP32[$16 + 4 >> 2] = -1521486534;
$21 = $context + 192 | 0;
HEAP32[$21 >> 2] = -1377402159;
HEAP32[$21 + 4 >> 2] = 1359893119;
$26 = $context + 200 | 0;
HEAP32[$26 >> 2] = 725511199;
HEAP32[$26 + 4 >> 2] = -1694144372;
$31 = $context + 208 | 0;
HEAP32[$31 >> 2] = -79577749;
HEAP32[$31 + 4 >> 2] = 528734635;
$36 = $context + 216 | 0;
HEAP32[$36 >> 2] = 327033209;
HEAP32[$36 + 4 >> 2] = 1541459225;
$40 = $context + 128 | 0;
HEAP32[$40 >> 2] = 0;
HEAP32[$40 + 4 >> 2] = 0;
HEAP32[$40 + 8 >> 2] = 0;
HEAP32[$40 + 12 >> 2] = 0;
HEAP32[$40 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 128;
HEAP32[$context + 152 >> 2] = 34;
return;
}
function _sha384_init($context, $flags) {
$context = $context | 0;
$flags = $flags | 0;
var $1 = 0, $11 = 0, $16 = 0, $21 = 0, $26 = 0, $31 = 0, $36 = 0, $40 = 0, $6 = 0;
$1 = $context + 160 | 0;
HEAP32[$1 >> 2] = -1056596264;
HEAP32[$1 + 4 >> 2] = -876896931;
$6 = $context + 168 | 0;
HEAP32[$6 >> 2] = 914150663;
HEAP32[$6 + 4 >> 2] = 1654270250;
$11 = $context + 176 | 0;
HEAP32[$11 >> 2] = 812702999;
HEAP32[$11 + 4 >> 2] = -1856437926;
$16 = $context + 184 | 0;
HEAP32[$16 >> 2] = -150054599;
HEAP32[$16 + 4 >> 2] = 355462360;
$21 = $context + 192 | 0;
HEAP32[$21 >> 2] = -4191439;
HEAP32[$21 + 4 >> 2] = 1731405415;
$26 = $context + 200 | 0;
HEAP32[$26 >> 2] = 1750603025;
HEAP32[$26 + 4 >> 2] = -1900787065;
$31 = $context + 208 | 0;
HEAP32[$31 >> 2] = 1694076839;
HEAP32[$31 + 4 >> 2] = -619958771;
$36 = $context + 216 | 0;
HEAP32[$36 >> 2] = -1090891868;
HEAP32[$36 + 4 >> 2] = 1203062813;
$40 = $context + 128 | 0;
HEAP32[$40 >> 2] = 0;
HEAP32[$40 + 4 >> 2] = 0;
HEAP32[$40 + 8 >> 2] = 0;
HEAP32[$40 + 12 >> 2] = 0;
HEAP32[$40 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 128;
HEAP32[$context + 152 >> 2] = 34;
return;
}
function __gcry_realloc($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $$0 = 0, $1 = 0, $12 = 0, $13 = 0, $16 = 0, $6 = 0, $7 = 0, $9 = 0, $m$0$i$i = 0, $p$0 = 0;
if (!$a) {
$1 = HEAP32[17483] | 0;
if (!$1) $m$0$i$i = __gcry_private_malloc($n) | 0; else $m$0$i$i = FUNCTION_TABLE_ii[$1 & 15]($n) | 0;
if ($m$0$i$i) {
$$0 = $m$0$i$i;
return $$0 | 0;
}
$6 = ___errno_location() | 0;
$7 = HEAP32[$6 >> 2] | 0;
if (!$7) {
_gpg_err_set_errno(12);
$9 = HEAP32[$6 >> 2] | 0;
} else $9 = $7;
_gpg_err_code_from_errno($9) | 0;
$$0 = 0;
return $$0 | 0;
}
if (!$n) {
$12 = HEAP32[(___errno_location() | 0) >> 2] | 0;
$13 = HEAP32[17487] | 0;
if (!$13) __gcry_private_free($a); else FUNCTION_TABLE_vi[$13 & 15]($a);
if (!$12) {
$$0 = 0;
return $$0 | 0;
}
_gpg_err_set_errno($12);
$$0 = 0;
return $$0 | 0;
}
$16 = HEAP32[17486] | 0;
if (!$16) $p$0 = __gcry_private_realloc($a, $n) | 0; else $p$0 = FUNCTION_TABLE_iii[$16 & 7]($a, $n) | 0;
if ($p$0) {
$$0 = $p$0;
return $$0 | 0;
}
if (HEAP32[(___errno_location() | 0) >> 2] | 0) {
$$0 = 0;
return $$0 | 0;
}
_gpg_err_set_errno(12);
$$0 = 0;
return $$0 | 0;
}
function __gcry_mpi_set_highbit($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $$lcssa = 0, $13 = 0, $18 = 0, $22 = 0, $24 = 0, $28 = 0, $29 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $bitno$0$1 = 0, $bitno$02 = 0, $i$03 = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
$5 = $n >>> 5;
$6 = $n & 31;
$7 = $a + 4 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if ($5 >>> 0 >= $8 >>> 0) {
if ($8 >>> 0 < (HEAP32[$a >> 2] | 0) >>> 0) {
$13 = HEAP32[$a + 16 >> 2] | 0;
$i$03 = $8;
do {
HEAP32[$13 + ($i$03 << 2) >> 2] = 0;
$i$03 = $i$03 + 1 | 0;
} while ($i$03 >>> 0 < (HEAP32[$a >> 2] | 0) >>> 0);
}
$18 = $5 + 1 | 0;
__gcry_mpi_resize($a, $18);
HEAP32[$7 >> 2] = $18;
}
$22 = (HEAP32[$a + 16 >> 2] | 0) + ($5 << 2) | 0;
$24 = HEAP32[$22 >> 2] | 1 << $6;
HEAP32[$22 >> 2] = $24;
$bitno$0$1 = $6 + 1 | 0;
if ($bitno$0$1 >>> 0 < 32) {
$29 = $24;
$bitno$02 = $bitno$0$1;
while (1) {
$28 = $29 & ~(1 << $bitno$02);
$bitno$02 = $bitno$02 + 1 | 0;
if (($bitno$02 | 0) == 32) {
$$lcssa = $28;
break;
} else $29 = $28;
}
HEAP32[$22 >> 2] = $$lcssa;
}
HEAP32[$7 >> 2] = $5 + 1;
return;
}
function __gpgrt_fflush($stream) {
$stream = $stream | 0;
var $0 = 0, $20 = 0, $28 = 0, $29 = 0, $30 = 0, $err = 0, $item = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 8 | 0;
$err = sp + 4 | 0;
$item = sp;
HEAP32[$0 >> 2] = $stream;
if (HEAP32[$0 >> 2] | 0) {
_lock_stream(HEAP32[$0 >> 2] | 0);
HEAP32[$err >> 2] = _do_fflush(HEAP32[$0 >> 2] | 0) | 0;
_unlock_stream(HEAP32[$0 >> 2] | 0);
$28 = HEAP32[$err >> 2] | 0;
$29 = ($28 | 0) != 0;
$30 = $29 ? -1 : 0;
STACKTOP = sp;
return $30 | 0;
}
HEAP32[$err >> 2] = 0;
_lock_list();
HEAP32[$item >> 2] = HEAP32[17590];
while (1) {
if (!(HEAP32[$item >> 2] | 0)) break;
if (HEAP32[(HEAP32[$item >> 2] | 0) + 4 >> 2] | 0) {
_lock_stream(HEAP32[(HEAP32[$item >> 2] | 0) + 4 >> 2] | 0);
$20 = _do_fflush(HEAP32[(HEAP32[$item >> 2] | 0) + 4 >> 2] | 0) | 0;
HEAP32[$err >> 2] = HEAP32[$err >> 2] | $20;
_unlock_stream(HEAP32[(HEAP32[$item >> 2] | 0) + 4 >> 2] | 0);
}
HEAP32[$item >> 2] = HEAP32[HEAP32[$item >> 2] >> 2];
}
_unlock_list();
$28 = HEAP32[$err >> 2] | 0;
$29 = ($28 | 0) != 0;
$30 = $29 ? -1 : 0;
STACKTOP = sp;
return $30 | 0;
}
function __gcry_ecc_curve_copy($agg$result, $E) {
$agg$result = $agg$result | 0;
$E = $E | 0;
var $19 = 0, $R = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$R = sp;
HEAP32[$R >> 2] = HEAP32[$E >> 2];
HEAP32[$R + 4 >> 2] = HEAP32[$E + 4 >> 2];
HEAP32[$R + 40 >> 2] = HEAP32[$E + 40 >> 2];
HEAP32[$R + 8 >> 2] = __gcry_mpi_copy(HEAP32[$E + 8 >> 2] | 0) | 0;
HEAP32[$R + 12 >> 2] = __gcry_mpi_copy(HEAP32[$E + 12 >> 2] | 0) | 0;
HEAP32[$R + 16 >> 2] = __gcry_mpi_copy(HEAP32[$E + 16 >> 2] | 0) | 0;
$19 = $R + 20 | 0;
__gcry_mpi_point_init($19);
__gcry_mpi_set(HEAP32[$19 >> 2] | 0, HEAP32[$E + 20 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$R + 24 >> 2] | 0, HEAP32[$E + 24 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$R + 28 >> 2] | 0, HEAP32[$E + 28 >> 2] | 0) | 0;
HEAP32[$R + 32 >> 2] = __gcry_mpi_copy(HEAP32[$E + 32 >> 2] | 0) | 0;
HEAP32[$R + 36 >> 2] = __gcry_mpi_copy(HEAP32[$E + 36 >> 2] | 0) | 0;
dest = $agg$result;
src = $R;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
STACKTOP = sp;
return;
}
function _GNUNET_CRYPTO_hash_context_finish($hc, $r_hash) {
$hc = $hc | 0;
$r_hash = $r_hash | 0;
var $1 = 0, $10 = 0, $vararg_buffer = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = _gcry_md_read(HEAP32[$hc >> 2] | 0, 0) | 0;
if ($1) {
if (!$r_hash) {
$10 = HEAP32[$hc >> 2] | 0;
_gcry_md_close($10);
_GNUNET_xfree_($hc, 20130, 480);
STACKTOP = sp;
return;
}
dest = $r_hash;
src = $1;
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));
$10 = HEAP32[$hc >> 2] | 0;
_gcry_md_close($10);
_GNUNET_xfree_($hc, 20130, 480);
STACKTOP = sp;
return;
}
if ((HEAP32[225] | 0) == -1) HEAP32[225] = _GNUNET_get_log_call_status(1, 0, 20130, 20177, 462) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[225] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20130;
HEAP32[$vararg_buffer + 4 >> 2] = 462;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
function __gcry_hmac256_finalize($hd, $r_dlen) {
$hd = $hd | 0;
$r_dlen = $r_dlen | 0;
var $$1 = 0, $16 = 0, $3 = 0, dest = 0, src = 0, stop = 0;
_finalize($hd);
do if (HEAP8[$hd + 40 >> 0] & 2) {
$3 = _malloc(172) | 0;
if ($3) {
HEAP32[$3 >> 2] = 1779033703;
HEAP32[$3 + 4 >> 2] = -1150833019;
HEAP32[$3 + 8 >> 2] = 1013904242;
HEAP32[$3 + 12 >> 2] = -1521486534;
HEAP32[$3 + 16 >> 2] = 1359893119;
HEAP32[$3 + 20 >> 2] = -1694144372;
HEAP32[$3 + 24 >> 2] = 528734635;
HEAP32[$3 + 28 >> 2] = 1541459225;
HEAP32[$3 + 32 >> 2] = 0;
HEAP32[$3 + 36 >> 2] = 0;
HEAP8[$3 + 40 >> 0] = 0;
__gcry_hmac256_update($3, $hd + 105 | 0, 64);
$16 = $hd + 41 | 0;
__gcry_hmac256_update($3, $16, 32);
_finalize($3);
dest = $16;
src = $3 + 41 | 0;
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));
__gcry_hmac256_release($3);
break;
}
_free($hd);
$$1 = 0;
return $$1 | 0;
} while (0);
if ($r_dlen) HEAP32[$r_dlen >> 2] = 32;
$$1 = $hd + 41 | 0;
return $$1 | 0;
}
function _strcasecmp($_l, $_r) {
$_l = $_l | 0;
$_r = $_r | 0;
var $0 = 0, $14 = 0, $15 = 0, $19 = 0, $20 = 0, $3 = 0, $5 = 0, $7 = 0, $8 = 0, $l$03 = 0, $l$03$lcssa20 = 0, $r$0$lcssa = 0, $r$04 = 0, $r$04$lcssa19 = 0;
$0 = HEAP8[$_l >> 0] | 0;
L1 : do if (!($0 << 24 >> 24)) {
$19 = 0;
$r$0$lcssa = $_r;
} else {
$5 = $0;
$7 = $0 & 255;
$l$03 = $_l;
$r$04 = $_r;
while (1) {
$3 = HEAP8[$r$04 >> 0] | 0;
if (!($3 << 24 >> 24)) {
$19 = $5;
$r$0$lcssa = $r$04;
break L1;
}
if ($5 << 24 >> 24 != $3 << 24 >> 24) {
$8 = _tolower($7) | 0;
if (($8 | 0) != (_tolower(HEAPU8[$r$04 >> 0] | 0) | 0)) {
$l$03$lcssa20 = $l$03;
$r$04$lcssa19 = $r$04;
break;
}
}
$l$03 = $l$03 + 1 | 0;
$14 = $r$04 + 1 | 0;
$15 = HEAP8[$l$03 >> 0] | 0;
if (!($15 << 24 >> 24)) {
$19 = 0;
$r$0$lcssa = $14;
break L1;
} else {
$5 = $15;
$7 = $15 & 255;
$r$04 = $14;
}
}
$19 = HEAP8[$l$03$lcssa20 >> 0] | 0;
$r$0$lcssa = $r$04$lcssa19;
} while (0);
$20 = _tolower($19 & 255) | 0;
return $20 - (_tolower(HEAPU8[$r$0$lcssa >> 0] | 0) | 0) | 0;
}
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, $13 = 0, $14 = 0, $25 = 0, $28 = 0, $7 = 0, $8 = 0, $9 = 0, $y$03 = 0;
if ($1 >>> 0 > 0 | ($1 | 0) == 0 & $0 >>> 0 > 4294967295) {
$$05 = $s;
$7 = $0;
$8 = $1;
while (1) {
$9 = ___uremdi3($7 | 0, $8 | 0, 10, 0) | 0;
$13 = $$05 + -1 | 0;
HEAP8[$13 >> 0] = $9 | 48;
$14 = ___udivdi3($7 | 0, $8 | 0, 10, 0) | 0;
if ($8 >>> 0 > 9 | ($8 | 0) == 9 & $7 >>> 0 > 4294967295) {
$$05 = $13;
$7 = $14;
$8 = tempRet0;
} else {
$$lcssa19 = $13;
$28 = $14;
break;
}
}
$$0$lcssa = $$lcssa19;
$$01$lcssa$off0 = $28;
} else {
$$0$lcssa = $s;
$$01$lcssa$off0 = $0;
}
if (!$$01$lcssa$off0) $$1$lcssa = $$0$lcssa; else {
$$12 = $$0$lcssa;
$y$03 = $$01$lcssa$off0;
while (1) {
$25 = $$12 + -1 | 0;
HEAP8[$25 >> 0] = ($y$03 >>> 0) % 10 | 0 | 48;
if ($y$03 >>> 0 < 10) {
$$1$lcssa = $25;
break;
} else {
$$12 = $25;
$y$03 = ($y$03 >>> 0) / 10 | 0;
}
}
}
return $$1$lcssa | 0;
}
function _md_write($a, $inbuf, $inlen) {
$a = $a | 0;
$inbuf = $inbuf | 0;
$inlen = $inlen | 0;
var $$pre = 0, $$pre$phi10Z2D = 0, $18 = 0, $19 = 0, $2 = 0, $24 = 0, $4 = 0, $r$0$1 = 0, $r$02 = 0;
$2 = HEAP32[(HEAP32[$a >> 2] | 0) + 8 >> 2] | 0;
$$pre = $a + 4 | 0;
if ($2) {
$4 = HEAP32[$$pre >> 2] | 0;
if ($4) if ((_fwrite($a + 12 | 0, $4, 1, $2) | 0) != 1) __gcry_bug(36567, 630, 36572);
if ($inlen) if ((_fwrite($inbuf, $inlen, 1, HEAP32[(HEAP32[$a >> 2] | 0) + 8 >> 2] | 0) | 0) != 1) __gcry_bug(36567, 632, 36572);
}
$r$0$1 = HEAP32[(HEAP32[$a >> 2] | 0) + 16 >> 2] | 0;
if (!$r$0$1) {
HEAP32[$$pre >> 2] = 0;
return;
}
$18 = $a + 12 | 0;
$r$02 = $r$0$1;
do {
$19 = HEAP32[$$pre >> 2] | 0;
if (!$19) $$pre$phi10Z2D = $r$02 + 16 | 0; else {
$24 = $r$02 + 16 | 0;
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$r$02 >> 2] | 0) + 32 >> 2] & 7]($24, $18, $19);
$$pre$phi10Z2D = $24;
}
FUNCTION_TABLE_viii[HEAP32[(HEAP32[$r$02 >> 2] | 0) + 32 >> 2] & 7]($$pre$phi10Z2D, $inbuf, $inlen);
$r$02 = HEAP32[$r$02 + 4 >> 2] | 0;
} while (($r$02 | 0) != 0);
HEAP32[$$pre >> 2] = 0;
return;
}
function _fflush($f) {
$f = $f | 0;
var $$0 = 0, $$01$2 = 0, $$014 = 0, $23 = 0, $27 = 0, $6 = 0, $phitmp = 0, $r$0$lcssa = 0, $r$03 = 0, $r$1 = 0;
do if (!$f) {
if (!(HEAP32[3823] | 0)) $27 = 0; else $27 = _fflush(HEAP32[3823] | 0) | 0;
___lock(70392);
$$01$2 = HEAP32[17597] | 0;
if (!$$01$2) $r$0$lcssa = $27; else {
$$014 = $$01$2;
$r$03 = $27;
while (1) {
if ((HEAP32[$$014 + 76 >> 2] | 0) > -1) $23 = ___lockfile($$014) | 0; else $23 = 0;
if ((HEAP32[$$014 + 20 >> 2] | 0) >>> 0 > (HEAP32[$$014 + 28 >> 2] | 0) >>> 0) $r$1 = ___fflush_unlocked($$014) | 0 | $r$03; else $r$1 = $r$03;
if ($23) ___unlockfile($$014);
$$014 = HEAP32[$$014 + 56 >> 2] | 0;
if (!$$014) {
$r$0$lcssa = $r$1;
break;
} else $r$03 = $r$1;
}
}
___unlock(70392);
$$0 = $r$0$lcssa;
} else {
if ((HEAP32[$f + 76 >> 2] | 0) <= -1) {
$$0 = ___fflush_unlocked($f) | 0;
break;
}
$phitmp = (___lockfile($f) | 0) == 0;
$6 = ___fflush_unlocked($f) | 0;
if ($phitmp) $$0 = $6; else {
___unlockfile($f);
$$0 = $6;
}
} while (0);
return $$0 | 0;
}
function __gcry_ecc_get_point($name, $ec) {
$name = $name | 0;
$ec = $ec | 0;
var $$0 = 0, $18 = 0, $19 = 0, $21 = 0, $23 = 0, $26 = 0, $3 = 0, $5 = 0;
if (!(_strcmp($name, 24121) | 0)) {
$3 = HEAP32[$ec + 28 >> 2] | 0;
if ($3) {
$5 = __gcry_mpi_point_new(0) | 0;
__gcry_mpi_set(HEAP32[$5 >> 2] | 0, HEAP32[$3 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$5 + 4 >> 2] | 0, HEAP32[$3 + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$5 + 8 >> 2] | 0, HEAP32[$3 + 8 >> 2] | 0) | 0;
$$0 = $5;
return $$0 | 0;
}
}
if (_strcmp($name, 46584) | 0) {
$$0 = 0;
return $$0 | 0;
}
$18 = $ec + 40 | 0;
$19 = HEAP32[$18 >> 2] | 0;
if (!$19) {
$21 = __gcry_ecc_compute_public(0, $ec, 0, 0) | 0;
HEAP32[$18 >> 2] = $21;
if (!$21) {
$$0 = 0;
return $$0 | 0;
} else $26 = $21;
} else $26 = $19;
$23 = __gcry_mpi_point_new(0) | 0;
__gcry_mpi_set(HEAP32[$23 >> 2] | 0, HEAP32[$26 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$23 + 4 >> 2] | 0, HEAP32[$26 + 4 >> 2] | 0) | 0;
__gcry_mpi_set(HEAP32[$23 + 8 >> 2] | 0, HEAP32[$26 + 8 >> 2] | 0) | 0;
$$0 = $23;
return $$0 | 0;
}
function _spec_from_name($name) {
$name = $name | 0;
var $$0 = 0, $15 = 0, $16 = 0, $18 = 0, $3 = 0, $4 = 0, $9 = 0, $aliases$03 = 0, $aliases$03$1 = 0, label = 0;
if (!(_strcasecmp($name, HEAP32[3102] | 0) | 0)) {
$$0 = 12396;
return $$0 | 0;
}
$3 = HEAP32[3103] | 0;
$4 = HEAP32[$3 >> 2] | 0;
L4 : do if ($4) {
$9 = $4;
$aliases$03 = $3;
while (1) {
$aliases$03 = $aliases$03 + 4 | 0;
if (!(_strcasecmp($name, $9) | 0)) {
$$0 = 12396;
break;
}
$9 = HEAP32[$aliases$03 >> 2] | 0;
if (!$9) break L4;
}
return $$0 | 0;
} while (0);
if (!(_strcasecmp($name, HEAP32[1864] | 0) | 0)) {
$$0 = 7444;
return $$0 | 0;
}
$15 = HEAP32[1865] | 0;
$16 = HEAP32[$15 >> 2] | 0;
if (!$16) {
$$0 = 0;
return $$0 | 0;
} else {
$18 = $16;
$aliases$03$1 = $15;
}
while (1) {
$aliases$03$1 = $aliases$03$1 + 4 | 0;
if (!(_strcasecmp($name, $18) | 0)) {
$$0 = 7444;
label = 6;
break;
}
$18 = HEAP32[$aliases$03$1 >> 2] | 0;
if (!$18) {
$$0 = 0;
label = 6;
break;
}
}
if ((label | 0) == 6) return $$0 | 0;
return 0;
}
function __gcry_private_free($a) {
$a = $a | 0;
var $4 = 0, $6 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
if (!$a) {
STACKTOP = sp;
return;
}
if (!(HEAP32[17491] | 0)) if (!(__gcry_private_is_secure($a) | 0)) {
_free($a);
STACKTOP = sp;
return;
} else {
__gcry_secmem_free($a);
STACKTOP = sp;
return;
}
$4 = HEAP8[$a + -1 >> 0] | 0;
switch ($4 << 24 >> 24) {
case -52:
case 85:
break;
default:
{
HEAP32[$vararg_buffer >> 2] = $a;
HEAP32[$vararg_buffer + 4 >> 2] = $4 & 255;
__gcry_log_fatal(22506, $vararg_buffer);
}
}
$6 = $a + -4 | 0;
if ((HEAP8[$a + (HEAPU8[$a + -3 >> 0] << 8 | HEAPU8[$6 >> 0] | HEAPU8[$a + -2 >> 0] << 16) >> 0] | 0) != -86) {
HEAP32[$vararg_buffer2 >> 2] = $a;
HEAP32[$vararg_buffer2 + 4 >> 2] = $4 & 255;
__gcry_log_fatal(22547, $vararg_buffer2);
}
if (!(__gcry_private_is_secure($a) | 0)) {
_free($6);
STACKTOP = sp;
return;
} else {
__gcry_secmem_free($6);
STACKTOP = sp;
return;
}
}
function __gcry_rngcsprng_dump_stats() {
var $0 = 0, $1 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer = sp;
$0 = HEAP32[17544] | 0;
$1 = HEAP32[17545] | 0;
$2 = HEAP32[17546] | 0;
$3 = HEAP32[17547] | 0;
$4 = HEAP32[17548] | 0;
$5 = HEAP32[17549] | 0;
$6 = HEAP32[17550] | 0;
$7 = HEAP32[17551] | 0;
$8 = HEAP32[17552] | 0;
$9 = HEAP32[17553] | 0;
$11 = (__gcry_rndhw_failed_p() | 0) != 0;
HEAP32[$vararg_buffer >> 2] = 600;
HEAP32[$vararg_buffer + 4 >> 2] = $0;
HEAP32[$vararg_buffer + 8 >> 2] = $1;
HEAP32[$vararg_buffer + 12 >> 2] = $2;
HEAP32[$vararg_buffer + 16 >> 2] = $3;
HEAP32[$vararg_buffer + 20 >> 2] = $4;
HEAP32[$vararg_buffer + 24 >> 2] = $5;
HEAP32[$vararg_buffer + 28 >> 2] = $6;
HEAP32[$vararg_buffer + 32 >> 2] = $7;
HEAP32[$vararg_buffer + 36 >> 2] = $8;
HEAP32[$vararg_buffer + 40 >> 2] = $9;
HEAP32[$vararg_buffer + 44 >> 2] = $11 ? 49907 : 75759;
__gcry_log_info(49923, $vararg_buffer);
STACKTOP = sp;
return;
}
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, $0 = 0, $1 = 0, $10 = 0, $3 = 0, $7 = 0, $8 = 0, $list$0 = 0;
HEAP32[$r_spec >> 2] = 0;
$0 = ($r_parms | 0) != 0;
if ($0) HEAP32[$r_parms >> 2] = 0;
$1 = ($want_private | 0) != 0;
$3 = __gcry_sexp_find_token($sexp, $1 ? 37347 : 37336, 0) | 0;
if ($1 | ($3 | 0) != 0) $list$0 = $3; else $list$0 = __gcry_sexp_find_token($sexp, 37347, 0) | 0;
if (!$list$0) {
$$0 = 65;
return $$0 | 0;
}
$7 = __gcry_sexp_cadr($list$0) | 0;
__gcry_sexp_release($list$0);
$8 = __gcry_sexp_nth_string($7, 0) | 0;
if (!$8) {
__gcry_sexp_release($7);
$$0 = 65;
return $$0 | 0;
}
$10 = _spec_from_name($8) | 0;
__gcry_free($8);
if (!$10) {
__gcry_sexp_release($7);
$$0 = 4;
return $$0 | 0;
}
HEAP32[$r_spec >> 2] = $10;
if ($0) {
HEAP32[$r_parms >> 2] = $7;
$$0 = 0;
return $$0 | 0;
} else {
__gcry_sexp_release($7);
$$0 = 0;
return $$0 | 0;
}
return 0;
}
function __gcry_logv($level, $fmt, $arg_ptr) {
$level = $level | 0;
$fmt = $fmt | 0;
$arg_ptr = $arg_ptr | 0;
var $0 = 0, $6 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = HEAP32[17475] | 0;
if (!$0) {
switch ($level | 0) {
case 30:
case 20:
case 10:
case 0:
break;
case 40:
{
_fwrite(21624, 7, 1, HEAP32[3824] | 0) | 0;
break;
}
case 50:
{
_fwrite(21632, 13, 1, HEAP32[3824] | 0) | 0;
break;
}
case 100:
{
_fwrite(21646, 5, 1, HEAP32[3824] | 0) | 0;
break;
}
default:
{
$6 = HEAP32[3824] | 0;
HEAP32[$vararg_buffer >> 2] = $level;
_fprintf($6, 21652, $vararg_buffer) | 0;
}
}
_vfprintf(HEAP32[3824] | 0, $fmt, $arg_ptr) | 0;
} else FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, $level, $fmt, $arg_ptr);
switch ($level | 0) {
case 40:
case 50:
{
__gcry_fips_signal_error(21584, 140, 21677, 1, 21688);
__gcry_secmem_term();
_abort();
break;
}
default:
{
STACKTOP = sp;
return;
}
}
}
function _strlen($s) {
$s = $s | 0;
var $$01$lcssa = 0, $$014 = 0, $$1$lcssa = 0, $$lcssa20 = 0, $$pn = 0, $$pn$15 = 0, $0 = 0, $18 = 0, $21 = 0, $5 = 0, $9 = 0, $w$0 = 0, $w$0$lcssa = 0, label = 0;
$0 = $s;
L1 : do if (!($0 & 3)) {
$$01$lcssa = $s;
label = 4;
} else {
$$014 = $s;
$21 = $0;
while (1) {
if (!(HEAP8[$$014 >> 0] | 0)) {
$$pn = $21;
break L1;
}
$5 = $$014 + 1 | 0;
$21 = $5;
if (!($21 & 3)) {
$$01$lcssa = $5;
label = 4;
break;
} else $$014 = $5;
}
} while (0);
if ((label | 0) == 4) {
$w$0 = $$01$lcssa;
while (1) {
$9 = HEAP32[$w$0 >> 2] | 0;
if (!(($9 & -2139062144 ^ -2139062144) & $9 + -16843009)) $w$0 = $w$0 + 4 | 0; else {
$$lcssa20 = $9;
$w$0$lcssa = $w$0;
break;
}
}
if (!(($$lcssa20 & 255) << 24 >> 24)) $$1$lcssa = $w$0$lcssa; else {
$$pn$15 = $w$0$lcssa;
while (1) {
$18 = $$pn$15 + 1 | 0;
if (!(HEAP8[$18 >> 0] | 0)) {
$$1$lcssa = $18;
break;
} else $$pn$15 = $18;
}
}
$$pn = $$1$lcssa;
}
return $$pn - $0 | 0;
}
function __gcry_cipher_setkey($hd, $key, $keylen) {
$hd = $hd | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $0 = 0, $11 = 0, $15 = 0, $16 = 0, $4 = 0, $5 = 0, $9 = 0;
$0 = $hd + 12 | 0;
$4 = $hd + 496 | 0;
$5 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 32 >> 2] & 63]($4, $key, $keylen) | 0;
if ($5) {
$16 = $hd + 56 | 0;
HEAP8[$16 >> 0] = HEAP8[$16 >> 0] & -2;
return $5 | 0;
}
$9 = HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] | 0;
_memcpy($4 + $9 | 0, $4 | 0, $9 | 0) | 0;
$11 = $hd + 56 | 0;
HEAP8[$11 >> 0] = HEAP8[$11 >> 0] | 1;
$15 = HEAP32[$hd + 48 >> 2] | 0;
if (($15 | 0) < 10) {
switch ($15 | 0) {
case 9:
break;
default:
return $5 | 0;
}
__gcry_cipher_gcm_setkey($hd);
return $5 | 0;
}
if (($15 | 0) < 65537) {
switch ($15 | 0) {
case 10:
break;
default:
return $5 | 0;
}
__gcry_cipher_poly1305_setkey($hd);
return $5 | 0;
} else {
switch ($15 | 0) {
case 65537:
break;
default:
return $5 | 0;
}
__gcry_cipher_cmac_set_subkeys($hd) | 0;
return $5 | 0;
}
return 0;
}
function __gpgrt_lock_destroy($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $11 = 0, $lock = 0, $rc = 0, $tmp = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$0 = sp + 52 | 0;
$lock = sp + 48 | 0;
$rc = sp + 44 | 0;
$tmp = sp;
HEAP32[$0 >> 2] = $lockhd;
HEAP32[$lock >> 2] = _get_lock_object(HEAP32[$0 >> 2] | 0) | 0;
HEAP32[$rc >> 2] = _pthread_mutex_destroy((HEAP32[$lock >> 2] | 0) + 4 | 0) | 0;
if (HEAP32[$rc >> 2] | 0) {
HEAP32[$rc >> 2] = _gpg_err_code_from_errno(HEAP32[$rc >> 2] | 0) | 0;
$11 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $11 | 0;
} else {
dest = $tmp;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$tmp >> 2] = 1;
dest = HEAP32[$0 >> 2] | 0;
src = $tmp;
stop = dest + 44 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
$11 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $11 | 0;
}
return 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, $11 = 0, $15 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
do if (($off & 4095 | 0) == 0 & ((($off | 0) < 0) << 31 >> 31 & -4096 | 0) == 0) {
if ($len >>> 0 > 2147483646) {
HEAP32[(___errno_location() | 0) >> 2] = 12;
$$0 = -1;
break;
}
$11 = ($flags & 16 | 0) != 0;
if ($11) _dummy1(-1);
HEAP32[$vararg_buffer >> 2] = $start;
HEAP32[$vararg_buffer + 4 >> 2] = $len;
HEAP32[$vararg_buffer + 8 >> 2] = $prot;
HEAP32[$vararg_buffer + 12 >> 2] = $flags;
HEAP32[$vararg_buffer + 16 >> 2] = $fd;
HEAP32[$vararg_buffer + 20 >> 2] = $off >> 12;
$15 = ___syscall_ret(___syscall192(192, $vararg_buffer | 0) | 0) | 0;
if ($11) {
_dummy0();
$$0 = $15;
} else $$0 = $15;
} else {
HEAP32[(___errno_location() | 0) >> 2] = 22;
$$0 = -1;
} while (0);
STACKTOP = sp;
return $$0 | 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, $13 = 0, $6 = 0, $7 = 0, $9 = 0, $hd = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$hd = sp;
do if ((__gcry_md_get_algo_dlen($algo) | 0) == ($expectlen | 0)) if (!(__gcry_md_open($hd, $algo, 2) | 0)) {
$6 = (__gcry_md_setkey(HEAP32[$hd >> 2] | 0, $key, $keylen) | 0) == 0;
$7 = HEAP32[$hd >> 2] | 0;
if (!$6) {
__gcry_md_close($7);
$$0 = 36496;
break;
}
__gcry_md_write($7, $data, $datalen);
$9 = __gcry_md_read(HEAP32[$hd >> 2] | 0, $algo) | 0;
if (!$9) {
__gcry_md_close(HEAP32[$hd >> 2] | 0);
$$0 = 36518;
break;
} else {
$13 = (_memcmp($9, $expect, $expectlen) | 0) == 0;
__gcry_md_close(HEAP32[$hd >> 2] | 0);
$$0 = $13 ? 0 : 36481;
break;
}
} else $$0 = 49360; else $$0 = 36538; while (0);
STACKTOP = sp;
return $$0 | 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 $$lcssa = 0, $1 = 0, $11 = 0, $12 = 0, $15 = 0, $2 = 0, $23 = 0, $26 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cy_limb$0 = 0, $j$0 = 0;
$1 = $s1_ptr + ($s1_size << 2) | 0;
$2 = $res_ptr + ($s1_size << 2) | 0;
$3 = $s2_limb & 65535;
$4 = $s2_limb >>> 16;
$cy_limb$0 = 0;
$j$0 = 0 - $s1_size | 0;
while (1) {
$6 = HEAP32[$1 + ($j$0 << 2) >> 2] | 0;
$7 = $6 & 65535;
$8 = $6 >>> 16;
$9 = Math_imul($7, $3) | 0;
$11 = Math_imul($8, $3) | 0;
$12 = Math_imul($8, $4) | 0;
$15 = $11 + (Math_imul($7, $4) | 0) + ($9 >>> 16) | 0;
$23 = ($15 << 16 | $9 & 65535) + $cy_limb$0 | 0;
$26 = ($15 >>> 0 < $11 >>> 0 ? $12 + 65536 | 0 : $12) + ($15 >>> 16) + ($23 >>> 0 < $cy_limb$0 >>> 0 & 1) | 0;
HEAP32[$2 + ($j$0 << 2) >> 2] = $23;
$j$0 = $j$0 + 1 | 0;
if (!$j$0) {
$$lcssa = $26;
break;
} else $cy_limb$0 = $26;
}
return $$lcssa | 0;
}
function _GNUNET_CRYPTO_rsa_verify($hash, $sig, $public_key) {
$hash = $hash | 0;
$sig = $sig | 0;
$public_key = $public_key | 0;
var $$0 = 0, $0 = 0, $11 = 0, $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = _data_to_sexp($hash, 64) | 0;
$3 = _gcry_pk_verify(HEAP32[$sig >> 2] | 0, $0, HEAP32[$public_key >> 2] | 0) | 0;
_gcry_sexp_release($0);
if (!$3) {
$$0 = 1;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[254] | 0) == -1) HEAP32[254] = _GNUNET_get_log_call_status(2, 20654, 20567, 21163, 1002) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
if (!(HEAP32[254] | 0)) {
$$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
$11 = _gcry_strerror($3) | 0;
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 1001;
HEAP32[$vararg_buffer + 8 >> 2] = $11;
_GNUNET_log_from_nocheck(2, 20654, 21188, $vararg_buffer);
$$0 = -1;
STACKTOP = sp;
return $$0 | 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 $8 = 0, $wdrw = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224 | 0;
$wdrw = sp;
_GNUNET_CRYPTO_rsa_public_key_hash($denom_pub, $wdrw + 88 | 0);
_TALER_amount_hton($wdrw + 40 | 0, $total);
_TALER_amount_hton($wdrw + 64 | 0, $fee);
dest = $wdrw + 8 | 0;
src = $reserve_pub;
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));
HEAP32[$wdrw >> 2] = _htonl(216) | 0;
HEAP32[$wdrw + 4 >> 2] = _htonl(1200) | 0;
_GNUNET_CRYPTO_hash($coin_env, $coin_env_size, $wdrw + 152 | 0);
$8 = _GNUNET_xmalloc_(216, 18658, 547) | 0;
_memcpy($8 | 0, $wdrw | 0, 216) | 0;
STACKTOP = sp;
return $8 | 0;
}
function __gcry_malloc_secure($n) {
$n = $n | 0;
var $10 = 0, $15 = 0, $16 = 0, $18 = 0, $6 = 0, $m$0$i = 0, $mem$0 = 0, label = 0;
do if (!(HEAP32[17479] | 0)) label = 5; else {
if (__gcry_enforced_fips_mode() | 0) {
HEAP32[17479] = 0;
label = 5;
break;
}
if (!(HEAP32[17479] | 0)) label = 5; else {
$10 = HEAP32[17483] | 0;
if (!$10) {
$m$0$i = __gcry_private_malloc($n) | 0;
break;
} else {
$m$0$i = FUNCTION_TABLE_ii[$10 & 15]($n) | 0;
break;
}
}
} while (0);
do if ((label | 0) == 5) {
$6 = HEAP32[17484] | 0;
if (!$6) {
$m$0$i = __gcry_private_malloc_secure($n) | 0;
break;
} else {
$m$0$i = FUNCTION_TABLE_ii[$6 & 15]($n) | 0;
break;
}
} while (0);
if ($m$0$i) {
$mem$0 = $m$0$i;
return $mem$0 | 0;
}
$15 = ___errno_location() | 0;
$16 = HEAP32[$15 >> 2] | 0;
if (!$16) {
_gpg_err_set_errno(12);
$18 = HEAP32[$15 >> 2] | 0;
} else $18 = $16;
_gpg_err_code_from_errno($18) | 0;
$mem$0 = 0;
return $mem$0 | 0;
}
function __gcry_xmalloc($n) {
$n = $n | 0;
var $$lcssa = 0, $0 = 0, $10 = 0, $11 = 0, $5 = 0, $6 = 0, $8 = 0, $m$0$i$i = 0, $m$0$i$i$lcssa = 0, label = 0;
while (1) {
$0 = HEAP32[17483] | 0;
if (!$0) $m$0$i$i = __gcry_private_malloc($n) | 0; else $m$0$i$i = FUNCTION_TABLE_ii[$0 & 15]($n) | 0;
if ($m$0$i$i) {
$m$0$i$i$lcssa = $m$0$i$i;
label = 11;
break;
}
$5 = ___errno_location() | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (!$6) {
_gpg_err_set_errno(12);
$8 = HEAP32[$5 >> 2] | 0;
} else $8 = $6;
_gpg_err_code_from_errno($8) | 0;
$10 = (__gcry_fips_mode() | 0) == 0;
$11 = HEAP32[17488] | 0;
if (!($10 & ($11 | 0) != 0)) {
$$lcssa = $5;
label = 10;
break;
}
if (!(FUNCTION_TABLE_iiii[$11 & 63](HEAP32[17489] | 0, $n, 0) | 0)) {
$$lcssa = $5;
label = 10;
break;
}
}
if ((label | 0) == 10) __gcry_fatal_error(_gpg_err_code_from_errno(HEAP32[$$lcssa >> 2] | 0) | 0, 0); else if ((label | 0) == 11) return $m$0$i$i$lcssa | 0;
return 0;
}
function __gcry_mpi_resize($a, $nlimbs) {
$a = $a | 0;
$nlimbs = $nlimbs | 0;
var $0 = 0, $11 = 0, $12 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $6 = 0, $i$03 = 0;
$0 = HEAP32[$a >> 2] | 0;
if ($0 >>> 0 >= $nlimbs >>> 0) {
$3 = HEAP32[$a + 4 >> 2] | 0;
if ($3 >>> 0 >= $0 >>> 0) return;
$6 = HEAP32[$a + 16 >> 2] | 0;
$i$03 = $3;
do {
HEAP32[$6 + ($i$03 << 2) >> 2] = 0;
$i$03 = $i$03 + 1 | 0;
} while ($i$03 >>> 0 < (HEAP32[$a >> 2] | 0) >>> 0);
return;
}
$11 = $a + 16 | 0;
$12 = HEAP32[$11 >> 2] | 0;
do if (!$12) if (!(HEAP32[$a + 12 >> 2] & 1)) {
HEAP32[$11 >> 2] = __gcry_xcalloc($nlimbs, 4) | 0;
break;
} else {
HEAP32[$11 >> 2] = __gcry_xcalloc_secure($nlimbs, 4) | 0;
break;
} else {
$14 = $nlimbs << 2;
$15 = __gcry_xrealloc($12, $14) | 0;
HEAP32[$11 >> 2] = $15;
$16 = HEAP32[$a >> 2] | 0;
if ($16 >>> 0 < $nlimbs >>> 0) _memset($15 + ($16 << 2) | 0, 0, $14 - ($16 << 2) | 0) | 0;
} while (0);
HEAP32[$a >> 2] = $nlimbs;
return;
}
function __gcry_mpi_get_nbits($a) {
$a = $a | 0;
var $$0 = 0, $$lcssa = 0, $11 = 0, $13 = 0, $22 = 0, $29 = 0, $7 = 0, $8 = 0, $n$0 = 0, label = 0, $13$looptemp = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 4) {
$$0 = HEAP32[$a + 8 >> 2] | 0;
return $$0 | 0;
}
$7 = $a + 4 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if (!$8) {
$$0 = 0;
return $$0 | 0;
}
$11 = HEAP32[$a + 16 >> 2] | 0;
$13 = $8;
while (1) {
$13$looptemp = $13;
$13 = $13 + -1 | 0;
if (HEAP32[$11 + ($13 << 2) >> 2] | 0) {
$$lcssa = $13$looptemp;
break;
}
HEAP32[$7 >> 2] = $13;
if (!$13) {
$$0 = 0;
label = 11;
break;
}
}
if ((label | 0) == 11) return $$0 | 0;
$22 = HEAP32[(HEAP32[$a + 16 >> 2] | 0) + ($$lcssa + -1 << 2) >> 2] | 0;
if (!$22) $n$0 = 32; else {
$29 = $22 >>> 0 < 65536 ? ($22 >>> 0 < 256 ? 0 : 8) : $22 >>> 0 < 16777216 ? 16 : 24;
$n$0 = 32 - $29 - (HEAPU8[45217 + ($22 >>> $29) >> 0] | 0) | 0;
}
$$0 = (HEAP32[$7 >> 2] << 5) - $n$0 | 0;
return $$0 | 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, $10 = 0, $14 = 0, $17 = 0, $18 = 0, $3 = 0, $7 = 0, $9 = 0, $pad = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
$pad = sp;
do if (($w | 0) > ($l | 0) & ($fl & 73728 | 0) == 0) {
$3 = $w - $l | 0;
_memset($pad | 0, $c | 0, ($3 >>> 0 > 256 ? 256 : $3) | 0) | 0;
$7 = HEAP32[$f >> 2] | 0;
$9 = ($7 & 32 | 0) == 0;
if ($3 >>> 0 > 255) {
$10 = $w - $l | 0;
$$02 = $3;
$17 = $7;
$18 = $9;
while (1) {
if ($18) {
___fwritex($pad, 256, $f) | 0;
$14 = HEAP32[$f >> 2] | 0;
} else $14 = $17;
$$02 = $$02 + -256 | 0;
$18 = ($14 & 32 | 0) == 0;
if ($$02 >>> 0 <= 255) break; else $17 = $14;
}
if ($18) $$0$lcssa6 = $10 & 255; else break;
} else if ($9) $$0$lcssa6 = $3; else break;
___fwritex($pad, $$0$lcssa6, $f) | 0;
} while (0);
STACKTOP = sp;
return;
}
function __gcry_disable_hw_feature($name) {
$name = $name | 0;
var $$0 = 0, $i$02$lcssa = 0;
if (!(_strcmp(22335, $name) | 0)) $i$02$lcssa = 0; else if (!(_strcmp(22347, $name) | 0)) $i$02$lcssa = 1; else if (!(_strcmp(22359, $name) | 0)) $i$02$lcssa = 2; else if (!(_strcmp(22371, $name) | 0)) $i$02$lcssa = 3; else if (!(_strcmp(22384, $name) | 0)) $i$02$lcssa = 4; else if (!(_strcmp(22394, $name) | 0)) $i$02$lcssa = 5; else if (!(_strcmp(22405, $name) | 0)) $i$02$lcssa = 6; else if (!(_strcmp(22417, $name) | 0)) $i$02$lcssa = 7; else if (!(_strcmp(22430, $name) | 0)) $i$02$lcssa = 8; else if (!(_strcmp(22442, $name) | 0)) $i$02$lcssa = 9; else if (!(_strcmp(22455, $name) | 0)) $i$02$lcssa = 10; else if (!(_strcmp(22465, $name) | 0)) $i$02$lcssa = 11; else if (!(_strcmp(22476, $name) | 0)) $i$02$lcssa = 12; else {
$$0 = 88;
return $$0 | 0;
}
HEAP32[17490] = HEAP32[17490] | HEAP32[1088 + ($i$02$lcssa << 3) >> 2];
$$0 = 0;
return $$0 | 0;
}
function _TALER_amount_hton($res, $d) {
$res = $res | 0;
$d = $d | 0;
var $0 = 0, $11 = 0, $14 = 0, $15 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, src = 0, stop = 0;
$0 = $d;
$6 = _GNUNET_htonll(HEAP32[$0 >> 2] | 0, HEAP32[$0 + 4 >> 2] | 0) | 0;
$7 = tempRet0;
$8 = $res;
$9 = $8;
HEAP8[$9 >> 0] = $6;
HEAP8[$9 + 1 >> 0] = $6 >> 8;
HEAP8[$9 + 2 >> 0] = $6 >> 16;
HEAP8[$9 + 3 >> 0] = $6 >> 24;
$11 = $8 + 4 | 0;
HEAP8[$11 >> 0] = $7;
HEAP8[$11 + 1 >> 0] = $7 >> 8;
HEAP8[$11 + 2 >> 0] = $7 >> 16;
HEAP8[$11 + 3 >> 0] = $7 >> 24;
$14 = _htonl(HEAP32[$d + 8 >> 2] | 0) | 0;
$15 = $res + 8 | 0;
HEAP8[$15 >> 0] = $14;
HEAP8[$15 + 1 >> 0] = $14 >> 8;
HEAP8[$15 + 2 >> 0] = $14 >> 16;
HEAP8[$15 + 3 >> 0] = $14 >> 24;
dest = $res + 12 | 0;
src = $d + 12 | 0;
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));
return;
}
function __gcry_cipher_ccm_set_nonce($c, $nonce, $noncelen) {
$c = $c | 0;
$nonce = $nonce | 0;
$noncelen = $noncelen | 0;
var $$0 = 0, $0 = 0, $10 = 0, $14 = 0, $6 = 0, $7 = 0, $8 = 0, dest = 0, stop = 0;
$0 = 15 - $noncelen | 0;
if (!$nonce) {
$$0 = 45;
return $$0 | 0;
}
if (($0 + -2 | 0) >>> 0 > 6) {
$$0 = 139;
return $$0 | 0;
}
_memset($c + 128 | 0, 0, 368) | 0;
HEAP32[$c + 56 >> 2] = 0;
$6 = $c + 64 | 0;
$7 = $c + 80 | 0;
$8 = $0 + 255 & 255;
dest = $6;
stop = dest + 52 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$7 >> 0] = $8;
_memcpy($7 + 1 | 0, $nonce | 0, $noncelen | 0) | 0;
$10 = $noncelen + 1 | 0;
_memset($7 + $10 | 0, 0, $0 | 0) | 0;
HEAP8[$6 >> 0] = $8;
_memcpy($6 + 1 | 0, $nonce | 0, $noncelen | 0) | 0;
_memset($6 + $10 | 0, 0, $0 | 0) | 0;
$14 = $c + 184 | 0;
HEAP8[$14 >> 0] = HEAP8[$14 >> 0] | 1;
$$0 = 0;
return $$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, $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, $1$1 ^ $a$1, $1$0, $1$1) | 0;
$4$1 = tempRet0;
___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, $rem) | 0;
$10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0, HEAP32[$rem + 4 >> 2] ^ $1$1, $1$0, $1$1) | 0;
$10$1 = tempRet0;
STACKTOP = __stackBase__;
return (tempRet0 = $10$1, $10$0) | 0;
}
function _run_selftests_1315($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
var $0 = 0, $3 = 0, $5 = 0, $ec$0 = 0, $errtxt$0$i = 0, $what$0$i = 0;
if (($algo | 0) != 2) {
$ec$0 = 5;
return $ec$0 | 0;
}
$0 = __gcry_hash_selftest_check_one(2, 0, 42301, 3, 41693, 20) | 0;
if (!$0) {
if (!$extended) {
$ec$0 = 0;
return $ec$0 | 0;
}
$3 = __gcry_hash_selftest_check_one(2, 0, 41967, 56, 41714, 20) | 0;
if (!$3) {
$5 = __gcry_hash_selftest_check_one(2, 1, 0, 0, 41735, 20) | 0;
if (!$5) {
$ec$0 = 0;
return $ec$0 | 0;
} else {
$errtxt$0$i = $5;
$what$0$i = 42590;
}
} else {
$errtxt$0$i = $3;
$what$0$i = 42578;
}
} else {
$errtxt$0$i = $0;
$what$0$i = 42565;
}
if (!$report) {
$ec$0 = 50;
return $ec$0 | 0;
}
FUNCTION_TABLE_viiii[$report & 1](42606, 2, $what$0$i, $errtxt$0$i);
$ec$0 = 50;
return $ec$0 | 0;
}
function _GNUNET_CRYPTO_rsa_blinding_key_encode($bkey, $buffer) {
$bkey = $bkey | 0;
$buffer = $buffer | 0;
var $2 = 0, $n = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$n = sp + 12 | 0;
_gcry_mpi_print(5, 0, 0, $n, HEAP32[$bkey >> 2] | 0) | 0;
$2 = _GNUNET_xmalloc_(HEAP32[$n >> 2] | 0, 20567, 589) | 0;
if (!(_gcry_mpi_print(5, $2, HEAP32[$n >> 2] | 0, sp + 8 | 0, HEAP32[$bkey >> 2] | 0) | 0)) {
HEAP32[$buffer >> 2] = $2;
STACKTOP = sp;
return HEAP32[$n >> 2] | 0;
}
if ((HEAP32[242] | 0) == -1) HEAP32[242] = _GNUNET_get_log_call_status(1, 0, 20567, 20956, 595) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[242] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 595;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function _GNUNET_TIME_absolute_get_duration($whence) {
$whence = $whence | 0;
var $0 = 0, $11 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $24 = 0, $29 = 0, $3 = 0, $30 = 0, $6 = 0, $9 = 0, $tv$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tv$i = sp;
_gettimeofday($tv$i | 0, 0) | 0;
$0 = HEAP32[$tv$i >> 2] | 0;
$3 = ___muldi3($0 | 0, (($0 | 0) < 0) << 31 >> 31 | 0, 1e6, 0) | 0;
$6 = HEAP32[$tv$i + 4 >> 2] | 0;
$9 = _i64Add($3 | 0, tempRet0 | 0, $6 | 0, (($6 | 0) < 0) << 31 >> 31 | 0) | 0;
$11 = 69816;
$17 = _i64Add($9 | 0, tempRet0 | 0, HEAP32[$11 >> 2] | 0, HEAP32[$11 + 4 >> 2] | 0) | 0;
$18 = tempRet0;
$19 = $whence;
$21 = HEAP32[$19 >> 2] | 0;
$24 = HEAP32[$19 + 4 >> 2] | 0;
$29 = $18 >>> 0 < $24 >>> 0 | ($18 | 0) == ($24 | 0) & $17 >>> 0 < $21 >>> 0;
$30 = _i64Subtract($17 | 0, $18 | 0, $21 | 0, $24 | 0) | 0;
tempRet0 = $29 ? 0 : tempRet0;
STACKTOP = sp;
return ($29 ? 0 : $30) | 0;
}
function __gcry_pk_genkey($r_key, $s_parms) {
$r_key = $r_key | 0;
$s_parms = $s_parms | 0;
var $0 = 0, $2 = 0, $4 = 0, $6 = 0, $9 = 0, $list$0 = 0, $rc$0 = 0;
HEAP32[$r_key >> 2] = 0;
$0 = __gcry_sexp_find_token($s_parms, 37329, 0) | 0;
if (!$0) {
$list$0 = 0;
$rc$0 = 65;
} else {
$2 = __gcry_sexp_cadr($0) | 0;
__gcry_sexp_release($0);
if (!$2) {
$list$0 = 0;
$rc$0 = 68;
} else {
$4 = __gcry_sexp_nth_string($2, 0) | 0;
if (!$4) {
$list$0 = $2;
$rc$0 = 65;
} else {
$6 = _spec_from_name($4) | 0;
__gcry_free($4);
if (!$6) {
$list$0 = $2;
$rc$0 = 4;
} else {
$9 = HEAP32[$6 + 40 >> 2] | 0;
if (!$9) {
$list$0 = $2;
$rc$0 = 69;
} else {
$list$0 = $2;
$rc$0 = FUNCTION_TABLE_iii[$9 & 7]($2, $r_key) | 0;
}
}
}
}
}
__gcry_sexp_release($list$0);
__gcry_free(0);
__gcry_sexp_release(0);
return $rc$0 | 0;
}
function __gcry_rmd160_hash_buffer($outbuf, $buffer, $length) {
$outbuf = $outbuf | 0;
$buffer = $buffer | 0;
$length = $length | 0;
var $5 = 0, $hd = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$hd = sp;
HEAP32[$hd + 160 >> 2] = 1732584193;
HEAP32[$hd + 164 >> 2] = -271733879;
HEAP32[$hd + 168 >> 2] = -1732584194;
HEAP32[$hd + 172 >> 2] = 271733878;
HEAP32[$hd + 176 >> 2] = -1009589776;
$5 = $hd + 128 | 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$hd + 148 >> 2] = 64;
HEAP32[$hd + 152 >> 2] = 31;
__gcry_md_block_write($hd, $buffer, $length);
_rmd160_final($hd);
dest = $outbuf;
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_buffer($outbuf, $buffer, $length) {
$outbuf = $outbuf | 0;
$buffer = $buffer | 0;
$length = $length | 0;
var $5 = 0, $hd = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
$hd = sp;
HEAP32[$hd + 160 >> 2] = 1732584193;
HEAP32[$hd + 164 >> 2] = -271733879;
HEAP32[$hd + 168 >> 2] = -1732584194;
HEAP32[$hd + 172 >> 2] = 271733878;
HEAP32[$hd + 176 >> 2] = -1009589776;
$5 = $hd + 128 | 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$hd + 148 >> 2] = 64;
HEAP32[$hd + 152 >> 2] = 32;
__gcry_md_block_write($hd, $buffer, $length);
_sha1_final($hd);
dest = $outbuf;
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_mpi_tdiv_q_2exp($w, $u, $count) {
$w = $w | 0;
$u = $u | 0;
$count = $count | 0;
var $1 = 0, $11 = 0, $12 = 0, $15 = 0, $2 = 0, $3 = 0, $9 = 0, $_i$01 = 0, $wsize$0 = 0;
$1 = HEAP32[$u + 4 >> 2] | 0;
$2 = $count >>> 5;
$3 = $1 - $2 | 0;
if (($1 | 0) <= ($2 | 0)) {
HEAP32[$w + 4 >> 2] = 0;
return;
}
if ((HEAP32[$w >> 2] | 0) < ($3 | 0)) __gcry_mpi_resize($w, $3);
$9 = HEAP32[$w + 16 >> 2] | 0;
$11 = HEAP32[$u + 16 >> 2] | 0;
$12 = $count & 31;
if (!$12) if (($3 | 0) > 0) {
$15 = $11 + ($2 << 2) | 0;
$_i$01 = 0;
do {
HEAP32[$9 + ($_i$01 << 2) >> 2] = HEAP32[$15 + ($_i$01 << 2) >> 2];
$_i$01 = $_i$01 + 1 | 0;
} while (($_i$01 | 0) != ($3 | 0));
$wsize$0 = $3;
} else $wsize$0 = $3; else {
__gcry_mpih_rshift($9, $11 + ($2 << 2) | 0, $3, $12) | 0;
$wsize$0 = $3 - ((HEAP32[$9 + ($3 + -1 << 2) >> 2] | 0) == 0 & 1) | 0;
}
HEAP32[$w + 4 >> 2] = $wsize$0;
return;
}
function __gcry_mpi_randomize($w, $nbits, $level) {
$w = $w | 0;
$nbits = $nbits | 0;
$level = $level | 0;
var $1 = 0, $14 = 0, $2 = 0, $p$0 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = ($nbits + 7 | 0) >>> 3;
$2 = ($w | 0) != 0;
if ($2) if (HEAP32[$w + 12 >> 2] & 16) {
__gcry_log_info(45711, $vararg_buffer);
STACKTOP = sp;
return;
}
do if (!$level) {
if ($2) if (!(HEAP32[$w + 12 >> 2] & 1)) label = 8; else $14 = __gcry_xmalloc_secure($1) | 0; else label = 8;
if ((label | 0) == 8) $14 = __gcry_xmalloc($1) | 0;
__gcry_create_nonce($14, $1);
$p$0 = $14;
} else {
if ($2) if (HEAP32[$w + 12 >> 2] & 1) {
$p$0 = __gcry_random_bytes_secure($1, $level) | 0;
break;
}
$p$0 = __gcry_random_bytes($1, $level) | 0;
} while (0);
__gcry_mpi_set_buffer($w, $p$0, $1, 0);
__gcry_free($p$0);
STACKTOP = sp;
return;
}
function _fstat($fd, $st) {
$fd = $fd | 0;
$st = $st | 0;
var $$0 = 0, $0 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
$vararg_buffer6 = sp + 40 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = $st;
$0 = ___syscall197(197, $vararg_buffer | 0) | 0;
if (($0 | 0) == -9) {
HEAP32[$vararg_buffer2 >> 2] = $fd;
HEAP32[$vararg_buffer2 + 4 >> 2] = 1;
if ((___syscall221(221, $vararg_buffer2 | 0) | 0) < 0) label = 3; else {
___procfdname($vararg_buffer2, $fd);
HEAP32[$vararg_buffer6 >> 2] = $vararg_buffer2;
HEAP32[$vararg_buffer6 + 4 >> 2] = $st;
$$0 = ___syscall_ret(___syscall195(195, $vararg_buffer6 | 0) | 0) | 0;
}
} else label = 3;
if ((label | 0) == 3) $$0 = ___syscall_ret($0) | 0;
STACKTOP = sp;
return $$0 | 0;
}
function _TALER_WR_multiply_amounts($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $$0 = 0.0, $15 = 0.0, $16 = 0, $23 = 0.0, $24 = 0.0, $29 = 0, $8 = 0;
_TALER_amount_normalize($a) | 0;
_TALER_amount_normalize($b) | 0;
$8 = $a;
$15 = +((HEAP32[$a + 8 >> 2] | 0) >>> 0) / 1.0e6 + (+((HEAP32[$8 >> 2] | 0) >>> 0) + 4294967296.0 * +((HEAP32[$8 + 4 >> 2] | 0) >>> 0));
$16 = $b;
$23 = +((HEAP32[$b + 8 >> 2] | 0) >>> 0) / 1.0e6 + (+((HEAP32[$16 >> 2] | 0) >>> 0) + 4294967296.0 * +((HEAP32[$16 + 4 >> 2] | 0) >>> 0));
$24 = $15 * $23;
$29 = $24 < +($15 > $23 & 1);
do if ($15 < 1.0 | $23 < 1.0) if ($29) {
if ($15 != 0.0) break; else $$0 = -1.0;
return +$$0;
} else {
if ($23 != 0.0) break; else $$0 = -1.0;
return +$$0;
} else if ($29) {
if ($15 != 0.0) $$0 = -1.0; else break;
return +$$0;
} else {
if ($23 != 0.0) $$0 = -1.0; else break;
return +$$0;
} while (0);
$$0 = $24;
return +$$0;
}
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 $2 = 0, $5 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
if ((HEAP32[17504] | 0) == 1) {
STACKTOP = sp;
return;
}
$2 = ($is_fatal | 0) != 0;
_fips_new_state($2 ? 5 : 4);
$5 = ($srcfunc | 0) != 0;
HEAP32[$vararg_buffer >> 2] = $2 ? 23408 : 75759;
HEAP32[$vararg_buffer + 4 >> 2] = $srcfile;
HEAP32[$vararg_buffer + 8 >> 2] = $srcline;
HEAP32[$vararg_buffer + 12 >> 2] = $5 ? 23286 : 75759;
HEAP32[$vararg_buffer + 16 >> 2] = $5 ? $srcfunc : 75759;
HEAP32[$vararg_buffer + 20 >> 2] = ($description | 0) != 0 ? $description : 23213;
__gcry_log_info(23238, $vararg_buffer);
STACKTOP = sp;
return;
}
function _GNUNET_log_skip($n, $check_reset) {
$n = $n | 0;
$check_reset = $check_reset | 0;
var $$pre = 0, $1 = 0, $4 = 0, $6 = 0, $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = HEAP32[17464] | 0;
if ($n) {
HEAP32[17464] = $1 + $n;
STACKTOP = sp;
return;
}
HEAP32[17464] = 0;
if (($check_reset | 0) == 0 | ($1 | 0) == 0) {
STACKTOP = sp;
return;
}
$4 = HEAP32[186] | 0;
if (($4 | 0) == -1) {
$6 = _GNUNET_get_log_call_status(1, 0, 18977, 19e3, 867) | 0;
HEAP32[186] = $6;
$$pre = HEAP32[17464] | 0;
if (($$pre | 0) > 0) {
HEAP32[17464] = $$pre + -1;
STACKTOP = sp;
return;
} else $9 = $6;
} else $9 = $4;
if (!$9) {
STACKTOP = sp;
return;
}
HEAP32[$vararg_buffer >> 2] = 18977;
HEAP32[$vararg_buffer + 4 >> 2] = 867;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
STACKTOP = sp;
return;
}
function _strncmp($_l, $_r, $n) {
$_l = $_l | 0;
$_r = $_r | 0;
$n = $n | 0;
var $$03 = 0, $$08$in = 0, $1 = 0, $13 = 0, $3 = 0, $6 = 0, $9 = 0, $l$06 = 0, $r$0$lcssa = 0, $r$07 = 0;
if (!$n) $$03 = 0; else {
$1 = HEAP8[$_l >> 0] | 0;
L3 : do if (!($1 << 24 >> 24)) {
$13 = 0;
$r$0$lcssa = $_r;
} else {
$$08$in = $n;
$6 = $1;
$l$06 = $_l;
$r$07 = $_r;
while (1) {
$$08$in = $$08$in + -1 | 0;
$3 = HEAP8[$r$07 >> 0] | 0;
if (!($6 << 24 >> 24 == $3 << 24 >> 24 & (($$08$in | 0) != 0 & $3 << 24 >> 24 != 0))) {
$13 = $6;
$r$0$lcssa = $r$07;
break L3;
}
$l$06 = $l$06 + 1 | 0;
$9 = $r$07 + 1 | 0;
$6 = HEAP8[$l$06 >> 0] | 0;
if (!($6 << 24 >> 24)) {
$13 = 0;
$r$0$lcssa = $9;
break;
} else $r$07 = $9;
}
} while (0);
$$03 = ($13 & 255) - (HEAPU8[$r$0$lcssa >> 0] | 0) | 0;
}
return $$03 | 0;
}
function __gcry_mpi_trailing_zeros($a) {
$a = $a | 0;
var $$lcssa = 0, $1 = 0, $15 = 0, $23 = 0, $4 = 0, $6 = 0, $9 = 0, $count$02 = 0, $count$02$lcssa = 0, $count$1 = 0, $n$03 = 0, label = 0;
$1 = HEAP32[$a + 4 >> 2] | 0;
if (!$1) {
$count$1 = 0;
return $count$1 | 0;
}
$4 = HEAP32[$a + 16 >> 2] | 0;
$count$02 = 0;
$n$03 = 0;
while (1) {
$6 = HEAP32[$4 + ($n$03 << 2) >> 2] | 0;
if ($6) {
$$lcssa = $6;
$count$02$lcssa = $count$02;
break;
}
$23 = $count$02 + 32 | 0;
$n$03 = $n$03 + 1 | 0;
if ($n$03 >>> 0 >= $1 >>> 0) {
$count$1 = $23;
label = 6;
break;
} else $count$02 = $23;
}
if ((label | 0) == 6) return $count$1 | 0;
$9 = $$lcssa & 0 - $$lcssa;
$15 = $9 >>> 0 < 65536 ? ($9 >>> 0 < 256 ? 0 : 8) : $9 >>> 0 < 16777216 ? 16 : 24;
$count$1 = $count$02$lcssa + -1 + $15 + (HEAPU8[45217 + ($9 >>> $15) >> 0] | 0) | 0;
return $count$1 | 0;
}
function __gcry_rngfips_run_external_test($context, $buffer, $buflen) {
$context = $context | 0;
$buffer = $buffer | 0;
$buflen = $buflen | 0;
var $$0 = 0, $1 = 0, $4 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (($context | 0) == 0 | ($buffer | 0) == 0 | ($buflen | 0) != 16) {
$$0 = 45;
STACKTOP = sp;
return $$0 | 0;
}
$1 = _gpgrt_lock_lock(12568) | 0;
if ($1) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($1) | 0;
__gcry_log_fatal(50662, $vararg_buffer);
}
HEAP32[17569] = 1;
_get_random($buffer, 16, $context);
HEAP32[17569] = 0;
$4 = _gpgrt_lock_unlock(12568) | 0;
if (!$4) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($4) | 0;
__gcry_log_fatal(50874, $vararg_buffer1);
}
return 0;
}
function _wcrtomb($s, $wc, $st) {
$s = $s | 0;
$wc = $wc | 0;
$st = $st | 0;
var $$0 = 0;
do if (!$s) $$0 = 1; else {
if ($wc >>> 0 < 128) {
HEAP8[$s >> 0] = $wc;
$$0 = 1;
break;
}
if ($wc >>> 0 < 2048) {
HEAP8[$s >> 0] = $wc >>> 6 | 192;
HEAP8[$s + 1 >> 0] = $wc & 63 | 128;
$$0 = 2;
break;
}
if ($wc >>> 0 < 55296 | ($wc & -8192 | 0) == 57344) {
HEAP8[$s >> 0] = $wc >>> 12 | 224;
HEAP8[$s + 1 >> 0] = $wc >>> 6 & 63 | 128;
HEAP8[$s + 2 >> 0] = $wc & 63 | 128;
$$0 = 3;
break;
}
if (($wc + -65536 | 0) >>> 0 < 1048576) {
HEAP8[$s >> 0] = $wc >>> 18 | 240;
HEAP8[$s + 1 >> 0] = $wc >>> 12 & 63 | 128;
HEAP8[$s + 2 >> 0] = $wc >>> 6 & 63 | 128;
HEAP8[$s + 3 >> 0] = $wc & 63 | 128;
$$0 = 4;
break;
} else {
HEAP32[(___errno_location() | 0) >> 2] = 84;
$$0 = -1;
break;
}
} while (0);
return $$0 | 0;
}
function __gcry_mpi_set_cond($w, $u, $set) {
$w = $w | 0;
$u = $u | 0;
$set = $set | 0;
var $0 = 0, $1 = 0, $13 = 0, $14 = 0, $20 = 0, $21 = 0, $6 = 0, $8 = 0, $i$01$us = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = HEAP32[$u >> 2] | 0;
$1 = ($set | 0) != 0;
if ((HEAP32[$w >> 2] | 0) != ($0 | 0)) __gcry_log_bug(45817, sp);
if (($0 | 0) > 0) {
$6 = HEAP32[$w + 16 >> 2] | 0;
$8 = HEAP32[$u + 16 >> 2] | 0;
if ($1) {
$i$01$us = 0;
do {
HEAP32[$6 + ($i$01$us << 2) >> 2] = HEAP32[$8 + ($i$01$us << 2) >> 2];
$i$01$us = $i$01$us + 1 | 0;
} while (($i$01$us | 0) != ($0 | 0));
}
}
$13 = $w + 4 | 0;
$14 = HEAP32[$13 >> 2] | 0;
HEAP32[$13 >> 2] = ($1 ? HEAP32[$u + 4 >> 2] ^ $14 : 0) ^ $14;
$20 = $w + 8 | 0;
$21 = HEAP32[$20 >> 2] | 0;
HEAP32[$20 >> 2] = ($1 ? HEAP32[$u + 8 >> 2] ^ $21 : 0) ^ $21;
STACKTOP = sp;
return $w | 0;
}
function __gcry_dsa_normalize_hash($input, $out, $qbits) {
$input = $input | 0;
$out = $out | 0;
$qbits = $qbits | 0;
var $$0 = 0, $11 = 0, $13 = 0, $5 = 0, $9 = 0, $abits = 0, $hash = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$abits = sp + 4 | 0;
$hash = sp;
if (!$input) label = 6; else if (!(HEAP32[$input + 12 >> 2] & 4)) label = 6; else {
$5 = __gcry_mpi_get_opaque($input, $abits) | 0;
$9 = __gcry_mpi_scan($hash, 5, $5, ((HEAP32[$abits >> 2] | 0) + 7 | 0) >>> 3, 0) | 0;
if ($9) {
$$0 = $9;
STACKTOP = sp;
return $$0 | 0;
}
$11 = HEAP32[$abits >> 2] | 0;
if ($11 >>> 0 > $qbits >>> 0) {
$13 = HEAP32[$hash >> 2] | 0;
__gcry_mpi_rshift($13, $13, $11 - $qbits | 0);
}
}
if ((label | 0) == 6) HEAP32[$hash >> 2] = $input;
HEAP32[$out >> 2] = HEAP32[$hash >> 2];
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function ___procfdname($buf, $fd) {
$buf = $buf | 0;
$fd = $fd | 0;
var $$01 = 0, $$lcssa = 0, $3 = 0, $i$13 = 0, $i$22 = 0, $j$04 = 0, dest = 0, src = 0, stop = 0;
dest = $buf;
src = 63105;
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));
if (!$fd) {
HEAP8[$buf + 14 >> 0] = 48;
HEAP8[$buf + 15 >> 0] = 0;
} else {
$i$13 = 14;
$j$04 = $fd;
while (1) {
$3 = $i$13 + 1 | 0;
if ($j$04 >>> 0 < 10) {
$$lcssa = $3;
break;
} else {
$i$13 = $3;
$j$04 = ($j$04 >>> 0) / 10 | 0;
}
}
HEAP8[$buf + $$lcssa >> 0] = 0;
$$01 = $fd;
$i$22 = $$lcssa;
while (1) {
$i$22 = $i$22 + -1 | 0;
HEAP8[$buf + $i$22 >> 0] = ($$01 >>> 0) % 10 | 0 | 48;
if ($$01 >>> 0 < 10) break; else $$01 = ($$01 >>> 0) / 10 | 0;
}
}
return;
}
function _GNUNET_CRYPTO_rsa_private_key_encode($key, $buffer) {
$key = $key | 0;
$buffer = $buffer | 0;
var $1 = 0, $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = _gcry_sexp_sprint(HEAP32[$key >> 2] | 0, 0, 0, 0) | 0;
$2 = _GNUNET_xmalloc_($1, 20567, 201) | 0;
if (($1 + -1 | 0) == (_gcry_sexp_sprint(HEAP32[$key >> 2] | 0, 0, $2, $1) | 0)) {
HEAP32[$buffer >> 2] = $2;
STACKTOP = sp;
return $1 | 0;
}
if ((HEAP32[234] | 0) == -1) HEAP32[234] = _GNUNET_get_log_call_status(1, 0, 20567, 20617, 206) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[234] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 206;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function _fopen($filename, $mode) {
$filename = $filename | 0;
$mode = $mode | 0;
var $$0 = 0, $5 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
if (!(_memchr(62835, HEAP8[$mode >> 0] | 0, 4) | 0)) {
HEAP32[(___errno_location() | 0) >> 2] = 22;
$$0 = 0;
} else {
$5 = ___fmodeflags($mode) | 0 | 32768;
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $5;
HEAP32[$vararg_buffer + 8 >> 2] = 438;
$7 = ___syscall_ret(___syscall5(5, $vararg_buffer | 0) | 0) | 0;
if (($7 | 0) < 0) $$0 = 0; else {
$9 = ___fdopen($7, $mode) | 0;
if (!$9) {
HEAP32[$vararg_buffer3 >> 2] = $7;
___syscall6(6, $vararg_buffer3 | 0) | 0;
$$0 = 0;
} else $$0 = $9;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _GNUNET_CRYPTO_rsa_public_key_encode($key, $buffer) {
$key = $key | 0;
$buffer = $buffer | 0;
var $1 = 0, $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = _gcry_sexp_sprint(HEAP32[$key >> 2] | 0, 3, 0, 0) | 0;
$2 = _GNUNET_xmalloc_($1, 20567, 317) | 0;
if (($1 + -1 | 0) == (_gcry_sexp_sprint(HEAP32[$key >> 2] | 0, 3, $2, $1) | 0)) {
HEAP32[$buffer >> 2] = $2;
STACKTOP = sp;
return $1 | 0;
}
if ((HEAP32[238] | 0) == -1) HEAP32[238] = _GNUNET_get_log_call_status(1, 0, 20567, 20849, 322) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[238] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 322;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function _GNUNET_CRYPTO_rsa_signature_encode($sig, $buffer) {
$sig = $sig | 0;
$buffer = $buffer | 0;
var $1 = 0, $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$1 = _gcry_sexp_sprint(HEAP32[$sig >> 2] | 0, 3, 0, 0) | 0;
$2 = _GNUNET_xmalloc_($1, 20567, 825) | 0;
if (($1 + -1 | 0) == (_gcry_sexp_sprint(HEAP32[$sig >> 2] | 0, 3, $2, $1) | 0)) {
HEAP32[$buffer >> 2] = $2;
STACKTOP = sp;
return $1 | 0;
}
if ((HEAP32[241] | 0) == -1) HEAP32[241] = _GNUNET_get_log_call_status(1, 0, 20567, 20921, 830) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[241] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 830;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function _strerror($e) {
$e = $e | 0;
var $$lcssa = 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;
$i$03 = 0;
while (1) {
if ((HEAPU8[60943 + $i$03 >> 0] | 0) == ($e | 0)) {
$i$03$lcssa = $i$03;
label = 2;
break;
}
$i$03 = $i$03 + 1 | 0;
if (($i$03 | 0) == 87) {
$i$12 = 87;
$s$01 = 61031;
label = 5;
break;
}
}
if ((label | 0) == 2) if (!$i$03$lcssa) $s$0$lcssa = 61031; else {
$i$12 = $i$03$lcssa;
$s$01 = 61031;
label = 5;
}
if ((label | 0) == 5) while (1) {
label = 0;
$s$1 = $s$01;
while (1) {
$9 = $s$1 + 1 | 0;
if (!(HEAP8[$s$1 >> 0] | 0)) {
$$lcssa = $9;
break;
} else $s$1 = $9;
}
$i$12 = $i$12 + -1 | 0;
if (!$i$12) {
$s$0$lcssa = $$lcssa;
break;
} else {
$s$01 = $$lcssa;
label = 5;
}
}
return $s$0$lcssa | 0;
}
function _ecc_get_nbits($parms) {
$parms = $parms | 0;
var $$0 = 0, $0 = 0, $10 = 0, $2 = 0, $4 = 0, $8 = 0, $nbits = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$nbits = sp;
HEAP32[$nbits >> 2] = 0;
$0 = __gcry_sexp_find_token($parms, 46610, 1) | 0;
if (!$0) {
$2 = __gcry_sexp_find_token($parms, 46586, 5) | 0;
if (!$2) $$0 = 0; else {
$4 = __gcry_sexp_nth_string($2, 1) | 0;
__gcry_sexp_release($2);
if (!$4) $$0 = 0; else {
if (__gcry_ecc_fill_in_curve(0, $4, 0, $nbits) | 0) HEAP32[$nbits >> 2] = 0;
__gcry_free($4);
$$0 = HEAP32[$nbits >> 2] | 0;
}
}
} else {
$8 = __gcry_sexp_nth_mpi($0, 1, 5) | 0;
__gcry_sexp_release($0);
if (!$8) $$0 = 0; else {
$10 = __gcry_mpi_get_nbits($8) | 0;
HEAP32[$nbits >> 2] = $10;
__gcry_mpi_release($8);
$$0 = $10;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function ___overflow($f, $_c) {
$f = $f | 0;
$_c = $_c | 0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $6 = 0, $7 = 0, $9 = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$c = sp;
$0 = $_c & 255;
HEAP8[$c >> 0] = $0;
$1 = $f + 16 | 0;
$2 = HEAP32[$1 >> 2] | 0;
if (!$2) if (!(___towrite($f) | 0)) {
$9 = HEAP32[$1 >> 2] | 0;
label = 4;
} else $$0 = -1; else {
$9 = $2;
label = 4;
}
do if ((label | 0) == 4) {
$6 = $f + 20 | 0;
$7 = HEAP32[$6 >> 2] | 0;
if ($7 >>> 0 < $9 >>> 0) {
$10 = $_c & 255;
if (($10 | 0) != (HEAP8[$f + 75 >> 0] | 0)) {
HEAP32[$6 >> 2] = $7 + 1;
HEAP8[$7 >> 0] = $0;
$$0 = $10;
break;
}
}
if ((FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _do_setxid($p) {
$p = $p | 0;
var $0 = 0, $10 = 0, $6 = 0, $inf = 0, $old = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$inf = sp + 16 | 0;
$old = sp;
$0 = $p + 20 | 0;
do if (!(HEAP32[$0 >> 2] | 0)) {
if (HEAP32[$p + 16 >> 2] | 0) {
$6 = HEAP32[$p >> 2] | 0;
if (($6 | 0) > -1) if (($6 | 0) != (_getuid() | 0)) {
HEAP32[$inf >> 2] = HEAP32[176];
HEAP32[$inf + 4 >> 2] = HEAP32[177];
HEAP32[$inf + 8 >> 2] = HEAP32[178];
HEAP32[$inf + 12 >> 2] = HEAP32[179];
_getrlimit(6, $old) | 0;
$10 = ___setrlimit(6, $inf) | 0;
HEAP32[$0 >> 2] = 0 - $10;
if (!$10) label = 7; else if (!(HEAP32[17595] | 0)) 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 _entropy_collect_cb($buffer, $length, $origin) {
$buffer = $buffer | 0;
$length = $length | 0;
$origin = $origin | 0;
var $$in = 0, $10 = 0, $12 = 0, $2 = 0, $5 = 0, $7 = 0, $p$01 = 0, label = 0, $7$looptemp = 0;
if (!(HEAP32[17569] | 0)) __gcry_assert_failed(51407, 50726, 531, 51669);
$2 = HEAP32[17578] | 0;
if (!$2) __gcry_assert_failed(51688, 50726, 532, 51669);
if (!$length) return;
$5 = HEAP32[17579] | 0;
$$in = $length;
$7 = HEAP32[17580] | 0;
$p$01 = $buffer;
while (1) {
$$in = $$in + -1 | 0;
if ($7 >>> 0 >= $5 >>> 0) {
label = 9;
break;
}
$10 = HEAP8[$p$01 >> 0] | 0;
$7$looptemp = $7;
$7 = $7 + 1 | 0;
HEAP32[17580] = $7;
$12 = $2 + $7$looptemp | 0;
HEAP8[$12 >> 0] = HEAP8[$12 >> 0] ^ $10;
if (!$$in) {
label = 9;
break;
} else $p$01 = $p$01 + 1 | 0;
}
if ((label | 0) == 9) return;
}
function _frexp($x, $e) {
$x = +$x;
$e = $e | 0;
var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, $7 = 0.0, $storemerge = 0;
HEAPF64[tempDoublePtr >> 3] = $x;
$0 = HEAP32[tempDoublePtr >> 2] | 0;
$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0;
$2 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0;
$4 = $2 & 2047;
switch ($4 | 0) {
case 0:
{
if ($x != 0.0) {
$7 = +_frexp($x * 18446744073709551616.0, $e);
$$01 = $7;
$storemerge = (HEAP32[$e >> 2] | 0) + -64 | 0;
} else {
$$01 = $x;
$storemerge = 0;
}
HEAP32[$e >> 2] = $storemerge;
$$0 = $$01;
break;
}
case 2047:
{
$$0 = $x;
break;
}
default:
{
HEAP32[$e >> 2] = $4 + -1022;
HEAP32[tempDoublePtr >> 2] = $0;
HEAP32[tempDoublePtr + 4 >> 2] = $1 & -2146435073 | 1071644672;
$$0 = +HEAPF64[tempDoublePtr >> 3];
}
}
return +$$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, $5 = 0, $7 = 0, $i$01 = 0;
L1 : do if (($num_tags | 0) > 0) {
$i$01 = 0;
while (1) {
$5 = HEAP32[$t1 + ($i$01 << 2) >> 2] | 0;
$7 = HEAP32[$t2 + ($i$01 << 2) >> 2] | 0;
if (!(HEAP32[$tag_directions + ($i$01 << 2) >> 2] | 0)) {
if (($5 | 0) < ($7 | 0)) {
$$0 = 1;
break L1;
}
if (($5 | 0) > ($7 | 0)) {
$$0 = 0;
break L1;
}
} else {
if (($5 | 0) > ($7 | 0)) {
$$0 = 1;
break L1;
}
if (($5 | 0) < ($7 | 0)) {
$$0 = 0;
break L1;
}
}
$i$01 = $i$01 + 1 | 0;
if (($i$01 | 0) >= ($num_tags | 0)) {
$$0 = 0;
break;
}
}
} else $$0 = 0; while (0);
return $$0 | 0;
}
function __gcry_mpih_lshift($wp, $up, $usize, $cnt) {
$wp = $wp | 0;
$up = $up | 0;
$usize = $usize | 0;
$cnt = $cnt | 0;
var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $4 = 0, $5 = 0, $6 = 0, $9 = 0, $high_limb$0$lcssa = 0, $high_limb$01 = 0;
$0 = $wp + 4 | 0;
$1 = 32 - $cnt | 0;
$4 = HEAP32[$up + ($usize + -1 << 2) >> 2] | 0;
$5 = $4 >>> $1;
$6 = $usize + -2 | 0;
if (($usize | 0) > 1) {
$9 = $6;
$high_limb$01 = $4;
while (1) {
$10 = HEAP32[$up + ($9 << 2) >> 2] | 0;
HEAP32[$0 + ($9 << 2) >> 2] = $10 >>> $1 | $high_limb$01 << $cnt;
if (($9 | 0) > 0) {
$9 = $9 + -1 | 0;
$high_limb$01 = $10;
} else {
$$lcssa = -1;
$high_limb$0$lcssa = $10;
break;
}
}
} else {
$$lcssa = $6;
$high_limb$0$lcssa = $4;
}
HEAP32[$0 + ($$lcssa << 2) >> 2] = $high_limb$0$lcssa << $cnt;
return $5 | 0;
}
function _GNUNET_xstrdup_($str, $filename, $linenumber) {
$str = $str | 0;
$filename = $filename | 0;
$linenumber = $linenumber | 0;
var $8 = 0, $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if ($str) {
$8 = (_strlen($str) | 0) + 1 | 0;
$9 = _GNUNET_xmalloc_($8, $filename, $linenumber) | 0;
_memcpy($9 | 0, $str | 0, $8 | 0) | 0;
STACKTOP = sp;
return $9 | 0;
}
if ((HEAP32[184] | 0) == -1) HEAP32[184] = _GNUNET_get_log_call_status(1, 0, 18858, 18915, 278) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[184] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $linenumber;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function __gcry_rngfips_randomize($buffer, $length, $level) {
$buffer = $buffer | 0;
$length = $length | 0;
$level = $level | 0;
var $0 = 0, $6 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
__gcry_rngfips_initialize(1);
$0 = _gpgrt_lock_lock(12568) | 0;
if ($0) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($0) | 0;
__gcry_log_fatal(50662, $vararg_buffer);
}
HEAP32[17569] = 1;
if (($level | 0) == 2) _get_random($buffer, $length, HEAP32[17573] | 0); else _get_random($buffer, $length, HEAP32[17572] | 0);
HEAP32[17569] = 0;
$6 = _gpgrt_lock_unlock(12568) | 0;
if (!$6) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($6) | 0;
__gcry_log_fatal(50874, $vararg_buffer1);
}
}
function __gcry_mpi_swap($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $tmp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$tmp = sp;
HEAP32[$tmp >> 2] = HEAP32[$a >> 2];
HEAP32[$tmp + 4 >> 2] = HEAP32[$a + 4 >> 2];
HEAP32[$tmp + 8 >> 2] = HEAP32[$a + 8 >> 2];
HEAP32[$tmp + 12 >> 2] = HEAP32[$a + 12 >> 2];
HEAP32[$tmp + 16 >> 2] = HEAP32[$a + 16 >> 2];
HEAP32[$a >> 2] = HEAP32[$b >> 2];
HEAP32[$a + 4 >> 2] = HEAP32[$b + 4 >> 2];
HEAP32[$a + 8 >> 2] = HEAP32[$b + 8 >> 2];
HEAP32[$a + 12 >> 2] = HEAP32[$b + 12 >> 2];
HEAP32[$a + 16 >> 2] = HEAP32[$b + 16 >> 2];
HEAP32[$b >> 2] = HEAP32[$tmp >> 2];
HEAP32[$b + 4 >> 2] = HEAP32[$tmp + 4 >> 2];
HEAP32[$b + 8 >> 2] = HEAP32[$tmp + 8 >> 2];
HEAP32[$b + 12 >> 2] = HEAP32[$tmp + 12 >> 2];
HEAP32[$b + 16 >> 2] = HEAP32[$tmp + 16 >> 2];
STACKTOP = sp;
return;
}
function _TALER_WRALL_get_amount($0, $1, $fraction, $cur) {
$0 = $0 | 0;
$1 = $1 | 0;
$fraction = $fraction | 0;
$cur = $cur | 0;
var $$0 = 0, $4 = 0, $9 = 0, $amount = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$amount = sp;
if ((_TALER_amount_get_zero($cur, $amount) | 0) != 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$4 = $amount;
HEAP32[$4 >> 2] = $0;
HEAP32[$4 + 4 >> 2] = $1;
HEAP32[$amount + 8 >> 2] = $fraction;
$9 = _GNUNET_xmalloc_(24, 18658, 1310) | 0;
HEAP32[$9 >> 2] = HEAP32[$amount >> 2];
HEAP32[$9 + 4 >> 2] = HEAP32[$amount + 4 >> 2];
HEAP32[$9 + 8 >> 2] = HEAP32[$amount + 8 >> 2];
HEAP32[$9 + 12 >> 2] = HEAP32[$amount + 12 >> 2];
HEAP32[$9 + 16 >> 2] = HEAP32[$amount + 16 >> 2];
HEAP32[$9 + 20 >> 2] = HEAP32[$amount + 20 >> 2];
$$0 = $9;
STACKTOP = sp;
return $$0 | 0;
}
function _iswctype($wc, $type) {
$wc = $wc | 0;
$type = $type | 0;
var $$0 = 0;
do switch ($type | 0) {
case 1:
{
$$0 = _iswalnum($wc) | 0;
break;
}
case 2:
{
$$0 = _iswalpha($wc) | 0;
break;
}
case 3:
{
$$0 = _iswblank($wc) | 0;
break;
}
case 4:
{
$$0 = _iswcntrl($wc) | 0;
break;
}
case 5:
{
$$0 = _iswdigit($wc) | 0;
break;
}
case 6:
{
$$0 = _iswgraph($wc) | 0;
break;
}
case 7:
{
$$0 = _iswlower($wc) | 0;
break;
}
case 8:
{
$$0 = _iswprint($wc) | 0;
break;
}
case 9:
{
$$0 = _iswpunct($wc) | 0;
break;
}
case 10:
{
$$0 = _iswspace($wc) | 0;
break;
}
case 11:
{
$$0 = _iswupper($wc) | 0;
break;
}
case 12:
{
$$0 = _iswxdigit($wc) | 0;
break;
}
default:
$$0 = 0;
} while (0);
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, $args = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$args = sp + 8 | 0;
HEAP32[$args >> 2] = $varargs;
$0 = _vsnprintf($buf, $size, $format, $args) | 0;
if ($0 >>> 0 < $size >>> 0) {
STACKTOP = sp;
return $0 | 0;
}
if ((HEAP32[185] | 0) == -1) HEAP32[185] = _GNUNET_get_log_call_status(1, 0, 18858, 18931, 433) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[185] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 18858;
HEAP32[$vararg_buffer + 4 >> 2] = 433;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function __gcry_mpi_fdiv_q($quot, $dividend, $divisor) {
$quot = $quot | 0;
$dividend = $dividend | 0;
$divisor = $divisor | 0;
var $$0$i = 0, $2 = 0, $4 = 0, $7 = 0, $temp_divisor$0$i = 0;
$2 = __gcry_mpi_alloc(HEAP32[$quot + 4 >> 2] | 0) | 0;
$4 = HEAP32[$divisor + 8 >> 2] | 0;
if (($quot | 0) == ($divisor | 0) | ($2 | 0) == ($divisor | 0)) {
$7 = __gcry_mpi_copy($divisor) | 0;
$$0$i = $7;
$temp_divisor$0$i = $7;
} else {
$$0$i = $divisor;
$temp_divisor$0$i = 0;
}
__gcry_mpi_tdiv_qr($quot, $2, $dividend, $$0$i);
if (($4 | 0) != (HEAP32[$dividend + 8 >> 2] | 0)) if (HEAP32[$2 + 4 >> 2] | 0) {
__gcry_mpi_sub_ui($quot, $quot, 1);
__gcry_mpi_add($2, $2, $$0$i);
}
if (!$temp_divisor$0$i) {
__gcry_mpi_free($2);
return;
}
__gcry_mpi_free($temp_divisor$0$i);
__gcry_mpi_free($2);
return;
}
function __gcry_mpi_get_opaque_copy($a, $nbits) {
$a = $a | 0;
$nbits = $nbits | 0;
var $$0 = 0, $10 = 0, $13 = 0, $14 = 0, $15 = 0, $20 = 0, $8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if (!(HEAP32[$a + 12 >> 2] & 4)) __gcry_log_bug(45787, sp);
if (!$nbits) {
$13 = 0;
$15 = HEAP32[$a + 16 >> 2] | 0;
} else {
$8 = HEAP32[$a + 8 >> 2] | 0;
HEAP32[$nbits >> 2] = $8;
$10 = HEAP32[$a + 16 >> 2] | 0;
if (!$10) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
} else {
$13 = $8;
$15 = $10;
}
}
$14 = ($13 + 7 | 0) >>> 3;
if (!(__gcry_is_secure($15) | 0)) $20 = __gcry_malloc($14) | 0; else $20 = __gcry_malloc_secure($14) | 0;
if (!$20) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
_memcpy($20 | 0, $15 | 0, $14 | 0) | 0;
$$0 = $20;
STACKTOP = sp;
return $$0 | 0;
}
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, $2 = 0, $3 = 0, $6 = 0, $i$0$lcssa = 0, $i$02 = 0, $low_limb$0$lcssa = 0, $low_limb$01 = 0;
$0 = $wp + -4 | 0;
$1 = 32 - $cnt | 0;
$2 = HEAP32[$up >> 2] | 0;
$3 = $2 << $1;
if (($usize | 0) > 1) {
$i$02 = 1;
$low_limb$01 = $2;
while (1) {
$6 = HEAP32[$up + ($i$02 << 2) >> 2] | 0;
HEAP32[$0 + ($i$02 << 2) >> 2] = $6 << $1 | $low_limb$01 >>> $cnt;
$i$02 = $i$02 + 1 | 0;
if (($i$02 | 0) == ($usize | 0)) {
$i$0$lcssa = $usize;
$low_limb$0$lcssa = $6;
break;
} else $low_limb$01 = $6;
}
} else {
$i$0$lcssa = 1;
$low_limb$0$lcssa = $2;
}
HEAP32[$0 + ($i$0$lcssa << 2) >> 2] = $low_limb$0$lcssa >>> $cnt;
return $3 | 0;
}
function __gpg_strerror($err) {
$err = $err | 0;
var $0 = 0, $1 = 0, $18 = 0, $code = 0, $no = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 12 | 0;
$1 = sp + 8 | 0;
$code = sp + 4 | 0;
$no = sp;
HEAP32[$1 >> 2] = $err;
HEAP32[$code >> 2] = _gpg_err_code(HEAP32[$1 >> 2] | 0) | 0;
do if (HEAP32[$code >> 2] & 32768) {
HEAP32[$no >> 2] = _gpg_err_code_to_errno(HEAP32[$code >> 2] | 0) | 0;
if (!(HEAP32[$no >> 2] | 0)) {
HEAP32[$code >> 2] = 16382;
break;
}
HEAP32[$0 >> 2] = _strerror(HEAP32[$no >> 2] | 0) | 0;
$18 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $18 | 0;
} while (0);
HEAP32[$0 >> 2] = 52835 + (HEAP32[12708 + ((_msgidxof_2406(HEAP32[$code >> 2] | 0) | 0) << 2) >> 2] | 0);
$18 = HEAP32[$0 >> 2] | 0;
STACKTOP = sp;
return $18 | 0;
}
function _read_cb($buffer, $length, $origin) {
$buffer = $buffer | 0;
$length = $length | 0;
$origin = $origin | 0;
var $$in = 0, $10 = 0, $2 = 0, $5 = 0, $7 = 0, $p$01 = 0, label = 0, $7$looptemp = 0;
if (!(HEAP32[17582] | 0)) __gcry_assert_failed(52061, 51988, 124, 52082);
$2 = HEAP32[17583] | 0;
if (!$2) __gcry_assert_failed(52090, 51988, 125, 52082);
if (!$length) return;
$5 = HEAP32[17584] | 0;
$$in = $length;
$7 = HEAP32[17585] | 0;
$p$01 = $buffer;
while (1) {
$$in = $$in + -1 | 0;
if ($7 >>> 0 >= $5 >>> 0) {
label = 9;
break;
}
$10 = HEAP8[$p$01 >> 0] | 0;
$7$looptemp = $7;
$7 = $7 + 1 | 0;
HEAP32[17585] = $7;
HEAP8[$2 + $7$looptemp >> 0] = $10;
if (!$$in) {
label = 9;
break;
} else $p$01 = $p$01 + 1 | 0;
}
if ((label | 0) == 9) 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, $10 = 0, $2 = 0, $3 = 0, $6 = 0;
$0 = HEAP32[$classes >> 2] | 0;
L1 : do if (!$0) $$0 = 0; else {
$2 = ($icase | 0) == 0;
$$012 = $classes;
$3 = $0;
while (1) {
if ($2) {
if (_iswctype($wc, $3) | 0) {
$$0 = 1;
break L1;
}
} else {
$6 = _towupper($wc) | 0;
if (_iswctype($6, HEAP32[$$012 >> 2] | 0) | 0) {
$$0 = 1;
break L1;
}
$10 = _towlower($wc) | 0;
if (_iswctype($10, HEAP32[$$012 >> 2] | 0) | 0) {
$$0 = 1;
break L1;
}
}
$$012 = $$012 + 4 | 0;
$3 = HEAP32[$$012 >> 2] | 0;
if (!$3) {
$$0 = 0;
break;
}
}
} while (0);
return $$0 | 0;
}
function __gcry_mpih_release_karatsuba_ctx($ctx) {
$ctx = $ctx | 0;
var $$01 = 0, $1 = 0, $10 = 0, $14 = 0, $19 = 0, $6 = 0, $$01$looptemp = 0;
$1 = HEAP32[$ctx + 16 >> 2] | 0;
if ($1) __gcry_mpi_free_limb_space($1, HEAP32[$ctx + 20 >> 2] | 0);
$6 = HEAP32[$ctx + 4 >> 2] | 0;
if ($6) __gcry_mpi_free_limb_space($6, HEAP32[$ctx + 8 >> 2] | 0);
$10 = HEAP32[$ctx >> 2] | 0;
if (!$10) return; else $$01 = $10;
do {
$$01$looptemp = $$01;
$$01 = HEAP32[$$01 >> 2] | 0;
$14 = HEAP32[$$01$looptemp + 16 >> 2] | 0;
if ($14) __gcry_mpi_free_limb_space($14, HEAP32[$$01$looptemp + 20 >> 2] | 0);
$19 = HEAP32[$$01$looptemp + 4 >> 2] | 0;
if ($19) __gcry_mpi_free_limb_space($19, HEAP32[$$01$looptemp + 8 >> 2] | 0);
__gcry_free($$01$looptemp);
} while (($$01 | 0) != 0);
return;
}
function __gcry_pk_util_get_rsa_use_e($list, $r_e) {
$list = $list | 0;
$r_e = $r_e | 0;
var $$0 = 0, $0 = 0, $2 = 0, $4 = 0, $buf = 0, $n = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$buf = sp + 4 | 0;
$n = sp;
HEAP32[$r_e >> 2] = 0;
$0 = __gcry_sexp_find_token($list, 37181, 0) | 0;
if (!$0) {
HEAP32[$r_e >> 2] = 65537;
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = __gcry_sexp_nth_data($0, 1, $n) | 0;
$4 = HEAP32[$n >> 2] | 0;
if (($2 | 0) == 0 | $4 >>> 0 > 48) {
__gcry_sexp_release($0);
$$0 = 65;
STACKTOP = sp;
return $$0 | 0;
} else {
_memcpy($buf | 0, $2 | 0, $4 | 0) | 0;
HEAP8[$buf + $4 >> 0] = 0;
HEAP32[$r_e >> 2] = _strtoul($buf, 0, 0) | 0;
__gcry_sexp_release($0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
function __gcry_fips_test_error_or_operational() {
var $2 = 0, $7 = 0, $8 = 0, $result$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if ((HEAP32[17504] | 0) == 1) {
$result$0 = 1;
STACKTOP = sp;
return $result$0 | 0;
}
$2 = _gpgrt_lock_lock(1236) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_info(23298, $vararg_buffer);
_abort();
}
$7 = ((HEAP32[17507] | 0) + -3 | 0) >>> 0 < 2 & 1;
$8 = _gpgrt_lock_unlock(1236) | 0;
if (!$8) {
$result$0 = $7;
STACKTOP = sp;
return $result$0 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($8) | 0;
__gcry_log_info(23353, $vararg_buffer1);
_abort();
}
return 0;
}
function _realloc($oldmem, $bytes) {
$oldmem = $oldmem | 0;
$bytes = $bytes | 0;
var $12 = 0, $15 = 0, $20 = 0, $9 = 0, $mem$1 = 0;
if (!$oldmem) {
$mem$1 = _malloc($bytes) | 0;
return $mem$1 | 0;
}
if ($bytes >>> 0 > 4294967231) {
HEAP32[(___errno_location() | 0) >> 2] = 12;
$mem$1 = 0;
return $mem$1 | 0;
}
$9 = _try_realloc_chunk($oldmem + -8 | 0, $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8) | 0;
if ($9) {
$mem$1 = $9 + 8 | 0;
return $mem$1 | 0;
}
$12 = _malloc($bytes) | 0;
if (!$12) {
$mem$1 = 0;
return $mem$1 | 0;
}
$15 = HEAP32[$oldmem + -4 >> 2] | 0;
$20 = ($15 & -8) - (($15 & 3 | 0) == 0 ? 8 : 4) | 0;
_memcpy($12 | 0, $oldmem | 0, ($20 >>> 0 < $bytes >>> 0 ? $20 : $bytes) | 0) | 0;
_free($oldmem);
$mem$1 = $12;
return $mem$1 | 0;
}
function __gcry_pk_util_get_nbits($list, $r_nbits) {
$list = $list | 0;
$r_nbits = $r_nbits | 0;
var $$0 = 0, $0 = 0, $2 = 0, $4 = 0, $buf = 0, $n = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
$buf = sp + 4 | 0;
$n = sp;
HEAP32[$r_nbits >> 2] = 0;
$0 = __gcry_sexp_find_token($list, 37175, 0) | 0;
if (!$0) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = __gcry_sexp_nth_data($0, 1, $n) | 0;
$4 = HEAP32[$n >> 2] | 0;
if (($2 | 0) == 0 | $4 >>> 0 > 48) {
__gcry_sexp_release($0);
$$0 = 65;
STACKTOP = sp;
return $$0 | 0;
} else {
_memcpy($buf | 0, $2 | 0, $4 | 0) | 0;
HEAP8[$buf + $4 >> 0] = 0;
HEAP32[$r_nbits >> 2] = _strtoul($buf, 0, 0) | 0;
__gcry_sexp_release($0);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
return 0;
}
function _GNUNET_CRYPTO_rsa_blinding_key_decode($buf, $len) {
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = _GNUNET_xmalloc_(4, 20567, 616) | 0;
if (!(_gcry_mpi_scan($0, 5, $buf, $len, sp + 8 | 0) | 0)) {
$$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
if ((HEAP32[243] | 0) == -1) HEAP32[243] = _GNUNET_get_log_call_status(2, 0, 20567, 20994, 624) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) _GNUNET_log_skip(-1, 0); else if (HEAP32[243] | 0) {
HEAP32[$vararg_buffer >> 2] = 20567;
HEAP32[$vararg_buffer + 4 >> 2] = 624;
_GNUNET_log_nocheck(34, 20771, $vararg_buffer);
}
_GNUNET_xfree_($0, 20567, 625);
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_md_reset($a) {
$a = $a | 0;
var $1 = 0, $23 = 0, $24 = 0, $5 = 0, $8 = 0, $9 = 0, $r$0$1 = 0, $r$02 = 0;
$1 = (HEAP32[$a >> 2] | 0) + 12 | 0;
HEAP8[$1 >> 0] = HEAP8[$1 >> 0] & -3;
HEAP32[$a + 4 >> 2] = 0;
$5 = HEAP32[$a >> 2] | 0;
$r$0$1 = HEAP32[$5 + 16 >> 2] | 0;
if (!$r$0$1) $23 = $5; else {
$r$02 = $r$0$1;
do {
$8 = $r$02 + 16 | 0;
$9 = HEAP32[$r$02 >> 2] | 0;
_memset($8 | 0, 0, HEAP32[$9 + 44 >> 2] | 0) | 0;
FUNCTION_TABLE_vii[HEAP32[$9 + 28 >> 2] & 7]($8, (HEAP8[(HEAP32[$a >> 2] | 0) + 12 >> 0] & 4) << 6);
$r$02 = HEAP32[$r$02 + 4 >> 2] | 0;
} while (($r$02 | 0) != 0);
$23 = HEAP32[$a >> 2] | 0;
}
$24 = HEAP32[$23 + 20 >> 2] | 0;
if (!$24) return;
_md_write($a, $24, HEAP32[$23 + 24 >> 2] | 0);
return;
}
function __gcry_fips_test_operational() {
var $2 = 0, $7 = 0, $8 = 0, $result$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if ((HEAP32[17504] | 0) == 1) {
$result$0 = 1;
STACKTOP = sp;
return $result$0 | 0;
}
$2 = _gpgrt_lock_lock(1236) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_info(23298, $vararg_buffer);
_abort();
}
$7 = (HEAP32[17507] | 0) == 3 & 1;
$8 = _gpgrt_lock_unlock(1236) | 0;
if (!$8) {
$result$0 = $7;
STACKTOP = sp;
return $result$0 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($8) | 0;
__gcry_log_info(23353, $vararg_buffer1);
_abort();
}
return 0;
}
function __gcry_ctx_get_pointer($ctx, $type) {
$ctx = $ctx | 0;
$type = $type | 0;
var $5 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!$ctx) {
HEAP32[$vararg_buffer >> 2] = $ctx;
__gcry_log_fatal(23641, $vararg_buffer);
}
if (_memcmp($ctx, 23637, 3) | 0) {
HEAP32[$vararg_buffer >> 2] = $ctx;
__gcry_log_fatal(23641, $vararg_buffer);
}
$5 = HEAP8[$ctx + 3 >> 0] | 0;
if (($5 | 0) == ($type | 0)) {
STACKTOP = sp;
return $ctx + 8 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = $type;
HEAP32[$vararg_buffer1 + 4 >> 2] = $ctx;
HEAP32[$vararg_buffer1 + 8 >> 2] = $5;
__gcry_log_fatal(23689, $vararg_buffer1);
}
return 0;
}
function __gcry_mpi_set_bit($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $13 = 0, $18 = 0, $22 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $i$01 = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
$5 = $n >>> 5;
$6 = $n & 31;
$7 = $a + 4 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if ($5 >>> 0 >= $8 >>> 0) {
if ($8 >>> 0 < (HEAP32[$a >> 2] | 0) >>> 0) {
$13 = HEAP32[$a + 16 >> 2] | 0;
$i$01 = $8;
do {
HEAP32[$13 + ($i$01 << 2) >> 2] = 0;
$i$01 = $i$01 + 1 | 0;
} while ($i$01 >>> 0 < (HEAP32[$a >> 2] | 0) >>> 0);
}
$18 = $5 + 1 | 0;
__gcry_mpi_resize($a, $18);
HEAP32[$7 >> 2] = $18;
}
$22 = (HEAP32[$a + 16 >> 2] | 0) + ($5 << 2) | 0;
HEAP32[$22 >> 2] = HEAP32[$22 >> 2] | 1 << $6;
return;
}
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 $$lcssa = 0, $1 = 0, $11 = 0, $14 = 0, $2 = 0, $3 = 0, $7 = 0, $8 = 0, $cy$0 = 0, $j$0 = 0;
$1 = $s1_ptr + ($size << 2) | 0;
$2 = $s2_ptr + ($size << 2) | 0;
$3 = $res_ptr + ($size << 2) | 0;
$cy$0 = 0;
$j$0 = 0 - $size | 0;
while (1) {
$7 = HEAP32[$1 + ($j$0 << 2) >> 2] | 0;
$8 = (HEAP32[$2 + ($j$0 << 2) >> 2] | 0) + $cy$0 | 0;
$11 = $7 - $8 | 0;
$14 = ($11 >>> 0 > $7 >>> 0 & 1) + ($8 >>> 0 < $cy$0 >>> 0 & 1) | 0;
HEAP32[$3 + ($j$0 << 2) >> 2] = $11;
$j$0 = $j$0 + 1 | 0;
if (!$j$0) {
$$lcssa = $14;
break;
} else $cy$0 = $14;
}
return $$lcssa | 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 $$lcssa = 0, $1 = 0, $11 = 0, $14 = 0, $2 = 0, $3 = 0, $7 = 0, $8 = 0, $cy$0 = 0, $j$0 = 0;
$1 = $s1_ptr + ($size << 2) | 0;
$2 = $s2_ptr + ($size << 2) | 0;
$3 = $res_ptr + ($size << 2) | 0;
$cy$0 = 0;
$j$0 = 0 - $size | 0;
while (1) {
$7 = HEAP32[$1 + ($j$0 << 2) >> 2] | 0;
$8 = (HEAP32[$2 + ($j$0 << 2) >> 2] | 0) + $cy$0 | 0;
$11 = $8 + $7 | 0;
$14 = ($11 >>> 0 < $7 >>> 0 & 1) + ($8 >>> 0 < $cy$0 >>> 0 & 1) | 0;
HEAP32[$3 + ($j$0 << 2) >> 2] = $11;
$j$0 = $j$0 + 1 | 0;
if (!$j$0) {
$$lcssa = $14;
break;
} else $cy$0 = $14;
}
return $$lcssa | 0;
}
function __gcry_mpi_rshift_limbs($a, $count) {
$a = $a | 0;
$count = $count | 0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $i$0$lcssa = 0, $i$01 = 0;
$1 = HEAP32[$a + 16 >> 2] | 0;
$2 = $a + 4 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
if ($3 >>> 0 <= $count >>> 0) {
HEAP32[$2 >> 2] = 0;
return;
}
$10 = $3 - $count | 0;
if (($3 | 0) == ($count | 0)) $i$0$lcssa = 0; else {
$i$01 = 0;
do {
HEAP32[$1 + ($i$01 << 2) >> 2] = HEAP32[$1 + ($i$01 + $count << 2) >> 2];
$i$01 = $i$01 + 1 | 0;
} while (($i$01 | 0) != ($10 | 0));
$i$0$lcssa = $10;
}
HEAP32[$1 + ($i$0$lcssa << 2) >> 2] = 0;
HEAP32[$2 >> 2] = (HEAP32[$2 >> 2] | 0) - $count;
return;
}
function ___fflush_unlocked($f) {
$f = $f | 0;
var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $9 = 0, label = 0;
$0 = $f + 20 | 0;
$2 = $f + 28 | 0;
if ((HEAP32[$0 >> 2] | 0) >>> 0 > (HEAP32[$2 >> 2] | 0) >>> 0) {
FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0;
if (!(HEAP32[$0 >> 2] | 0)) $$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;
if ($10 >>> 0 < $12 >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 63]($f, $10 - $12 | 0, 1) | 0;
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$11 >> 2] = 0;
HEAP32[$9 >> 2] = 0;
$$0 = 0;
}
return $$0 | 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, $7$0 = 0, $7$1 = 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, $1$1 ^ $a$1, $1$0, $1$1) | 0;
$4$1 = tempRet0;
$7$0 = $2$0 ^ $1$0;
$7$1 = $2$1 ^ $1$1;
return _i64Subtract((___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, 0) | 0) ^ $7$0, tempRet0 ^ $7$1, $7$0, $7$1) | 0;
}
function __gpgrt_lock_init($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $15 = 0, $lock = 0, $rc = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 8 | 0;
$lock = sp + 4 | 0;
$rc = sp;
HEAP32[$0 >> 2] = $lockhd;
HEAP32[$lock >> 2] = HEAP32[$0 >> 2];
if (HEAP32[HEAP32[$lock >> 2] >> 2] | 0) HEAP32[$lock >> 2] = _get_lock_object(HEAP32[$0 >> 2] | 0) | 0; else HEAP32[HEAP32[$lock >> 2] >> 2] = 1;
HEAP32[$rc >> 2] = _pthread_mutex_init((HEAP32[$lock >> 2] | 0) + 4 | 0, 0) | 0;
if (!(HEAP32[$rc >> 2] | 0)) {
$15 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $15 | 0;
}
HEAP32[$rc >> 2] = _gpg_err_code_from_errno(HEAP32[$rc >> 2] | 0) | 0;
$15 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $15 | 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, $11 = 0, $14 = 0, $8 = 0;
if (!$point) {
$1 = __gcry_xmalloc(12) | 0;
HEAP32[$1 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$1 + 4 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$1 + 8 >> 2] = __gcry_mpi_new(0) | 0;
$$0 = $1;
} else $$0 = $point;
$8 = HEAP32[$$0 >> 2] | 0;
if (!$x) __gcry_mpi_clear($8); else __gcry_mpi_snatch($8, $x);
$11 = HEAP32[$$0 + 4 >> 2] | 0;
if (!$y) __gcry_mpi_clear($11); else __gcry_mpi_snatch($11, $y);
$14 = HEAP32[$$0 + 8 >> 2] | 0;
if (!$z) {
__gcry_mpi_clear($14);
return $$0 | 0;
} else {
__gcry_mpi_snatch($14, $z);
return $$0 | 0;
}
return 0;
}
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, $11 = 0, $14 = 0, $8 = 0;
if (!$point) {
$1 = __gcry_xmalloc(12) | 0;
HEAP32[$1 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$1 + 4 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$1 + 8 >> 2] = __gcry_mpi_new(0) | 0;
$$0 = $1;
} else $$0 = $point;
$8 = HEAP32[$$0 >> 2] | 0;
if (!$x) __gcry_mpi_clear($8); else __gcry_mpi_set($8, $x) | 0;
$11 = HEAP32[$$0 + 4 >> 2] | 0;
if (!$y) __gcry_mpi_clear($11); else __gcry_mpi_set($11, $y) | 0;
$14 = HEAP32[$$0 + 8 >> 2] | 0;
if (!$z) {
__gcry_mpi_clear($14);
return $$0 | 0;
} else {
__gcry_mpi_set($14, $z) | 0;
return $$0 | 0;
}
return 0;
}
function __gcry_rngfips_create_nonce($buffer, $length) {
$buffer = $buffer | 0;
$length = $length | 0;
var $0 = 0, $4 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
__gcry_rngfips_initialize(1);
$0 = _gpgrt_lock_lock(12568) | 0;
if ($0) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($0) | 0;
__gcry_log_fatal(50662, $vararg_buffer);
}
HEAP32[17569] = 1;
_get_random($buffer, $length, HEAP32[17571] | 0);
HEAP32[17569] = 0;
$4 = _gpgrt_lock_unlock(12568) | 0;
if (!$4) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($4) | 0;
__gcry_log_fatal(50874, $vararg_buffer1);
}
}
function __gcry_is_fips_mode_inactive() {
var $$0 = 0, $2 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if ((HEAP32[17504] | 0) == 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$2 = _gpgrt_lock_lock(1236) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_info(23298, $vararg_buffer);
_abort();
}
$5 = HEAP32[17506] | 0;
$6 = _gpgrt_lock_unlock(1236) | 0;
if (!$6) {
$$0 = $5;
STACKTOP = sp;
return $$0 | 0;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($6) | 0;
__gcry_log_info(23353, $vararg_buffer1);
_abort();
}
return 0;
}
function __gcry_mpi_lshift_limbs($a, $count) {
$a = $a | 0;
$count = $count | 0;
var $0 = 0, $1 = 0, $5 = 0, $8 = 0, $i$04$in = 0, $i$04$in$looptemp = 0;
$0 = $a + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!(($count | 0) != 0 & ($1 | 0) != 0)) return;
$5 = $1 + $count | 0;
if ((HEAP32[$a >> 2] | 0) >>> 0 < $5 >>> 0) __gcry_mpi_resize($a, $5);
$8 = HEAP32[$a + 16 >> 2] | 0;
if (($1 | 0) > 0) {
$i$04$in = $1;
do {
$i$04$in$looptemp = $i$04$in;
$i$04$in = $i$04$in + -1 | 0;
HEAP32[$8 + ($i$04$in + $count << 2) >> 2] = HEAP32[$8 + ($i$04$in << 2) >> 2];
} while (($i$04$in$looptemp | 0) > 1);
}
_memset($8 | 0, 0, $count << 2 | 0) | 0;
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + $count;
return;
}
function __gcry_calloc($n, $m) {
$n = $n | 0;
$m = $m | 0;
var $$0 = 0, $0 = 0, $10 = 0, $12 = 0, $4 = 0, $9 = 0, $m$0$i$i = 0;
$0 = Math_imul($m, $n) | 0;
if ($m) if ((($0 >>> 0) / ($m >>> 0) | 0 | 0) != ($n | 0)) {
_gpg_err_set_errno(12);
$$0 = 0;
return $$0 | 0;
}
$4 = HEAP32[17483] | 0;
if (!$4) $m$0$i$i = __gcry_private_malloc($0) | 0; else $m$0$i$i = FUNCTION_TABLE_ii[$4 & 15]($0) | 0;
if ($m$0$i$i) {
_memset($m$0$i$i | 0, 0, $0 | 0) | 0;
$$0 = $m$0$i$i;
return $$0 | 0;
}
$9 = ___errno_location() | 0;
$10 = HEAP32[$9 >> 2] | 0;
if (!$10) {
_gpg_err_set_errno(12);
$12 = HEAP32[$9 >> 2] | 0;
} else $12 = $10;
_gpg_err_code_from_errno($12) | 0;
$$0 = 0;
return $$0 | 0;
}
function ___srandom($seed) {
$seed = $seed | 0;
var $0 = 0, $10 = 0, $11 = 0, $19 = 0, $8 = 0, $9 = 0, $k$01 = 0;
$0 = HEAP32[3904] | 0;
if (!$0) HEAP32[HEAP32[3906] >> 2] = $seed; else {
HEAP32[3905] = ($0 | 0) == 31 | ($0 | 0) == 7 ? 3 : 1;
HEAP32[17605] = 0;
if (($0 | 0) > 0) {
$8 = HEAP32[3906] | 0;
$10 = 0;
$9 = $seed;
$k$01 = 0;
do {
$11 = ___muldi3($9 | 0, $10 | 0, 1284865837, 1481765933) | 0;
$9 = _i64Add($11 | 0, tempRet0 | 0, 1, 0) | 0;
$10 = tempRet0;
HEAP32[$8 + ($k$01 << 2) >> 2] = $10;
$k$01 = $k$01 + 1 | 0;
} while (($k$01 | 0) < ($0 | 0));
$19 = $8;
} else $19 = HEAP32[3906] | 0;
HEAP32[$19 >> 2] = HEAP32[$19 >> 2] | 1;
}
return;
}
function __gcry_ctx_alloc($type, $length, $deinit) {
$type = $type | 0;
$length = $length | 0;
$deinit = $deinit | 0;
var $$0 = 0, $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (($type | 0) != 1) {
HEAP32[$vararg_buffer >> 2] = $type;
__gcry_log_bug(23591, $vararg_buffer);
}
$2 = __gcry_calloc(1, ($length >>> 0 < 8 ? 8 : $length) + 8 | 0) | 0;
if (!$2) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
};
HEAP8[$2 >> 0] = HEAP8[23637] | 0;
HEAP8[$2 + 1 >> 0] = HEAP8[23638] | 0;
HEAP8[$2 + 2 >> 0] = HEAP8[23639] | 0;
HEAP8[$2 + 3 >> 0] = 1;
HEAP32[$2 + 4 >> 2] = $deinit;
$$0 = $2;
STACKTOP = sp;
return $$0 | 0;
}
function ___setxid($nr, $id, $eid, $sid) {
$nr = $nr | 0;
$id = $id | 0;
$eid = $eid | 0;
$sid = $sid | 0;
var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $c = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$c = sp;
HEAP32[$c >> 2] = $id;
HEAP32[$c + 4 >> 2] = $eid;
HEAP32[$c + 8 >> 2] = $sid;
HEAP32[$c + 12 >> 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(8, $c);
$5 = HEAP32[$4 >> 2] | 0;
if (!$5) $$0 = 0; else {
HEAP32[(___errno_location() | 0) >> 2] = $5;
$$0 = -1;
}
STACKTOP = sp;
return $$0 | 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) 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];
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 _GNUNET_xfree_($ptr, $filename, $linenumber) {
$ptr = $ptr | 0;
$filename = $filename | 0;
$linenumber = $linenumber | 0;
var $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if ($ptr) {
_free($ptr);
STACKTOP = sp;
return;
}
if ((HEAP32[183] | 0) == -1) HEAP32[183] = _GNUNET_get_log_call_status(1, 0, 18858, 18901, 237) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[183] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $linenumber;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
}
function _sha256_init($context, $flags) {
$context = $context | 0;
$flags = $flags | 0;
var $8 = 0;
HEAP32[$context + 160 >> 2] = 1779033703;
HEAP32[$context + 164 >> 2] = -1150833019;
HEAP32[$context + 168 >> 2] = 1013904242;
HEAP32[$context + 172 >> 2] = -1521486534;
HEAP32[$context + 176 >> 2] = 1359893119;
HEAP32[$context + 180 >> 2] = -1694144372;
HEAP32[$context + 184 >> 2] = 528734635;
HEAP32[$context + 188 >> 2] = 1541459225;
$8 = $context + 128 | 0;
HEAP32[$8 >> 2] = 0;
HEAP32[$8 + 4 >> 2] = 0;
HEAP32[$8 + 8 >> 2] = 0;
HEAP32[$8 + 12 >> 2] = 0;
HEAP32[$8 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 64;
HEAP32[$context + 152 >> 2] = 33;
return;
}
function __gcry_rngcsprng_fast_poll() {
var $2 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!(HEAP32[17541] | 0)) HEAP32[17541] = 1;
$2 = _gpgrt_lock_lock(12520) | 0;
if ($2) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($2) | 0;
__gcry_log_fatal(49833, $vararg_buffer);
}
HEAP32[17542] = 1;
if (HEAP32[17556] | 0) _do_fast_random_poll();
HEAP32[17542] = 0;
$7 = _gpgrt_lock_unlock(12520) | 0;
if (!$7) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($7) | 0;
__gcry_log_fatal(49870, $vararg_buffer1);
}
}
function _sha224_init($context, $flags) {
$context = $context | 0;
$flags = $flags | 0;
var $8 = 0;
HEAP32[$context + 160 >> 2] = -1056596264;
HEAP32[$context + 164 >> 2] = 914150663;
HEAP32[$context + 168 >> 2] = 812702999;
HEAP32[$context + 172 >> 2] = -150054599;
HEAP32[$context + 176 >> 2] = -4191439;
HEAP32[$context + 180 >> 2] = 1750603025;
HEAP32[$context + 184 >> 2] = 1694076839;
HEAP32[$context + 188 >> 2] = -1090891868;
$8 = $context + 128 | 0;
HEAP32[$8 >> 2] = 0;
HEAP32[$8 + 4 >> 2] = 0;
HEAP32[$8 + 8 >> 2] = 0;
HEAP32[$8 + 12 >> 2] = 0;
HEAP32[$8 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 64;
HEAP32[$context + 152 >> 2] = 33;
return;
}
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) {
value = value & 255;
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)) {
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 _GNUNET_log_from_nocheck($kind, $comp, $message, $varargs) {
$kind = $kind | 0;
$comp = $comp | 0;
$message = $message | 0;
$varargs = $varargs | 0;
var $$comp = 0, $2 = 0, $comp_w_pid = 0, $va = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 160 | 0;
$vararg_buffer = sp;
$va = sp + 8 | 0;
$comp_w_pid = sp + 24 | 0;
$$comp = ($comp | 0) == 0 ? HEAP32[17456] | 0 : $comp;
HEAP32[$va >> 2] = $varargs;
$2 = _getpid() | 0;
HEAP32[$vararg_buffer >> 2] = $$comp;
HEAP32[$vararg_buffer + 4 >> 2] = $2;
_GNUNET_snprintf($comp_w_pid, 128, 18994, $vararg_buffer) | 0;
_mylog($kind, $comp_w_pid, $message, $va);
STACKTOP = sp;
return;
}
function __gcry_mpi_barrett_init($m, $copy) {
$m = $m | 0;
$copy = $copy | 0;
var $0 = 0, $11 = 0, $5 = 0, $8 = 0, $9 = 0;
__gcry_mpi_normalize($m);
$0 = __gcry_xcalloc(1, 28) | 0;
if (!$copy) HEAP32[$0 >> 2] = $m; else {
HEAP32[$0 >> 2] = __gcry_mpi_copy($m) | 0;
HEAP32[$0 + 4 >> 2] = 1;
}
$5 = HEAP32[$m + 4 >> 2] | 0;
HEAP32[$0 + 8 >> 2] = $5;
$8 = __gcry_mpi_alloc($5 + 1 | 0) | 0;
__gcry_mpi_set_ui($8, 1) | 0;
$9 = $5 << 1;
__gcry_mpi_lshift_limbs($8, $9);
__gcry_mpi_fdiv_q($8, $8, $m);
HEAP32[$0 + 12 >> 2] = $8;
$11 = $9 | 1;
HEAP32[$0 + 16 >> 2] = __gcry_mpi_alloc($11) | 0;
HEAP32[$0 + 20 >> 2] = __gcry_mpi_alloc($11) | 0;
return $0 | 0;
}
function __gcry_ctx_release($ctx) {
$ctx = $ctx | 0;
var $4 = 0, $7 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!$ctx) {
STACKTOP = sp;
return;
}
if (_memcmp($ctx, 23637, 3) | 0) {
HEAP32[$vararg_buffer >> 2] = $ctx;
__gcry_log_fatal(23746, $vararg_buffer);
}
$4 = HEAP8[$ctx + 3 >> 0] | 0;
if ($4 << 24 >> 24 != 1) {
HEAP32[$vararg_buffer1 >> 2] = $4 << 24 >> 24;
__gcry_log_fatal(23788, $vararg_buffer1);
}
$7 = HEAP32[$ctx + 4 >> 2] | 0;
if ($7) FUNCTION_TABLE_vi[$7 & 15]($ctx + 8 | 0);
__gcry_free($ctx);
STACKTOP = sp;
return;
}
function ___toread($f) {
$f = $f | 0;
var $$0 = 0, $0 = 0, $15 = 0, $2 = 0, $21 = 0, $6 = 0, $8 = 0;
$0 = $f + 74 | 0;
$2 = HEAP8[$0 >> 0] | 0;
HEAP8[$0 >> 0] = $2 + 255 | $2;
$6 = $f + 20 | 0;
$8 = $f + 44 | 0;
if ((HEAP32[$6 >> 2] | 0) >>> 0 > (HEAP32[$8 >> 2] | 0) >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0;
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$f + 28 >> 2] = 0;
HEAP32[$6 >> 2] = 0;
$15 = HEAP32[$f >> 2] | 0;
if (!($15 & 20)) {
$21 = HEAP32[$8 >> 2] | 0;
HEAP32[$f + 8 >> 2] = $21;
HEAP32[$f + 4 >> 2] = $21;
$$0 = 0;
} else if (!($15 & 4)) $$0 = -1; else {
HEAP32[$f >> 2] = $15 | 32;
$$0 = -1;
}
return $$0 | 0;
}
function _GNUNET_CRYPTO_hash_context_start() {
var $0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = _GNUNET_xmalloc_(4, 20130, 425) | 0;
if (!(_gcry_md_open($0, 10, 0) | 0)) {
STACKTOP = sp;
return $0 | 0;
}
if ((HEAP32[224] | 0) == -1) HEAP32[224] = _GNUNET_get_log_call_status(1, 0, 20130, 20144, 429) | 0;
if ((_GNUNET_get_log_skip() | 0) > 0) {
_GNUNET_log_skip(-1, 0);
_GNUNET_abort_();
}
if (!(HEAP32[224] | 0)) _GNUNET_abort_();
HEAP32[$vararg_buffer >> 2] = 20130;
HEAP32[$vararg_buffer + 4 >> 2] = 429;
_GNUNET_log_nocheck(1, 60876, $vararg_buffer);
_GNUNET_abort_();
return 0;
}
function __gcry_xmalloc_secure($n) {
$n = $n | 0;
var $$lcssa = 0, $0 = 0, $11 = 0, $3 = 0, $4 = 0, label = 0;
while (1) {
$0 = __gcry_malloc_secure($n) | 0;
if ($0) {
$$lcssa = $0;
label = 6;
break;
}
$3 = (__gcry_fips_mode() | 0) == 0;
$4 = HEAP32[17488] | 0;
if (!($3 & ($4 | 0) != 0)) {
label = 5;
break;
}
if (!(FUNCTION_TABLE_iiii[$4 & 63](HEAP32[17489] | 0, $n, 1) | 0)) {
label = 5;
break;
}
}
if ((label | 0) == 5) {
$11 = _gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
__gcry_fatal_error($11, __gcry_gettext(22099) | 0);
} else if ((label | 0) == 6) return $$lcssa | 0;
return 0;
}
function _fclose($f) {
$f = $f | 0;
var $$pre = 0, $12 = 0, $18 = 0, $22 = 0, $24 = 0, $5 = 0, $7 = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {}
$5 = (HEAP32[$f >> 2] & 1 | 0) != 0;
if (!$5) {
___lock(70392);
$7 = HEAP32[$f + 52 >> 2] | 0;
$$pre = $f + 56 | 0;
if ($7) HEAP32[$7 + 56 >> 2] = HEAP32[$$pre >> 2];
$12 = HEAP32[$$pre >> 2] | 0;
if ($12) HEAP32[$12 + 52 >> 2] = $7;
if ((HEAP32[17597] | 0) == ($f | 0)) HEAP32[17597] = $12;
___unlock(70392);
}
$18 = _fflush($f) | 0;
$22 = FUNCTION_TABLE_ii[HEAP32[$f + 12 >> 2] & 15]($f) | 0 | $18;
$24 = HEAP32[$f + 92 >> 2] | 0;
if ($24) _free($24);
if (!$5) _free($f);
return $22 | 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, $4 = 0, $keyparms = 0, $rc$0 = 0, $spec = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$spec = sp + 4 | 0;
$keyparms = sp;
HEAP32[$r_plain >> 2] = 0;
$0 = _spec_from_sexp($s_skey, 1, $spec, $keyparms) | 0;
if (!$0) {
$4 = HEAP32[(HEAP32[$spec >> 2] | 0) + 52 >> 2] | 0;
if (!$4) $rc$0 = 69; else $rc$0 = FUNCTION_TABLE_iiii[$4 & 63]($r_plain, $s_data, HEAP32[$keyparms >> 2] | 0) | 0;
} else $rc$0 = $0;
__gcry_sexp_release(HEAP32[$keyparms >> 2] | 0);
STACKTOP = sp;
return $rc$0 | 0;
}
function __gcry_rngcsprng_close_fds() {
var $0 = 0, $3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = _gpgrt_lock_lock(12520) | 0;
if ($0) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($0) | 0;
__gcry_log_fatal(49833, $vararg_buffer);
}
HEAP32[17542] = 1;
__gcry_rndlinux_gather_random(0, 0, 0, 0) | 0;
HEAP32[17543] = 0;
HEAP32[17542] = 0;
$3 = _gpgrt_lock_unlock(12520) | 0;
if (!$3) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($3) | 0;
__gcry_log_fatal(49870, $vararg_buffer1);
}
}
function __gcry_mpi_clear_highbit($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $$lcssa = 0, $12 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0, $bitno$01 = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
$5 = $n >>> 5;
$6 = $a + 4 | 0;
if ($5 >>> 0 >= (HEAP32[$6 >> 2] | 0) >>> 0) return;
$12 = (HEAP32[$a + 16 >> 2] | 0) + ($5 << 2) | 0;
$16 = HEAP32[$12 >> 2] | 0;
$bitno$01 = $n & 31;
while (1) {
$15 = $16 & ~(1 << $bitno$01);
$bitno$01 = $bitno$01 + 1 | 0;
if (($bitno$01 | 0) == 32) {
$$lcssa = $15;
break;
} else $16 = $15;
}
HEAP32[$12 >> 2] = $$lcssa;
HEAP32[$6 >> 2] = $5 + 1;
return;
}
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, $4 = 0, $keyparms = 0, $rc$0 = 0, $spec = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$spec = sp + 4 | 0;
$keyparms = sp;
HEAP32[$r_ciph >> 2] = 0;
$0 = _spec_from_sexp($s_pkey, 0, $spec, $keyparms) | 0;
if (!$0) {
$4 = HEAP32[(HEAP32[$spec >> 2] | 0) + 48 >> 2] | 0;
if (!$4) $rc$0 = 69; else $rc$0 = FUNCTION_TABLE_iiii[$4 & 63]($r_ciph, $s_data, HEAP32[$keyparms >> 2] | 0) | 0;
} else $rc$0 = $0;
__gcry_sexp_release(HEAP32[$keyparms >> 2] | 0);
STACKTOP = sp;
return $rc$0 | 0;
}
function __gcry_mpi_get_flag($a, $flag) {
$a = $a | 0;
$flag = $flag | 0;
var $$0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
switch ($flag | 0) {
case 1:
{
$$0 = HEAP32[$a + 12 >> 2] & 1;
break;
}
case 2:
{
$$0 = (HEAP32[$a + 12 >> 2] | 0) >>> 2 & 1;
break;
}
case 4:
{
$$0 = (HEAP32[$a + 12 >> 2] | 0) >>> 4 & 1;
break;
}
case 8:
{
$$0 = (HEAP32[$a + 12 >> 2] | 0) >>> 5 & 1;
break;
}
case 2048:
case 1024:
case 512:
case 256:
{
$$0 = (HEAP32[$a + 12 >> 2] & $flag | 0) != 0 & 1;
break;
}
default:
__gcry_log_bug(45880, sp);
}
STACKTOP = sp;
return $$0 | 0;
}
function _open($filename, $flags, $varargs) {
$filename = $filename | 0;
$flags = $flags | 0;
$varargs = $varargs | 0;
var $5 = 0, $6 = 0, $9 = 0, $ap = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$ap = sp + 16 | 0;
HEAP32[$ap >> 2] = $varargs;
$5 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$6 = HEAP32[$5 >> 2] | 0;
HEAP32[$ap >> 2] = $5 + 4;
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $flags | 32768;
HEAP32[$vararg_buffer + 8 >> 2] = $6;
$9 = ___syscall_ret(___syscall5(5, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $9 | 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, $4 = 0, $keyparms = 0, $rc$0 = 0, $spec = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$spec = sp + 4 | 0;
$keyparms = sp;
HEAP32[$r_sig >> 2] = 0;
$0 = _spec_from_sexp($s_skey, 1, $spec, $keyparms) | 0;
if (!$0) {
$4 = HEAP32[(HEAP32[$spec >> 2] | 0) + 56 >> 2] | 0;
if (!$4) $rc$0 = 69; else $rc$0 = FUNCTION_TABLE_iiii[$4 & 63]($r_sig, $s_hash, HEAP32[$keyparms >> 2] | 0) | 0;
} else $rc$0 = $0;
__gcry_sexp_release(HEAP32[$keyparms >> 2] | 0);
STACKTOP = sp;
return $rc$0 | 0;
}
function _TALER_WRALL_sign_contract($contract, $coin_priv) {
$contract = $contract | 0;
$coin_priv = $coin_priv | 0;
var $2 = 0, $dep_perm = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$dep_perm = sp;
HEAP32[$dep_perm >> 2] = 72;
HEAP32[$dep_perm + 4 >> 2] = 1201;
dest = $dep_perm + 8 | 0;
src = $contract;
stop = dest + 64 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
$2 = _GNUNET_xmalloc_(64, 18658, 572) | 0;
_GNUNET_CRYPTO_eddsa_sign($coin_priv, $dep_perm, $2) | 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, $1 = 0, $11 = 0, $2 = 0, $l$04 = 0, $r$05 = 0;
L1 : do if (!$n) $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;
if ($1 << 24 >> 24 != $2 << 24 >> 24) {
$$lcssa = $1;
$$lcssa19 = $2;
break;
}
$$03 = $$03 + -1 | 0;
if (!$$03) {
$11 = 0;
break L1;
} else {
$l$04 = $l$04 + 1 | 0;
$r$05 = $r$05 + 1 | 0;
}
}
$11 = ($$lcssa & 255) - ($$lcssa19 & 255) | 0;
} while (0);
return $11 | 0;
}
function ___stdio_seek($f, $off, $whence) {
$f = $f | 0;
$off = $off | 0;
$whence = $whence | 0;
var $5 = 0, $ret = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$ret = sp + 20 | 0;
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = 0;
HEAP32[$vararg_buffer + 8 >> 2] = $off;
HEAP32[$vararg_buffer + 12 >> 2] = $ret;
HEAP32[$vararg_buffer + 16 >> 2] = $whence;
if ((___syscall_ret(___syscall140(140, $vararg_buffer | 0) | 0) | 0) < 0) {
HEAP32[$ret >> 2] = -1;
$5 = -1;
} else $5 = HEAP32[$ret >> 2] | 0;
STACKTOP = sp;
return $5 | 0;
}
function ___fmodeflags($mode) {
$mode = $mode | 0;
var $1 = 0, $2 = 0, $4 = 0, $7 = 0, $flags$0 = 0, $flags$0$ = 0, $flags$2 = 0, $flags$2$ = 0, $flags$4 = 0;
$1 = (_strchr($mode, 43) | 0) == 0;
$2 = HEAP8[$mode >> 0] | 0;
$flags$0 = $1 ? $2 << 24 >> 24 != 114 & 1 : 2;
$4 = (_strchr($mode, 120) | 0) == 0;
$flags$0$ = $4 ? $flags$0 : $flags$0 | 128;
$7 = (_strchr($mode, 101) | 0) == 0;
$flags$2 = $7 ? $flags$0$ : $flags$0$ | 524288;
$flags$2$ = $2 << 24 >> 24 == 114 ? $flags$2 : $flags$2 | 64;
$flags$4 = $2 << 24 >> 24 == 119 ? $flags$2$ | 512 : $flags$2$;
return ($2 << 24 >> 24 == 97 ? $flags$4 | 1024 : $flags$4) | 0;
}
function __gcry_rngsystem_close_fds() {
var $0 = 0, $3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = _gpgrt_lock_lock(12612) | 0;
if ($0) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($0) | 0;
__gcry_log_fatal(51895, $vararg_buffer);
}
HEAP32[17582] = 1;
__gcry_rndlinux_gather_random(0, 0, 0, 0) | 0;
HEAP32[17582] = 0;
$3 = _gpgrt_lock_unlock(12612) | 0;
if (!$3) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($3) | 0;
__gcry_log_fatal(51938, $vararg_buffer1);
}
}
function __gcry_rngfips_close_fds() {
var $0 = 0, $3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = _gpgrt_lock_lock(12568) | 0;
if ($0) {
HEAP32[$vararg_buffer >> 2] = _gpg_strerror($0) | 0;
__gcry_log_fatal(50662, $vararg_buffer);
}
HEAP32[17569] = 1;
__gcry_rndlinux_gather_random(0, 0, 0, 0) | 0;
HEAP32[17569] = 0;
$3 = _gpgrt_lock_unlock(12568) | 0;
if (!$3) {
STACKTOP = sp;
return;
} else {
HEAP32[$vararg_buffer1 >> 2] = _gpg_strerror($3) | 0;
__gcry_log_fatal(50874, $vararg_buffer1);
}
}
function __gcry_mpi_fdiv_r($rem, $dividend, $divisor) {
$rem = $rem | 0;
$dividend = $dividend | 0;
$divisor = $divisor | 0;
var $$0 = 0, $1 = 0, $3 = 0, $temp_divisor$0 = 0;
$1 = HEAP32[$divisor + 8 >> 2] | 0;
if (($rem | 0) == ($divisor | 0)) {
$3 = __gcry_mpi_copy($divisor) | 0;
$$0 = $3;
$temp_divisor$0 = $3;
} else {
$$0 = $divisor;
$temp_divisor$0 = 0;
}
__gcry_mpi_tdiv_qr(0, $rem, $dividend, $$0);
if (($1 | 0) != 0 ^ (HEAP32[$dividend + 8 >> 2] | 0) != 0) if (HEAP32[$rem + 4 >> 2] | 0) __gcry_mpi_add($rem, $rem, $$0);
if (!$temp_divisor$0) return;
__gcry_mpi_free($temp_divisor$0);
return;
}
function _strtox($s, $p, $base, $0, $1) {
$s = $s | 0;
$p = $p | 0;
$base = $base | 0;
$0 = $0 | 0;
$1 = $1 | 0;
var $2 = 0, $6 = 0, $8 = 0, $f = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
$f = sp;
HEAP32[$f >> 2] = 0;
$2 = $f + 4 | 0;
HEAP32[$2 >> 2] = $s;
HEAP32[$f + 44 >> 2] = $s;
$6 = $f + 8 | 0;
HEAP32[$6 >> 2] = ($s | 0) < 0 ? -1 : $s + 2147483647 | 0;
HEAP32[$f + 76 >> 2] = -1;
___shlim($f, 0);
$8 = ___intscan($f, $base, 1, $0, $1) | 0;
if ($p) HEAP32[$p >> 2] = $s + ((HEAP32[$2 >> 2] | 0) + (HEAP32[$f + 108 >> 2] | 0) - (HEAP32[$6 >> 2] | 0));
STACKTOP = sp;
return $8 | 0;
}
function __gpgrt_lock_unlock($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $10 = 0, $lock = 0, $rc = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 8 | 0;
$lock = sp + 4 | 0;
$rc = sp;
HEAP32[$0 >> 2] = $lockhd;
HEAP32[$lock >> 2] = _get_lock_object(HEAP32[$0 >> 2] | 0) | 0;
HEAP32[$rc >> 2] = _pthread_mutex_unlock((HEAP32[$lock >> 2] | 0) + 4 | 0) | 0;
if (!(HEAP32[$rc >> 2] | 0)) {
$10 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $10 | 0;
}
HEAP32[$rc >> 2] = _gpg_err_code_from_errno(HEAP32[$rc >> 2] | 0) | 0;
$10 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $10 | 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, $4 = 0, $keyparms = 0, $rc$0 = 0, $spec = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$spec = sp + 4 | 0;
$keyparms = sp;
$0 = _spec_from_sexp($s_pkey, 0, $spec, $keyparms) | 0;
if (!$0) {
$4 = HEAP32[(HEAP32[$spec >> 2] | 0) + 60 >> 2] | 0;
if (!$4) $rc$0 = 69; else $rc$0 = FUNCTION_TABLE_iiii[$4 & 63]($s_sig, $s_hash, HEAP32[$keyparms >> 2] | 0) | 0;
} else $rc$0 = $0;
__gcry_sexp_release(HEAP32[$keyparms >> 2] | 0);
STACKTOP = sp;
return $rc$0 | 0;
}
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, $2 = 0;
HEAP32[$r_ctx >> 2] = 0;
if (!(($p | 0) != 0 & ($a | 0) != 0)) {
$$0 = 32816;
return $$0 | 0;
}
$2 = __gcry_ctx_alloc(1, 108, 5) | 0;
if (!$2) {
$$0 = _gpg_err_code_from_syserror() | 0;
return $$0 | 0;
} else {
_ec_p_init(__gcry_ctx_get_pointer($2, 1) | 0, $model, $dialect, $flags, $p, $a, $b);
HEAP32[$r_ctx >> 2] = $2;
$$0 = 0;
return $$0 | 0;
}
return 0;
}
function __gpgrt_lock_lock($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $10 = 0, $lock = 0, $rc = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 8 | 0;
$lock = sp + 4 | 0;
$rc = sp;
HEAP32[$0 >> 2] = $lockhd;
HEAP32[$lock >> 2] = _get_lock_object(HEAP32[$0 >> 2] | 0) | 0;
HEAP32[$rc >> 2] = _pthread_mutex_lock((HEAP32[$lock >> 2] | 0) + 4 | 0) | 0;
if (!(HEAP32[$rc >> 2] | 0)) {
$10 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $10 | 0;
}
HEAP32[$rc >> 2] = _gpg_err_code_from_errno(HEAP32[$rc >> 2] | 0) | 0;
$10 = HEAP32[$rc >> 2] | 0;
STACKTOP = sp;
return $10 | 0;
}
function _strcmp($l, $r) {
$l = $l | 0;
$r = $r | 0;
var $$014 = 0, $$05 = 0, $$lcssa = 0, $$lcssa2 = 0, $0 = 0, $1 = 0, $6 = 0, $7 = 0;
$0 = HEAP8[$l >> 0] | 0;
$1 = HEAP8[$r >> 0] | 0;
if ($0 << 24 >> 24 == 0 ? 1 : $0 << 24 >> 24 != $1 << 24 >> 24) {
$$lcssa = $0;
$$lcssa2 = $1;
} else {
$$014 = $l;
$$05 = $r;
do {
$$014 = $$014 + 1 | 0;
$$05 = $$05 + 1 | 0;
$6 = HEAP8[$$014 >> 0] | 0;
$7 = HEAP8[$$05 >> 0] | 0;
} while (!($6 << 24 >> 24 == 0 ? 1 : $6 << 24 >> 24 != $7 << 24 >> 24));
$$lcssa = $6;
$$lcssa2 = $7;
}
return ($$lcssa & 255) - ($$lcssa2 & 255) | 0;
}
function _GNUNET_STRINGS_absolute_time_to_string($t) {
$t = $t | 0;
var $$0 = 0, $0 = 0, $11 = 0, $2 = 0, $5 = 0, $6 = 0, $tt = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tt = sp;
$0 = $t;
$2 = HEAP32[$0 >> 2] | 0;
$5 = HEAP32[$0 + 4 >> 2] | 0;
$6 = _GNUNET_TIME_absolute_get_forever_() | 0;
if (($2 | 0) == ($6 | 0) & ($5 | 0) == (tempRet0 | 0)) {
$$0 = 21305;
STACKTOP = sp;
return $$0 | 0;
}
$11 = ___udivdi3($2 | 0, $5 | 0, 1e6, 0) | 0;
HEAP32[$tt >> 2] = $11;
_strftime(75436, 255, 21317, _localtime($tt | 0) | 0) | 0;
$$0 = 75436;
STACKTOP = sp;
return $$0 | 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, $argp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$argp = sp;
HEAP32[$argp >> 2] = $varargs;
$0 = _GNUNET_CRYPTO_hkdf_v($result, $out_len, $xtr_algo, $prf_algo, $xts, $xts_len, $skm, $skm_len, $argp) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _get_entropy() {
var $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (HEAP32[17578] | 0) __gcry_assert_failed(51605, 50726, 552, 51629);
HEAP32[17578] = __gcry_xmalloc_secure(16) | 0;
HEAP32[17579] = 16;
HEAP32[17580] = 0;
if ((__gcry_rndlinux_gather_random(4, 0, 16, 2) | 0) >= 0) if ((HEAP32[17580] | 0) == (HEAP32[17579] | 0)) {
$9 = HEAP32[17578] | 0;
HEAP32[17578] = 0;
STACKTOP = sp;
return $9 | 0;
}
__gcry_free(HEAP32[17578] | 0);
HEAP32[17578] = 0;
__gcry_log_fatal(51641, $vararg_buffer);
return 0;
}
function _puts($s) {
$s = $s | 0;
var $0 = 0, $10 = 0, $11 = 0, $18 = 0, $19 = 0;
$0 = HEAP32[3822] | 0;
if ((HEAP32[$0 + 76 >> 2] | 0) > -1) $19 = ___lockfile($0) | 0; else $19 = 0;
do if ((_fputs($s, $0) | 0) < 0) $18 = 1; else {
if ((HEAP8[$0 + 75 >> 0] | 0) != 10) {
$10 = $0 + 20 | 0;
$11 = HEAP32[$10 >> 2] | 0;
if ($11 >>> 0 < (HEAP32[$0 + 16 >> 2] | 0) >>> 0) {
HEAP32[$10 >> 2] = $11 + 1;
HEAP8[$11 >> 0] = 10;
$18 = 0;
break;
}
}
$18 = (___overflow($0, 10) | 0) < 0;
} while (0);
if ($19) ___unlockfile($0);
return $18 << 31 >> 31 | 0;
}
function _do_randomize($buffer, $length, $level) {
$buffer = $buffer | 0;
$length = $length | 0;
$level = $level | 0;
if (__gcry_fips_mode() | 0) {
__gcry_rngfips_randomize($buffer, $length, $level);
return;
}
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_randomize($buffer, $length, $level);
return;
}
if (HEAP32[17521] | 0) {
__gcry_rngfips_randomize($buffer, $length, $level);
return;
}
if (!(HEAP32[17522] | 0)) {
__gcry_rngcsprng_randomize($buffer, $length, $level);
return;
} else {
__gcry_rngsystem_randomize($buffer, $length, $level);
return;
}
}
function __gcry_md_get_algo_dlen($algorithm) {
$algorithm = $algorithm | 0;
var $$ph$i = 0, $14 = 0;
if ((HEAP32[1886] | 0) == ($algorithm | 0)) $$ph$i = 7544; else if ((HEAP32[1918] | 0) == ($algorithm | 0)) $$ph$i = 7672; else if ((HEAP32[1905] | 0) == ($algorithm | 0)) $$ph$i = 7620; else if ((HEAP32[1936] | 0) == ($algorithm | 0)) $$ph$i = 7744; else if ((HEAP32[1949] | 0) == ($algorithm | 0)) $$ph$i = 7796; else if ((HEAP32[1845] | 0) == ($algorithm | 0)) $$ph$i = 7380; else {
$14 = 0;
return $14 | 0;
}
$14 = HEAP32[$$ph$i + 24 >> 2] | 0;
return $14 | 0;
}
function _compute_keygrip($md, $keyparam) {
$md = $md | 0;
$keyparam = $keyparam | 0;
var $$0 = 0, $0 = 0, $2 = 0, $datalen = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$datalen = sp;
$0 = __gcry_sexp_find_token($keyparam, 38737, 1) | 0;
do if (!$0) $$0 = 68; else {
$2 = __gcry_sexp_nth_data($0, 1, $datalen) | 0;
if (!$2) {
__gcry_sexp_release($0);
$$0 = 68;
break;
} else {
__gcry_md_write($md, $2, HEAP32[$datalen >> 2] | 0);
__gcry_sexp_release($0);
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_pk_algo_name($algo) {
$algo = $algo | 0;
var $$0 = 0, $$0$i$i = 0, $$0$i$ph = 0;
switch ($algo | 0) {
case 3:
case 2:
{
$$0$i$i = 1;
break;
}
case 16:
{
$$0$i$i = 20;
break;
}
case 301:
{
$$0$i$i = 18;
break;
}
case 302:
{
$$0$i$i = 18;
break;
}
default:
$$0$i$i = $algo;
}
if (($$0$i$i | 0) == (HEAP32[3099] | 0)) $$0$i$ph = 12396; else if (($$0$i$i | 0) == (HEAP32[1861] | 0)) $$0$i$ph = 7444; else {
$$0 = 37327;
return $$0 | 0;
}
$$0 = HEAP32[$$0$i$ph + 12 >> 2] | 0;
return $$0 | 0;
}
function __gcry_md_algo_name($algorithm) {
$algorithm = $algorithm | 0;
var $$ph = 0, $14 = 0;
if ((HEAP32[1886] | 0) == ($algorithm | 0)) $$ph = 7544; else if ((HEAP32[1918] | 0) == ($algorithm | 0)) $$ph = 7672; else if ((HEAP32[1905] | 0) == ($algorithm | 0)) $$ph = 7620; else if ((HEAP32[1936] | 0) == ($algorithm | 0)) $$ph = 7744; else if ((HEAP32[1949] | 0) == ($algorithm | 0)) $$ph = 7796; else if ((HEAP32[1845] | 0) == ($algorithm | 0)) $$ph = 7380; else {
$14 = 37327;
return $14 | 0;
}
$14 = HEAP32[$$ph + 8 >> 2] | 0;
return $14 | 0;
}
function ___stdout_write($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
var $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
$vararg_buffer = sp;
HEAP32[$f + 36 >> 2] = 26;
if (!(HEAP32[$f >> 2] & 64)) {
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = 21505;
HEAP32[$vararg_buffer + 8 >> 2] = sp + 12;
if (___syscall54(54, $vararg_buffer | 0) | 0) HEAP8[$f + 75 >> 0] = -1;
}
$9 = ___stdio_write($f, $buf, $len) | 0;
STACKTOP = sp;
return $9 | 0;
}
function _select($n, $rfds, $wfds, $efds, $tv) {
$n = $n | 0;
$rfds = $rfds | 0;
$wfds = $wfds | 0;
$efds = $efds | 0;
$tv = $tv | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $n;
HEAP32[$vararg_buffer + 4 >> 2] = $rfds;
HEAP32[$vararg_buffer + 8 >> 2] = $wfds;
HEAP32[$vararg_buffer + 12 >> 2] = $efds;
HEAP32[$vararg_buffer + 16 >> 2] = $tv;
$1 = ___syscall_ret(___syscall142(142, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $1 | 0;
}
function _DEBUG_WR_dump_amount($a) {
$a = $a | 0;
var $1 = 0, $3 = 0, $6 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$vararg_buffer = sp;
$1 = $a;
$3 = HEAP32[$1 >> 2] | 0;
$6 = HEAP32[$1 + 4 >> 2] | 0;
$8 = HEAP32[$a + 8 >> 2] | 0;
HEAP32[$vararg_buffer >> 2] = $a;
HEAP32[$vararg_buffer + 4 >> 2] = $a + 12;
$9 = $vararg_buffer + 8 | 0;
HEAP32[$9 >> 2] = $3;
HEAP32[$9 + 4 >> 2] = $6;
HEAP32[$vararg_buffer + 16 >> 2] = $8;
_printf(18665, $vararg_buffer) | 0;
STACKTOP = sp;
return;
}
function _rmd160_init($context, $flags) {
$context = $context | 0;
$flags = $flags | 0;
var $5 = 0;
HEAP32[$context + 160 >> 2] = 1732584193;
HEAP32[$context + 164 >> 2] = -271733879;
HEAP32[$context + 168 >> 2] = -1732584194;
HEAP32[$context + 172 >> 2] = 271733878;
HEAP32[$context + 176 >> 2] = -1009589776;
$5 = $context + 128 | 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 64;
HEAP32[$context + 152 >> 2] = 31;
return;
}
function _sha1_init($context, $flags) {
$context = $context | 0;
$flags = $flags | 0;
var $5 = 0;
HEAP32[$context + 160 >> 2] = 1732584193;
HEAP32[$context + 164 >> 2] = -271733879;
HEAP32[$context + 168 >> 2] = -1732584194;
HEAP32[$context + 172 >> 2] = 271733878;
HEAP32[$context + 176 >> 2] = -1009589776;
$5 = $context + 128 | 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 64;
HEAP32[$context + 152 >> 2] = 32;
return;
}
function _GNUNET_TIME_absolute_get() {
var $0 = 0, $11 = 0, $17 = 0, $3 = 0, $6 = 0, $9 = 0, $tv = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$tv = sp;
_gettimeofday($tv | 0, 0) | 0;
$0 = HEAP32[$tv >> 2] | 0;
$3 = ___muldi3($0 | 0, (($0 | 0) < 0) << 31 >> 31 | 0, 1e6, 0) | 0;
$6 = HEAP32[$tv + 4 >> 2] | 0;
$9 = _i64Add($3 | 0, tempRet0 | 0, $6 | 0, (($6 | 0) < 0) << 31 >> 31 | 0) | 0;
$11 = 69816;
$17 = _i64Add($9 | 0, tempRet0 | 0, HEAP32[$11 >> 2] | 0, HEAP32[$11 + 4 >> 2] | 0) | 0;
STACKTOP = sp;
return $17 | 0;
}
function __gcry_secmem_dump_stats() {
var $3 = 0, $4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
_gpgrt_lock_lock(1192) | 0;
if (!(HEAP32[17496] | 0)) {
_gpgrt_lock_unlock(1192) | 0;
STACKTOP = sp;
return;
}
$3 = HEAP32[17498] | 0;
$4 = HEAP32[17501] | 0;
HEAP32[$vararg_buffer >> 2] = HEAP32[17500];
HEAP32[$vararg_buffer + 4 >> 2] = $3;
HEAP32[$vararg_buffer + 8 >> 2] = $4;
__gcry_log_info(22587, $vararg_buffer);
_gpgrt_lock_unlock(1192) | 0;
STACKTOP = sp;
return;
}
function __gcry_ecc_curve_free($E) {
$E = $E | 0;
var $0 = 0, $2 = 0, $4 = 0, $7 = 0, $9 = 0;
$0 = $E + 8 | 0;
__gcry_mpi_free(HEAP32[$0 >> 2] | 0);
HEAP32[$0 >> 2] = 0;
$2 = $E + 12 | 0;
__gcry_mpi_free(HEAP32[$2 >> 2] | 0);
HEAP32[$2 >> 2] = 0;
$4 = $E + 16 | 0;
__gcry_mpi_free(HEAP32[$4 >> 2] | 0);
HEAP32[$4 >> 2] = 0;
__gcry_mpi_point_free_parts($E + 20 | 0);
$7 = $E + 32 | 0;
__gcry_mpi_free(HEAP32[$7 >> 2] | 0);
HEAP32[$7 >> 2] = 0;
$9 = $E + 36 | 0;
__gcry_mpi_free(HEAP32[$9 >> 2] | 0);
HEAP32[$9 >> 2] = 0;
return;
}
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, $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = _GNUNET_xmalloc_(64, 18658, 396) | 0;
$1 = _strlen($salt) | 0;
HEAP32[$vararg_buffer >> 2] = 0;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
$3 = (_GNUNET_CRYPTO_kdf($0, 64, $salt, $1, $blob, $blob_size, $vararg_buffer) | 0) == 1;
STACKTOP = sp;
return ($3 ? $0 : 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, $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = _GNUNET_xmalloc_(64, 18658, 445) | 0;
$1 = _strlen($salt) | 0;
HEAP32[$vararg_buffer >> 2] = 0;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
$3 = (_GNUNET_CRYPTO_kdf($0, 64, $salt, $1, $blob, $blob_size, $vararg_buffer) | 0) == 1;
STACKTOP = sp;
return ($3 ? $0 : 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, $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$0 = _GNUNET_xmalloc_(32, 18658, 421) | 0;
$1 = _strlen($salt) | 0;
HEAP32[$vararg_buffer >> 2] = 0;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
$3 = (_GNUNET_CRYPTO_kdf($0, 32, $salt, $1, $blob, $blob_size, $vararg_buffer) | 0) == 1;
STACKTOP = sp;
return ($3 ? $0 : 0) | 0;
}
function _fwrite($src, $size, $nmemb, $f) {
$src = $src | 0;
$size = $size | 0;
$nmemb = $nmemb | 0;
$f = $f | 0;
var $0 = 0, $10 = 0, $6 = 0, $7 = 0, $phitmp = 0;
$0 = Math_imul($nmemb, $size) | 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
$6 = ___fwritex($src, $0, $f) | 0;
if ($phitmp) $7 = $6; else {
___unlockfile($f);
$7 = $6;
}
} else $7 = ___fwritex($src, $0, $f) | 0;
if (($7 | 0) == ($0 | 0)) $10 = $nmemb; else $10 = ($7 >>> 0) / ($size >>> 0) | 0;
return $10 | 0;
}
function __gcry_pk_testkey($s_key) {
$s_key = $s_key | 0;
var $0 = 0, $4 = 0, $keyparms = 0, $rc$0 = 0, $spec = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$spec = sp + 4 | 0;
$keyparms = sp;
$0 = _spec_from_sexp($s_key, 1, $spec, $keyparms) | 0;
if (!$0) {
$4 = HEAP32[(HEAP32[$spec >> 2] | 0) + 44 >> 2] | 0;
if (!$4) $rc$0 = 69; else $rc$0 = FUNCTION_TABLE_ii[$4 & 15](HEAP32[$keyparms >> 2] | 0) | 0;
} else $rc$0 = $0;
__gcry_sexp_release(HEAP32[$keyparms >> 2] | 0);
STACKTOP = sp;
return $rc$0 | 0;
}
function __gcry_cipher_open($handle, $algo, $mode, $flags) {
$handle = $handle | 0;
$algo = $algo | 0;
$mode = $mode | 0;
$flags = $flags | 0;
var $1 = 0, $3 = 0, $h = 0, $rc$0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$h = sp;
HEAP32[$h >> 2] = 0;
if (($mode | 0) > 65535) {
$3 = 0;
$rc$0 = 71;
} else {
$1 = __gcry_cipher_open_internal($h, $algo, $mode, $flags) | 0;
$3 = HEAP32[$h >> 2] | 0;
$rc$0 = $1;
}
HEAP32[$handle >> 2] = ($rc$0 | 0) != 0 ? 0 : $3;
STACKTOP = sp;
return $rc$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, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = _do_vsexp_sscan($retsexp, $erroff, $buffer, $length, $argflag, $arg_list, $arg_ptr) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _calloc($n_elements, $elem_size) {
$n_elements = $n_elements | 0;
$elem_size = $elem_size | 0;
var $1 = 0, $6 = 0, $req$0 = 0;
if (!$n_elements) $req$0 = 0; else {
$1 = Math_imul($elem_size, $n_elements) | 0;
if (($elem_size | $n_elements) >>> 0 > 65535) $req$0 = (($1 >>> 0) / ($n_elements >>> 0) | 0 | 0) == ($elem_size | 0) ? $1 : -1; else $req$0 = $1;
}
$6 = _malloc($req$0) | 0;
if (!$6) return $6 | 0;
if (!(HEAP32[$6 + -4 >> 2] & 3)) return $6 | 0;
_memset($6 | 0, 0, $req$0 | 0) | 0;
return $6 | 0;
}
function _GNUNET_STRINGS_data_to_string_alloc($buf, $size) {
$buf = $buf | 0;
$size = $size | 0;
var $$0 = 0, $0 = 0, $1 = 0, $5 = 0, $7 = 0, $8 = 0;
$0 = $size << 3;
$1 = ($0 >>> 0) % 5 | 0;
$5 = (((($1 | 0) == 0 ? 0 : 5 - $1 | 0) + $0 | 0) >>> 0) / 5 | 0;
$7 = _GNUNET_xmalloc_($5 + 1 | 0, 21279, 929) | 0;
$8 = _GNUNET_STRINGS_data_to_string($buf, $size, $7, $5) | 0;
if (!$8) {
_GNUNET_xfree_($7, 21279, 933);
$$0 = 0;
return $$0 | 0;
} else {
HEAP8[$8 >> 0] = 0;
$$0 = $7;
return $$0 | 0;
}
return 0;
}
function __gcry_rmd160_init($context) {
$context = $context | 0;
var $5 = 0;
HEAP32[$context + 160 >> 2] = 1732584193;
HEAP32[$context + 164 >> 2] = -271733879;
HEAP32[$context + 168 >> 2] = -1732584194;
HEAP32[$context + 172 >> 2] = 271733878;
HEAP32[$context + 176 >> 2] = -1009589776;
$5 = $context + 128 | 0;
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
HEAP32[$5 + 12 >> 2] = 0;
HEAP32[$5 + 16 >> 2] = 0;
HEAP32[$context + 148 >> 2] = 64;
HEAP32[$context + 152 >> 2] = 31;
return;
}
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;
$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;
return (tempRet0 = (Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0) + (Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $1$1 | $1$1 & 0, $1$0 | 0 | 0) | 0;
}
function __gcry_log_fatal($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $3 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = HEAP32[17475] | 0;
if (!$0) {
$3 = HEAP32[3824] | 0;
_fwrite(21624, 7, 1, $3) | 0;
_vfprintf($3, $fmt, $arg_ptr) | 0;
} else FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, 40, $fmt, $arg_ptr);
__gcry_fips_signal_error(21584, 140, 21677, 1, 21688);
__gcry_secmem_term();
_abort();
}
function __gpg_err_code_to_errno($code) {
$code = $code | 0;
var $0 = 0, $1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 4 | 0;
$1 = sp;
HEAP32[$1 >> 2] = $code;
do if (HEAP32[$1 >> 2] & 32768) {
HEAP32[$1 >> 2] = HEAP32[$1 >> 2] & -32769;
if ((HEAP32[$1 >> 2] | 0) >>> 0 < 141) {
HEAP32[$0 >> 2] = HEAP32[14196 + (HEAP32[$1 >> 2] << 2) >> 2];
break;
} else {
HEAP32[$0 >> 2] = 0;
break;
}
} else HEAP32[$0 >> 2] = 0; while (0);
STACKTOP = sp;
return HEAP32[$0 >> 2] | 0;
}
function __gcry_mpi_gcd($g, $xa, $xb) {
$g = $g | 0;
$xa = $xa | 0;
$xb = $xb | 0;
var $0 = 0, $1 = 0;
$0 = __gcry_mpi_copy($xa) | 0;
$1 = __gcry_mpi_copy($xb) | 0;
HEAP32[$0 + 8 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
if (__gcry_mpi_cmp_ui($1, 0) | 0) do {
__gcry_mpi_fdiv_r($g, $0, $1);
__gcry_mpi_set($0, $1) | 0;
__gcry_mpi_set($1, $g) | 0;
} while ((__gcry_mpi_cmp_ui($1, 0) | 0) != 0);
__gcry_mpi_set($g, $0) | 0;
__gcry_mpi_free($0);
__gcry_mpi_free($1);
return (__gcry_mpi_cmp_ui($g, 1) | 0) == 0 | 0;
}
function __gcry_log_bug($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $3 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = HEAP32[17475] | 0;
if (!$0) {
$3 = HEAP32[3824] | 0;
_fwrite(21632, 13, 1, $3) | 0;
_vfprintf($3, $fmt, $arg_ptr) | 0;
} else FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, 50, $fmt, $arg_ptr);
__gcry_fips_signal_error(21584, 140, 21677, 1, 21688);
__gcry_secmem_term();
_abort();
}
function _do_fflush($stream) {
$stream = $stream | 0;
var $0 = 0, $6 = 0, $8 = 0, $err = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 4 | 0;
$err = sp;
HEAP32[$0 >> 2] = $stream;
$6 = HEAP32[$0 >> 2] | 0;
if ((HEAP32[HEAP32[$0 >> 2] >> 2] | 0) >>> 16 & 1) {
HEAP32[$err >> 2] = _es_flush($6) | 0;
$8 = HEAP32[$err >> 2] | 0;
STACKTOP = sp;
return $8 | 0;
} else {
_es_empty($6);
HEAP32[$err >> 2] = 0;
$8 = HEAP32[$err >> 2] | 0;
STACKTOP = sp;
return $8 | 0;
}
return 0;
}
function __gcry_mpi_fdiv_r_ui($rem, $dividend, $divisor) {
$rem = $rem | 0;
$dividend = $dividend | 0;
$divisor = $divisor | 0;
var $4 = 0, $rlimb$0 = 0;
$4 = __gcry_mpih_mod_1(HEAP32[$dividend + 16 >> 2] | 0, HEAP32[$dividend + 4 >> 2] | 0, $divisor) | 0;
if (!$4) $rlimb$0 = 0; else $rlimb$0 = (HEAP32[$dividend + 8 >> 2] | 0) == 0 ? $4 : $divisor - $4 | 0;
if (!$rem) return $rlimb$0 | 0;
HEAP32[HEAP32[$rem + 16 >> 2] >> 2] = $rlimb$0;
HEAP32[$rem + 4 >> 2] = ($rlimb$0 | 0) != 0 & 1;
return $rlimb$0 | 0;
}
function __gcry_md_get_algo($hd) {
$hd = $hd | 0;
var $6 = 0, $hd$idx$val$idx$val = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$hd$idx$val$idx$val = HEAP32[(HEAP32[$hd >> 2] | 0) + 16 >> 2] | 0;
if (!$hd$idx$val$idx$val) {
$6 = 0;
STACKTOP = sp;
return $6 | 0;
}
if (HEAP32[$hd$idx$val$idx$val + 4 >> 2] | 0) {
__gcry_fips_signal_error(36567, 980, 36581, 0, 36593);
__gcry_log_error(36614, sp);
}
$6 = HEAP32[HEAP32[$hd$idx$val$idx$val >> 2] >> 2] | 0;
STACKTOP = sp;
return $6 | 0;
}
function __gcry_private_malloc_secure($n) {
$n = $n | 0;
var $$1 = 0, $4 = 0;
if (!$n) {
_gpg_err_set_errno(22);
$$1 = 0;
return $$1 | 0;
}
if (!(HEAP32[17491] | 0)) {
$$1 = __gcry_secmem_malloc($n) | 0;
return $$1 | 0;
}
$4 = __gcry_secmem_malloc($n + 5 | 0) | 0;
if (!$4) {
$$1 = 0;
return $$1 | 0;
}
HEAP8[$4 >> 0] = $n;
HEAP8[$4 + 1 >> 0] = $n >>> 8;
HEAP8[$4 + 2 >> 0] = $n >>> 16;
HEAP8[$4 + 3 >> 0] = -52;
HEAP8[$4 + ($n + 4) >> 0] = -86;
$$1 = $4 + 4 | 0;
return $$1 | 0;
}
function __gcry_mpi_cmp_ui($u, $v) {
$u = $u | 0;
$v = $v | 0;
var $$0 = 0, $1 = 0, $11 = 0;
__gcry_mpi_normalize($u);
$1 = HEAP32[$u + 4 >> 2] | 0;
if (!$1) {
$$0 = (($v | 0) != 0) << 31 >> 31;
return $$0 | 0;
}
if (HEAP32[$u + 8 >> 2] | 0) {
$$0 = -1;
return $$0 | 0;
}
if (($1 | 0) != 1) {
$$0 = 1;
return $$0 | 0;
}
$11 = HEAP32[HEAP32[$u + 16 >> 2] >> 2] | 0;
if ($11 >>> 0 > $v >>> 0) {
$$0 = 1;
return $$0 | 0;
}
$$0 = ($11 >>> 0 < $v >>> 0) << 31 >> 31;
return $$0 | 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, $argp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$argp = sp;
HEAP32[$argp >> 2] = $varargs;
$0 = _GNUNET_CRYPTO_hkdf_v($result, $out_len, 10, 8, $xts, $xts_len, $skm, $skm_len, $argp) | 0;
STACKTOP = sp;
return $0 | 0;
}
function __gcry_secmem_realloc($p, $newsize) {
$p = $p | 0;
$newsize = $newsize | 0;
var $1 = 0, $3 = 0, $a$0 = 0;
_gpgrt_lock_lock(1192) | 0;
$1 = HEAP32[$p + -8 >> 2] | 0;
if ($1 >>> 0 > $newsize >>> 0) $a$0 = $p; else {
$3 = __gcry_secmem_malloc_internal($newsize) | 0;
if (!$3) $a$0 = 0; else {
_memcpy($3 | 0, $p | 0, $1 | 0) | 0;
_memset($3 + $1 | 0, 0, $newsize - $1 | 0) | 0;
__gcry_secmem_free_internal($p);
$a$0 = $3;
}
}
_gpgrt_lock_unlock(1192) | 0;
return $a$0 | 0;
}
function __gcry_cipher_algo_name($algorithm) {
$algorithm = $algorithm | 0;
var $$ph = 0, $12 = 0;
if ((HEAP32[1069] | 0) == ($algorithm | 0)) $$ph = 4276; else if ((HEAP32[1085] | 0) == ($algorithm | 0)) $$ph = 4340; else if ((HEAP32[1101] | 0) == ($algorithm | 0)) $$ph = 4404; else if ((HEAP32[1968] | 0) == ($algorithm | 0)) $$ph = 7872; else if ((HEAP32[1984] | 0) == ($algorithm | 0)) $$ph = 7936; else {
$12 = 37327;
return $12 | 0;
}
$12 = HEAP32[$$ph + 8 >> 2] | 0;
return $12 | 0;
}
function __gcry_log_debug($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $3 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = HEAP32[17475] | 0;
if (!$0) {
$3 = HEAP32[3824] | 0;
_fwrite(21646, 5, 1, $3) | 0;
_vfprintf($3, $fmt, $arg_ptr) | 0;
STACKTOP = sp;
return;
} else {
FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, 100, $fmt, $arg_ptr);
STACKTOP = sp;
return;
}
}
function ___tre_mem_new_impl($provided, $provided_block) {
$provided = $provided | 0;
$provided_block = $provided_block | 0;
var $mem$0$in = 0;
if (!$provided) $mem$0$in = _calloc(1, 24) | 0; else {
HEAP32[$provided_block >> 2] = 0;
HEAP32[$provided_block + 4 >> 2] = 0;
HEAP32[$provided_block + 8 >> 2] = 0;
HEAP32[$provided_block + 12 >> 2] = 0;
HEAP32[$provided_block + 16 >> 2] = 0;
HEAP32[$provided_block + 20 >> 2] = 0;
$mem$0$in = $provided_block;
}
return $mem$0$in | 0;
}
function ___towrite($f) {
$f = $f | 0;
var $$0 = 0, $0 = 0, $13 = 0, $2 = 0, $6 = 0;
$0 = $f + 74 | 0;
$2 = HEAP8[$0 >> 0] | 0;
HEAP8[$0 >> 0] = $2 + 255 | $2;
$6 = HEAP32[$f >> 2] | 0;
if (!($6 & 8)) {
HEAP32[$f + 8 >> 2] = 0;
HEAP32[$f + 4 >> 2] = 0;
$13 = HEAP32[$f + 44 >> 2] | 0;
HEAP32[$f + 28 >> 2] = $13;
HEAP32[$f + 20 >> 2] = $13;
HEAP32[$f + 16 >> 2] = $13 + (HEAP32[$f + 48 >> 2] | 0);
$$0 = 0;
} else {
HEAP32[$f >> 2] = $6 | 32;
$$0 = -1;
}
return $$0 | 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;
if (!(__gcry_fips_mode() | 0)) {
$$0 = 60;
return $$0 | 0;
}
$$0 = __gcry_rngfips_init_external_test($r_context, $flags, $key, $keylen, $seed, $seedlen, $dt, $dtlen) | 0;
return $$0 | 0;
}
function __gcry_malloc($n) {
$n = $n | 0;
var $0 = 0, $5 = 0, $6 = 0, $8 = 0, $m$0$i = 0, $mem$0 = 0;
$0 = HEAP32[17483] | 0;
if (!$0) $m$0$i = __gcry_private_malloc($n) | 0; else $m$0$i = FUNCTION_TABLE_ii[$0 & 15]($n) | 0;
if ($m$0$i) {
$mem$0 = $m$0$i;
return $mem$0 | 0;
}
$5 = ___errno_location() | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (!$6) {
_gpg_err_set_errno(12);
$8 = HEAP32[$5 >> 2] | 0;
} else $8 = $6;
_gpg_err_code_from_errno($8) | 0;
$mem$0 = 0;
return $mem$0 | 0;
}
function __gcry_log_info_with_dummy_fp($fp, $fmt, $varargs) {
$fp = $fp | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = HEAP32[17475] | 0;
if (!$0) {
_vfprintf(HEAP32[3824] | 0, $fmt, $arg_ptr) | 0;
STACKTOP = sp;
return 0;
} else {
FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, 10, $fmt, $arg_ptr);
STACKTOP = sp;
return 0;
}
return 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, $3 = 0;
if (__gcry_global_is_operational() | 0) {
$3 = __gcry_cipher_encrypt($h, $out, $outsize, $in, $inlen) | 0;
$$0 = ($3 | 0) == 0 ? 0 : $3 & 65535 | 16777216;
return $$0 | 0;
}
if (!$out) {
$$0 = 16777392;
return $$0 | 0;
}
_memset($out | 0, 66, $outsize | 0) | 0;
$$0 = 16777392;
return $$0 | 0;
}
function _TALER_WRALL_eddsa_public_key_from_priv_string($priv) {
$priv = $priv | 0;
var $$0 = 0, $3 = 0, $key_priv = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
$key_priv = sp;
if ((_GNUNET_CRYPTO_eddsa_private_key_from_string($priv, _strlen($priv) | 0, $key_priv) | 0) != 1) {
$$0 = 0;
STACKTOP = sp;
return $$0 | 0;
}
$3 = _GNUNET_xmalloc_(32, 18658, 173) | 0;
_GNUNET_CRYPTO_eddsa_key_get_public($key_priv, $3);
$$0 = $3;
STACKTOP = sp;
return $$0 | 0;
}
function __gcry_private_malloc($n) {
$n = $n | 0;
var $$1 = 0, $4 = 0;
if (!$n) {
_gpg_err_set_errno(22);
$$1 = 0;
return $$1 | 0;
}
if (!(HEAP32[17491] | 0)) {
$$1 = _malloc($n) | 0;
return $$1 | 0;
}
$4 = _malloc($n + 5 | 0) | 0;
if (!$4) {
$$1 = 0;
return $$1 | 0;
}
HEAP8[$4 >> 0] = $n;
HEAP8[$4 + 1 >> 0] = $n >>> 8;
HEAP8[$4 + 2 >> 0] = $n >>> 16;
HEAP8[$4 + 3 >> 0] = 85;
HEAP8[$4 + ($n + 4) >> 0] = -86;
$$1 = $4 + 4 | 0;
return $$1 | 0;
}
function _ftruncate($fd, $length) {
$fd = $fd | 0;
$length = $length | 0;
var $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = 0;
HEAP32[$vararg_buffer + 8 >> 2] = $length;
HEAP32[$vararg_buffer + 12 >> 2] = (($length | 0) < 0) << 31 >> 31;
$3 = ___syscall_ret(___syscall194(194, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $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 __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;
$0 = _gen_prime($nbits, 1, $random_level, $extra_check, $extra_check_arg) | 0;
$1 = HEAP32[17511] | 0;
if (!$1) return $0 | 0;
FUNCTION_TABLE_viiiii[$1 & 15](HEAP32[17512] | 0, 36874, 10, 0, 0);
return $0 | 0;
}
function _TALER_WRALL_rsa_public_key_decode_from_string($base32keyenc) {
$base32keyenc = $base32keyenc | 0;
var $5 = 0, $6 = 0, $8 = 0;
$5 = ~~+Math_floor(+(+(((_strlen($base32keyenc) | 0) * 5 | 0) >>> 3 >>> 0))) >>> 0;
$6 = _GNUNET_xmalloc_($5, 18658, 353) | 0;
_GNUNET_STRINGS_string_to_data($base32keyenc, _strlen($base32keyenc) | 0, $6, $5) | 0;
$8 = _GNUNET_CRYPTO_rsa_public_key_decode($6, $5) | 0;
_GNUNET_xfree_($6, 18658, 217);
return $8 | 0;
}
function __gcry_mpi_normalize($a) {
$a = $a | 0;
var $11 = 0, $5 = 0, $6 = 0, $9 = 0, label = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 4) return;
$5 = $a + 4 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (!$6) return;
$9 = HEAP32[$a + 16 >> 2] | 0;
$11 = $6;
while (1) {
$11 = $11 + -1 | 0;
if (HEAP32[$9 + ($11 << 2) >> 2] | 0) {
label = 7;
break;
}
HEAP32[$5 >> 2] = $11;
if (!$11) {
label = 7;
break;
}
}
if ((label | 0) == 7) return;
}
function __gcry_assert_failed($expr, $file, $line, $func) {
$expr = $expr | 0;
$file = $file | 0;
$line = $line | 0;
$func = $func | 0;
var $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $expr;
HEAP32[$vararg_buffer + 4 >> 2] = $file;
HEAP32[$vararg_buffer + 8 >> 2] = $line;
HEAP32[$vararg_buffer + 12 >> 2] = $func;
__gcry_log(50, 21748, $vararg_buffer);
_abort();
}
function __gcry_fatal_error($rc, $text) {
$rc = $rc | 0;
$text = $text | 0;
var $$0 = 0;
if (!$text) $$0 = _gpg_strerror($rc) | 0; else $$0 = $text;
if (HEAP32[17474] | 0) if (!(__gcry_fips_mode() | 0)) FUNCTION_TABLE_viii[HEAP32[17474] & 7](HEAP32[17473] | 0, $rc, $$0);
__gcry_fips_signal_error(21584, 86, 21591, 1, $$0);
_write(2, 21609, 14) | 0;
_write(2, $$0, _strlen($$0) | 0) | 0;
_write(2, 22019, 1) | 0;
__gcry_secmem_term();
_abort();
}
function __gcry_rmd160_mixblock($hd, $blockof64byte) {
$hd = $hd | 0;
$blockof64byte = $blockof64byte | 0;
_transform($hd, $blockof64byte, 1) | 0;
HEAP32[$blockof64byte >> 2] = HEAP32[$hd + 160 >> 2];
HEAP32[$blockof64byte + 4 >> 2] = HEAP32[$hd + 164 >> 2];
HEAP32[$blockof64byte + 8 >> 2] = HEAP32[$hd + 168 >> 2];
HEAP32[$blockof64byte + 12 >> 2] = HEAP32[$hd + 172 >> 2];
HEAP32[$blockof64byte + 16 >> 2] = HEAP32[$hd + 176 >> 2];
return;
}
function __gcry_log_printf($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $1 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
if (!$fmt) {
STACKTOP = sp;
return;
}
HEAP32[$arg_ptr >> 2] = $varargs;
$1 = HEAP32[17475] | 0;
if (!$1) _vfprintf(HEAP32[3824] | 0, $fmt, $arg_ptr) | 0; else FUNCTION_TABLE_viiii[$1 & 1](HEAP32[17476] | 0, 0, $fmt, $arg_ptr);
STACKTOP = sp;
return;
}
function _TALER_WR_eddsa_verify($reason, $purpose, $sig, $pub) {
$reason = $reason | 0;
$purpose = $purpose | 0;
$sig = $sig | 0;
$pub = $pub | 0;
var $$0 = 0;
if (!(_strcmp($reason, 18702) | 0)) {
$$0 = _GNUNET_CRYPTO_eddsa_verify(1200, $purpose, $sig, $pub) | 0;
return $$0 | 0;
}
if (_strcmp($reason, 18718) | 0) {
$$0 = -1;
return $$0 | 0;
}
$$0 = _GNUNET_CRYPTO_eddsa_verify(1101, $purpose, $sig, $pub) | 0;
return $$0 | 0;
}
function __gcry_log_error($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = HEAP32[17475] | 0;
if (!$0) {
_vfprintf(HEAP32[3824] | 0, $fmt, $arg_ptr) | 0;
STACKTOP = sp;
return;
} else {
FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, 30, $fmt, $arg_ptr);
STACKTOP = sp;
return;
}
}
function __gcry_log_info($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = HEAP32[17475] | 0;
if (!$0) {
_vfprintf(HEAP32[3824] | 0, $fmt, $arg_ptr) | 0;
STACKTOP = sp;
return;
} else {
FUNCTION_TABLE_viiii[$0 & 1](HEAP32[17476] | 0, 10, $fmt, $arg_ptr);
STACKTOP = sp;
return;
}
}
function _TALER_amount_get_zero($cur, $denom) {
$cur = $cur | 0;
$denom = $denom | 0;
var $$0 = 0, $0 = 0;
$0 = _strlen($cur) | 0;
if ($0 >>> 0 > 11) {
$$0 = -1;
return $$0 | 0;
};
HEAP32[$denom >> 2] = 0;
HEAP32[$denom + 4 >> 2] = 0;
HEAP32[$denom + 8 >> 2] = 0;
HEAP32[$denom + 12 >> 2] = 0;
HEAP32[$denom + 16 >> 2] = 0;
HEAP32[$denom + 20 >> 2] = 0;
_memcpy($denom + 12 | 0, $cur | 0, $0 | 0) | 0;
$$0 = 1;
return $$0 | 0;
}
function __gcry_set_preferred_rng_type($type) {
$type = $type | 0;
L1 : do switch ($type | 0) {
case 0:
{
HEAP32[17519] = 1;
break;
}
case 1:
{
HEAP32[17520] = 1;
break;
}
default:
if (!(HEAP32[17519] | 0)) switch ($type | 0) {
case 2:
{
HEAP32[17521] = 1;
break L1;
break;
}
case 3:
{
HEAP32[17522] = 1;
break L1;
break;
}
default:
break L1;
}
} while (0);
return;
}
function _dup2($old, $new) {
$old = $old | 0;
$new = $new | 0;
var $$lcssa = 0, $0 = 0, $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
do {
HEAP32[$vararg_buffer >> 2] = $old;
HEAP32[$vararg_buffer + 4 >> 2] = $new;
$0 = ___syscall63(63, $vararg_buffer | 0) | 0;
} while (($0 | 0) == -16);
$$lcssa = $0;
$2 = ___syscall_ret($$lcssa) | 0;
STACKTOP = sp;
return $2 | 0;
}
function _gcry_sexp_build($retsexp, $erroff, $format, $varargs) {
$retsexp = $retsexp | 0;
$erroff = $erroff | 0;
$format = $format | 0;
$varargs = $varargs | 0;
var $0 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = __gcry_sexp_vbuild($retsexp, $erroff, $format, $arg_ptr) | 0;
STACKTOP = sp;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
function ___muldsi3($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
$1 = $a & 65535;
$2 = $b & 65535;
$3 = Math_imul($2, $1) | 0;
$6 = $a >>> 16;
$8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
$11 = $b >>> 16;
$12 = Math_imul($11, $1) | 0;
return (tempRet0 = ($8 >>> 16) + (Math_imul($11, $6) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, $8 + $12 << 16 | $3 & 65535 | 0) | 0;
}
function __gcry_md_open($h, $algo, $flags) {
$h = $h | 0;
$algo = $algo | 0;
$flags = $flags | 0;
var $2 = 0, $4 = 0, $hd = 0, $rc$0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$hd = sp;
if (!($flags & -260)) {
$2 = _md_open($hd, $algo, $flags) | 0;
$4 = HEAP32[$hd >> 2] | 0;
$rc$0 = $2;
} else {
$4 = 0;
$rc$0 = 45;
}
HEAP32[$h >> 2] = ($rc$0 | 0) != 0 ? 0 : $4;
STACKTOP = sp;
return $rc$0 | 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)) {
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 _gcry_cipher_open($handle, $algo, $mode, $flags) {
$handle = $handle | 0;
$algo = $algo | 0;
$mode = $mode | 0;
$flags = $flags | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
HEAP32[$handle >> 2] = 0;
$$0 = 16777392;
return $$0 | 0;
} else {
$2 = __gcry_cipher_open($handle, $algo, $mode, $flags) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
return 0;
}
function _es_empty($stream) {
$stream = $stream | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $stream;
if ((HEAP32[HEAP32[$0 >> 2] >> 2] | 0) >>> 16 & 1) ___assert_fail(52762, 52785, 1722, 52795); else {
HEAP32[(HEAP32[$0 >> 2] | 0) + 12 >> 2] = 0;
HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] = 0;
HEAP32[(HEAP32[$0 >> 2] | 0) + 32 >> 2] = 0;
STACKTOP = sp;
return;
}
}
function __gcry_random_initialize($full) {
$full = $full | 0;
if (__gcry_fips_mode() | 0) {
__gcry_rngfips_initialize($full);
return;
}
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_initialize($full);
return;
}
if (HEAP32[17521] | 0) {
__gcry_rngfips_initialize($full);
return;
}
if (!(HEAP32[17522] | 0)) {
__gcry_rngcsprng_initialize($full);
return;
} else {
__gcry_rngsystem_initialize($full);
return;
}
}
function __gcry_is_secure($a) {
$a = $a | 0;
var $$0 = 0, $6 = 0;
do if (HEAP32[17479] | 0) {
if (__gcry_enforced_fips_mode() | 0) {
HEAP32[17479] = 0;
break;
}
if (HEAP32[17479] | 0) {
$$0 = 0;
return $$0 | 0;
}
} while (0);
$6 = HEAP32[17485] | 0;
if (!$6) {
$$0 = __gcry_private_is_secure($a) | 0;
return $$0 | 0;
} else {
$$0 = FUNCTION_TABLE_ii[$6 & 15]($a) | 0;
return $$0 | 0;
}
return 0;
}
function __gcry_mpi_neg($w, $u) {
$w = $w | 0;
$u = $u | 0;
var $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (($w | 0) == ($u | 0)) {
if ($w) if (HEAP32[$w + 12 >> 2] & 16) {
__gcry_log_info(45711, $vararg_buffer);
STACKTOP = sp;
return;
}
} else __gcry_mpi_set($w, $u) | 0;
HEAP32[$w + 8 >> 2] = (HEAP32[$u + 8 >> 2] | 0) == 0 & 1;
STACKTOP = sp;
return;
}
function _wcschr($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $$0 = 0, $$01 = 0, $$01$lcssa = 0, $$lcssa = 0, $3 = 0;
if (!$c) $$0 = $s + ((_wcslen($s) | 0) << 2) | 0; else {
$$01 = $s;
while (1) {
$3 = HEAP32[$$01 >> 2] | 0;
if (($3 | 0) == 0 | ($3 | 0) == ($c | 0)) {
$$01$lcssa = $$01;
$$lcssa = $3;
break;
} else $$01 = $$01 + 4 | 0;
}
$$0 = ($$lcssa | 0) != 0 ? $$01$lcssa : 0;
}
return $$0 | 0;
}
function _global_init() {
if (HEAP32[17478] | 0) return;
HEAP32[17478] = 1;
__gcry_set_preferred_rng_type(0);
__gcry_initialize_fips_mode(HEAP32[17482] | 0);
__gcry_detect_hw_features();
if (!(__gcry_cipher_init() | 0)) if (!(__gcry_md_init() | 0)) if (!(__gcry_pk_init() | 0)) if (!(__gcry_primegen_init() | 0)) if (!(__gcry_secmem_module_init() | 0)) if (!(__gcry_mpi_init() | 0)) return;
__gcry_bug(22039, 123, 22128);
}
function __gcry_sexp_extract_param($sexp, $path, $list, $varargs) {
$sexp = $sexp | 0;
$path = $path | 0;
$list = $list | 0;
$varargs = $varargs | 0;
var $0 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = __gcry_sexp_vextract_param($sexp, $path, $list, $arg_ptr) | 0;
STACKTOP = sp;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
function __gcry_sexp_build($retsexp, $erroff, $format, $varargs) {
$retsexp = $retsexp | 0;
$erroff = $erroff | 0;
$format = $format | 0;
$varargs = $varargs | 0;
var $1 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$1 = _do_vsexp_sscan($retsexp, $erroff, $format, _strlen($format) | 0, 1, 0, $arg_ptr) | 0;
STACKTOP = sp;
return $1 | 0;
}
function _write($fd, $buf, $count) {
$fd = $fd | 0;
$buf = $buf | 0;
$count = $count | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = $buf;
HEAP32[$vararg_buffer + 8 >> 2] = $count;
$1 = ___syscall_ret(___syscall4(4, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $1 | 0;
}
function __gcry_mpi_const($no) {
$no = $no | 0;
var $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
if (($no | 0) < 0 | $no >>> 0 > 6) {
HEAP32[$vararg_buffer >> 2] = $no;
__gcry_log_bug(45900, $vararg_buffer);
}
$3 = HEAP32[70132 + ($no << 2) >> 2] | 0;
if (!$3) __gcry_log_bug(45931, sp + 8 | 0); else {
STACKTOP = sp;
return $3 | 0;
}
return 0;
}
function _read($fd, $buf, $count) {
$fd = $fd | 0;
$buf = $buf | 0;
$count = $count | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = $buf;
HEAP32[$vararg_buffer + 8 >> 2] = $count;
$1 = ___syscall_ret(___syscall3(3, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $1 | 0;
}
function __gcry_pk_util_init_encoding_ctx($ctx, $op, $nbits) {
$ctx = $ctx | 0;
$op = $op | 0;
$nbits = $nbits | 0;
HEAP32[$ctx >> 2] = $op;
HEAP32[$ctx + 4 >> 2] = $nbits;
HEAP32[$ctx + 8 >> 2] = 5;
HEAP32[$ctx + 12 >> 2] = 0;
HEAP32[$ctx + 16 >> 2] = 2;
HEAP32[$ctx + 20 >> 2] = 0;
HEAP32[$ctx + 24 >> 2] = 0;
HEAP32[$ctx + 28 >> 2] = 20;
HEAP32[$ctx + 32 >> 2] = 0;
HEAP32[$ctx + 36 >> 2] = 0;
return;
}
function __gcry_mpi_set_opaque_copy($a, $p, $nbits) {
$a = $a | 0;
$p = $p | 0;
$nbits = $nbits | 0;
var $$0 = 0, $1 = 0, $6 = 0;
$1 = ($nbits + 7 | 0) >>> 3;
if (!(__gcry_is_secure($p) | 0)) $6 = __gcry_malloc($1) | 0; else $6 = __gcry_malloc_secure($1) | 0;
if (!$6) {
$$0 = 0;
return $$0 | 0;
}
_memcpy($6 | 0, $p | 0, $1 | 0) | 0;
$$0 = __gcry_mpi_set_opaque($a, $6, $nbits) | 0;
return $$0 | 0;
}
function ___uflow($f) {
$f = $f | 0;
var $$0 = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$c = sp;
if (!(HEAP32[$f + 8 >> 2] | 0)) if (!(___toread($f) | 0)) label = 3; else $$0 = -1; else label = 3;
if ((label | 0) == 3) if ((FUNCTION_TABLE_iiii[HEAP32[$f + 32 >> 2] & 63]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1;
STACKTOP = sp;
return $$0 | 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, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
$$0 = 16777392;
return $$0 | 0;
}
$2 = __gcry_cipher_decrypt($h, $out, $outsize, $in, $inlen) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
function __gcry_mpi_ec_ec2os($point, $ectx) {
$point = $point | 0;
$ectx = $ectx | 0;
var $0 = 0, $1 = 0, $result$0 = 0;
$0 = __gcry_mpi_new(0) | 0;
$1 = __gcry_mpi_new(0) | 0;
if (!(__gcry_mpi_ec_get_affine($0, $1, $point, $ectx) | 0)) $result$0 = __gcry_ecc_ec2os($0, $1, HEAP32[$ectx + 16 >> 2] | 0) | 0; else $result$0 = 0;
__gcry_mpi_free($0);
__gcry_mpi_free($1);
return $result$0 | 0;
}
function _get_lock_object($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $lock = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp + 4 | 0;
$lock = sp;
HEAP32[$0 >> 2] = $lockhd;
HEAP32[$lock >> 2] = HEAP32[$0 >> 2];
if ((HEAP32[HEAP32[$lock >> 2] >> 2] | 0) != 1) ___assert_fail(52713, 52733, 114, 52746); else {
STACKTOP = sp;
return HEAP32[$lock >> 2] | 0;
}
return 0;
}
function __gcry_xcalloc_secure($n, $m) {
$n = $n | 0;
$m = $m | 0;
var $0 = 0, $7 = 0;
$0 = Math_imul($m, $n) | 0;
if ($m) if ((($0 >>> 0) / ($m >>> 0) | 0 | 0) != ($n | 0)) {
_gpg_err_set_errno(12);
__gcry_fatal_error(_gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0, 0);
}
$7 = __gcry_xmalloc_secure($0) | 0;
_memset($7 | 0, 0, $0 | 0) | 0;
return $7 | 0;
}
function __gcry_mpi_barrett_free($ctx) {
$ctx = $ctx | 0;
var $8 = 0;
if (!$ctx) return;
__gcry_mpi_free(HEAP32[$ctx + 12 >> 2] | 0);
__gcry_mpi_free(HEAP32[$ctx + 16 >> 2] | 0);
__gcry_mpi_free(HEAP32[$ctx + 20 >> 2] | 0);
$8 = HEAP32[$ctx + 24 >> 2] | 0;
if ($8) __gcry_mpi_free($8);
if (HEAP32[$ctx + 4 >> 2] | 0) __gcry_mpi_free(HEAP32[$ctx >> 2] | 0);
__gcry_free($ctx);
return;
}
function _unlock_stream($stream) {
$stream = $stream | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $stream;
if ((HEAPU8[(HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1140 >> 0] | 0) >>> 5 & 1) {
STACKTOP = sp;
return;
}
__gpgrt_lock_unlock((HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1040 | 0) | 0;
STACKTOP = sp;
return;
}
function _find_x931_prime($pfirst) {
$pfirst = $pfirst | 0;
var $0 = 0, $1 = 0;
$0 = __gcry_mpi_alloc_set_ui(2) | 0;
$1 = __gcry_mpi_copy($pfirst) | 0;
__gcry_mpi_set_bit($1, 0);
if (_check_prime($1, $0, 64, 0, 0) | 0) {
__gcry_mpi_free($0);
return $1 | 0;
}
do __gcry_mpi_add_ui($1, $1, 2); while ((_check_prime($1, $0, 64, 0, 0) | 0) == 0);
__gcry_mpi_free($0);
return $1 | 0;
}
function _TALER_WRALL_get_encoding_from_rsa_signature($s) {
$s = $s | 0;
var $0 = 0, $2 = 0, $enca = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$enca = sp;
$0 = _GNUNET_CRYPTO_rsa_signature_encode($s, $enca) | 0;
$2 = _GNUNET_STRINGS_data_to_string_alloc(HEAP32[$enca >> 2] | 0, $0) | 0;
_GNUNET_xfree_(HEAP32[$enca >> 2] | 0, 18658, 217);
STACKTOP = sp;
return $2 | 0;
}
function _TALER_WR_get_fancy_time($when) {
$when = $when | 0;
var $0 = 0, $when$byval_copy = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$when$byval_copy = sp;
HEAP32[$when$byval_copy >> 2] = HEAP32[$when >> 2];
HEAP32[$when$byval_copy + 4 >> 2] = HEAP32[$when + 4 >> 2];
$0 = _GNUNET_STRINGS_absolute_time_to_string($when$byval_copy) | 0;
STACKTOP = sp;
return $0 | 0;
}
function ___munmap($start, $len) {
$start = $start | 0;
$len = $len | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
_dummy1(-1);
HEAP32[$vararg_buffer >> 2] = $start;
HEAP32[$vararg_buffer + 4 >> 2] = $len;
$1 = ___syscall_ret(___syscall91(91, $vararg_buffer | 0) | 0) | 0;
_dummy0();
STACKTOP = sp;
return $1 | 0;
}
function _lock_stream($stream) {
$stream = $stream | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $stream;
if ((HEAPU8[(HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1140 >> 0] | 0) >>> 5 & 1) {
STACKTOP = sp;
return;
}
__gpgrt_lock_lock((HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] | 0) + 1040 | 0) | 0;
STACKTOP = sp;
return;
}
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 __gcry_calloc_secure($n, $m) {
$n = $n | 0;
$m = $m | 0;
var $$0 = 0, $0 = 0, $4 = 0;
$0 = Math_imul($m, $n) | 0;
if ($m) if ((($0 >>> 0) / ($m >>> 0) | 0 | 0) != ($n | 0)) {
_gpg_err_set_errno(12);
$$0 = 0;
return $$0 | 0;
}
$4 = __gcry_malloc_secure($0) | 0;
if (!$4) {
$$0 = 0;
return $$0 | 0;
}
_memset($4 | 0, 0, $0 | 0) | 0;
$$0 = $4;
return $$0 | 0;
}
function _gcry_pk_sign($result, $data, $skey) {
$result = $result | 0;
$data = $data | 0;
$skey = $skey | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
HEAP32[$result >> 2] = 0;
$$0 = 16777392;
return $$0 | 0;
} else {
$2 = __gcry_pk_sign($result, $data, $skey) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
return 0;
}
function _access($filename, $amode) {
$filename = $filename | 0;
$amode = $amode | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $amode;
$1 = ___syscall_ret(___syscall33(33, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $1 | 0;
}
function _DEBUG_WR_test_string($0, $1, $test) {
$0 = $0 | 0;
$1 = $1 | 0;
$test = $test | 0;
var $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$2 = $vararg_buffer;
HEAP32[$2 >> 2] = $0;
HEAP32[$2 + 4 >> 2] = $1;
HEAP32[$vararg_buffer + 8 >> 2] = $test;
_printf(18782, $vararg_buffer) | 0;
STACKTOP = sp;
return;
}
function __gcry_xcalloc($n, $m) {
$n = $n | 0;
$m = $m | 0;
var $0 = 0, $7 = 0;
$0 = Math_imul($m, $n) | 0;
if ($m) if ((($0 >>> 0) / ($m >>> 0) | 0 | 0) != ($n | 0)) {
_gpg_err_set_errno(12);
__gcry_fatal_error(_gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0, 0);
}
$7 = __gcry_xmalloc($0) | 0;
_memset($7 | 0, 0, $0 | 0) | 0;
return $7 | 0;
}
function __gcry_bug($file, $line, $func) {
$file = $file | 0;
$line = $line | 0;
$func = $func | 0;
var $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $file;
HEAP32[$vararg_buffer + 4 >> 2] = $line;
HEAP32[$vararg_buffer + 8 >> 2] = $func;
__gcry_log(50, 21718, $vararg_buffer);
_abort();
}
function __gcry_random_close_fds() {
if (__gcry_fips_mode() | 0) {
__gcry_rngfips_close_fds();
return;
}
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_close_fds();
return;
}
if (HEAP32[17521] | 0) {
__gcry_rngfips_close_fds();
return;
}
if (!(HEAP32[17522] | 0)) {
__gcry_rngcsprng_close_fds();
return;
} else {
__gcry_rngsystem_close_fds();
return;
}
}
function __gcry_get_rng_type($ignore_fips_mode) {
$ignore_fips_mode = $ignore_fips_mode | 0;
var $$0 = 0, label = 0;
if (!$ignore_fips_mode) if (!(__gcry_fips_mode() | 0)) label = 3; else $$0 = 2; else label = 3;
if ((label | 0) == 3) if (!(HEAP32[17520] | 0)) if (!(HEAP32[17521] | 0)) $$0 = (HEAP32[17522] | 0) == 0 ? 1 : 3; else $$0 = 2; else $$0 = 1;
return $$0 | 0;
}
function _llvm_cttz_i32(x) {
x = x | 0;
var ret = 0;
ret = HEAP8[cttz_i8 + (x & 255) >> 0] | 0;
if ((ret | 0) < 8) return ret | 0;
ret = HEAP8[cttz_i8 + (x >> 8 & 255) >> 0] | 0;
if ((ret | 0) < 8) return ret + 8 | 0;
ret = HEAP8[cttz_i8 + (x >> 16 & 255) >> 0] | 0;
if ((ret | 0) < 8) return ret + 16 | 0;
return (HEAP8[cttz_i8 + (x >>> 24) >> 0] | 0) + 24 | 0;
}
function _GNUNET_CRYPTO_rsa_public_key_hash($key, $hc) {
$key = $key | 0;
$hc = $hc | 0;
var $0 = 0, $1 = 0, $buf = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$buf = sp;
$0 = _GNUNET_CRYPTO_rsa_public_key_encode($key, $buf) | 0;
$1 = HEAP32[$buf >> 2] | 0;
_GNUNET_CRYPTO_hash($1, $0, $hc);
_GNUNET_xfree_($1, 20567, 346);
STACKTOP = sp;
return;
}
function __gcry_mpi_clear_bit($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $14 = 0, $5 = 0;
if ($a) if (HEAP32[$a + 12 >> 2] & 16) {
__gcry_mpi_immutable_failed();
return;
}
$5 = $n >>> 5;
if ($5 >>> 0 >= (HEAP32[$a + 4 >> 2] | 0) >>> 0) return;
$14 = (HEAP32[$a + 16 >> 2] | 0) + ($5 << 2) | 0;
HEAP32[$14 >> 2] = HEAP32[$14 >> 2] & ~(1 << ($n & 31));
return;
}
function __gcry_mpi_clear($a) {
$a = $a | 0;
var $$pre = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
$$pre = $a + 12 | 0;
if ($a) if (HEAP32[$$pre >> 2] & 16) {
__gcry_log_info(45711, $vararg_buffer);
STACKTOP = sp;
return;
}
HEAP32[$a + 4 >> 2] = 0;
HEAP32[$$pre >> 2] = 0;
STACKTOP = sp;
return;
}
function _rsa_get_nbits($parms) {
$parms = $parms | 0;
var $$0 = 0, $0 = 0, $2 = 0, $5 = 0;
$0 = __gcry_sexp_find_token($parms, 38737, 1) | 0;
if (!$0) {
$$0 = 0;
return $$0 | 0;
}
$2 = __gcry_sexp_nth_mpi($0, 1, 5) | 0;
__gcry_sexp_release($0);
if (!$2) $5 = 0; else $5 = __gcry_mpi_get_nbits($2) | 0;
__gcry_mpi_release($2);
$$0 = $5;
return $$0 | 0;
}
function _gcry_md_open($h, $algo, $flags) {
$h = $h | 0;
$algo = $algo | 0;
$flags = $flags | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
HEAP32[$h >> 2] = 0;
$$0 = 16777392;
return $$0 | 0;
} else {
$2 = __gcry_md_open($h, $algo, $flags) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
return 0;
}
function _gcry_pk_genkey($r_key, $s_parms) {
$r_key = $r_key | 0;
$s_parms = $s_parms | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
HEAP32[$r_key >> 2] = 0;
$$0 = 16777392;
return $$0 | 0;
} else {
$2 = __gcry_pk_genkey($r_key, $s_parms) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
return 0;
}
function _WR_verify_test($sig, $pbk) {
$sig = $sig | 0;
$pbk = $pbk | 0;
var $3 = 0, $purpose = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$purpose = sp;
HEAP32[$purpose >> 2] = _htonl(8) | 0;
HEAP32[$purpose + 4 >> 2] = _htonl(1303) | 0;
$3 = _GNUNET_CRYPTO_eddsa_verify(1303, $purpose, $sig, $pbk) | 0;
STACKTOP = sp;
return $3 | 0;
}
function __gcry_mpi_snew($nbits) {
$nbits = $nbits | 0;
var $1 = 0, $2 = 0, $6 = 0;
$1 = ($nbits + 31 | 0) >>> 5;
$2 = __gcry_xmalloc(20) | 0;
if (!$1) $6 = 0; else $6 = __gcry_xmalloc_secure($1 << 2) | 0;
HEAP32[$2 + 16 >> 2] = $6;
HEAP32[$2 >> 2] = $1;
HEAP32[$2 + 12 >> 2] = 1;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
return $2 | 0;
}
function ___shlim($f, $lim) {
$f = $f | 0;
$lim = $lim | 0;
var $2 = 0, $4 = 0, $5 = 0;
HEAP32[$f + 104 >> 2] = $lim;
$2 = HEAP32[$f + 8 >> 2] | 0;
$4 = HEAP32[$f + 4 >> 2] | 0;
$5 = $2 - $4 | 0;
HEAP32[$f + 108 >> 2] = $5;
if (($lim | 0) != 0 & ($5 | 0) > ($lim | 0)) HEAP32[$f + 100 >> 2] = $4 + $lim; else HEAP32[$f + 100 >> 2] = $2;
return;
}
function _getrusage($who, $ru) {
$who = $who | 0;
$ru = $ru | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $who;
HEAP32[$vararg_buffer + 4 >> 2] = $ru;
$1 = ___syscall_ret(___syscall77(77, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $1 | 0;
}
function _TALER_WRALL_sign_test($pk) {
$pk = $pk | 0;
var $3 = 0, $test = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$test = sp;
HEAP32[$test >> 2] = _htonl(8) | 0;
HEAP32[$test + 4 >> 2] = _htonl(1302) | 0;
$3 = _GNUNET_xmalloc_(64, 18658, 238) | 0;
_GNUNET_CRYPTO_eddsa_sign($pk, $test, $3) | 0;
STACKTOP = sp;
return $3 | 0;
}
function __gcry_mpi_new($nbits) {
$nbits = $nbits | 0;
var $1 = 0, $2 = 0, $6 = 0;
$1 = ($nbits + 31 | 0) >>> 5;
$2 = __gcry_xmalloc(20) | 0;
if (!$1) $6 = 0; else $6 = __gcry_xmalloc($1 << 2) | 0;
HEAP32[$2 + 16 >> 2] = $6;
HEAP32[$2 >> 2] = $1;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
HEAP32[$2 + 12 >> 2] = 0;
return $2 | 0;
}
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;
$0 = __gcry_mpi_scan($ret_mpi, $format, $buffer, $buflen, $nscanned) | 0;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
function __gcry_mpi_alloc_secure($nlimbs) {
$nlimbs = $nlimbs | 0;
var $0 = 0, $4 = 0;
$0 = __gcry_xmalloc(20) | 0;
if (!$nlimbs) $4 = 0; else $4 = __gcry_xmalloc_secure($nlimbs << 2) | 0;
HEAP32[$0 + 16 >> 2] = $4;
HEAP32[$0 >> 2] = $nlimbs;
HEAP32[$0 + 12 >> 2] = 1;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
return $0 | 0;
}
function _sn_write($f, $s, $l) {
$f = $f | 0;
$s = $s | 0;
$l = $l | 0;
var $2 = 0, $3 = 0, $4 = 0, $l$ = 0;
$2 = $f + 20 | 0;
$3 = HEAP32[$2 >> 2] | 0;
$4 = (HEAP32[$f + 16 >> 2] | 0) - $3 | 0;
$l$ = $4 >>> 0 > $l >>> 0 ? $l : $4;
_memcpy($3 | 0, $s | 0, $l$ | 0) | 0;
HEAP32[$2 >> 2] = (HEAP32[$2 >> 2] | 0) + $l$;
return $l | 0;
}
function ___tre_mem_destroy($mem) {
$mem = $mem | 0;
var $0 = 0, $l$01 = 0, $l$01$looptemp = 0;
$0 = HEAP32[$mem >> 2] | 0;
if ($0) {
$l$01 = $0;
do {
_free(HEAP32[$l$01 >> 2] | 0);
$l$01$looptemp = $l$01;
$l$01 = HEAP32[$l$01 + 4 >> 2] | 0;
_free($l$01$looptemp);
} while (($l$01 | 0) != 0);
}
_free($mem);
return;
}
function _gcry_pk_verify($sigval, $data, $pkey) {
$sigval = $sigval | 0;
$data = $data | 0;
$pkey = $pkey | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
$$0 = 16777392;
return $$0 | 0;
}
$2 = __gcry_pk_verify($sigval, $data, $pkey) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
function _feof($f) {
$f = $f | 0;
var $$lobit = 0, $$lobit2 = 0, $phitmp = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
$$lobit = (HEAP32[$f >> 2] | 0) >>> 4 & 1;
if ($phitmp) $$lobit2 = $$lobit; else $$lobit2 = $$lobit;
} else $$lobit2 = (HEAP32[$f >> 2] | 0) >>> 4 & 1;
return $$lobit2 | 0;
}
function __gcry_mpi_point_release($p) {
$p = $p | 0;
var $2 = 0, $4 = 0;
if (!$p) return;
__gcry_mpi_free(HEAP32[$p >> 2] | 0);
HEAP32[$p >> 2] = 0;
$2 = $p + 4 | 0;
__gcry_mpi_free(HEAP32[$2 >> 2] | 0);
HEAP32[$2 >> 2] = 0;
$4 = $p + 8 | 0;
__gcry_mpi_free(HEAP32[$4 >> 2] | 0);
HEAP32[$4 >> 2] = 0;
__gcry_free($p);
return;
}
function ___memrchr($m, $c, $n) {
$m = $m | 0;
$c = $c | 0;
$n = $n | 0;
var $$0 = 0, $$01 = 0, $0 = 0, $3 = 0;
$0 = $c & 255;
$$01 = $n;
while (1) {
if (!$$01) {
$$0 = 0;
break;
}
$$01 = $$01 + -1 | 0;
$3 = $m + $$01 | 0;
if ((HEAP8[$3 >> 0] | 0) == $0 << 24 >> 24) {
$$0 = $3;
break;
}
}
return $$0 | 0;
}
function __gcry_cipher_poly1305_setkey($c) {
$c = $c | 0;
var $0 = 0, $4 = 0, $7 = 0;
$0 = $c + 128 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$c + 136 >> 2] = 0;
HEAP32[$c + 140 >> 2] = 0;
$4 = $c + 144 | 0;
HEAP8[$4 >> 0] = HEAP8[$4 >> 0] & -4;
$7 = $c + 56 | 0;
HEAP8[$7 >> 0] = HEAP8[$7 >> 0] & -7;
return;
}
function __gcry_sexp_sscan($retsexp, $erroff, $buffer, $length) {
$retsexp = $retsexp | 0;
$erroff = $erroff | 0;
$buffer = $buffer | 0;
$length = $length | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = _do_sexp_sscan($retsexp, $erroff, $buffer, $length, 0, 0, sp) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _gcry_cipher_setkey($hd, $key, $keylen) {
$hd = $hd | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
$$0 = 16777392;
return $$0 | 0;
}
$2 = __gcry_cipher_setkey($hd, $key, $keylen) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 536870912;
return $$0 | 0;
}
function __gcry_mpi_alloc_limb_space($nlimbs, $secure) {
$nlimbs = $nlimbs | 0;
$secure = $secure | 0;
var $0 = 0, $1 = 0, $5 = 0;
$0 = ($nlimbs | 0) != 0;
$1 = $0 ? $nlimbs << 2 : 4;
if (!$secure) $5 = __gcry_xmalloc($1) | 0; else $5 = __gcry_xmalloc_secure($1) | 0;
if ($0) return $5 | 0;
HEAP32[$5 >> 2] = 0;
return $5 | 0;
}
function _gcry_control($cmd, $varargs) {
$cmd = $cmd | 0;
$varargs = $varargs | 0;
var $0 = 0, $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
$0 = __gcry_vcontrol($cmd, $arg_ptr) | 0;
STACKTOP = sp;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
function _iswprint($wc) {
$wc = $wc | 0;
var $$0 = 0;
if ($wc >>> 0 < 255) $$0 = ($wc + 1 & 127) >>> 0 > 32 & 1; else if (($wc + -57344 | 0) >>> 0 < 8185 | ($wc >>> 0 < 8232 | ($wc + -8234 | 0) >>> 0 < 47062)) $$0 = 1; else return (($wc + -65532 | 0) >>> 0 > 1048579 | ($wc & 65534 | 0) == 65534) & 1 ^ 1 | 0;
return $$0 | 0;
}
function __gcry_mpi_alloc($nlimbs) {
$nlimbs = $nlimbs | 0;
var $0 = 0, $4 = 0;
$0 = __gcry_xmalloc(20) | 0;
if (!$nlimbs) $4 = 0; else $4 = __gcry_xmalloc($nlimbs << 2) | 0;
HEAP32[$0 + 16 >> 2] = $4;
HEAP32[$0 >> 2] = $nlimbs;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
HEAP32[$0 + 12 >> 2] = 0;
return $0 | 0;
}
function __gcry_enum_hw_features($idx, $r_feature) {
$idx = $idx | 0;
$r_feature = $r_feature | 0;
var $$0 = 0;
if (($idx | 0) < 0 | $idx >>> 0 > 12) {
$$0 = 0;
return $$0 | 0;
}
if ($r_feature) HEAP32[$r_feature >> 2] = HEAP32[1088 + ($idx << 3) >> 2];
$$0 = HEAP32[1088 + ($idx << 3) + 4 >> 2] | 0;
return $$0 | 0;
}
function _gcry_md_setkey($hd, $key, $keylen) {
$hd = $hd | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
$$0 = 16777392;
return $$0 | 0;
}
$2 = __gcry_md_setkey($hd, $key, $keylen) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
function _gcry_cipher_setiv($hd, $iv, $ivlen) {
$hd = $hd | 0;
$iv = $iv | 0;
$ivlen = $ivlen | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
$$0 = 16777392;
return $$0 | 0;
}
$2 = __gcry_cipher_setiv($hd, $iv, $ivlen) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 536870912;
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, $2 = 0;
if (($enclen | 0) != 52) {
$$0 = -1;
return $$0 | 0;
}
$2 = (_GNUNET_STRINGS_string_to_data($enc, 52, $pub, 32) | 0) == 1;
$$0 = $2 ? 1 : -1;
return $$0 | 0;
}
function _gcry_md_hash_buffer($algo, $digest, $buffer, $length) {
$algo = $algo | 0;
$digest = $digest | 0;
$buffer = $buffer | 0;
$length = $length | 0;
if (!(__gcry_global_is_operational() | 0)) __gcry_fips_signal_error(21454, 1175, 21467, 0, 21487);
__gcry_md_hash_buffer($algo, $digest, $buffer, $length);
return;
}
function _close($fd) {
$fd = $fd | 0;
var $0 = 0, $2 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $fd;
$0 = ___syscall6(6, $vararg_buffer | 0) | 0;
$2 = ___syscall_ret(($0 | 0) == -4 ? -115 : $0) | 0;
STACKTOP = sp;
return $2 | 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;
$0 = __gcry_mpi_print($format, $buffer, $buflen, $nwritten, $a) | 0;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
function __gcry_random_progress($what, $printchar, $current, $total) {
$what = $what | 0;
$printchar = $printchar | 0;
$current = $current | 0;
$total = $total | 0;
var $0 = 0;
$0 = HEAP32[17517] | 0;
if (!$0) return;
FUNCTION_TABLE_viiiii[$0 & 15](HEAP32[17518] | 0, $what, $printchar, $current, $total);
return;
}
function _rijndael_decrypt($context, $b, $a) {
$context = $context | 0;
$b = $b | 0;
$a = $a | 0;
var $1 = 0;
_check_decryption_preparation($context);
$1 = HEAP32[$context + 500 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
return FUNCTION_TABLE_iiii[HEAP32[$context + 492 >> 2] & 63]($context, $b, $a) | 0;
}
function __gcry_mpi_alloc_set_ui($u) {
$u = $u | 0;
var $0 = 0, $1 = 0;
$0 = __gcry_xmalloc(20) | 0;
$1 = __gcry_xmalloc(4) | 0;
HEAP32[$0 + 16 >> 2] = $1;
HEAP32[$0 >> 2] = 1;
HEAP32[$0 + 12 >> 2] = 0;
HEAP32[$1 >> 2] = $u;
HEAP32[$0 + 4 >> 2] = ($u | 0) != 0 & 1;
HEAP32[$0 + 8 >> 2] = 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;
if (!(__gcry_fips_mode() | 0)) {
$$0 = 60;
return $$0 | 0;
}
$$0 = __gcry_rngfips_run_external_test($context, $buffer, $buflen) | 0;
return $$0 | 0;
}
function _GNUNET_log_nocheck($kind, $message, $varargs) {
$kind = $kind | 0;
$message = $message | 0;
$varargs = $varargs | 0;
var $va = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$va = sp;
HEAP32[$va >> 2] = $varargs;
_mylog($kind, HEAP32[17461] | 0, $message, $va);
STACKTOP = sp;
return;
}
function _DEBUG_WR_test_string_cmp($test) {
$test = $test | 0;
var $0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $test;
_printf(18799, $vararg_buffer) | 0;
$0 = _strcmp($test, 18811) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _gcry_sexp_new($retsexp, $buffer, $length, $autodetect) {
$retsexp = $retsexp | 0;
$buffer = $buffer | 0;
$length = $length | 0;
$autodetect = $autodetect | 0;
var $0 = 0;
$0 = __gcry_sexp_new($retsexp, $buffer, $length, $autodetect) | 0;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
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;
$0 = __gcry_mpi_copy($v) | 0;
$1 = $0 + 8 | 0;
HEAP32[$1 >> 2] = (HEAP32[$1 >> 2] | 0) == 0 & 1;
__gcry_mpi_add($w, $u, $0);
__gcry_mpi_free($0);
__gcry_mpi_mod($w, $w, $m);
return;
}
function _snprintf($s, $n, $fmt, $varargs) {
$s = $s | 0;
$n = $n | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $ap = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$ap = sp;
HEAP32[$ap >> 2] = $varargs;
$0 = _vsnprintf($s, $n, $fmt, $ap) | 0;
STACKTOP = sp;
return $0 | 0;
}
function __gcry_mpi_get_opaque($a, $nbits) {
$a = $a | 0;
$nbits = $nbits | 0;
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if (!(HEAP32[$a + 12 >> 2] & 4)) __gcry_log_bug(45787, sp);
if ($nbits) HEAP32[$nbits >> 2] = HEAP32[$a + 8 >> 2];
STACKTOP = sp;
return HEAP32[$a + 16 >> 2] | 0;
}
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;
$0 = __gcry_xcalloc(1, 108) | 0;
_ec_p_init($0, $model, $dialect, $flags, $p, $a, $b);
return $0 | 0;
}
function __gcry_mpi_point_free_parts($p) {
$p = $p | 0;
var $1 = 0, $3 = 0;
__gcry_mpi_free(HEAP32[$p >> 2] | 0);
HEAP32[$p >> 2] = 0;
$1 = $p + 4 | 0;
__gcry_mpi_free(HEAP32[$1 >> 2] | 0);
HEAP32[$1 >> 2] = 0;
$3 = $p + 8 | 0;
__gcry_mpi_free(HEAP32[$3 >> 2] | 0);
HEAP32[$3 >> 2] = 0;
return;
}
function ___stdio_close($f) {
$f = $f | 0;
var $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
$3 = ___syscall_ret(___syscall6(6, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $3 | 0;
}
function __gcry_log($level, $fmt, $varargs) {
$level = $level | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $arg_ptr = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$arg_ptr = sp;
HEAP32[$arg_ptr >> 2] = $varargs;
__gcry_logv($level, $fmt, $arg_ptr);
STACKTOP = sp;
return;
}
function __gcry_mpi_test_bit($a, $n) {
$a = $a | 0;
$n = $n | 0;
var $$0 = 0, $0 = 0;
$0 = $n >>> 5;
if ($0 >>> 0 >= (HEAP32[$a + 4 >> 2] | 0) >>> 0) {
$$0 = 0;
return $$0 | 0;
}
$$0 = (HEAP32[(HEAP32[$a + 16 >> 2] | 0) + ($0 << 2) >> 2] & 1 << ($n & 31) | 0) != 0 & 1;
return $$0 | 0;
}
function _unlink($path) {
$path = $path | 0;
var $1 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = $path;
$1 = ___syscall_ret(___syscall10(10, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $1 | 0;
}
function __gcry_ecc_model2str($model) {
$model = $model | 0;
var $str$0 = 0;
switch ($model | 0) {
case 0:
{
$str$0 = 35457;
break;
}
case 1:
{
$str$0 = 45118;
break;
}
case 2:
{
$str$0 = 35449;
break;
}
default:
$str$0 = 37327;
}
return $str$0 | 0;
}
function _gcry_create_nonce($buffer, $length) {
$buffer = $buffer | 0;
$length = $length | 0;
if (!(__gcry_global_is_operational() | 0)) {
__gcry_fips_signal_error(21454, 1340, 21566, 1, 21487);
__gcry_fips_noreturn();
} else {
__gcry_create_nonce($buffer, $length);
return;
}
}
function _sprintf($s, $fmt, $varargs) {
$s = $s | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $ap = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$ap = sp;
HEAP32[$ap >> 2] = $varargs;
$0 = _vsprintf($s, $fmt, $ap) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _fprintf($f, $fmt, $varargs) {
$f = $f | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $ap = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$ap = sp;
HEAP32[$ap >> 2] = $varargs;
$0 = _vfprintf($f, $fmt, $ap) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _check_exponent($arg, $a) {
$arg = $arg | 0;
$a = $a | 0;
var $0 = 0, $3 = 0;
__gcry_mpi_sub_ui($a, $a, 1);
$0 = __gcry_mpi_alloc_like($a) | 0;
$3 = (__gcry_mpi_gcd($0, $arg, $a) | 0) == 0 & 1;
__gcry_mpi_release($0);
__gcry_mpi_add_ui($a, $a, 1);
return $3 | 0;
}
function _bitshift64Ashr(low, high, bits) {
low = low | 0;
high = high | 0;
bits = bits | 0;
if ((bits | 0) < 32) {
tempRet0 = high >> bits;
return low >>> bits | (high & (1 << bits) - 1) << 32 - bits;
}
tempRet0 = (high | 0) < 0 ? -1 : 0;
return high >> bits - 32 | 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;
return _do_get_buffer($a, $fill_le, $extraalloc, $r_nbytes, $sign, 0) | 0;
}
function _printf($fmt, $varargs) {
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $1 = 0, $ap = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$ap = sp;
HEAP32[$ap >> 2] = $varargs;
$1 = _vfprintf(HEAP32[3822] | 0, $fmt, $ap) | 0;
STACKTOP = sp;
return $1 | 0;
}
function __gcry_private_is_secure($p) {
$p = $p | 0;
var $2 = 0, $3 = 0, $9 = 0;
if (!(HEAP32[17496] | 0)) $9 = 0; else {
$2 = $p;
$3 = HEAP32[17497] | 0;
if ($2 >>> 0 < $3 >>> 0) $9 = 0; else $9 = $2 >>> 0 < ((HEAP32[17498] | 0) + $3 | 0) >>> 0;
}
return $9 & 1 | 0;
}
function __gcry_free($p) {
$p = $p | 0;
var $2 = 0, $3 = 0;
if (!$p) return;
$2 = HEAP32[(___errno_location() | 0) >> 2] | 0;
$3 = HEAP32[17487] | 0;
if (!$3) __gcry_private_free($p); else FUNCTION_TABLE_vi[$3 & 15]($p);
if (!$2) return;
_gpg_err_set_errno($2);
return;
}
function _gcry_md_get_algo($hd) {
$hd = $hd | 0;
var $$0 = 0;
if (!(__gcry_global_is_operational() | 0)) {
__gcry_fips_signal_error(21454, 1198, 21519, 0, 21536);
$$0 = 0;
return $$0 | 0;
} else {
$$0 = __gcry_md_get_algo($hd) | 0;
return $$0 | 0;
}
return 0;
}
function __gcry_set_random_seed_file($name) {
$name = $name | 0;
if (__gcry_fips_mode() | 0) return;
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_set_seed_file($name);
return;
}
if (HEAP32[17522] | HEAP32[17521]) return;
__gcry_rngcsprng_set_seed_file($name);
return;
}
function _rijndael_encrypt($context, $b, $a) {
$context = $context | 0;
$b = $b | 0;
$a = $a | 0;
var $1 = 0;
$1 = HEAP32[$context + 496 >> 2] | 0;
if ($1) FUNCTION_TABLE_v[$1 & 3]();
return FUNCTION_TABLE_iiii[HEAP32[$context + 488 >> 2] & 63]($context, $b, $a) | 0;
}
function __gcry_secmem_get_flags() {
var $14 = 0;
_gpgrt_lock_lock(1192) | 0;
$14 = ((HEAP32[17493] | 0) != 0 ? 2 : 0) | (HEAP32[17492] | 0) != 0 | ((HEAP32[17494] | 0) != 0 ? 8 : 0) | ((HEAP32[17495] | 0) != 0 ? 16 : 0);
_gpgrt_lock_unlock(1192) | 0;
return $14 | 0;
}
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;
return _ocb_crypt($c, 1, $outbuf, $outbuflen, $inbuf, $inbuflen) | 0;
}
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;
return _ocb_crypt($c, 0, $outbuf, $outbuflen, $inbuf, $inbuflen) | 0;
}
function _gcry_mpi_ec_new($r_ctx, $keyparam, $curvename) {
$r_ctx = $r_ctx | 0;
$keyparam = $keyparam | 0;
$curvename = $curvename | 0;
var $0 = 0;
$0 = __gcry_mpi_ec_new($r_ctx, $keyparam, $curvename) | 0;
return (($0 | 0) == 0 ? 0 : $0 & 65535 | 16777216) | 0;
}
function _TALER_WRALL_eddsa_private_key_from_string($priv) {
$priv = $priv | 0;
var $0 = 0, $3 = 0;
$0 = _GNUNET_xmalloc_(32, 18658, 150) | 0;
$3 = (_GNUNET_CRYPTO_eddsa_private_key_from_string($priv, _strlen($priv) | 0, $0) | 0) == 1;
return ($3 ? $0 : 0) | 0;
}
function _bitshift64Shl(low, high, bits) {
low = low | 0;
high = high | 0;
bits = bits | 0;
if ((bits | 0) < 32) {
tempRet0 = high << bits | (low & (1 << bits) - 1 << 32 - bits) >>> 32 - bits;
return low << bits;
}
tempRet0 = low << bits - 32;
return 0;
}
function __gpg_err_set_errno($err) {
$err = $err | 0;
var $0 = 0, $1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $err;
$1 = HEAP32[$0 >> 2] | 0;
HEAP32[(___errno_location() | 0) >> 2] = $1;
STACKTOP = sp;
return;
}
function _gpgrt_lock_destroy($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $lockhd;
$2 = __gpgrt_lock_destroy(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function __gcry_sexp_vbuild($retsexp, $erroff, $format, $arg_ptr) {
$retsexp = $retsexp | 0;
$erroff = $erroff | 0;
$format = $format | 0;
$arg_ptr = $arg_ptr | 0;
return _do_vsexp_sscan($retsexp, $erroff, $format, _strlen($format) | 0, 1, 0, $arg_ptr) | 0;
}
function _gpgrt_lock_unlock($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $lockhd;
$2 = __gpgrt_lock_unlock(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function _gpg_err_code_to_errno($code) {
$code = $code | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $code;
$2 = __gpg_err_code_to_errno(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function _gpg_err_code_from_errno($err) {
$err = $err | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $err;
$2 = __gpg_err_code_from_errno(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function _gcry_pk_testkey($key) {
$key = $key | 0;
var $$0 = 0, $2 = 0;
if (!(__gcry_global_is_operational() | 0)) {
$$0 = 16777392;
return $$0 | 0;
}
$2 = __gcry_pk_testkey($key) | 0;
$$0 = ($2 | 0) == 0 ? 0 : $2 & 65535 | 16777216;
return $$0 | 0;
}
function _bitshift64Lshr(low, high, bits) {
low = low | 0;
high = high | 0;
bits = bits | 0;
if ((bits | 0) < 32) {
tempRet0 = high >>> bits;
return low >>> bits | (high & (1 << bits) - 1) << 32 - bits;
}
tempRet0 = 0;
return high >>> bits - 32 | 0;
}
function __gcry_mpi_sub($w, $u, $v) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
var $0 = 0, $1 = 0;
$0 = __gcry_mpi_copy($v) | 0;
$1 = $0 + 8 | 0;
HEAP32[$1 >> 2] = (HEAP32[$1 >> 2] | 0) == 0 & 1;
__gcry_mpi_add($w, $u, $0);
__gcry_mpi_free($0);
return;
}
function _pss_verify_cmp($opaque, $tmp) {
$opaque = $opaque | 0;
$tmp = $tmp | 0;
return __gcry_rsa_pss_verify(HEAP32[$opaque + 36 >> 2] | 0, $tmp, (HEAP32[$opaque + 4 >> 2] | 0) + -1 | 0, HEAP32[$opaque + 16 >> 2] | 0, HEAP32[$opaque + 28 >> 2] | 0) | 0;
}
function _gpgrt_lock_lock($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $lockhd;
$2 = __gpgrt_lock_lock(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function _gpgrt_lock_init($lockhd) {
$lockhd = $lockhd | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $lockhd;
$2 = __gpgrt_lock_init(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function __gcry_mpi_point_new($nbits) {
$nbits = $nbits | 0;
var $0 = 0;
$0 = __gcry_xmalloc(12) | 0;
HEAP32[$0 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$0 + 4 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$0 + 8 >> 2] = __gcry_mpi_new(0) | 0;
return $0 | 0;
}
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 __gcry_secmem_set_flags($flags) {
$flags = $flags | 0;
_gpgrt_lock_lock(1192) | 0;
HEAP32[17492] = $flags & 1;
HEAP32[17493] = $flags & 2;
HEAP32[17494] = $flags & 8;
HEAP32[17495] = $flags & 16;
_gpgrt_lock_unlock(1192) | 0;
return;
}
function __gcry_update_random_seed_file() {
if (__gcry_fips_mode() | 0) return;
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_update_seed_file();
return;
}
if (HEAP32[17522] | HEAP32[17521]) return;
__gcry_rngcsprng_update_seed_file();
return;
}
function _iswalpha($wc) {
$wc = $wc | 0;
var $$0 = 0;
if ($wc >>> 0 < 131072) $$0 = (HEAPU8[63120 + ((HEAPU8[63120 + ($wc >>> 8) >> 0] | 0) << 5 | $wc >>> 3 & 31) >> 0] | 0) >>> ($wc & 7) & 1; else $$0 = $wc >>> 0 < 196606 & 1;
return $$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 & 1](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0);
}
function _GNUNET_CRYPTO_rsa_blinding_key_create($len) {
$len = $len | 0;
var $0 = 0, $1 = 0;
$0 = _GNUNET_xmalloc_(4, 20567, 405) | 0;
$1 = _gcry_mpi_new($len) | 0;
HEAP32[$0 >> 2] = $1;
_gcry_mpi_randomize($1, $len, 1);
return $0 | 0;
}
function _gpg_strerror($err) {
$err = $err | 0;
var $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $err;
$2 = __gpg_strerror(HEAP32[$0 >> 2] | 0) | 0;
STACKTOP = sp;
return $2 | 0;
}
function _TALER_WRALL_ecc_ecdh($priv, $pub) {
$priv = $priv | 0;
$pub = $pub | 0;
var $0 = 0, $2 = 0;
$0 = _GNUNET_xmalloc_(64, 18658, 128) | 0;
$2 = (_GNUNET_CRYPTO_ecc_ecdh($priv, $pub, $0) | 0) == -1;
return ($2 ? 0 : $0) | 0;
}
function _TALER_WRALL_get_current_time() {
var $0 = 0, $1 = 0, $3 = 0;
$0 = _GNUNET_xmalloc_(8, 18658, 46) | 0;
$1 = _GNUNET_TIME_absolute_get() | 0;
$3 = $0;
HEAP32[$3 >> 2] = $1;
HEAP32[$3 + 4 >> 2] = tempRet0;
return $0 | 0;
}
function runPostSets() {}
function _i64Subtract(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var h = 0;
h = b - d >>> 0;
h = b - d - (c >>> 0 > a >>> 0 | 0) >>> 0;
return (tempRet0 = h, a - c >>> 0 | 0) | 0;
}
function _twofish_setkey($context, $key, $keylen) {
$context = $context | 0;
$key = $key | 0;
$keylen = $keylen | 0;
var $0 = 0;
$0 = _do_twofish_setkey($context, $key, $keylen) | 0;
___gcry_burn_stack(47);
return $0 | 0;
}
function __gcry_fast_random_poll() {
if (__gcry_fips_mode() | 0) return;
if (HEAP32[17520] | 0) {
__gcry_rngcsprng_fast_poll();
return;
}
if (HEAP32[17522] | HEAP32[17521]) return;
__gcry_rngcsprng_fast_poll();
return;
}
function _iswpunct($wc) {
$wc = $wc | 0;
var $$0 = 0;
if ($wc >>> 0 < 131072) $$0 = (HEAPU8[66096 + ((HEAPU8[66096 + ($wc >>> 8) >> 0] | 0) << 5 | $wc >>> 3 & 31) >> 0] | 0) >>> ($wc & 7) & 1; else $$0 = 0;
return $$0 | 0;
}
function __gcry_mpi_divisible_ui($dividend, $divisor) {
$dividend = $dividend | 0;
$divisor = $divisor | 0;
return (__gcry_mpih_mod_1(HEAP32[$dividend + 16 >> 2] | 0, HEAP32[$dividend + 4 >> 2] | 0, $divisor) | 0) == 0 | 0;
}
function _gpg_err_set_errno($err) {
$err = $err | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $err;
__gpg_err_set_errno(HEAP32[$0 >> 2] | 0);
STACKTOP = sp;
return;
}
function _gcry_sexp_sprint($sexp, $mode, $buffer, $maxlength) {
$sexp = $sexp | 0;
$mode = $mode | 0;
$buffer = $buffer | 0;
$maxlength = $maxlength | 0;
return __gcry_sexp_sprint($sexp, $mode, $buffer, $maxlength) | 0;
}
function __gcry_random_is_faked() {
var $$0 = 0;
if (!(__gcry_fips_mode() | 0)) {
$$0 = __gcry_rngcsprng_is_faked() | 0;
return $$0 | 0;
} else {
$$0 = __gcry_rngfips_is_faked() | 0;
return $$0 | 0;
}
return 0;
}
function _TALER_WRALL_make_eddsa_signature($priv, $purp) {
$priv = $priv | 0;
$purp = $purp | 0;
var $0 = 0;
$0 = _GNUNET_xmalloc_(64, 18658, 1226) | 0;
_GNUNET_CRYPTO_eddsa_sign($priv, $purp, $0) | 0;
return $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 & 15](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 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;
return _do_get_buffer($a, $fill_le, 0, $r_nbytes, $sign, 0) | 0;
}
function _gcry_mpi_ec_get_affine($x, $y, $point, $ctx) {
$x = $x | 0;
$y = $y | 0;
$point = $point | 0;
$ctx = $ctx | 0;
return __gcry_mpi_ec_get_affine($x, $y, $point, __gcry_ctx_get_pointer($ctx, 1) | 0) | 0;
}
function _gcry_md_write($hd, $buffer, $length) {
$hd = $hd | 0;
$buffer = $buffer | 0;
$length = $length | 0;
if (!(__gcry_global_is_operational() | 0)) return;
__gcry_md_write($hd, $buffer, $length);
return;
}
function __gcry_random_selftest($report) {
$report = $report | 0;
var $$0 = 0;
if (!(__gcry_fips_mode() | 0)) {
$$0 = 0;
return $$0 | 0;
}
$$0 = __gcry_rngfips_selftest($report) | 0;
return $$0 | 0;
}
function __gcry_random_bytes_secure($nbytes, $level) {
$nbytes = $nbytes | 0;
$level = $level | 0;
var $0 = 0;
$0 = __gcry_xmalloc_secure($nbytes) | 0;
_do_randomize($0, $nbytes, $level);
return $0 | 0;
}
function __gcry_use_random_daemon($onoff) {
$onoff = $onoff | 0;
var $$0 = 0;
if (__gcry_fips_mode() | 0) {
$$0 = 0;
return $$0 | 0;
}
$$0 = __gcry_rngcsprng_use_daemon($onoff) | 0;
return $$0 | 0;
}
function _wcslen($s) {
$s = $s | 0;
var $$0 = 0, $$0$lcssa = 0;
$$0 = $s;
while (1) if (!(HEAP32[$$0 >> 2] | 0)) {
$$0$lcssa = $$0;
break;
} else $$0 = $$0 + 4 | 0;
return $$0$lcssa - $s >> 2 | 0;
}
function _TALER_WRALL_ecdhe_public_key_from_private_key($priv) {
$priv = $priv | 0;
var $0 = 0;
$0 = _GNUNET_xmalloc_(32, 18658, 113) | 0;
_GNUNET_CRYPTO_ecdhe_key_get_public($priv, $0);
return $0 | 0;
}
function __gcry_gettext($key) {
$key = $key | 0;
var $$0 = 0, $0 = 0;
$0 = HEAP32[17472] | 0;
if (!$0) {
$$0 = $key;
return $$0 | 0;
}
$$0 = FUNCTION_TABLE_ii[$0 & 15]($key) | 0;
return $$0 | 0;
}
function _gpg_err_code($err) {
$err = $err | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = sp;
HEAP32[$0 >> 2] = $err;
STACKTOP = sp;
return HEAP32[$0 >> 2] & 65535 | 0;
}
function __gcry_set_progress_handler($cb, $cb_data) {
$cb = $cb | 0;
$cb_data = $cb_data | 0;
__gcry_register_primegen_progress($cb, $cb_data);
__gcry_register_random_progress($cb, $cb_data);
return;
}
function _TALER_WRALL_eddsa_public_key_from_private($priv) {
$priv = $priv | 0;
var $0 = 0;
$0 = _GNUNET_xmalloc_(32, 18658, 192) | 0;
_GNUNET_CRYPTO_eddsa_key_get_public($priv, $0);
return $0 | 0;
}
function dynCall_iiiii(index, a1, a2, a3, a4) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
a4 = a4 | 0;
return FUNCTION_TABLE_iiiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0) | 0;
}
function _iswcntrl($wc) {
$wc = $wc | 0;
var $8 = 0;
if (($wc & -2 | 0) == 8232 | ($wc >>> 0 < 32 | ($wc + -127 | 0) >>> 0 < 33)) $8 = 1; else $8 = ($wc + -65529 | 0) >>> 0 < 3;
return $8 & 1 | 0;
}
function __gcry_secmem_malloc($size) {
$size = $size | 0;
var $0 = 0;
_gpgrt_lock_lock(1192) | 0;
$0 = __gcry_secmem_malloc_internal($size) | 0;
_gpgrt_lock_unlock(1192) | 0;
return $0 | 0;
}
function __gcry_random_bytes($nbytes, $level) {
$nbytes = $nbytes | 0;
$level = $level | 0;
var $0 = 0;
$0 = __gcry_xmalloc($nbytes) | 0;
_do_randomize($0, $nbytes, $level);
return $0 | 0;
}
function __gcry_mpi_point_init($p) {
$p = $p | 0;
HEAP32[$p >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$p + 4 >> 2] = __gcry_mpi_new(0) | 0;
HEAP32[$p + 8 >> 2] = __gcry_mpi_new(0) | 0;
return;
}
function __gcry_mpi_ec_get_mpi($name, $ctx, $copy) {
$name = $name | 0;
$ctx = $ctx | 0;
$copy = $copy | 0;
return __gcry_ecc_get_mpi($name, __gcry_ctx_get_pointer($ctx, 1) | 0, $copy) | 0;
}
function __gcry_rngfips_deinit_external_test($context) {
$context = $context | 0;
if (!$context) return;
__gcry_cipher_close(HEAP32[$context + 4 >> 2] | 0);
__gcry_free($context);
return;
}
function __gcry_rngcsprng_set_seed_file($name) {
$name = $name | 0;
if (!(HEAP32[17559] | 0)) {
HEAP32[17559] = __gcry_xstrdup($name) | 0;
return;
} else __gcry_bug(50062, 673, 50412);
}
function _DEBUG_WR_get_purpose($test) {
$test = $test | 0;
return _ntohl(HEAPU8[$test >> 0] | HEAPU8[$test + 1 >> 0] << 8 | HEAPU8[$test + 2 >> 0] << 16 | HEAPU8[$test + 3 >> 0] << 24) | 0;
}
function __gcry_mpi_ec_get_point($name, $ctx, $copy) {
$name = $name | 0;
$ctx = $ctx | 0;
$copy = $copy | 0;
return __gcry_ecc_get_point($name, __gcry_ctx_get_pointer($ctx, 1) | 0) | 0;
}
function _TALER_WRALL_hash($buf, $size) {
$buf = $buf | 0;
$size = $size | 0;
var $0 = 0;
$0 = _GNUNET_xmalloc_(64, 18658, 64) | 0;
_GNUNET_CRYPTO_hash($buf, $size, $0);
return $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 & 1](a1 | 0, a2 | 0, a3 | 0, a4 | 0);
}
function _gcry_mpi_ec_mul($w, $n, $u, $ctx) {
$w = $w | 0;
$n = $n | 0;
$u = $u | 0;
$ctx = $ctx | 0;
__gcry_mpi_ec_mul_point($w, $n, $u, __gcry_ctx_get_pointer($ctx, 1) | 0);
return;
}
function _TALER_WRALL_rsa_public_key_hash($key) {
$key = $key | 0;
var $0 = 0;
$0 = _GNUNET_xmalloc_(64, 18658, 615) | 0;
_GNUNET_CRYPTO_rsa_public_key_hash($key, $0);
return $0 | 0;
}
function __gcry_sexp_cadr($list) {
$list = $list | 0;
var $0 = 0, $1 = 0;
$0 = __gcry_sexp_cdr($list) | 0;
$1 = __gcry_sexp_nth($0, 0) | 0;
__gcry_sexp_release($0);
return $1 | 0;
}
function ___syscall_ret($r) {
$r = $r | 0;
var $$0 = 0;
if ($r >>> 0 > 4294963200) {
HEAP32[(___errno_location() | 0) >> 2] = 0 - $r;
$$0 = -1;
} else $$0 = $r;
return $$0 | 0;
}
function _gcry_sexp_nth_mpi($list, $number, $mpifmt) {
$list = $list | 0;
$number = $number | 0;
$mpifmt = $mpifmt | 0;
return __gcry_sexp_nth_mpi($list, $number, $mpifmt) | 0;
}
function __gcry_mpi_mod($rem, $dividend, $divisor) {
$rem = $rem | 0;
$dividend = $dividend | 0;
$divisor = $divisor | 0;
__gcry_mpi_fdiv_r($rem, $dividend, $divisor);
return;
}
function _i64Add(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var l = 0;
l = a + c >>> 0;
return (tempRet0 = b + d + (l >>> 0 < a >>> 0 | 0) >>> 0, l | 0) | 0;
}
function __gcry_log_printhex($text, $buffer, $length) {
$text = $text | 0;
$buffer = $buffer | 0;
$length = $length | 0;
_do_printhex($text, 21782, $buffer, $length);
return;
}
function __gcry_random_deinit_external_test($context) {
$context = $context | 0;
if (!(__gcry_fips_mode() | 0)) return;
__gcry_rngfips_deinit_external_test($context);
return;
}
function _GNUNET_CRYPTO_hash_context_read($hc, $buf, $size) {
$hc = $hc | 0;
$buf = $buf | 0;
$size = $size | 0;
_gcry_md_write(HEAP32[$hc >> 2] | 0, $buf, $size);
return;
}
function _gcry_sexp_find_token($list, $tok, $toklen) {
$list = $list | 0;
$tok = $tok | 0;
$toklen = $toklen | 0;
return __gcry_sexp_find_token($list, $tok, $toklen) | 0;
}
function __gcry_randomize($buffer, $length, $level) {
$buffer = $buffer | 0;
$length = $length | 0;
$level = $level | 0;
_do_randomize($buffer, $length, $level);
return;
}
function _GNUNET_TIME_absolute_hton($a) {
$a = $a | 0;
var $0 = 0, $6 = 0;
$0 = $a;
$6 = _GNUNET_htonll(HEAP32[$0 >> 2] | 0, HEAP32[$0 + 4 >> 2] | 0) | 0;
return $6 | 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 & 63](a1 | 0, a2 | 0, a3 | 0) | 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;
return ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0;
}
function _strchr($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $0 = 0;
$0 = ___strchrnul($s, $c) | 0;
return ((HEAP8[$0 >> 0] | 0) == ($c & 255) << 24 >> 24 ? $0 : 0) | 0;
}
function _run_selftests_1821($algo, $extended, $report) {
$algo = $algo | 0;
$extended = $extended | 0;
$report = $report | 0;
return (($algo | 0) == 18 ? 0 : 4) | 0;
}
function __gcry_rngcsprng_initialize($full) {
$full = $full | 0;
if ($full) {
_initialize();
return;
}
if (HEAP32[17541] | 0) return;
HEAP32[17541] = 1;
return;
}
function _rijndael_setkey($context, $key, $keylen) {
$context = $context | 0;
$key = $key | 0;
$keylen = $keylen | 0;
return _do_setkey($context, $key, $keylen) | 0;
}
function _gcry_mpi_ec_get_point($name, $ctx, $copy) {
$name = $name | 0;
$ctx = $ctx | 0;
$copy = $copy | 0;
return __gcry_mpi_ec_get_point($name, $ctx, $copy) | 0;
}
function __gcry_mpi_mulm($w, $u, $v, $m) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
$m = $m | 0;
__gcry_mpi_mul($w, $u, $v);
__gcry_mpi_tdiv_r($w, $w, $m);
return;
}
function _GNUNET_CRYPTO_hash($block, $size, $ret) {
$block = $block | 0;
$size = $size | 0;
$ret = $ret | 0;
_gcry_md_hash_buffer(10, $ret, $block, $size);
return;
}
function __gcry_mpi_addm($w, $u, $v, $m) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
$m = $m | 0;
__gcry_mpi_add($w, $u, $v);
__gcry_mpi_mod($w, $w, $m);
return;
}
function _gcry_mpi_ec_get_mpi($name, $ctx, $copy) {
$name = $name | 0;
$ctx = $ctx | 0;
$copy = $copy | 0;
return __gcry_mpi_ec_get_mpi($name, $ctx, $copy) | 0;
}
function _GNUNET_CRYPTO_rsa_blinding_key_free($bkey) {
$bkey = $bkey | 0;
_gcry_mpi_release(HEAP32[$bkey >> 2] | 0);
_GNUNET_xfree_($bkey, 20567, 564);
return;
}
function dynCall_viii(index, a1, a2, a3) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
FUNCTION_TABLE_viii[index & 7](a1 | 0, a2 | 0, a3 | 0);
}
function __gcry_divide_by_zero() {
_gpg_err_set_errno(33);
__gcry_fatal_error(_gpg_err_code_from_errno(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0, 21833);
}
function _iswxdigit($wc) {
$wc = $wc | 0;
var $6 = 0;
if (($wc + -48 | 0) >>> 0 < 10) $6 = 1; else $6 = (($wc | 32) + -97 | 0) >>> 0 < 6;
return $6 & 1 | 0;
}
function _gcry_mpi_randomize($w, $nbits, $level) {
$w = $w | 0;
$nbits = $nbits | 0;
$level = $level | 0;
__gcry_mpi_randomize($w, $nbits, $level);
return;
}
function _geteuid() {
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = ___syscall201(201, sp | 0) | 0;
STACKTOP = sp;
return $0 | 0;
}
function __gcry_register_primegen_progress($cb, $cb_data) {
$cb = $cb | 0;
$cb_data = $cb_data | 0;
HEAP32[17511] = $cb;
HEAP32[17512] = $cb_data;
return;
}
function stackAlloc(size) {
size = size | 0;
var ret = 0;
ret = STACKTOP;
STACKTOP = STACKTOP + size | 0;
STACKTOP = STACKTOP + 15 & -16;
return ret | 0;
}
function _getuid() {
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = ___syscall199(199, sp | 0) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _GNUNET_htonll($0, $1) {
$0 = $0 | 0;
$1 = $1 | 0;
var $2 = 0, $3 = 0;
$2 = _htonl($0) | 0;
$3 = _htonl($1) | 0;
tempRet0 = $2;
return $3 | 0;
}
function _GNUNET_CRYPTO_rsa_private_key_free($key) {
$key = $key | 0;
_gcry_sexp_release(HEAP32[$key >> 2] | 0);
_GNUNET_xfree_($key, 20567, 178);
return;
}
function _getppid() {
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = ___syscall64(64, sp | 0) | 0;
STACKTOP = sp;
return $0 | 0;
}
function __gcry_register_random_progress($cb, $cb_data) {
$cb = $cb | 0;
$cb_data = $cb_data | 0;
HEAP32[17517] = $cb;
HEAP32[17518] = $cb_data;
return;
}
function ___errno_location() {
var $$0 = 0;
if (!(HEAP32[17591] | 0)) $$0 = 70408; else $$0 = HEAP32[(_pthread_self() | 0) + 60 >> 2] | 0;
return $$0 | 0;
}
function _GNUNET_CRYPTO_rsa_public_key_free($key) {
$key = $key | 0;
_gcry_sexp_release(HEAP32[$key >> 2] | 0);
_GNUNET_xfree_($key, 20567, 294);
return;
}
function _getpid() {
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$0 = ___syscall20(20, sp | 0) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _GNUNET_CRYPTO_rsa_signature_free($sig) {
$sig = $sig | 0;
_gcry_sexp_release(HEAP32[$sig >> 2] | 0);
_GNUNET_xfree_($sig, 20567, 803);
return;
}
function __gcry_get_debug_flag($mask) {
$mask = $mask | 0;
var $1 = 0;
$1 = (__gcry_fips_mode() | 0) == 0;
return ($1 ? HEAP32[17480] & $mask : 0) | 0;
}
function _isxdigit($c) {
$c = $c | 0;
var $4 = 0;
if (($c + -48 | 0) >>> 0 < 10) $4 = 1; else $4 = (($c | 32) + -97 | 0) >>> 0 < 6;
return $4 & 1 | 0;
}
function __gcry_mpi_immutable_failed() {
var sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
__gcry_log_info(45711, sp);
STACKTOP = sp;
return;
}
function _strtoul($s, $p, $base) {
$s = $s | 0;
$p = $p | 0;
$base = $base | 0;
var $0 = 0;
$0 = _strtox($s, $p, $base, -1, 0) | 0;
return $0 | 0;
}
function establishStackSpace(stackBase, stackMax) {
stackBase = stackBase | 0;
stackMax = stackMax | 0;
STACKTOP = stackBase;
STACK_MAX = stackMax;
}
function __gcry_mpi_tdiv_r($rem, $num, $den) {
$rem = $rem | 0;
$num = $num | 0;
$den = $den | 0;
__gcry_mpi_tdiv_qr(0, $rem, $num, $den);
return;
}
function __gcry_secmem_free($a) {
$a = $a | 0;
_gpgrt_lock_lock(1192) | 0;
__gcry_secmem_free_internal($a);
_gpgrt_lock_unlock(1192) | 0;
return;
}
function __gcry_ecc_dialect2str($dialect) {
$dialect = $dialect | 0;
return (($dialect | 0) == 0 ? 35477 : ($dialect | 0) == 1 ? 35469 : 37327) | 0;
}
function __gcry_md_write($hd, $inbuf, $inlen) {
$hd = $hd | 0;
$inbuf = $inbuf | 0;
$inlen = $inlen | 0;
_md_write($hd, $inbuf, $inlen);
return;
}
function _gcry_set_progress_handler($cb, $cb_data) {
$cb = $cb | 0;
$cb_data = $cb_data | 0;
__gcry_set_progress_handler($cb, $cb_data);
return;
}
function _iswgraph($wc) {
$wc = $wc | 0;
var $5 = 0;
if (!(_iswspace($wc) | 0)) $5 = (_iswprint($wc) | 0) != 0; else $5 = 0;
return $5 & 1 | 0;
}
function _iswalnum($wc) {
$wc = $wc | 0;
var $5 = 0;
if (!(_iswdigit($wc) | 0)) $5 = (_iswalpha($wc) | 0) != 0; else $5 = 1;
return $5 & 1 | 0;
}
function __gcry_rngsystem_initialize($full) {
$full = $full | 0;
if (HEAP32[17581] | 0) return;
HEAP32[17581] = 1;
HEAP32[17582] = 0;
return;
}
function dynCall_iii(index, a1, a2) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
return FUNCTION_TABLE_iii[index & 7](a1 | 0, a2 | 0) | 0;
}
function _wctomb($s, $wc) {
$s = $s | 0;
$wc = $wc | 0;
var $$0 = 0;
if (!$s) $$0 = 0; else $$0 = _wcrtomb($s, $wc, 0) | 0;
return $$0 | 0;
}
function _gcry_mpi_powm($w, $b, $e, $m) {
$w = $w | 0;
$b = $b | 0;
$e = $e | 0;
$m = $m | 0;
__gcry_mpi_powm($w, $b, $e, $m);
return;
}
function _gcry_mpi_mulm($w, $u, $v, $m) {
$w = $w | 0;
$u = $u | 0;
$v = $v | 0;
$m = $m | 0;
__gcry_mpi_mulm($w, $u, $v, $m);
return;
}
function setThrew(threw, value) {
threw = threw | 0;
value = value | 0;
if (!__THREW__) {
__THREW__ = threw;
threwValue = value;
}
}
function _TALER_WR_get_value($a) {
$a = $a | 0;
var $0 = 0;
$0 = $a;
tempRet0 = HEAP32[$0 + 4 >> 2] | 0;
return HEAP32[$0 >> 2] | 0;
}
function _iswspace($wc) {
$wc = $wc | 0;
var $4 = 0;
if (!$wc) $4 = 0; else $4 = (_wcschr(15628, $wc) | 0) != 0;
return $4 & 1 | 0;
}
function __gcry_secmem_init($n) {
$n = $n | 0;
_gpgrt_lock_lock(1192) | 0;
_secmem_init($n);
_gpgrt_lock_unlock(1192) | 0;
return;
}
function _vsprintf($s, $fmt, $ap) {
$s = $s | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
return _vsnprintf($s, 2147483647, $fmt, $ap) | 0;
}
function dynCall_vii(index, a1, a2) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
FUNCTION_TABLE_vii[index & 7](a1 | 0, a2 | 0);
}
function __gcry_set_random_daemon_socket($socketname) {
$socketname = $socketname | 0;
if (__gcry_fips_mode() | 0) return;
return;
}
function b8(p0, p1, p2, p3, p4, p5) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
p4 = p4 | 0;
p5 = p5 | 0;
abort(8);
}
function __gcry_random_dump_stats() {
if (!(__gcry_fips_mode() | 0)) {
__gcry_rngcsprng_dump_stats();
return;
} else return;
}
function _GNUNET_TIME_get_offset() {
var $0 = 0;
$0 = 69816;
tempRet0 = HEAP32[$0 + 4 >> 2] | 0;
return HEAP32[$0 >> 2] | 0;
}
function _llvm_bswap_i32(x) {
x = x | 0;
return (x & 255) << 24 | (x >> 8 & 255) << 16 | (x >> 16 & 255) << 8 | x >>> 24 | 0;
}
function __gcry_enable_quick_random_gen() {
if (__gcry_fips_mode() | 0) return;
__gcry_rngcsprng_enable_quick_gen();
return;
}
function _gcry_mpi_get_opaque($a, $nbits) {
$a = $a | 0;
$nbits = $nbits | 0;
return __gcry_mpi_get_opaque($a, $nbits) | 0;
}
function _gcry_check_version($req_version) {
$req_version = $req_version | 0;
return __gcry_check_version($req_version) | 0;
}
function __gcry_global_is_operational() {
if (!(HEAP32[17478] | 0)) _global_init();
return __gcry_fips_is_operational() | 0;
}
function __gcry_mpi_ec_free($ctx) {
$ctx = $ctx | 0;
if (!$ctx) return;
_ec_deinit($ctx);
__gcry_free($ctx);
return;
}
function _gcry_mpi_invm($x, $a, $m) {
$x = $x | 0;
$a = $a | 0;
$m = $m | 0;
return __gcry_mpi_invm($x, $a, $m) | 0;
}
function ___synccall($func, $ctx) {
$func = $func | 0;
$ctx = $ctx | 0;
FUNCTION_TABLE_vi[$func & 15]($ctx);
return;
}
function __gcry_secure_random_alloc() {
if (__gcry_fips_mode() | 0) return;
__gcry_rngcsprng_secure_alloc();
return;
}
function _strncpy($d, $s, $n) {
$d = $d | 0;
$s = $s | 0;
$n = $n | 0;
___stpncpy($d, $s, $n) | 0;
return $d | 0;
}
function _gcry_mpi_get_flag($a, $flag) {
$a = $a | 0;
$flag = $flag | 0;
return __gcry_mpi_get_flag($a, $flag) | 0;
}
function __gcry_pk_util_free_encoding_ctx($ctx) {
$ctx = $ctx | 0;
__gcry_free(HEAP32[$ctx + 20 >> 2] | 0);
return;
}
function dynCall_ii(index, a1) {
index = index | 0;
a1 = a1 | 0;
return FUNCTION_TABLE_ii[index & 15](a1 | 0) | 0;
}
function _strcpy($dest, $src) {
$dest = $dest | 0;
$src = $src | 0;
___stpcpy($dest, $src) | 0;
return $dest | 0;
}
function b1(p0, p1, p2, p3, p4) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
p4 = p4 | 0;
abort(1);
}
function _toupper($c) {
$c = $c | 0;
var $1 = 0;
$1 = (_islower($c) | 0) == 0;
return ($1 ? $c : $c & 95) | 0;
}
function _tolower($c) {
$c = $c | 0;
var $1 = 0;
$1 = (_isupper($c) | 0) == 0;
return ($1 ? $c : $c | 32) | 0;
}
function _strrchr($s, $c) {
$s = $s | 0;
$c = $c | 0;
return ___memrchr($s, $c, (_strlen($s) | 0) + 1 | 0) | 0;
}
function _iswlower($wc) {
$wc = $wc | 0;
return (($wc | 0) == 223 | (_towupper($wc) | 0) != ($wc | 0)) & 1 | 0;
}
function _fputs($s, $f) {
$s = $s | 0;
$f = $f | 0;
return (_fwrite($s, _strlen($s) | 0, 1, $f) | 0) + -1 | 0;
}
function _gcry_md_read($hd, $algo) {
$hd = $hd | 0;
$algo = $algo | 0;
return __gcry_md_read($hd, $algo) | 0;
}
function _srandom($seed) {
$seed = $seed | 0;
___lock(70412);
___srandom($seed);
___unlock(70412);
return;
}
function __gpgrt_es_init() {
if (HEAP32[17587] | 0) return 0;
HEAP32[17587] = 1;
_atexit(3) | 0;
return 0;
}
function __gcry_log_verbosity($level) {
$level = $level | 0;
return (HEAP32[17477] | 0) >= ($level | 0) | 0;
}
function _gcry_mpi_point_release($point) {
$point = $point | 0;
__gcry_mpi_point_release($point);
return;
}
function b7(p0, p1, p2, p3) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
abort(7);
return 0;
}
function dynCall_vi(index, a1) {
index = index | 0;
a1 = a1 | 0;
FUNCTION_TABLE_vi[index & 15](a1 | 0);
}
function _gcry_md_get_algo_dlen($algo) {
$algo = $algo | 0;
return __gcry_md_get_algo_dlen($algo) | 0;
}
function _cleanup_115($p) {
$p = $p | 0;
if (!(HEAP32[$p + 68 >> 2] | 0)) ___unlockfile($p);
return;
}
function _gcry_mpi_point_new($nbits) {
$nbits = $nbits | 0;
return __gcry_mpi_point_new($nbits) | 0;
}
function _cleanup_92($p) {
$p = $p | 0;
if (!(HEAP32[$p + 68 >> 2] | 0)) ___unlockfile($p);
return;
}
function __gcry_enforced_fips_mode() {
return ((HEAP32[17504] | 0) == 1 ? 0 : HEAP32[17505] | 0) | 0;
}
function __gcry_rndhw_poll_slow($add, $origin) {
$add = $add | 0;
$origin = $origin | 0;
return 0;
}
function _TALER_WR_GNUNET_free($ptr) {
$ptr = $ptr | 0;
_GNUNET_xfree_($ptr, 18658, 217);
return;
}
function __gcry_set_log_verbosity($level) {
$level = $level | 0;
HEAP32[17477] = $level;
return;
}
function __gcry_rngcsprng_set_daemon_socket($socketname) {
$socketname = $socketname | 0;
return;
}
function __gcry_rndhw_poll_fast($add, $origin) {
$add = $add | 0;
$origin = $origin | 0;
return;
}
function b10(p0, p1, p2, p3) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
abort(10);
}
function _isspace($c) {
$c = $c | 0;
return (($c | 0) == 32 | ($c + -9 | 0) >>> 0 < 5) & 1 | 0;
}
function _do_deinit() {
__gpgrt_fflush(0) | 0;
HEAP32[17588] = 0;
HEAP32[17589] = 0;
return;
}
function _gcry_sexp_release($sexp) {
$sexp = $sexp | 0;
__gcry_sexp_release($sexp);
return;
}
function _gcry_sexp_cadr($list) {
$list = $list | 0;
return __gcry_sexp_cadr($list) | 0;
}
function _gcry_mpi_new($nbits) {
$nbits = $nbits | 0;
return __gcry_mpi_new($nbits) | 0;
}
function b0(p0, p1, p2) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
abort(0);
return 0;
}
function _iswupper($wc) {
$wc = $wc | 0;
return (_towlower($wc) | 0) != ($wc | 0) | 0;
}
function _gcry_ctx_release($ctx) {
$ctx = $ctx | 0;
__gcry_ctx_release($ctx);
return;
}
function _isblank($c) {
$c = $c | 0;
return (($c | 0) == 32 | ($c | 0) == 9) & 1 | 0;
}
function _gpg_err_code_from_syserror() {
return __gpg_err_code_from_syserror() | 0;
}
function _TALER_WR_get_fraction($a) {
$a = $a | 0;
return HEAP32[$a + 8 >> 2] | 0;
}
function _GNUNET_CRYPTO_random_fini() {
_gcry_set_progress_handler(0, 0);
return;
}
function _setuid($uid) {
$uid = $uid | 0;
return ___setxid(213, $uid, 0, 0) | 0;
}
function _gcry_strerror($err) {
$err = $err | 0;
return _gpg_strerror($err) | 0;
}
function _gcry_cipher_close($h) {
$h = $h | 0;
__gcry_cipher_close($h);
return;
}
function _sha512_read($context) {
$context = $context | 0;
return $context | 0;
}
function _sha256_read($context) {
$context = $context | 0;
return $context | 0;
}
function _rmd160_read($context) {
$context = $context | 0;
return $context | 0;
}
function _iswdigit($wc) {
$wc = $wc | 0;
return ($wc + -48 | 0) >>> 0 < 10 | 0;
}
function __gcry_rngcsprng_is_faked() {
_initialize();
return HEAP32[17555] | 0;
}
function _gcry_mpi_release($a) {
$a = $a | 0;
__gcry_mpi_release($a);
return;
}
function dynCall_v(index) {
index = index | 0;
FUNCTION_TABLE_v[index & 3]();
}
function _sha1_read($context) {
$context = $context | 0;
return $context | 0;
}
function _frexpl($x, $e) {
$x = +$x;
$e = $e | 0;
return +(+_frexp($x, $e));
}
function __gcry_rngcsprng_use_daemon($onoff) {
$onoff = $onoff | 0;
return 0;
}
function b5(p0, p1, p2) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
abort(5);
}
function _gcry_md_reset($hd) {
$hd = $hd | 0;
__gcry_md_reset($hd);
return;
}
function _gcry_md_close($hd) {
$hd = $hd | 0;
__gcry_md_close($hd);
return;
}
function __gcry_mpi_release($a) {
$a = $a | 0;
__gcry_mpi_free($a);
return;
}
function _isupper($c) {
$c = $c | 0;
return ($c + -65 | 0) >>> 0 < 26 | 0;
}
function _islower($c) {
$c = $c | 0;
return ($c + -97 | 0) >>> 0 < 26 | 0;
}
function __gcry_rngcsprng_enable_quick_gen() {
HEAP32[17555] = 1;
return;
}
function _GNUNET_TIME_relative_get_forever_() {
tempRet0 = -1;
return -1;
}
function _GNUNET_TIME_absolute_get_forever_() {
tempRet0 = -1;
return -1;
}
function _towupper($wc) {
$wc = $wc | 0;
return ___towcase($wc, 0) | 0;
}
function _towlower($wc) {
$wc = $wc | 0;
return ___towcase($wc, 1) | 0;
}
function __gcry_md_close($hd) {
$hd = $hd | 0;
_md_close($hd);
return;
}
function _GNUNET_util_cl_init() {
HEAP32[17465] = HEAP32[3824];
return;
}
function _ntohl($n) {
$n = $n | 0;
return _llvm_bswap_i32($n | 0) | 0;
}
function _htonl($n) {
$n = $n | 0;
return _llvm_bswap_i32($n | 0) | 0;
}
function _TALER_WR_get_currency($a) {
$a = $a | 0;
return $a + 12 | 0;
}
function b9(p0, p1) {
p0 = p0 | 0;
p1 = p1 | 0;
abort(9);
return 0;
}
function __gcry_set_enforced_fips_mode() {
HEAP32[17505] = 1;
return;
}
function __gcry_rngcsprng_secure_alloc() {
HEAP32[17554] = 1;
return;
}
function __gcry_private_enable_m_guard() {
HEAP32[17491] = 1;
return;
}
function setTempRet0(value) {
value = value | 0;
tempRet0 = value;
}
function _iswblank($wc) {
$wc = $wc | 0;
return _isblank($wc) | 0;
}
function _unlock_list() {
__gpgrt_lock_unlock(12664) | 0;
return;
}
function _gcry_free($a) {
$a = $a | 0;
__gcry_free($a);
return;
}
function _lock_list() {
__gpgrt_lock_lock(12664) | 0;
return;
}
function _TALER_WR_hello_world() {
_puts(18818) | 0;
return;
}
function stackRestore(top) {
top = top | 0;
STACKTOP = top;
}
function __gcry_rndhw_failed_p() {
return HEAP32[17586] | 0;
}
function __gcry_fips_noreturn() {
_fflush(0) | 0;
_abort();
}
function b3(p0, p1) {
p0 = p0 | 0;
p1 = p1 | 0;
abort(3);
}
function __gcry_fips_mode() {
return HEAP32[17504] ^ 1 | 0;
}
function _GNUNET_get_log_skip() {
return HEAP32[17464] | 0;
}
function _real_init() {
__gpgrt_es_init() | 0;
return;
}
function _gpg_err_init() {
return __gpg_err_init() | 0;
}
function __gcry_compat_identification() {
return 45962;
}
function b4(p0) {
p0 = p0 | 0;
abort(4);
return 0;
}
function __gpg_err_init() {
_real_init();
return 0;
}
function __gcry_mpi_get_hw_config() {
return 45567;
}
function ___unlockfile($f) {
$f = $f | 0;
return;
}
function ___lockfile($f) {
$f = $f | 0;
return 0;
}
function __gcry_secmem_module_init() {
return 0;
}
function __gcry_rngfips_is_faked() {
return 0;
}
function __gcry_rngfips_dump_stats() {
return;
}
function getTempRet0() {
return tempRet0 | 0;
}
function __gcry_get_hw_features() {
return 0;
}
function ___gcry_burn_stack_dummy() {
return;
}
function _dummy1($x) {
$x = $x | 0;
return;
}
function stackSave() {
return STACKTOP | 0;
}
function __gcry_primegen_init() {
return 0;
}
function b2(p0) {
p0 = p0 | 0;
abort(2);
}
function __gcry_cipher_init() {
return 0;
}
function _GNUNET_util_cl_fini() {
return;
}
function __gcry_pk_init() {
return 0;
}
function __gcry_md_init() {
return 0;
}
function _GNUNET_abort_() {
_abort();
}
function _prefetch_enc() {
return;
}
function _prefetch_dec() {
return;
}
function _dummy0() {
return;
}
function b6() {
abort(6);
}
// EMSCRIPTEN_END_FUNCS
var FUNCTION_TABLE_iiii = [b0,_rijndael_setkey,_rijndael_encrypt,_rijndael_decrypt,_run_selftests,_rsa_encrypt,_rsa_decrypt,_rsa_sign,_rsa_verify,_run_selftests_1210,_run_selftests_1315,_run_selftests_1335,_run_selftests_1358,_twofish_setkey,_twofish_encrypt,_twofish_decrypt,_ecc_encrypt_raw,_ecc_decrypt_raw,_ecc_sign,_ecc_verify,_run_selftests_1821,__gcry_ecc_get_curve,_poly1305_blocks_ref32,_sn_write,___stdout_write,___stdio_seek,___stdio_write,__gcry_log_info_with_dummy_fp,_fprintf
,_do_encrypt,_do_decrypt,_transform,_transform_1312,_transform_1337,_transform_1360,___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];
var FUNCTION_TABLE_viiiii = [b1,__gcry_aes_cfb_enc,__gcry_aes_cfb_dec,__gcry_aes_cbc_dec,__gcry_aes_ctr_enc,__gcry_aes_ocb_crypt,__gcry_twofish_cbc_dec,__gcry_twofish_cfb_dec,__gcry_twofish_ctr_enc,b1,b1,b1,b1,b1,b1,b1];
var FUNCTION_TABLE_vi = [b2,_rmd160_final,_sha1_final,_sha256_final,_sha512_final,_ec_deinit,_cleanup_92,_cleanup_115,_do_setxid,b2,b2,b2,b2,b2,b2,b2];
var FUNCTION_TABLE_vii = [b3,_rmd160_init,_sha1_init,_sha224_init,_sha256_init,_sha512_init,_sha384_init,_poly1305_init_ext_ref32];
var FUNCTION_TABLE_ii = [b4,_rmd160_read,_rsa_check_secret_key,_rsa_get_nbits,_sha1_read,_sha256_read,_sha512_read,_ecc_check_secret_key,_ecc_get_nbits,__gcry_ecc_get_param_sexp,___stdio_close,b4,b4,b4,b4,b4];
var FUNCTION_TABLE_viii = [b5,__gcry_md_block_write,__gcry_aes_ocb_auth,_add_randomness,_entropy_collect_cb,_read_cb,b5,b5];
var FUNCTION_TABLE_v = [b6,_prefetch_enc,_prefetch_dec,_do_deinit];
var FUNCTION_TABLE_iiiii = [b7,_poly1305_finish_ext_ref32,_ghash_internal,__gcry_rndlinux_gather_random];
var FUNCTION_TABLE_viiiiii = [b8,__gcry_aes_cbc_enc];
var FUNCTION_TABLE_iii = [b9,_rsa_generate,_compute_keygrip,_ecc_generate,_compute_keygrip_1822,_pss_verify_cmp,_check_exponent,b9];
var FUNCTION_TABLE_viiii = [b10,_reporter];
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_WRALL_eddsa_private_key_from_string: _TALER_WRALL_eddsa_private_key_from_string, _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, _DEBUG_WR_test_string: _DEBUG_WR_test_string, _GNUNET_CRYPTO_rsa_private_key_get_public: _GNUNET_CRYPTO_rsa_private_key_get_public, _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, _TALER_WR_verify_sign_key_enc: _TALER_WR_verify_sign_key_enc, _llvm_cttz_i32: _llvm_cttz_i32, _DEBUG_WR_test_string_cmp: _DEBUG_WR_test_string_cmp, _TALER_WRALL_gen_init_vector: _TALER_WRALL_gen_init_vector, _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, _TALER_WRALL_get_amount: _TALER_WRALL_get_amount, _GNUNET_CRYPTO_rsa_unblind: _GNUNET_CRYPTO_rsa_unblind, _TALER_WR_get_currency: _TALER_WR_get_currency, _DEBUG_WR_get_purpose: _DEBUG_WR_get_purpose, _memset: _memset, _GNUNET_CRYPTO_rsa_private_key_encode: _GNUNET_CRYPTO_rsa_private_key_encode, _GNUNET_CRYPTO_symmetric_decrypt: _GNUNET_CRYPTO_symmetric_decrypt, _GNUNET_CRYPTO_ecdhe_key_create: _GNUNET_CRYPTO_ecdhe_key_create, _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, _i64Subtract: _i64Subtract, _TALER_WRALL_get_encoding_from_rsa_signature: _TALER_WRALL_get_encoding_from_rsa_signature, _TALER_WRALL_hash: _TALER_WRALL_hash, _TALER_WRALL_sign_contract: _TALER_WRALL_sign_contract, _bitshift64Shl: _bitshift64Shl, _GNUNET_CRYPTO_rsa_private_key_free: _GNUNET_CRYPTO_rsa_private_key_free, _fflush: _fflush, _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, _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, _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 _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_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 _DEBUG_WR_test_string = Module["_DEBUG_WR_test_string"] = asm["_DEBUG_WR_test_string"];
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 _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 _TALER_WR_verify_sign_key_enc = Module["_TALER_WR_verify_sign_key_enc"] = asm["_TALER_WR_verify_sign_key_enc"];
var _llvm_cttz_i32 = Module["_llvm_cttz_i32"] = asm["_llvm_cttz_i32"];
var _DEBUG_WR_test_string_cmp = Module["_DEBUG_WR_test_string_cmp"] = asm["_DEBUG_WR_test_string_cmp"];
var _TALER_WRALL_gen_init_vector = Module["_TALER_WRALL_gen_init_vector"] = asm["_TALER_WRALL_gen_init_vector"];
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 _memset = Module["_memset"] = asm["_memset"];
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 _TALER_WRALL_get_amount = Module["_TALER_WRALL_get_amount"] = asm["_TALER_WRALL_get_amount"];
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_ecdhe_key_get_public = Module["_GNUNET_CRYPTO_ecdhe_key_get_public"] = asm["_GNUNET_CRYPTO_ecdhe_key_get_public"];
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_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_random_init = Module["_GNUNET_CRYPTO_random_init"] = asm["_GNUNET_CRYPTO_random_init"];
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_rsa_signature_free = Module["_GNUNET_CRYPTO_rsa_signature_free"] = asm["_GNUNET_CRYPTO_rsa_signature_free"];
var _TALER_amount_subtract = Module["_TALER_amount_subtract"] = asm["_TALER_amount_subtract"];
var _i64Add = Module["_i64Add"] = asm["_i64Add"];
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 _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) {
return;
}
preRun();
if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
function doRun() {
if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
Module['calledRun'] = true;
if (ABORT) return;
ensureInitRuntime();
preMain();
if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
if (Module['_main'] && shouldRunNow) Module['callMain'](args);
postRun();
}
if (Module['setStatus']) {
Module['setStatus']('Running...');
setTimeout(function() {
setTimeout(function() {
Module['setStatus']('');
}, 1);
doRun();
}, 1);
} else {
doRun();
}
}
Module['run'] = Module.run = run;
function exit(status, implicit) {
if (implicit && Module['noExitRuntime']) {
return;
}
if (Module['noExitRuntime']) {
} 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 = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.';
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}}