aboutsummaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2015-12-13 18:10:33 +0100
committerFlorian Dold <florian.dold@gmail.com>2015-12-13 18:10:33 +0100
commitc9180a8b3c629c009a9ac33f353737f6dc1ab871 (patch)
tree9e9d659b3500c586fa484a0bb764d524434d3470 /extension
parent833a2cf41d000b335b4d5b8c8b1cb67fa111d27c (diff)
downloadwallet-core-c9180a8b3c629c009a9ac33f353737f6dc1ab871.tar.xz
Towards withdrawal in the WebExtension.
Diffstat (limited to 'extension')
-rw-r--r--extension/background/emscriptif.js36
-rw-r--r--[l---------]extension/background/libwrapper.js73914
-rw-r--r--extension/background/wallet.js268
-rw-r--r--extension/pages/confirm-create-reserve.html2
-rw-r--r--extension/pages/debug.html10
-rw-r--r--extension/popup/wallet.html1
-rw-r--r--extension/popup/wallet.js35
7 files changed, 74183 insertions, 83 deletions
diff --git a/extension/background/emscriptif.js b/extension/background/emscriptif.js
index ceed32c97..da574b877 100644
--- a/extension/background/emscriptif.js
+++ b/extension/background/emscriptif.js
@@ -18,23 +18,6 @@
"use strict";
-/* The following definition is needed to make emscripted library to remain
- 'alive' after its loading. Otherwise, the normal behaviour would be:
- loading -> look for a 'main()' -> if one is found execute it then exit,
- otherwise just exit. See https://kripken.github.io/emscripten-site/docs/getting_started/FAQ.html
- DO NOTE: this definition MUST precede the importing/loading of the emscripted
- library */
-
-/* FIXME
-getLastWindow().Module = {
-
- onRuntimeInitialized: function() {
-
- }
-
-};
-*/
-
/* According to emscripten's design, we need our emscripted library to be executed
with a 'window' object as its global scope.
Note: that holds on emscripten's functions too, that is they need to be *explicitly*
@@ -64,6 +47,8 @@ getLastWindow().Module = {
respective functions come from (the emscripted version of) TALER_* realm. */
+const PTR_SIZE = 4;
+
// shortcut to emscr's 'malloc'
function emscMalloc(size) {
var ptr = Module._malloc(size);
@@ -299,8 +284,13 @@ var GCALLrsaPrivateKeyCreate = getEmsc('GNUNET_CRYPTO_rsa_private_key_create',
['number']);
var GCALLrsaBlindingKeyCreate = getEmsc('GNUNET_CRYPTO_rsa_blinding_key_create',
+ 'number',
+ ['number']);
+
+
+var GCALLrsaBlindingKeyEncode = getEmsc('GNUNET_CRYPTO_rsa_blinding_key_encode',
'number',
- ['number']);
+ ['number', 'number']);
var GCrsaBlindingKeyFree = getEmsc('GNUNET_CRYPTO_rsa_blinding_key_free',
'void',
@@ -514,7 +504,6 @@ let d2s = getEmsc('GNUNET_STRINGS_data_to_string_alloc',
let sizeof_EddsaPrivateKey = 32;
let sizeof_EddsaPublicKey = 32;
-
function createEddsaKeyPair() {
let privPtr = GCALLeddsaKeyCreate();
let pubPtr = emscMalloc(sizeof_EddsaPublicKey);
@@ -523,3 +512,12 @@ function createEddsaKeyPair() {
let pubStr = d2s(pubPtr, sizeof_EddsaPublicKey);
return {priv: privStr, pub: pubStr};
}
+
+function createRsaBlindingKey() {
+ let blindFac = GCALLrsaBlindingKeyCreate(1024);
+ let bufPtr = emscMalloc(PTR_SIZE);
+ let size = GCALLrsaBlindingKeyEncode (blindFac, bufPtr);
+ let key = d2s(Module.getValue(bufPtr, '*'), size);
+ emscFree(bufPtr);
+ return key;
+}
diff --git a/extension/background/libwrapper.js b/extension/background/libwrapper.js
index 8a9ac8e9a..e3f4fc764 120000..100644
--- a/extension/background/libwrapper.js
+++ b/extension/background/libwrapper.js
@@ -1 +1,73913 @@
-../../../wallet_button/firefox_src/content/lib/libWrapper.jsm \ No newline at end of file
+// 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}}
+
+
+
+
+
+
diff --git a/extension/background/wallet.js b/extension/background/wallet.js
index 18b0a511c..91b6de0d4 100644
--- a/extension/background/wallet.js
+++ b/extension/background/wallet.js
@@ -1,47 +1,58 @@
'use strict';
-const DONE = 4;
const DB_NAME = "taler";
const DB_VERSION = 1;
-// Shown in the UI.
-let backendFailed = false;
/**
- * Run a function with the opened taler DB.
+ * Return a promise that resolves
+ * to the taler wallet db.
*/
-function withTalerDb(f) {
- let req = indexedDB.open(DB_NAME, DB_VERSION);
- req.addEventListener("error", (e) => {
- // XXX: more details
- backendFailed = true;
- });
- req.addEventListener("success", (e) => {
- var db = e.target.result;
- f(db);
- });
- req.addEventListener("upgradeneeded", (e) => {
- console.log ("DB: upgrade needed: oldVersion = "+ event.oldVersion);
- db = event.target.result;
- switch (event.oldVersion) {
- case 0: // DB does not exist yet
- db.createObjectStore("mints", { keyPath: "mint_pub" });
- db.createObjectStore("reserves", { keyPath: "reserve_pub"});
- db.createObjectStore("denoms", { keyPath: "denom_pub" });
- db.createObjectStore("coins", { keyPath: "coin_pub" });
- db.createObjectStore("withdrawals", { keyPath: "id", autoIncrement: true });
- db.createObjectStore("transactions", { keyPath: "id", autoIncrement: true });
- break;
- }
+function openTalerDb(cont) {
+ return new Promise((resolve, reject) => {
+ let req = indexedDB.open(DB_NAME, DB_VERSION);
+ req.addEventListener("error", (e) => {
+ reject(e);
+ });
+ req.addEventListener("success", (e) => {
+ resolve(e.target.result);
+ });
+ req.addEventListener("upgradeneeded", (e) => {
+ let db = e.target.result;
+ console.log ("DB: upgrade needed: oldVersion = " + event.oldVersion);
+ db = event.target.result;
+ switch (event.oldVersion) {
+ case 0: // DB does not exist yet
+ db.createObjectStore("mints", { keyPath: "baseUrl" });
+ db.createObjectStore("reserves", { keyPath: "reserve_pub"});
+ db.createObjectStore("denoms", { keyPath: "denom_pub" });
+ db.createObjectStore("coins", { keyPath: "coin_pub" });
+ db.createObjectStore("withdrawals", { keyPath: "id", autoIncrement: true });
+ db.createObjectStore("transactions", { keyPath: "id", autoIncrement: true });
+ break;
+ }
+ });
});
}
+function canonicalizeBaseUrl(url) {
+ let x = new URI(url);
+ if (!x.protocol()) {
+ x.protocol("https");
+ }
+ x.path(x.path() + "/").normalizePath();
+ x.fragment();
+ x.query();
+ return x.href()
+}
+
+
function confirmReserve(db, detail, sendResponse) {
console.log('detail: ' + JSON.stringify(detail));
let keypair = createEddsaKeyPair();
let form = new FormData();
- let now = new Date();
+ let now = (new Date()).toString();
form.append(detail.field_amount, detail.amount_str);
form.append(detail.field_reserve_pub, keypair.pub);
form.append(detail.field_mint, detail.mint);
@@ -50,15 +61,16 @@ function confirmReserve(db, detail, sendResponse) {
console.log("making request to " + detail.post_url);
myRequest.open('post', detail.post_url);
myRequest.send(form);
+ let mintBaseUrl = canonicalizeBaseUrl(detail.mint);
myRequest.addEventListener('readystatechange', (e) => {
- if (myRequest.readyState == DONE) {
+ if (myRequest.readyState == XMLHttpRequest.DONE) {
let resp = {};
resp.status = myRequest.status;
resp.text = myRequest.responseText;
let reserveRecord = {
reserve_pub: keypair.pub,
reserve_priv: keypair.priv,
- mint_base_url: detail.mint,
+ mint_base_url: mintBaseUrl,
created: now,
last_query: null,
current_amount: null,
@@ -77,8 +89,10 @@ function confirmReserve(db, detail, sendResponse) {
tx.addEventListener('complete', (e) => {
console.log('tx complete, pk was ' + reserveRecord.reserve_pub);
sendResponse(resp);
- updateReserveMints(db);
- // We have to update the mints now ...
+ var mint;
+ updateMintFromUrl(db, reserveRecord.mint_base_url)
+ .then((m) => { mint = m; return updateReserve(db, keypair.pub, mint); })
+ .then((reserve) => depleteReserve(db, reserve, mint));
});
break;
default:
@@ -92,13 +106,179 @@ function confirmReserve(db, detail, sendResponse) {
}
+function sumAmounts() {
+ let v = 0;
+ let f = 0;
+ let c;
+ let xs = arguments;
+ if (xs.length == 0) {
+ throw "no arguments given";
+ }
+ for (let x of xs) {
+ v = (v + x.value) + Math.floor((f + x.value) / 10e6);
+ f = (f + x.fraction) % 10e6;
+ c = x.currency;
+ }
+ return {value: v, fraction:f, currency: c};
+}
+
+function subtractAmount(a1, a2) {
+ if (compareAmount(a1, a2) < 0) {
+ throw "negative result";
+ }
+ let r = {
+ currency: a1.currency,
+ value: a1.value,
+ fraction: a1.fraction
+ };
+ if (a2.fraction > a1.fraction) {
+ r.value--;
+ r.fraction += 1000000;
+ }
+ r.value -= a2.value;
+ r.fraction -= a2.fraction;
+ return r;
+}
+
+
+function compareAmount(a1, a2) {
+ if (a1.currency !== a2.currency) {
+ throw "can't compare different currencies";
+ }
+ let v1 = [a1.value + Math.floor(a1.fraction / 10e6), a1.fraction % 10e6];
+ let v2 = [a2.value + Math.floor(a2.fraction / 10e6), a2.fraction % 10e6];
+ for (let i in v1) {
+ if (v1[i] < v2[i]) {
+ return -1;
+ }
+ if (v1[i] > v2[i]) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+function copy(o) {
+ return JSON.parse(JSON.stringify(o));
+}
+
+
+function rankDenom(o1, o2) {
+ return (-1) * compareAmount(o1.value, o2.value);
+}
+
+
+function withdraw(denom, reserve, mint) {
+ let wd = {};
+ wd.denom_pub = denom.denom_pub;
+ wd.reserve_pub = reserve.reserve_pub;
+ let coin_key = createEddsaKeyPair();
+ // create RSA blinding key
+ // blind coin
+ // generate signature
+}
+
+
/**
- * Fetch information for mints that
- * are referenced in a reserve and that were not
- * updated recently.
+ * Withdraw coins from a reserve until it is empty.
*/
-function updateReserveMints(db) {
+function depleteReserve(db, reserve, mint) {
+ let denoms = copy(mint.keys.denoms);
+ let remaining = copy(reserve.current_amount);
+ denoms.sort(rankDenom);
+ for (let i = 0; i < 1000; i++) {
+ let found = false;
+ for (let d of denoms) {
+ let cost = sumAmounts(d.value, d.fee_withdraw);
+ if (compareAmount (remaining, cost) < 0) {
+ continue;
+ }
+ found = true;
+ remaining = subtractAmount(remaining, cost);
+ withdraw(d, reserve, mint);
+ }
+ if (!found) {
+ break;
+ }
+ }
+
+}
+
+function updateReserve(db, reservePub, mint) {
+ let reserve;
+ return new Promise((resolve, reject) => {
+ let tx = db.transaction(['reserves']);
+ tx.objectStore('reserves').get(reservePub).onsuccess = (e) => {
+ let reserve = e.target.result;
+ let reqUrl = URI("reserve/status").absoluteTo(mint.baseUrl);
+ reqUrl.query({'reserve_pub': reservePub});
+ let myRequest = new XMLHttpRequest();
+ console.log("making request to " + reqUrl.href());
+ myRequest.open('get', reqUrl.href());
+ myRequest.send();
+ myRequest.addEventListener('readystatechange', (e) => {
+ if (myRequest.readyState == XMLHttpRequest.DONE) {
+ if (myRequest.status != 200) {
+ reject();
+ return;
+ }
+ let reserveInfo = JSON.parse(myRequest.responseText);
+ console.log("got response " + JSON.stringify(reserveInfo));
+ reserve.current_amount = reserveInfo.balance;
+ let tx = db.transaction(['reserves'], 'readwrite');
+ console.log("putting updated reserve " + JSON.stringify(reserve));
+ tx.objectStore('reserves').put(reserve);
+ tx.oncomplete = (e) => {
+ resolve(reserve);
+ };
+ }
+ });
+ };
+ });
+
+}
+
+
+/**
+ * Update or add mint DB entry by fetching the /keys information.
+ * Optionally link the reserve entry to the new or existing
+ * mint entry in then DB.
+ */
+function updateMintFromUrl(db, baseUrl) {
+ console.log("base url is " + baseUrl);
+ let reqUrl = URI("keys").absoluteTo(baseUrl);
+ let myRequest = new XMLHttpRequest();
+ myRequest.open('get', reqUrl.href());
+ myRequest.send();
+ return new Promise((resolve, reject) => {
+ myRequest.addEventListener('readystatechange', (e) => {
+ console.log("state change to " + myRequest.readyState);
+ if (myRequest.readyState == XMLHttpRequest.DONE) {
+ if (myRequest.status == 200) {
+ console.log("got /keys");
+ let mintKeysJson = JSON.parse(myRequest.responseText);
+ if (!mintKeysJson) {
+ console.log("keys invalid");
+ reject();
+ } else {
+ let mint = {};
+ mint.baseUrl = baseUrl;
+ mint.keys = mintKeysJson;
+ let tx = db.transaction(['mints'], 'readwrite');
+ tx.objectStore('mints').put(mint);
+ tx.oncomplete = (e) => {
+ resolve(mint);
+ };
+ }
+ } else {
+ console.log("/keys request failed with status " + myRequest.status);
+ // XXX: also write last error to DB to show in the UI
+ reject();
+ }
+ }
+ });
+ });
}
@@ -127,20 +307,16 @@ function dumpDb(db, detail, sendResponse) {
return true;
}
-withTalerDb((db) => {
+
+openTalerDb().then((db) => {
console.log("db loaded");
chrome.runtime.onMessage.addListener(
function (req, sender, onresponse) {
- // XXX: use assoc. instead of switch?
- switch (req.type)
- {
- case "confirm-reserve":
- return confirmReserve(db, req.detail, onresponse)
- break;
- case "dump-db":
- console.log('dumping db');
- return dumpDb(db, req.detail, onresponse);
+ let dispatch = {
+ "confirm-reserve": confirmReserve,
+ "dump-db": dumpDb
}
+ return dispatch[req.type](db, req.detail, onresponse);
});
});
diff --git a/extension/pages/confirm-create-reserve.html b/extension/pages/confirm-create-reserve.html
index 4a01e47d1..d89fd0b13 100644
--- a/extension/pages/confirm-create-reserve.html
+++ b/extension/pages/confirm-create-reserve.html
@@ -15,7 +15,7 @@
<div class='formish'>
<div class='form-row'>
<label for='mint-url'>Mint URL</label>
- <input class='url' id='mint-url' type="text"></input>
+ <input class='url' id='mint-url' type="text" value="http://mint.demo.taler.net/"></input>
</div>
<button id='confirm'>Confirm Reserve</button>
</div>
diff --git a/extension/pages/debug.html b/extension/pages/debug.html
new file mode 100644
index 000000000..e4466bc47
--- /dev/null
+++ b/extension/pages/debug.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Taler Wallet Debugging</title>
+ </head>
+ <body>
+ <h1>Debug Pages</h1>
+ <a href="show-db.html">Show DB</a>
+ </body>
+</html>
diff --git a/extension/popup/wallet.html b/extension/popup/wallet.html
index 42d72e676..d481193c6 100644
--- a/extension/popup/wallet.html
+++ b/extension/popup/wallet.html
@@ -13,6 +13,7 @@
<a href="wallet.html" class="active">Wallet</a>
<a href="transactions.html">Transactions</a>
<a href="reserves.html">Reserves</a>
+ <button id="debug">Debug!</button>
</div>
<div id="content">
diff --git a/extension/popup/wallet.js b/extension/popup/wallet.js
index c148abc85..ef35193bd 100644
--- a/extension/popup/wallet.js
+++ b/extension/popup/wallet.js
@@ -78,20 +78,23 @@ function update_currency (currency, amount)
checkbox._amount = amount;
}
-document.addEventListener(
- 'DOMContentLoaded',
- function () {
- chrome.runtime.sendMessage({type: "WALLET_GET"}, function(wallet) {
- for (let currency in wallet)
- {
- let amount = amount_format(wallet[currency]);
- add_currency(currency, amount);
- }
- });
-
- // FIXME: remove
- add_currency('EUR', 42);
- add_currency('USD', 17);
- add_currency('KUD', 1337);
- update_currency('USD', 23);
+document.addEventListener('DOMContentLoaded', (e) => {
+ chrome.runtime.sendMessage({type: "WALLET_GET"}, function(wallet) {
+ for (let currency in wallet) {
+ let amount = amount_format(wallet[currency]);
+ add_currency(currency, amount);
+ }
+ });
+
+ // FIXME: remove
+ add_currency('EUR', 42);
+ add_currency('USD', 17);
+ add_currency('KUD', 1337);
+ update_currency('USD', 23);
+
+ document.getElementById("debug").addEventListener("click", (e) => {
+ chrome.tabs.create({
+ "url": chrome.extension.getURL("pages/debug.html")
+ });
});
+});