// 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 = ''; }); },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}}