diff options
author | Florian Dold <florian.dold@gmail.com> | 2015-12-13 18:10:33 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2015-12-13 18:10:33 +0100 |
commit | c9180a8b3c629c009a9ac33f353737f6dc1ab871 (patch) | |
tree | 9e9d659b3500c586fa484a0bb764d524434d3470 | |
parent | 833a2cf41d000b335b4d5b8c8b1cb67fa111d27c (diff) | |
download | wallet-core-c9180a8b3c629c009a9ac33f353737f6dc1ab871.tar.xz |
Towards withdrawal in the WebExtension.
-rw-r--r-- | extension/background/emscriptif.js | 36 | ||||
-rw-r--r--[l---------] | extension/background/libwrapper.js | 73914 | ||||
-rw-r--r-- | extension/background/wallet.js | 268 | ||||
-rw-r--r-- | extension/pages/confirm-create-reserve.html | 2 | ||||
-rw-r--r-- | extension/pages/debug.html | 10 | ||||
-rw-r--r-- | extension/popup/wallet.html | 1 | ||||
-rw-r--r-- | extension/popup/wallet.js | 35 |
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") + }); }); +}); |